CINXE.COM
Apple resisting magistrate order to share iPhone information - Yahoo Finance
<!DOCTYPE html> <html id="Stencil" lang="en-US" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml" class="H-100"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("http://finance.yahoo.com/news/judge-apple-must-help-us-005604451.html","20160217234258","https://web.archive.org/","web","/_static/", "1455752578"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <script>var t_headstart=new Date().getTime();</script> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>Apple resisting magistrate order to share iPhone information - Yahoo Finance</title> <meta http-equiv="x-dns-prefetch-control" content="on"><link rel="dns-prefetch" href="https://web.archive.org/web/20160217234258/https://s.yimg.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://y3.analytics.yahoo.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://geo.query.yahoo.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://geo.yahoo.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://csc.beap.bc.yahoo.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://b.scorecardresearch.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://l.yimg.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://l1.yimg.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://l2.yimg.com/"><link rel="dns-prefetch" href="//web.archive.org/web/20160217234258/http://l3.yimg.com/"> <!--[if !IE]><!--><link rel="icon" sizes="any" mask href="https://web.archive.org/web/20160217234258im_/http://l.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" lang="en-US" content="From Yahoo Finance: Apple Inc. CEO Tim Cook says his company will fight a federal magistrate's order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ..."/> <link rel="canonical" href="https://web.archive.org/web/20160217234258/http://finance.yahoo.com/news/judge-apple-must-help-us-005604451.html"/> <meta name="googlebot" content="unavailable_after:31 Dec 16 23:59:59 GMT"> <meta property="article:publisher" content="http://www.facebook.com/yahoofinance"/> <meta property="fb:app_id" content="90376669494"/> <meta property="og:description" content="Apple Inc. CEO Tim Cook says his company will fight a federal magistrate's order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ..."/> <meta property="og:image" content="https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/TPEct8bPpbOVD.JaNVc_aw--/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"/> <meta property="og:site_name" content="Yahoo Finance"/> <meta property="og:title" content="Apple resisting magistrate order to share iPhone information"/> <meta property="og:type" content="article"/> <meta property="og:url" content="https://web.archive.org/web/20160217234258/http://finance.yahoo.com/news/judge-apple-must-help-us-005604451.html"/> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:description" content="Apple Inc. CEO Tim Cook says his company will fight a federal magistrate's order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ..."/> <meta name="twitter:dnt" content="on"/> <meta name="twitter:image" content="https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/TPEct8bPpbOVD.JaNVc_aw--/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"/> <meta name="twitter:image:src" content="http://l3.yimg.com/bt/api/res/1.2/TPEct8bPpbOVD.JaNVc_aw--/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"/> <meta name="twitter:site" content="@YahooFinance"/> <meta name="twitter:title" content="Apple resisting magistrate order to share iPhone information"/> <meta name="application-name" content="Apple resisting magistrate order to share iPhone information"/> <meta name="msapplication-TileColor" content="#6e329d"/> <meta name="msapplication-TileImage" content="http://l.yimg.com/os/mit/media/p/presentation/images/icons/win8-tile-1484740.png"/> <link rel="apple-touch-icon" href="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/p/presentation/images/icons/default-apple-touch-icon-1636137.png"> <link rel="apple-touch-icon" sizes="114x114" href="https://web.archive.org/web/20160217234258im_/http://l.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://web.archive.org/web/20160217234258im_/http://l.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://web.archive.org/web/20160217234258im_/http://l.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://web.archive.org/web/20160217234258im_/http://l.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="http://l.yimg.com/os/mit/media/p/presentation/html5shiv-min-a88b231.js"></script> <![endif]--> <script>(function(){if(!Array.isArray) {var polyfill="https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/p/content/react-polyfill-min-341acea.js";if("" !== polyfill){var script = document.createElement('script');script.type = 'text/javascript';script.src = polyfill;document.getElementsByTagName('head')[0].appendChild(script);}}}());</script> <link rel="stylesheet" type="text/css" href="https://web.archive.org/web/20160217234258cs_/http://l.yimg.com/zz/combo?os/stencil/2.0.23/styles.css&os/mit/media/p/content/other/ad-controller-desktop-min-2e496c7.css&os/mit/media/p/content/base/v2-master-min-f784570.css&os/mit/media/p/content/base/v2-desktop-min-8180379.css&os/mit/media/p/common/stencil-fix-min-56d3a2e.css&os/mit/media/p/content/grids/v2sg-desktop-min-386af90.css&os/mit/media/p/content/overrides/classic-overrides-min-c644875.css&os/mit/media/p/content/overrides/stencil-v2s-reset-overrides-min-863e25b.css&os/mit/media/p/content/other/react-sidekick-min-3b4b3c1.css&os/mit/media/m/header/header-uh3-desktop-min-0724437.css&os/mit/media/m/ads/ads-min-bcb1fc4.css&os/mit/media/m/navigation/content-navigation-desktop-min-a8a04a0.css&os/mit/media/m/navigation/content-navigation-stencil-desktop-min-a8a04a0.css"/> <link rel="stylesheet" type="text/css" href="https://web.archive.org/web/20160217234258cs_/http://l.yimg.com/zz/combo?os/mit/media/m/content/sfl-notifier-min-ee15495.css&os/mit/media/m/content_social/media-content-follow-property-min-6f74faf.css&os/mit/media/m/content_social/media-content-follow-property-desktop-min-d86f135.css&os/mit/media/p/finance/site/v2_finance-min-2d0a0bb.css&os/mit/media/m/finance/common-gs-min-12d09cb.css&os/mit/media/m/finance/watchlist-gs-desktop-min-228a992.css&os/mit/media/m/finance/follow-quote-min-9f13aa8.css&os/mit/media/m/quotes/quotes-search-gs-desktop-min-d3800d6.css&os/mit/media/m/quotes/quotes-common-min-a978f16.css&os/mit/media/m/finance/disclaimer-gs-desktop-min-808a7c1.css&os/mit/media/m/content/ce/media-content-min-243eedb.css&os/mit/media/m/content/ce/media-content-desktop-min-01bcb1f.css&os/mit/media/m/content_story/media-content-story-desktop-min-4e8e036.css&os/mit/media/m/content/ce/media-content-header-min-243eedb.css&os/mit/media/m/ads/moneyball-min-247cb99.css&os/mit/media/m/article/video-embed-player-min-41caf31.css&os/mit/media/m/content_photo/media-content-lightbox-desktop-sidekick-min-15a6d09.css&os/mit/media/m/comments/media-content-comments-desktop-min-2e957f6.css&os/mit/media/m/content/action-bar-min-ecbfa42.css&yui:3.18.1/build/overlay/assets/skins/sam/overlay.css&os/mit/media/m/content_social/media-content-share-buttons-int-min-0116754.css&os/mit/media/m/content_social/media-content-share-buttons-desktop-min-1c5795a.css&os/mit/media/m/content_index/generic-listings-desktop-min-da555a8.css"/> <link rel="stylesheet" type="text/css" href="https://web.archive.org/web/20160217234258cs_/http://l.yimg.com/zz/combo?os/mit/media/themes/v2_base/base-min-41cfe10.css&os/mit/media/themes/v2_base/base-imagery-min-bec5796.css&os/mit/media/themes/v2_blackblue/theme-min-f8a426a.css&os/mit/media/themes/v2_blackblue/theme-imagery-min-5bb3a41.css&os/mit/media/p/finance/lang/en-min-933aa75.css"/> <script type="text/javascript" src="https://web.archive.org/web/20160217234258js_/http://l.yimg.com/zz/combo?yui:3.18.1/build/yui/yui-min.js&os/mit/media/p/common/rmp-min-56d3a2e.js&aj/lh-0.9.js&os/mit/media/m/base/viewport-loader-min-649ba6f.js&ss/rapid-3.32.js&os/mit/td/asset-loader-min-a457e346.js&os/mit/media/p/content/react-with-addons-min-098f019.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":"","osver":""},instr:{request_id:"f7re0v1bca1c2",authfb:0},csbeacon:function(isPjax, spaceId) { if(! this._hasIssuedCsBeacon || isPjax) { this._hasIssuedCsBeacon = true; var spaceId = spaceId || "1183300101", ssl = "0";if(typeof YAHOO === "object" && typeof YAHOO.i13n === "object" && 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("0");YAHOO.i13n.sendComscoreEvent(); } } },_hasIssuedCsBeacon:false};</script><noscript><div><img src="https://web.archive.org/web/20160217234258im_/http://b.scorecardresearch.com/b?c1=2&c2=7241469&c7=finance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html&c5=1183300101&c14=-1&cv=2.0&cj=1" style="display:none" width="0" height="0" alt=""/></div></noscript><script>window.YMEDIA_CRUMB = "TtZbknwir03";</script><!-- fe885.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:59 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":"1183300101","tracked_mods":["mediafinancethemeoverride","mediadocsettings","mediafinancefooterdisclaimer","mediafinancefooterworldwide","mediadisclaimergs","mediaquotessearchgs","mediacontentnavigation","mediawatchlistgs","mediacontentfollowproperty","mediafinancestenciloverride","mediafinancearticlecssoverrides","mediaquotessearchgs_2","mediacontentnavigation_2","mediadisclaimergs_2","mediacontentstory","mediacontentcomments","mediacontentsharebuttons","mediacontentgenericlistings","mediacontentgenericlistings_2","mediacontentfptodaylistings","mediacontentgenericlistings_3","mediafooterinfo","mediacontentfollowproperty_2"],"text_link_len":8,"client_only":1,"compr_type":"deflate","ult_token_capture":true,"webworker_file":"\/__rapid-worker-1.2.js","test_id":"","keys":{"x":"125","ssl":"0","juris":"US","lang":"en-US","lpstaid":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","mrkt":"US","pcp":"Associated Press","pct":"1","pd":"","psp":"","pst":"","pstaid":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","pstcat":"Federal_Bureau_of_Investigation","pt":"4","pub":"","site":"finance","test":"","ver":"grandslam"},"debug":false,"ywa":{"project_id":"1000911397279","document_group":"","document_name":"","host":"y.analytics.yahoo.com"},"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>(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":{"group01c9d8dea06e05460a64eed4dadd622b6":{"base":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/","comboBase":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.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-913be2c.js"},"media-header-uh3-desktop":{"path":"os\/mit\/media\/m\/header\/header-uh3-desktop-min-ba174cb.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:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.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://web.archive.org/web/20160217234258/http://l.yimg.com/'; YUI.Env[YUI.version].comboBase = 'https://web.archive.org/web/20160217234258/http://l.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",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 = "8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb"; }); Y.later(10, this, function() { (function () { function focusSearch() { var a = Y.one('#mnp-search_box') || Y.one('#UHSearchBox'); if (Y.UA && (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 && Y.Media.Chrome) { Y.Media.pageChrome = Y.Media.Chrome(Y, { site: 'finance', lang: 'en-US', region: 'US', spaceId: '1183300101', contentId: '8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb', gridType: 'content', device: 'full', deviceOS: (typeof YMEDIA_REQ_ATTR !== 'undefined' && YMEDIA_REQ_ATTR.device && YMEDIA_REQ_ATTR.device.os) || '', deviceOSVer: (typeof YMEDIA_REQ_ATTR !== 'undefined' && YMEDIA_REQ_ATTR.device && YMEDIA_REQ_ATTR.device.osver) || '', projectId: '1000911397279', enableYwaTracking: '0', enable2xImgs: '0', imgItemsSelector: '.js .yog-bd img', enableViewportManagement: '0', viewportItemsSelector: '.js .yog-content img,.yog-smartphone.js .yog-bd img', transparentImgUrl: 'https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/m/base/images/transparent-649ba6f.png', enableRapidTracking: 1, rapidConf : {"spaceid":"1183300101","tracked_mods":["mediafinancethemeoverride","mediadocsettings","mediafinancefooterdisclaimer","mediafinancefooterworldwide","mediadisclaimergs","mediaquotessearchgs","mediacontentnavigation","mediawatchlistgs","mediacontentfollowproperty","mediafinancestenciloverride","mediafinancearticlecssoverrides","mediaquotessearchgs_2","mediacontentnavigation_2","mediadisclaimergs_2","mediacontentstory","mediacontentcomments","mediacontentsharebuttons","mediacontentgenericlistings","mediacontentgenericlistings_2","mediacontentfptodaylistings","mediacontentgenericlistings_3","mediafooterinfo","mediacontentfollowproperty_2"],"text_link_len":8,"client_only":1,"compr_type":"deflate","ult_token_capture":true,"webworker_file":"\/__rapid-worker-1.2.js","test_id":"","keys":{"x":"125","ssl":"0","juris":"US","lang":"en-US","lpstaid":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","mrkt":"US","pcp":"Associated Press","pct":"1","pd":"","psp":"","pst":"","pstaid":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","pstcat":"Federal_Bureau_of_Investigation","pt":"4","pub":"","site":"finance","test":"","ver":"grandslam"},"debug":false,"ywa":{"project_id":"1000911397279","document_group":"","document_name":"","host":"y.analytics.yahoo.com"},"nofollow_class":["rapid-nf","rapidnofollow","w-right-arrow","yom-weather-locations","yom-super-hero"]}, bucketId : '', baseImageryFallbackCss : 'https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/themes/v2_base/base-imagery-fallback-min-5c5abcd.css', baseImageryFallbackCssLteIe7 : 'https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/themes/v2_base/base-imagery-fallback-lteIE7-min-5c5abcd.css', enableGlassTheme : '0', backgroundImageUrl : 'https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/themes/v2_blackblue/images/theme_bkground-c2ec4fd.jpg' }); };}); 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 && YMedia.rapid.rapidInstance, moduleQueue: YMedia.rapid && YMedia.rapid.moduleQueue, rapidConfig: YMedia.rapid && YMedia.rapid.rapidConfig, config: { selectors: { 'bd' : 'body', 'mods' : '.yom-mod' } } });}); Y.later(10, this, function() {if (Y.Media && Y.Media.HeaderUH3) { Y.Media.HeaderUH3(Y, { version: 'v2sg' }); };}); Y.later(10, this, function() {var jslib='https://web.archive.org/web/20160217234258/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 += '&r=nextgen-flash'; } script.src = jslibovrd || jslib; document.getElementsByTagName('head')[0].appendChild(script); }}); Y.later(10, this, function() { var vplContainers = [ { "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); } }, { "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" }); } }, ]; var vpl = Y.Object.getValue(Y, ['Global', 'Media', 'ViewportLoader']); if (vpl) { vpl.lookaheadOffset = 250; vpl.addContainers(vplContainers); } }); }); </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> </head> <body dir="ltr" class="Bxz-bb H-100 no-js yog-type-content yog-full yog-version-v2sg yog-ltr Col1-expand widegrid-0 yog-finance yog-US yog-finance-US-en-US-u -1-1 stage-sibling-1 hasStage yuac-fixedpos-1 yuac-svg-1 StencilRoot"> <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://web.archive.org/web/20160217234258cs_/http://l.yimg.com/zz/combo?kx/yucs/uh3s/atomic/84/css/atomic-min.css&kx/yucs/uh_common/meta/3/css/meta-min.css&kx/yucs/uh3/get-the-app/151/css/get_the_app-min.css&kx/yucs/uhc/skip-links/4/css/skip-min.css&kx/yucs/uh3s/uh/410/css/uh-gs-grid-min.css"/> <style type="text/css">@font-face{font-family:uh;src:url(https://web.archive.org/web/20160217234258im_/https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.eot);src:url(https://web.archive.org/web/20160217234258im_/https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.eot#iefix) format('embedded-opentype'),url(https://web.archive.org/web/20160217234258im_/https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.woff2) format('woff2'),url(https://web.archive.org/web/20160217234258im_/https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.woff) format('woff'),url(https://web.archive.org/web/20160217234258im_/https://s.yimg.com/os/uh-icons/0.1.16/uh/fonts/uh.ttf) format('truetype'),url(https://web.archive.org/web/20160217234258im_/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="OamA7Vtl3oz" data-mc-crumb="7ddwcXQfSbz" data-gta="D1tEPqgxlRZ" data-device="desktop" data-experience="stencil-gs-grid" data-firstname="" data-style="" data-flight="1455752579" data-forcecobrand="standard" data-guid="" data-host="finance.yahoo.com" data-https="0" data-languagetag="en-us" data-property="finance" data-protocol="http" data-shortfirstname="" data-shortuserid="" data-status="active" data-spaceid="1183300101" 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="http" data-property="finance" data-spaceid="1183300101" 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-finance 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?pn=" data-ylt-dssbarclose="/" data-ylt-dssbaropen="/" data-ylt-dssstb-link="https://downloads.yahoo.com/sp-firefox" data-ylt-dssstbbarclose="/" data-ylt-dssstbbaropen="/" data-ylt-dsscookiecleanedsuccess="/" data-ylt-dsscookiecleanedfailed="/" data-linktarget="_top" data-lang="en-us" data-property="finance" data-device="Desktop" data-close-txt="Close this window" data-maybelater-txt="Maybe Later" data-killswitch="0" data-host="finance.yahoo.com" data-spaceid="1183300101" data-pn="J9lynrKCgaF" data-dss-cookie-cleanup="pLimcWS6WuX" data-pn-en-ca-mobile-frontpage="G6tUCvKOzr4" data-pn-de-de-mobile-frontpage="M.RMqcla1QF" data-pn-es-es-mobile-frontpage="4TSAKP2.ypY" data-pn-fr-fr-mobile-frontpage="w4hRJiz89FX" data-pn-en-in-mobile-frontpage="WUBq/c.dTh6" data-pn-it-it-mobile-frontpage="Rr/hPQWUVxs" data-pn-en-us-mobile-frontpage="J9lynrKCgaF" data-pn-en-sg-mobile-frontpage="20/SFDBJj4J" data-pn-en-gb-mobile-frontpage="jfh2TOuJcDv" data-pn-en-us-mobile-mail="MOeDaIVlXA2" data-pn-en-ca-mobile-mail="pTkIwsWJuZ8" data-pn-de-de-mobile-mail="5ed0zIJAFXl" data-pn-es-es-mobile-mail="KfjS1Q02xKn" data-pn-fr-fr-mobile-mail="D5JqzGuMHJt" data-pn-en-in-mobile-mail="s2K3HPa4Zcp" data-pn-it-it-mobile-mail="WmK0sVbC2UZ" data-pn-en-sg-mobile-mail="s5GRvFiTZaS" data-pn-en-gb-mobile-mail="dobKjMIItvA" data-pn-pt-br-mobile-mail="UxUt88k/qc/" data-pn-en-us-tablet-frontpage="Z/NqVVQWsir" data-pn-en-us-tablet-mail="i.RxD2PZMf9" data-pn-en-ca-tablet-mail="xGy3pDTdZC3" data-pn-de-de-tablet-mail="nHX2XAG5J5k" data-pn-es-es-tablet-mail="BWqjtFQ9/4R" data-pn-fr-fr-tablet-mail="cA9rixkcoOt" data-pn-en-in-tablet-mail="dWLHqCeV6Qb" data-pn-it-it-tablet-mail="FJBFRyyBJ.k" data-pn-en-sg-tablet-mail="RKgEf7EX5wh" data-pn-en-gb-tablet-mail="g2MpQu1rLnt" data-pn-pt-br-tablet-mail="/N32AktxueS" data-news-search-yahoo-com="C/NIujCSbte" data-answers-search-yahoo-com="Uwohg.wmFmn" data-finance-search-yahoo-com="U71TQncVDXJ" data-images-search-yahoo-com="m6k5Hmpcxy1" data-video-search-yahoo-com="s3bfAr/Y30Y" data-sports-search-yahoo-com="sZCypAivREK" data-shopping-search-yahoo-com="PimJLSJYVyu" data-shopping-yahoo-com="PimJLSJYVyu" data-us-qa-trunk-news-search-yahoo-com="C/NIujCSbte" data-dss="1"></div> <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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/https://mail.yahoo.com/?.intl=us&.lang=en-US&.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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/http://news.yahoo.com/" 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="https://web.archive.org/web/20160217234258/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="https://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/https://weather.yahoo.com/" 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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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="https://web.archive.org/web/20160217234258/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 frameborder="0" class="Pos(a) Start(0) W(100%) H(100%) Bd(0)" src="about:blank"></iframe><ul class="yucs-leavable Pos(r) Px(10px)! My(.55em)"><li id="yucs-top-politics"><a href="https://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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-health"><a href="https://web.archive.org/web/20160217234258/https://www.yahoo.com/health" data-ylk="t5:health;slk:health;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Health</a></li><li id="yucs-top-style"><a href="https://web.archive.org/web/20160217234258/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://web.archive.org/web/20160217234258/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-food"><a href="https://web.archive.org/web/20160217234258/https://www.yahoo.com/food" data-ylk="t5:food;slk:food;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Food</a></li><li id="yucs-top-parenting"><a href="https://web.archive.org/web/20160217234258/https://www.yahoo.com/parenting" data-ylk="t5:parenting;slk:parenting;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Parenting</a></li><li id="yucs-top-makers"><a href="https://web.archive.org/web/20160217234258/https://www.yahoo.com/makers" data-ylk="t5:makers;slk:makers;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Makers</a></li><li id="yucs-top-tech"><a href="https://web.archive.org/web/20160217234258/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="https://web.archive.org/web/20160217234258/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><li id="yucs-top-travel"><a href="https://web.archive.org/web/20160217234258/https://www.yahoo.com/travel" data-ylk="t5:travel;slk:travel;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Travel</a></li><li id="yucs-top-autos"><a href="https://web.archive.org/web/20160217234258/https://autos.yahoo.com/" data-ylk="t5:autos;slk:autos;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Autos</a></li><li id="yucs-top-realestate"><a href="https://web.archive.org/web/20160217234258/https://www.yahoo.com/realestate" data-ylk="t5:realestate;slk:realestate;" class="Td(n)! Td(u)!:h Fz(13px) D(b) Zoom Py(6px) Lh(1.25) C(#1d1da3)!">Real Estate</a></li></ul></div></div></li> </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://web.archive.org/web/20160217234258im_/https://s.yimg.com/rz/d/yahoo_finance_en-US_s_f_pw_351x40_finance.png); _background-image: url(https://web.archive.org/web/20160217234258im_/https://s.yimg.com/rz/d/yahoo_finance_en-US_s_f_pw_351x40_finance.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://web.archive.org/web/20160217234258im_/https://s.yimg.com/rz/d/yahoo_finance_en-US_s_f_pw_351x40_finance_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://web.archive.org/web/20160217234258/http://finance.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_finance_vert" data-webaction="https://search.yahoo.com/search" action="https://web.archive.org/web/20160217234258/http://finance.yahoo.com/q" 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" type="text" 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="s" aria-describedby="UHSearchBox" data-ylk="slk:srchinpt-hddn;itc:1;" data-yltvsearch="http://finance.yahoo.com/q" data-yltvsearchsugg="/" data-satype="mini" data-gosurl="https://s.yimg.com/aq/autoc" data-pubid="666" data-appid="" data-maxresults="10" data-resize=" "> <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_finance_vert" data-vsearch="http://finance.yahoo.com/q" data-vstext="Search News for: " data-vert_fin_search="https://finance.search.yahoo.com/search/"> </div></td> <!-- ".Grid' is used here to kill white-space --> <td class="Va(t) Tren(os) W(10%) Whs(nw) Pstart(4px) Pend(0) Bdcl(s)"><style type="text/css">#UH #UHSearchWeb { font-size:13px !important; border-radius:3px!important;}#UHSearchWeb, #UHSearchProperty{ height: 30px; min-width: 120px;} .ua-ie8 #UHSearchWeb, .ua-ie8 #UHSearchProperty, .ua-ie9 #UHSearchWeb, .ua-ie9 #UHSearchProperty{ height: 32px; min-width: 120px;}#UHSearchProperty, .Themable .ThemeReset #UHSearchProperty { background: #0f8ed8 !important; border: 0 !important; box-shadow: 0 2px #044e6e !important;}</style><input id="UHSearchProperty" class="D(ib) Fz(13px) 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) Cur(p)" type="submit" data-vfr="uh3_finance_vert" data-vsearch="http://finance.yahoo.com/q" value="Search Finance" data-ylk="t3:srch;t5:srchvert;slk:srchvert;elm:btn;elmt:srch;tar:;"></td> <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)" type="submit" value="Search Web" data-ylk="t3:srch;t5:srchweb;slk:srchweb;elm:btn;elmt:srch;itc=0;tar:;"></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 type="hidden" data-sa="0" id="fr" name="fr" data-ylk="slk:frcode-hddn;itc:1;" value="uh3_finance_web"/> <input type="hidden" id="uhb" name="uhb" value="uhb2"/></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> <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="/"> <a class="D(b) MouseOver Td(n) Td(n):h signin yucs-trigger Lh(1) Lts($ws)" href="https://web.archive.org/web/20160217234258/https://login.yahoo.com/config/login?.src=quote&.intl=us&.lang=en-US&.done=http://finance.yahoo.com/news/judge-apple-must-help-us-005604451.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://web.archive.org/web/20160217234258/https://mail.yahoo.com/?.intl=us&.lang=en-US&.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://web.archive.org/web/20160217234258/https://login.yahoo.com/account/personalinfo?.intl=us&.lang=en-US&.done=http://finance.yahoo.com/news/judge-apple-must-help-us-005604451.html&.src=quote" 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="finance" class="D(b) C(#000)! Td(n)! Td(u)!:h Fz(13px)" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/l/us/yahoo/finance/" 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="https://web.archive.org/web/20160217234258/http://feedback.yahoo.com/forums/170326-us-finance" 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="JoXmC2bhJ07"><!-- empty for ie --></div> <script>YMedia.use("event", "get", function(Y){ Y.once("load", function(){ Y.Get.js("https://web.archive.org/web/20160217234258/http://l.yimg.com/zz/combo?kx/yucs/uh3s/uh/414/js/uh-min.js&kx/yucs/uh2/common/145/js/jsonp-super-cached-min.js&kx/yucs/uh3s/uh/379/js/escregex-min.js&kx/yucs/uh3s/uh/376/js/persistence-min.js&kx/yucs/uh3s/uh/401/js/menu_group_plugin-min.js&kx/yucs/uh3s/uh/430/js/menu-plugin-min.js&kx/yucs/uh3s/uh/429/js/menu_handler_v2-min.js&kx/yucs/uh3s/uh/376/js/gallery-jsonp-min.js&kx/yucs/uh3s/uh/408/js/logo_debug-min.js&kx/yucs/uh3/uh/js/958/localeDateFormat-min.js&kx/yucs/uh3s/uh/409/js/timestamp_library-min.js&kx/yucs/uh3s/uh/376/js/usermenu_v2-min.js&kx/yucs/uh3/signout-link/10/js/signout-min.js&kx/yucs/uhc/rapid/48/js/uh_rapid-min.js&kx/yucs/uhc/meta/66/js/meta-min.js&kx/yucs/uh_common/beacon/18/js/beacon-min.js&kx/yucs/uh2/comet/84/js/cometd-yui3-min.js&kx/yucs/uh2/comet/84/js/conn-min.js&kx/yucs/uh2/comet/84/js/dark-test-min.js&kx/yucs/uh3/get-the-app/148/js/inputMaskClient-min.js&kx/yucs/uh3/get-the-app/160/js/get_the_app-min.js&kx/yucs/uh3/disclaimer/388/js/disclaimer_seed-min.js&kx/yucs/uh3s/top-bar/137/js/top_bar_v2-min.js&kx/yucs/uh3s/top-bar/139/js/home_menu-min.js&kx/yucs/uh3s/search/358/js/search-min.js&kx/yucs/uh3/search/611/js/search_plugin-min.js&kx/yucs/uh3s/help/70/js/help_menu_v4-min.js&kx/yucs/uh3/location/10/js/uh_locdrop-min.js&kx/yucs/uh2/pixie/5/js/pixie_ssl-min.js"); }); });</script></section><!-- fe888.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:59 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"> <section id="mediacontentfollowproperty_2_wrapper"> <div id="mediacontentfollowproperty_2" class="yom-mod yom-app yom-follow-property tiny" data-ylk="mid:mediacontentfollowproperty_2;mpos:1;sec:mod-sh-fwm;test:;itc:1;"> <div class="hd"> <h3 class="Grid-U App-Title Mend-0 follow-text">Follow Yahoo Finance</h3> </div> <div class="bd"> <ul> <li class="follow-property-facebook clearfix"> <div class="follow-icon small"><a class="Mt-2" href="https://web.archive.org/web/20160217234258/https://www.facebook.com/yahoofinance" 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"> <i class="Icon"></i> </a></div> <div class="follow-title"><a href="https://web.archive.org/web/20160217234258/https://www.facebook.com/yahoofinance" 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">on Facebook</a></div> </li> <li class="follow-property-twitter clearfix"> <div class="follow-icon small"><a class="Mt-2" href="https://web.archive.org/web/20160217234258/https://twitter.com/YahooFinance" 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"> <i class="Icon"></i> </a></div> <div class="follow-title"><a href="https://web.archive.org/web/20160217234258/https://twitter.com/YahooFinance" 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">on Twitter</a></div> </li> <li class="follow-property-tumblr clearfix"> <div class="follow-icon small"><a class="Mt-2" href="https://web.archive.org/web/20160217234258/http://yahoofinance.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:yahoofinance.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;" data-action-outcome="sh"> <i class="Icon"></i> </a></div> <div class="follow-title"><a href="https://web.archive.org/web/20160217234258/http://yahoofinance.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:yahoofinance.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;" data-action-outcome="sh">on Tumblr</a></div> </li> </ul> </div> </div></section> </div> <div class="yom-remote"><div class="yom-loading" id="mediamarkettimegs_2_container"><!-- --></div></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="#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"> <?xml version="1.0" encoding="utf-8"?><root></root> <div id="mediawatchlistgs_2" class="yom-mod yom-app yom-recent-quote watchlist-app fin-glass-disabled " data-ylk="sec:wtchlst-lhnav;"> <div class="hd Pos-r"> <div class="wl-title"> <h2 class="no-portfolios-header Fw-200 Fz-m M-0 Fl-start Ell Va-t">Recent</h2> </div> <div class="wl-display-toggle Pos-a B-0 End-0 Mb-2 Fz-xs C-darkGrey D-n"> <a href="#" class="positive-link selected interactive-click" data-watchlist-display="percent">%</a> | <a href="#" class="positive-link interactive-click" data-watchlist-display="price">$</a> </div> </div> <div class="watchlist-quotes-section FastTrans watchlist-display-percent show-two-columns"> <div class="bd Pos-r"> <div> <table class="quotes-table M-0 Tbl-f"> <tbody> <tr class="Fz-s Fw-n follow-quote-area" data-row-ticker="^TWII"> <td class="td-quote-col Pt-2 Pb-0 Ta-start Ell"><a href="/web/20160217234258/http://finance.yahoo.com/q?s=^twii" title="TSEC weighted index" class="Fw-400 quote-link no-pjax positive-link Ell Va-b" data-ylk="t1:a2;t2:wtchlst-lhnav;sec:wtchlst-lhnav;elm:itm;elmt:qte;itc:0;rspns:nav;cat:rcnt;">^TWII</a> <button class="follow-quote rapid-noclick-resp" data-flw-quote="^TWII"><i class="Icon"></i></button></td> <td class="yfi-price-change-green Pt-2 Pb-0 Ta-end Whs-nw"> <span id="yfs_pp0_^twii" class="ticker-percent-change pp0 Fw-500 D-ib"> <span class="yfi-price-change-green Fw-500">+0.03%</span> </span> <span id="yfs_l84_^twii" class="ticker-price-change l84 Fw-500 C-n D-ib"> <span class="Fw-500 C-n">8,214.25</span> </span> </td> </tr> </tbody> </table> </div> <div id="rq-more-quotes" class="rq-more-quotes Fz-xs GridSpread Mt-6"> <a href="#morequotes" class="Fw-n Pt-5 positive-link interactive-click Grid-U" data-link-type="more" data-ylk="t1:a2;t2:wtchlst-lhnav;t3:lst;sec:wtchlst-lhnav;elm:itm;elmt:mr;itc:1;rspns:op;cat:rcnt;">More <i class="Icon"></i> </a> <a href="#" data-popout-href="/_xhr/watchlist-popout/?popout_id=mediawatchlistgs_2" data-link-type="pop-out" class="positive-link Grid-U pop-out Disabled" data-ylk="t1:a2;t2:wtchlst-lhnav;t3:lst;sec:wtchlst-lhnav;elm:itm;elmt:po;itc:1;rspns:op;cat:rcnt;">Pop Out</a> </div> <div id="rq-overlay" class="rq-overlay D-n Pos-a Ov-v T-0"> <div class="overlay-container Ov-a"> <i class="rq-overlay-arrow Pos-a T-50"></i> <table class="more-quotes-table zebra-background" data-portfolio-id="_recent_quotes"> <thead> <tr> <th colspan="3" class="Fz-m Fw-400 Pb-12"> Recent Quotes </th> <th colspan="3" class="view-all Ta-end"> <a class="Fw-500 Fz-xs positive-link portfolio-view-all-link D-ib Mend-4" data-ylk="t1:a2;t2:wtchlst-lhnav;t3:pop;sec:wtchlst-lhnav;elm:itm;elmt:qte;itc:0;rspns:nav;cat:rcnt;" href=""></a> | <a href="#" data-popout-href="/_xhr/watchlist-popout/?popout_id=mediawatchlistgs_2" class="Fw-500 Fz-xs positive-link D-ib Mstart-4 pop-out Disabled" data-ylk="t1:a2;t2:wtchlst-lhnav;t3:lst;sec:wtchlst-lhnav;elm:itm;elmt:po;itc:1;rspns:op;cat:rcnt;">Pop Out</a> </th> </tr> </thead> <tbody> <tr class="Fz-xs Fw-400 more-quotes-header" bgcolor="#ffffff"> <th colspan="1">Symbol</th> <th class="Ta-end">Price</th> <th class="Ta-end">Change</th> <th class="Ta-end">% Change</th> <th class="Ta-end">Market Cap</th> <th class="Ta-end">Chart</th> </tr> <tr class="Fz-s Fw-n follow-quote-area"> <td class="td-quote-col"> <a href="/web/20160217234258/http://finance.yahoo.com/q?s=^twii" title="TSEC weighted index" class="Fw-400 quote-link no-pjax positive-link Ell Va-b" data-ylk="t1:a2;t2:wtchlst-lhnav;t3:pop;sec:wtchlst-lhnav;elm:itm;elmt:qte;itc:0;rspns:nav;cat:rcnt;">^TWII</a> <button class="follow-quote rapid-noclick-resp" data-flw-quote="^TWII"><i class="Icon"></i></button> </td> <td> <span id="yfs_l84_^twii" class="l84 Fw-500">8,214.25</span> </td> <td class="yfi-price-change-green"> <span id="yfs_c63_^twii" class="c63 Fw-500"> <span class="yfi-price-change-green">+2.18</span> </span> </td> <td class="yfi-price-change-green"> <span id="yfs_pp0_^twii" class="pp0 Fw-500"> <span class="yfi-price-change-green">+0.03%</span> </span> </td> <td> <span class="Fw-500">—</span> </td> <td class="rq-sparkline-chart"> <a href="/web/20160217234258/http://finance.yahoo.com/q?s=^twii" title="TSEC weighted index" data-ylk="t1:a2;t2:wtchlst-lhnav;t3:pop;t4:lst;sec:wtchlst-lhnav;elm:img;elmt:qte;itc:0;rspns:nav;cat:rcnt;cpos:1;"> <img class="ImageLoader-Delayed" data-imageloader-src="https://web.archive.org/web/20160217234258/http://chart.finance.yahoo.com/instrument/1.0/^TWII/chart;range=1d/image;size=70x15?region=US&lang=en-US&scheme=gsbeta" src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-95031.png" alt="TSEC weighted index" width="70" height="15"/> </a> </td> <td class="rq-delete-icon Bgc-w"> <button class="Bd-0 Bgc-w" data-delete-ticker="^TWII"> <i class="Icon" data-delete-ticker="^TWII"></i> </button> </td> </tr> </tbody> </table> </div> </div> </div> <script>if(!window.yfs_module_params) { yfs_module_params = { s : [], k : ['c63','l84','p43','t53','t10'] }; } yfs_module_params.s.push('^TWII')</script> </div> </div> <script>YMedia.use("event-custom", function(Y) { Y.on("rapid:init", function(){ var rapid = YMedia.rapid; if (rapid) { rapid.addModules("mediawatchlistgs_2"); } } ); } );</script> <!-- fe887.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:59 UTC 2016 --> <div id="mediaquotessearchgs_2" class="yom-mod yom-quotes-search " mode="search"> <div class="bd"> <form accept-charset="UTF-8" method="GET" action="/web/20160217234258/http://finance.yahoo.com/q" name="quote" id="quote" class="get-quotes has-button"> <i class="magIcon"></i> <input placeholder="Quote Lookup" type="text" autocomplete="off" value="" name="s" id="txtQuotes" class="get-quotes-box"> <input type="hidden" autocomplete="off" value="1" name="ql" id="get_quote_logic_opt"> <input type="submit" class="get-quotes-button rapid-nf Bdrs" value="Go" id="btnQuotes"> </form> <script> var tempInputElem = document.createElement('input'); var isPlaceHolder = ('placeholder' in tempInputElem); if (!isPlaceHolder) { YUI().use('node', function (Y) { var acInputBoxEl = Y.one("#txtQuotes"); var placeHolderValue = acInputBoxEl.getAttribute('placeholder'); var preInitVal = acInputBoxEl.get('value'); acInputBoxEl.on("focus", function() { acInputBoxEl.set('value', ''); acInputBoxEl.removeClass("hint"); }); acInputBoxEl.on("blur", function() { var value = acInputBoxEl.get('value'); if (value === null || value.length === 0) { acInputBoxEl.set('value', placeHolderValue); acInputBoxEl.addClass("hint"); } }); if (preInitVal === undefined || preInitVal.length === 0 || preInitVal === placeHolderValue) { acInputBoxEl.set('value', placeHolderValue); acInputBoxEl.addClass("hint"); } }); } </script> <div id="quoteContainer" class="yui-ac-container yui3-aclist" style="display:none"> <div class="yui-ac-content yui3-aclist-content"> <div class="yui-ac-hd" style="display: none;"></div> <div class="yui-ac-bd"> <ul id="resQuotes"></ul> </div> <div class="yui-ac-ft"> <div class="moreresults"> <a href="javascript:;"></a> </div> <div class="tip"><em>Tip :</em> Use comma (,) to separate multiple quotes. <a href="https://web.archive.org/web/20160217234258/http://help.yahoo.com/l/us/yahoo/finance/quotes/quotelookup.html">Learn more...</a></div> </div> </div> </div> </div> </div> <div id="mediacontentnavigation_2" 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="/web/20160217234258/http://finance.yahoo.com/" data-tags="yfinance:navigation=home" data-cpos="1" data-ylk="itc:0;tar:finance.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">Finance Home</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/portfolios.html" title="portfolio nav" class="nav-fin-portfolios no-pjax" data-ylk="itc:0;tar:finance.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">My Portfolio</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/my-quotes-news/" data-ylk="itc:0;tar:finance.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">My Quotes News</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/market-overview/" data-tags="ynews:mark=yfin-markets" data-cpos="4" data-ylk="itc:0;tar:finance.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">Market Data</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/yahoofinance/" title="Yahoo Originals" data-tags="ynews:mark=yfin-originals" data-cpos="5" data-ylk="itc:0;tar:finance.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">Yahoo Originals</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/news/" data-tags="ynews:mark=yfin-business" data-cpos="6" data-ylk="itc:0;tar:finance.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">Business & Finance</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/personal-finance/" title="Personal Finance" class="&amp;amp;amp;amp;amp;amp;quot;new&amp;amp;amp;amp;amp;amp;quot;" data-tags="ynews:mark=yfin-personal-finance, ynews:mark=yfin-personal" data-cpos="7" data-ylk="itc:0;tar:finance.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">Personal Finance</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/cnbc/" title="Business News from CNBC" data-tags="ynews:mark=yfin-cnbc" data-cpos="8" data-ylk="itc:0;tar:finance.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">CNBC</a> </li> <li> <a href="/web/20160217234258/http://finance.yahoo.com/contributors/" title="Contributors" data-ylk="itc:0;tar:finance.yahoo.com;ct:naventry;rspns:nav;t1:a2;t2:lnav;t3:st;t4:m-1;sec:lnav;elm:itm;elmt:cat;cpos:9;" data-action-outcome="navigate">Contributors</a> </li> </ul> </nav> </div> <div id="applet_1309776348344944" class="js-applet" data-applet-guid="1309776348344944" data-applet-type="td-applet-games"> <div class="App-Bd"> <div class="App-Main" data-region="main"> <div class="js-applet-view-container-main"> <style type="text/css"> .BreakPoint .games-rating { font-size: 0.88em; } </style> <div style="padding-top:20px;padding-left:5px;"> <div data-groupitems="3" class="Pb-6"> <h2 class="Grid-U Mt-0 games-autocolor-h2hd" style="font-size:14px;font-size:1.4rem;color:black;"> Recommended Games </h2> <div style="margin-right:-6px"> <div class="D-ib Carousel-Mask W-100 Ov-h Zoom-1 Pos-r"> <ul class="Carousel-Slider Grid Row Reset Pos-r Whs-nw "><li class="Carousel-Item Grid-U-1-3 Bp-1-2 Pos-r"> <div class="Pend-6"> <a href="https://web.archive.org/web/20160217234258/https://games.yahoo.com/game/bricks-breaking.html?_s_icmp=finance&adid=gsappngfinancerecommended&adcamp=gsappng&adop=org&adprop=finance&adpos=recommended" class="D-b games-reco" title="Bricks Breaking" id="games-reco-1" data-ylk="itc:0;t1:a4;t2:games;sec:app-games;elm:itm;elmt:reco;slk:Bricks Breaking;cpos:1;test:false;"> <span class="Pos-r D-b Mb-4 Zoom-1 hov-1"> <img src="https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/yRlDDxnjmpb78It6a.6_YQ--/YXBwaWQ9eW5ld3M7dz05MjtoPTkyO2ZpPWZpbGw7cHhvZmY9NTA7cHlvZmY9MTAw/https://s.yimg.com/os/games/global/bab136f5-3faf-4d41-9369-d1cc1d9ab8e2/logo/d0776bd486fa0eb16f2dc0f5e6aa016e.jpg" title="Bricks Breaking" class="W-100"></img> </span> </a> </div> </li><li class="Carousel-Item Grid-U-1-3 Bp-1-2 Pos-r"> <div class="Pend-6"> <a href="https://web.archive.org/web/20160217234258/https://games.yahoo.com/game/marble-lines-flash.html?_s_icmp=finance&adid=gsappngfinancerecommended&adcamp=gsappng&adop=org&adprop=finance&adpos=recommended" class="D-b games-reco" title="Marble Lines" id="games-reco-2" data-ylk="itc:0;t1:a4;t2:games;sec:app-games;elm:itm;elmt:reco;slk:Marble Lines;cpos:2;test:false;"> <span class="Pos-r D-b Mb-4 Zoom-1 hov-2"> <img src="https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/.LhvnJNNhmqj_JnpcFWemA--/YXBwaWQ9eW5ld3M7dz05MjtoPTkyO2ZpPWZpbGw7cHhvZmY9NTA7cHlvZmY9MTAw/https://s.yimg.com/os/446/2013/06/21/marble-lines-20x20-jpg_223438.jpg" title="Marble Lines" class="W-100"></img> </span> </a> </div> </li><li class="Carousel-Item Grid-U-1-3 Bp-1-2 Pos-r"> <div class="Pend-6"> <a href="https://web.archive.org/web/20160217234258/https://games.yahoo.com/game/shape-inlay-flash.html?_s_icmp=finance&adid=gsappngfinancerecommended&adcamp=gsappng&adop=org&adprop=finance&adpos=recommended" class="D-b games-reco" title="Shape Inlay" id="games-reco-3" data-ylk="itc:0;t1:a4;t2:games;sec:app-games;elm:itm;elmt:reco;slk:Shape Inlay;cpos:3;test:false;"> <span class="Pos-r D-b Mb-4 Zoom-1 hov-3"> <img src="https://web.archive.org/web/20160217234258im_/http://l2.yimg.com/bt/api/res/1.2/e2OTvFaPp0CIvQ1KWPPWFA--/YXBwaWQ9eW5ld3M7dz05MjtoPTkyO2ZpPWZpbGw7cHhvZmY9NTA7cHlvZmY9MTAw/https://s.yimg.com/os/446/2014/04/29/shape-inlay-60x60-jpg_182052.jpg" title="Shape Inlay" class="W-100"></img> </span> </a> </div> </li></ul> </div> </div> </div> <div class="Pb-6"> <a id="games-footer-more" href="https://web.archive.org/web/20160217234258/https://games.yahoo.com/?_s_icmp=finance&adid=gsappngfinancemoregames&adcamp=gsappng&adop=org&adprop=finance&adpos=moregames" data-ylk="itc:0;t1:a4;t2:games;sec:app-games;elm:mr;elmt:moregames;test:false;">More games »</a> </div> </div> <!-- {"version":"0.1.201"} --> </div> </div> </div> </div><script>YMedia.applyConfig({"groups":{"td-applet-games":{"base":"https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/td/td-applet-games-0.1.201/","root":"os/mit/td/td-applet-games-0.1.201/","combine":true,"filter":"min","comboBase":"https://web.archive.org/web/20160217234258/http://l.yimg.com/zz/combo?","comboSep":"&"}}});</script><script>window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap["1309776348344944"] = {"applet_type":"td-applet-games","models":{"games":{"yui_module":"td-games-model","yui_class":"TD.Games.Model"},"applet_model":{"models":["games"]}},"views":{"main":{"yui_module":"td-games-mainview","yui_class":"TD.Games.MainView"}},"templates":{"main":{"yui_module":"td-applet-games-templates-main","template_name":"td-applet-games-templates-main"}},"i18n":{"TITLE":"Yahoo Games","RECO_GAME":"Recommended Games","MY_GAME":"My Games","PLAY_NOW":"Play Now","PLAY_COUNT":"{0} plays","FIND_GAMES":"Find games","GO":"Go","MORE_GAMES_LINK":"More games »","GO_TO_GAMES":"Go To Games","GAME_CATEGORY":"Category:","GAME_PLAY_COUNT":"Game Plays:","GAME_PLAYS":"{0}","GAME_PLAYS_THOUSANDS":"{0},000","GAME_PLAYS_TEN_THOUSANDS":"{0}0,000","GAME_PLAYS_HUNDRED_THOUSANDS":"{0}00,000","GAME_PLAYS_MILLIONS":"{0} million","CATEGORY_ACTION":"Action","CATEGORY_ARCADE":"Arcade","CATEGORY_BOARD":"Board","CATEGORY_CARD":"Card","CATEGORY_CASINO":"Casino","CATEGORY_DAILY":"Daily","CATEGORY_MOBILE":"Mobile","CATEGORY_PUZZLE":"Puzzle","CATEGORY_RPG":"RPG","CATEGORY_SIMULATION":"Simulation","CATEGORY_STRATEGY":"Strategy","CATEGORY_WORD":"Word"},"transport":{"xhr":"/_td_api"},"context":{"bucket":"","crumb":"ccZXhDx.mql","device":"desktop","lang":"en-US","region":"US","site":"finance"}};</script> <div id="mediadisclaimergs_2" class="yom-mod yom-app yom-disclaimer"> <div class="bd"> <div id="comp_broker" class="fz-3xs"> <a href="/web/20160217234258/http://finance.yahoo.com/broker-comparison" class="positive-link" data-ylk="t1:a2;t2:dsclm;sec:dsclm;elm:itm;elmt:link;itc:0;rspns:nav;">Compare Brokers</a> </div> </div> </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"> <div id="applet_5454363810539925" class="js-applet" data-applet-guid="5454363810539925" data-applet-type="td-applet-photoheader"> <div class="App-Bd"> <div class="App-Main" data-region="main"> <div class="js-applet-view-container-main"> <div id="td-photoheader" class="SlowTrans Pos-r Z-3 Cf Ov-h"> <div class="W-100 Pos-r tie-title"> </div> </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><script>YMedia.applyConfig({"groups":{"td-applet-photoheader":{"base":"https://web.archive.org/web/20160217234258/http://l.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://web.archive.org/web/20160217234258/http://l.yimg.com/zz/combo?","comboSep":"&"}}});</script><script>window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap["5454363810539925"] = {"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":"mrs-ynews.mrs.o.yimg.com","key":"mrs.ynews.crumbkey","app_id":"ynews"},"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":"fragment","configId":"MediaApeAppletConfig","hide":"0","mod_units":"19","content_type":"story","is_sponsored":"0","provider_id":"ap.org","provider_name":"Associated Press","spaceid":"1183300101","mod_id":"td-applet-photoheader","content_id":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","useSponsorshipStore":"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":"lT1eRxLXlziQswL4oF.KJ0mTZQA-","chrome":1,"header":1,"footer":1,"toolbar":0,"initStencil":0,"initApplet":0,"isSsl":false}}},"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":"ccZXhDx.mql","device":"desktop","lang":"en-US","region":"US","site":"finance"}};</script> <section id="mediacontentstory" class="yom-mod yom-card-main yom-article" data-uuid="8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb" 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">Apple resisting magistrate order to share iPhone information</h1> <h2 class="subheadline">Apple Inc. CEO Tim Cook says his company will resist a federal magistrate's order to hack its own users in connection with the investigation of the San Bernardino, California shootings</h2> </header> <div class="credit-bar clearfix "> <div class="credit-bar-inner"> <div class="credit"> <a href="https://web.archive.org/web/20160217234258/http://www.ap.org/" data-ylk="sec:content;slk:provider;itc:0;tar:www.ap.org;ltxt:AssociatedPress;"><img src="https://web.archive.org/web/20160217234258im_/http://l2.yimg.com/bt/api/res/1.2/IazTRTfX8M0Biz.SO9ZZig--/YXBwaWQ9eW5ld3NfbGVnbztxPTg1/https://media.zenfs.com/creatr-images/GLB/2015-04-20/94e89b90-e7b0-11e4-9ea9-23e8763fec68_Associated-Press.png" alt="Associated Press" class="provider-img"></a> <div class="credit-text"> <cite class="byline vcard top-line"> <span>By </span><span class="fn">TAMI ABDOLLAH and ERIC TUCKER</span> <abbr>8 hours ago</abbr> </cite> <span class="bottom-line"> </span> </div> </div> </div> <div class="interest-bar"> <div class="action-bar"> <div class="action-bar-wrapper"> <div class="yom-share-btns-container light"><div class="share-btns-int-container"> <div class="share-btns" role="menu"> <ul><li class="share-btn tumblr"><a href="https://web.archive.org/web/20160217234258/https://www.tumblr.com/share/photo?clickthru=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dtu&caption=Apple%20Inc.%20CEO%20Tim%20Cook%20says%20his%20company%20will%20fight%20a%20federal%20magistrate%27s%20order%20to%20hack%20its%20users%20in%20connection%20with%20the%20investigation%20of%20the%20San%20Bernardino%20shootings%2C%20asserting%20that%20would%20undermine%20encryption%20...&source=http%3A%2F%2Fl3.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FTPEct8bPpbOVD.JaNVc_aw--%2FYXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.pd2upload.com%2Fvideo.yahoofinance.com%404a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg" role="link" title="Share on Tumblr" data-share-key="tumblr" target="_blank"><span class="Icon btn-icon btn-tumblr small"></span></a></li><li class="share-btn facebook"><a href="https://web.archive.org/web/20160217234258/https://www.facebook.com/dialog/feed?app_id=90376669494&redirect_uri=http%3A%2F%2Ffinance.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dfb&link=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dfb&picture=http%3A%2F%2Fl3.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FTPEct8bPpbOVD.JaNVc_aw--%2FYXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.pd2upload.com%2Fvideo.yahoofinance.com%404a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg&name=Apple+resisting+magistrate+order+to+share+iPhone+information&description=Apple+Inc.+CEO+Tim+Cook+says+his+company+will+fight+a+federal+magistrate%27s+order+to+hack+its+users+in+connection+with+the+investigation+of+the+San+Bernardino+shootings%2C+asserting+that+would+undermine+encryption+...&display=popup&show_error=yes" role="link" title="Share on Facebook" data-share-key="facebook" target="_blank"><span class="Icon btn-icon btn-facebook small"></span></a></li><li class="share-btn twitter"><a href="https://web.archive.org/web/20160217234258/https://twitter.com/share?text=Apple+resisting+magistrate+order+to+share+iPhone+information&url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dtw&via=YahooFinance" role="link" title="Share on Twitter" data-share-key="twitter" target="_blank"><span class="Icon btn-icon btn-twitter small"></span></a></li><li class="share-btn mail"><a href="https://web.archive.org/web/20160217234258/http://finance.yahoo.com/_xhr/mtf_popup/?url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentstory%26soc_trk%3Dma&site=finance&region=US&lang=en-US&content_id=8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb&alias_id=story%3Djudge-apple-must-help-us-005604451" class="rapid-noclick-resp" role="link" title="Email to friends" data-share-key="mail" target="_blank"><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://web.archive.org/web/20160217234258/https://settings.yahoo.com/interests" target="_blank" data-ylk="sec:actn-bar;itc:0;t2:actn-bar;t3:drwr;elm:itm;elmt:pref">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">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:6aee0b1d-9a35-3eec-b987-f501624b8d4c;g:8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb;aid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578;ct:3;cpos:1;"></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://web.archive.org/web/20160217234258im_/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://web.archive.org/web/20160217234258im_/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 > .msg, #Stencil .channel-applet-wrap .pause-screen .upnext-pause > .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_1309795382162892" class="js-applet" data-applet-guid="1309795382162892" data-applet-type="td-applet-videoplayer"> <div class="App-Bd"> <div class="App-Main" data-region="main"> <div class="js-applet-view-container-main"> <style> </style> <div class="channel-applet-wrap mode-embedtron Ov-h W-100"> <div class="vp-wrap Pos-r embed"> <div class="vp-container smooth"> <div id="ym-player"></div> <div class="player-maestro hide-ss"> <div class="splash-screen Pos-a T-0 B-0 Start-0 End-0"> <p class="title M-0">Apple to fight court order on San Bernadino case</p> </div> <div class="pause-screen Pos-a T-0 B-0 Start-0 End-0" data-uuid="4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="Pos-a W-100 H-100 maestro-bgimg im-elm ImageLoader ImageLoader-Delayed" alt="" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/x5LkoqLEhVa_zbeg9sOyaQ--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95')"> <div class="Pos-a W-100 H-100 maestro-bgimg-ov im-elm"></div> <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"><i class="Icon Fz-s"></i></button> <button class="flat play-countdown Cur-p"><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">Apple to fight court order on San Bernadino case</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 class="ss-item" data-uuid="4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578" data-idx="1" data-alias="apple-fight-court-order-san-144843124" data-action-outcome="ne" data-action="Click" data-ylk="slk:Apple to fight court order on San Bernadino case;sec:intermezzo-replay;rapid-base:null;"> <div class="Pos-r Ov-h current-thumb-container Cur-p"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 pl-img ImageLoader ImageLoader-Delayed" alt="Apple to fight court order on San Bernadino case" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/QAec4iBmVrXSG7W10KjNnA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg')"> <div class="Pos-a T-0 B-0 Start-0 End-0 overlay"> <div class="Pos-a Start-0 T-50 replay-cont W-100 Ta-c"> <i class="Mt-0 D-b Mb-2 Icon Mx-a"></i> <span class="Fz-s Fw-b Mt-0 Mb-6 D-b msg">Replay video</span> </div> </div> </div> </div> </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 class="ss-item" data-uuid="54253f15-84af-367a-bd20-5dcddeeb28d4" data-idx="1" data-alias="iphone-6s-6s-plus-review-062817747" data-action-outcome="ne" data-action="Click" data-ylk="rule:articletovideo;id:54253f15-84af-367a-bd20-5dcddeeb28d4;algo:mms;slk:iPhone 6S and 6S Plus review;sec:pause-screen-upnext;"> <div class="Pos-r Ov-h current-thumb-container Cur-p Whs-nw"> <div class="W-60 pl-info Whs-n D-ib Va-t"> <div class="P-8"> <span class="Fz-2xs Py-2 lspace Px-6 smooth C-1 D-ib Va-t Tt-u marker Mb-4">Up next</span> <p class="pl-title LineClamp Fz-s Mt-4 Mb-0"> iPhone 6S and 6S Plus review </p> </div> </div> <div class="W-40 Va-m Pos-r pl-img D-ib Pos-r Va-t"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/_SRUGTBLCRmgQZkqrBywog--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95')"> <span class="hover-overlay Pos-a Start-0 End-0 T-0 B-0"><span class="pl-button Pos-a T-50 Start-50"><i class="Icon Fz-l"></i></span></span> </div> </div> </div> </div> </div> <button class="flat Pos-a T-50 Start-50 play-btn ctrl ps-elm"><i class="Icon Fz-2xl"></i></button> <button class="flat Pos-a T-50 Start-50 pause-btn ctrl ps-elm"><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 class="thumb-ov Pos-r M-10 P-0 Whs-nw Cur-p ss-item" data-uuid="54253f15-84af-367a-bd20-5dcddeeb28d4" data-idx="1" data-alias="iphone-6s-6s-plus-review-062817747"> <div class="Ratio-16-9 Pos-r Ov-h"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 pl-img ImageLoader ImageLoader-Delayed" alt="iPhone 6S and 6S Plus review" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/_SRUGTBLCRmgQZkqrBywog--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95')"> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-4 smooth East Tt-u D-b">Up next</span> <div class="Pos-a T-0 B-0 Start-0 End-0 hover-overlay"> <button class="close-upnext-tease Bgc-t Bd-0 C-1 Pos-a End-0 Mend-4 Mt-4"><i class="Icon"></i></button> <span class="pl-button"><i class="Icon Fz-xl"></i></span> </div> <div class="overlay-text Pos-a B-0 Start-0 End-0"> <p class="Ell pl-title Px-6 Mb-4"> iPhone 6S and 6S Plus review </p> </div> </div> </div> </div> </div> </div> <div class="pl-list Pos-a collapsed"> <div class="playlist-grip Z-5"> <i class="Icon"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/dh/ap/default/140828/gripIcon.png" alt="playlist_grip"> </i> </div> <div class="playlist-wrap C-1 Pos-r Z-5" data-ylk="cat:Finance Video;t4:Finance Video;"> <div class="Td-n C-1"> <div id="channel-header" class="GridVCenter" data-default-playlist-icon="http://l.yimg.com/os/mit/ape/s/eed4eed/playlistIcon.png"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/s/eed4eed/playlistIcon.png" width="35px" height="35px" alt="Finance Video"> <p class="full-name Mstart-4 Op-100 D-ib Fz-l Fw-100 smooth lspace">Finance Video</p> </div> </div> <div data-channel-alias="finance-videotron" data-name="Finance Video" class="playlist scroll-bound Ov-h Pos-r Grid-U"> <div class="Bxz-bb M-0 Mah-100 Ov-h Ovy-s scroll-content Ws-n"> <ul class="M-0"> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578" data-idx="0"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/apple-fight-court-order-san-144843124.html" class="rapidnofollow" data-ylk="rapid-base:null;" data-alias="apple-fight-court-order-san-144843124" title="Apple to fight court order on San Bernadino case"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">1</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="Apple to fight court order on San Bernadino case" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/QAec4iBmVrXSG7W10KjNnA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">2:45 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> Apple to fight court order on San Bernadino case </p> <p class="Dn pl-desc">Apple to fight court order to help hack San Bernadino terrorist iPhone</p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="54253f15-84af-367a-bd20-5dcddeeb28d4" data-idx="1"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-6s-plus-review-062817747.html" class="rapidnofollow" data-ylk="rule:articletovideo;id:54253f15-84af-367a-bd20-5dcddeeb28d4;algo:mms;" data-alias="iphone-6s-6s-plus-review-062817747" title="iPhone 6S and 6S Plus review"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">2</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="iPhone 6S and 6S Plus review" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/_SRUGTBLCRmgQZkqrBywog--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">6:46 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> iPhone 6S and 6S Plus review </p> <p class="Dn pl-desc">iPhone 6S and 6S Plus review</p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="c9f634d2-be01-33f7-91c3-5036d7c6ea00" data-idx="2"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-review-221716591.html" class="rapidnofollow" data-ylk="rule:articletovideo;id:c9f634d2-be01-33f7-91c3-5036d7c6ea00;algo:mms;" data-alias="iphone-6s-hands-review-221716591" title="iPhone 6s Hands On Review"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">3</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="iPhone 6s Hands On Review" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s1.yimg.com/uu/api/res/1.2/.9dQF8e5oc8BdWbP.1TT5Q--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">3:24 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> iPhone 6s Hands On Review </p> <p class="Dn pl-desc">iPhone 6s Hands On Review We review the Apple iPhone 6S, a subtle upgrade to last year’s model that might go unnoticed by your friends, but that hides a number of convenient and fun new features.<a href="http://www.digitaltrends.com/apple-videos/iphone-6s-hands-on-review/">Read More</a></p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="545e479b-4f50-3a8e-bc0f-9b17034a0123" data-idx="3"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-tips-tricks-153407280.html" class="rapidnofollow" data-ylk="rule:articletovideo;id:545e479b-4f50-3a8e-bc0f-9b17034a0123;algo:mms;" data-alias="iphone-6s-tips-tricks-153407280" title="iPhone 6s Tips and Tricks"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">4</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="iPhone 6s Tips and Tricks" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/dv76bwpso1t8qdEAm6pNrA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">3:09 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> iPhone 6s Tips and Tricks </p> <p class="Dn pl-desc">iPhone 6s Tips and Tricks Have you got a decent handle on what your new iPhone 6S or 6S Plus is actually capable of? It may look just like its predecessor, but your new iPhone has hidden depths. Apple adds all sorts of new capabilities with each new model, but they’re not always obvious. If […]<a href="http://www.digitaltrends.com/apple-videos/iphone-6s-tips-and-tricks-2/">Read More</a></p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="c0a45562-f539-36e4-a498-8b44b7149427" data-idx="4"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-plus-hands-review-231527109.html" class="rapidnofollow" data-ylk="rule:articletovideo;id:c0a45562-f539-36e4-a498-8b44b7149427;algo:mms;" data-alias="iphone-6s-plus-hands-review-231527109" title="iPhone 6S Plus Hands On Review"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">5</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="iPhone 6S Plus Hands On Review" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s1.yimg.com/uu/api/res/1.2/gcyy5iFzEIBGxNPDfWm1NA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">3:24 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> iPhone 6S Plus Hands On Review </p> <p class="Dn pl-desc">iPhone 6S Plus Hands On Review Apple’s really gone all out with the new iPhone 6S Plus. The camera upgrade, new processor, 2GB of RAM, and 3D Touch are all key differentiators that make the iPhone 6S Plus worth considering.<a href="http://www.digitaltrends.com/apple-videos/iphone-6s-plus-hands-on-review/">Read More</a></p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="4f64ae48-d072-3a18-ba11-b732e04f782a" data-idx="5"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-225632820.html" class="rapidnofollow" data-ylk="rule:articletovideo;id:4f64ae48-d072-3a18-ba11-b732e04f782a;algo:mms;" data-alias="iphone-6s-hands-225632820" title="iPhone 6S – Hands on"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">6</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="iPhone 6S – Hands on" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s1.yimg.com/uu/api/res/1.2/V3M03GpvuSsSbojBZbV0mg--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">3:26 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> iPhone 6S – Hands on </p> <p class="Dn pl-desc">iPhone 6S - Hands on Apple’s September 9 event was jam packed with cool new products and features, but the headliner of the the event was the iPhone 6S and iPhone 6S Plus launch. Here’s everything you need to know about the new iPhones. A 12-megapixel camera with 4K video The iPhone 6S’s camera finally […]<a href="/apple-videos/iphone-6s-hands-on/">Read More</a></p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="1dc9313b-ac0f-3fb5-91f6-e8408761a97b" data-idx="6"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/stocks-stage-three-day-winning-222645028.html" class="rapidnofollow" data-ylk="cat:Finance Video;g:1dc9313b-ac0f-3fb5-91f6-e8408761a97b;pkgt:1;pub:035d06c6-fa08-3ca2-824d-b9d08b6facff;sec:Finance Video;cpos:1;bpos:1;" data-alias="stocks-stage-three-day-winning-222645028" title="Stocks stage three-day winning streak; oil bounces back"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">7</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="Stocks stage three-day winning streak; oil bounces back" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s1.yimg.com/uu/api/res/1.2/NSWzxRRyPvX4r5ajKS3sKg--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">15:13 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> Stocks stage three-day winning streak; oil bounces back </p> <p class="Dn pl-desc">Yahoo Finance breaks down the biggest stories of the day and looks at tomorrow&#39;s headlines today.</p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="b04f7470-50b2-3870-8a61-70fa4a5e42b1" data-idx="7"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/jeff-saut-ready-call-market-220630117.html" class="rapidnofollow" data-ylk="cat:Finance Video;g:b04f7470-50b2-3870-8a61-70fa4a5e42b1;pkgt:1;pub:035d06c6-fa08-3ca2-824d-b9d08b6facff;sec:Finance Video;cpos:2;bpos:1;" data-alias="jeff-saut-ready-call-market-220630117" title="Is Jeff Saut ready to call a market bottom?"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">8</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="Is Jeff Saut ready to call a market bottom?" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/uu/api/res/1.2/nLzrr6Lg6UrhpA0MNh7s5A--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">3:49 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> Is Jeff Saut ready to call a market bottom? </p> <p class="Dn pl-desc">He called the bottom back in August, but is Jeff Saut calling the bottom here? Joining us now to discuss is the man himself.</p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="a0d2e587-7441-3c9f-bc5d-062e04198424" data-idx="8"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/major-downturn-store-215808348.html" class="rapidnofollow" data-ylk="cat:Finance Video;g:a0d2e587-7441-3c9f-bc5d-062e04198424;pkgt:1;pub:035d06c6-fa08-3ca2-824d-b9d08b6facff;sec:Finance Video;cpos:3;bpos:1;" data-alias="major-downturn-store-215808348" title="Is a major downturn in store?"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">9</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="Is a major downturn in store?" style="background-image:url('https://web.archive.org/web/20160217234258im_/https://s1.yimg.com/uu/api/res/1.2/B47DnaFsdUkyQv7jmu4sCA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">2:57 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> Is a major downturn in store? </p> <p class="Dn pl-desc">With both stocks and oil up for the day, it seems their slight divergence earlier this week was only temporary. Yahoo Finance&#39;s Justine Underhill and Louise Yamada, Managing Director of Louise Yamada Technical Research Advisors, have a closer look at the charts.</p> </div> </a> </li> <li class="Grid Trigger Pos-r Py-4 pl-item" data-uuid="42002393-cde2-3ed9-b025-41cc947e491d" data-idx="9"> <a href="https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/wall-street-favorite-candidates-214838015.html" class="rapidnofollow" data-ylk="cat:Finance Video;g:42002393-cde2-3ed9-b025-41cc947e491d;pkgt:1;pub:035d06c6-fa08-3ca2-824d-b9d08b6facff;sec:Finance Video;cpos:4;bpos:1;" data-alias="wall-street-favorite-candidates-214838015" title="These are Wall Street’s new favorite candidates"> <div class="Grid-U Wpx-24 Va-m Fz-xs Ta-c pl-order"> <p class="playlist-order">10</p> <i class="Icon Fz-3xs C-1"></i> </div> <div class="Grid-U-1-3 Pos-r Ov-h Va-m intrinsic-ratio pl-img"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/ape/m/81f43c2/t.gif" class="W-100 ImageLoader ImageLoader-Delayed" alt="These are Wall Street’s new favorite candidates" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/uu/api/res/1.2/pjPNQaBInzzHZFukgMTuIw--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg')"> <p class="Fz-xs duration Pos-a B-0 End-0 Py-2 Px-4 M-0">1:44 </p> <span class="current pl-marker Pos-a T-0 B-0 Start-0 End-0 C-1 Fz-xs Py-4 Px-6 smooth Tt-u Ta-c">Now watching</span> <span class="next pl-marker Pos-a C-1 Fz-2xs Py-4 Px-6 smooth Tt-u">Up next</span> </div> <div class="Grid-U Pstart-8 pl-info"> <p class="pl-title LineClamp Fz-s Mt-0 Mb-2"> These are Wall Street’s new favorite candidates </p> <p class="Dn pl-desc">Wall Street is piling money into some of the presidential candidates’ Super PACs.</p> </div> </a> </li> <div class="load-more GridVCenter Ta-c"><button class="Btn Primary">Load More</button></div> </ul> </div> </div> </div> </div> </div> </div> <!-- Schema.org Microdata --> <div class="D-n" itemprop="video" itemscope itemtype="http://schema.org/VideoObject" data-model="VideoMetadata@VideoMetadata"> <meta itemprop="name" content="Apple to fight court order on San Bernadino case"> <meta itemprop="description" content="Apple to fight court order to help hack San Bernadino terrorist iPhone"> <meta itemprop="url" content="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html"> <meta itemprop="embedURL" content="https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html?format=embed"> <meta itemprop="thumbnailUrl" content="https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/QAec4iBmVrXSG7W10KjNnA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"> <meta itemprop="videoQuality" content="hd"> <meta itemprop="duration" content="PY0M0D0TH0M2S45"> <meta itemprop="datePublished" content="2016-02-17T14:47:28Z"> <meta itemprop="dateCreated" content="2016-02-17T14:48:43Z"> <span itemprop="provider" itemscope itemtype="http://schema.org/Organization"> <meta itemprop="name" content="Yahoo Finance Video"> </span> <span itemprop="isPartOf" itemscope itemtype="https://schema.org/Series"> <meta itemprop="name" content="Yfinance Investing Market Movers Branded"> </span> </div> <!-- Schema.org Microdata --> </div> </div> </div> </div><script>YMedia.applyConfig({"groups":{"td-applet-videoplayer":{"base":"https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/td/td-applet-videoplayer-0.3.1016/","root":"os/mit/td/td-applet-videoplayer-0.3.1016/","combine":true,"filter":"min","comboBase":"https://web.archive.org/web/20160217234258/http://l.yimg.com/zz/combo?","comboSep":"&"}}});</script><script>window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap["1309795382162892"] = {"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":{"query":{"results":{"mediaObj":[{"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","meta":{"attribution":"","description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","title":"Apple to fight court order on San Bernadino case","genre":"","embed_rights":true,"duration":165,"url":"https://web.archive.org/web/20160217234258/http://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","thumbnail":"https://web.archive.org/web/20160217234258/http://l2.yimg.com/uu/api/res/1.2/07uVsJT3F9nezeNSXxXaqw--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","create_date":"2016-02-17T14:48:43Z","provider":{"provider_id":"video.yahoofinance.com","provider_video_id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","name":"Yahoo Finance Video","url":"","logourl":"","publisher_id":"035d06c6-fa08-3ca2-824d-b9d08b6facff"},"thumbnail_dimensions":{"width":956,"height":538},"credits":{"featured_artists":"","director":"","main_artists":"","label":""},"provisioning_source":"","show_name":"Yfinance Investing Market Movers Branded","age_gate":"","event_start":0,"event_stop":0,"publish_time":"2016-02-17T14:48:43Z","castable":false},"streams":[{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_3_0.mp4?a=yahoofinance&b=4950&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=938e655a93a0811617bf3b220ba32233","width":426,"height":240,"bitrate":495,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_4_0.mp4?a=yahoofinance&b=5640&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=4f5249e01d4b14e5f89fa3e269d9734d","width":640,"height":360,"bitrate":564,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_5_0.mp4?a=yahoofinance&b=8460&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=a5ef1fef334294d1b79c5ffe28a75071","width":640,"height":360,"bitrate":846,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_7_0.mp4?a=yahoofinance&b=10960&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=69dc156712d1327aed05e3ba44e790a5","width":640,"height":360,"bitrate":1096,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_9_0.mp4?a=yahoofinance&b=16290&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=b22cf288c7e6ca8eb0bf9a744234548f","width":960,"height":540,"bitrate":1629,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_10_0.mp4?a=yahoofinance&b=31290&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=badb527eac8b79b4c55315108f3e8893","width":1280,"height":720,"bitrate":3129,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29}],"streamProfiles":[{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_3_0.mp4?a=yahoofinance&b=4950&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=938e655a93a0811617bf3b220ba32233","width":426,"height":240,"bitrate":495,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_4_0.mp4?a=yahoofinance&b=5640&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=4f5249e01d4b14e5f89fa3e269d9734d","width":640,"height":360,"bitrate":564,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_5_0.mp4?a=yahoofinance&b=8460&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=a5ef1fef334294d1b79c5ffe28a75071","width":640,"height":360,"bitrate":846,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_7_0.mp4?a=yahoofinance&b=10960&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=69dc156712d1327aed05e3ba44e790a5","width":640,"height":360,"bitrate":1096,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_9_0.mp4?a=yahoofinance&b=16290&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=b22cf288c7e6ca8eb0bf9a744234548f","width":960,"height":540,"bitrate":1629,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29},{"host":"https://web.archive.org/web/20160217234258/http://ci-ae7ca541da-cff1e2a6.http.atlas.cdn.yimg.com","path":"/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_10_0.mp4?a=yahoofinance&b=31290&ib=sapi&m=video%2fmp4&mr=0&ns=c+i+ci+cii+ps&ps=f7re0v1bca1c2&vid=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&x=1456357379&s=badb527eac8b79b4c55315108f3e8893","width":1280,"height":720,"bitrate":3129,"duration":165,"mime_type":"video/mp4","live":false,"h264_profile":"High","is_primary":false,"cdn":"atlas","format":"mp4","framerate":29}],"license":{"title":"Yahoo (US) FINANCE: LIVE Synthetic Content License Agreement [Market Movers (Branded)]","account_name":"Yahoo! (US)","originating_property":"Finance","account_id":"0017000000NWamOAAT","salesforce_id":"a0ad0000009aEX5AAM","is_drm":false},"metrics":{"comscore_cm5":"02","ywa":[],"comscore6":"","beacons":[],"pspid":"1183335574","plidl":"marketmovers","isrc":"","mmActivityId":"","mediametrie":""},"yvap":{"show_name":"Yfinance Investing Market Movers Branded","adRules":{"result":{"allocation":{"AllocationModule":[{"@uri":"class:net.maven.plugin.allocation.PercentageAllocationManager","@id":"1"},{"@uri":"class:net.maven.plugin.allocation.RoundRobinAllocationManager","@id":"2"}],"NetworkModules":[{"@name":"MME","@as3uri":"1/adNetwork/11/AS3/MmeCommunicator.swf","@id":"11"},{"@name":"CBS_31222","@as3uri":"193/adNetwork/495/AS3/CbsCommunicator_3.1.222.swf","@id":"495"},{"@name":"FREEWHEEL_VAST","@as3uri":"1/adNetwork/522/AS3/FreewheelCommunicator_1.0.4.swf","@id":"522"},{"@name":"DFP","@as3uri":"193/adNetwork/831/AS3/DfpUI.swf","@id":"831"}],"Settings":[{"@value":"clickable","@name":"NETWORK.831.adTypes"},{"@value":"vast2","@name":"NETWORK.522.ResponseType"},{"@value":"3","@name":"SELECTOR.1.NETWORK.831.priority"},{"@value":"overlayC2V,overlayC2S,clickable,bumper","@name":"NETWORK.11.adTypes"},{"@value":"false","@name":"NETWORK.11.enableUniqueness"},{"@value":"System:MME","@name":"NETWORK.11.NAME"},{"@value":"false","@name":"NETWORK.11.enableUniquenessInPod"},{"@value":"0","@name":"SELECTOR.1.NETWORK.11.priority"},{"@value":"false","@name":"NETWORK.522.EnableSSL"},{"@value":"2","@name":"SELECTOR.1.NETWORK.522.priority"},{"@value":"true","@name":"NETWORK.11.sendRsParam"},{"@value":"yfinance","@name":"NETWORK.11.partnerId"},{"@value":"DFP","@name":"NETWORK.831.NAME"},{"@value":"100","@name":"SELECTOR.1.NETWORK.11"},{"@value":"false","@name":"NETWORK.11.allowSkipAds"},{"@value":"false","@name":"NETWORK.831.EnableSSL"},{"@value":"0","@name":"SELECTOR.1.NETWORK.831"},{"@value":"1","@name":"SELECTOR.1.NETWORK.495.priority"},{"@value":"false","@name":"NETWORK.522.EnableOverlay"},{"@value":"0","@name":"SELECTOR.1.NETWORK.495"},{"@value":"true","@name":"SELECTOR.1.disablePriorityFallback"},{"@value":"10565","@name":"NETWORK.522.YahooNetworkId"},{"@value":"http://","@name":"NETWORK.831.AdServerUrl"},{"@value":"bumper,clickable","@name":"NETWORK.495.adTypes"},{"@value":"1","@name":"SELECTOR.ID"},{"@value":"0","@name":"SELECTOR.1.NETWORK.522"},{"@value":"false","@name":"NETWORK.11.disableDuplicateThirdPartyCreative"},{"@value":"System:FREEWHEEL_VAST","@name":"NETWORK.522.NAME"},{"@value":"bumper,clickable","@name":"NETWORK.522.adTypes"},{"@value":"CBS_31222","@name":"NETWORK.495.NAME"},{"@value":"https://web.archive.org/web/20160217234258/http://2822.v.fwmrm.net/ad/g/1","@name":"NETWORK.522.AdServerUrl"},{"@value":"0","@name":"NETWORK.11.adsPerBreak"},{"@value":"pre","@name":"NETWORK.522.SlotCustomId"},{"@value":"false","@name":"NETWORK.522.OverrideSAPI"},{"@value":"false","@name":"NETWORK.11.makeAdditionalAdCalls"},{"@value":"adnet","@name":"SYSTEM.PID"}]},"env":"prod","ads":{"MME_1183335574_VID$2376492":"<VAST version=\"2.0\"><Ad id=\"1140154551\"><Wrapper><AdSystem>Yahoo</AdSystem><VASTAdTagURI><![CDATA[https://rtr.innovid.com/r1.5697b76bcf9193.34942403;cb=1455752579.88644?dipn=deviceid&deviceid=${DEVICE_ID}]]></VASTAdTagURI><Error><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(1364u0t1e(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,st$1455752579433953,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$12kuh91jg,aid$JEcGb9gnOXo-,agp$3493404051,cr$-1,ct$25,at$C,eob$gd1_match_id=-1:ypos=VID)]]></Error><Impression><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(1364u0t1e(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,st$1455752579433953,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$13ab60l9e,aid$JEcGb9gnOXo-,bi$2286897051,agp$3493404051,cr$4477671051,ct$25,at$C,eob$gd1_match_id=-1:ypos=VID)]]></Impression><Impression><![CDATA[https://sb.scorecardresearch.com/p?c1=3&c2=18170330&c3=apt-659379051&c4=4477671051&c5=3493404051_td-server-finance.media.yahoo.com|-1&c6=&c10=1&c11=&c13=&c16=yhoo&cj=1&ax_fwd=1&rn=1455752579433953&]]></Impression><Impression><![CDATA[https://sb.scorecardresearch.com/p?c1=3&c2=7241469&c3=659379051&c4=4477671051&c5=3493404051&c6=&c10=1&c11=&c12=p346237658&c13=&c16=yho&cj=1&ax_fwd=1&r=https://ar.voicefive.com/b/recruitBeacon.pli%3Fpid=p346237658%26PRAd=3493404051%26AR_C=4477671051%26clid=7241469%26cid=659379051%26stid=1183335574%26sz=%26as=yho%26rn=1455752579.88644]]></Impression><Creatives><Creative AdID=\"1140154551\"><Linear><TrackingEvents><Tracking event=\"start\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12q05h06h,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$0,sgn$1))]]></Tracking><Tracking event=\"firstQuartile\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12r7v7jd7,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$25,sgn$1))]]></Tracking><Tracking event=\"midpoint\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12r1ck3l8,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$50,sgn$1))]]></Tracking><Tracking event=\"thirdQuartile\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12r3randl,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$75,sgn$1))]]></Tracking><Tracking event=\"complete\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12sugc9bo,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$100,sgn$1))]]></Tracking><Tracking event=\"close\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$11vk9vrv8,aid$JEcGb9gnOXo-,ct$25,id(type$close,seq$1,label$act2))]]></Tracking></TrackingEvents><VideoClicks><ClickTracking><![CDATA[http://beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE4OXFmbHFsbihnaWQkWjZzMjBRQUFBQUNLR3pYVXJUSGpYcUk4enI0akVWYkZCWU1BQnFBNCxzdCQxNDU1NzUyNTc5NDMzOTUzLHNpJDQ0NTEwNTEsc3AkMTE4MzMzNTU3NCxjdCQyNSx5YngkTC5EUDJnbjIwbkQyamN6OTVjY2FHdyxsbmckZW4tdXMsY3IkNDQ3NzY3MTA1MSx2JDIuMCxhaWQkSkVjR2I5Z25PWG8tLGJpJDIyODY4OTcwNTEsbW1lJDk2NDA4NDQ1ODkzMDQ2NjE3ODAsciQwLGlkJE9WRVJMQVkscmQkMTE1NWVqdWVtLHlvbyQxLGFncCQzNDkzNDA0MDUxLGFwJFZJRCkp/0/*http://ads.yimg.com/a/a/vdo/a/1x1.gif]]></ClickTracking></VideoClicks></Linear></Creative></Creatives><Extensions><Extension type=\"CustomTracking\"><NoAdImpression><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(1364u0t1e(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,st$1455752579433953,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$12kuh91jg,aid$JEcGb9gnOXo-,agp$3493404051,cr$-1,ct$25,at$C,eob$gd1_match_id=-1:ypos=VID)]]></NoAdImpression></Extension><Extension type=\"SkipAd\"><SkipDirective><![CDATA[1]]></SkipDirective><SkipBeacon><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$11vk9vrv8,aid$JEcGb9gnOXo-,ct$25,id(type$skip,value${skip_time_offset}))]]></SkipBeacon></Extension><Extension type=\"CPCV\"><Progress30SecBeacon><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12v70brac,aid$JEcGb9gnOXo-,ct$25,id(type$playback_sec,value$30,sgn$1))]]></Progress30SecBeacon></Extension></Extensions></Wrapper></Ad></VAST>"},"rendererType":"flash","adList":[{"adXML":"<VAST version=\"2.0\"><Ad id=\"1138278551\"><InLine><AdSystem>Yahoo</AdSystem><AdTitle>Default title</AdTitle><Error><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(13652tv88(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,st$1455752579400602,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$12k6ehrg5,aid$qhkFb9gnOXo-,agp$3494533051,cr$-1,ct$25,at$C,eob$gd1_match_id=-1:ypos=BMPR)]]></Error><Impression><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(13652tv88(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,st$1455752579400602,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$13a97hep6,aid$qhkFb9gnOXo-,bi$2287695051,agp$3494533051,cr$4478449551,ct$25,at$C,eob$gd1_match_id=-1:ypos=BMPR)]]></Impression><Impression><![CDATA[https://sb.scorecardresearch.com/p?c1=3&c2=18170330&c3=apt-659379051&c4=4478449551&c5=3494533051_td-server-finance.media.yahoo.com|-1&c6=&c10=1&c11=&c13=&c16=yhoo&cj=1&ax_fwd=1&rn=1455752579400602&]]></Impression><Impression><![CDATA[https://ad.doubleclick.net/ddm/ad/N3941.yahoo2/B9315623.126809880;sz=1x1;kw=[url_encoded_publisher_data];ord=1455752579.497609?]]></Impression><Impression><![CDATA[https://sb.scorecardresearch.com/p?c1=3&c2=7241469&c3=659379051&c4=4478449551&c5=3494533051&c6=&c10=1&c11=&c12=p346237658&c13=&c16=yho&cj=1&ax_fwd=1&r=https://ar.voicefive.com/b/recruitBeacon.pli%3Fpid=p346237658%26PRAd=3494533051%26AR_C=4478449551%26clid=7241469%26cid=659379051%26stid=1183335574%26sz=%26as=yho%26rn=1455752579.497609]]></Impression><Creatives><Creative><Linear><Duration><![CDATA[00:00:09]]></Duration><!--Std time format hh:mm:ss--><VideoClicks><ClickThrough><![CDATA[http://beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE4YTE2MHU4bChnaWQkWjZzMjBRQUFBQUNLR3pYVXJUSGpYcUkzenI0akVWYkZCWU1BQmgxbCxzdCQxNDU1NzUyNTc5NDAwNjAyLHNpJDQ0NTEwNTEsc3AkMTE4MzMzNTU3NCxjdCQyNSx5YngkTC5EUDJnbjIwbkQyamN6OTVjY2FHdyxsbmckZW4tdXMsY3IkNDQ3ODQ0OTU1MSx2JDIuMCxhaWQkcWhrRmI5Z25PWG8tLGJpJDIyODc2OTUwNTEsbW1lJDk2NDQyMzMzMTg1MDEyMDc0ODksciQwLGlkJE9WRVJMQVkscmQkMTZhajJvOGlyLHlvbyQxLGFncCQzNDk0NTMzMDUxLGFwJEJNUFIpKQ/2/*https://ad.doubleclick.net/ddm/trackclk/N3941.yahoo2/B9315623.126809880;dc_trk_aid=299799146;dc_trk_cid=67442974;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=?URL&o=220&cid=MIXSTNFIN372958126809880]]></ClickThrough><ClickTracking/></VideoClicks><MediaFiles><!--To represent video --><MediaFile bitrate=\"100\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/x-flv\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/a929bcc3-68ae-4676-af01-a1cdd09d8420]]></MediaFile><MediaFile bitrate=\"300\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/x-flv\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/135f2867-c2da-46b4-91a9-8e957354a23d]]></MediaFile><MediaFile bitrate=\"700\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/x-flv\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/e97881e1-5295-4874-b037-46a8d72573dd]]></MediaFile><MediaFile bitrate=\"1000\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/x-flv\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/5ef8b5fd-ed6b-4abc-96b3-523eb2c7132d]]></MediaFile><MediaFile bitrate=\"1500\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/x-flv\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/fbde77c1-8702-4886-85ab-d6e15a992e7d]]></MediaFile><MediaFile bitrate=\"100\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/mp4\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/d059cacb-8ae4-4dd4-9afb-710ec19821fd]]></MediaFile><MediaFile bitrate=\"300\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/mp4\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/2025b1cc-5ed1-4489-b507-60c232fbe323]]></MediaFile><MediaFile bitrate=\"700\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/mp4\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/bbf2d146-94c0-4015-bc04-f008eded12cb]]></MediaFile><MediaFile bitrate=\"1000\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/mp4\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/7acdb91a-371e-4660-bd6d-37689e35b9c9]]></MediaFile><MediaFile bitrate=\"1500\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/mp4\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/a5460c25-f2d7-4513-8b79-f7aa77f7dd64]]></MediaFile><MediaFile bitrate=\"100\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/webm\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/699432fc-4d94-42e4-9a94-daba5b44e7eb]]></MediaFile><MediaFile bitrate=\"300\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/webm\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/348cce79-08e7-4b9b-b545-c91af5408536]]></MediaFile><MediaFile bitrate=\"700\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/webm\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/71d558a2-1fb0-4b89-bf2e-790b07bcf8a3]]></MediaFile><MediaFile bitrate=\"1000\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/webm\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/c64f1bc3-25ef-4dec-b5f0-a4c1f152d650]]></MediaFile><MediaFile bitrate=\"1500\" delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"video/webm\" width=\"400\"><![CDATA[http://ads.yldmgrimg.net/apex/mediastore/70345913-b6a3-406d-865d-268f9bdda41e]]></MediaFile><MediaFile delivery=\"progressive\" height=\"300\" maintainAspectRatio=\"true\" scalable=\"true\" type=\"application/vnd.apple.mpegurl\" width=\"400\"><![CDATA[https://c-1b37a3979e48914759510ab815726c28.http.atlas.cdn.yimg.com/aptads/raw/1420646166138_hlsManifest_2063005515958686922331617793.m3u8?m=application%2fvnd.apple.mpegurl&a=aptads]]></MediaFile></MediaFiles><TrackingEvents><Tracking event=\"start\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id(type$playback,value$0))]]></Tracking><Tracking event=\"firstQuartile\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id(type$playback,value$25))]]></Tracking><Tracking event=\"midpoint\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id(type$playback,value$50))]]></Tracking><Tracking event=\"thirdQuartile\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id(type$playback,value$75))]]></Tracking><Tracking event=\"complete\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id(type$playback,value$100))]]></Tracking><Tracking event=\"close\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id(type$close,seq$1,label$act2))]]></Tracking></TrackingEvents><AdParameters><yahoo_video_ad_beacon id=\"interaction\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id({beap_client_event}))]]></yahoo_video_ad_beacon><yahoo_video_ad_beacon id=\"bitrate\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144cgfnsp(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,si$4451051,sp$1183335574,st$1455752579400602,bi$2287695051,cr$4478449551,cpcv$0,v$2.0))&al=(as$11vbq5kke,aid$qhkFb9gnOXo-,ct$25,id({beap_client_event}))]]></yahoo_video_ad_beacon></AdParameters></Linear></Creative><Creative><CompanionAds></CompanionAds></Creative></Creatives><Extensions><Extension type=\"CustomTracking\"><NoAdImpression><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(13652tv88(gid$Z6s20QAAAACKGzXUrTHjXqI3zr4jEVbFBYMABh1l,st$1455752579400602,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$12k6ehrg5,aid$qhkFb9gnOXo-,agp$3494533051,cr$-1,ct$25,at$C,eob$gd1_match_id=-1:ypos=BMPR)]]></NoAdImpression></Extension></Extensions></InLine></Ad></VAST>","key":{"pos":"BMPR","spaceId":"1183335574","tId":3287326,"clipId":"","network":"MME","revShare":"lmsid:a0ad0000009aEX5AAM","lmsId":"a0ad0000009aEX5AAM"}},{"adXML":"<VAST version=\"2.0\"><Ad id=\"1140154551\"><Wrapper><AdSystem>Yahoo</AdSystem><VASTAdTagURI><![CDATA[https://rtr.innovid.com/r1.5697b76bcf9193.34942403;cb=1455752579.88644?dipn=deviceid&deviceid=${DEVICE_ID}]]></VASTAdTagURI><Error><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(1364u0t1e(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,st$1455752579433953,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$12kuh91jg,aid$JEcGb9gnOXo-,agp$3493404051,cr$-1,ct$25,at$C,eob$gd1_match_id=-1:ypos=VID)]]></Error><Impression><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(1364u0t1e(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,st$1455752579433953,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$13ab60l9e,aid$JEcGb9gnOXo-,bi$2286897051,agp$3493404051,cr$4477671051,ct$25,at$C,eob$gd1_match_id=-1:ypos=VID)]]></Impression><Impression><![CDATA[https://sb.scorecardresearch.com/p?c1=3&c2=18170330&c3=apt-659379051&c4=4477671051&c5=3493404051_td-server-finance.media.yahoo.com|-1&c6=&c10=1&c11=&c13=&c16=yhoo&cj=1&ax_fwd=1&rn=1455752579433953&]]></Impression><Impression><![CDATA[https://sb.scorecardresearch.com/p?c1=3&c2=7241469&c3=659379051&c4=4477671051&c5=3493404051&c6=&c10=1&c11=&c12=p346237658&c13=&c16=yho&cj=1&ax_fwd=1&r=https://ar.voicefive.com/b/recruitBeacon.pli%3Fpid=p346237658%26PRAd=3493404051%26AR_C=4477671051%26clid=7241469%26cid=659379051%26stid=1183335574%26sz=%26as=yho%26rn=1455752579.88644]]></Impression><Creatives><Creative AdID=\"1140154551\"><Linear><TrackingEvents><Tracking event=\"start\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12q05h06h,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$0,sgn$1))]]></Tracking><Tracking event=\"firstQuartile\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12r7v7jd7,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$25,sgn$1))]]></Tracking><Tracking event=\"midpoint\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12r1ck3l8,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$50,sgn$1))]]></Tracking><Tracking event=\"thirdQuartile\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12r3randl,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$75,sgn$1))]]></Tracking><Tracking event=\"complete\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12sugc9bo,aid$JEcGb9gnOXo-,ct$25,id(type$playback,value$100,sgn$1))]]></Tracking><Tracking event=\"close\"><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$11vk9vrv8,aid$JEcGb9gnOXo-,ct$25,id(type$close,seq$1,label$act2))]]></Tracking></TrackingEvents><VideoClicks><ClickTracking><![CDATA[http://beap-bc.yahoo.com/yc/YnY9MS4wLjAmYnM9KDE4OXFmbHFsbihnaWQkWjZzMjBRQUFBQUNLR3pYVXJUSGpYcUk4enI0akVWYkZCWU1BQnFBNCxzdCQxNDU1NzUyNTc5NDMzOTUzLHNpJDQ0NTEwNTEsc3AkMTE4MzMzNTU3NCxjdCQyNSx5YngkTC5EUDJnbjIwbkQyamN6OTVjY2FHdyxsbmckZW4tdXMsY3IkNDQ3NzY3MTA1MSx2JDIuMCxhaWQkSkVjR2I5Z25PWG8tLGJpJDIyODY4OTcwNTEsbW1lJDk2NDA4NDQ1ODkzMDQ2NjE3ODAsciQwLGlkJE9WRVJMQVkscmQkMTE1NWVqdWVtLHlvbyQxLGFncCQzNDkzNDA0MDUxLGFwJFZJRCkp/0/*http://ads.yimg.com/a/a/vdo/a/1x1.gif]]></ClickTracking></VideoClicks></Linear></Creative></Creatives><Extensions><Extension type=\"CustomTracking\"><NoAdImpression><![CDATA[http://csc.beap.bc.yahoo.com/yi?bv=1.0.0&bs=(1364u0t1e(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,st$1455752579433953,si$4451051,sp$1183335574,pv$0,v$2.0))&t=D_3&al=(as$12kuh91jg,aid$JEcGb9gnOXo-,agp$3493404051,cr$-1,ct$25,at$C,eob$gd1_match_id=-1:ypos=VID)]]></NoAdImpression></Extension><Extension type=\"SkipAd\"><SkipDirective><![CDATA[1]]></SkipDirective><SkipBeacon><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$11vk9vrv8,aid$JEcGb9gnOXo-,ct$25,id(type$skip,value${skip_time_offset}))]]></SkipBeacon></Extension><Extension type=\"CPCV\"><Progress30SecBeacon><![CDATA[http://beap-bc.yahoo.com/reg_ci?bv=1.0.0&bs=(144ov164h(gid$Z6s20QAAAACKGzXUrTHjXqI8zr4jEVbFBYMABqA4,si$4451051,sp$1183335574,st$1455752579433953,bi$2286897051,cr$4477671051,cpcv$0,v$2.0))&al=(as$12v70brac,aid$JEcGb9gnOXo-,ct$25,id(type$playback_sec,value$30,sgn$1))]]></Progress30SecBeacon></Extension></Extensions></Wrapper></Ad></VAST>","key":{"pos":"VID","spaceId":"1183335574","tId":2376492,"clipId":"","network":"MME","revShare":"lmsid:a0ad0000009aEX5AAM","lmsId":"a0ad0000009aEX5AAM"}}],"ruleGroup":{"videopod":{"@repeat":"true","@noAdWaitInterval":"5","@defaultAdlength":"30","@noAdAndExit":"false","@onTimeoutError":"false","@playFull":"true","@adjacent":"false","@playAndTerminate":"false","@onTimeLoad":"false","@noAdAndPlayPod":"false"},"ruleGroup":[{"@defaultRuleset":"false","@active":"true","@savedDate":"1453748415254","@description":"preroll + bumper + video (top)","@name":"preroll + bumper + video (top)","@releaseDate":"1453748415254","@createDate":"1420662573327","@id":"27","actionRule2":[{"@basis":"triggers","@ratioEnabled":"false","@savedDate":"1453748415254","@intervalbetweenclips":"1","@firstAdProbability":"100","actionParam":[{"@value":"clickable","@local":"true","@name":"id","@system":"true"},{"@value":"none","@local":"true","@name":"placement","@system":"true"}],"@duration":"0","@position":"Video Pre-Roll","@type":"preroll","@interval":"1","@lengthEnabled":"false","@minDurEnabled":"false","@subtype":"preroll","@padding":"0","@ratio":null,"@startatclip":"1","@name":"preroll","@applyRule":"Clip","@description":"preroll","@start":"1","@firstAdProbabilityEnabled":"true","@createDate":"1420662573327","@active":"true","@length":null,"@releaseDate":"1453748415254","@minDuration":null,"@id":"0"},{"@basis":"triggers","@ratioEnabled":"false","@savedDate":"1453748415254","@intervalbetweenclips":"1","@firstAdProbability":"100","actionParam":[{"@value":"bumper","@local":"true","@name":"id","@system":"true"},{"@value":"none","@local":"true","@name":"placement","@system":"true"}],"@duration":"0","@position":"Gateway","@type":"clipGateway","@interval":"1","@lengthEnabled":"false","@minDurEnabled":"false","@subtype":"clipGateway","@padding":"0","@ratio":null,"@startatclip":"1","@name":"bumper","@applyRule":"Clip","@description":"bumper","@start":"1","@firstAdProbabilityEnabled":"true","@createDate":"1420662573327","@active":"true","@length":null,"@releaseDate":"1453748415254","@minDuration":null,"@id":"1"},{"@basis":"videoTimeline","@ratioEnabled":"false","@savedDate":"1453748415254","@intervalbetweenclips":"1","@firstAdProbability":"","actionParam":[{"@value":"overlayC2V,overlayC2S","@local":"true","@name":"id","@system":"true"},{"@value":"top","@local":"true","@name":"placement","@system":"true"}],"@duration":"8","@position":"Interstitial","@type":"","@interval":"100000","@lengthEnabled":"false","@minDurEnabled":"false","@subtype":"","@padding":"7","@ratio":null,"@startatclip":"1","@name":"vido (top)","@applyRule":"Clip","@description":"video (top)","@start":"5","@firstAdProbabilityEnabled":"false","@createDate":"1420662573327","@active":"true","@length":null,"@releaseDate":"1453748415254","@minDuration":null,"@id":"2"}]}]}}}},"status":{"code":"100","msg":"ready"},"visualseek":{"frequency":2,"width":112,"height":63,"images":[{"start_index":0,"count":83,"url":"https://web.archive.org/web/20160217234258/http://d.yimg.com/hd/yahoofinance/lotus/6bfd9032-e6b6-4f9e-a193-7e52304f5a33_qxzuMFwnC5HGAXjpxA76lDLQst_Orf653tbVJprzseSiNLeKda1C3Pjz87F5hq_PGRA2k4dibbw-_16_1.jpg?s=223ba60c3c310fc4323d2aa2bbf74cc3&c=4874f12e1cdc9aea7b454f5a5bacc9a8&a=yahoofinance&mr=0"}]},"closedcaptions":[{"lang":"en-US","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/os/en_us/video/Reuters/4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578.ttml","content_type":"application/ttml+xml"}]}],"colo":"gq1","instrument":{"colo":"gq1","statuses":["100"],"messages":["ready"]}}},"prefetchTime":116},"player_config":{"autoplay":true,"carousel":false,"comscoreC4":"US Finance","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":"1183300101","pausescreen":false,"playinlinevideos":true,"playlist":{},"region":"US","site":"finance","startscreen":{"showTitle":1,"showProvider":1,"showDesc":0},"startTime":0,"synd":false,"showFujiUI":false,"CMS":{"env":"prod","suppressAdContext":true},"YVAP":{"accountId":"193","playContext":"marketmovers","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,"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":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","first_videometa":{"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","title":"Apple to fight court order on San Bernadino case","show_name":"Yfinance Investing Market Movers Branded","preview_video_uuid":null,"duration":165,"alias_name":"cavideo=apple-fight-court-order-san-144843124","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T14:47:28Z","provider_publish_time":"2016-02-17T14:48:43Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578?region=US","description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/apple-fight-court-order-san-144843124.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/D4khqQeMBymzbAtRED2WUA--/dz02NTA7aD00ODc7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":650,"height":487},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/QAec4iBmVrXSG7W10KjNnA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/m9EtjldQ30.R.rc32fmN4g--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/07uVsJT3F9nezeNSXxXaqw--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":650,"height":487}],"channels":[],"view_count":"","concurrent_view_count":2,"concurrent_viewer_count":2,"create_date":"2016-02-17T14:48:43Z","copyright":"","credits":[],"instrument":null,"playcontext":{"playcontext_node":{"id":"marketmovers","path":"marketmovers","tags":["ymedia:series_name=Yfinance Investing Market Movers","ymedia:series_name=Yfinance Investing Market Movers Branded"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/morning_movers","site_hierarchy_path":"exclusives/investing/morning_movers","spaceid":"1183335574"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","hrefLang":null,"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:provider_category=Investing_Market Movers BRANDED","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","yvyc:region=au","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","ymedia:series_name=Yfinance Investing Market Movers Branded","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","yfinance:segment=market_movers","tumblr:tag=_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ylivestand:region=us","ymedia:category=100000000","yct:001000931"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578"},"tumblrpost":{"post_id":139485340246,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139485340246/apple-to-fight-court-order-on-san-bernadino-case","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"AP6F9KPo","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139485340246/AP6F9KPo","tags":[{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","url":"_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139485340246&color=black&rk=AP6F9KPo"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"","url_alias":"apple-fight-court-order-san-144843124","formatted_credits":{},"vanity_url":"/finance-videotron/apple-fight-court-order-san-144843124.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended","firstItem":true},"channel_alias":"finance-videotron","parent_alias":null,"vanity_path":false,"mode":"embedtron","submode":"","playlist_data":{"video-playlist":{"id":"7e4adc40-9dba-11e3-bf3a-ac87c7553e87","name":"Finance Video","alias_name":"wf-channel=finance-videotron","brand_logo":"","dock_logo":"","lang":"en-US","region":"US","homerun_logo":null,"is_category":false,"is_featured":false,"is_visible":false,"is_logical":null,"displayShowName":false,"nav_badge_new":false,"default_parent_channel":{"id":"","alias_name":""},"videos":[{"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","title":"Apple to fight court order on San Bernadino case","show_name":"Yfinance Investing Market Movers Branded","preview_video_uuid":null,"duration":165,"alias_name":"cavideo=apple-fight-court-order-san-144843124","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T14:47:28Z","provider_publish_time":"2016-02-17T14:48:43Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578?region=US","description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/apple-fight-court-order-san-144843124.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/D4khqQeMBymzbAtRED2WUA--/dz02NTA7aD00ODc7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":650,"height":487},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/QAec4iBmVrXSG7W10KjNnA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/m9EtjldQ30.R.rc32fmN4g--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/07uVsJT3F9nezeNSXxXaqw--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":650,"height":487}],"channels":[],"view_count":"","concurrent_view_count":2,"concurrent_viewer_count":2,"create_date":"2016-02-17T14:48:43Z","copyright":"","credits":[],"instrument":null,"playcontext":{"playcontext_node":{"id":"marketmovers","path":"marketmovers","tags":["ymedia:series_name=Yfinance Investing Market Movers","ymedia:series_name=Yfinance Investing Market Movers Branded"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/morning_movers","site_hierarchy_path":"exclusives/investing/morning_movers","spaceid":"1183335574"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","hrefLang":null,"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:provider_category=Investing_Market Movers BRANDED","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","yvyc:region=au","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","ymedia:series_name=Yfinance Investing Market Movers Branded","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","yfinance:segment=market_movers","tumblr:tag=_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ylivestand:region=us","ymedia:category=100000000","yct:001000931"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578"},"tumblrpost":{"post_id":139485340246,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139485340246/apple-to-fight-court-order-on-san-bernadino-case","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"AP6F9KPo","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139485340246/AP6F9KPo","tags":[{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","url":"_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139485340246&color=black&rk=AP6F9KPo"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"","url_alias":"apple-fight-court-order-san-144843124","formatted_credits":{},"vanity_url":"/finance-videotron/apple-fight-court-order-san-144843124.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended","firstItem":true},{"id":"54253f15-84af-367a-bd20-5dcddeeb28d4","title":"iPhone 6S and 6S Plus review","show_name":"","preview_video_uuid":null,"duration":406,"alias_name":"cavideo=iphone-6s-6s-plus-review-062817747","provider_name":"The Verge","provider_id":"the_verge_441","provider_object_ref":"72c0d2e0-5995-30ba-b8b4-f2429e256a30","publish_time":"2015-09-22T12:33:20Z","provider_publish_time":"2015-09-22T06:28:17Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/54253f15-84af-367a-bd20-5dcddeeb28d4?region=US","description":"iPhone 6S and 6S Plus review","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-6s-plus-review-062817747.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/pKEqo91UwzqzLnLvk3D5yA--/dz0xOTIwO2g9MTA4MDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":1920,"height":1080},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/_SRUGTBLCRmgQZkqrBywog--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/epJ1NGF71sNRdaifBxufjg--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/x5LkoqLEhVa_zbeg9sOyaQ--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":1920,"height":1080}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-22T06:28:17Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"54253f15-84af-367a-bd20-5dcddeeb28d4","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/tech_gadgets","site_hierarchy_path":"video/category/tech_gadgets","spaceid":"1183317149"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-6s-plus-review-062817747.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=00c51629-5baa-3be2-a3f9-9b053ebc1cb7","yomg:region=us","ymusic:region=gb","yivy:region=gb","ynews:region=gb","yomg:region=gb","ymedia:provider_id=the_verge_441","ytravel:region=us","ylifestyles:region=gb","ymedia:provider_category=DEFAULT","ymedia:hosted=yes","ynews:region=us","yall:region=us","ymedia:channel_id=1c31ca27-8220-3846-a02d-003fa49b8c56","ymedia:signal=provisioning_source:tripleplay","ylifestyles:region=us","ymusic:region=us","ysports:region=us","yfinance:region=us","DEFAULT","yivy:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000931"],"provider":{"provider_id":"the_verge_441","provider_object_ref":"72c0d2e0-5995-30ba-b8b4-f2429e256a30","name":"The Verge","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"2ecf201e-1c6c-3fa3-819d-5f1b1448748e"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"","url_alias":"iphone-6s-6s-plus-review-062817747","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-6s-plus-review-062817747.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"c9f634d2-be01-33f7-91c3-5036d7c6ea00","title":"iPhone 6s Hands On Review","show_name":"","preview_video_uuid":null,"duration":204,"alias_name":"cavideo=iphone-6s-hands-review-221716591","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-25T23:46:23Z","provider_publish_time":"2015-09-25T22:17:16Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/c9f634d2-be01-33f7-91c3-5036d7c6ea00?region=US","description":"iPhone 6s Hands On Review We review the Apple iPhone 6S, a subtle upgrade to last year’s model that might go unnoticed by your friends, but that hides a number of convenient and fun new features.<a href=\"http://www.digitaltrends.com/apple-videos/iphone-6s-hands-on-review/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-review-221716591.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/u9gKpMad9ZFgISgwvdbFJw--/dz0xOTIwO2g9MTA4MDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":1920,"height":1080},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/.9dQF8e5oc8BdWbP.1TT5Q--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/wYx_t9aF93PoSUIt5ZExcg--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/RFPTThGfcHhznGiv7RLPbA--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":1920,"height":1080}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-25T22:17:16Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"c9f634d2-be01-33f7-91c3-5036d7c6ea00","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/company_news","site_hierarchy_path":"video/category/company_news","spaceid":"1183317147"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-review-221716591.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=1658eb84-cd50-3eff-b60d-a3643c85fdbe","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","Mobile Videos","ynews:region=xe","yivy:region=us","ymedia:channel_id=71852ad0-9ee6-454d-b6b6-8374852ed138","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ymedia:provider_category=Mobile Videos","ynews:region=us","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ysports:region=us","yfinance:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000243","yct:001000931","yct:001000183","yct:001000123"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"b37d7b81-580b-35f2-af96-46a6b4274359"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6s Hands On Review We review the Apple iPhone 6S, a subtle upgrade to last year’s model that might go unnoticed by your friends, but that hides a number of convenient and fu...","url_alias":"iphone-6s-hands-review-221716591","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-hands-review-221716591.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"545e479b-4f50-3a8e-bc0f-9b17034a0123","title":"iPhone 6s Tips and Tricks","show_name":"","preview_video_uuid":null,"duration":189,"alias_name":"cavideo=iphone-6s-tips-tricks-153407280","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-30T15:12:09Z","provider_publish_time":"2015-09-29T15:34:07Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/545e479b-4f50-3a8e-bc0f-9b17034a0123?region=US","description":"iPhone 6s Tips and Tricks Have you got a decent handle on what your new iPhone 6S or 6S Plus is actually capable of? It may look just like its predecessor, but your new iPhone has hidden depths. Apple adds all sorts of new capabilities with each new model, but they’re not always obvious. If […]<a href=\"http://www.digitaltrends.com/apple-videos/iphone-6s-tips-and-tricks-2/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-tips-tricks-153407280.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/seXoeBUeM_iFNQqGMnAjUw--/dz0xOTIwO2g9MTA4MDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":1920,"height":1080},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/dv76bwpso1t8qdEAm6pNrA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/yAqdmO9t.PkyAZwlE9Tqdw--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/KXx1T5Mg72j2vnEqWw5Opg--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":1920,"height":1080}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-29T15:34:07Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"545e479b-4f50-3a8e-bc0f-9b17034a0123","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/tech_gadgets","site_hierarchy_path":"video/category/tech_gadgets","spaceid":"1183317149"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://www.yahoo.com/tech/iphone-6s-tips-tricks-153407280.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=394258a4-8083-3f11-945f-9d3e33dd466a","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","ymedia:provider_category=How-To Videos","ynews:region=xe","yivy:region=us","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ynews:region=us","How-To Videos","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ymedia:channel_id=ee3c8f55-2520-45a6-aa99-f03d0a6ed956","ysports:region=us","yfinance:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000931"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"08b19e7e-a497-3dfd-9983-3ccf5c756474"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6s Tips and Tricks Have you got a decent handle on what your new iPhone 6S or 6S Plus is actually capable of? It may look just like its predecessor, but your new iPhone has ...","url_alias":"iphone-6s-tips-tricks-153407280","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-tips-tricks-153407280.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"c0a45562-f539-36e4-a498-8b44b7149427","title":"iPhone 6S Plus Hands On Review","show_name":"","preview_video_uuid":null,"duration":204,"alias_name":"cavideo=iphone-6s-plus-hands-review-231527109","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-25T23:46:24Z","provider_publish_time":"2015-09-25T23:15:27Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/c0a45562-f539-36e4-a498-8b44b7149427?region=US","description":"iPhone 6S Plus Hands On Review Apple’s really gone all out with the new iPhone 6S Plus. The camera upgrade, new processor, 2GB of RAM, and 3D Touch are all key differentiators that make the iPhone 6S Plus worth considering.<a href=\"http://www.digitaltrends.com/apple-videos/iphone-6s-plus-hands-on-review/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-plus-hands-review-231527109.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/BEPi2TPVNZqRjqQbAMmO8Q--/dz0xNTAwO2g9ODQ0O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":1500,"height":844},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/gcyy5iFzEIBGxNPDfWm1NA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/z69C7iRLzyGnLv85OoO50Q--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/VhPvPyXLxe18UX7nNX9y2g--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":1500,"height":844}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-25T23:15:27Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"c0a45562-f539-36e4-a498-8b44b7149427","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/company_news","site_hierarchy_path":"video/category/company_news","spaceid":"1183317147"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-plus-hands-review-231527109.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=1658eb84-cd50-3eff-b60d-a3643c85fdbe","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","Mobile Videos","ynews:region=xe","yivy:region=us","ymedia:channel_id=71852ad0-9ee6-454d-b6b6-8374852ed138","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ymedia:provider_category=Mobile Videos","ynews:region=us","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ysports:region=us","yfinance:region=us","membership:list=de471669-d03c-44f0-8b0c-7955dc2e7651","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000193","yct:001000931","yct:001000183","yct:001000123"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"a939ece5-bfd9-3246-9b31-4f5fbc20760b"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6S Plus Hands On Review Apple’s really gone all out with the new iPhone 6S Plus. The camera upgrade, new processor, 2GB of RAM, and 3D Touch are all key differentiators that...","url_alias":"iphone-6s-plus-hands-review-231527109","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-plus-hands-review-231527109.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"4f64ae48-d072-3a18-ba11-b732e04f782a","title":"iPhone 6S – Hands on","show_name":"","preview_video_uuid":null,"duration":206,"alias_name":"cavideo=iphone-6s-hands-225632820","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-22T12:31:41Z","provider_publish_time":"2015-09-09T22:56:32Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/4f64ae48-d072-3a18-ba11-b732e04f782a?region=US","description":"iPhone 6S - Hands on Apple’s September 9 event was jam packed with cool new products and features, but the headliner of the the event was the iPhone 6S and iPhone 6S Plus launch. Here’s everything you need to know about the new iPhones. A 12-megapixel camera with 4K video The iPhone 6S’s camera finally […]<a href=\"/apple-videos/iphone-6s-hands-on/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-225632820.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/UDAAraxXJuoESZ17H3zISg--/dz0xNTAwO2g9MTAwMDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":1500,"height":1000},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/V3M03GpvuSsSbojBZbV0mg--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/JWZeg66aDHvFiO5T8VsQBg--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/aL_PKyiJRhz7UbXREIp3Bg--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":1500,"height":1000}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-09T22:56:32Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"4f64ae48-d072-3a18-ba11-b732e04f782a","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/tech_gadgets","site_hierarchy_path":"video/category/tech_gadgets","spaceid":"1183317149"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-225632820.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-225632820.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-225632820.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-hands-225632820.html"],"beacon_urls":[],"tags":["ymedia:feedsource=1658eb84-cd50-3eff-b60d-a3643c85fdbe","ymedia:type=cavideo","ymedia:index=video","video:quality=hd","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","Mobile Videos","ynews:region=xe","yivy:region=us","ymedia:channel_id=71852ad0-9ee6-454d-b6b6-8374852ed138","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ymedia:provider_category=Mobile Videos","ynews:region=us","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ysports:region=us","yfinance:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000931","yct:001000958"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"1071eba6-823a-3f34-b78a-2a6da6fc9f66"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6S - Hands on Apple’s September 9 event was jam packed with cool new products and features, but the headliner of the the event was the iPhone 6S and iPhone 6S Plus launch. H...","url_alias":"iphone-6s-hands-225632820","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-hands-225632820.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"1dc9313b-ac0f-3fb5-91f6-e8408761a97b","title":"Stocks stage three-day winning streak; oil bounces back","show_name":"The Final Round","preview_video_uuid":null,"duration":913,"alias_name":"cavideo=stocks-stage-three-day-winning-222645028","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T22:24:41Z","provider_publish_time":"2016-02-17T22:26:45Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/1dc9313b-ac0f-3fb5-91f6-e8408761a97b?region=US","description":"Yahoo Finance breaks down the biggest stories of the day and looks at tomorrow's headlines today.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/stocks-stage-three-day-winning-222645028.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/qP0K0gC18NGO9hNRUy3_Pw--/dz03Mjg7aD00ODU7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":728,"height":485},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/NSWzxRRyPvX4r5ajKS3sKg--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/djocRVAICR17EeUE4QOaXA--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/u75G1FLkqKqsSKuYl6vQ6g--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":728,"height":485}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T22:26:45Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"1dc9313b-ac0f-3fb5-91f6-e8408761a97b","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":1,"bpos":1},"playcontext":{"playcontext_node":{"id":"thefinalround","path":"thefinalround","tags":["ymedia:series_name=The Final Round"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/the_final_round","site_hierarchy_path":"exclusives/investing/the_final_round","spaceid":"1183335835"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","hrefLang":["https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:series_name=The Final Round","membership:list=11435c5d-be37-48fd-96e6-43c8799d07d5","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","vyc:region=au","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","membership:list=aa15ff07-a6e2-338d-bc28-ffc5debabf49","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","yfinance:segment=the_final_round","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","ymedia:provider_category=The Final Round","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","tumblr:tag=_uuid:1dc9313b-ac0f-3fb5-91f6-e8408761a97b","yfinance:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"1dc9313b-ac0f-3fb5-91f6-e8408761a97b"},"tumblrpost":{"post_id":139506644606,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139506644606/stocks-stage-three-day-winning-streak-oil-bounces","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"EUWVkgbV","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139506644606/EUWVkgbV","tags":[{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"},{"name":"_uuid:1dc9313b-ac0f-3fb5-91f6-e8408761a97b","url":"_uuid:1dc9313b-ac0f-3fb5-91f6-e8408761a97b"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139506644606&color=black&rk=EUWVkgbV"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"15:13","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"stocks-stage-three-day-winning-222645028","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"","formatted_credits":{},"video_group":"Recommended"},{"id":"b04f7470-50b2-3870-8a61-70fa4a5e42b1","title":"Is Jeff Saut ready to call a market bottom?","show_name":"The Final Round","preview_video_uuid":null,"duration":229,"alias_name":"cavideo=jeff-saut-ready-call-market-220630117","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T22:05:25Z","provider_publish_time":"2016-02-17T22:06:30Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/b04f7470-50b2-3870-8a61-70fa4a5e42b1?region=US","description":"He called the bottom back in August, but is Jeff Saut calling the bottom here? Joining us now to discuss is the man himself.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/jeff-saut-ready-call-market-220630117.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/BLjY2.D8KY0.NfJq7TznEg--/dz0zNTAwO2g9MjMzMzthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":3500,"height":2333},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/http://l1.yimg.com/uu/api/res/1.2/nLzrr6Lg6UrhpA0MNh7s5A--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/l2jW5Ja3mc11RK5T7DM98Q--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/YDtu2Lk4i351IELucCB6LA--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":3500,"height":2333}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T22:06:30Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"b04f7470-50b2-3870-8a61-70fa4a5e42b1","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":2,"bpos":1},"playcontext":{"playcontext_node":{"id":"thefinalround","path":"thefinalround","tags":["ymedia:series_name=The Final Round"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/the_final_round","site_hierarchy_path":"exclusives/investing/the_final_round","spaceid":"1183335835"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","hrefLang":["https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:series_name=The Final Round","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","vyc:region=au","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","membership:list=aa15ff07-a6e2-338d-bc28-ffc5debabf49","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","tumblr:tag=_uuid:b04f7470-50b2-3870-8a61-70fa4a5e42b1","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","yfinance:segment=the_final_round","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","ymedia:provider_category=The Final Round","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"b04f7470-50b2-3870-8a61-70fa4a5e42b1"},"tumblrpost":{"post_id":139505305421,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139505305421/is-jeff-saut-ready-to-call-a-market-bottom","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"HhRVo3eW","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139505305421/HhRVo3eW","tags":[{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"_uuid:b04f7470-50b2-3870-8a61-70fa4a5e42b1","url":"_uuid:b04f7470-50b2-3870-8a61-70fa4a5e42b1"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139505305421&color=black&rk=HhRVo3eW"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"3:49","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"jeff-saut-ready-call-market-220630117","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"","formatted_credits":{},"video_group":"Recommended"},{"id":"a0d2e587-7441-3c9f-bc5d-062e04198424","title":"Is a major downturn in store?","show_name":"The Final Round","preview_video_uuid":null,"duration":177,"alias_name":"cavideo=major-downturn-store-215808348","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T21:57:58Z","provider_publish_time":"2016-02-17T21:58:08Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/a0d2e587-7441-3c9f-bc5d-062e04198424?region=US","description":"With both stocks and oil up for the day, it seems their slight divergence earlier this week was only temporary. Yahoo Finance's Justine Underhill and Louise Yamada, Managing Director of Louise Yamada Technical Research Advisors, have a closer look at the charts.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/major-downturn-store-215808348.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/bxcWPn43g9hk95H9MhAmmg--/dz0xMjMyO2g9Njc2O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":1232,"height":676},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/B47DnaFsdUkyQv7jmu4sCA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/2q01dXbCbOwI5xrpp7uhqQ--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/YCB2wWhJUG2tD3NrQjD9dQ--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":1232,"height":676}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T21:58:08Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"a0d2e587-7441-3c9f-bc5d-062e04198424","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":3,"bpos":1},"playcontext":{"playcontext_node":{"id":"thefinalround","path":"thefinalround","tags":["ymedia:series_name=The Final Round"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/the_final_round","site_hierarchy_path":"exclusives/investing/the_final_round","spaceid":"1183335835"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","hrefLang":["https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/major-downturn-store-215808348.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:series_name=The Final Round","membership:list=11435c5d-be37-48fd-96e6-43c8799d07d5","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_uuid:a0d2e587-7441-3c9f-bc5d-062e04198424","tumblr:tag=_category:yct:001000298","vyc:region=au","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","yfinance:segment=the_final_round","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","ymedia:provider_category=The Final Round","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"a0d2e587-7441-3c9f-bc5d-062e04198424"},"tumblrpost":{"post_id":139504846191,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139504846191/is-a-major-downturn-in-store","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"EQSZqHXZ","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139504846191/EQSZqHXZ","tags":[{"name":"_uuid:a0d2e587-7441-3c9f-bc5d-062e04198424","url":"_uuid:a0d2e587-7441-3c9f-bc5d-062e04198424"},{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139504846191&color=black&rk=EQSZqHXZ"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"2:57","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"major-downturn-store-215808348","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"With both stocks and oil up for the day, it seems their slight divergence earlier this week was only temporary. Yahoo Finance's Justine Underhill and Louise Yamada, Managing D...","formatted_credits":{},"video_group":"Recommended"},{"id":"42002393-cde2-3ed9-b025-41cc947e491d","title":"These are Wall Street’s new favorite candidates","show_name":"Yfinance Investing Market Pulse","preview_video_uuid":null,"duration":104,"alias_name":"cavideo=wall-street-favorite-candidates-214838015","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T21:46:47Z","provider_publish_time":"2016-02-17T21:48:38Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/42002393-cde2-3ed9-b025-41cc947e491d?region=US","description":"Wall Street is piling money into some of the presidential candidates’ Super PACs.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/wall-street-favorite-candidates-214838015.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/http://l3.yimg.com/uu/api/res/1.2/boycudyPAcwybPVlW.rpoA--/dz0zMDAwO2g9MjAwMDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":3000,"height":2000},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/pjPNQaBInzzHZFukgMTuIw--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/CY_7YHcShQI4.sSsl51gJw--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/http://l2.yimg.com/uu/api/res/1.2/mHh8dnRAAjLcclFvss.H2A--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":3000,"height":2000}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T21:48:38Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"42002393-cde2-3ed9-b025-41cc947e491d","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":4,"bpos":1},"playcontext":{"playcontext_node":{"id":"merrillinvesting","path":"merrillinvesting","tags":["ymedia:series_name=Yfinance Investing Trending Tickers","ymedia:series_name=Yfinance Investing 101 Branded","ymedia:series_name=Yfinance Investing 101","ymedia:series_name=Yfinance Investing Market Pulse Branded","ymedia:series_name=Yfinance Investing Market Pulse","ymedia:series_name=Yfinance Investing Buy Sell Hold Branded","ymedia:series_name=Yfinance Investing Buy Sell Hold","ymedia:series_name=Yfinance Investing Trending Tickers Branded"],"weight":98}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/market_pulse","site_hierarchy_path":"exclusives/investing/market_pulse","spaceid":"1183335336"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:series_name=Yfinance Investing Market Pulse","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","tumblr:tag=_uuid:42002393-cde2-3ed9-b025-41cc947e491d","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","yvyc:region=au","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","iptc:subject=04000000","ymedia:provider_category=Investing_Market Pulse","yfinance:segment=market_pulse","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ylivestand:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"42002393-cde2-3ed9-b025-41cc947e491d"},"tumblrpost":{"post_id":139504360996,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139504360996/these-are-wall-streets-new-favorite-candidates","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"NjBEViMV","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139504360996/NjBEViMV","tags":[{"name":"_uuid:42002393-cde2-3ed9-b025-41cc947e491d","url":"_uuid:42002393-cde2-3ed9-b025-41cc947e491d"},{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139504360996&color=black&rk=NjBEViMV"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"1:44","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"wall-street-favorite-candidates-214838015","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"","formatted_credits":{},"video_group":"Recommended"}],"brand_logo_new":false,"brand_name":"Finance Video","brand_banner":"","instrument":{"cat":"Finance Video","t4":"Finance Video"},"follow_count":-1,"list_query_rules":null,"space_id":"","ads_types":null,"source_type":null,"description":"Yahoo Finance brings you everything you need to know about today's financial landscape.","last_modified":0,"sort_options":["popular","editorial"],"tags":["ymedia:device=full","ymedia:type=collection","ymedia:index=1","yfinance:region=US","ymedia:list_type=static","ymedia:type=list","ymedia:collection_video_channel","ymedia:collection_type=playlist","ymedia:collection_is_hidden"],"cast_crew":null,"series_info":null,"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/finance-videotron/","parent_alias":"","excl_from_listviews":false,"yvap":{"accountId":"193","playContext":"default","timeout":3},"url_alias":"finance-videotron","logoURL":false,"brand_banner_img":"","brand_banner_color":"","debugIdx":false},"playlist-grouped":{"videos":[{"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","title":"Apple to fight court order on San Bernadino case","show_name":"Yfinance Investing Market Movers Branded","preview_video_uuid":null,"duration":165,"alias_name":"cavideo=apple-fight-court-order-san-144843124","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T14:47:28Z","provider_publish_time":"2016-02-17T14:48:43Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578?region=US","description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/apple-fight-court-order-san-144843124.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/D4khqQeMBymzbAtRED2WUA--/dz02NTA7aD00ODc7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":650,"height":487},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/QAec4iBmVrXSG7W10KjNnA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/m9EtjldQ30.R.rc32fmN4g--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/07uVsJT3F9nezeNSXxXaqw--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":650,"height":487}],"channels":[],"view_count":"","concurrent_view_count":2,"concurrent_viewer_count":2,"create_date":"2016-02-17T14:48:43Z","copyright":"","credits":[],"instrument":null,"playcontext":{"playcontext_node":{"id":"marketmovers","path":"marketmovers","tags":["ymedia:series_name=Yfinance Investing Market Movers","ymedia:series_name=Yfinance Investing Market Movers Branded"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/morning_movers","site_hierarchy_path":"exclusives/investing/morning_movers","spaceid":"1183335574"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/apple-fight-court-order-san-144843124.html","hrefLang":null,"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:provider_category=Investing_Market Movers BRANDED","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","yvyc:region=au","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","ymedia:series_name=Yfinance Investing Market Movers Branded","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","yfinance:segment=market_movers","tumblr:tag=_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ylivestand:region=us","ymedia:category=100000000","yct:001000931"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578"},"tumblrpost":{"post_id":139485340246,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139485340246/apple-to-fight-court-order-on-san-bernadino-case","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"AP6F9KPo","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139485340246/AP6F9KPo","tags":[{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","url":"_uuid:4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139485340246&color=black&rk=AP6F9KPo"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"","url_alias":"apple-fight-court-order-san-144843124","formatted_credits":{},"vanity_url":"/finance-videotron/apple-fight-court-order-san-144843124.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended","firstItem":true},{"id":"54253f15-84af-367a-bd20-5dcddeeb28d4","title":"iPhone 6S and 6S Plus review","show_name":"","preview_video_uuid":null,"duration":406,"alias_name":"cavideo=iphone-6s-6s-plus-review-062817747","provider_name":"The Verge","provider_id":"the_verge_441","provider_object_ref":"72c0d2e0-5995-30ba-b8b4-f2429e256a30","publish_time":"2015-09-22T12:33:20Z","provider_publish_time":"2015-09-22T06:28:17Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/54253f15-84af-367a-bd20-5dcddeeb28d4?region=US","description":"iPhone 6S and 6S Plus review","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-6s-plus-review-062817747.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/pKEqo91UwzqzLnLvk3D5yA--/dz0xOTIwO2g9MTA4MDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":1920,"height":1080},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/_SRUGTBLCRmgQZkqrBywog--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/epJ1NGF71sNRdaifBxufjg--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/x5LkoqLEhVa_zbeg9sOyaQ--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/the_verge_441/a771c6150eff4f966a4028d7251a0d95","width":1920,"height":1080}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-22T06:28:17Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"54253f15-84af-367a-bd20-5dcddeeb28d4","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/tech_gadgets","site_hierarchy_path":"video/category/tech_gadgets","spaceid":"1183317149"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-6s-plus-review-062817747.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-6s-plus-review-062817747.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=00c51629-5baa-3be2-a3f9-9b053ebc1cb7","yomg:region=us","ymusic:region=gb","yivy:region=gb","ynews:region=gb","yomg:region=gb","ymedia:provider_id=the_verge_441","ytravel:region=us","ylifestyles:region=gb","ymedia:provider_category=DEFAULT","ymedia:hosted=yes","ynews:region=us","yall:region=us","ymedia:channel_id=1c31ca27-8220-3846-a02d-003fa49b8c56","ymedia:signal=provisioning_source:tripleplay","ylifestyles:region=us","ymusic:region=us","ysports:region=us","yfinance:region=us","DEFAULT","yivy:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000931"],"provider":{"provider_id":"the_verge_441","provider_object_ref":"72c0d2e0-5995-30ba-b8b4-f2429e256a30","name":"The Verge","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"2ecf201e-1c6c-3fa3-819d-5f1b1448748e"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"","url_alias":"iphone-6s-6s-plus-review-062817747","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-6s-plus-review-062817747.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"c9f634d2-be01-33f7-91c3-5036d7c6ea00","title":"iPhone 6s Hands On Review","show_name":"","preview_video_uuid":null,"duration":204,"alias_name":"cavideo=iphone-6s-hands-review-221716591","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-25T23:46:23Z","provider_publish_time":"2015-09-25T22:17:16Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/c9f634d2-be01-33f7-91c3-5036d7c6ea00?region=US","description":"iPhone 6s Hands On Review We review the Apple iPhone 6S, a subtle upgrade to last year’s model that might go unnoticed by your friends, but that hides a number of convenient and fun new features.<a href=\"http://www.digitaltrends.com/apple-videos/iphone-6s-hands-on-review/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-review-221716591.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/u9gKpMad9ZFgISgwvdbFJw--/dz0xOTIwO2g9MTA4MDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":1920,"height":1080},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/.9dQF8e5oc8BdWbP.1TT5Q--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/wYx_t9aF93PoSUIt5ZExcg--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/RFPTThGfcHhznGiv7RLPbA--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/2908158e04604f7b9f405bde38d86caf","width":1920,"height":1080}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-25T22:17:16Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"c9f634d2-be01-33f7-91c3-5036d7c6ea00","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/company_news","site_hierarchy_path":"video/category/company_news","spaceid":"1183317147"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-review-221716591.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-review-221716591.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-hands-review-221716591.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=1658eb84-cd50-3eff-b60d-a3643c85fdbe","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","Mobile Videos","ynews:region=xe","yivy:region=us","ymedia:channel_id=71852ad0-9ee6-454d-b6b6-8374852ed138","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ymedia:provider_category=Mobile Videos","ynews:region=us","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ysports:region=us","yfinance:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000243","yct:001000931","yct:001000183","yct:001000123"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"b37d7b81-580b-35f2-af96-46a6b4274359"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6s Hands On Review We review the Apple iPhone 6S, a subtle upgrade to last year’s model that might go unnoticed by your friends, but that hides a number of convenient and fu...","url_alias":"iphone-6s-hands-review-221716591","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-hands-review-221716591.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"545e479b-4f50-3a8e-bc0f-9b17034a0123","title":"iPhone 6s Tips and Tricks","show_name":"","preview_video_uuid":null,"duration":189,"alias_name":"cavideo=iphone-6s-tips-tricks-153407280","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-30T15:12:09Z","provider_publish_time":"2015-09-29T15:34:07Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/545e479b-4f50-3a8e-bc0f-9b17034a0123?region=US","description":"iPhone 6s Tips and Tricks Have you got a decent handle on what your new iPhone 6S or 6S Plus is actually capable of? It may look just like its predecessor, but your new iPhone has hidden depths. Apple adds all sorts of new capabilities with each new model, but they’re not always obvious. If […]<a href=\"http://www.digitaltrends.com/apple-videos/iphone-6s-tips-and-tricks-2/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-tips-tricks-153407280.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/seXoeBUeM_iFNQqGMnAjUw--/dz0xOTIwO2g9MTA4MDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":1920,"height":1080},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/dv76bwpso1t8qdEAm6pNrA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/yAqdmO9t.PkyAZwlE9Tqdw--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/KXx1T5Mg72j2vnEqWw5Opg--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/4885720bbb0ae8e85c91d6db5e21c5d6","width":1920,"height":1080}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-29T15:34:07Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"545e479b-4f50-3a8e-bc0f-9b17034a0123","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/tech_gadgets","site_hierarchy_path":"video/category/tech_gadgets","spaceid":"1183317149"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://www.yahoo.com/tech/iphone-6s-tips-tricks-153407280.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-tips-tricks-153407280.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=394258a4-8083-3f11-945f-9d3e33dd466a","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","ymedia:provider_category=How-To Videos","ynews:region=xe","yivy:region=us","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ynews:region=us","How-To Videos","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ymedia:channel_id=ee3c8f55-2520-45a6-aa99-f03d0a6ed956","ysports:region=us","yfinance:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000931"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"08b19e7e-a497-3dfd-9983-3ccf5c756474"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6s Tips and Tricks Have you got a decent handle on what your new iPhone 6S or 6S Plus is actually capable of? It may look just like its predecessor, but your new iPhone has ...","url_alias":"iphone-6s-tips-tricks-153407280","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-tips-tricks-153407280.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"c0a45562-f539-36e4-a498-8b44b7149427","title":"iPhone 6S Plus Hands On Review","show_name":"","preview_video_uuid":null,"duration":204,"alias_name":"cavideo=iphone-6s-plus-hands-review-231527109","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-25T23:46:24Z","provider_publish_time":"2015-09-25T23:15:27Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/c0a45562-f539-36e4-a498-8b44b7149427?region=US","description":"iPhone 6S Plus Hands On Review Apple’s really gone all out with the new iPhone 6S Plus. The camera upgrade, new processor, 2GB of RAM, and 3D Touch are all key differentiators that make the iPhone 6S Plus worth considering.<a href=\"http://www.digitaltrends.com/apple-videos/iphone-6s-plus-hands-on-review/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-plus-hands-review-231527109.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/BEPi2TPVNZqRjqQbAMmO8Q--/dz0xNTAwO2g9ODQ0O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":1500,"height":844},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/gcyy5iFzEIBGxNPDfWm1NA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/z69C7iRLzyGnLv85OoO50Q--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/VhPvPyXLxe18UX7nNX9y2g--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/8566f7d804cad15e16e8dabdbdb43024","width":1500,"height":844}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-25T23:15:27Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"c0a45562-f539-36e4-a498-8b44b7149427","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/company_news","site_hierarchy_path":"video/category/company_news","spaceid":"1183317147"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-plus-hands-review-231527109.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-plus-hands-review-231527109.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","ymedia:feedsource=1658eb84-cd50-3eff-b60d-a3643c85fdbe","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","Mobile Videos","ynews:region=xe","yivy:region=us","ymedia:channel_id=71852ad0-9ee6-454d-b6b6-8374852ed138","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ymedia:provider_category=Mobile Videos","ynews:region=us","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ysports:region=us","yfinance:region=us","membership:list=de471669-d03c-44f0-8b0c-7955dc2e7651","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000193","yct:001000931","yct:001000183","yct:001000123"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"a939ece5-bfd9-3246-9b31-4f5fbc20760b"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6S Plus Hands On Review Apple’s really gone all out with the new iPhone 6S Plus. The camera upgrade, new processor, 2GB of RAM, and 3D Touch are all key differentiators that...","url_alias":"iphone-6s-plus-hands-review-231527109","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-plus-hands-review-231527109.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"4f64ae48-d072-3a18-ba11-b732e04f782a","title":"iPhone 6S – Hands on","show_name":"","preview_video_uuid":null,"duration":206,"alias_name":"cavideo=iphone-6s-hands-225632820","provider_name":"Digital Trends","provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","publish_time":"2015-09-22T12:31:41Z","provider_publish_time":"2015-09-09T22:56:32Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/4f64ae48-d072-3a18-ba11-b732e04f782a?region=US","description":"iPhone 6S - Hands on Apple’s September 9 event was jam packed with cool new products and features, but the headliner of the the event was the iPhone 6S and iPhone 6S Plus launch. Here’s everything you need to know about the new iPhones. A 12-megapixel camera with 4K video The iPhone 6S’s camera finally […]<a href=\"/apple-videos/iphone-6s-hands-on/\">Read More</a>","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-225632820.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/UDAAraxXJuoESZ17H3zISg--/dz0xNTAwO2g9MTAwMDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":1500,"height":1000},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/V3M03GpvuSsSbojBZbV0mg--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/JWZeg66aDHvFiO5T8VsQBg--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/aL_PKyiJRhz7UbXREIp3Bg--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/digital_trends_973/7cf4a1eb72cbb0a8fc5ece542bec8eca","width":1500,"height":1000}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2015-09-09T22:56:32Z","copyright":"","credits":[],"instrument":{"rule":"articletovideo","id":"4f64ae48-d072-3a18-ba11-b732e04f782a","algo":"mms"},"playcontext":{"playcontext_node":{"id":"preroll1overlay1","path":"preroll1overlay1","tags":["ymedia:type=cavideo","ymedia:series_name=Power Pitch"],"weight":50}},"ads":{"hotlist_path":"/site/finance/global/video/category/tech_gadgets","site_hierarchy_path":"video/category/tech_gadgets","spaceid":"1183317149"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-225632820.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/iphone-6s-hands-225632820.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-225632820.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/iphone-6s-hands-225632820.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/iphone-6s-hands-225632820.html"],"beacon_urls":[],"tags":["ymedia:feedsource=1658eb84-cd50-3eff-b60d-a3643c85fdbe","ymedia:type=cavideo","ymedia:index=video","video:quality=hd","yomg:region=us","ymusic:region=gb","yomg:region=gb","ylifestyles:region=gb","ymedia:hosted=yes","yall:region=us","ylifestyles:region=us","ymusic:region=us","yivy:region=xe","yfrontpage:region=xe","Mobile Videos","ynews:region=xe","yivy:region=us","ymedia:channel_id=71852ad0-9ee6-454d-b6b6-8374852ed138","Apple Videos","yivy:region=gb","ynews:region=gb","ytravel:region=us","ymedia:provider_category=Apple Videos","ymedia:provider_category=Mobile Videos","ynews:region=us","ymedia:signal=provisioning_source:tripleplay","ymedia:provider_id=digital_trends_973","ysports:region=us","yfinance:region=us","membership:list=f3b45110-f8e6-4241-b299-bfc5c89f4324","membership:list=e4d6fdc4-8944-4e76-90e8-90810360349d","membership:list=eabe163f-9d58-43e0-bf51-0a82b53f2a13","membership:list=f5647e39-8ba6-4b80-8b46-9e50bc621447","membership:list=663ed520-e2a2-11e3-95f7-a05d856da561","membership:list=62e7916a-92ea-3989-aafc-dc902e1ae581","yct:001000931","yct:001000958"],"provider":{"provider_id":"digital_trends_973","provider_object_ref":"aa2a9035-7bfa-362a-be3b-b515efb2c64a","name":"Digital Trends","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"1071eba6-823a-3f34-b78a-2a6da6fc9f66"},"tumblrpost":null,"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"cur_channel_alias":"finance-videotron","short_description":"iPhone 6S - Hands on Apple’s September 9 event was jam packed with cool new products and features, but the headliner of the the event was the iPhone 6S and iPhone 6S Plus launch. H...","url_alias":"iphone-6s-hands-225632820","formatted_credits":{},"vanity_url":"/finance-videotron/iphone-6s-hands-225632820.html","channel":{"alias_name":"finance-videotron"},"video_group":"Recommended"},{"id":"1dc9313b-ac0f-3fb5-91f6-e8408761a97b","title":"Stocks stage three-day winning streak; oil bounces back","show_name":"The Final Round","preview_video_uuid":null,"duration":913,"alias_name":"cavideo=stocks-stage-three-day-winning-222645028","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T22:24:41Z","provider_publish_time":"2016-02-17T22:26:45Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/1dc9313b-ac0f-3fb5-91f6-e8408761a97b?region=US","description":"Yahoo Finance breaks down the biggest stories of the day and looks at tomorrow's headlines today.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/stocks-stage-three-day-winning-222645028.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/qP0K0gC18NGO9hNRUy3_Pw--/dz03Mjg7aD00ODU7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":728,"height":485},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/NSWzxRRyPvX4r5ajKS3sKg--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/djocRVAICR17EeUE4QOaXA--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/u75G1FLkqKqsSKuYl6vQ6g--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@1dc9313b-ac0f-3fb5-91f6-e8408761a97b_FULL.jpg","width":728,"height":485}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T22:26:45Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"1dc9313b-ac0f-3fb5-91f6-e8408761a97b","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":1,"bpos":1},"playcontext":{"playcontext_node":{"id":"thefinalround","path":"thefinalround","tags":["ymedia:series_name=The Final Round"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/the_final_round","site_hierarchy_path":"exclusives/investing/the_final_round","spaceid":"1183335835"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","hrefLang":["https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/stocks-stage-three-day-winning-222645028.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:series_name=The Final Round","membership:list=11435c5d-be37-48fd-96e6-43c8799d07d5","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","vyc:region=au","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","membership:list=aa15ff07-a6e2-338d-bc28-ffc5debabf49","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","yfinance:segment=the_final_round","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","ymedia:provider_category=The Final Round","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","tumblr:tag=_uuid:1dc9313b-ac0f-3fb5-91f6-e8408761a97b","yfinance:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"1dc9313b-ac0f-3fb5-91f6-e8408761a97b"},"tumblrpost":{"post_id":139506644606,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139506644606/stocks-stage-three-day-winning-streak-oil-bounces","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"EUWVkgbV","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139506644606/EUWVkgbV","tags":[{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"},{"name":"_uuid:1dc9313b-ac0f-3fb5-91f6-e8408761a97b","url":"_uuid:1dc9313b-ac0f-3fb5-91f6-e8408761a97b"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139506644606&color=black&rk=EUWVkgbV"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"15:13","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"stocks-stage-three-day-winning-222645028","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"","formatted_credits":{},"video_group":"Recommended"},{"id":"b04f7470-50b2-3870-8a61-70fa4a5e42b1","title":"Is Jeff Saut ready to call a market bottom?","show_name":"The Final Round","preview_video_uuid":null,"duration":229,"alias_name":"cavideo=jeff-saut-ready-call-market-220630117","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T22:05:25Z","provider_publish_time":"2016-02-17T22:06:30Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/b04f7470-50b2-3870-8a61-70fa4a5e42b1?region=US","description":"He called the bottom back in August, but is Jeff Saut calling the bottom here? Joining us now to discuss is the man himself.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/jeff-saut-ready-call-market-220630117.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/BLjY2.D8KY0.NfJq7TznEg--/dz0zNTAwO2g9MjMzMzthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":3500,"height":2333},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/http://l1.yimg.com/uu/api/res/1.2/nLzrr6Lg6UrhpA0MNh7s5A--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/l2jW5Ja3mc11RK5T7DM98Q--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/YDtu2Lk4i351IELucCB6LA--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@b04f7470-50b2-3870-8a61-70fa4a5e42b1_FULL.jpg","width":3500,"height":2333}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T22:06:30Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"b04f7470-50b2-3870-8a61-70fa4a5e42b1","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":2,"bpos":1},"playcontext":{"playcontext_node":{"id":"thefinalround","path":"thefinalround","tags":["ymedia:series_name=The Final Round"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/the_final_round","site_hierarchy_path":"exclusives/investing/the_final_round","spaceid":"1183335835"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","hrefLang":["https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/jeff-saut-ready-call-market-220630117.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:series_name=The Final Round","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","vyc:region=au","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","membership:list=aa15ff07-a6e2-338d-bc28-ffc5debabf49","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","tumblr:tag=_uuid:b04f7470-50b2-3870-8a61-70fa4a5e42b1","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","yfinance:segment=the_final_round","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","ymedia:provider_category=The Final Round","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"b04f7470-50b2-3870-8a61-70fa4a5e42b1"},"tumblrpost":{"post_id":139505305421,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139505305421/is-jeff-saut-ready-to-call-a-market-bottom","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"HhRVo3eW","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139505305421/HhRVo3eW","tags":[{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"_uuid:b04f7470-50b2-3870-8a61-70fa4a5e42b1","url":"_uuid:b04f7470-50b2-3870-8a61-70fa4a5e42b1"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139505305421&color=black&rk=HhRVo3eW"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"3:49","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"jeff-saut-ready-call-market-220630117","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"","formatted_credits":{},"video_group":"Recommended"},{"id":"a0d2e587-7441-3c9f-bc5d-062e04198424","title":"Is a major downturn in store?","show_name":"The Final Round","preview_video_uuid":null,"duration":177,"alias_name":"cavideo=major-downturn-store-215808348","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T21:57:58Z","provider_publish_time":"2016-02-17T21:58:08Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/a0d2e587-7441-3c9f-bc5d-062e04198424?region=US","description":"With both stocks and oil up for the day, it seems their slight divergence earlier this week was only temporary. Yahoo Finance's Justine Underhill and Louise Yamada, Managing Director of Louise Yamada Technical Research Advisors, have a closer look at the charts.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/major-downturn-store-215808348.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/bxcWPn43g9hk95H9MhAmmg--/dz0xMjMyO2g9Njc2O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":1232,"height":676},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/B47DnaFsdUkyQv7jmu4sCA--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/2q01dXbCbOwI5xrpp7uhqQ--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/YCB2wWhJUG2tD3NrQjD9dQ--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@a0d2e587-7441-3c9f-bc5d-062e04198424_FULL.png","width":1232,"height":676}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T21:58:08Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"a0d2e587-7441-3c9f-bc5d-062e04198424","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":3,"bpos":1},"playcontext":{"playcontext_node":{"id":"thefinalround","path":"thefinalround","tags":["ymedia:series_name=The Final Round"],"weight":100}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/the_final_round","site_hierarchy_path":"exclusives/investing/the_final_round","spaceid":"1183335835"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","hrefLang":["https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/major-downturn-store-215808348.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/major-downturn-store-215808348.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","ymedia:series_name=The Final Round","membership:list=11435c5d-be37-48fd-96e6-43c8799d07d5","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_uuid:a0d2e587-7441-3c9f-bc5d-062e04198424","tumblr:tag=_category:yct:001000298","vyc:region=au","membership:list=94868287-bee5-4c80-87f5-ad54f6e8479b","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","iptc:subject=04000000","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","yfinance:segment=the_final_round","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","ymedia:provider_category=The Final Round","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"a0d2e587-7441-3c9f-bc5d-062e04198424"},"tumblrpost":{"post_id":139504846191,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139504846191/is-a-major-downturn-in-store","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"EQSZqHXZ","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139504846191/EQSZqHXZ","tags":[{"name":"_uuid:a0d2e587-7441-3c9f-bc5d-062e04198424","url":"_uuid:a0d2e587-7441-3c9f-bc5d-062e04198424"},{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139504846191&color=black&rk=EQSZqHXZ"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"2:57","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"major-downturn-store-215808348","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"With both stocks and oil up for the day, it seems their slight divergence earlier this week was only temporary. Yahoo Finance's Justine Underhill and Louise Yamada, Managing D...","formatted_credits":{},"video_group":"Recommended"},{"id":"42002393-cde2-3ed9-b025-41cc947e491d","title":"These are Wall Street’s new favorite candidates","show_name":"Yfinance Investing Market Pulse","preview_video_uuid":null,"duration":104,"alias_name":"cavideo=wall-street-favorite-candidates-214838015","provider_name":"Yahoo Finance Video","provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","publish_time":"2016-02-17T21:46:47Z","provider_publish_time":"2016-02-17T21:48:38Z","streaming_url":"https://web.archive.org/web/20160217234258/https://video.media.yql.yahoo.com/v1/hls/42002393-cde2-3ed9-b025-41cc947e491d?region=US","description":"Wall Street is piling money into some of the presidential candidates’ Super PACs.","share_link":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/finance-videotron/wall-street-favorite-candidates-214838015.html","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/http://l3.yimg.com/uu/api/res/1.2/boycudyPAcwybPVlW.rpoA--/dz0zMDAwO2g9MjAwMDthcHBpZD15dGFjaHlvbg--/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":3000,"height":2000},{"tag":"208x117","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/pjPNQaBInzzHZFukgMTuIw--/Zmk9ZmlsbDtweW9mZj0wO3c9MjA4O2g9MTE3O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":208,"height":117},{"tag":"640x360","url":"https://web.archive.org/web/20160217234258/http://l.yimg.com/uu/api/res/1.2/CY_7YHcShQI4.sSsl51gJw--/Zmk9ZmlsbDtweW9mZj0wO3c9NjQwO2g9MzYwO3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":640,"height":360},{"tag":"956x538","url":"https://web.archive.org/web/20160217234258/http://l2.yimg.com/uu/api/res/1.2/mHh8dnRAAjLcclFvss.H2A--/Zmk9ZmlsbDtweW9mZj0wO3c9OTU2O2g9NTM4O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":956,"height":538},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg","width":3000,"height":2000}],"channels":null,"view_count":"","concurrent_view_count":0,"concurrent_viewer_count":0,"create_date":"2016-02-17T21:48:38Z","copyright":"","credits":[],"instrument":{"cat":"Finance Video","g":"42002393-cde2-3ed9-b025-41cc947e491d","pkgt":1,"pub":"035d06c6-fa08-3ca2-824d-b9d08b6facff","sec":"Finance Video","cpos":4,"bpos":1},"playcontext":{"playcontext_node":{"id":"merrillinvesting","path":"merrillinvesting","tags":["ymedia:series_name=Yfinance Investing Trending Tickers","ymedia:series_name=Yfinance Investing 101 Branded","ymedia:series_name=Yfinance Investing 101","ymedia:series_name=Yfinance Investing Market Pulse Branded","ymedia:series_name=Yfinance Investing Market Pulse","ymedia:series_name=Yfinance Investing Buy Sell Hold Branded","ymedia:series_name=Yfinance Investing Buy Sell Hold","ymedia:series_name=Yfinance Investing Trending Tickers Branded"],"weight":98}},"ads":{"hotlist_path":"/site/finance/global/exclusives/investing/market_pulse","site_hierarchy_path":"exclusives/investing/market_pulse","spaceid":"1183335336"},"canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","source_canonical_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","clickthrough_url":"https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","hrefLang":["https://web.archive.org/web/20160217234258/https://de.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://hk.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://tw.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://in.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://kr.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://it.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://mx.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://fr.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://nz.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://es.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://br.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://ar.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://au.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://sg.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://uk.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://ca.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://fr-ca.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html","https://web.archive.org/web/20160217234258/https://espanol.finance.yahoo.com/video/wall-street-favorite-candidates-214838015.html"],"beacon_urls":[],"tags":["ymedia:index=video","video:quality=hd","transcoding-system:yip","ymedia:type=cavideo","yfinance:region=tw","ymedia:series_name=Yfinance Investing Market Pulse","ymedia:provider_id=video.yahoofinance.com","ymedia:hosted=yes","membership:list=0d5ea0e0-264a-4beb-982f-5bb5698fd523","membership:list=43b24482-1a7b-4ff3-a2a6-c6326e54f71e","tumblr:tag=_uuid:42002393-cde2-3ed9-b025-41cc947e491d","membership:list=1899cdb9-7f19-4e53-9db0-3ae92e9408e8","tumblr:tag=_category:yct:001000298","yvyc:region=au","yivy:region=us","membership:list=fc5a3ae0-c736-11e3-9f7f-e5b8936e1729","membership:list=4a0bd911-b74c-447d-9f0c-42b15a0539a5","iptc:subject=04000000","ymedia:provider_category=Investing_Market Pulse","yfinance:segment=market_pulse","membership:list=f764602a-a219-418c-8b16-a3c5a51f02ea","yct:001000298","ymedia:source=pd2","membership:list=b0e8d79d-7eec-4f4f-aec5-d9c29917ad37","membership:list=8bef8115-18f0-48c9-9a55-cd29fe54e654","tumblr:tag=video","tumblr:tag=_revsp:video.yahoofinance.com","iptc:subject=04019000","yfinance:region=us","ylivestand:region=us","ymedia:category=100000000"],"provider":{"provider_id":"video.yahoofinance.com","provider_object_ref":"035d06c6-fa08-3ca2-824d-b9d08b6facff","name":"Yahoo Finance Video","atlas_account_name":null,"secure_interval":null,"secure_key":null,"serving_protocol":null,"provider_url":"","provider_guid":"42002393-cde2-3ed9-b025-41cc947e491d"},"tumblrpost":{"post_id":139504360996,"post_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com/post/139504360996/these-are-wall-streets-new-favorite-candidates","blog_url":"https://web.archive.org/web/20160217234258/http://video-yahoofinance-yahoopartner.tumblr.com","blog_name":"video-yahoofinance-yahoopartner","blog_uuid":"32cd1a44-0012-4bd1-b45d-b94e29156526","guid":"video-yahoofinance-yahoopartner","reblog_key":"NjBEViMV","reblog_url":"https://web.archive.org/web/20160217234258/https://www.tumblr.com/reblog/139504360996/NjBEViMV","tags":[{"name":"_uuid:42002393-cde2-3ed9-b025-41cc947e491d","url":"_uuid:42002393-cde2-3ed9-b025-41cc947e491d"},{"name":"_category:yct:001000298","url":"_category:yct:001000298"},{"name":"video","url":"video"},{"name":"_revsp:video.yahoofinance.com","url":"_revsp:video.yahoofinance.com"}],"like_button":"https://web.archive.org/web/20160217234258/https://secure.assets.tumblr.com/assets/html/tumblr_like_iframe.html#name=video-yahoofinance-yahoopartner&post_id=139504360996&color=black&rk=NjBEViMV"},"nflplayers":[],"nflteams":[],"isEmbeddable":true,"lms_license":null,"beacons":null,"yahoo_media_video_beacon":null,"yahoo_media_yvap_info":null,"yahoo_media_streams":null,"yahoo_media_live_video":null,"yahoo_media_visual_seek":null,"yahoo_media_closed_captions":null,"yahoo_media_preview_streams":null,"yahoo_media_video_credits":null,"yahoo_media_video_apps_annotations":null,"fairplay_content_key":null,"series_info":null,"formatted_dur":"1:44","i18n_publish_time":"Feb 17, 2016","i18n_provider_publish_time":"Feb 17, 2016","i18n_create_date":"Feb 17, 2016","i18n_view_count":"","url_alias":"wall-street-favorite-candidates-214838015","channel_url_alias":"finance-videotron","cur_channel_alias":"finance-videotron","short_description":"","formatted_credits":{},"video_group":"Recommended"}]}},"apiURL":"/_td_api","playlist_count":10,"exposed_config":{"embedded":false,"fbAppId":"90376669494","twitterAppId":"Yahoo","blankImg":"https://web.archive.org/web/20160217234258/http://l.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://web.archive.org/web/20160217234258/http://finance.yahoo.comundefined/_remote/?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=8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb&bucket=&spaceid=1183300101&site=finance®ion=US&lang=en-US&videoId=4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578&mod_id=td-applet-videoplayer-lead&enable_vp_js=0&includeVpJs=0&relatedSource=related%2Cmms&suppressAdContext=1&vp=1&tasks.enable_related_videos=1&nolz=1&y_proc_embeds=1&y_map_urn=urn%3Armp%3Alite&_product_version=v2sg&r_inc=1&y_embed_blob_hdr=0&_sig=mw9WoTVyqSsS07fxICONpbjiNfg-","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":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","bucket":"","spaceid":"1183300101","site":"finance","region":"US","lang":"en-US","videoId":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","mod_id":"td-applet-videoplayer-lead","enable_vp_js":"0","includeVpJs":"0","relatedSource":"related,mms","suppressAdContext":"1","vp":"1","tasks.enable_related_videos":"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":"mw9WoTVyqSsS07fxICONpbjiNfg-","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":"ccZXhDx.mql","device":"desktop","lang":"en-US","region":"US","site":"finance"}};</script></div> </div> <div class="body yom-art-content clearfix" itemscope itemtype="http://schema.org/Article"> <div id="yom-ad-LREC" class="yom-ad yom-ad-LREC"><center><div id="yom-ad-LREC-iframe" class="yom-ad"> <script>(function(){ var wrap = document.getElementById("yom-ad-LREC"); if (null == wrap) { wrap = document.getElementById("yom-ad-LREC-iframe") || {}; } var content = wrap.innerHTML || ""; if (content && content.substr(0, content.lastIndexOf("<script>")).indexOf("loc=LREC noad") !== -1) { wrap.style.display = "none"; } }())</script></div></center></div> <!-- google_ad_section_start --> <meta itemprop="datePublished" content="2016-02-17T14:53:48Z"/> <meta itemprop="headline" content="Apple resisting magistrate order to share iPhone information"/> <meta itemprop="alternativeHeadline" content="Apple Inc. CEO Tim Cook says his company will resist a federal magistrate's order to hack its own users in connection with the investigation of the San Bernardino, California shootings"/> <meta itemprop="image" content="https://web.archive.org/web/20160217234258im_/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"/> <meta itemprop="description" content="Apple Inc. CEO Tim Cook says his company will fight a federal magistrate's order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ..."/> <p></p><p> </p><div class="body-slot-mod"><div class="yom-remote"><div class="yom-loading" id="mediacontentrelatedstory_container"><!-- --></div></div></div><p>WASHINGTON (AP) -- An extraordinary legal fight is brewing with major privacy implications for millions of cellphone users after a federal magistrate ordered Apple Inc. to help the FBI hack into an iPhone used by the gunman in the San Bernardino mass shootings.</p> <p>The clash brings to a head a long-simmering debate between technology companies insistent on protecting digital privacy and law enforcement agencies concerned about losing their ability to recover evidence or eavesdrop on the communications of terrorists or criminals.</p> <p>On Wednesday, the White House quickly disputed the contention by Apple's chief executive officer, Tim Cook, that the Obama administration is seeking to force the software company to build a "backdoor" to bypass digital locks protecting consumer information on Apple's popular iPhones.</p> <p>The early arguments set the stage for what will likely be a protracted policy and public relations fight in the courts, on Capitol Hill, on the Internet and elsewhere.</p> <p>"They are not asking Apple to redesign its product or to create a new backdoor to one of their products," White House spokesman Josh Earnest said. "They're simply asking for something that would have an impact on this one device."</p> <p>Within hours of the judge's order on Tuesday telling Apple to aid the FBI with special software in the case, Cook promised a court challenge. He said the software the FBI would need to unlock the gunman's work-issued iPhone 5C would be "too dangerous to create" and "undeniably" a backdoor.</p><div class="body-slot-mod"><div class="yom-remote"><div class="yom-loading" id="mediafinancerelatedquotes_gs_container"><!-- --></div></div></div> <p>Cook compared it to a master key, capable of opening hundreds of millions of locks, and said there was no way to keep the technique secret once it was developed.</p> <p>"Once the information is known, or a way to bypass the code is revealed, the encryption can be defeated by anyone with that knowledge," Cook said.</p> <p>At the center of the debate is the private information carried on nearly 900 million iPhones sold worldwide: Photographs, videos, chat messages, health records and more.</p> <p>There also was swift reaction on the presidential campaign trail, where Donald Trump told Fox News that he agreed "100 percent with the courts," and on Capitol Hill, where the chairman of the Senate Intelligence Committee, Richard Burr, R-N.C., said, "Court orders are not optional and Apple should comply."</p> <p>Democratic Sen. Dianne Feinstein of California, who fought encryption in the 1990s, said she thought the government should be able to access the phone. On Twitter, Edward Snowden called it "the most important tech case in a decade."</p> <p>But Rep. Justin Amash, R-Mich., called the Justice Department's request "unconscionable and unconstitutional."</p><div class="body-related"> <a href="/web/20160217234258/http://finance.yahoo.com/photos/apple-resisting-magistrate-order-share-photo-113320864.html" class="body-related-link body-related-image go-to-slideshow-lightbox rapid-noclick-resp landscape onesize get-lbdata-from-dom" data-uuid="84b36e78-fe81-30c2-9bc6-1c6624d80e88" data-pos="1" data-ylk="t1:a3;t2:ct-mod;t3:embd;sec:ct-mod;slk:expand;elm:img;elmt:ct;itc:1;g:8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb;aid:84b36e78-fe81-30c2-9bc6-1c6624d80e88;ct:4;cpos:1;" title="Apple to fight order to help FBI unlock shooter's &nbsp;&hellip;"> <div class="img-wrap"> <div class="cta-overlay"> <span class="clearfix title cta-text medium"></span> <span class="cta-text xsmall ">View gallery</span> <span class="icon-slideshow icon-white-slideshow-xsmall "></span> </div> <img alt="Apple to fight order to help FBI unlock shooter's &nbsp;&hellip;" class="lzbg body-related-thumb" data-src-2x="" height="195" src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-649ba6f.png" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/HBXh_0ozK2dOxcyo8ijrOg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTk1O3E9NzU7dz0zMDA-/http://globalfinance.zenfs.com/images/US_AHTTP_AP_FINANCIALTIMES/2fd3436bb32bb308900f6a706700c7f8_original.jpg');" width="300"></img> </div> </a> <div class="body-related-title photo-caption" style="width: 300px"> FILE - In this April 30, 2015, file photo, Apple CEO Tim Cook responds to a question during a news …</div> </div> <p>The ruling by U.S. Magistrate Judge Sheri Pym represents a significant victory for the Justice Department, which last year decided not to pursue a legislative fix to address encryption but has now scored a win instead in the courts.</p> <p>Federal officials until now have struggled to identify a high-profile case to make its concerns resonate. But in siding with the government, Pym, a former federal prosecutor, was persuaded that agents investigating the worst terror attack on U.S. soil since Sept. 11 had been hobbled by their inability to unlock the county-owned phone used by Syed Farook, who along with his wife, Tashfeen Malik, killed 14 people in December before dying in a police shootout.</p> <p>The dispute places Apple, one of the world's most respected companies, on the side of protecting the digital privacy of an accused Islamic terrorist.</p> <p>"We have no sympathy for terrorists," Cook said.</p> <p>Apple has provided default encryption on its iPhones since 2014, allowing any device's contents to be accessed only by the user who knows the phone's passcode. The phone Farook was using, running the newest version of Apple's iPhone operating system, was configured to erase data after 10 consecutive, unsuccessful unlocking attempts.</p> <p>The magistrate ordered Apple to create special software the FBI could load onto the phone to bypass the self-destruct feature. The FBI wants to be able to try different combinations in rapid sequence until it finds the right one.</p> <p>The Justice Department said it was asking Apple to help unlock only the iPhone used by Farook and owned by the county government where he worked as an environmental inspector. The judge said the software should include a "unique identifier" so that it can't be used to unlock other iPhones.</p> <p>"If a court can legally compel Apple to do that, then it likely could legally compel any other software provider to do the same thing," including helping the government install tracking or eavesdropping software on a phone or laptop, said Kevin Bankston, director of the Open Technology Institute at New America.</p> <p>It was unclear how readily the software might be modified to work against other iPhones, or how quickly Apple might update its own software to render the new bypass ineffective.</p> <p>The next step in the case wasn't immediately clear, either. The judge gave Apple five days to contest the order as unreasonably burdensome. A magistrate judge on the lowest rung of the federal judiciary almost certainly could not establish meaningful precedent without affirmation from a higher-court judge, which means the fight is likely to proceed up the chain.</p> <p>The former head of the FBI division responsible for producing some of the FBI's most cunning surveillance tools, Marcus Thomas, said Apple faces a challenge in showing that the government's request is overly burdensome. Thomas, the chief technology officer at Subsentio LLC, said companies that build ultra-secure products that might be used by criminals or terrorists can expect government requests for help.</p> <p>"Society wants to know that companies aren't producing these complicated services and devices that can be used as weapons against them," he said.</p> <p>___</p> <p>Follow Tami Abdollah on Twitter at http://www.twitter.com/latams and Eric Tucker at http://www.twitter.com/etuckerAP</p> <ul id="topics" class="hidden"><li data-id="YCT:001000243">Information Technology</li><li data-id="WIKIID:Federal_Bureau_of_Investigation">FBI</li><li data-id="WIKIID:Apple_Inc.">Apple</li><li data-id="WIKIID:Tim_Cook">Tim Cook</li></ul> <!-- google_ad_section_end --> </div> </div> </section> <div class="yom-remote"><div class="yom-loading" id="mediabankrate_container"><!-- --></div></div> <div id="mediacontentcomments" class="yom-mod yom-comments default "> <a href="" class="pharma hidden">Click to view comments</a> <div id="collapsed-comments-show" class="collapsed-button int "> <div class="Icon"></div> <span>View Comments (<span id="total-comment-count">4000</span>)</span> </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 type="text" class="share-link" value="http://finance.yahoo.com/news/judge-apple-must-help-us-005604451.html?soc_src=copy" role="textbox"> </form> <a class="share-link-icon hidden" role="button"><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://web.archive.org/web/20160217234258/https://www.tumblr.com/share/photo?clickthru=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dtu&caption=Apple%20Inc.%20CEO%20Tim%20Cook%20says%20his%20company%20will%20fight%20a%20federal%20magistrate%27s%20order%20to%20hack%20its%20users%20in%20connection%20with%20the%20investigation%20of%20the%20San%20Bernardino%20shootings%2C%20asserting%20that%20would%20undermine%20encryption%20...&source=http%3A%2F%2Fl3.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FTPEct8bPpbOVD.JaNVc_aw--%2FYXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.pd2upload.com%2Fvideo.yahoofinance.com%404a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg" role="link" title="Share on Tumblr" data-share-key="tumblr" target="_blank"><span class="Icon btn-icon btn-tumblr small"></span></a></li><li class="share-btn facebook"><a href="https://web.archive.org/web/20160217234258/https://www.facebook.com/dialog/feed?app_id=90376669494&redirect_uri=http%3A%2F%2Ffinance.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dfb&link=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dfb&picture=http%3A%2F%2Fl3.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FTPEct8bPpbOVD.JaNVc_aw--%2FYXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.pd2upload.com%2Fvideo.yahoofinance.com%404a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg&name=Apple+resisting+magistrate+order+to+share+iPhone+information&description=Apple+Inc.+CEO+Tim+Cook+says+his+company+will+fight+a+federal+magistrate%27s+order+to+hack+its+users+in+connection+with+the+investigation+of+the+San+Bernardino+shootings%2C+asserting+that+would+undermine+encryption+...&display=popup&show_error=yes" role="link" title="Share on Facebook" data-share-key="facebook" target="_blank"><span class="Icon btn-icon btn-facebook small"></span></a></li><li class="share-btn twitter"><a href="https://web.archive.org/web/20160217234258/https://twitter.com/share?text=Apple+resisting+magistrate+order+to+share+iPhone+information&url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dtw&via=YahooFinance" role="link" title="Share on Twitter" data-share-key="twitter" target="_blank"><span class="Icon btn-icon btn-twitter small"></span></a></li><li class="share-btn mail"><a href="https://web.archive.org/web/20160217234258/http://finance.yahoo.com/_xhr/mtf_popup/?url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3Dmediacontentsharebuttons%26soc_trk%3Dma&site=finance&region=US&lang=en-US&content_id=8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb&alias_id=story%3Djudge-apple-must-help-us-005604451" class="rapid-noclick-resp" role="link" title="Email to friends" data-share-key="mail" target="_blank"><span class="Icon btn-icon btn-mail small"></span></a></li></ul> </div> </div> <div class="clearfix"></div> </div> </div> </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="#UH"> <div role="complementary" class="Row" id="Aside" tabindex="0"> <div id="td-applet-sidekick-tv_container"><div class="yom-app ReactYomApp Dn" id="applet_sidekick_tv" data-reactid=".163nduj4lc0" data-react-checksum="293467155"><div class="SidekickTV D-b Pos-r" data-ylk="mpos:3;t1:a4;t2:lst-tv;sec:lst-tv;" data-reactid=".163nduj4lc0.0"><div class="Grid W-100" data-reactid=".163nduj4lc0.0.0"><div class="Grid-U W-55" style="background-color:#006e8e;height:40px;" data-reactid=".163nduj4lc0.0.0.0"><img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/content_index/images/sidekick_tv_finance-2e9c408.png" style="height:40px;" data-reactid=".163nduj4lc0.0.0.0.0"></div><div class="Grid-U W-15 SidekickTVArrow Bxz-bb" style="border-left-color:#006e8e;background-color:#dbdbdb;" data-reactid=".163nduj4lc0.0.0.1"></div><div class="Grid-U W-30 SidekickTVMore Ta-end Fz-xs Fw-b" style="background-color:#dbdbdb;color:#000;height:40px;line-height:40px;" data-reactid=".163nduj4lc0.0.0.2"><span class="Mend-10" data-reactid=".163nduj4lc0.0.0.2.0">Must Watch</span></div></div><div class="W-100 Pos-r" data-reactid=".163nduj4lc0.0.1"><div class="Pos-r Ratio-16-9" data-reactid=".163nduj4lc0.0.1.2"><div data-reactid=".163nduj4lc0.0.1.2.$picture"><img src="https://web.archive.org/web/20160217234258im_/https://s.yimg.com/uu/api/res/1.2/eSITsX8f91BVwBckW.2qpA--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/http://media.zenfs.com/en-US/video/bloomberg_932/7d77586acea7253e8e0d29e7c14062c6" class="Stretch" data-reactid=".163nduj4lc0.0.1.2.$picture.0"></div><div class="SidekickTVLazy W-100 H-100 Pos-a" data-reactid=".163nduj4lc0.0.1.2.$controls"><div class="Pos-a W-70 T-50 Start-50 Whs-nw player-controls" data-reactid=".163nduj4lc0.0.1.2.$controls.0"><span class="W-25 H-100 Pos-r D-ib btn-player" data-reactid=".163nduj4lc0.0.1.2.$controls.0.0"></span><span class="W-25 H-100 Pos-r D-ib Cur-p btn-player" data-reactid=".163nduj4lc0.0.1.2.$controls.0.1"><i class="Pos-a W-100 H-100 pause" data-reactid=".163nduj4lc0.0.1.2.$controls.0.1.0"></i></span><span class="W-25 H-100 Pos-r D-ib btn-player" data-reactid=".163nduj4lc0.0.1.2.$controls.0.2"></span></div></div></div></div><div class="ftr Grid list-view" style="background-color:#dbdbdb;color:#000;" data-reactid=".163nduj4lc0.0.2"><div class="Grid-U list-view-item selected Cur-d Py-10" data-reactid=".163nduj4lc0.0.2.0"><div class=" Px-10" data-reactid=".163nduj4lc0.0.2.0.1"></div><div class="ad-sponsored thread-snippet Pt-2 Px-10" data-reactid=".163nduj4lc0.0.2.0.2"></div></div></div></div></div></div><script>window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap["1309823362287136"] = {"applet_type":"td-applet-sidekick-tv","transport":{"xhr":"/_td_api"},"context":{"bucket":"","crumb":"ccZXhDx.mql","device":"desktop","lang":"en-US","region":"US","site":"finance"}};</script><script>/******/!function(modules){/******/ // The require function /******/ function __webpack_require__(moduleId){/******/ // Check if module is in cache /******/ if(installedModules[moduleId])/******/ return installedModules[moduleId].exports;/******/ // Create a new module (and put it into the cache) /******/ var module=installedModules[moduleId]={/******/ exports:{},/******/ id:moduleId,/******/ loaded:!1};/******/ // Return the exports of the module /******/ /******/ // Execute the module function /******/ /******/ // Flag the module as loaded /******/ return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}// webpackBootstrap /******/ // The module cache /******/ var installedModules={};/******/ // Load entry module and return exports /******/ /******/ // expose the modules object (__webpack_modules__) /******/ /******/ // expose the module cache /******/ /******/ // __webpack_public_path__ /******/ return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([/* 0 */ /***/ function(module,exports,__webpack_require__){/*jslint ignore: start */ window.SidekickTV=__webpack_require__(1)},/* 1 */ /***/ function(module,exports,__webpack_require__){/** * The main exports of the component. */ module.exports=__webpack_require__(2)},/* 2 */ /***/ function(module,exports,__webpack_require__){/* globals window, document */ "use strict";var React=__webpack_require__(3),VideoPlayer=__webpack_require__(4),SidekickTVOverlay=__webpack_require__(35),SidekickTVHeader=__webpack_require__(36),SidekickTVFooter=__webpack_require__(37),SidekickChannels=__webpack_require__(38),yvpConfig=__webpack_require__(40),channelsConfig=__webpack_require__(41),Clone=__webpack_require__(42).cloneDeep,LightMngrMixin=__webpack_require__(44),SidekickTV=React.createClass({displayName:"SidekickTV",mixins:[LightMngrMixin],getInitialState:function(){return{currentItem:{provider:{}},muted:!0,paused:!1,expanded:!1,userAction:!1,lazyInstance:!1}},getDefaultProps:function(){return{playerJs:"https://web.archive.org/web/20160217234258/https://yep.video.yahoo.com/js/3/videoplayer-min.js?r=nextgen-flash",YVAPId:["",""],addViewportHandler:!0,waitDomreadyInit:!0,singlePlayer:!1,headless:!1,autoplay:!0,maxPlayers:3,mute:!0,shuffle:!1,videoCount:0,useVideoManager:!1,defaultVidActions:!1,html5:!1,yuiInstance:null,showCount:!1,enableNav:!1,showIcons:!0,persistChannel:!0,expName:"",iframeRender:!1}},propTypes:{YVAPId:React.PropTypes.array,yvpGConfig:React.PropTypes.object},_playerId:"",_userAction:!1,delayPlayerEvent:"load",yvpConfig:yvpConfig,channelsConfig:channelsConfig,_playerExists:function(ref){return"undefined"!=typeof this.refs[ref]&&null!==this.refs[ref]},_destroyPlayer:function(ref){var player;this._playerExists(ref)&&(player=this._getVideoPlayerInstance(ref),player&&player.destroy(),React.unmountComponentAtNode(this.refs[ref].getDOMNode().parentNode))},_getVideoPlayerInstance:function(ref){var p=this._playerExists(ref)?this.refs[ref].getPlayerHandle():null;return p},_getVideoPlayerPos:function(ref){var p=this._getVideoPlayerInstance(ref),pos=p?p.playlist.getPosition():null;return pos},_getCurrentPlayer:function(){var p=this.refs.videoPlayerRef;return this._playerExists("videoPlayerRef2")&&this.state.userAction===!1&&(p=this.refs.videoPlayerRef2),p},_setMute:function(isOn){var player=this._getCurrentPlayer();player.disableViewportDetection(),player.mute(isOn)},_setCurrentItem:function(pos){var currentItem=this.state.playlist[pos];this.setState({currentItem:currentItem})},_swapPlayers:function(pos,muted,exp){var player=this.refs.videoPlayerRef;this._destroyPlayer("videoPlayerRef2"),this.VideoLightMngr.removePlayer(this._playerId),this.VideoLightMngr.registerPlayer(this._playerId,player.getPlayerHandle()),pos&&player.getPlayerHandle().playlist.setPosition(pos),player.play(),player.mute(muted),player.fullscreen(exp)},_playNext:function(){var player=this._getCurrentPlayer().getPlayerHandle();if(player&&player.playlist){var pos=player.playlist.getPosition();pos++,// go to next pos ("undefined"==typeof pos||pos===player.playlist.getSize())&&( // if pos = 20 (for 20 item playlist)we are on last so make pos =0 pos=0),pos=this._findValidVideo(pos),// find the valid video position pos!==!1&&( // TODO show error otherwise? player.playlist.setPosition(pos),this._setCurrentItem(pos),this.setState({paused:!1}))}},_playPrev:function(){var player=this._getCurrentPlayer().getPlayerHandle();if(player&&player.playlist){var pos=player.playlist.getPosition();pos--,// go to prev pos ("undefined"==typeof pos||0>pos)&&( // if currentPos is 0 go to the last pos=player.playlist.getSize()-1),pos=this._findValidVideo(pos,"reverse"),// find the valid video position pos!==!1&&(player.playlist.setPosition(pos),this._setCurrentItem(pos),this.setState({paused:!1}))}},_playAtPos:function(pos){var player=this._getCurrentPlayer().getPlayerHandle();player&&player.playlist&&(player.playlist.setPosition(pos),this._setCurrentItem(pos),this.setState({paused:!1}))},_play:function(){var player=this._getCurrentPlayer(),paused=this.state.paused;paused&&(player.play(),this.setState({paused:!1}))},_pause:function(){var player=this._getCurrentPlayer(),paused=this.state.paused;paused||(player.pause(),this.setState({paused:!0}))},/* * checks if the video at given pos is valid, if not it tries to give back the next valid video position * returns false if no valid video found */ _findValidVideo:function(pos,reverse){var player=this._getCurrentPlayer().getPlayerHandle(),currentPos=pos;if(!player||!player.playlist)return!1;do{if(this._isValidVideo(currentPos,player))return currentPos;currentPos="reverse"===reverse?0>currentPos-1?player.playlist.getSize():currentPos-1:currentPos+2>player.playlist.getSize()?0:currentPos+1}while(currentPos!==pos);// if currentPos has come back to pos, this means no valid video was found in playlist // if currentPos has come back to pos, this means no valid video was found in playlist return currentPos===pos?!1:void 0},_isValidVideo:function(pos,player){var video;return player&&player.playlist&&(video=player.playlist.getItem(pos)),!video||null===video.duration||0===video.duration&&this.props.html5?!1:!0},handleSoundClick:function(){var muted=!this.state.muted;this._setMute(muted),this._userAction=!0},handlePlayClick:function(){var player=this._getCurrentPlayer(),paused=!this.state.paused,playerFunc=paused?player.pause:player.play;player.disableViewportDetection(),playerFunc(),this._userAction=!0,this.setState({paused:paused})},handlePrevClick:function(){this._playPrev()},handleNextClick:function(){this._playNext()},handleChannelClick:function(channel,action){"play"===action?channel&&channel.videos&&(this._userAction=!0,this.setState({currentChannel:channel}),this.setState({playlist:channel.videos}),this.setState({currentItem:channel.videos[0]}),this.setState({paused:!1}),// if the user has clicked on a channel assume that he wants it to be played this.props.persistChannel&& // save the channel in local storage this.saveToStorage("ch",channel.id)):"toggle"===action&&this.handlePlayClick()},handleExpandClick:function(){var pos,player=this._getCurrentPlayer();player.disableViewportDetection(),player.hideHoverOverlay(),this.setState({expanded:!0}),this._playerExists("videoPlayerRef2")?(pos=this._getVideoPlayerPos("videoPlayerRef2"),this.setState({userAction:!0}),this._swapPlayers(pos,!1,!0)):player.fullscreen(!0)},handleLazyInstanceClick:function(muted){this.props.mute=muted,this.props.autoplay=!0,this.setState({lazyInstance:!1,muted:muted,paused:!1})},onMuteChange:function(evt){this.setState({muted:evt})},onPauseChange:function(){this.state.paused!==!0&&this.setState({paused:!0})},onResumeChange:function(){this.state.paused!==!1&&this.setState({paused:!1}),this.props.useVideoManager&&this.VideoLightMngr.onPlayback(this._playerId)},onPlaylistPositionChange:function(pos){var validVideoPos=this._findValidVideo(pos);validVideoPos!==!1&&validVideoPos!==pos? // if it is false, we stay put this._playAtPos(validVideoPos):this._setCurrentItem(pos)},onPlaylistPositionChangeSwap:function(pos){this._userAction===!0?(this.setState({userAction:!0}),this._swapPlayers(pos,this.state.muted,!1)):this._setCurrentItem(pos)},onBeforeUnload:function(evt){this._destroyPlayer("videoPlayerRef2"),this._destroyPlayer("videoPlayerRef")},onPlayerReady:function(){var player=this._getCurrentPlayer(),pos=0;if(player){player.isOnViewport=!0,player._detectViewport(),this.props.useVideoManager&&(this.VideoLightMngr.registerPlayer(this._playerId,player.getPlayerHandle(),this.onPlayerDestroyed),this.VideoLightMngr.setMaxPlayers(this.props.maxPlayers)); //check if the video is valid var validVideoPos=this._findValidVideo(pos);validVideoPos!==!1&&validVideoPos!==pos&&this._playAtPos(validVideoPos)}},onPlaybackStart:function(){this.props.useVideoManager&&this.VideoLightMngr.onPlayback(this._playerId)},onPlayerDestroyed:function(){this.props.useVideoManager&&this.setState({lazyInstance:!0})},getThumb:function(currentItem){for(var thumb=null,thumbs=currentItem.thumbnails||[],len=thumbs.length,i=0;len>i;i+=1)thumbs[i].width<=300&&(thumb=thumbs[i].url);return thumb},getCompPlayerInst:function(ref,playerStyles,yvpConfig,hoverOverlay,onPlaylistPositionChange){var channelId=this.state.currentChannel?this.state.currentChannel.id:null;return React.createElement(VideoPlayer,{ref:ref,className:playerStyles,yvpConfig:yvpConfig,playerJs:this.props.playerJs,viewport:this.props.viewport,width:"100%",height:"auto",onPlaylistPositionChange:onPlaylistPositionChange,addViewportHandler:this.props.addViewportHandler,waitDomreadyInit:this.props.waitDomreadyInit,onPlaybackStart:this.onPlaybackStart,onResumeChange:this.onResumeChange,onPauseChange:this.onPauseChange,onPlayerReady:this.onPlayerReady,onMuteChange:this.onMuteChange,hoverOverlay:hoverOverlay,enableViewPortMuteOnly:!0,channelId:channelId})},getCompPlayer2:function(yvpConfig,hoverOverlay){ // HIDE AND SHOW PLAYER'S FOR ADS var cx=React.addons.classSet,playerStyles=cx({"Ratio-16-9":!this.state.userAction,Dn:this.state.userAction});return yvpConfig.YVAP.accountId=this.props.YVAPId[1],this.getCompPlayerInst("videoPlayerRef2",playerStyles,yvpConfig,hoverOverlay,this.onPlaylistPositionChangeSwap)},getCompPlayer:function(yvpConfig,hoverOverlay,singlePlayer){ // HIDE AND SHOW PLAYER'S FOR ADS var cx=React.addons.classSet,show=singlePlayer===!0?!1:!this.state.userAction,playerStyles=cx({"Ratio-16-9":!0,Invisible:show}); // SET CONFIGURATION FOR THE PLAYER THAT WILL HAVE ADS return yvpConfig.autoplay=singlePlayer?yvpConfig.autoplay:!1,yvpConfig.expType="right-rail",yvpConfig.YVAP.accountId=this.props.YVAPId[0],this.getCompPlayerInst("videoPlayerRef",playerStyles,yvpConfig,hoverOverlay,this.onPlaylistPositionChange)},componentWillUnmount:function(){this.props.useVideoManager&&this.VideoLightMngr.removePlayer(this._playerId)},componentWillMount:function(){var playlist;if(this.props.autoplay||this.setState({lazyInstance:!0}),this.props.channels&&"function"==typeof this.props.channels.find){ //pick the channel user selected last var index=0;if(this.props.persistChannel){var lastChannelId=this.getFromStorge("ch");lastChannelId&&(index=this.props.channels.findIndex(function(channel){return channel.id===lastChannelId}))}playlist=this.props.channels[index].videos,this.setState({currentChannel:this.props.channels[index]})}else playlist=this.props.playlist;this.props.shuffle&&playlist&&playlist.sort(function(){return.5-Math.random()}),this.props.videoCount&&this.props.videoCount>0&&(playlist=playlist.slice(0,this.props.videoCount)),this.setState({playlist:playlist}),this.setState({muted:this.props.mute})},componentDidMount:function(){this.setState({currentItem:this.state.playlist[0]}),this._playerId=this.state.currentItem.id,window.addEventListener?window.addEventListener("beforeunload",this.onBeforeUnload):window.attachEvent&&window.attachEvent("beforeunload",this.onBeforeUnload), // if yui global instance is passed this.props.yuiInstance&&window[this.props.yuiInstance]&&this.attachSidekickTVListeners(this.props.yuiInstance)},formatYVPConfig:function(){var yvpGConfig=this.props.yvpGConfig,yvpConfig=this.yvpConfig,channelsConfig=this.channelsConfig;yvpGConfig&&(yvpConfig.comscoreC4=yvpGConfig.comscoreC4||yvpConfig.comscoreC4,yvpConfig.region=yvpGConfig.region||yvpConfig.region,yvpConfig.lang=yvpGConfig.lang||yvpConfig.lang,yvpConfig.site=yvpGConfig.site||yvpConfig.site), // passing the correct site every channel change so that correct video space id wd show up this.props.overrideSiteWithChannel&&this.props.channels&&(channelsConfig[this.state.currentChannel.id]&&channelsConfig[this.state.currentChannel.id].site&&""!==channelsConfig[this.state.currentChannel.id].site?yvpConfig.site=channelsConfig[this.state.currentChannel.id].site:yvpConfig.site="ivy"),yvpConfig.mute=this.state.muted,yvpConfig.playlist.mediaItems=this.state.playlist.map(function(item){return{id:item.id}}),yvpConfig.pageSpaceId=this.props.pageSpaceId,yvpConfig.expBucket=this.props.bucket,yvpConfig.html5=this.props.html5,// expects bool true or false this.props.expName&&( // for IceBreaker release yvpConfig.expName=this.props.expName),yvpConfig.iframeRender=this.props.iframeRender},attachSidekickTVListeners:function(yuiInstance){var self=this; //TODO play and resume do same thing for now based on what mail has live , play should just play window[yuiInstance].on(["sidekicktv:play","sidekicktv:resume"],function(e){"play"===self.state.stateToResumeTo&&self._play()}),window[yuiInstance].on("sidekicktv:pause",function(e){self.setState({stateToResumeTo:self.state.paused?"pause":"play"}),self._pause()})},saveToStorage:function(key,value,session){if("undefined"!=typeof Storage){var sktv=JSON.parse(localStorage.getItem("sktv"))||{};sktv[key]=value,localStorage.setItem("sktv",JSON.stringify(sktv))}},getFromStorge:function(key){if("undefined"!=typeof Storage){var sktv=JSON.parse(localStorage.getItem("sktv"));return sktv&&sktv[key]}},render:function(){var header,hoverOverlay,player,playerAds,yvpConfigP1,thumbImg,self=this,currentItem=self.state.currentItem,currentImage=self.getThumb(currentItem);currentImage||(currentImage=self.getThumb(self.state.playlist[0])),self.formatYVPConfig(),header=self.props.headless?null:React.createElement(SidekickTVHeader,{ylogo:self.props.ylogo,mostBgColor:self.props.mostBgColor,descBgColor:self.props.descBgColor,mostTxtColor:self.props.mostTxtColor,logoHeight:self.props.logoHeight});var footer=React.createElement(SidekickTVFooter,{bgColor:self.props.descBgColor,txtColor:self.props.mostTxtColor,title:currentItem.title,providerName:currentItem.provider.name,footerType:self.props.footerType,currentItem:currentItem,hasChannels:self.props.channels?!0:!1,enableNav:self.props.enableNav,handlePrevClick:self.handlePrevClick,handleNextClick:self.handleNextClick});hoverOverlay=React.createElement(SidekickTVOverlay,{handlePlayClick:self.handlePlayClick,handleSoundClick:self.handleSoundClick,handleExpandClick:self.handleExpandClick,handleLazyInstanceClick:self.handleLazyInstanceClick,hideExpand:self.props.hideExpand,muted:self.state.muted,paused:self.state.paused,expanded:self.state.expanded,lazyInstance:self.state.lazyInstance,image:currentImage,getPlayer:self._getCurrentPlayer,onHoverPlay:self.props.onHoverPlay,defaultVidActions:self.props.defaultVidActions}),player=hoverOverlay,self.state.lazyInstance||(player=null,self.props.singlePlayer===!1&&self.state.userAction===!1&&(player=React.createElement("div",{className:"Pos-a T-0 Start-0 W-100"},self.getCompPlayer2(self.yvpConfig,hoverOverlay))),yvpConfigP1=Clone(self.yvpConfig),playerAds=self.getCompPlayer(yvpConfigP1,hoverOverlay,self.props.singlePlayer),thumbImg=React.createElement("div",{key:"thumbimage",className:"Pos-a T-0 Start-0 W-100 Ratio-16-9"},React.createElement("img",{src:currentImage,className:"W-100"})));var channelsComponent=this.props.channels?React.createElement(SidekickChannels,{channels:this.props.channels,paused:this.state.paused,currentChannelId:this.state.currentChannel.id,showIcons:this.props.showIcons,showCount:this.props.showCount,channelsConfig:this.channelsConfig,handleChannelClick:this.handleChannelClick}):null,moduleClasses=this.props.defaultVidActions?"W-100 Pos-r":"W-100 Pos-r hideDefVidActions";return React.createElement("div",{className:"SidekickTV D-b Pos-r","data-ylk":"mpos:3;t1:a4;t2:lst-tv;sec:lst-tv;"},header,React.createElement("div",{className:moduleClasses},thumbImg,playerAds,player),footer,channelsComponent)}});module.exports=SidekickTV},/* 3 */ /***/ function(module,exports){module.exports=React},/* 4 */ /***/ function(module,exports,__webpack_require__){/** * The main exports of the component. */ module.exports=__webpack_require__(5)},/* 5 */ /***/ function(module,exports,__webpack_require__){/* globals window, document */ "use strict";var React=__webpack_require__(3),ReactLoadscriptMixin=(React.addons.CSSTransitionGroup,__webpack_require__(6)),Viewport=__webpack_require__(15),classnames=__webpack_require__(34),VideoPlayer=React.createClass({displayName:"VideoPlayer",mixins:[Viewport,ReactLoadscriptMixin],contextTypes:{session:React.PropTypes.object},_player:null,propTypes:{height:React.PropTypes.string.isRequired,playerJs:React.PropTypes.string,width:React.PropTypes.string.isRequired,yvpConfig:React.PropTypes.object,addViewportHandler:React.PropTypes.bool,onPlaylistPositionChange:React.PropTypes.func,onPlayerReady:React.PropTypes.func,waitDomreadyInit:React.PropTypes.bool,playerKey:React.PropTypes.string},getInitialState:function(){return{enableCover:!0,isPlayerReady:!1,isPlayerInitialized:!1,isHoverOverlayDisplayed:!1}},getDefaultProps:function(){return{height:"300",playerJs:"https://web.archive.org/web/20160217234258/https://yep.video.yahoo.com/js/3/videoplayer-min.js?r=nextgen",width:"400",yvpConfig:{},addViewportHandler:!1,waitDomreadyInit:!1}},onCoverClick:function(){this.initializePlayer(this.props.yvpConfig)},ensureVideoPlatformLoad:function(callback){var videoPlatform="undefined"!=typeof window&&window.YAHOO?window.YAHOO.VideoPlatform:!1;return videoPlatform?void callback(videoPlatform):void this.loadVideoPlatform(function(){callback(window.YAHOO?window.YAHOO.VideoPlatform:!1)})},initializePlayer:function(config){var that=this;config&&config.playlist&&this.state.isPlayerInitialized!==!0&&(this.setState({isPlayerInitialized:!0}),that.ensureVideoPlatformLoad(function(videoPlatform){var Events=videoPlatform.API_Events;that._player=new videoPlatform.VideoPlayer(config),that._player.on(Events.PLAYER_READY,that._handlePlayerReady),that._player.on(Events.PLAYLIST_POSITION_CHANGE,that._handleListChange),that._player.on(Events.PLAYER_MUTE_CHANGE,that._handleMuteChange),that._player.on(Events.PLAYBACK_PAUSE,that._handlePauseChange),that._player.on(Events.PLAYBACK_RESUMED,that._handleResumeChange),that._player.on(Events.UI_INTERACT,that._handleUIInteract),that._player.on(Events.PLAYBACK_START,that._handlePlaybackStart),that._player.on(Events.PLAYER_ERROR,that._handlePlayerError),that._player.render(that.refs.player.getDOMNode())}))},_callbackExec:function(callback,evt,optArg){callback&&callback(evt,optArg)},_handleMuteChange:function(e){this._callbackExec(this.props.onMuteChange,e)},_handlePauseChange:function(e){this._callbackExec(this.props.onPauseChange,e)},_handleResumeChange:function(e){this._callbackExec(this.props.onResumeChange,e)}, // Handle playlist position change _handleListChange:function(e){this._callbackExec(this.props.onPlaylistPositionChange,e)},_handleUIInteract:function(e){ // Leave to the user to execute disableViewportDetection, // since the actual viewport detection was disabling it by default this._callbackExec(this.props.onUIInteract,e)},_handlePlaybackStart:function(e){this._callbackExec(this.props.onPlaybackStart,e)},_handlePlayerError:function(e){this._callbackExec(this.props.onPlayerError,e)},_handlePlayerReady:function(e){var session=this.context.session,playerInstance=this.getPlayerHandle(),key=this.props.playerKey;this.setState({isPlayerReady:!0}), // Only enable viewport detection if video is autoplay this.isAutoplayEnabled()?this.enableViewportDetection():this.hasCover()&&this.play(),session&&key&&"1"===session.dimensions.ynet&&"1"===session.query.testMode&&(window.PLAYER_INSTANCES=window.PLAYER_INSTANCES||{},window.PLAYER_INSTANCES[key]=playerInstance),this._callbackExec(this.props.onPlayerReady,e,playerInstance)},_handleInitializePlayer:function(){this.hasCover()&&!this.isAutoplayEnabled()||this.isPlayerReady()||this.initializePlayer(this.props.yvpConfig)}, // Viewport detection should be enabled only if the player is on mute. we dont want to pause the video if sound is on. shouldActOnViewportChange:function(){return this.props.enableViewPortMuteOnly?this.isMuted():!0}, // Disable viewport detection if viewport handler is added disableViewportDetection:function(){this.props.addViewportHandler&&(this.onEnterViewport(!1),this.onExitViewport(!1))}, // Enable viewport detection if viewport handler is added enableViewportDetection:function(){var self=this;self.props.addViewportHandler&&(self.onEnterViewport(function(){self.shouldActOnViewportChange()&&self.play()}),self.onExitViewport(function(){self.shouldActOnViewportChange()&&self.pause()}))},isAutoplayEnabled:function(){return this.props.yvpConfig.autoplay},getPlayerHandle:function(){return this._player},isMuted:function(){return this._player.controls.getMute()},mute:function(on){this._player.controls.setMute(on)},fullscreen:function(on){this.hideHoverOverlay(),this._player.controls.setFullscreen(on)},pause:function(){this._player.controls.pause()},play:function(){this._player.controls.play()},isPlayerReady:function(){return this.state.isPlayerReady},hasCover:function(){return"undefined"!=typeof this.props.cover},hasHoverOverlay:function(){return"undefined"!=typeof this.props.hoverOverlay},isOverlayDisplayed:function(){return this.state.isHoverOverlayDisplayed===!0},showHoverOverlay:function(){this.setState({isHoverOverlayDisplayed:!0})},hideHoverOverlay:function(){this.setState({isHoverOverlayDisplayed:!1})},onMouseEnter:function(e){this.hasHoverOverlay()&&this.isPlayerReady()&&this.showHoverOverlay()},onMouseLeave:function(e){this.hasHoverOverlay()&&this.isOverlayDisplayed()&&this.hideHoverOverlay()},render:function(){var self=this,width=this.props.width,height=this.props.height;if(!this.hasCover()&&!this.props.yvpConfig.playlist)return null;var isPlayerReady=this.isPlayerReady(),components=[React.createElement("div",{key:"player",ref:"player",className:"StretchedBox"})];if(this.hasCover()&&this.state.enableCover){var cover=this.props.cover; // Support plain HTML supplied as a cover. "string"==typeof cover&&(cover=React.createElement("div",{dangerouslySetInnerHTML:{__html:cover}})),components.push(React.createElement("button",{key:"cover",onClick:this.onCoverClick,className:classnames("VideoPlayerCover StretchedBox Bdw(0) P(0) W(100%) H(100%) Trsp(opacity) Trsdu(0.3s)",{"Op(1)":!isPlayerReady,"Op(0)":isPlayerReady})},cover)),isPlayerReady&&!this._enableCoverTimer&&(this._enableCoverTimer=setTimeout(function(){self.setState({enableCover:!1})},300))}if(isPlayerReady&&this.hasHoverOverlay()&&this.isOverlayDisplayed()){var overlay=this.props.hoverOverlay; // Support plain HTML supplied as an overlay. "string"==typeof overlay&&(overlay=React.createElement("div",{dangerouslySetInnerHTML:{__html:overlay}})),components.push(React.createElement("div",{key:"hoverOverlay"},overlay))}return React.createElement("div",{className:"VideoPlayer D(b) Pos(r) "+this.props.className||"",style:{width:width,height:height},onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave},components)},componentDidMount:function(){this._handleInitializePlayer(this.props)},componentDidUpdate:function(){this._handleInitializePlayer(this.props)},componentWillReceiveProps:function(nextProps){var props=this.props,oldYvap=props.yvpConfig&&props.yvpConfig.YVAP,newYvap=nextProps.yvpConfig&&nextProps.yvpConfig.YVAP; // Dont do anything if // - channelId is not defined // - channelId hasnt changed (nextProps.channelId&&props.channelId&&nextProps.channelId!==props.channelId||this._hasYvapChanged(oldYvap,newYvap))&&(this._player.destroy(),this.setState({isPlayerInitialized:!1,isPlayerReady:!1}))},_hasYvapChanged:function(oldYvap,newYvap){return oldYvap=oldYvap||{},newYvap=newYvap||{},oldYvap.accountId!==newYvap.accountId||oldYvap.playContext!==newYvap.playContext||oldYvap.timeout!==newYvap.timeout||oldYvap.cTopic!==newYvap.cTopic?!0:!1},loadVideoPlatform:function(callback){this.loadScript({link:this.props.playerJs,namespace:"YAHOO.VideoPlatform",lazyload:this.props.waitDomreadyInit,async:!0},callback)}});module.exports=VideoPlayer},/* 6 */ /***/ function(module,exports,__webpack_require__){module.exports=__webpack_require__(7)},/* 7 */ /***/ function(module,exports,__webpack_require__){/* global window */ var doc,head,debug=__webpack_require__(8)("LoadScriptMixin"),getObjValue=__webpack_require__(11),scriptsStatus={},STATUS_FAILURE=0,STATUS_LOADING=1,STATUS_LOADED=2,INTERVAL_STATUS_CHECKING=1e3,LoadScriptMixin={ // TODO, this is unnecessary, only for test. _loadScriptMixin:{scripts:scriptsStatus},attachToWindowEvent:__webpack_require__(13),/** * _deferLoadScript - create script tag and insert to DOM * * @param {Object} payload * @param {String} paylood.link URL for extenral script @required * @param {Boolean} paylood.async to load script async @default false * @param {Function} callback callback function(err) after onLoad */ _deferLoadScript:function(payload,callback){var script,self=this; // Attach handlers for all browsers return scriptsStatus[payload.link]===STATUS_LOADED?callback&&callback():scriptsStatus[payload.link]===STATUS_LOADING?setTimeout(self._deferLoadScript.bind(self,payload,callback),INTERVAL_STATUS_CHECKING):(scriptsStatus[payload.link]=STATUS_LOADING,script=doc.createElement("script"),script.async=payload.async||!1,script.src=payload.link,script.type="text/javascript",script.onload=script.onreadystatechange=function(){this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState||(scriptsStatus[payload.link]=STATUS_LOADED,callback&&callback(),script.onload=script.onreadystatechange=null,script.parentNode&&head.removeChild(script))},script.onerror=function(e){debug("Error loading script",e),scriptsStatus[payload.link]=STATUS_FAILURE,callback&&callback(new Error("Error loading script"))},void head.appendChild(script,head.firstChild))},/** * loadScript - loading extenal script * @param {Object} payload * @param {String} payload.link link for the external script * @param {Boolean} paylood.async to load script async @default false * @param {Boolean} paylood.lazyload set true to load after DOMContentLoaded * @param {String} payload.namespace global namespace to be attached to @optional * @param {Function} callback callback function(err) * */ loadScript:function(payload,callback){var self=this;if("undefined"!=typeof window) // check if window[payload.namespace] has already existed return payload.link?(payload.namespace||debug("No namespace provided, the same script might loads multiple times"),payload.namespace&&getObjValue(window,payload.namespace)?callback&&callback():void(doc&&head&&(payload.lazyload&&"complete"!==doc.readyState&&"loaded"!==doc.readyState?(__webpack_require__(14),self.attachToWindowEvent(window,function(){ // some browser will still regards it as assets to load, so need to wrap in RAF window.requestAnimationFrame(function(){self._deferLoadScript(payload,callback)})})):self._deferLoadScript(payload,callback)))):(debug("A Link is required to load the script"),callback&&callback(new Error("A Link is required to load the script")))},componentDidMount:function(){doc=window.document,head=doc.getElementsByTagName("head")[0]}};module.exports=LoadScriptMixin},/* 8 */ /***/ function(module,exports,__webpack_require__){/** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known * to support "%c" CSS customizations. * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ function useColors(){ // is webkit? http://stackoverflow.com/a/16459606/376773 // is firebug? http://stackoverflow.com/a/398120/376773 // is firefox >= v31? // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}/** * Colorize log arguments if enabled. * * @api public */ function formatArgs(){var args=arguments,useColors=this.useColors;if(args[0]=(useColors?"%c":"")+this.namespace+(useColors?" %c":" ")+args[0]+(useColors?"%c ":" ")+"+"+exports.humanize(this.diff),!useColors)return args;var c="color: "+this.color;args=[args[0],c,"color: inherit"].concat(Array.prototype.slice.call(args,1)); // the final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into var index=0,lastC=0;return args[0].replace(/%[a-z%]/g,function(match){"%%"!==match&&(index++,"%c"===match&&( // we only are interested in the *last* %c // (the user may have provided their own) lastC=index))}),args.splice(lastC,0,c),args}/** * Invokes `console.log()` when available. * No-op when `console.log` is not a "function". * * @api public */ function log(){ // this hackery is required for IE8/9, where // the `console.log` function doesn't have 'apply' return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}/** * Save `namespaces`. * * @param {String} namespaces * @api private */ function save(namespaces){try{null==namespaces?exports.storage.removeItem("debug"):exports.storage.debug=namespaces}catch(e){}}/** * Load `namespaces`. * * @return {String} returns the previously persisted debug modes * @api private */ function load(){var r;try{r=exports.storage.debug}catch(e){}return r}/** * Localstorage attempts to return the localstorage. * * This is necessary because safari throws * when a user disables cookies/localstorage * and you attempt to access it. * * @return {LocalStorage} * @api private */ function localstorage(){try{return window.localStorage}catch(e){}}exports=module.exports=__webpack_require__(9),exports.log=log,exports.formatArgs=formatArgs,exports.save=save,exports.load=load,exports.useColors=useColors,exports.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:localstorage(),exports.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],exports.formatters.j=function(v){return JSON.stringify(v)},exports.enable(load())},/* 9 */ /***/ function(module,exports,__webpack_require__){/** * Select a color. * * @return {Number} * @api private */ function selectColor(){return exports.colors[prevColor++%exports.colors.length]}/** * Create a debugger with the given `namespace`. * * @param {String} namespace * @return {Function} * @api public */ function debug(namespace){ // define the `disabled` version function disabled(){} // define the `enabled` version function enabled(){var self=enabled,curr=+new Date,ms=curr-(prevTime||curr);self.diff=ms,self.prev=prevTime,self.curr=curr,prevTime=curr,null==self.useColors&&(self.useColors=exports.useColors()),null==self.color&&self.useColors&&(self.color=selectColor());var args=Array.prototype.slice.call(arguments);args[0]=exports.coerce(args[0]),"string"!=typeof args[0]&&( // anything else let's inspect with %o args=["%o"].concat(args)); // apply any `formatters` transformations var index=0;args[0]=args[0].replace(/%([a-z%])/g,function(match,format){ // if we encounter an escaped % then don't increase the array index if("%%"===match)return match;index++;var formatter=exports.formatters[format];if("function"==typeof formatter){var val=args[index];match=formatter.call(self,val), // now we need to remove `args[index]` since it's inlined in the `format` args.splice(index,1),index--}return match}),"function"==typeof exports.formatArgs&&(args=exports.formatArgs.apply(self,args));var logFn=enabled.log||exports.log||console.log.bind(console);logFn.apply(self,args)}disabled.enabled=!1,enabled.enabled=!0;var fn=exports.enabled(namespace)?enabled:disabled;return fn.namespace=namespace,fn}/** * Enables a debug mode by namespaces. This can include modes * separated by a colon and wildcards. * * @param {String} namespaces * @api public */ function enable(namespaces){exports.save(namespaces);for(var split=(namespaces||"").split(/[\s,]+/),len=split.length,i=0;len>i;i++)split[i]&&(namespaces=split[i].replace(/\*/g,".*?"),"-"===namespaces[0]?exports.skips.push(new RegExp("^"+namespaces.substr(1)+"$")):exports.names.push(new RegExp("^"+namespaces+"$")))}/** * Disable debug output. * * @api public */ function disable(){exports.enable("")}/** * Returns true if the given mode name is enabled, false otherwise. * * @param {String} name * @return {Boolean} * @api public */ function enabled(name){var i,len;for(i=0,len=exports.skips.length;len>i;i++)if(exports.skips[i].test(name))return!1;for(i=0,len=exports.names.length;len>i;i++)if(exports.names[i].test(name))return!0;return!1}/** * Coerce `val`. * * @param {Mixed} val * @return {Mixed} * @api private */ function coerce(val){return val instanceof Error?val.stack||val.message:val}exports=module.exports=debug,exports.coerce=coerce,exports.disable=disable,exports.enable=enable,exports.enabled=enabled,exports.humanize=__webpack_require__(10),exports.names=[],exports.skips=[],exports.formatters={};/** * Previously assigned color. */ var prevTime,prevColor=0},/* 10 */ /***/ function(module,exports){/** * Parse the given `str` and return milliseconds. * * @param {String} str * @return {Number} * @api private */ function parse(str){if(str=""+str,!(str.length>1e4)){var match=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);if(match){var n=parseFloat(match[1]),type=(match[2]||"ms").toLowerCase();switch(type){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}/** * Short format for `ms`. * * @param {Number} ms * @return {String} * @api private */ function short(ms){return ms>=d?Math.round(ms/d)+"d":ms>=h?Math.round(ms/h)+"h":ms>=m?Math.round(ms/m)+"m":ms>=s?Math.round(ms/s)+"s":ms+"ms"}/** * Long format for `ms`. * * @param {Number} ms * @return {String} * @api private */ function long(ms){return plural(ms,d,"day")||plural(ms,h,"hour")||plural(ms,m,"minute")||plural(ms,s,"second")||ms+" ms"}/** * Pluralization helper. */ function plural(ms,n,name){return n>ms?void 0:1.5*n>ms?Math.floor(ms/n)+" "+name:Math.ceil(ms/n)+" "+name+"s"}/** * Helpers. */ var s=1e3,m=60*s,h=60*m,d=24*h,y=365.25*d;/** * Parse or format the given `val`. * * Options: * * - `long` verbose formatting [false] * * @param {String|Number} val * @param {Object} options * @return {String|Number} * @api public */ module.exports=function(val,options){return options=options||{},"string"==typeof val?parse(val):options["long"]?long(val):short(val)}},/* 11 */ /***/ function(module,exports,__webpack_require__){/* globals module */ // jscs:disable requireCamelCaseOrUpperCaseIdentifiers "use strict";/** * Retrieves the sub value at the provided path, * from the value object provided. * * @method get_obj_value * @static * @param {Object} obj The object from which to extract the property value. * @param {Array|String} path Array - A path array, specifying the object traversal path * from which to obtain the sub value.<br> * String - A '.' delimited string specifying the object traversal path * from which to obtain the sub value. * @param {String} defaultValue - The default value that should be returned if the value at the specified path or obj is undefined or null * @return {Any} The value stored in the path, defaultValue if either obj or value is not found. * if an empty path is provided. * @see http://yuilibrary.com/yui/docs/api/classes/Object.html#method_getValue */ var helpers=__webpack_require__(12),isArray=helpers.isArray,isString=helpers.isString,isVoid=helpers.is_void,DOT=".";module.exports=function(obj,path,defaultValue){if(!obj)return defaultValue; // Return obj if falsy path is specified, instead of throwing an Error if(!path)return obj;!isArray(path)&&isString(path)&&(path=path.split(DOT));for(var i=0,l=path.length;obj&&l>i;i++)obj=obj[path[i]];/*to make we return other falsy values like false, '', 0*/ /*to make we return other falsy values like false, '', 0*/ return isVoid(obj)?defaultValue:obj}},/* 12 */ /***/ function(module,exports){/* globals module */ // jscs:disable requireCamelCaseOrUpperCaseIdentifiers "use strict";/** * @method isArray * @param {Any} value The value to be tested for Array * @return {Boolean} * @private */ function isArray(value){return value&&"object"==typeof value&&"number"==typeof value.length&&toString.call(value)===arrayClass||!1}/** * @method isString * @param {Any} value The value to be tested for String * @return {Boolean} * @private */ function isString(value){return"string"==typeof value||value&&"object"==typeof value&&toString.call(value)===stringClass||!1}/** * @method isUndefined * @param {Any} value The value to be tested for undefined * @return {Boolean} * @private */ function isUndefined(value){return"undefined"==typeof value}/** * @method isNull * @param {Any} value The value to be tested for null * @return {Boolean} * @private */ function isNull(value){return null===value}/** * Returns true only for undefined or null * @method is_void * @param {any} value * @return {Boolean} */ function is_void(value){return isUndefined(value)||isNull(value)}var objectProto=Object.prototype,toString=objectProto.toString,arrayClass="[object Array]",stringClass="[object String]",helpers={};helpers={isArray:Array.isArray||isArray,isNull:isNull,isString:isString,isUndefined:isUndefined,is_void:is_void},module.exports=helpers},/* 13 */ /***/ function(module,exports){/** * _attachToWindowEvent - attach loadscript condition to window events * https://git.corp.yahoo.com/touchdown/touchdown-v2/blob/master/utils/client/contentLoaded.js * * @param {Object} win * @param {Function} callback */ module.exports=function(win,callback){var done=!1,doc=win.document,modern=doc.addEventListener,add=modern?"addEventListener":"attachEvent",rem=modern?"removeEventListener":"detachEvent",pre=modern?"":"on",init=function(e){("readystatechange"!==e.type||"complete"===doc.readyState)&&( // remove event listener ("load"===e.type?win:doc)[rem](pre+e.type,init,!1), // add resources to the page !done&&(done=!0)&&callback&&callback())};doc[add](pre+"DOMContentLoaded",init,!1),doc[add](pre+"readystatechange",init,!1)}},/* 14 */ /***/ function(module,exports){"use strict"; // jshint unused:false /*global window */ /** * requestAnimationFrame polyfill * * This will be used until the polyfill service includes it * https://jira.corp.yahoo.com/browse/POLYFILL-20 * * @see https://gist.github.com/paulirish/1579671 */ !function(window){for(var lastTime=0,vendors=["ms","moz","webkit","o"],x=0;x<vendors.length&&!window.requestAnimationFrame;++x)window.requestAnimationFrame=window[vendors[x]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[vendors[x]+"CancelAnimationFrame"]||window[vendors[x]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(callback,element){var currTime=(new Date).getTime(),timeToCall=Math.max(0,16-(currTime-lastTime)),id=window.setTimeout(function(){callback(currTime+timeToCall)},timeToCall);return lastTime=currTime+timeToCall,id}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(id){clearTimeout(id)})}(window)},/* 15 */ /***/ function(module,exports,__webpack_require__){module.exports=__webpack_require__(16)},/* 16 */ /***/ function(module,exports,__webpack_require__){/*global window, document, require */ "use strict";var React=__webpack_require__(3),subscribe=__webpack_require__(17),unsubscribe=__webpack_require__(33),Viewport={propTypes:{viewport:React.PropTypes.shape({margins:React.PropTypes.shape({usePercent:React.PropTypes.bool,top:React.PropTypes.number,bottom:React.PropTypes.number})})},/** * Store variables for this mixins */ _viewport:null,_subscribe:function(){this._viewport.subscribed||(subscribe("scroll",this._detectViewport),subscribe("resize",this._detectViewport),subscribe("visibilitychange",this._detectHidden), // give the component a chance to bind viewport events before we run the initial detection setTimeout(this._detectViewport,0),this._viewport.subscribed=!0)},_detectViewport:function(){var self=this;if(self.isMounted()){var DOMNode=self.getDOMNode();if(DOMNode){var margins,rect=DOMNode.getBoundingClientRect(),viewportMargins=self.props.viewport.margins;margins=viewportMargins.usePercent?{top:viewportMargins.top*window.innerHeight,bottom:viewportMargins.bottom*window.innerHeight}:viewportMargins, // Detect Screen Bottom // Detect Screen Top rect.top<=window.innerHeight+margins.top&&rect.bottom>=0-margins.bottom&&(0!==rect.top||0!==rect.bottom)?self.isOnViewport||(self._viewport.enterViewportCallback&&self._viewport.enterViewportCallback(),self.isOnViewport=!0):self.isOnViewport&&(self._viewport.exitViewportCallback&&self._viewport.exitViewportCallback(),self.isOnViewport=!1)}}},_detectHidden:function(){var self=this; // https://developer.mozilla.org/en-US/docs/Web/Events/visibilitychange // TODO, Android 4.4 use webkitHidden document.hidden?(self._viewport.exitViewportCallback&&self._viewport.exitViewportCallback(),self.isOnViewport=!1):this._detectViewport()},getDefaultProps:function(){return{viewport:{margins:{usePercent:!1,top:20,bottom:20}}}},getInitialState:function(){return this._viewport={subscribed:!1,enterViewportCallback:null,exitViewportCallback:null},null},componentWillUnmount:function(){this._viewport.subscribed&&(unsubscribe("scroll",this._detectViewport),unsubscribe("resize",this._detectViewport),unsubscribe("visibilitychange",this._detectHidden),this._viewport.subscribed=!1)},/** * @method onEnterViewport * @param {Function} callback - The callback when the component enters the viewport */ onEnterViewport:function(callback){this._viewport.enterViewportCallback=callback,this._subscribe()},/** * @method onExitViewport * @param {Function} callback - The callback when the component exits the viewport */ onExitViewport:function(callback){this._viewport.exitViewportCallback=callback,this._subscribe()}};module.exports=Viewport},/* 17 */ /***/ function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(18).subscribe},/* 18 */ /***/ function(module,exports,__webpack_require__){/* WEBPACK VAR INJECTION */ (function(process){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ "use strict";function warn(){"production"!==process.env.NODE_ENV&&console.warn("Warning: the function is client-side only, does not work on server side")}"undefined"!=typeof window?module.exports={subscribe:__webpack_require__(20),unsubscribe:__webpack_require__(32)}:module.exports={subscribe:warn,unsubscribe:warn}}).call(exports,__webpack_require__(19))},/* 19 */ /***/ function(module,exports){function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var timeout=setTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&¤tQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,clearTimeout(timeout)}} // v8 likes predictible objects function Item(fun,array){this.fun=fun,this.array=array}function noop(){} // shim for using process in browser var currentQueue,process=module.exports={},queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||setTimeout(drainQueue,0)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",// empty string to avoid regexp issues process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},/* 20 */ /***/ function(module,exports,__webpack_require__){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ "use strict";/** * Subscribe to UI events. * @method subscribe * @param {String} eventType - The type of event. * @param {Function} cb - The callback function. * @param {Object} options.context - The caller. * @param {Number} options.throttleRate - The amount of time for throttling. * @param {Boolean} options.useRAF - Use rAF for throttling if true. * @return {Object} The object with unsubscribe function. */ function subscribe(eventType,cb,options){if(!eventHandlers[eventType]||!cb)return{unsubscribe:emptyFunction};options=options||{};var eeType,sub,throttleFunc,context=options.context||null,enableScrollInfo=options.enableScrollInfo||!1,enableResizeInfo=options.enableResizeInfo||!1,throttleRate=parseInt(options.throttleRate),useRAF=options.useRAF||!1; // turn off throttle if the browser is IE8 or less, because window.event will be reset // when using any delayed function, i.g., setTimeout, or rAF. // eeType is throttled event type, such like "scroll:50", meaning scroll event with 50ms throttle rate // wire UI event to throttled event, for example, wire "window.scroll" to "scroll:50" // add event listeners to UI event for the same throttled event // wire to throttled event // append sub to subscriptions return throttleFunc=useRAF?rAFThrottle:throttle,isNaN(throttleRate)&&(throttleRate=useRAF?15:50),leIE8&&(throttleRate=0),eeType=eventType+":"+throttleRate+(useRAF?":raf":""),eventHandlers[eventType](eeType,{enableScrollInfo:enableScrollInfo,enableResizeInfo:enableResizeInfo,throttleFunc:throttleFunc,throttleRate:throttleRate}),ee.on(eeType,cb,context),sub={_cb:cb,_eventType:eventType,unsubscribe:function(){var i=subscriptions.indexOf(sub);ee.removeListener(eeType,cb),-1!==i&&subscriptions.splice(i,1),!ee.listeners(eeType,!0)&&ehs[eeType]&&(ehs[eeType].remove(),ehs[eeType]=void 0)}},subscriptions.push(sub),sub}var ee=__webpack_require__(21).eventEmitter,ehs=__webpack_require__(21).eventHandlers,emptyFunction=function(){},eventHandlers=__webpack_require__(23),leIE8=__webpack_require__(25),rAFThrottle=__webpack_require__(26),subscriptions=__webpack_require__(21).subscriptions,throttle=__webpack_require__(29);module.exports=subscribe},/* 21 */ /***/ function(module,exports,__webpack_require__){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ "use strict";var EventEmitter=__webpack_require__(22);module.exports={eventEmitter:new EventEmitter,eventHandlers:{},subscriptions:[]}},/* 22 */ /***/ function(module,exports,__webpack_require__){"use strict";/** * Representation of a single EventEmitter function. * * @param {Function} fn Event handler to be called. * @param {Mixed} context Context for function execution. * @param {Boolean} once Only emit once * @api private */ function EE(fn,context,once){this.fn=fn,this.context=context,this.once=once||!1}/** * Minimal EventEmitter interface that is molded against the Node.js * EventEmitter interface. * * @constructor * @api public */ function EventEmitter(){} // // We store our EE objects in a plain object whose properties are event names. // If `Object.create(null)` is not supported we prefix the event names with a // `~` to make sure that the built-in object properties are not overridden or // used as an attack vector. // We also assume that `Object.create(null)` is available when the event name // is an ES6 Symbol. // var prefix="function"!=typeof Object.create?"~":!1;/** * Holds the assigned EventEmitters by name. * * @type {Object} * @private */ EventEmitter.prototype._events=void 0,/** * Return a list of assigned event listeners. * * @param {String} event The events that should be listed. * @param {Boolean} exists We only need to know if there are listeners. * @returns {Array|Boolean} * @api public */ EventEmitter.prototype.listeners=function(event,exists){var evt=prefix?prefix+event:event,available=this._events&&this._events[evt];if(exists)return!!available;if(!available)return[];if(available.fn)return[available.fn];for(var i=0,l=available.length,ee=new Array(l);l>i;i++)ee[i]=available[i].fn;return ee},/** * Emit an event to all registered event listeners. * * @param {String} event The name of the event. * @returns {Boolean} Indication if we've emitted an event. * @api public */ EventEmitter.prototype.emit=function(event,a1,a2,a3,a4,a5){var evt=prefix?prefix+event:event;if(!this._events||!this._events[evt])return!1;var args,i,listeners=this._events[evt],len=arguments.length;if("function"==typeof listeners.fn){switch(listeners.once&&this.removeListener(event,listeners.fn,void 0,!0),len){case 1:return listeners.fn.call(listeners.context),!0;case 2:return listeners.fn.call(listeners.context,a1),!0;case 3:return listeners.fn.call(listeners.context,a1,a2),!0;case 4:return listeners.fn.call(listeners.context,a1,a2,a3),!0;case 5:return listeners.fn.call(listeners.context,a1,a2,a3,a4),!0;case 6:return listeners.fn.call(listeners.context,a1,a2,a3,a4,a5),!0}for(i=1,args=new Array(len-1);len>i;i++)args[i-1]=arguments[i];listeners.fn.apply(listeners.context,args)}else{var j,length=listeners.length;for(i=0;length>i;i++)switch(listeners[i].once&&this.removeListener(event,listeners[i].fn,void 0,!0),len){case 1:listeners[i].fn.call(listeners[i].context);break;case 2:listeners[i].fn.call(listeners[i].context,a1);break;case 3:listeners[i].fn.call(listeners[i].context,a1,a2);break;default:if(!args)for(j=1,args=new Array(len-1);len>j;j++)args[j-1]=arguments[j];listeners[i].fn.apply(listeners[i].context,args)}}return!0},/** * Register a new EventListener for the given event. * * @param {String} event Name of the event. * @param {Functon} fn Callback function. * @param {Mixed} context The context of the function. * @api public */ EventEmitter.prototype.on=function(event,fn,context){var listener=new EE(fn,context||this),evt=prefix?prefix+event:event;return this._events||(this._events=prefix?{}:Object.create(null)),this._events[evt]?this._events[evt].fn?this._events[evt]=[this._events[evt],listener]:this._events[evt].push(listener):this._events[evt]=listener,this},/** * Add an EventListener that's only called once. * * @param {String} event Name of the event. * @param {Function} fn Callback function. * @param {Mixed} context The context of the function. * @api public */ EventEmitter.prototype.once=function(event,fn,context){var listener=new EE(fn,context||this,!0),evt=prefix?prefix+event:event;return this._events||(this._events=prefix?{}:Object.create(null)),this._events[evt]?this._events[evt].fn?this._events[evt]=[this._events[evt],listener]:this._events[evt].push(listener):this._events[evt]=listener,this},/** * Remove event listeners. * * @param {String} event The event we want to remove. * @param {Function} fn The listener that we need to find. * @param {Mixed} context Only remove listeners matching this context. * @param {Boolean} once Only remove once listeners. * @api public */ EventEmitter.prototype.removeListener=function(event,fn,context,once){var evt=prefix?prefix+event:event;if(!this._events||!this._events[evt])return this;var listeners=this._events[evt],events=[];if(fn)if(listeners.fn)(listeners.fn!==fn||once&&!listeners.once||context&&listeners.context!==context)&&events.push(listeners);else for(var i=0,length=listeners.length;length>i;i++)(listeners[i].fn!==fn||once&&!listeners[i].once||context&&listeners[i].context!==context)&&events.push(listeners[i]); // // Reset the array, or remove it completely if we have no more listeners. // return events.length?this._events[evt]=1===events.length?events[0]:events:delete this._events[evt],this},/** * Remove all listeners or only the listeners for the specified event. * * @param {String} event The event want to remove all listeners for. * @api public */ EventEmitter.prototype.removeAllListeners=function(event){return this._events?(event?delete this._events[prefix?prefix+event:event]:this._events=prefix?{}:Object.create(null),this):this}, // // Alias methods names because people roll like that. // EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.addListener=EventEmitter.prototype.on, // // This function doesn't apply anymore. // EventEmitter.prototype.setMaxListeners=function(){return this}, // // Expose the prefix. // EventEmitter.prefixed=prefix,module.exports=EventEmitter},/* 23 */ /***/ function(module,exports,__webpack_require__){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ /* global window, document */ "use strict";/** * This is designed for cloning event object and IE8 event object doesn't have hasOwnProperty(), * so no hasOwnProperty() being used in for loop. * @method copyEventObj * @param {Object} o - The object to be cloned. * @return {Object} The cloned object. */ function copyEventObj(o){var r={};for(var i in o)r[i]=o[i];return r}/** * Update global scroll/resize info * @param {Object} ae - The additional event object * @param {String} eventType - The event type */ function updateAdditionalInfo(ae,eventType){var top;enableScrollInfo&&"scroll"===eventType?(top=docEl.scrollTop+docBody.scrollTop,top!==ae.scroll.top&&(ae.scroll.delta=top-ae.scroll.top,ae.scroll.top=top)):enableResizeInfo&&"resize"===eventType&&(ae.resize.width=win.innerWidth||docEl.clientWidth,ae.resize.height=win.innerHeight||docEl.clientHeight)}/** * Cross-browser addEventListener. * @method listen * @param {Object} target - The target to add event listener. * @param {String} eventType - The event type. * @param {Function} handler - The event handler. * @return {Object} The object to be able to remove the handler. */ function listen(target,eventType,handler){var add="addEventListener",_remove="removeEventListener";return!target.addEventListener&&target.attachEvent&&(add="attachEvent",_remove="detachEvent",eventType="on"+eventType),target[add](eventType,handler,!1),{remove:function(){target[_remove](eventType,handler)}}}/** * Generate the start or end of those continuous event, such like scroll and resize. * @method generateEdgeEventHandler * @param {Object} target - The event target, usually window or document. * @param {String} eventType - The event type. * @param {Boolean} eventStart - true for the event start, otherwise the event end. * @return {Function} The function to generate throttle event. */ function generateEdgeEventHandler(target,eventType,eventStart){return function(eeType,options){function eventEndCallback(e){eventStart||(updateAdditionalInfo(ae,eventType),ee.emit(eeType,e,ae)),timer=null}function eventHandler(e){timer||eventStart&&(updateAdditionalInfo(ae,eventType),ee.emit(eeType,e,ae)),clearTimeout(timer),leIE8&&(e=copyEventObj(e)),timer=eventEndCallback.bind?setTimeout(eventEndCallback.bind(null,e),throttleRate+EVENT_END_DELAY):setTimeout(function(){eventEndCallback(e)},throttleRate+EVENT_END_DELAY)}if(enableScrollInfo=enableScrollInfo||options.enableScrollInfo,enableResizeInfo=enableResizeInfo||options.enableResizeInfo,!ee.listeners(eeType,!0)){var timer,throttleRate=options.throttleRate,throttle=options.throttleFunc,ae=new AugmentedEvent({type:eventType+(eventStart?"Start":"End")}),handler=throttle(eventHandler,throttleRate);ehs[eeType]=listen(target,eventType,handler)}}}/** * Generate thea continuous event, such like scroll and resize. * @method generateContinuousEventHandler * @param {Object} target - The event target, usually window or document. * @param {String} eventType - The event type. * @param {Boolean} eventStart - true for the event start, otherwise the event end. * @return {Function} The function to generate throttle event. */ function generateContinuousEventHandler(target,eventType,noThrottle){return function(eeType,options){function eventHandler(e){updateAdditionalInfo(ae,eventType),ee.emit(eeType,e,ae)}if(enableScrollInfo=enableScrollInfo||options.enableScrollInfo,enableResizeInfo=enableResizeInfo||options.enableResizeInfo,!ee.listeners(eeType,!0)){var throttleRate=options.throttleRate,throttle=options.throttleFunc,ae=new AugmentedEvent({type:eventType}),handler=!noThrottle&&throttleRate>0?throttle(eventHandler,throttleRate):eventHandler;ehs[eeType]=listen(target,eventType,handler)}}}function viewportchange(eeType,options){function eventHandler(e){ee.emit(eeType,e,ae)}if(!ee.listeners(eeType,!0)){var throttleRate=options.throttleRate,throttle=options.throttleFunc,ae=new AugmentedEvent({type:"viewportchange"}),handler=throttleRate>0?throttle(eventHandler,throttleRate):eventHandler;ehs[eeType]={remove:function(){for(var i=0,l=this._handlers.length;l>i;i++)this._handlers[i].remove()},_handlers:[listen(win,"scroll",handler),listen(win,"resize",handler), // no throttle for visibilitychange, otherwise will call twice listen(win,"visibilitychange",eventHandler)]}}}var doc,docBody,docEl,win,AugmentedEvent=__webpack_require__(24),ee=__webpack_require__(21).eventEmitter,ehs=__webpack_require__(21).eventHandlers,leIE8=__webpack_require__(25),EVENT_END_DELAY=200,enableResizeInfo=!1,enableScrollInfo=!1;"undefined"!=typeof window&&"undefined"!=typeof document&&(win=window,doc=document,docEl=doc.documentElement,docBody=doc.body),module.exports={resize:generateContinuousEventHandler(win,"resize"),resizeEnd:generateEdgeEventHandler(win,"resize",!1),resizeStart:generateEdgeEventHandler(win,"resize",!0),scroll:generateContinuousEventHandler(win,"scroll"),scrollEnd:generateEdgeEventHandler(win,"scroll",!1),scrollStart:generateEdgeEventHandler(win,"scroll",!0),viewportchange:viewportchange,visibilitychange:generateContinuousEventHandler(doc,"visibilitychange",!0)}},/* 24 */ /***/ function(module,exports){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ "use strict";/** * ArgmentedEvent will hold some global information, such like window scroll postion, * so that those information is only calculated once. * @param {Object} option - The option for SyntheticEvent */ function ArgmentedEvent(option){option=option||{},this.type=option.type||"",this.scroll=scroll,this.resize=resize}var scroll={delta:0,top:0},resize={width:0,height:0};module.exports=ArgmentedEvent},/* 25 */ /***/ function(module,exports){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ /* global navigator, parseFloat */ "use strict";var leIE8=!1;// less then or equal to IE8 if("undefined"!=typeof navigator){var matches=navigator.userAgent.match(/MSIE (\d+\.\d+)/);matches&&(leIE8=parseFloat(matches[1],10)<9)}module.exports=leIE8},/* 26 */ /***/ function(module,exports,__webpack_require__){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ "use strict";function rAFThrottle(func,throttle){var context,args,last=0,requestId=0,later=function later(){var now=getTime(),remaining=throttle-(now-last);0>=remaining?(last=now,requestId=0,func.apply(context,args)):requestId=rAF(later)};return function(){context=this,args=arguments,requestId||(requestId=rAF(later))}}var rAF=__webpack_require__(27),getTime=Date.now||/* istanbul ignore next */function(){return(new Date).getTime()};module.exports=rAFThrottle},/* 27 */ /***/ function(module,exports,__webpack_require__){for(var now=__webpack_require__(28),global="undefined"==typeof window?{}:window,vendors=["moz","webkit"],suffix="AnimationFrame",raf=global["request"+suffix],caf=global["cancel"+suffix]||global["cancelRequest"+suffix],i=0;i<vendors.length&&!raf;i++)raf=global[vendors[i]+"Request"+suffix],caf=global[vendors[i]+"Cancel"+suffix]||global[vendors[i]+"CancelRequest"+suffix]; // Some versions of FF have rAF but not cAF if(!raf||!caf){var last=0,id=0,queue=[],frameDuration=1e3/60;raf=function(callback){if(0===queue.length){var _now=now(),next=Math.max(0,frameDuration-(_now-last));last=next+_now,setTimeout(function(){var cp=queue.slice(0); // Clear queue here to prevent // callbacks from appending listeners // to the current frame's queue queue.length=0;for(var i=0;i<cp.length;i++)if(!cp[i].cancelled)try{cp[i].callback(last)}catch(e){setTimeout(function(){throw e},0)}},Math.round(next))}return queue.push({handle:++id,callback:callback,cancelled:!1}),id},caf=function(handle){for(var i=0;i<queue.length;i++)queue[i].handle===handle&&(queue[i].cancelled=!0)}}module.exports=function(fn){ // Wrap in a new function to prevent // `cancel` potentially being assigned // to the native rAF function return raf.call(global,fn)},module.exports.cancel=function(){caf.apply(global,arguments)}},/* 28 */ /***/ function(module,exports,__webpack_require__){/* WEBPACK VAR INJECTION */ (function(process){// Generated by CoffeeScript 1.7.1 (function(){var getNanoSeconds,hrtime,loadTime;"undefined"!=typeof performance&&null!==performance&&performance.now?module.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(module.exports=function(){return(getNanoSeconds()-loadTime)/1e6},hrtime=process.hrtime,getNanoSeconds=function(){var hr;return hr=hrtime(),1e9*hr[0]+hr[1]},loadTime=getNanoSeconds()):Date.now?(module.exports=function(){return Date.now()-loadTime},loadTime=Date.now()):(module.exports=function(){return(new Date).getTime()-loadTime},loadTime=(new Date).getTime())}).call(this)}).call(exports,__webpack_require__(19))},/* 29 */ /***/ function(module,exports,__webpack_require__){/** * Creates a throttled function that only invokes `func` at most once per * every `wait` milliseconds. The throttled function comes with a `cancel` * method to cancel delayed invocations. Provide an options object to indicate * that `func` should be invoked on the leading and/or trailing edge of the * `wait` timeout. Subsequent calls to the throttled function return the * result of the last `func` call. * * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked * on the trailing edge of the timeout only if the the throttled function is * invoked more than once during the `wait` timeout. * * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) * for details over the differences between `_.throttle` and `_.debounce`. * * @static * @memberOf _ * @category Function * @param {Function} func The function to throttle. * @param {number} [wait=0] The number of milliseconds to throttle invocations to. * @param {Object} [options] The options object. * @param {boolean} [options.leading=true] Specify invoking on the leading * edge of the timeout. * @param {boolean} [options.trailing=true] Specify invoking on the trailing * edge of the timeout. * @returns {Function} Returns the new throttled function. * @example * * // avoid excessively updating the position while scrolling * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); * * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, { * 'trailing': false * })); * * // cancel a trailing throttled call * jQuery(window).on('popstate', throttled.cancel); */ function throttle(func,wait,options){var leading=!0,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return options===!1?leading=!1:isObject(options)&&(leading="leading"in options?!!options.leading:leading,trailing="trailing"in options?!!options.trailing:trailing),debounce(func,wait,{leading:leading,maxWait:+wait,trailing:trailing})}/** * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(1); * // => false */ function isObject(value){ // Avoid a V8 JIT bug in Chrome 19-20. // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type=typeof value;return!!value&&("object"==type||"function"==type)}/** * lodash 3.0.4 (Custom Build) <https://lodash.com/> * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license <https://lodash.com/license> */ var debounce=__webpack_require__(30),FUNC_ERROR_TEXT="Expected a function";module.exports=throttle},/* 30 */ /***/ function(module,exports,__webpack_require__){/** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel * delayed invocations. Provide an options object to indicate that `func` * should be invoked on the leading and/or trailing edge of the `wait` timeout. * Subsequent calls to the debounced function return the result of the last * `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked * on the trailing edge of the timeout only if the the debounced function is * invoked more than once during the `wait` timeout. * * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. * @param {Object} [options] The options object. * @param {boolean} [options.leading=false] Specify invoking on the leading * edge of the timeout. * @param {number} [options.maxWait] The maximum time `func` is allowed to be * delayed before it is invoked. * @param {boolean} [options.trailing=true] Specify invoking on the trailing * edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * * // avoid costly calculations while the window size is in flux * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * * // invoke `sendMail` when the click event is fired, debouncing subsequent calls * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * * // ensure `batchLog` is invoked once after 1 second of debounced calls * var source = new EventSource('/stream'); * jQuery(source).on('message', _.debounce(batchLog, 250, { * 'maxWait': 1000 * })); * * // cancel a debounced call * var todoChanges = _.debounce(batchLog, 1000); * Object.observe(models.todo, todoChanges); * * Object.observe(models, function(changes) { * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { * todoChanges.cancel(); * } * }, ['delete']); * * // ...at some point `models.todo` is changed * models.todo.completed = true; * * // ...before 1 second has passed `models.todo` is deleted * // which cancels the debounced `todoChanges` call * delete models.todo; */ function debounce(func,wait,options){function cancel(){timeoutId&&clearTimeout(timeoutId),maxTimeoutId&&clearTimeout(maxTimeoutId),lastCalled=0,maxTimeoutId=timeoutId=trailingCall=void 0}function complete(isCalled,id){id&&clearTimeout(id),maxTimeoutId=timeoutId=trailingCall=void 0,isCalled&&(lastCalled=now(),result=func.apply(thisArg,args),timeoutId||maxTimeoutId||(args=thisArg=void 0))}function delayed(){var remaining=wait-(now()-stamp);0>=remaining||remaining>wait?complete(trailingCall,maxTimeoutId):timeoutId=setTimeout(delayed,remaining)}function maxDelayed(){complete(trailing,timeoutId)}function debounced(){if(args=arguments,stamp=now(),thisArg=this,trailingCall=trailing&&(timeoutId||!leading),maxWait===!1)var leadingCall=leading&&!timeoutId;else{maxTimeoutId||leading||(lastCalled=stamp);var remaining=maxWait-(stamp-lastCalled),isCalled=0>=remaining||remaining>maxWait;isCalled?(maxTimeoutId&&(maxTimeoutId=clearTimeout(maxTimeoutId)),lastCalled=stamp,result=func.apply(thisArg,args)):maxTimeoutId||(maxTimeoutId=setTimeout(maxDelayed,remaining))}return isCalled&&timeoutId?timeoutId=clearTimeout(timeoutId):timeoutId||wait===maxWait||(timeoutId=setTimeout(delayed,wait)),leadingCall&&(isCalled=!0,result=func.apply(thisArg,args)),!isCalled||timeoutId||maxTimeoutId||(args=thisArg=void 0),result}var args,maxTimeoutId,result,stamp,thisArg,timeoutId,trailingCall,lastCalled=0,maxWait=!1,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);if(wait=0>wait?0:+wait||0,options===!0){var leading=!0;trailing=!1}else isObject(options)&&(leading=!!options.leading,maxWait="maxWait"in options&&nativeMax(+options.maxWait||0,wait),trailing="trailing"in options?!!options.trailing:trailing);return debounced.cancel=cancel,debounced}/** * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(1); * // => false */ function isObject(value){ // Avoid a V8 JIT bug in Chrome 19-20. // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type=typeof value;return!!value&&("object"==type||"function"==type)}/** * lodash 3.1.1 (Custom Build) <https://lodash.com/> * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license <https://lodash.com/license> */ var getNative=__webpack_require__(31),FUNC_ERROR_TEXT="Expected a function",nativeMax=Math.max,nativeNow=getNative(Date,"now"),now=nativeNow||function(){return(new Date).getTime()};module.exports=debounce},/* 31 */ /***/ function(module,exports){/** * Checks if `value` is object-like. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. */ function isObjectLike(value){return!!value&&"object"==typeof value}/** * Gets the native function at `key` of `object`. * * @private * @param {Object} object The object to query. * @param {string} key The key of the method to get. * @returns {*} Returns the function if it's native, else `undefined`. */ function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}/** * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isFunction(_); * // => true * * _.isFunction(/abc/); * // => false */ function isFunction(value){ // The use of `Object#toString` avoids issues with the `typeof` operator // in older versions of Chrome and Safari which return 'function' for regexes // and Safari 8 equivalents which return 'object' for typed array constructors. return isObject(value)&&objToString.call(value)==funcTag}/** * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(1); * // => false */ function isObject(value){ // Avoid a V8 JIT bug in Chrome 19-20. // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type=typeof value;return!!value&&("object"==type||"function"==type)}/** * Checks if `value` is a native function. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a native function, else `false`. * @example * * _.isNative(Array.prototype.push); * // => true * * _.isNative(_); * // => false */ function isNative(value){return null==value?!1:isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}/** * lodash 3.9.1 (Custom Build) <https://lodash.com/> * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/> * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license <https://lodash.com/license> */ /** `Object#toString` result references. */ var funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");module.exports=getNative},/* 32 */ /***/ function(module,exports,__webpack_require__){/** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ "use strict";/** * Unsubscribe UI events. Note that all subscriptions having the same eventHandler and the same event type * will be unsubscribed together even if they have different options. * @method unsubscribe * @param {String} eventType - The type of event * @param {Function} cb - The callback function */ function unsubscribe(eventType,cb){for(var sub,i=subscriptions.length-1;i>=0;i--)sub=subscriptions[i],sub._eventType===eventType&&sub._cb===cb&&sub.unsubscribe()}var subscriptions=__webpack_require__(21).subscriptions;module.exports=unsubscribe},/* 33 */ /***/ function(module,exports,__webpack_require__){"use strict";module.exports=__webpack_require__(18).unsubscribe},/* 34 */ /***/ function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__;/*! Copyright (c) 2015 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ /* global define */ !function(){"use strict";function classNames(){for(var classes="",i=0;i<arguments.length;i++){var arg=arguments[i];if(arg){var argType=typeof arg;if("string"===argType||"number"===argType)classes+=" "+arg;else if(Array.isArray(arg))classes+=" "+classNames.apply(null,arg);else if("object"===argType)for(var key in arg)hasOwn.call(arg,key)&&arg[key]&&(classes+=" "+key)}}return classes.substr(1)}var hasOwn={}.hasOwnProperty;"undefined"!=typeof module&&module.exports?module.exports=classNames:(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_RESULT__=function(){return classNames}.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__),!(void 0!==__WEBPACK_AMD_DEFINE_RESULT__&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)))}()},/* 35 */ /***/ function(module,exports,__webpack_require__){/* globals window */ "use strict";var React=__webpack_require__(3),SidekickTVOverlay=(React.addons.CSSTransitionGroup,React.createClass({displayName:"SidekickTVOverlay",_playerEvents:null,getDefaultProps:function(){return{image:"",muted:!0,player:null,paused:!1,expanded:!1,onHoverPlay:!1,lazyInstance:!1,handlePlayClick:null,handleSoundClick:null,handleExpandClick:null,handleLazyInstanceClick:null}},getPlayerEvents:function(){var videoPlatform="undefined"!=typeof window&&window.YAHOO?window.YAHOO.VideoPlatform:!1;return!this._playerEvents&&videoPlatform&&(this._playerEvents=videoPlatform&&videoPlatform.API_Events),this._playerEvents},publishUIClick:function(evt){var player=this.props.getPlayer&&this.props.getPlayer()&&this.props.getPlayer().getPlayerHandle(),events=this.getPlayerEvents();player&&events&&player._eventBus.publish(events.UI_INTERACT,{srcElement:"sidekick-tv-"+evt})},handleClick:function(evt,callback,objparms){evt&&this.publishUIClick(evt),callback&&callback(objparms)},handlePlayClick:function(){var callback=this.props.handlePlayClick,evt=this.props.paused?"pause":"play";this.handleClick(evt,callback)},handleSoundClick:function(){var callback=this.props.handleSoundClick,evt=this.props.muted?"unmute":"mute";this.handleClick(evt,callback)},handleExpandClick:function(){var callback=this.props.handleExpandClick,evt=this.props.expanded?"expand":"constrict";this.handleClick(evt,callback)},handleLazyInstanceClick:function(e){var callback=this.props.handleLazyInstanceClick,isHover="mouseenter"===e.type,muted=isHover?!0:!1,evt=isHover?null:"play";this.handleClick(evt,callback,muted)},render:function(){var self=this,soundIcon=self.props.muted?"on":"off",playIcon=self.props.paused?"play":"pause",expandIcon=self.props.expanded?"constrict":"expand",handleMouseEnter=self.props.onHoverPlay?self.handleLazyInstanceClick:null,expandStyles=self.props.hideExpand?"Dn":"W-25 H-100 Pos-r D-ib Cur-p btn-player",spaceExpStyles=self.props.hideExpand?"W-15 D-ib":"Dn",hoverOverlay=null; //if lazy instance we need overlay with img and single play icon to initialize the player //else we need it only if defaultVidActions is not enabled return self.props.lazyInstance?hoverOverlay=React.createElement("div",{className:"Pos-r Ratio-16-9",onMouseEnter:handleMouseEnter},React.createElement("div",{key:"picture"},React.createElement("img",{src:self.props.image,className:"Stretch"})),React.createElement("div",{key:"controls",className:"SidekickTVLazy W-100 H-100 Pos-a"},React.createElement("div",{className:"Pos-a W-70 T-50 Start-50 Whs-nw player-controls"},React.createElement("span",{className:"W-25 H-100 Pos-r D-ib btn-player"}),React.createElement("span",{className:"W-25 H-100 Pos-r D-ib Cur-p btn-player",onClick:self.handleLazyInstanceClick},React.createElement("i",{className:"Pos-a W-100 H-100 "+playIcon})),React.createElement("span",{className:"W-25 H-100 Pos-r D-ib btn-player"})))):this.props.defaultVidActions||(hoverOverlay=React.createElement("div",{className:"W-100 H-100"},React.createElement("div",{className:"Pos-a W-70 T-50 Start-50 Whs-nw player-controls"},React.createElement("span",{className:spaceExpStyles}),React.createElement("span",{className:"W-25 H-100 Pos-r D-ib Cur-p btn-player",onClick:self.handleSoundClick},React.createElement("i",{className:"Pos-a W-100 H-100 "+soundIcon})),React.createElement("span",{className:"W-25 H-100 Pos-r D-ib Cur-p btn-player",onClick:self.handlePlayClick},React.createElement("i",{className:"Pos-a W-100 H-100 "+playIcon})),React.createElement("span",{className:expandStyles,onClick:self.handleExpandClick},React.createElement("i",{className:"Pos-a W-100 H-100 "+expandIcon}))))),hoverOverlay}}));module.exports=SidekickTVOverlay},/* 36 */ /***/ function(module,exports,__webpack_require__){"use strict";var React=__webpack_require__(3),SidekickTVHeader=React.createClass({displayName:"SidekickTVHeader",getDefaultProps:function(){return{ylogo:"https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/m/content_index/images/sidekick_tv_news-2e9c408.png",mostBgColor:"#0E2B5C",descBgColor:"#dbdbdb",mostTxtColor:"#000",logoHeight:"40px"}},propTypes:{ylogo:React.PropTypes.string,mostBgColor:React.PropTypes.string,descBgColor:React.PropTypes.string,mostTxtColor:React.PropTypes.string,logoHeight:React.PropTypes.string},render:function(){return React.createElement("div",{className:"Grid W-100"},React.createElement("div",{className:"Grid-U W-55",style:{backgroundColor:this.props.mostBgColor,height:this.props.logoHeight}},React.createElement("img",{src:this.props.ylogo,style:{height:this.props.logoHeight}})),React.createElement("div",{className:"Grid-U W-15 SidekickTVArrow Bxz-bb",style:{borderLeftColor:this.props.mostBgColor,backgroundColor:this.props.descBgColor}}),React.createElement("div",{className:"Grid-U W-30 SidekickTVMore Ta-end Fz-xs Fw-b",style:{backgroundColor:this.props.descBgColor,color:this.props.mostTxtColor,height:this.props.logoHeight,lineHeight:this.props.logoHeight}},React.createElement("span",{className:"Mend-10"},"Must Watch")))}});module.exports=SidekickTVHeader},/* 37 */ /***/ function(module,exports,__webpack_require__){"use strict";var React=__webpack_require__(3),TYPE_TV="TV",TYPE_SIDEKICK="SIDEKICK",SidekickTVFooter=React.createClass({displayName:"SidekickTVFooter",getDefaultProps:function(){return{bgColor:"#dbdbdb",txtColor:"#000",providerName:"",footerType:TYPE_TV,isBlending:!1,currentItem:{provider:{}},hasChannels:!1}},propTypes:{providerName:React.PropTypes.string,txtColor:React.PropTypes.string,bgColor:React.PropTypes.string,title:React.PropTypes.string,isBlending:React.PropTypes.bool,currentItem:React.PropTypes.object,hasChannels:React.PropTypes.bool},getTracking:function(item){ // Instrumentation specification at: // https://docs.google.com/a/yahoo-inc.com/spreadsheet/ccc?key=0AlRdthPMoUPldHJGdmxwRlJBbzBOLXNFR1RUVlVsWHc var g=item.uuid||"",cat=item.source||"",prov=item.providerName||"",cpos=this.props.index||1,ct=3,customeTrack=""; // For BE Intrumentation if(item.instrument)for(var key in item.instrument)item.instrument.hasOwnProperty(key)&&(customeTrack+=key+":"+item.instrument[key]+";");return"itc:0;ct:"+ct+";rspns:nav;t1:a4;t2:lst-tag;t3:ct;sec:lst-tag;cat:"+cat+";elm:tl;ad:;elmt:ct;cpos:"+cpos+";test:;g:"+g+";aid:;prov:"+prov+";"+customeTrack},render:function(){var prevMarkup=null,nextMarkup=null,titleClass=this.props.hasChannels?"LineClamp":"",attributionClass="ad-sponsored thread-snippet Pt-2";switch(this.props.enableNav?(prevMarkup=React.createElement("span",{className:"icon icon-chevron-left P-0 Pos-a Fz-30",style:{top:"18px"},onClick:this.props.handlePrevClick}),nextMarkup=React.createElement("span",{className:"icon icon-chevron-right P-0 Pos-a Fz-30 End-0",style:{top:"18px"},onClick:this.props.handleNextClick}),titleClass+=" Px-30",attributionClass+=" Px-30"):(titleClass+=" Px-10",attributionClass+=" Px-10"),this.props.footerType){case TYPE_TV:return React.createElement("div",{className:"ftr Grid list-view",style:{backgroundColor:this.props.bgColor,color:this.props.txtColor}},React.createElement("div",{className:"Grid-U list-view-item selected Cur-d Py-10",style:this.props.hasChannels?{height:"66px"}:{}},prevMarkup,React.createElement("div",{className:titleClass},this.props.title),React.createElement("div",{className:attributionClass},this.props.providerName),nextMarkup));case TYPE_SIDEKICK:return React.createElement("div",null,React.createElement("a",{href:this.props.currentItem.targetUrl,"data-ylk":this.getTracking(this.props.currentItem)},React.createElement("span",{className:"SidekickItem-Title Fz-m Mt-6 LineClamp Pb-2 D-b"},this.props.title)),React.createElement("span",{className:"SidekickItem-Source Fz-xs D-b Mt-4 C-grey"},this.props.providerName))}}});module.exports=SidekickTVFooter},/* 38 */ /***/ function(module,exports,__webpack_require__){"use strict";var React=__webpack_require__(3),SidekickChannelItem=__webpack_require__(39),SidekickChannels=React.createClass({displayName:"SidekickChannels",render:function(){var self=this;return React.createElement("ul",{className:"channels M-0 Z-3 Pos-r list-view"},this.props.channels.map(function(channel,pos){var isCurrent=!1,channelConfig=self.props.channelsConfig?self.props.channelsConfig[channel.id]:null; //the channel item needs to know if it is the current channel return self.props.currentChannelId===channel.id&&(isCurrent=!0),React.createElement(SidekickChannelItem,{showIcons:self.props.showIcons,showCount:self.props.showCount,pos:pos,isCurrent:isCurrent,paused:self.props.paused,channel:channel,channelConfig:channelConfig,handleChannelClick:self.props.handleChannelClick})}))}});module.exports=SidekickChannels},/* 39 */ /***/ function(module,exports,__webpack_require__){"use strict";var React=__webpack_require__(3),SidekickChannelItem=React.createClass({displayName:"SidekickChannelItem",propTypes:{channels:React.PropTypes.object},handleChannelClick:function(e){e.preventDefault();var callback=this.props.handleChannelClick;this.props.isCurrent?callback(this.props.channel,"toggle"):callback(this.props.channel,"play")},getTracking:function(){var outcm=this.props.isCurrent&&!this.props.paused?"pa":"pl";return"sec:stv;itc:1;outcm:"+outcm+";cpos:"+this.props.pos+";"},render:function(){var name=this.props.channel.name;this.props.channelConfig&&this.props.channelConfig.displayName&&(name=this.props.channelConfig.displayName);var channelClass="icon-play",liClasses="";this.props.isCurrent&&(liClasses+=" selected",channelClass=this.props.paused?"icon-play":"icon-pause");var countMarkup=null;if(this.props.showCount){var count=this.props.channel.videos.length;count=1===count?"1 video":count+" videos";var countMarkup=React.createElement("span",{className:"Fz-xs thread-snippet"},count)}if(this.props.showIcons)var iconMarkup=React.createElement("span",{className:"Fz-l Va-m Pend-6 beta-icon "+(this.props.channelConfig.betaIcon?this.props.channelConfig.betaIcon:"icon-none")});return React.createElement("li",{className:"Px-10 Py-4 list-view-item Pos-r"+liClasses},iconMarkup,React.createElement("a",{className:"Fz-s ch-title Td-n",href:"#0",onClick:this.handleChannelClick,"data-ylk":this.getTracking()},React.createElement("span",null,name),React.createElement("u",{className:"Stretch Z-1"})),React.createElement("div",{className:"Fl-end"},countMarkup,React.createElement("span",{className:"Fz-l Fl-end Mstart-14 Mt-6 icon "+channelClass})))}});module.exports=SidekickChannelItem},/* 40 */ /***/ function(module,exports){module.exports={autoplay:!0,ccode:"",comscoreC4:"US News",continuousPlay:!0,expBucket:"",expName:"SidekickTV",expType:"right-rail-autoplay",lang:"en-US",loop:!0,mute:!0,pageSpaceId:"",pausescreen:!1,startscreen:!0,settings:!1,playlist:{mediaItems:[]},region:"US",stopBufferingOnPause:!1,site:"news",chromeless:!1,sec:"lst-tag",CMS:{env:"prod",suppressAdContext:!0},YVAP:{accountId:"",playContext:"default",ruleSetId:""}}},/* 41 */ /***/ function(module,exports){module.exports={"58c52b50-216f-11e3-bfd3-05678ea2ca61":{nameRef:"popular",site:"",betaIcon:"mail-beta-mustWatch"},"5803cc90-ec11-11e3-a2ff-8642de44d2d8":{nameRef:"live",site:""},"4321a800-1688-11e4-9fad-676cadfc0e2b":{nameRef:"community",site:""},"19e05f30-b7a1-11e4-91fd-bd2acaed93db":{nameRef:"other-space",site:""},"3960e6b0-b786-11e4-bbbd-e5ea2565a6fb":{nameRef:"sin-city-saints",site:""},"70694df0-30ff-11e3-bdd3-b44a55fa9c74":{nameRef:"music",site:"music",betaIcon:"mail-beta-music2"},"4d941c10-d1b7-11e4-bfff-5277fcade0d7":{nameRef:"movies",site:"movies"},"0df0bd30-daee-11e4-afa7-14110910fe07":{nameRef:"tv",site:"tv"},"2716dce0-3202-11e3-bfb6-c4799056d53c":{nameRef:"celebrity",site:"omg",betaIcon:"mail-beta-celebrity"},"4085b660-2172-11e3-affd-fb1eed42cc5a":{nameRef:"comedy",site:"",betaIcon:"mail-beta-comedy"},"d55b0230-36c7-11e3-8967-67c7a77559ee":{nameRef:"sports",site:"sports",betaIcon:"mail-beta-sport"},"ae77d4b0-d999-11e4-b77f-e28f1acc8d82":{nameRef:"fantasy-sports",site:"sports"},"4cb412d0-36bf-11e3-bbf5-9657794d6211":{nameRef:"news",site:"news",betaIcon:"mail-beta-news"},"cd4f0890-d999-11e4-9fce-14b43557b43e":{nameRef:"politics",site:"politics"},"fc5a3ae0-c736-11e3-9f7f-e5b8936e1729":{nameRef:"finance",site:"finance",betaIcon:"mail-beta-finance"},"29df2420-d99d-11e4-b4bf-6a488a19f1e6":{nameRef:"tech",site:"tech",betaIcon:"mail-beta-tech"},"f1c75730-dc8d-11e4-bfbb-a3e55d014855":{nameRef:"games",site:"games"},"bb3bd620-3e89-11e4-b38f-b3eecbed919f":{nameRef:"autos",site:"autos"},"5b475fc0-d99b-11e4-bfcf-8fd63617bcd5":{nameRef:"style",site:"style"},"d230da20-d99c-11e4-9d9e-9f167a3b15e8":{nameRef:"beauty",site:"beauty"},"ee91a710-a880-11e3-bedf-e437b2803014":{nameRef:"vevo",site:"music",displayName:"Music Videos",betaIcon:"mail-beta-music2"},"756da470-cf2b-11e3-9f9b-fd2b666ece79":{nameRef:"travel",site:"travel",betaIcon:"mail-beta-travel"},"df931f80-2178-11e3-bbff-8613cc9cf21b":{nameRef:"food",site:"food",betaIcon:"mail-beta-food"},"b3f169a0-da71-11e4-b962-151e216879ac":{nameRef:"health",site:"health",betaIcon:"mail-beta-health"},"d855ef90-a1c4-11e4-b5b7-60e6f731cdb4":{nameRef:"makers",site:"makers"},"fa82c970-818b-11e4-bbfe-43fbcbffdbcf":{nameRef:"parenting",site:"parenting",betaIcon:"mail-beta-parenting"}}},/* 42 */ /***/ function(module,exports,__webpack_require__){var __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module,global){(function(){/*--------------------------------------------------------------------------*/ /** * The base implementation of `compareAscending` which compares values and * sorts them in ascending order without guaranteeing a stable sort. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {number} Returns the sort order indicator for `value`. */ function baseCompareAscending(value,other){if(value!==other){var valIsNull=null===value,valIsUndef=value===undefined,valIsReflexive=value===value,othIsNull=null===other,othIsUndef=other===undefined,othIsReflexive=other===other;if(value>other&&!othIsNull||!valIsReflexive||valIsNull&&!othIsUndef&&othIsReflexive||valIsUndef&&othIsReflexive)return 1;if(other>value&&!valIsNull||!othIsReflexive||othIsNull&&!valIsUndef&&valIsReflexive||othIsUndef&&valIsReflexive)return-1}return 0}/** * The base implementation of `_.findIndex` and `_.findLastIndex` without * support for callback shorthands and `this` binding. * * @private * @param {Array} array The array to search. * @param {Function} predicate The function invoked per iteration. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:++index<length;)if(predicate(array[index],index,array))return index;return-1}/** * The base implementation of `_.indexOf` without support for binary searches. * * @private * @param {Array} array The array to search. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;++index<length;)if(array[index]===value)return index;return-1}/** * The base implementation of `_.isFunction` without support for environments * with incorrect `typeof` results. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. */ function baseIsFunction(value){ // Avoid a Chakra JIT bug in compatibility modes of IE 11. // See https://github.com/jashkenas/underscore/issues/1621 for more details. return"function"==typeof value||!1}/** * Converts `value` to a string if it's not one. An empty string is returned * for `null` or `undefined` values. * * @private * @param {*} value The value to process. * @returns {string} Returns the string. */ function baseToString(value){return null==value?"":value+""}/** * Used by `_.trim` and `_.trimLeft` to get the index of the first character * of `string` that is not found in `chars`. * * @private * @param {string} string The string to inspect. * @param {string} chars The characters to find. * @returns {number} Returns the index of the first character not found in `chars`. */ function charsLeftIndex(string,chars){for(var index=-1,length=string.length;++index<length&&chars.indexOf(string.charAt(index))>-1;);return index}/** * Used by `_.trim` and `_.trimRight` to get the index of the last character * of `string` that is not found in `chars`. * * @private * @param {string} string The string to inspect. * @param {string} chars The characters to find. * @returns {number} Returns the index of the last character not found in `chars`. */ function charsRightIndex(string,chars){for(var index=string.length;index--&&chars.indexOf(string.charAt(index))>-1;);return index}/** * Used by `_.sortBy` to compare transformed elements of a collection and stable * sort them in ascending order. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @returns {number} Returns the sort order indicator for `object`. */ function compareAscending(object,other){return baseCompareAscending(object.criteria,other.criteria)||object.index-other.index}/** * Used by `_.sortByOrder` to compare multiple properties of a value to another * and stable sort them. * * If `orders` is unspecified, all valuess are sorted in ascending order. Otherwise, * a value is sorted in ascending order if its corresponding order is "asc", and * descending if "desc". * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {boolean[]} orders The order to sort by for each property. * @returns {number} Returns the sort order indicator for `object`. */ function compareMultiple(object,other,orders){for(var index=-1,objCriteria=object.criteria,othCriteria=other.criteria,length=objCriteria.length,ordersLength=orders.length;++index<length;){var result=baseCompareAscending(objCriteria[index],othCriteria[index]);if(result){if(index>=ordersLength)return result;var order=orders[index];return result*("asc"===order||order===!0?1:-1)}} // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications // that causes it, under certain circumstances, to provide the same value for // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 // for more details. // // This also ensures a stable sort in V8 and other engines. // See https://code.google.com/p/v8/issues/detail?id=90 for more details. return object.index-other.index}/** * Used by `_.deburr` to convert latin-1 supplementary letters to basic latin letters. * * @private * @param {string} letter The matched letter to deburr. * @returns {string} Returns the deburred letter. */ function deburrLetter(letter){return deburredLetters[letter]}/** * Used by `_.escape` to convert characters to HTML entities. * * @private * @param {string} chr The matched character to escape. * @returns {string} Returns the escaped character. */ function escapeHtmlChar(chr){return htmlEscapes[chr]}/** * Used by `_.escapeRegExp` to escape characters for inclusion in compiled regexes. * * @private * @param {string} chr The matched character to escape. * @param {string} leadingChar The capture group for a leading character. * @param {string} whitespaceChar The capture group for a whitespace character. * @returns {string} Returns the escaped character. */ function escapeRegExpChar(chr,leadingChar,whitespaceChar){return leadingChar?chr=regexpEscapes[chr]:whitespaceChar&&(chr=stringEscapes[chr]),"\\"+chr}/** * Used by `_.template` to escape characters for inclusion in compiled string literals. * * @private * @param {string} chr The matched character to escape. * @returns {string} Returns the escaped character. */ function escapeStringChar(chr){return"\\"+stringEscapes[chr]}/** * Gets the index at which the first occurrence of `NaN` is found in `array`. * * @private * @param {Array} array The array to search. * @param {number} fromIndex The index to search from. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {number} Returns the index of the matched `NaN`, else `-1`. */ function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:++index<length;){var other=array[index];if(other!==other)return index}return-1}/** * Checks if `value` is object-like. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. */ function isObjectLike(value){return!!value&&"object"==typeof value}/** * Used by `trimmedLeftIndex` and `trimmedRightIndex` to determine if a * character code is whitespace. * * @private * @param {number} charCode The character code to inspect. * @returns {boolean} Returns `true` if `charCode` is whitespace, else `false`. */ function isSpace(charCode){return 160>=charCode&&charCode>=9&&13>=charCode||32==charCode||160==charCode||5760==charCode||6158==charCode||charCode>=8192&&(8202>=charCode||8232==charCode||8233==charCode||8239==charCode||8287==charCode||12288==charCode||65279==charCode)}/** * Replaces all `placeholder` elements in `array` with an internal placeholder * and returns an array of their indexes. * * @private * @param {Array} array The array to modify. * @param {*} placeholder The placeholder to replace. * @returns {Array} Returns the new array of placeholder indexes. */ function replaceHolders(array,placeholder){for(var index=-1,length=array.length,resIndex=-1,result=[];++index<length;)array[index]===placeholder&&(array[index]=PLACEHOLDER,result[++resIndex]=index);return result}/** * An implementation of `_.uniq` optimized for sorted arrays without support * for callback shorthands and `this` binding. * * @private * @param {Array} array The array to inspect. * @param {Function} [iteratee] The function invoked per iteration. * @returns {Array} Returns the new duplicate-value-free array. */ function sortedUniq(array,iteratee){for(var seen,index=-1,length=array.length,resIndex=-1,result=[];++index<length;){var value=array[index],computed=iteratee?iteratee(value,index,array):value;index&&seen===computed||(seen=computed,result[++resIndex]=value)}return result}/** * Used by `_.trim` and `_.trimLeft` to get the index of the first non-whitespace * character of `string`. * * @private * @param {string} string The string to inspect. * @returns {number} Returns the index of the first non-whitespace character. */ function trimmedLeftIndex(string){for(var index=-1,length=string.length;++index<length&&isSpace(string.charCodeAt(index)););return index}/** * Used by `_.trim` and `_.trimRight` to get the index of the last non-whitespace * character of `string`. * * @private * @param {string} string The string to inspect. * @returns {number} Returns the index of the last non-whitespace character. */ function trimmedRightIndex(string){for(var index=string.length;index--&&isSpace(string.charCodeAt(index)););return index}/** * Used by `_.unescape` to convert HTML entities to characters. * * @private * @param {string} chr The matched character to unescape. * @returns {string} Returns the unescaped character. */ function unescapeHtmlChar(chr){return htmlUnescapes[chr]}/*--------------------------------------------------------------------------*/ /** * Create a new pristine `lodash` function using the given `context` object. * * @static * @memberOf _ * @category Utility * @param {Object} [context=root] The context object. * @returns {Function} Returns a new `lodash` function. * @example * * _.mixin({ 'foo': _.constant('foo') }); * * var lodash = _.runInContext(); * lodash.mixin({ 'bar': lodash.constant('bar') }); * * _.isFunction(_.foo); * // => true * _.isFunction(_.bar); * // => false * * lodash.isFunction(lodash.foo); * // => false * lodash.isFunction(lodash.bar); * // => true * * // using `context` to mock `Date#getTime` use in `_.now` * var mock = _.runInContext({ * 'Date': function() { * return { 'getTime': getTimeMock }; * } * }); * * // or creating a suped-up `defer` in Node.js * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; */ function runInContext(context){/*------------------------------------------------------------------------*/ /** * Creates a `lodash` object which wraps `value` to enable implicit chaining. * Methods that operate on and return arrays, collections, and functions can * be chained together. Methods that retrieve a single value or may return a * primitive value will automatically end the chain returning the unwrapped * value. Explicit chaining may be enabled using `_.chain`. The execution of * chained methods is lazy, that is, execution is deferred until `_#value` * is implicitly or explicitly called. * * Lazy evaluation allows several methods to support shortcut fusion. Shortcut * fusion is an optimization strategy which merge iteratee calls; this can help * to avoid the creation of intermediate data structures and greatly reduce the * number of iteratee executions. * * Chaining is supported in custom builds as long as the `_#value` method is * directly or indirectly included in the build. * * In addition to lodash methods, wrappers have `Array` and `String` methods. * * The wrapper `Array` methods are: * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, * `splice`, and `unshift` * * The wrapper `String` methods are: * `replace` and `split` * * The wrapper methods that support shortcut fusion are: * `compact`, `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `filter`, * `first`, `initial`, `last`, `map`, `pluck`, `reject`, `rest`, `reverse`, * `slice`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `toArray`, * and `where` * * The chainable wrapper methods are: * `after`, `ary`, `assign`, `at`, `before`, `bind`, `bindAll`, `bindKey`, * `callback`, `chain`, `chunk`, `commit`, `compact`, `concat`, `constant`, * `countBy`, `create`, `curry`, `debounce`, `defaults`, `defaultsDeep`, * `defer`, `delay`, `difference`, `drop`, `dropRight`, `dropRightWhile`, * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flow`, `flowRight`, * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, * `functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`, * `invoke`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, * `matchesProperty`, `memoize`, `merge`, `method`, `methodOf`, `mixin`, * `modArgs`, `negate`, `omit`, `once`, `pairs`, `partial`, `partialRight`, * `partition`, `pick`, `plant`, `pluck`, `property`, `propertyOf`, `pull`, * `pullAt`, `push`, `range`, `rearg`, `reject`, `remove`, `rest`, `restParam`, * `reverse`, `set`, `shuffle`, `slice`, `sort`, `sortBy`, `sortByAll`, * `sortByOrder`, `splice`, `spread`, `take`, `takeRight`, `takeRightWhile`, * `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, `toPlainObject`, * `transform`, `union`, `uniq`, `unshift`, `unzip`, `unzipWith`, `values`, * `valuesIn`, `where`, `without`, `wrap`, `xor`, `zip`, `zipObject`, `zipWith` * * The wrapper methods that are **not** chainable by default are: * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clone`, `cloneDeep`, * `deburr`, `endsWith`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, * `floor`, `get`, `gt`, `gte`, `has`, `identity`, `includes`, `indexOf`, * `inRange`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`, * `isEmpty`, `isEqual`, `isError`, `isFinite` `isFunction`, `isMatch`, * `isNative`, `isNaN`, `isNull`, `isNumber`, `isObject`, `isPlainObject`, * `isRegExp`, `isString`, `isUndefined`, `isTypedArray`, `join`, `kebabCase`, * `last`, `lastIndexOf`, `lt`, `lte`, `max`, `min`, `noConflict`, `noop`, * `now`, `pad`, `padLeft`, `padRight`, `parseInt`, `pop`, `random`, `reduce`, * `reduceRight`, `repeat`, `result`, `round`, `runInContext`, `shift`, `size`, * `snakeCase`, `some`, `sortedIndex`, `sortedLastIndex`, `startCase`, * `startsWith`, `sum`, `template`, `trim`, `trimLeft`, `trimRight`, `trunc`, * `unescape`, `uniqueId`, `value`, and `words` * * The wrapper method `sample` will return a wrapped value when `n` is provided, * otherwise an unwrapped value is returned. * * @name _ * @constructor * @category Chain * @param {*} value The value to wrap in a `lodash` instance. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var wrapped = _([1, 2, 3]); * * // returns an unwrapped value * wrapped.reduce(function(total, n) { * return total + n; * }); * // => 6 * * // returns a wrapped value * var squares = wrapped.map(function(n) { * return n * n; * }); * * _.isArray(squares); * // => false * * _.isArray(squares.value()); * // => true */ function lodash(value){if(isObjectLike(value)&&!isArray(value)&&!(value instanceof LazyWrapper)){if(value instanceof LodashWrapper)return value;if(hasOwnProperty.call(value,"__chain__")&&hasOwnProperty.call(value,"__wrapped__"))return wrapperClone(value)}return new LodashWrapper(value)}/** * The function whose prototype all chaining wrappers inherit from. * * @private */ function baseLodash(){}/** * The base constructor for creating `lodash` wrapper objects. * * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. */ function LodashWrapper(value,chainAll,actions){this.__wrapped__=value,this.__actions__=actions||[],this.__chain__=!!chainAll}/*------------------------------------------------------------------------*/ /** * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. * * @private * @param {*} value The value to wrap. */ function LazyWrapper(value){this.__wrapped__=value,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=POSITIVE_INFINITY,this.__views__=[]}/** * Creates a clone of the lazy wrapper object. * * @private * @name clone * @memberOf LazyWrapper * @returns {Object} Returns the cloned `LazyWrapper` object. */ function lazyClone(){var result=new LazyWrapper(this.__wrapped__);return result.__actions__=arrayCopy(this.__actions__),result.__dir__=this.__dir__,result.__filtered__=this.__filtered__,result.__iteratees__=arrayCopy(this.__iteratees__),result.__takeCount__=this.__takeCount__,result.__views__=arrayCopy(this.__views__),result}/** * Reverses the direction of lazy iteration. * * @private * @name reverse * @memberOf LazyWrapper * @returns {Object} Returns the new reversed `LazyWrapper` object. */ function lazyReverse(){if(this.__filtered__){var result=new LazyWrapper(this);result.__dir__=-1,result.__filtered__=!0}else result=this.clone(),result.__dir__*=-1;return result}/** * Extracts the unwrapped value from its lazy wrapper. * * @private * @name value * @memberOf LazyWrapper * @returns {*} Returns the unwrapped value. */ function lazyValue(){var array=this.__wrapped__.value(),dir=this.__dir__,isArr=isArray(array),isRight=0>dir,arrLength=isArr?array.length:0,view=getView(0,arrLength,this.__views__),start=view.start,end=view.end,length=end-start,index=isRight?end:start-1,iteratees=this.__iteratees__,iterLength=iteratees.length,resIndex=0,takeCount=nativeMin(length,this.__takeCount__);if(!isArr||LARGE_ARRAY_SIZE>arrLength||arrLength==length&&takeCount==length)return baseWrapperValue(isRight&&isArr?array.reverse():array,this.__actions__);var result=[];outer:for(;length--&&takeCount>resIndex;){index+=dir;for(var iterIndex=-1,value=array[index];++iterIndex<iterLength;){var data=iteratees[iterIndex],iteratee=data.iteratee,type=data.type,computed=iteratee(value);if(type==LAZY_MAP_FLAG)value=computed;else if(!computed){if(type==LAZY_FILTER_FLAG)continue outer;break outer}}result[resIndex++]=value}return result}/*------------------------------------------------------------------------*/ /** * Creates a cache object to store key/value pairs. * * @private * @static * @name Cache * @memberOf _.memoize */ function MapCache(){this.__data__={}}/** * Removes `key` and its value from the cache. * * @private * @name delete * @memberOf _.memoize.Cache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed successfully, else `false`. */ function mapDelete(key){return this.has(key)&&delete this.__data__[key]}/** * Gets the cached value for `key`. * * @private * @name get * @memberOf _.memoize.Cache * @param {string} key The key of the value to get. * @returns {*} Returns the cached value. */ function mapGet(key){return"__proto__"==key?undefined:this.__data__[key]}/** * Checks if a cached value for `key` exists. * * @private * @name has * @memberOf _.memoize.Cache * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function mapHas(key){return"__proto__"!=key&&hasOwnProperty.call(this.__data__,key)}/** * Sets `value` to `key` of the cache. * * @private * @name set * @memberOf _.memoize.Cache * @param {string} key The key of the value to cache. * @param {*} value The value to cache. * @returns {Object} Returns the cache object. */ function mapSet(key,value){return"__proto__"!=key&&(this.__data__[key]=value),this}/*------------------------------------------------------------------------*/ /** * * Creates a cache object to store unique values. * * @private * @param {Array} [values] The values to cache. */ function SetCache(values){var length=values?values.length:0;for(this.data={hash:nativeCreate(null),set:new Set};length--;)this.push(values[length])}/** * Checks if `value` is in `cache` mimicking the return signature of * `_.indexOf` by returning `0` if the value is found, else `-1`. * * @private * @param {Object} cache The cache to search. * @param {*} value The value to search for. * @returns {number} Returns `0` if `value` is found, else `-1`. */ function cacheIndexOf(cache,value){var data=cache.data,result="string"==typeof value||isObject(value)?data.set.has(value):data.hash[value];return result?0:-1}/** * Adds `value` to the cache. * * @private * @name push * @memberOf SetCache * @param {*} value The value to cache. */ function cachePush(value){var data=this.data;"string"==typeof value||isObject(value)?data.set.add(value):data.hash[value]=!0}/*------------------------------------------------------------------------*/ /** * Creates a new array joining `array` with `other`. * * @private * @param {Array} array The array to join. * @param {Array} other The other array to join. * @returns {Array} Returns the new concatenated array. */ function arrayConcat(array,other){for(var index=-1,length=array.length,othIndex=-1,othLength=other.length,result=Array(length+othLength);++index<length;)result[index]=array[index];for(;++othIndex<othLength;)result[index++]=other[othIndex];return result}/** * Copies the values of `source` to `array`. * * @private * @param {Array} source The array to copy values from. * @param {Array} [array=[]] The array to copy values to. * @returns {Array} Returns `array`. */ function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));++index<length;)array[index]=source[index];return array}/** * A specialized version of `_.forEach` for arrays without support for callback * shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEach(array,iteratee){for(var index=-1,length=array.length;++index<length&&iteratee(array[index],index,array)!==!1;);return array}/** * A specialized version of `_.forEachRight` for arrays without support for * callback shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEachRight(array,iteratee){for(var length=array.length;length--&&iteratee(array[length],length,array)!==!1;);return array}/** * A specialized version of `_.every` for arrays without support for callback * shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if all elements pass the predicate check, * else `false`. */ function arrayEvery(array,predicate){for(var index=-1,length=array.length;++index<length;)if(!predicate(array[index],index,array))return!1;return!0}/** * A specialized version of `baseExtremum` for arrays which invokes `iteratee` * with one argument: (value). * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {Function} comparator The function used to compare values. * @param {*} exValue The initial extremum value. * @returns {*} Returns the extremum value. */ function arrayExtremum(array,iteratee,comparator,exValue){for(var index=-1,length=array.length,computed=exValue,result=computed;++index<length;){var value=array[index],current=+iteratee(value);comparator(current,computed)&&(computed=current,result=value)}return result}/** * A specialized version of `_.filter` for arrays without support for callback * shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {Array} Returns the new filtered array. */ function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];++index<length;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}/** * A specialized version of `_.map` for arrays without support for callback * shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);++index<length;)result[index]=iteratee(array[index],index,array);return result}/** * Appends the elements of `values` to `array`. * * @private * @param {Array} array The array to modify. * @param {Array} values The values to append. * @returns {Array} Returns `array`. */ function arrayPush(array,values){for(var index=-1,length=values.length,offset=array.length;++index<length;)array[offset+index]=values[index];return array}/** * A specialized version of `_.reduce` for arrays without support for callback * shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. * @param {boolean} [initFromArray] Specify using the first element of `array` * as the initial value. * @returns {*} Returns the accumulated value. */ function arrayReduce(array,iteratee,accumulator,initFromArray){var index=-1,length=array.length;for(initFromArray&&length&&(accumulator=array[++index]);++index<length;)accumulator=iteratee(accumulator,array[index],index,array);return accumulator}/** * A specialized version of `_.reduceRight` for arrays without support for * callback shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. * @param {boolean} [initFromArray] Specify using the last element of `array` * as the initial value. * @returns {*} Returns the accumulated value. */ function arrayReduceRight(array,iteratee,accumulator,initFromArray){var length=array.length;for(initFromArray&&length&&(accumulator=array[--length]);length--;)accumulator=iteratee(accumulator,array[length],length,array);return accumulator}/** * A specialized version of `_.some` for arrays without support for callback * shorthands and `this` binding. * * @private * @param {Array} array The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. */ function arraySome(array,predicate){for(var index=-1,length=array.length;++index<length;)if(predicate(array[index],index,array))return!0;return!1}/** * A specialized version of `_.sum` for arrays without support for callback * shorthands and `this` binding.. * * @private * @param {Array} array The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {number} Returns the sum. */ function arraySum(array,iteratee){for(var length=array.length,result=0;length--;)result+=+iteratee(array[length])||0;return result}/** * Used by `_.defaults` to customize its `_.assign` use. * * @private * @param {*} objectValue The destination object property value. * @param {*} sourceValue The source object property value. * @returns {*} Returns the value to assign to the destination object. */ function assignDefaults(objectValue,sourceValue){return objectValue===undefined?sourceValue:objectValue}/** * Used by `_.template` to customize its `_.assign` use. * * **Note:** This function is like `assignDefaults` except that it ignores * inherited property values when checking if a property is `undefined`. * * @private * @param {*} objectValue The destination object property value. * @param {*} sourceValue The source object property value. * @param {string} key The key associated with the object and source values. * @param {Object} object The destination object. * @returns {*} Returns the value to assign to the destination object. */ function assignOwnDefaults(objectValue,sourceValue,key,object){return objectValue!==undefined&&hasOwnProperty.call(object,key)?objectValue:sourceValue}/** * A specialized version of `_.assign` for customizing assigned values without * support for argument juggling, multiple sources, and `this` binding `customizer` * functions. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {Function} customizer The function to customize assigned values. * @returns {Object} Returns `object`. */ function assignWith(object,source,customizer){for(var index=-1,props=keys(source),length=props.length;++index<length;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}/** * The base implementation of `_.assign` without support for argument juggling, * multiple sources, and `customizer` functions. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @returns {Object} Returns `object`. */ function baseAssign(object,source){return null==source?object:baseCopy(source,keys(source),object)}/** * The base implementation of `_.at` without support for string collections * and individual key arguments. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {number[]|string[]} props The property names or indexes of elements to pick. * @returns {Array} Returns the new array of picked elements. */ function baseAt(collection,props){for(var index=-1,isNil=null==collection,isArr=!isNil&&isArrayLike(collection),length=isArr?collection.length:0,propsLength=props.length,result=Array(propsLength);++index<propsLength;){var key=props[index];isArr?result[index]=isIndex(key,length)?collection[key]:undefined:result[index]=isNil?undefined:collection[key]}return result}/** * Copies properties of `source` to `object`. * * @private * @param {Object} source The object to copy properties from. * @param {Array} props The property names to copy. * @param {Object} [object={}] The object to copy properties to. * @returns {Object} Returns `object`. */ function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index];object[key]=source[key]}return object}/** * The base implementation of `_.callback` which supports specifying the * number of arguments to provide to `func`. * * @private * @param {*} [func=_.identity] The value to convert to a callback. * @param {*} [thisArg] The `this` binding of `func`. * @param {number} [argCount] The number of arguments to provide to `func`. * @returns {Function} Returns the callback. */ function baseCallback(func,thisArg,argCount){var type=typeof func;return"function"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:"object"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}/** * The base implementation of `_.clone` without support for argument juggling * and `this` binding `customizer` functions. * * @private * @param {*} value The value to clone. * @param {boolean} [isDeep] Specify a deep clone. * @param {Function} [customizer] The function to customize cloning values. * @param {string} [key] The key of `value`. * @param {Object} [object] The object `value` belongs to. * @param {Array} [stackA=[]] Tracks traversed source objects. * @param {Array} [stackB=[]] Associates clones with source counterparts. * @returns {*} Returns the cloned value. */ function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag!=objectTag&&tag!=argsTag&&(!isFunc||object))return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return baseAssign(result,value)} // Check for circular references and return its corresponding clone. stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length]; // Add the source value to the stack of traversed objects and associate it with its clone. // Recursively populate clone (susceptible to call stack limits). return stackA.push(value),stackB.push(result),(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)}),result}/** * The base implementation of `_.delay` and `_.defer` which accepts an index * of where to slice the arguments to provide to `func`. * * @private * @param {Function} func The function to delay. * @param {number} wait The number of milliseconds to delay invocation. * @param {Object} args The arguments provide to `func`. * @returns {number} Returns the timer id. */ function baseDelay(func,wait,args){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return setTimeout(function(){func.apply(undefined,args)},wait)}/** * The base implementation of `_.difference` which accepts a single array * of values to exclude. * * @private * @param {Array} array The array to inspect. * @param {Array} values The values to exclude. * @returns {Array} Returns the new array of filtered values. */ function baseDifference(array,values){var length=array?array.length:0,result=[];if(!length)return result;var index=-1,indexOf=getIndexOf(),isCommon=indexOf==baseIndexOf,cache=isCommon&&values.length>=LARGE_ARRAY_SIZE?createCache(values):null,valuesLength=values.length;cache&&(indexOf=cacheIndexOf,isCommon=!1,values=cache);outer:for(;++index<length;){var value=array[index];if(isCommon&&value===value){for(var valuesIndex=valuesLength;valuesIndex--;)if(values[valuesIndex]===value)continue outer;result.push(value)}else indexOf(values,value,0)<0&&result.push(value)}return result}/** * The base implementation of `_.every` without support for callback * shorthands and `this` binding. * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if all elements pass the predicate check, * else `false` */ function baseEvery(collection,predicate){var result=!0;return baseEach(collection,function(value,index,collection){return result=!!predicate(value,index,collection)}),result}/** * Gets the extremum value of `collection` invoking `iteratee` for each value * in `collection` to generate the criterion by which the value is ranked. * The `iteratee` is invoked with three arguments: (value, index|key, collection). * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {Function} comparator The function used to compare values. * @param {*} exValue The initial extremum value. * @returns {*} Returns the extremum value. */ function baseExtremum(collection,iteratee,comparator,exValue){var computed=exValue,result=computed;return baseEach(collection,function(value,index,collection){var current=+iteratee(value,index,collection);(comparator(current,computed)||current===exValue&¤t===result)&&(computed=current,result=value)}),result}/** * The base implementation of `_.fill` without an iteratee call guard. * * @private * @param {Array} array The array to fill. * @param {*} value The value to fill `array` with. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns `array`. */ function baseFill(array,value,start,end){var length=array.length;for(start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end>>>0,start>>>=0;length>start;)array[start++]=value;return array}/** * The base implementation of `_.filter` without support for callback * shorthands and `this` binding. * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {Array} Returns the new filtered array. */ function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}/** * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, * without support for callback shorthands and `this` binding, which iterates * over `collection` using the provided `eachFunc`. * * @private * @param {Array|Object|string} collection The collection to search. * @param {Function} predicate The function invoked per iteration. * @param {Function} eachFunc The function to iterate over `collection`. * @param {boolean} [retKey] Specify returning the key of the found element * instead of the element itself. * @returns {*} Returns the found element or its key, else `undefined`. */ function baseFind(collection,predicate,eachFunc,retKey){var result;return eachFunc(collection,function(value,key,collection){return predicate(value,key,collection)?(result=retKey?key:value,!1):void 0}),result}/** * The base implementation of `_.flatten` with added support for restricting * flattening and specifying the start index. * * @private * @param {Array} array The array to flatten. * @param {boolean} [isDeep] Specify a deep flatten. * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. * @param {Array} [result=[]] The initial result value. * @returns {Array} Returns the new flattened array. */ function baseFlatten(array,isDeep,isStrict,result){result||(result=[]);for(var index=-1,length=array.length;++index<length;){var value=array[index];isObjectLike(value)&&isArrayLike(value)&&(isStrict||isArray(value)||isArguments(value))?isDeep? // Recursively flatten arrays (susceptible to call stack limits). baseFlatten(value,isDeep,isStrict,result):arrayPush(result,value):isStrict||(result[result.length]=value)}return result}/** * The base implementation of `_.forIn` without support for callback * shorthands and `this` binding. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Object} Returns `object`. */ function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}/** * The base implementation of `_.forOwn` without support for callback * shorthands and `this` binding. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Object} Returns `object`. */ function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}/** * The base implementation of `_.forOwnRight` without support for callback * shorthands and `this` binding. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Object} Returns `object`. */ function baseForOwnRight(object,iteratee){return baseForRight(object,iteratee,keys)}/** * The base implementation of `_.functions` which creates an array of * `object` function property names filtered from those provided. * * @private * @param {Object} object The object to inspect. * @param {Array} props The property names to filter. * @returns {Array} Returns the new array of filtered property names. */ function baseFunctions(object,props){for(var index=-1,length=props.length,resIndex=-1,result=[];++index<length;){var key=props[index];isFunction(object[key])&&(result[++resIndex]=key)}return result}/** * The base implementation of `get` without support for string paths * and default values. * * @private * @param {Object} object The object to query. * @param {Array} path The path of the property to get. * @param {string} [pathKey] The key representation of path. * @returns {*} Returns the resolved value. */ function baseGet(object,path,pathKey){if(null!=object){pathKey!==undefined&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=0,length=path.length;null!=object&&length>index;)object=object[path[index++]];return index&&index==length?object:undefined}}/** * The base implementation of `_.isEqual` without support for `this` binding * `customizer` functions. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @param {Function} [customizer] The function to customize comparing values. * @param {boolean} [isLoose] Specify performing partial comparisons. * @param {Array} [stackA] Tracks traversed `value` objects. * @param {Array} [stackB] Tracks traversed `other` objects. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){return value===other?!0:null==value||null==other||!isObject(value)&&!isObjectLike(other)?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}/** * A specialized version of `baseIsEqual` for arrays and objects which performs * deep comparisons and tracks traversed objects enabling objects with circular * references to be compared. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} [customizer] The function to customize comparing objects. * @param {boolean} [isLoose] Specify performing partial comparisons. * @param {Array} [stackA=[]] Tracks traversed `value` objects. * @param {Array} [stackB=[]] Tracks traversed `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped)return equalFunc(objIsWrapped?object.value():object,othIsWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1; // Assume cyclic values are equal. // For more information on detecting circular references see https://es5.github.io/#JO. stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other; // Add `object` and `other` to the stack of traversed objects. stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}/** * The base implementation of `_.isMatch` without support for callback * shorthands and `this` binding. * * @private * @param {Object} object The object to inspect. * @param {Array} matchData The propery names, values, and compare flags to match. * @param {Function} [customizer] The function to customize comparing objects. * @returns {boolean} Returns `true` if `object` is a match, else `false`. */ function baseIsMatch(object,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(null==object)return!length;for(object=toObject(object);index--;){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object))return!1}for(;++index<length;){data=matchData[index];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(objValue===undefined&&!(key in object))return!1}else{var result=customizer?customizer(objValue,srcValue,key):undefined;if(!(result===undefined?baseIsEqual(srcValue,objValue,customizer,!0):result))return!1}}return!0}/** * The base implementation of `_.map` without support for callback shorthands * and `this` binding. * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function baseMap(collection,iteratee){var index=-1,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value,key,collection){result[++index]=iteratee(value,key,collection)}),result}/** * The base implementation of `_.matches` which does not clone `source`. * * @private * @param {Object} source The object of property values to match. * @returns {Function} Returns the new function. */ function baseMatches(source){var matchData=getMatchData(source);if(1==matchData.length&&matchData[0][2]){var key=matchData[0][0],value=matchData[0][1];return function(object){return null==object?!1:object[key]===value&&(value!==undefined||key in toObject(object))}}return function(object){return baseIsMatch(object,matchData)}}/** * The base implementation of `_.matchesProperty` which does not clone `srcValue`. * * @private * @param {string} path The path of the property to get. * @param {*} srcValue The value to compare. * @returns {Function} Returns the new function. */ function baseMatchesProperty(path,srcValue){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(srcValue),pathKey=path+"";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),(isArr||!isCommon)&&!(key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===srcValue?srcValue!==undefined||key in object:baseIsEqual(srcValue,object[key],undefined,!0)}}/** * The base implementation of `_.merge` without support for argument juggling, * multiple sources, and `this` binding `customizer` functions. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {Function} [customizer] The function to customize merged values. * @param {Array} [stackA=[]] Tracks traversed source objects. * @param {Array} [stackB=[]] Associates values with source counterparts. * @returns {Object} Returns `object`. */ function baseMerge(object,source,customizer,stackA,stackB){if(!isObject(object))return object;var isSrcArr=isArrayLike(source)&&(isArray(source)||isTypedArray(source)),props=isSrcArr?undefined:keys(source);return arrayEach(props||source,function(srcValue,key){if(props&&(key=srcValue,srcValue=source[key]),isObjectLike(srcValue))stackA||(stackA=[]),stackB||(stackB=[]),baseMergeDeep(object,source,key,baseMerge,customizer,stackA,stackB);else{var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue),result===undefined&&(!isSrcArr||key in object)||!isCommon&&(result===result?result===value:value!==value)||(object[key]=result)}}),object}/** * A specialized version of `baseMerge` for arrays and objects which performs * deep merges and tracks traversed objects enabling objects with circular * references to be merged. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {string} key The key of the value to merge. * @param {Function} mergeFunc The function to merge values. * @param {Function} [customizer] The function to customize merged values. * @param {Array} [stackA=[]] Tracks traversed source objects. * @param {Array} [stackB=[]] Associates values with source counterparts. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function baseMergeDeep(object,source,key,mergeFunc,customizer,stackA,stackB){for(var length=stackA.length,srcValue=source[key];length--;)if(stackA[length]==srcValue)return void(object[key]=stackB[length]);var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue,isArrayLike(srcValue)&&(isArray(srcValue)||isTypedArray(srcValue))?result=isArray(value)?value:isArrayLike(value)?arrayCopy(value):[]:isPlainObject(srcValue)||isArguments(srcValue)?result=isArguments(value)?toPlainObject(value):isPlainObject(value)?value:{}:isCommon=!1), // Add the source value to the stack of traversed objects and associate // it with its merged value. stackA.push(srcValue),stackB.push(result),isCommon? // Recursively merge objects and arrays (susceptible to call stack limits). object[key]=mergeFunc(result,srcValue,customizer,stackA,stackB):(result===result?result!==value:value===value)&&(object[key]=result)}/** * The base implementation of `_.property` without support for deep paths. * * @private * @param {string} key The key of the property to get. * @returns {Function} Returns the new function. */ function baseProperty(key){return function(object){return null==object?undefined:object[key]}}/** * A specialized version of `baseProperty` which supports deep paths. * * @private * @param {Array|string} path The path of the property to get. * @returns {Function} Returns the new function. */ function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}/** * The base implementation of `_.pullAt` without support for individual * index arguments and capturing the removed elements. * * @private * @param {Array} array The array to modify. * @param {number[]} indexes The indexes of elements to remove. * @returns {Array} Returns `array`. */ function basePullAt(array,indexes){for(var length=array?indexes.length:0;length--;){var index=indexes[length];if(index!=previous&&isIndex(index)){var previous=index;splice.call(array,index,1)}}return array}/** * The base implementation of `_.random` without support for argument juggling * and returning floating-point numbers. * * @private * @param {number} min The minimum possible value. * @param {number} max The maximum possible value. * @returns {number} Returns the random number. */ function baseRandom(min,max){return min+nativeFloor(nativeRandom()*(max-min+1))}/** * The base implementation of `_.reduce` and `_.reduceRight` without support * for callback shorthands and `this` binding, which iterates over `collection` * using the provided `eachFunc`. * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} accumulator The initial value. * @param {boolean} initFromCollection Specify using the first or last element * of `collection` as the initial value. * @param {Function} eachFunc The function to iterate over `collection`. * @returns {*} Returns the accumulated value. */ function baseReduce(collection,iteratee,accumulator,initFromCollection,eachFunc){return eachFunc(collection,function(value,index,collection){accumulator=initFromCollection?(initFromCollection=!1,value):iteratee(accumulator,value,index,collection)}),accumulator}/** * The base implementation of `_.slice` without an iteratee call guard. * * @private * @param {Array} array The array to slice. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the slice of `array`. */ function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);++index<length;)result[index]=array[index+start];return result}/** * The base implementation of `_.some` without support for callback shorthands * and `this` binding. * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. */ function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}/** * The base implementation of `_.sortBy` which uses `comparer` to define * the sort order of `array` and replaces criteria objects with their * corresponding values. * * @private * @param {Array} array The array to sort. * @param {Function} comparer The function to define sort order. * @returns {Array} Returns `array`. */ function baseSortBy(array,comparer){var length=array.length;for(array.sort(comparer);length--;)array[length]=array[length].value;return array}/** * The base implementation of `_.sortByOrder` without param guards. * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. * @param {boolean[]} orders The sort orders of `iteratees`. * @returns {Array} Returns the new sorted array. */ function baseSortByOrder(collection,iteratees,orders){var callback=getCallback(),index=-1;iteratees=arrayMap(iteratees,function(iteratee){return callback(iteratee)});var result=baseMap(collection,function(value){var criteria=arrayMap(iteratees,function(iteratee){return iteratee(value)});return{criteria:criteria,index:++index,value:value}});return baseSortBy(result,function(object,other){return compareMultiple(object,other,orders)})}/** * The base implementation of `_.sum` without support for callback shorthands * and `this` binding. * * @private * @param {Array|Object|string} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {number} Returns the sum. */ function baseSum(collection,iteratee){var result=0;return baseEach(collection,function(value,index,collection){result+=+iteratee(value,index,collection)||0}),result}/** * The base implementation of `_.uniq` without support for callback shorthands * and `this` binding. * * @private * @param {Array} array The array to inspect. * @param {Function} [iteratee] The function invoked per iteration. * @returns {Array} Returns the new duplicate-value-free array. */ function baseUniq(array,iteratee){var index=-1,indexOf=getIndexOf(),length=array.length,isCommon=indexOf==baseIndexOf,isLarge=isCommon&&length>=LARGE_ARRAY_SIZE,seen=isLarge?createCache():null,result=[];seen?(indexOf=cacheIndexOf,isCommon=!1):(isLarge=!1,seen=iteratee?[]:result);outer:for(;++index<length;){var value=array[index],computed=iteratee?iteratee(value,index,array):value;if(isCommon&&value===value){for(var seenIndex=seen.length;seenIndex--;)if(seen[seenIndex]===computed)continue outer;iteratee&&seen.push(computed),result.push(value)}else indexOf(seen,computed,0)<0&&((iteratee||isLarge)&&seen.push(computed),result.push(value))}return result}/** * The base implementation of `_.values` and `_.valuesIn` which creates an * array of `object` property values corresponding to the property names * of `props`. * * @private * @param {Object} object The object to query. * @param {Array} props The property names to get values for. * @returns {Object} Returns the array of property values. */ function baseValues(object,props){for(var index=-1,length=props.length,result=Array(length);++index<length;)result[index]=object[props[index]];return result}/** * The base implementation of `_.dropRightWhile`, `_.dropWhile`, `_.takeRightWhile`, * and `_.takeWhile` without support for callback shorthands and `this` binding. * * @private * @param {Array} array The array to query. * @param {Function} predicate The function invoked per iteration. * @param {boolean} [isDrop] Specify dropping elements instead of taking them. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Array} Returns the slice of `array`. */ function baseWhile(array,predicate,isDrop,fromRight){for(var length=array.length,index=fromRight?length:-1;(fromRight?index--:++index<length)&&predicate(array[index],index,array););return isDrop?baseSlice(array,fromRight?0:index,fromRight?index+1:length):baseSlice(array,fromRight?index+1:0,fromRight?length:index)}/** * The base implementation of `wrapperValue` which returns the result of * performing a sequence of actions on the unwrapped `value`, where each * successive action is supplied the return value of the previous. * * @private * @param {*} value The unwrapped value. * @param {Array} actions Actions to peform to resolve the unwrapped value. * @returns {*} Returns the resolved value. */ function baseWrapperValue(value,actions){var result=value;result instanceof LazyWrapper&&(result=result.value());for(var index=-1,length=actions.length;++index<length;){var action=actions[index];result=action.func.apply(action.thisArg,arrayPush([result],action.args))}return result}/** * Performs a binary search of `array` to determine the index at which `value` * should be inserted into `array` in order to maintain its sort order. * * @private * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @param {boolean} [retHighest] Specify returning the highest qualified index. * @returns {number} Returns the index at which `value` should be inserted * into `array`. */ function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if("number"==typeof value&&value===value&&HALF_MAX_ARRAY_LENGTH>=high){for(;high>low;){var mid=low+high>>>1,computed=array[mid];(retHighest?value>=computed:value>computed)&&null!==computed?low=mid+1:high=mid}return high}return binaryIndexBy(array,value,identity,retHighest)}/** * This function is like `binaryIndex` except that it invokes `iteratee` for * `value` and each element of `array` to compute their sort ranking. The * iteratee is invoked with one argument; (value). * * @private * @param {Array} array The sorted array to inspect. * @param {*} value The value to evaluate. * @param {Function} iteratee The function invoked per iteration. * @param {boolean} [retHighest] Specify returning the highest qualified index. * @returns {number} Returns the index at which `value` should be inserted * into `array`. */ function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsNull=null===value,valIsUndef=value===undefined;high>low;){var mid=nativeFloor((low+high)/2),computed=iteratee(array[mid]),isDef=computed!==undefined,isReflexive=computed===computed;if(valIsNaN)var setLow=isReflexive||retHighest;else setLow=valIsNull?isReflexive&&isDef&&(retHighest||null!=computed):valIsUndef?isReflexive&&(retHighest||isDef):null==computed?!1:retHighest?value>=computed:value>computed;setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}/** * A specialized version of `baseCallback` which only supports `this` binding * and specifying the number of arguments to provide to `func`. * * @private * @param {Function} func The function to bind. * @param {*} thisArg The `this` binding of `func`. * @param {number} [argCount] The number of arguments to provide to `func`. * @returns {Function} Returns the callback. */ function bindCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if(thisArg===undefined)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}/** * Creates a clone of the given array buffer. * * @private * @param {ArrayBuffer} buffer The array buffer to clone. * @returns {ArrayBuffer} Returns the cloned array buffer. */ function bufferClone(buffer){var result=new ArrayBuffer(buffer.byteLength),view=new Uint8Array(result);return view.set(new Uint8Array(buffer)),result}/** * Creates an array that is the composition of partially applied arguments, * placeholders, and provided arguments into a single array of arguments. * * @private * @param {Array|Object} args The provided arguments. * @param {Array} partials The arguments to prepend to those provided. * @param {Array} holders The `partials` placeholder indexes. * @returns {Array} Returns the new array of composed arguments. */ function composeArgs(args,partials,holders){for(var holdersLength=holders.length,argsIndex=-1,argsLength=nativeMax(args.length-holdersLength,0),leftIndex=-1,leftLength=partials.length,result=Array(leftLength+argsLength);++leftIndex<leftLength;)result[leftIndex]=partials[leftIndex];for(;++argsIndex<holdersLength;)result[holders[argsIndex]]=args[argsIndex];for(;argsLength--;)result[leftIndex++]=args[argsIndex++];return result}/** * This function is like `composeArgs` except that the arguments composition * is tailored for `_.partialRight`. * * @private * @param {Array|Object} args The provided arguments. * @param {Array} partials The arguments to append to those provided. * @param {Array} holders The `partials` placeholder indexes. * @returns {Array} Returns the new array of composed arguments. */ function composeArgsRight(args,partials,holders){for(var holdersIndex=-1,holdersLength=holders.length,argsIndex=-1,argsLength=nativeMax(args.length-holdersLength,0),rightIndex=-1,rightLength=partials.length,result=Array(argsLength+rightLength);++argsIndex<argsLength;)result[argsIndex]=args[argsIndex];for(var offset=argsIndex;++rightIndex<rightLength;)result[offset+rightIndex]=partials[rightIndex];for(;++holdersIndex<holdersLength;)result[offset+holders[holdersIndex]]=args[argsIndex++];return result}/** * Creates a `_.countBy`, `_.groupBy`, `_.indexBy`, or `_.partition` function. * * @private * @param {Function} setter The function to set keys and values of the accumulator object. * @param {Function} [initializer] The function to initialize the accumulator object. * @returns {Function} Returns the new aggregator function. */ function createAggregator(setter,initializer){return function(collection,iteratee,thisArg){var result=initializer?initializer():{};if(iteratee=getCallback(iteratee,thisArg,3),isArray(collection))for(var index=-1,length=collection.length;++index<length;){var value=collection[index];setter(result,value,iteratee(value,index,collection),collection)}else baseEach(collection,function(value,key,collection){setter(result,value,iteratee(value,key,collection),collection)});return result}}/** * Creates a `_.assign`, `_.defaults`, or `_.merge` function. * * @private * @param {Function} assigner The function to assign values. * @returns {Function} Returns the new assigner function. */ function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2?sources[length-2]:undefined,guard=length>2?sources[2]:undefined,thisArg=length>1?sources[length-1]:undefined;for("function"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer="function"==typeof thisArg?thisArg:undefined,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?undefined:customizer,length=1);++index<length;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}/** * Creates a `baseEach` or `baseEachRight` function. * * @private * @param {Function} eachFunc The function to iterate over a collection. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:++index<length)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}/** * Creates a base function for `_.forIn` or `_.forInRight`. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:++index<length;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}/** * Creates a function that wraps `func` and invokes it with the `this` * binding of `thisArg`. * * @private * @param {Function} func The function to bind. * @param {*} [thisArg] The `this` binding of `func`. * @returns {Function} Returns the new bound function. */ function createBindWrapper(func,thisArg){function wrapper(){var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return fn.apply(thisArg,arguments)}var Ctor=createCtorWrapper(func);return wrapper}/** * Creates a `Set` cache object to optimize linear searches of large arrays. * * @private * @param {Array} [values] The values to cache. * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. */ function createCache(values){return nativeCreate&&Set?new SetCache(values):null}/** * Creates a function that produces compound words out of the words in a * given string. * * @private * @param {Function} callback The function to combine each word. * @returns {Function} Returns the new compounder function. */ function createCompounder(callback){return function(string){for(var index=-1,array=words(deburr(string)),length=array.length,result="";++index<length;)result=callback(result,array[index],index);return result}}/** * Creates a function that produces an instance of `Ctor` regardless of * whether it was invoked as part of a `new` expression or by `call` or `apply`. * * @private * @param {Function} Ctor The constructor to wrap. * @returns {Function} Returns the new wrapped function. */ function createCtorWrapper(Ctor){return function(){ // Use a `switch` statement to work with class constructors. // See http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist // for more details. var args=arguments;switch(args.length){case 0:return new Ctor;case 1:return new Ctor(args[0]);case 2:return new Ctor(args[0],args[1]);case 3:return new Ctor(args[0],args[1],args[2]);case 4:return new Ctor(args[0],args[1],args[2],args[3]);case 5:return new Ctor(args[0],args[1],args[2],args[3],args[4]);case 6:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5]);case 7:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5],args[6])}var thisBinding=baseCreate(Ctor.prototype),result=Ctor.apply(thisBinding,args); // Mimic the constructor's `return` behavior. // See https://es5.github.io/#x13.2.2 for more details. return isObject(result)?result:thisBinding}}/** * Creates a `_.curry` or `_.curryRight` function. * * @private * @param {boolean} flag The curry bit flag. * @returns {Function} Returns the new curry function. */ function createCurry(flag){function curryFunc(func,arity,guard){guard&&isIterateeCall(func,arity,guard)&&(arity=undefined);var result=createWrapper(func,flag,undefined,undefined,undefined,undefined,undefined,arity);return result.placeholder=curryFunc.placeholder,result}return curryFunc}/** * Creates a `_.defaults` or `_.defaultsDeep` function. * * @private * @param {Function} assigner The function to assign values. * @param {Function} customizer The function to customize assigned values. * @returns {Function} Returns the new defaults function. */ function createDefaults(assigner,customizer){return restParam(function(args){var object=args[0];return null==object?object:(args.push(customizer),assigner.apply(undefined,args))})}/** * Creates a `_.max` or `_.min` function. * * @private * @param {Function} comparator The function used to compare values. * @param {*} exValue The initial extremum value. * @returns {Function} Returns the new extremum function. */ function createExtremum(comparator,exValue){return function(collection,iteratee,thisArg){if(thisArg&&isIterateeCall(collection,iteratee,thisArg)&&(iteratee=undefined),iteratee=getCallback(iteratee,thisArg,3),1==iteratee.length){collection=isArray(collection)?collection:toIterable(collection);var result=arrayExtremum(collection,iteratee,comparator,exValue);if(!collection.length||result!==exValue)return result}return baseExtremum(collection,iteratee,comparator,exValue)}}/** * Creates a `_.find` or `_.findLast` function. * * @private * @param {Function} eachFunc The function to iterate over a collection. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new find function. */ function createFind(eachFunc,fromRight){return function(collection,predicate,thisArg){if(predicate=getCallback(predicate,thisArg,3),isArray(collection)){var index=baseFindIndex(collection,predicate,fromRight);return index>-1?collection[index]:undefined}return baseFind(collection,predicate,eachFunc)}}/** * Creates a `_.findIndex` or `_.findLastIndex` function. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new find function. */ function createFindIndex(fromRight){return function(array,predicate,thisArg){return array&&array.length?(predicate=getCallback(predicate,thisArg,3),baseFindIndex(array,predicate,fromRight)):-1}}/** * Creates a `_.findKey` or `_.findLastKey` function. * * @private * @param {Function} objectFunc The function to iterate over an object. * @returns {Function} Returns the new find function. */ function createFindKey(objectFunc){return function(object,predicate,thisArg){return predicate=getCallback(predicate,thisArg,3),baseFind(object,predicate,objectFunc,!0)}}/** * Creates a `_.flow` or `_.flowRight` function. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new flow function. */ function createFlow(fromRight){return function(){for(var wrapper,length=arguments.length,index=fromRight?length:-1,leftIndex=0,funcs=Array(length);fromRight?index--:++index<length;){var func=funcs[leftIndex++]=arguments[index];if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);!wrapper&&LodashWrapper.prototype.thru&&"wrapper"==getFuncName(func)&&(wrapper=new LodashWrapper([],!0))}for(index=wrapper?-1:length;++index<length;){func=funcs[index];var funcName=getFuncName(func),data="wrapper"==funcName?getData(func):undefined;wrapper=data&&isLaziable(data[0])&&data[1]==(ARY_FLAG|CURRY_FLAG|PARTIAL_FLAG|REARG_FLAG)&&!data[4].length&&1==data[9]?wrapper[getFuncName(data[0])].apply(wrapper,data[3]):1==func.length&&isLaziable(func)?wrapper[funcName]():wrapper.thru(func)}return function(){var args=arguments,value=args[0];if(wrapper&&1==args.length&&isArray(value)&&value.length>=LARGE_ARRAY_SIZE)return wrapper.plant(value).value();for(var index=0,result=length?funcs[index].apply(this,args):value;++index<length;)result=funcs[index].call(this,result);return result}}}/** * Creates a function for `_.forEach` or `_.forEachRight`. * * @private * @param {Function} arrayFunc The function to iterate over an array. * @param {Function} eachFunc The function to iterate over a collection. * @returns {Function} Returns the new each function. */ function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return"function"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}/** * Creates a function for `_.forIn` or `_.forInRight`. * * @private * @param {Function} objectFunc The function to iterate over an object. * @returns {Function} Returns the new each function. */ function createForIn(objectFunc){return function(object,iteratee,thisArg){return("function"!=typeof iteratee||thisArg!==undefined)&&(iteratee=bindCallback(iteratee,thisArg,3)),objectFunc(object,iteratee,keysIn)}}/** * Creates a function for `_.forOwn` or `_.forOwnRight`. * * @private * @param {Function} objectFunc The function to iterate over an object. * @returns {Function} Returns the new each function. */ function createForOwn(objectFunc){return function(object,iteratee,thisArg){return("function"!=typeof iteratee||thisArg!==undefined)&&(iteratee=bindCallback(iteratee,thisArg,3)),objectFunc(object,iteratee)}}/** * Creates a function for `_.mapKeys` or `_.mapValues`. * * @private * @param {boolean} [isMapKeys] Specify mapping keys instead of values. * @returns {Function} Returns the new map function. */ function createObjectMapper(isMapKeys){return function(object,iteratee,thisArg){var result={};return iteratee=getCallback(iteratee,thisArg,3),baseForOwn(object,function(value,key,object){var mapped=iteratee(value,key,object);key=isMapKeys?mapped:key,value=isMapKeys?value:mapped,result[key]=value}),result}}/** * Creates a function for `_.padLeft` or `_.padRight`. * * @private * @param {boolean} [fromRight] Specify padding from the right. * @returns {Function} Returns the new pad function. */ function createPadDir(fromRight){return function(string,length,chars){return string=baseToString(string),(fromRight?string:"")+createPadding(string,length,chars)+(fromRight?"":string)}}/** * Creates a `_.partial` or `_.partialRight` function. * * @private * @param {boolean} flag The partial bit flag. * @returns {Function} Returns the new partial function. */ function createPartial(flag){var partialFunc=restParam(function(func,partials){var holders=replaceHolders(partials,partialFunc.placeholder);return createWrapper(func,flag,undefined,partials,holders)});return partialFunc}/** * Creates a function for `_.reduce` or `_.reduceRight`. * * @private * @param {Function} arrayFunc The function to iterate over an array. * @param {Function} eachFunc The function to iterate over a collection. * @returns {Function} Returns the new each function. */ function createReduce(arrayFunc,eachFunc){return function(collection,iteratee,accumulator,thisArg){var initFromArray=arguments.length<3;return"function"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee,accumulator,initFromArray):baseReduce(collection,getCallback(iteratee,thisArg,4),accumulator,initFromArray,eachFunc)}}/** * Creates a function that wraps `func` and invokes it with optional `this` * binding of, partial application, and currying. * * @private * @param {Function|string} func The function or method name to reference. * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. * @param {*} [thisArg] The `this` binding of `func`. * @param {Array} [partials] The arguments to prepend to those provided to the new function. * @param {Array} [holders] The `partials` placeholder indexes. * @param {Array} [partialsRight] The arguments to append to those provided to the new function. * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. * @param {Array} [argPos] The argument positions of the new function. * @param {number} [ary] The arity cap of `func`. * @param {number} [arity] The arity of `func`. * @returns {Function} Returns the new wrapped function. */ function createHybridWrapper(func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity){function wrapper(){for( // Avoid `arguments` object use disqualifying optimizations by // converting it to an array before providing it to other functions. var length=arguments.length,index=length,args=Array(length);index--;)args[index]=arguments[index];if(partials&&(args=composeArgs(args,partials,holders)),partialsRight&&(args=composeArgsRight(args,partialsRight,holdersRight)),isCurry||isCurryRight){var placeholder=wrapper.placeholder,argsHolders=replaceHolders(args,placeholder);if(length-=argsHolders.length,arity>length){var newArgPos=argPos?arrayCopy(argPos):undefined,newArity=nativeMax(arity-length,0),newsHolders=isCurry?argsHolders:undefined,newHoldersRight=isCurry?undefined:argsHolders,newPartials=isCurry?args:undefined,newPartialsRight=isCurry?undefined:args;bitmask|=isCurry?PARTIAL_FLAG:PARTIAL_RIGHT_FLAG,bitmask&=~(isCurry?PARTIAL_RIGHT_FLAG:PARTIAL_FLAG),isCurryBound||(bitmask&=~(BIND_FLAG|BIND_KEY_FLAG));var newData=[func,bitmask,thisArg,newPartials,newsHolders,newPartialsRight,newHoldersRight,newArgPos,ary,newArity],result=createHybridWrapper.apply(undefined,newData);return isLaziable(func)&&setData(result,newData),result.placeholder=placeholder,result}}var thisBinding=isBind?thisArg:this,fn=isBindKey?thisBinding[func]:func;return argPos&&(args=reorder(args,argPos)),isAry&&ary<args.length&&(args.length=ary),this&&this!==root&&this instanceof wrapper&&(fn=Ctor||createCtorWrapper(func)),fn.apply(thisBinding,args)}var isAry=bitmask&ARY_FLAG,isBind=bitmask&BIND_FLAG,isBindKey=bitmask&BIND_KEY_FLAG,isCurry=bitmask&CURRY_FLAG,isCurryBound=bitmask&CURRY_BOUND_FLAG,isCurryRight=bitmask&CURRY_RIGHT_FLAG,Ctor=isBindKey?undefined:createCtorWrapper(func);return wrapper}/** * Creates the padding required for `string` based on the given `length`. * The `chars` string is truncated if the number of characters exceeds `length`. * * @private * @param {string} string The string to create padding for. * @param {number} [length=0] The padding length. * @param {string} [chars=' '] The string used as padding. * @returns {string} Returns the pad for `string`. */ function createPadding(string,length,chars){var strLength=string.length;if(length=+length,strLength>=length||!nativeIsFinite(length))return"";var padLength=length-strLength;return chars=null==chars?" ":chars+"",repeat(chars,nativeCeil(padLength/chars.length)).slice(0,padLength)}/** * Creates a function that wraps `func` and invokes it with the optional `this` * binding of `thisArg` and the `partials` prepended to those provided to * the wrapper. * * @private * @param {Function} func The function to partially apply arguments to. * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. * @param {*} thisArg The `this` binding of `func`. * @param {Array} partials The arguments to prepend to those provided to the new function. * @returns {Function} Returns the new bound function. */ function createPartialWrapper(func,bitmask,thisArg,partials){function wrapper(){for( // Avoid `arguments` object use disqualifying optimizations by // converting it to an array before providing it `func`. var argsIndex=-1,argsLength=arguments.length,leftIndex=-1,leftLength=partials.length,args=Array(leftLength+argsLength);++leftIndex<leftLength;)args[leftIndex]=partials[leftIndex];for(;argsLength--;)args[leftIndex++]=arguments[++argsIndex];var fn=this&&this!==root&&this instanceof wrapper?Ctor:func;return fn.apply(isBind?thisArg:this,args)}var isBind=bitmask&BIND_FLAG,Ctor=createCtorWrapper(func);return wrapper}/** * Creates a `_.ceil`, `_.floor`, or `_.round` function. * * @private * @param {string} methodName The name of the `Math` method to use when rounding. * @returns {Function} Returns the new round function. */ function createRound(methodName){var func=Math[methodName];return function(number,precision){return precision=precision===undefined?0:+precision||0,precision?(precision=pow(10,precision),func(number*precision)/precision):func(number)}}/** * Creates a `_.sortedIndex` or `_.sortedLastIndex` function. * * @private * @param {boolean} [retHighest] Specify returning the highest qualified index. * @returns {Function} Returns the new index function. */ function createSortedIndex(retHighest){return function(array,value,iteratee,thisArg){var callback=getCallback(iteratee);return null==iteratee&&callback===baseCallback?binaryIndex(array,value,retHighest):binaryIndexBy(array,value,callback(iteratee,thisArg,1),retHighest)}}/** * Creates a function that either curries or invokes `func` with optional * `this` binding and partially applied arguments. * * @private * @param {Function|string} func The function or method name to reference. * @param {number} bitmask The bitmask of flags. * The bitmask may be composed of the following flags: * 1 - `_.bind` * 2 - `_.bindKey` * 4 - `_.curry` or `_.curryRight` of a bound function * 8 - `_.curry` * 16 - `_.curryRight` * 32 - `_.partial` * 64 - `_.partialRight` * 128 - `_.rearg` * 256 - `_.ary` * @param {*} [thisArg] The `this` binding of `func`. * @param {Array} [partials] The arguments to be partially applied. * @param {Array} [holders] The `partials` placeholder indexes. * @param {Array} [argPos] The argument positions of the new function. * @param {number} [ary] The arity cap of `func`. * @param {number} [arity] The arity of `func`. * @returns {Function} Returns the new wrapped function. */ function createWrapper(func,bitmask,thisArg,partials,holders,argPos,ary,arity){var isBindKey=bitmask&BIND_KEY_FLAG;if(!isBindKey&&"function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);var length=partials?partials.length:0;if(length||(bitmask&=~(PARTIAL_FLAG|PARTIAL_RIGHT_FLAG),partials=holders=undefined),length-=holders?holders.length:0,bitmask&PARTIAL_RIGHT_FLAG){var partialsRight=partials,holdersRight=holders;partials=holders=undefined}var data=isBindKey?undefined:getData(func),newData=[func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity];if(data&&(mergeData(newData,data),bitmask=newData[1],arity=newData[9]),newData[9]=null==arity?isBindKey?0:func.length:nativeMax(arity-length,0)||0,bitmask==BIND_FLAG)var result=createBindWrapper(newData[0],newData[2]);else result=bitmask!=PARTIAL_FLAG&&bitmask!=(BIND_FLAG|PARTIAL_FLAG)||newData[4].length?createHybridWrapper.apply(undefined,newData):createPartialWrapper.apply(undefined,newData);var setter=data?baseSetData:setData;return setter(result,newData)}/** * A specialized version of `baseIsEqualDeep` for arrays with support for * partial deep comparisons. * * @private * @param {Array} array The array to compare. * @param {Array} other The other array to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} [customizer] The function to customize comparing arrays. * @param {boolean} [isLoose] Specify performing partial comparisons. * @param {Array} [stackA] Tracks traversed `value` objects. * @param {Array} [stackB] Tracks traversed `other` objects. * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1; // Ignore non-index properties. for(;++index<arrLength;){var arrValue=array[index],othValue=other[index],result=customizer?customizer(isLoose?othValue:arrValue,isLoose?arrValue:othValue,index):undefined;if(result!==undefined){if(result)continue;return!1} // Recursively compare arrays (susceptible to call stack limits). if(isLoose){if(!arraySome(other,function(othValue){return arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}))return!1}else if(arrValue!==othValue&&!equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))return!1}return!0}/** * A specialized version of `baseIsEqualDeep` for comparing objects of * the same `toStringTag`. * * **Note:** This function only supports comparing values with tags of * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {string} tag The `toStringTag` of the objects to compare. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag: // Coerce dates and booleans to numbers, dates to milliseconds and booleans // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag: // Treat `NaN` vs. `NaN` as equal. return object!=+object?other!=+other:object==+other;case regexpTag:case stringTag: // Coerce regexes to strings and treat strings primitives and string // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. return object==other+""}return!1}/** * A specialized version of `baseIsEqualDeep` for objects with support for * partial deep comparisons. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Function} [customizer] The function to customize comparing values. * @param {boolean} [isLoose] Specify performing partial comparisons. * @param {Array} [stackA] Tracks traversed `value` objects. * @param {Array} [stackB] Tracks traversed `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isLoose?key in other:hasOwnProperty.call(other,key)))return!1}for(var skipCtor=isLoose;++index<objLength;){key=objProps[index];var objValue=object[key],othValue=other[key],result=customizer?customizer(isLoose?othValue:objValue,isLoose?objValue:othValue,key):undefined; // Recursively compare objects (susceptible to call stack limits). if(!(result===undefined?equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB):result))return!1;skipCtor||(skipCtor="constructor"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor; // Non `Object` object instances with different constructors are not equal. if(objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}/** * Gets the appropriate "callback" function. If the `_.callback` method is * customized this function returns the custom method, otherwise it returns * the `baseCallback` function. If arguments are provided the chosen function * is invoked with them and its result is returned. * * @private * @returns {Function} Returns the chosen function or its result. */ function getCallback(func,thisArg,argCount){var result=lodash.callback||callback;return result=result===callback?baseCallback:result,argCount?result(func,thisArg,argCount):result}/** * Gets the name of `func`. * * @private * @param {Function} func The function to query. * @returns {string} Returns the function name. */ function getFuncName(func){for(var result=func.name,array=realNames[result],length=array?array.length:0;length--;){var data=array[length],otherFunc=data.func;if(null==otherFunc||otherFunc==func)return data.name}return result}/** * Gets the appropriate "indexOf" function. If the `_.indexOf` method is * customized this function returns the custom method, otherwise it returns * the `baseIndexOf` function. If arguments are provided the chosen function * is invoked with them and its result is returned. * * @private * @returns {Function|number} Returns the chosen function or its result. */ function getIndexOf(collection,target,fromIndex){var result=lodash.indexOf||indexOf;return result=result===indexOf?baseIndexOf:result,collection?result(collection,target,fromIndex):result}/** * Gets the propery names, values, and compare flags of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the match data of `object`. */ function getMatchData(object){for(var result=pairs(object),length=result.length;length--;)result[length][2]=isStrictComparable(result[length][1]);return result}/** * Gets the native function at `key` of `object`. * * @private * @param {Object} object The object to query. * @param {string} key The key of the method to get. * @returns {*} Returns the function if it's native, else `undefined`. */ function getNative(object,key){var value=null==object?undefined:object[key];return isNative(value)?value:undefined}/** * Gets the view, applying any `transforms` to the `start` and `end` positions. * * @private * @param {number} start The start of the view. * @param {number} end The end of the view. * @param {Array} transforms The transformations to apply to the view. * @returns {Object} Returns an object containing the `start` and `end` * positions of the view. */ function getView(start,end,transforms){for(var index=-1,length=transforms.length;++index<length;){var data=transforms[index],size=data.size;switch(data.type){case"drop":start+=size;break;case"dropRight":end-=size;break;case"take":end=nativeMin(end,start+size);break;case"takeRight":start=nativeMax(start,end-size)}}return{start:start,end:end}}/** * Initializes an array clone. * * @private * @param {Array} array The array to clone. * @returns {Array} Returns the initialized clone. */ function initCloneArray(array){var length=array.length,result=new array.constructor(length); // Add array properties assigned by `RegExp#exec`. return length&&"string"==typeof array[0]&&hasOwnProperty.call(array,"index")&&(result.index=array.index,result.input=array.input),result}/** * Initializes an object clone. * * @private * @param {Object} object The object to clone. * @returns {Object} Returns the initialized clone. */ function initCloneObject(object){var Ctor=object.constructor;return"function"==typeof Ctor&&Ctor instanceof Ctor||(Ctor=Object),new Ctor}/** * Initializes an object clone based on its `toStringTag`. * * **Note:** This function only supports cloning values with tags of * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. * * @private * @param {Object} object The object to clone. * @param {string} tag The `toStringTag` of the object to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the initialized clone. */ function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}/** * Invokes the method at `path` on `object`. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path of the method to invoke. * @param {Array} args The arguments to invoke the method with. * @returns {*} Returns the result of the invoked method. */ function invokePath(object,path,args){null==object||isKey(path,object)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),path=last(path));var func=null==object?object:object[path];return null==func?undefined:func.apply(object,args)}/** * Checks if `value` is array-like. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. */ function isArrayLike(value){return null!=value&&isLength(getLength(value))}/** * Checks if `value` is a valid array-like index. * * @private * @param {*} value The value to check. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&length>value}/** * Checks if the provided arguments are from an iteratee call. * * @private * @param {*} value The potential iteratee value argument. * @param {*} index The potential iteratee index or key argument. * @param {*} object The potential iteratee object argument. * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. */ function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if("number"==type?isArrayLike(object)&&isIndex(index,object.length):"string"==type&&index in object){var other=object[index];return value===value?value===other:other!==other}return!1}/** * Checks if `value` is a property name and not a property path. * * @private * @param {*} value The value to check. * @param {Object} [object] The object to query keys on. * @returns {boolean} Returns `true` if `value` is a property name, else `false`. */ function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}/** * Checks if `func` has a lazy counterpart. * * @private * @param {Function} func The function to check. * @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`. */ function isLaziable(func){var funcName=getFuncName(func);if(!(funcName in LazyWrapper.prototype))return!1;var other=lodash[funcName];if(func===other)return!0;var data=getData(other);return!!data&&func===data[0]}/** * Checks if `value` is a valid array-like length. * * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. */ function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&MAX_SAFE_INTEGER>=value}/** * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` if suitable for strict * equality comparisons, else `false`. */ function isStrictComparable(value){return value===value&&!isObject(value)}/** * Merges the function metadata of `source` into `data`. * * Merging metadata reduces the number of wrappers required to invoke a function. * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` * may be applied regardless of execution order. Methods like `_.ary` and `_.rearg` * augment function arguments, making the order in which they are executed important, * preventing the merging of metadata. However, we make an exception for a safe * common case where curried functions have `_.ary` and or `_.rearg` applied. * * @private * @param {Array} data The destination metadata. * @param {Array} source The source metadata. * @returns {Array} Returns `data`. */ function mergeData(data,source){var bitmask=data[1],srcBitmask=source[1],newBitmask=bitmask|srcBitmask,isCommon=ARY_FLAG>newBitmask,isCombo=srcBitmask==ARY_FLAG&&bitmask==CURRY_FLAG||srcBitmask==ARY_FLAG&&bitmask==REARG_FLAG&&data[7].length<=source[8]||srcBitmask==(ARY_FLAG|REARG_FLAG)&&bitmask==CURRY_FLAG; // Exit early if metadata can't be merged. if(!isCommon&&!isCombo)return data; // Use source `thisArg` if available. srcBitmask&BIND_FLAG&&(data[2]=source[2], // Set when currying a bound function. newBitmask|=bitmask&BIND_FLAG?0:CURRY_BOUND_FLAG); // Compose partial arguments. var value=source[3];if(value){var partials=data[3];data[3]=partials?composeArgs(partials,value,source[4]):arrayCopy(value),data[4]=partials?replaceHolders(data[3],PLACEHOLDER):arrayCopy(source[4])} // Compose partial right arguments. // Use source `argPos` if available. // Use source `ary` if it's smaller. // Use source `arity` if one is not provided. // Use source `func` and merge bitmasks. return value=source[5],value&&(partials=data[5],data[5]=partials?composeArgsRight(partials,value,source[6]):arrayCopy(value),data[6]=partials?replaceHolders(data[5],PLACEHOLDER):arrayCopy(source[6])),value=source[7],value&&(data[7]=arrayCopy(value)),srcBitmask&ARY_FLAG&&(data[8]=null==data[8]?source[8]:nativeMin(data[8],source[8])),null==data[9]&&(data[9]=source[9]),data[0]=source[0],data[1]=newBitmask,data}/** * Used by `_.defaultsDeep` to customize its `_.merge` use. * * @private * @param {*} objectValue The destination object property value. * @param {*} sourceValue The source object property value. * @returns {*} Returns the value to assign to the destination object. */ function mergeDefaults(objectValue,sourceValue){return objectValue===undefined?sourceValue:merge(objectValue,sourceValue,mergeDefaults)}/** * A specialized version of `_.pick` which picks `object` properties specified * by `props`. * * @private * @param {Object} object The source object. * @param {string[]} props The property names to pick. * @returns {Object} Returns the new object. */ function pickByArray(object,props){object=toObject(object);for(var index=-1,length=props.length,result={};++index<length;){var key=props[index];key in object&&(result[key]=object[key])}return result}/** * A specialized version of `_.pick` which picks `object` properties `predicate` * returns truthy for. * * @private * @param {Object} object The source object. * @param {Function} predicate The function invoked per iteration. * @returns {Object} Returns the new object. */ function pickByCallback(object,predicate){var result={};return baseForIn(object,function(value,key,object){predicate(value,key,object)&&(result[key]=value)}),result}/** * Reorder `array` according to the specified indexes where the element at * the first index is assigned as the first element, the element at * the second index is assigned as the second element, and so on. * * @private * @param {Array} array The array to reorder. * @param {Array} indexes The arranged array indexes. * @returns {Array} Returns `array`. */ function reorder(array,indexes){for(var arrLength=array.length,length=nativeMin(indexes.length,arrLength),oldArray=arrayCopy(array);length--;){var index=indexes[length];array[length]=isIndex(index,arrLength)?oldArray[index]:undefined}return array}/** * A fallback implementation of `Object.keys` which creates an array of the * own enumerable property names of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,allowIndexes=!!length&&isLength(length)&&(isArray(object)||isArguments(object)),index=-1,result=[];++index<propsLength;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}/** * Converts `value` to an array-like object if it's not one. * * @private * @param {*} value The value to process. * @returns {Array|Object} Returns the array-like object. */ function toIterable(value){return null==value?[]:isArrayLike(value)?isObject(value)?value:Object(value):values(value)}/** * Converts `value` to an object if it's not one. * * @private * @param {*} value The value to process. * @returns {Object} Returns the object. */ function toObject(value){return isObject(value)?value:Object(value)}/** * Converts `value` to property path array if it's not one. * * @private * @param {*} value The value to process. * @returns {Array} Returns the property path array. */ function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}/** * Creates a clone of `wrapper`. * * @private * @param {Object} wrapper The wrapper to clone. * @returns {Object} Returns the cloned wrapper. */ function wrapperClone(wrapper){return wrapper instanceof LazyWrapper?wrapper.clone():new LodashWrapper(wrapper.__wrapped__,wrapper.__chain__,arrayCopy(wrapper.__actions__))}/*------------------------------------------------------------------------*/ /** * Creates an array of elements split into groups the length of `size`. * If `collection` can't be split evenly, the final chunk will be the remaining * elements. * * @static * @memberOf _ * @category Array * @param {Array} array The array to process. * @param {number} [size=1] The length of each chunk. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Array} Returns the new array containing chunks. * @example * * _.chunk(['a', 'b', 'c', 'd'], 2); * // => [['a', 'b'], ['c', 'd']] * * _.chunk(['a', 'b', 'c', 'd'], 3); * // => [['a', 'b', 'c'], ['d']] */ function chunk(array,size,guard){size=(guard?isIterateeCall(array,size,guard):null==size)?1:nativeMax(nativeFloor(size)||1,1);for(var index=0,length=array?array.length:0,resIndex=-1,result=Array(nativeCeil(length/size));length>index;)result[++resIndex]=baseSlice(array,index,index+=size);return result}/** * Creates an array with all falsey values removed. The values `false`, `null`, * `0`, `""`, `undefined`, and `NaN` are falsey. * * @static * @memberOf _ * @category Array * @param {Array} array The array to compact. * @returns {Array} Returns the new array of filtered values. * @example * * _.compact([0, 1, false, 2, '', 3]); * // => [1, 2, 3] */ function compact(array){for(var index=-1,length=array?array.length:0,resIndex=-1,result=[];++index<length;){var value=array[index];value&&(result[++resIndex]=value)}return result}/** * Creates a slice of `array` with `n` elements dropped from the beginning. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to drop. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.drop([1, 2, 3]); * // => [2, 3] * * _.drop([1, 2, 3], 2); * // => [3] * * _.drop([1, 2, 3], 5); * // => [] * * _.drop([1, 2, 3], 0); * // => [1, 2, 3] */ function drop(array,n,guard){var length=array?array.length:0;return length?((guard?isIterateeCall(array,n,guard):null==n)&&(n=1),baseSlice(array,0>n?0:n)):[]}/** * Creates a slice of `array` with `n` elements dropped from the end. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to drop. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.dropRight([1, 2, 3]); * // => [1, 2] * * _.dropRight([1, 2, 3], 2); * // => [1] * * _.dropRight([1, 2, 3], 5); * // => [] * * _.dropRight([1, 2, 3], 0); * // => [1, 2, 3] */ function dropRight(array,n,guard){var length=array?array.length:0;return length?((guard?isIterateeCall(array,n,guard):null==n)&&(n=1),n=length-(+n||0),baseSlice(array,0,0>n?0:n)):[]}/** * Creates a slice of `array` excluding elements dropped from the end. * Elements are dropped until `predicate` returns falsey. The predicate is * bound to `thisArg` and invoked with three arguments: (value, index, array). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that match the properties of the given * object, else `false`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {Array} Returns the slice of `array`. * @example * * _.dropRightWhile([1, 2, 3], function(n) { * return n > 1; * }); * // => [1] * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': false } * ]; * * // using the `_.matches` callback shorthand * _.pluck(_.dropRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user'); * // => ['barney', 'fred'] * * // using the `_.matchesProperty` callback shorthand * _.pluck(_.dropRightWhile(users, 'active', false), 'user'); * // => ['barney'] * * // using the `_.property` callback shorthand * _.pluck(_.dropRightWhile(users, 'active'), 'user'); * // => ['barney', 'fred', 'pebbles'] */ function dropRightWhile(array,predicate,thisArg){return array&&array.length?baseWhile(array,getCallback(predicate,thisArg,3),!0,!0):[]}/** * Creates a slice of `array` excluding elements dropped from the beginning. * Elements are dropped until `predicate` returns falsey. The predicate is * bound to `thisArg` and invoked with three arguments: (value, index, array). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {Array} Returns the slice of `array`. * @example * * _.dropWhile([1, 2, 3], function(n) { * return n < 3; * }); * // => [3] * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': true } * ]; * * // using the `_.matches` callback shorthand * _.pluck(_.dropWhile(users, { 'user': 'barney', 'active': false }), 'user'); * // => ['fred', 'pebbles'] * * // using the `_.matchesProperty` callback shorthand * _.pluck(_.dropWhile(users, 'active', false), 'user'); * // => ['pebbles'] * * // using the `_.property` callback shorthand * _.pluck(_.dropWhile(users, 'active'), 'user'); * // => ['barney', 'fred', 'pebbles'] */ function dropWhile(array,predicate,thisArg){return array&&array.length?baseWhile(array,getCallback(predicate,thisArg,3),!0):[]}/** * Fills elements of `array` with `value` from `start` up to, but not * including, `end`. * * **Note:** This method mutates `array`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to fill. * @param {*} value The value to fill `array` with. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns `array`. * @example * * var array = [1, 2, 3]; * * _.fill(array, 'a'); * console.log(array); * // => ['a', 'a', 'a'] * * _.fill(Array(3), 2); * // => [2, 2, 2] * * _.fill([4, 6, 8], '*', 1, 2); * // => [4, '*', 8] */ function fill(array,value,start,end){var length=array?array.length:0;return length?(start&&"number"!=typeof start&&isIterateeCall(array,value,start)&&(start=0,end=length),baseFill(array,value,start,end)):[]}/** * Gets the first element of `array`. * * @static * @memberOf _ * @alias head * @category Array * @param {Array} array The array to query. * @returns {*} Returns the first element of `array`. * @example * * _.first([1, 2, 3]); * // => 1 * * _.first([]); * // => undefined */ function first(array){return array?array[0]:undefined}/** * Flattens a nested array. If `isDeep` is `true` the array is recursively * flattened, otherwise it is only flattened a single level. * * @static * @memberOf _ * @category Array * @param {Array} array The array to flatten. * @param {boolean} [isDeep] Specify a deep flatten. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Array} Returns the new flattened array. * @example * * _.flatten([1, [2, 3, [4]]]); * // => [1, 2, 3, [4]] * * // using `isDeep` * _.flatten([1, [2, 3, [4]]], true); * // => [1, 2, 3, 4] */ function flatten(array,isDeep,guard){var length=array?array.length:0;return guard&&isIterateeCall(array,isDeep,guard)&&(isDeep=!1),length?baseFlatten(array,isDeep):[]}/** * Recursively flattens a nested array. * * @static * @memberOf _ * @category Array * @param {Array} array The array to recursively flatten. * @returns {Array} Returns the new flattened array. * @example * * _.flattenDeep([1, [2, 3, [4]]]); * // => [1, 2, 3, 4] */ function flattenDeep(array){var length=array?array.length:0;return length?baseFlatten(array,!0):[]}/** * Gets the index at which the first occurrence of `value` is found in `array` * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) * for equality comparisons. If `fromIndex` is negative, it is used as the offset * from the end of `array`. If `array` is sorted providing `true` for `fromIndex` * performs a faster binary search. * * @static * @memberOf _ * @category Array * @param {Array} array The array to search. * @param {*} value The value to search for. * @param {boolean|number} [fromIndex=0] The index to search from or `true` * to perform a binary search on a sorted array. * @returns {number} Returns the index of the matched value, else `-1`. * @example * * _.indexOf([1, 2, 1, 2], 2); * // => 1 * * // using `fromIndex` * _.indexOf([1, 2, 1, 2], 2, 2); * // => 3 * * // performing a binary search * _.indexOf([1, 1, 2, 2], 2, true); * // => 2 */ function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;if("number"==typeof fromIndex)fromIndex=0>fromIndex?nativeMax(length+fromIndex,0):fromIndex;else if(fromIndex){var index=binaryIndex(array,value);return length>index&&(value===value?value===array[index]:array[index]!==array[index])?index:-1}return baseIndexOf(array,value,fromIndex||0)}/** * Gets all but the last element of `array`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @returns {Array} Returns the slice of `array`. * @example * * _.initial([1, 2, 3]); * // => [1, 2] */ function initial(array){return dropRight(array,1)}/** * Gets the last element of `array`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @returns {*} Returns the last element of `array`. * @example * * _.last([1, 2, 3]); * // => 3 */ function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}/** * This method is like `_.indexOf` except that it iterates over elements of * `array` from right to left. * * @static * @memberOf _ * @category Array * @param {Array} array The array to search. * @param {*} value The value to search for. * @param {boolean|number} [fromIndex=array.length-1] The index to search from * or `true` to perform a binary search on a sorted array. * @returns {number} Returns the index of the matched value, else `-1`. * @example * * _.lastIndexOf([1, 2, 1, 2], 2); * // => 3 * * // using `fromIndex` * _.lastIndexOf([1, 2, 1, 2], 2, 2); * // => 1 * * // performing a binary search * _.lastIndexOf([1, 1, 2, 2], 2, true); * // => 3 */ function lastIndexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;var index=length;if("number"==typeof fromIndex)index=(0>fromIndex?nativeMax(length+fromIndex,0):nativeMin(fromIndex||0,length-1))+1;else if(fromIndex){index=binaryIndex(array,value,!0)-1;var other=array[index];return(value===value?value===other:other!==other)?index:-1}if(value!==value)return indexOfNaN(array,index,!0);for(;index--;)if(array[index]===value)return index;return-1}/** * Removes all provided values from `array` using * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) * for equality comparisons. * * **Note:** Unlike `_.without`, this method mutates `array`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to modify. * @param {...*} [values] The values to remove. * @returns {Array} Returns `array`. * @example * * var array = [1, 2, 3, 1, 2, 3]; * * _.pull(array, 2, 3); * console.log(array); * // => [1, 1] */ function pull(){var args=arguments,array=args[0];if(!array||!array.length)return array;for(var index=0,indexOf=getIndexOf(),length=args.length;++index<length;)for(var fromIndex=0,value=args[index];(fromIndex=indexOf(array,value,fromIndex))>-1;)splice.call(array,fromIndex,1);return array}/** * Removes all elements from `array` that `predicate` returns truthy for * and returns an array of the removed elements. The predicate is bound to * `thisArg` and invoked with three arguments: (value, index, array). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * **Note:** Unlike `_.filter`, this method mutates `array`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to modify. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {Array} Returns the new array of removed elements. * @example * * var array = [1, 2, 3, 4]; * var evens = _.remove(array, function(n) { * return n % 2 == 0; * }); * * console.log(array); * // => [1, 3] * * console.log(evens); * // => [2, 4] */ function remove(array,predicate,thisArg){var result=[];if(!array||!array.length)return result;var index=-1,indexes=[],length=array.length;for(predicate=getCallback(predicate,thisArg,3);++index<length;){var value=array[index];predicate(value,index,array)&&(result.push(value),indexes.push(index))}return basePullAt(array,indexes),result}/** * Gets all but the first element of `array`. * * @static * @memberOf _ * @alias tail * @category Array * @param {Array} array The array to query. * @returns {Array} Returns the slice of `array`. * @example * * _.rest([1, 2, 3]); * // => [2, 3] */ function rest(array){return drop(array,1)}/** * Creates a slice of `array` from `start` up to, but not including, `end`. * * **Note:** This method is used instead of `Array#slice` to support node * lists in IE < 9 and to ensure dense arrays are returned. * * @static * @memberOf _ * @category Array * @param {Array} array The array to slice. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the slice of `array`. */ function slice(array,start,end){var length=array?array.length:0;return length?(end&&"number"!=typeof end&&isIterateeCall(array,start,end)&&(start=0,end=length),baseSlice(array,start,end)):[]}/** * Creates a slice of `array` with `n` elements taken from the beginning. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to take. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.take([1, 2, 3]); * // => [1] * * _.take([1, 2, 3], 2); * // => [1, 2] * * _.take([1, 2, 3], 5); * // => [1, 2, 3] * * _.take([1, 2, 3], 0); * // => [] */ function take(array,n,guard){var length=array?array.length:0;return length?((guard?isIterateeCall(array,n,guard):null==n)&&(n=1),baseSlice(array,0,0>n?0:n)):[]}/** * Creates a slice of `array` with `n` elements taken from the end. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {number} [n=1] The number of elements to take. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Array} Returns the slice of `array`. * @example * * _.takeRight([1, 2, 3]); * // => [3] * * _.takeRight([1, 2, 3], 2); * // => [2, 3] * * _.takeRight([1, 2, 3], 5); * // => [1, 2, 3] * * _.takeRight([1, 2, 3], 0); * // => [] */ function takeRight(array,n,guard){var length=array?array.length:0;return length?((guard?isIterateeCall(array,n,guard):null==n)&&(n=1),n=length-(+n||0),baseSlice(array,0>n?0:n)):[]}/** * Creates a slice of `array` with elements taken from the end. Elements are * taken until `predicate` returns falsey. The predicate is bound to `thisArg` * and invoked with three arguments: (value, index, array). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {Array} Returns the slice of `array`. * @example * * _.takeRightWhile([1, 2, 3], function(n) { * return n > 1; * }); * // => [2, 3] * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': false } * ]; * * // using the `_.matches` callback shorthand * _.pluck(_.takeRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user'); * // => ['pebbles'] * * // using the `_.matchesProperty` callback shorthand * _.pluck(_.takeRightWhile(users, 'active', false), 'user'); * // => ['fred', 'pebbles'] * * // using the `_.property` callback shorthand * _.pluck(_.takeRightWhile(users, 'active'), 'user'); * // => [] */ function takeRightWhile(array,predicate,thisArg){return array&&array.length?baseWhile(array,getCallback(predicate,thisArg,3),!1,!0):[]}/** * Creates a slice of `array` with elements taken from the beginning. Elements * are taken until `predicate` returns falsey. The predicate is bound to * `thisArg` and invoked with three arguments: (value, index, array). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @category Array * @param {Array} array The array to query. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {Array} Returns the slice of `array`. * @example * * _.takeWhile([1, 2, 3], function(n) { * return n < 3; * }); * // => [1, 2] * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false}, * { 'user': 'pebbles', 'active': true } * ]; * * // using the `_.matches` callback shorthand * _.pluck(_.takeWhile(users, { 'user': 'barney', 'active': false }), 'user'); * // => ['barney'] * * // using the `_.matchesProperty` callback shorthand * _.pluck(_.takeWhile(users, 'active', false), 'user'); * // => ['barney', 'fred'] * * // using the `_.property` callback shorthand * _.pluck(_.takeWhile(users, 'active'), 'user'); * // => [] */ function takeWhile(array,predicate,thisArg){return array&&array.length?baseWhile(array,getCallback(predicate,thisArg,3)):[]}/** * Creates a duplicate-free version of an array, using * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) * for equality comparisons, in which only the first occurence of each element * is kept. Providing `true` for `isSorted` performs a faster search algorithm * for sorted arrays. If an iteratee function is provided it is invoked for * each element in the array to generate the criterion by which uniqueness * is computed. The `iteratee` is bound to `thisArg` and invoked with three * arguments: (value, index, array). * * If a property name is provided for `iteratee` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `iteratee` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @alias unique * @category Array * @param {Array} array The array to inspect. * @param {boolean} [isSorted] Specify the array is sorted. * @param {Function|Object|string} [iteratee] The function invoked per iteration. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {Array} Returns the new duplicate-value-free array. * @example * * _.uniq([2, 1, 2]); * // => [2, 1] * * // using `isSorted` * _.uniq([1, 1, 2], true); * // => [1, 2] * * // using an iteratee function * _.uniq([1, 2.5, 1.5, 2], function(n) { * return this.floor(n); * }, Math); * // => [1, 2.5] * * // using the `_.property` callback shorthand * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); * // => [{ 'x': 1 }, { 'x': 2 }] */ function uniq(array,isSorted,iteratee,thisArg){var length=array?array.length:0;if(!length)return[];null!=isSorted&&"boolean"!=typeof isSorted&&(thisArg=iteratee,iteratee=isIterateeCall(array,isSorted,thisArg)?undefined:isSorted,isSorted=!1);var callback=getCallback();return(null!=iteratee||callback!==baseCallback)&&(iteratee=callback(iteratee,thisArg,3)),isSorted&&getIndexOf()==baseIndexOf?sortedUniq(array,iteratee):baseUniq(array,iteratee)}/** * This method is like `_.zip` except that it accepts an array of grouped * elements and creates an array regrouping the elements to their pre-zip * configuration. * * @static * @memberOf _ * @category Array * @param {Array} array The array of grouped elements to process. * @returns {Array} Returns the new array of regrouped elements. * @example * * var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]); * // => [['fred', 30, true], ['barney', 40, false]] * * _.unzip(zipped); * // => [['fred', 'barney'], [30, 40], [true, false]] */ function unzip(array){if(!array||!array.length)return[];var index=-1,length=0;array=arrayFilter(array,function(group){return isArrayLike(group)?(length=nativeMax(group.length,length),!0):void 0});for(var result=Array(length);++index<length;)result[index]=arrayMap(array,baseProperty(index));return result}/** * This method is like `_.unzip` except that it accepts an iteratee to specify * how regrouped values should be combined. The `iteratee` is bound to `thisArg` * and invoked with four arguments: (accumulator, value, index, group). * * @static * @memberOf _ * @category Array * @param {Array} array The array of grouped elements to process. * @param {Function} [iteratee] The function to combine regrouped values. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {Array} Returns the new array of regrouped elements. * @example * * var zipped = _.zip([1, 2], [10, 20], [100, 200]); * // => [[1, 10, 100], [2, 20, 200]] * * _.unzipWith(zipped, _.add); * // => [3, 30, 300] */ function unzipWith(array,iteratee,thisArg){var length=array?array.length:0;if(!length)return[];var result=unzip(array);return null==iteratee?result:(iteratee=bindCallback(iteratee,thisArg,4),arrayMap(result,function(group){return arrayReduce(group,iteratee,undefined,!0)}))}/** * Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) * of the provided arrays. * * @static * @memberOf _ * @category Array * @param {...Array} [arrays] The arrays to inspect. * @returns {Array} Returns the new array of values. * @example * * _.xor([1, 2], [4, 2]); * // => [1, 4] */ function xor(){for(var index=-1,length=arguments.length;++index<length;){var array=arguments[index];if(isArrayLike(array))var result=result?arrayPush(baseDifference(result,array),baseDifference(array,result)):array}return result?baseUniq(result):[]}/** * The inverse of `_.pairs`; this method returns an object composed from arrays * of property names and values. Provide either a single two dimensional array, * e.g. `[[key1, value1], [key2, value2]]` or two arrays, one of property names * and one of corresponding values. * * @static * @memberOf _ * @alias object * @category Array * @param {Array} props The property names. * @param {Array} [values=[]] The property values. * @returns {Object} Returns the new object. * @example * * _.zipObject([['fred', 30], ['barney', 40]]); * // => { 'fred': 30, 'barney': 40 } * * _.zipObject(['fred', 'barney'], [30, 40]); * // => { 'fred': 30, 'barney': 40 } */ function zipObject(props,values){var index=-1,length=props?props.length:0,result={};for(!length||values||isArray(props[0])||(values=[]);++index<length;){var key=props[index];values?result[key]=values[index]:key&&(result[key[0]]=key[1])}return result}/*------------------------------------------------------------------------*/ /** * Creates a `lodash` object that wraps `value` with explicit method * chaining enabled. * * @static * @memberOf _ * @category Chain * @param {*} value The value to wrap. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var users = [ * { 'user': 'barney', 'age': 36 }, * { 'user': 'fred', 'age': 40 }, * { 'user': 'pebbles', 'age': 1 } * ]; * * var youngest = _.chain(users) * .sortBy('age') * .map(function(chr) { * return chr.user + ' is ' + chr.age; * }) * .first() * .value(); * // => 'pebbles is 1' */ function chain(value){var result=lodash(value);return result.__chain__=!0,result}/** * This method invokes `interceptor` and returns `value`. The interceptor is * bound to `thisArg` and invoked with one argument; (value). The purpose of * this method is to "tap into" a method chain in order to perform operations * on intermediate results within the chain. * * @static * @memberOf _ * @category Chain * @param {*} value The value to provide to `interceptor`. * @param {Function} interceptor The function to invoke. * @param {*} [thisArg] The `this` binding of `interceptor`. * @returns {*} Returns `value`. * @example * * _([1, 2, 3]) * .tap(function(array) { * array.pop(); * }) * .reverse() * .value(); * // => [2, 1] */ function tap(value,interceptor,thisArg){return interceptor.call(thisArg,value),value}/** * This method is like `_.tap` except that it returns the result of `interceptor`. * * @static * @memberOf _ * @category Chain * @param {*} value The value to provide to `interceptor`. * @param {Function} interceptor The function to invoke. * @param {*} [thisArg] The `this` binding of `interceptor`. * @returns {*} Returns the result of `interceptor`. * @example * * _(' abc ') * .chain() * .trim() * .thru(function(value) { * return [value]; * }) * .value(); * // => ['abc'] */ function thru(value,interceptor,thisArg){return interceptor.call(thisArg,value)}/** * Enables explicit method chaining on the wrapper object. * * @name chain * @memberOf _ * @category Chain * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var users = [ * { 'user': 'barney', 'age': 36 }, * { 'user': 'fred', 'age': 40 } * ]; * * // without explicit chaining * _(users).first(); * // => { 'user': 'barney', 'age': 36 } * * // with explicit chaining * _(users).chain() * .first() * .pick('user') * .value(); * // => { 'user': 'barney' } */ function wrapperChain(){return chain(this)}/** * Executes the chained sequence and returns the wrapped result. * * @name commit * @memberOf _ * @category Chain * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var array = [1, 2]; * var wrapped = _(array).push(3); * * console.log(array); * // => [1, 2] * * wrapped = wrapped.commit(); * console.log(array); * // => [1, 2, 3] * * wrapped.last(); * // => 3 * * console.log(array); * // => [1, 2, 3] */ function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__)}/** * Creates a clone of the chained sequence planting `value` as the wrapped value. * * @name plant * @memberOf _ * @category Chain * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var array = [1, 2]; * var wrapped = _(array).map(function(value) { * return Math.pow(value, 2); * }); * * var other = [3, 4]; * var otherWrapped = wrapped.plant(other); * * otherWrapped.value(); * // => [9, 16] * * wrapped.value(); * // => [1, 4] */ function wrapperPlant(value){for(var result,parent=this;parent instanceof baseLodash;){var clone=wrapperClone(parent);result?previous.__wrapped__=clone:result=clone;var previous=clone;parent=parent.__wrapped__}return previous.__wrapped__=value,result}/** * Reverses the wrapped array so the first element becomes the last, the * second element becomes the second to last, and so on. * * **Note:** This method mutates the wrapped array. * * @name reverse * @memberOf _ * @category Chain * @returns {Object} Returns the new reversed `lodash` wrapper instance. * @example * * var array = [1, 2, 3]; * * _(array).reverse().value() * // => [3, 2, 1] * * console.log(array); * // => [3, 2, 1] */ function wrapperReverse(){var value=this.__wrapped__,interceptor=function(value){return wrapped&&wrapped.__dir__<0?value:value.reverse()};if(value instanceof LazyWrapper){var wrapped=value;return this.__actions__.length&&(wrapped=new LazyWrapper(this)),wrapped=wrapped.reverse(),wrapped.__actions__.push({func:thru,args:[interceptor],thisArg:undefined}),new LodashWrapper(wrapped,this.__chain__)}return this.thru(interceptor)}/** * Produces the result of coercing the unwrapped value to a string. * * @name toString * @memberOf _ * @category Chain * @returns {string} Returns the coerced string value. * @example * * _([1, 2, 3]).toString(); * // => '1,2,3' */ function wrapperToString(){return this.value()+""}/** * Executes the chained sequence to extract the unwrapped value. * * @name value * @memberOf _ * @alias run, toJSON, valueOf * @category Chain * @returns {*} Returns the resolved unwrapped value. * @example * * _([1, 2, 3]).value(); * // => [1, 2, 3] */ function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)}/** * Checks if `predicate` returns truthy for **all** elements of `collection`. * The predicate is bound to `thisArg` and invoked with three arguments: * (value, index|key, collection). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @alias all * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {boolean} Returns `true` if all elements pass the predicate check, * else `false`. * @example * * _.every([true, 1, null, 'yes'], Boolean); * // => false * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false } * ]; * * // using the `_.matches` callback shorthand * _.every(users, { 'user': 'barney', 'active': false }); * // => false * * // using the `_.matchesProperty` callback shorthand * _.every(users, 'active', false); * // => true * * // using the `_.property` callback shorthand * _.every(users, 'active'); * // => false */ function every(collection,predicate,thisArg){var func=isArray(collection)?arrayEvery:baseEvery;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=undefined),("function"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}/** * Iterates over elements of `collection`, returning an array of all elements * `predicate` returns truthy for. The predicate is bound to `thisArg` and * invoked with three arguments: (value, index|key, collection). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @alias select * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {Array} Returns the new filtered array. * @example * * _.filter([4, 5, 6], function(n) { * return n % 2 == 0; * }); * // => [4, 6] * * var users = [ * { 'user': 'barney', 'age': 36, 'active': true }, * { 'user': 'fred', 'age': 40, 'active': false } * ]; * * // using the `_.matches` callback shorthand * _.pluck(_.filter(users, { 'age': 36, 'active': true }), 'user'); * // => ['barney'] * * // using the `_.matchesProperty` callback shorthand * _.pluck(_.filter(users, 'active', false), 'user'); * // => ['fred'] * * // using the `_.property` callback shorthand * _.pluck(_.filter(users, 'active'), 'user'); * // => ['barney'] */ function filter(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,predicate)}/** * Performs a deep comparison between each element in `collection` and the * source object, returning the first element that has equivalent property * values. * * **Note:** This method supports comparing arrays, booleans, `Date` objects, * numbers, `Object` objects, regexes, and strings. Objects are compared by * their own, not inherited, enumerable properties. For comparing a single * own or inherited property value see `_.matchesProperty`. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to search. * @param {Object} source The object of property values to match. * @returns {*} Returns the matched element, else `undefined`. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': true }, * { 'user': 'fred', 'age': 40, 'active': false } * ]; * * _.result(_.findWhere(users, { 'age': 36, 'active': true }), 'user'); * // => 'barney' * * _.result(_.findWhere(users, { 'age': 40, 'active': false }), 'user'); * // => 'fred' */ function findWhere(collection,source){return find(collection,baseMatches(source))}/** * Checks if `value` is in `collection` using * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) * for equality comparisons. If `fromIndex` is negative, it is used as the offset * from the end of `collection`. * * @static * @memberOf _ * @alias contains, include * @category Collection * @param {Array|Object|string} collection The collection to search. * @param {*} target The value to search for. * @param {number} [fromIndex=0] The index to search from. * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`. * @returns {boolean} Returns `true` if a matching element is found, else `false`. * @example * * _.includes([1, 2, 3], 1); * // => true * * _.includes([1, 2, 3], 1, 2); * // => false * * _.includes({ 'user': 'fred', 'age': 40 }, 'fred'); * // => true * * _.includes('pebbles', 'eb'); * // => true */ function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;return isLength(length)||(collection=values(collection),length=collection.length),fromIndex="number"!=typeof fromIndex||guard&&isIterateeCall(target,fromIndex,guard)?0:0>fromIndex?nativeMax(length+fromIndex,0):fromIndex||0,"string"==typeof collection||!isArray(collection)&&isString(collection)?length>=fromIndex&&collection.indexOf(target,fromIndex)>-1:!!length&&getIndexOf(collection,target,fromIndex)>-1}/** * Creates an array of values by running each element in `collection` through * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three * arguments: (value, index|key, collection). * * If a property name is provided for `iteratee` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `iteratee` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * Many lodash methods are guarded to work as iteratees for methods like * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. * * The guarded methods are: * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, * `sum`, `uniq`, and `words` * * @static * @memberOf _ * @alias collect * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Function|Object|string} [iteratee=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {Array} Returns the new mapped array. * @example * * function timesThree(n) { * return n * 3; * } * * _.map([1, 2], timesThree); * // => [3, 6] * * _.map({ 'a': 1, 'b': 2 }, timesThree); * // => [3, 6] (iteration order is not guaranteed) * * var users = [ * { 'user': 'barney' }, * { 'user': 'fred' } * ]; * * // using the `_.property` callback shorthand * _.map(users, 'user'); * // => ['barney', 'fred'] */ function map(collection,iteratee,thisArg){var func=isArray(collection)?arrayMap:baseMap;return iteratee=getCallback(iteratee,thisArg,3),func(collection,iteratee)}/** * Gets the property value of `path` from all elements in `collection`. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Array|string} path The path of the property to pluck. * @returns {Array} Returns the property values. * @example * * var users = [ * { 'user': 'barney', 'age': 36 }, * { 'user': 'fred', 'age': 40 } * ]; * * _.pluck(users, 'user'); * // => ['barney', 'fred'] * * var userIndex = _.indexBy(users, 'user'); * _.pluck(userIndex, 'age'); * // => [36, 40] (iteration order is not guaranteed) */ function pluck(collection,path){return map(collection,property(path))}/** * The opposite of `_.filter`; this method returns the elements of `collection` * that `predicate` does **not** return truthy for. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {Array} Returns the new filtered array. * @example * * _.reject([1, 2, 3, 4], function(n) { * return n % 2 == 0; * }); * // => [1, 3] * * var users = [ * { 'user': 'barney', 'age': 36, 'active': false }, * { 'user': 'fred', 'age': 40, 'active': true } * ]; * * // using the `_.matches` callback shorthand * _.pluck(_.reject(users, { 'age': 40, 'active': true }), 'user'); * // => ['barney'] * * // using the `_.matchesProperty` callback shorthand * _.pluck(_.reject(users, 'active', false), 'user'); * // => ['fred'] * * // using the `_.property` callback shorthand * _.pluck(_.reject(users, 'active'), 'user'); * // => ['barney'] */ function reject(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,function(value,index,collection){return!predicate(value,index,collection)})}/** * Gets a random element or `n` random elements from a collection. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to sample. * @param {number} [n] The number of elements to sample. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {*} Returns the random sample(s). * @example * * _.sample([1, 2, 3, 4]); * // => 2 * * _.sample([1, 2, 3, 4], 2); * // => [3, 1] */ function sample(collection,n,guard){if(guard?isIterateeCall(collection,n,guard):null==n){collection=toIterable(collection);var length=collection.length;return length>0?collection[baseRandom(0,length-1)]:undefined}var index=-1,result=toArray(collection),length=result.length,lastIndex=length-1;for(n=nativeMin(0>n?0:+n||0,length);++index<n;){var rand=baseRandom(index,lastIndex),value=result[rand];result[rand]=result[index],result[index]=value}return result.length=n,result}/** * Creates an array of shuffled values, using a version of the * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to shuffle. * @returns {Array} Returns the new shuffled array. * @example * * _.shuffle([1, 2, 3, 4]); * // => [4, 1, 3, 2] */ function shuffle(collection){return sample(collection,POSITIVE_INFINITY)}/** * Gets the size of `collection` by returning its length for array-like * values or the number of own enumerable properties for objects. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to inspect. * @returns {number} Returns the size of `collection`. * @example * * _.size([1, 2, 3]); * // => 3 * * _.size({ 'a': 1, 'b': 2 }); * // => 2 * * _.size('pebbles'); * // => 7 */ function size(collection){var length=collection?getLength(collection):0;return isLength(length)?length:keys(collection).length}/** * Checks if `predicate` returns truthy for **any** element of `collection`. * The function returns as soon as it finds a passing value and does not iterate * over the entire collection. The predicate is bound to `thisArg` and invoked * with three arguments: (value, index|key, collection). * * If a property name is provided for `predicate` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `predicate` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @alias any * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Function|Object|string} [predicate=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `predicate`. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. * @example * * _.some([null, 0, 'yes', false], Boolean); * // => true * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false } * ]; * * // using the `_.matches` callback shorthand * _.some(users, { 'user': 'barney', 'active': false }); * // => false * * // using the `_.matchesProperty` callback shorthand * _.some(users, 'active', false); * // => true * * // using the `_.property` callback shorthand * _.some(users, 'active'); * // => true */ function some(collection,predicate,thisArg){var func=isArray(collection)?arraySome:baseSome;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=undefined),("function"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}/** * Creates an array of elements, sorted in ascending order by the results of * running each element in a collection through `iteratee`. This method performs * a stable sort, that is, it preserves the original sort order of equal elements. * The `iteratee` is bound to `thisArg` and invoked with three arguments: * (value, index|key, collection). * * If a property name is provided for `iteratee` the created `_.property` * style callback returns the property value of the given element. * * If a value is also provided for `thisArg` the created `_.matchesProperty` * style callback returns `true` for elements that have a matching property * value, else `false`. * * If an object is provided for `iteratee` the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Function|Object|string} [iteratee=_.identity] The function invoked * per iteration. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {Array} Returns the new sorted array. * @example * * _.sortBy([1, 2, 3], function(n) { * return Math.sin(n); * }); * // => [3, 1, 2] * * _.sortBy([1, 2, 3], function(n) { * return this.sin(n); * }, Math); * // => [3, 1, 2] * * var users = [ * { 'user': 'fred' }, * { 'user': 'pebbles' }, * { 'user': 'barney' } * ]; * * // using the `_.property` callback shorthand * _.pluck(_.sortBy(users, 'user'), 'user'); * // => ['barney', 'fred', 'pebbles'] */ function sortBy(collection,iteratee,thisArg){if(null==collection)return[];thisArg&&isIterateeCall(collection,iteratee,thisArg)&&(iteratee=undefined);var index=-1;iteratee=getCallback(iteratee,thisArg,3);var result=baseMap(collection,function(value,key,collection){return{criteria:iteratee(value,key,collection),index:++index,value:value}});return baseSortBy(result,compareAscending)}/** * This method is like `_.sortByAll` except that it allows specifying the * sort orders of the iteratees to sort by. If `orders` is unspecified, all * values are sorted in ascending order. Otherwise, a value is sorted in * ascending order if its corresponding order is "asc", and descending if "desc". * * If a property name is provided for an iteratee the created `_.property` * style callback returns the property value of the given element. * * If an object is provided for an iteratee the created `_.matches` style * callback returns `true` for elements that have the properties of the given * object, else `false`. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to iterate over. * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. * @param {boolean[]} [orders] The sort orders of `iteratees`. * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`. * @returns {Array} Returns the new sorted array. * @example * * var users = [ * { 'user': 'fred', 'age': 48 }, * { 'user': 'barney', 'age': 34 }, * { 'user': 'fred', 'age': 42 }, * { 'user': 'barney', 'age': 36 } * ]; * * // sort by `user` in ascending order and by `age` in descending order * _.map(_.sortByOrder(users, ['user', 'age'], ['asc', 'desc']), _.values); * // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]] */ function sortByOrder(collection,iteratees,orders,guard){return null==collection?[]:(guard&&isIterateeCall(iteratees,orders,guard)&&(orders=undefined),isArray(iteratees)||(iteratees=null==iteratees?[]:[iteratees]),isArray(orders)||(orders=null==orders?[]:[orders]),baseSortByOrder(collection,iteratees,orders))}/** * Performs a deep comparison between each element in `collection` and the * source object, returning an array of all elements that have equivalent * property values. * * **Note:** This method supports comparing arrays, booleans, `Date` objects, * numbers, `Object` objects, regexes, and strings. Objects are compared by * their own, not inherited, enumerable properties. For comparing a single * own or inherited property value see `_.matchesProperty`. * * @static * @memberOf _ * @category Collection * @param {Array|Object|string} collection The collection to search. * @param {Object} source The object of property values to match. * @returns {Array} Returns the new filtered array. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': false, 'pets': ['hoppy'] }, * { 'user': 'fred', 'age': 40, 'active': true, 'pets': ['baby puss', 'dino'] } * ]; * * _.pluck(_.where(users, { 'age': 36, 'active': false }), 'user'); * // => ['barney'] * * _.pluck(_.where(users, { 'pets': ['dino'] }), 'user'); * // => ['fred'] */ function where(collection,source){return filter(collection,baseMatches(source))}/*------------------------------------------------------------------------*/ /** * The opposite of `_.before`; this method creates a function that invokes * `func` once it is called `n` or more times. * * @static * @memberOf _ * @category Function * @param {number} n The number of calls before `func` is invoked. * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * var saves = ['profile', 'settings']; * * var done = _.after(saves.length, function() { * console.log('done saving!'); * }); * * _.forEach(saves, function(type) { * asyncSave({ 'type': type, 'complete': done }); * }); * // => logs 'done saving!' after the two async saves have completed */ function after(n,func){if("function"!=typeof func){if("function"!=typeof n)throw new TypeError(FUNC_ERROR_TEXT);var temp=n;n=func,func=temp}return n=nativeIsFinite(n=+n)?n:0,function(){return--n<1?func.apply(this,arguments):void 0}}/** * Creates a function that accepts up to `n` arguments ignoring any * additional arguments. * * @static * @memberOf _ * @category Function * @param {Function} func The function to cap arguments for. * @param {number} [n=func.length] The arity cap. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Function} Returns the new function. * @example * * _.map(['6', '8', '10'], _.ary(parseInt, 1)); * // => [6, 8, 10] */ function ary(func,n,guard){return guard&&isIterateeCall(func,n,guard)&&(n=undefined),n=func&&null==n?func.length:nativeMax(+n||0,0),createWrapper(func,ARY_FLAG,undefined,undefined,undefined,undefined,n)}/** * Creates a function that invokes `func`, with the `this` binding and arguments * of the created function, while it is called less than `n` times. Subsequent * calls to the created function return the result of the last `func` invocation. * * @static * @memberOf _ * @category Function * @param {number} n The number of calls at which `func` is no longer invoked. * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * jQuery('#add').on('click', _.before(5, addContactToList)); * // => allows adding up to 4 contacts to the list */ function before(n,func){var result;if("function"!=typeof func){if("function"!=typeof n)throw new TypeError(FUNC_ERROR_TEXT);var temp=n;n=func,func=temp}return function(){return--n>0&&(result=func.apply(this,arguments)),1>=n&&(func=undefined),result}}/** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel * delayed invocations. Provide an options object to indicate that `func` * should be invoked on the leading and/or trailing edge of the `wait` timeout. * Subsequent calls to the debounced function return the result of the last * `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked * on the trailing edge of the timeout only if the the debounced function is * invoked more than once during the `wait` timeout. * * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. * @param {Object} [options] The options object. * @param {boolean} [options.leading=false] Specify invoking on the leading * edge of the timeout. * @param {number} [options.maxWait] The maximum time `func` is allowed to be * delayed before it is invoked. * @param {boolean} [options.trailing=true] Specify invoking on the trailing * edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * * // avoid costly calculations while the window size is in flux * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * * // invoke `sendMail` when the click event is fired, debouncing subsequent calls * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * * // ensure `batchLog` is invoked once after 1 second of debounced calls * var source = new EventSource('/stream'); * jQuery(source).on('message', _.debounce(batchLog, 250, { * 'maxWait': 1000 * })); * * // cancel a debounced call * var todoChanges = _.debounce(batchLog, 1000); * Object.observe(models.todo, todoChanges); * * Object.observe(models, function(changes) { * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { * todoChanges.cancel(); * } * }, ['delete']); * * // ...at some point `models.todo` is changed * models.todo.completed = true; * * // ...before 1 second has passed `models.todo` is deleted * // which cancels the debounced `todoChanges` call * delete models.todo; */ function debounce(func,wait,options){function cancel(){timeoutId&&clearTimeout(timeoutId),maxTimeoutId&&clearTimeout(maxTimeoutId),lastCalled=0,maxTimeoutId=timeoutId=trailingCall=undefined}function complete(isCalled,id){id&&clearTimeout(id),maxTimeoutId=timeoutId=trailingCall=undefined,isCalled&&(lastCalled=now(),result=func.apply(thisArg,args),timeoutId||maxTimeoutId||(args=thisArg=undefined))}function delayed(){var remaining=wait-(now()-stamp);0>=remaining||remaining>wait?complete(trailingCall,maxTimeoutId):timeoutId=setTimeout(delayed,remaining)}function maxDelayed(){complete(trailing,timeoutId)}function debounced(){if(args=arguments,stamp=now(),thisArg=this,trailingCall=trailing&&(timeoutId||!leading),maxWait===!1)var leadingCall=leading&&!timeoutId;else{maxTimeoutId||leading||(lastCalled=stamp);var remaining=maxWait-(stamp-lastCalled),isCalled=0>=remaining||remaining>maxWait;isCalled?(maxTimeoutId&&(maxTimeoutId=clearTimeout(maxTimeoutId)),lastCalled=stamp,result=func.apply(thisArg,args)):maxTimeoutId||(maxTimeoutId=setTimeout(maxDelayed,remaining))}return isCalled&&timeoutId?timeoutId=clearTimeout(timeoutId):timeoutId||wait===maxWait||(timeoutId=setTimeout(delayed,wait)),leadingCall&&(isCalled=!0,result=func.apply(thisArg,args)),!isCalled||timeoutId||maxTimeoutId||(args=thisArg=undefined),result}var args,maxTimeoutId,result,stamp,thisArg,timeoutId,trailingCall,lastCalled=0,maxWait=!1,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);if(wait=0>wait?0:+wait||0,options===!0){var leading=!0;trailing=!1}else isObject(options)&&(leading=!!options.leading,maxWait="maxWait"in options&&nativeMax(+options.maxWait||0,wait),trailing="trailing"in options?!!options.trailing:trailing);return debounced.cancel=cancel,debounced}/** * Creates a function that memoizes the result of `func`. If `resolver` is * provided it determines the cache key for storing the result based on the * arguments provided to the memoized function. By default, the first argument * provided to the memoized function is coerced to a string and used as the * cache key. The `func` is invoked with the `this` binding of the memoized * function. * * **Note:** The cache is exposed as the `cache` property on the memoized * function. Its creation may be customized by replacing the `_.memoize.Cache` * constructor with one whose instances implement the [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object) * method interface of `get`, `has`, and `set`. * * @static * @memberOf _ * @category Function * @param {Function} func The function to have its output memoized. * @param {Function} [resolver] The function to resolve the cache key. * @returns {Function} Returns the new memoizing function. * @example * * var upperCase = _.memoize(function(string) { * return string.toUpperCase(); * }); * * upperCase('fred'); * // => 'FRED' * * // modifying the result cache * upperCase.cache.set('fred', 'BARNEY'); * upperCase('fred'); * // => 'BARNEY' * * // replacing `_.memoize.Cache` * var object = { 'user': 'fred' }; * var other = { 'user': 'barney' }; * var identity = _.memoize(_.identity); * * identity(object); * // => { 'user': 'fred' } * identity(other); * // => { 'user': 'fred' } * * _.memoize.Cache = WeakMap; * var identity = _.memoize(_.identity); * * identity(object); * // => { 'user': 'fred' } * identity(other); * // => { 'user': 'barney' } */ function memoize(func,resolver){if("function"!=typeof func||resolver&&"function"!=typeof resolver)throw new TypeError(FUNC_ERROR_TEXT);var memoized=function(){var args=arguments,key=resolver?resolver.apply(this,args):args[0],cache=memoized.cache;if(cache.has(key))return cache.get(key);var result=func.apply(this,args);return memoized.cache=cache.set(key,result),result};return memoized.cache=new memoize.Cache,memoized}/** * Creates a function that negates the result of the predicate `func`. The * `func` predicate is invoked with the `this` binding and arguments of the * created function. * * @static * @memberOf _ * @category Function * @param {Function} predicate The predicate to negate. * @returns {Function} Returns the new function. * @example * * function isEven(n) { * return n % 2 == 0; * } * * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); * // => [1, 3, 5] */ function negate(predicate){if("function"!=typeof predicate)throw new TypeError(FUNC_ERROR_TEXT);return function(){return!predicate.apply(this,arguments)}}/** * Creates a function that is restricted to invoking `func` once. Repeat calls * to the function return the value of the first call. The `func` is invoked * with the `this` binding and arguments of the created function. * * @static * @memberOf _ * @category Function * @param {Function} func The function to restrict. * @returns {Function} Returns the new restricted function. * @example * * var initialize = _.once(createApplication); * initialize(); * initialize(); * // `initialize` invokes `createApplication` once */ function once(func){return before(2,func)}/** * Creates a function that invokes `func` with the `this` binding of the * created function and arguments from `start` and beyond provided as an array. * * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). * * @static * @memberOf _ * @category Function * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @returns {Function} Returns the new function. * @example * * var say = _.restParam(function(what, names) { * return what + ' ' + _.initial(names).join(', ') + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); * }); * * say('hello', 'fred', 'barney', 'pebbles'); * // => 'hello fred, barney, & pebbles' */ function restParam(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(start===undefined?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);++index<length;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;++index<start;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}/** * Creates a function that invokes `func` with the `this` binding of the created * function and an array of arguments much like [`Function#apply`](https://es5.github.io/#x15.3.4.3). * * **Note:** This method is based on the [spread operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator). * * @static * @memberOf _ * @category Function * @param {Function} func The function to spread arguments over. * @returns {Function} Returns the new function. * @example * * var say = _.spread(function(who, what) { * return who + ' says ' + what; * }); * * say(['fred', 'hello']); * // => 'fred says hello' * * // with a Promise * var numbers = Promise.all([ * Promise.resolve(40), * Promise.resolve(36) * ]); * * numbers.then(_.spread(function(x, y) { * return x + y; * })); * // => a Promise of 76 */ function spread(func){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return function(array){return func.apply(this,array)}}/** * Creates a throttled function that only invokes `func` at most once per * every `wait` milliseconds. The throttled function comes with a `cancel` * method to cancel delayed invocations. Provide an options object to indicate * that `func` should be invoked on the leading and/or trailing edge of the * `wait` timeout. Subsequent calls to the throttled function return the * result of the last `func` call. * * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked * on the trailing edge of the timeout only if the the throttled function is * invoked more than once during the `wait` timeout. * * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) * for details over the differences between `_.throttle` and `_.debounce`. * * @static * @memberOf _ * @category Function * @param {Function} func The function to throttle. * @param {number} [wait=0] The number of milliseconds to throttle invocations to. * @param {Object} [options] The options object. * @param {boolean} [options.leading=true] Specify invoking on the leading * edge of the timeout. * @param {boolean} [options.trailing=true] Specify invoking on the trailing * edge of the timeout. * @returns {Function} Returns the new throttled function. * @example * * // avoid excessively updating the position while scrolling * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); * * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, { * 'trailing': false * })); * * // cancel a trailing throttled call * jQuery(window).on('popstate', throttled.cancel); */ function throttle(func,wait,options){var leading=!0,trailing=!0;if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return options===!1?leading=!1:isObject(options)&&(leading="leading"in options?!!options.leading:leading,trailing="trailing"in options?!!options.trailing:trailing),debounce(func,wait,{leading:leading,maxWait:+wait,trailing:trailing})}/** * Creates a function that provides `value` to the wrapper function as its * first argument. Any additional arguments provided to the function are * appended to those provided to the wrapper function. The wrapper is invoked * with the `this` binding of the created function. * * @static * @memberOf _ * @category Function * @param {*} value The value to wrap. * @param {Function} wrapper The wrapper function. * @returns {Function} Returns the new function. * @example * * var p = _.wrap(_.escape, function(func, text) { * return '<p>' + func(text) + '</p>'; * }); * * p('fred, barney, & pebbles'); * // => '<p>fred, barney, & pebbles</p>' */ function wrap(value,wrapper){return wrapper=null==wrapper?identity:wrapper,createWrapper(wrapper,PARTIAL_FLAG,undefined,[value],[])}/*------------------------------------------------------------------------*/ /** * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned, * otherwise they are assigned by reference. If `customizer` is provided it is * invoked to produce the cloned values. If `customizer` returns `undefined` * cloning is handled by the method instead. The `customizer` is bound to * `thisArg` and invoked with two argument; (value [, index|key, object]). * * **Note:** This method is loosely based on the * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). * The enumerable properties of `arguments` objects and objects created by * constructors other than `Object` are cloned to plain `Object` objects. An * empty object is returned for uncloneable values such as functions, DOM nodes, * Maps, Sets, and WeakMaps. * * @static * @memberOf _ * @category Lang * @param {*} value The value to clone. * @param {boolean} [isDeep] Specify a deep clone. * @param {Function} [customizer] The function to customize cloning values. * @param {*} [thisArg] The `this` binding of `customizer`. * @returns {*} Returns the cloned value. * @example * * var users = [ * { 'user': 'barney' }, * { 'user': 'fred' } * ]; * * var shallow = _.clone(users); * shallow[0] === users[0]; * // => true * * var deep = _.clone(users, true); * deep[0] === users[0]; * // => false * * // using a customizer callback * var el = _.clone(document.body, function(value) { * if (_.isElement(value)) { * return value.cloneNode(false); * } * }); * * el === document.body * // => false * el.nodeName * // => BODY * el.childNodes.length; * // => 0 */ function clone(value,isDeep,customizer,thisArg){return isDeep&&"boolean"!=typeof isDeep&&isIterateeCall(value,isDeep,customizer)?isDeep=!1:"function"==typeof isDeep&&(thisArg=customizer,customizer=isDeep,isDeep=!1),"function"==typeof customizer?baseClone(value,isDeep,bindCallback(customizer,thisArg,1)):baseClone(value,isDeep)}/** * Creates a deep clone of `value`. If `customizer` is provided it is invoked * to produce the cloned values. If `customizer` returns `undefined` cloning * is handled by the method instead. The `customizer` is bound to `thisArg` * and invoked with two argument; (value [, index|key, object]). * * **Note:** This method is loosely based on the * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). * The enumerable properties of `arguments` objects and objects created by * constructors other than `Object` are cloned to plain `Object` objects. An * empty object is returned for uncloneable values such as functions, DOM nodes, * Maps, Sets, and WeakMaps. * * @static * @memberOf _ * @category Lang * @param {*} value The value to deep clone. * @param {Function} [customizer] The function to customize cloning values. * @param {*} [thisArg] The `this` binding of `customizer`. * @returns {*} Returns the deep cloned value. * @example * * var users = [ * { 'user': 'barney' }, * { 'user': 'fred' } * ]; * * var deep = _.cloneDeep(users); * deep[0] === users[0]; * // => false * * // using a customizer callback * var el = _.cloneDeep(document.body, function(value) { * if (_.isElement(value)) { * return value.cloneNode(true); * } * }); * * el === document.body * // => false * el.nodeName * // => BODY * el.childNodes.length; * // => 20 */ function cloneDeep(value,customizer,thisArg){return"function"==typeof customizer?baseClone(value,!0,bindCallback(customizer,thisArg,1)):baseClone(value,!0)}/** * Checks if `value` is greater than `other`. * * @static * @memberOf _ * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is greater than `other`, else `false`. * @example * * _.gt(3, 1); * // => true * * _.gt(3, 3); * // => false * * _.gt(1, 3); * // => false */ function gt(value,other){return value>other}/** * Checks if `value` is greater than or equal to `other`. * * @static * @memberOf _ * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is greater than or equal to `other`, else `false`. * @example * * _.gte(3, 1); * // => true * * _.gte(3, 3); * // => true * * _.gte(1, 3); * // => false */ function gte(value,other){return value>=other}/** * Checks if `value` is classified as an `arguments` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isArguments(function() { return arguments; }()); * // => true * * _.isArguments([1, 2, 3]); * // => false */ function isArguments(value){return isObjectLike(value)&&isArrayLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")}/** * Checks if `value` is classified as a boolean primitive or object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isBoolean(false); * // => true * * _.isBoolean(null); * // => false */ function isBoolean(value){return value===!0||value===!1||isObjectLike(value)&&objToString.call(value)==boolTag}/** * Checks if `value` is classified as a `Date` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isDate(new Date); * // => true * * _.isDate('Mon April 23 2012'); * // => false */ function isDate(value){return isObjectLike(value)&&objToString.call(value)==dateTag}/** * Checks if `value` is a DOM element. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. * @example * * _.isElement(document.body); * // => true * * _.isElement('<body>'); * // => false */ function isElement(value){return!!value&&1===value.nodeType&&isObjectLike(value)&&!isPlainObject(value)}/** * Checks if `value` is empty. A value is considered empty unless it is an * `arguments` object, array, string, or jQuery-like collection with a length * greater than `0` or an object with own enumerable properties. * * @static * @memberOf _ * @category Lang * @param {Array|Object|string} value The value to inspect. * @returns {boolean} Returns `true` if `value` is empty, else `false`. * @example * * _.isEmpty(null); * // => true * * _.isEmpty(true); * // => true * * _.isEmpty(1); * // => true * * _.isEmpty([1, 2, 3]); * // => false * * _.isEmpty({ 'a': 1 }); * // => false */ function isEmpty(value){return null==value?!0:isArrayLike(value)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))?!value.length:!keys(value).length}/** * Performs a deep comparison between two values to determine if they are * equivalent. If `customizer` is provided it is invoked to compare values. * If `customizer` returns `undefined` comparisons are handled by the method * instead. The `customizer` is bound to `thisArg` and invoked with three * arguments: (value, other [, index|key]). * * **Note:** This method supports comparing arrays, booleans, `Date` objects, * numbers, `Object` objects, regexes, and strings. Objects are compared by * their own, not inherited, enumerable properties. Functions and DOM nodes * are **not** supported. Provide a customizer function to extend support * for comparing other values. * * @static * @memberOf _ * @alias eq * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @param {Function} [customizer] The function to customize value comparisons. * @param {*} [thisArg] The `this` binding of `customizer`. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * * var object = { 'user': 'fred' }; * var other = { 'user': 'fred' }; * * object == other; * // => false * * _.isEqual(object, other); * // => true * * // using a customizer callback * var array = ['hello', 'goodbye']; * var other = ['hi', 'goodbye']; * * _.isEqual(array, other, function(value, other) { * if (_.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/)) { * return true; * } * }); * // => true */ function isEqual(value,other,customizer,thisArg){customizer="function"==typeof customizer?bindCallback(customizer,thisArg,3):undefined;var result=customizer?customizer(value,other):undefined;return result===undefined?baseIsEqual(value,other,customizer):!!result}/** * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, * `SyntaxError`, `TypeError`, or `URIError` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an error object, else `false`. * @example * * _.isError(new Error); * // => true * * _.isError(Error); * // => false */ function isError(value){return isObjectLike(value)&&"string"==typeof value.message&&objToString.call(value)==errorTag}/** * Checks if `value` is a finite primitive number. * * **Note:** This method is based on [`Number.isFinite`](http://ecma-international.org/ecma-262/6.0/#sec-number.isfinite). * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. * @example * * _.isFinite(10); * // => true * * _.isFinite('10'); * // => false * * _.isFinite(true); * // => false * * _.isFinite(Object(10)); * // => false * * _.isFinite(Infinity); * // => false */ function isFinite(value){return"number"==typeof value&&nativeIsFinite(value)}/** * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isFunction(_); * // => true * * _.isFunction(/abc/); * // => false */ function isFunction(value){ // The use of `Object#toString` avoids issues with the `typeof` operator // in older versions of Chrome and Safari which return 'function' for regexes // and Safari 8 equivalents which return 'object' for typed array constructors. return isObject(value)&&objToString.call(value)==funcTag}/** * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(1); * // => false */ function isObject(value){ // Avoid a V8 JIT bug in Chrome 19-20. // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type=typeof value;return!!value&&("object"==type||"function"==type)}/** * Performs a deep comparison between `object` and `source` to determine if * `object` contains equivalent property values. If `customizer` is provided * it is invoked to compare values. If `customizer` returns `undefined` * comparisons are handled by the method instead. The `customizer` is bound * to `thisArg` and invoked with three arguments: (value, other, index|key). * * **Note:** This method supports comparing properties of arrays, booleans, * `Date` objects, numbers, `Object` objects, regexes, and strings. Functions * and DOM nodes are **not** supported. Provide a customizer function to extend * support for comparing other values. * * @static * @memberOf _ * @category Lang * @param {Object} object The object to inspect. * @param {Object} source The object of property values to match. * @param {Function} [customizer] The function to customize value comparisons. * @param {*} [thisArg] The `this` binding of `customizer`. * @returns {boolean} Returns `true` if `object` is a match, else `false`. * @example * * var object = { 'user': 'fred', 'age': 40 }; * * _.isMatch(object, { 'age': 40 }); * // => true * * _.isMatch(object, { 'age': 36 }); * // => false * * // using a customizer callback * var object = { 'greeting': 'hello' }; * var source = { 'greeting': 'hi' }; * * _.isMatch(object, source, function(value, other) { * return _.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/) || undefined; * }); * // => true */ function isMatch(object,source,customizer,thisArg){return customizer="function"==typeof customizer?bindCallback(customizer,thisArg,3):undefined,baseIsMatch(object,getMatchData(source),customizer)}/** * Checks if `value` is `NaN`. * * **Note:** This method is not the same as [`isNaN`](https://es5.github.io/#x15.1.2.4) * which returns `true` for `undefined` and other non-numeric values. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. * @example * * _.isNaN(NaN); * // => true * * _.isNaN(new Number(NaN)); * // => true * * isNaN(undefined); * // => true * * _.isNaN(undefined); * // => false */ function isNaN(value){ // An `NaN` primitive is the only value that is not equal to itself. // Perform the `toStringTag` check first to avoid errors with some host objects in IE. return isNumber(value)&&value!=+value}/** * Checks if `value` is a native function. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a native function, else `false`. * @example * * _.isNative(Array.prototype.push); * // => true * * _.isNative(_); * // => false */ function isNative(value){return null==value?!1:isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}/** * Checks if `value` is `null`. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `null`, else `false`. * @example * * _.isNull(null); * // => true * * _.isNull(void 0); * // => false */ function isNull(value){return null===value}/** * Checks if `value` is classified as a `Number` primitive or object. * * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are classified * as numbers, use the `_.isFinite` method. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isNumber(8.4); * // => true * * _.isNumber(NaN); * // => true * * _.isNumber('8.4'); * // => false */ function isNumber(value){return"number"==typeof value||isObjectLike(value)&&objToString.call(value)==numberTag}/** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. * * **Note:** This method assumes objects created by the `Object` constructor * have no inherited enumerable properties. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. * @example * * function Foo() { * this.a = 1; * } * * _.isPlainObject(new Foo); * // => false * * _.isPlainObject([1, 2, 3]); * // => false * * _.isPlainObject({ 'x': 0, 'y': 0 }); * // => true * * _.isPlainObject(Object.create(null)); * // => true */ function isPlainObject(value){var Ctor; // Exit early for non `Object` objects. if(!isObjectLike(value)||objToString.call(value)!=objectTag||isArguments(value)||!hasOwnProperty.call(value,"constructor")&&(Ctor=value.constructor,"function"==typeof Ctor&&!(Ctor instanceof Ctor)))return!1; // IE < 9 iterates inherited properties before own properties. If the first // iterated property is an object's own property then there are no inherited // enumerable properties. var result; // In most environments an object's own properties are iterated before // its inherited properties. If the last iterated property is an object's // own property then there are no inherited enumerable properties. return baseForIn(value,function(subValue,key){result=key}),result===undefined||hasOwnProperty.call(value,result)}/** * Checks if `value` is classified as a `RegExp` object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isRegExp(/abc/); * // => true * * _.isRegExp('/abc/'); * // => false */ function isRegExp(value){return isObject(value)&&objToString.call(value)==regexpTag}/** * Checks if `value` is classified as a `String` primitive or object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isString('abc'); * // => true * * _.isString(1); * // => false */ function isString(value){return"string"==typeof value||isObjectLike(value)&&objToString.call(value)==stringTag}/** * Checks if `value` is classified as a typed array. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * * _.isTypedArray(new Uint8Array); * // => true * * _.isTypedArray([]); * // => false */ function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}/** * Checks if `value` is `undefined`. * * @static * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. * @example * * _.isUndefined(void 0); * // => true * * _.isUndefined(null); * // => false */ function isUndefined(value){return value===undefined}/** * Checks if `value` is less than `other`. * * @static * @memberOf _ * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is less than `other`, else `false`. * @example * * _.lt(1, 3); * // => true * * _.lt(3, 3); * // => false * * _.lt(3, 1); * // => false */ function lt(value,other){return other>value}/** * Checks if `value` is less than or equal to `other`. * * @static * @memberOf _ * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if `value` is less than or equal to `other`, else `false`. * @example * * _.lte(1, 3); * // => true * * _.lte(3, 3); * // => true * * _.lte(3, 1); * // => false */ function lte(value,other){return other>=value}/** * Converts `value` to an array. * * @static * @memberOf _ * @category Lang * @param {*} value The value to convert. * @returns {Array} Returns the converted array. * @example * * (function() { * return _.toArray(arguments).slice(1); * }(1, 2, 3)); * // => [2, 3] */ function toArray(value){var length=value?getLength(value):0;return isLength(length)?length?arrayCopy(value):[]:values(value)}/** * Converts `value` to a plain object flattening inherited enumerable * properties of `value` to own properties of the plain object. * * @static * @memberOf _ * @category Lang * @param {*} value The value to convert. * @returns {Object} Returns the converted plain object. * @example * * function Foo() { * this.b = 2; * } * * Foo.prototype.c = 3; * * _.assign({ 'a': 1 }, new Foo); * // => { 'a': 1, 'b': 2 } * * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); * // => { 'a': 1, 'b': 2, 'c': 3 } */ function toPlainObject(value){return baseCopy(value,keysIn(value))}/** * Creates an object that inherits from the given `prototype` object. If a * `properties` object is provided its own enumerable properties are assigned * to the created object. * * @static * @memberOf _ * @category Object * @param {Object} prototype The object to inherit from. * @param {Object} [properties] The properties to assign to the object. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Object} Returns the new object. * @example * * function Shape() { * this.x = 0; * this.y = 0; * } * * function Circle() { * Shape.call(this); * } * * Circle.prototype = _.create(Shape.prototype, { * 'constructor': Circle * }); * * var circle = new Circle; * circle instanceof Circle; * // => true * * circle instanceof Shape; * // => true */ function create(prototype,properties,guard){var result=baseCreate(prototype);return guard&&isIterateeCall(prototype,properties,guard)&&(properties=undefined),properties?baseAssign(result,properties):result}/** * Creates an array of function property names from all enumerable properties, * own and inherited, of `object`. * * @static * @memberOf _ * @alias methods * @category Object * @param {Object} object The object to inspect. * @returns {Array} Returns the new array of property names. * @example * * _.functions(_); * // => ['after', 'ary', 'assign', ...] */ function functions(object){return baseFunctions(object,keysIn(object))}/** * Gets the property value at `path` of `object`. If the resolved value is * `undefined` the `defaultValue` is used in its place. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path of the property to get. * @param {*} [defaultValue] The value returned if the resolved value is `undefined`. * @returns {*} Returns the resolved value. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * * _.get(object, 'a[0].b.c'); * // => 3 * * _.get(object, ['a', '0', 'b', 'c']); * // => 3 * * _.get(object, 'a.b.c', 'default'); * // => 'default' */ function get(object,path,defaultValue){var result=null==object?undefined:baseGet(object,toPath(path),path+"");return result===undefined?defaultValue:result}/** * Checks if `path` is a direct property. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @returns {boolean} Returns `true` if `path` is a direct property, else `false`. * @example * * var object = { 'a': { 'b': { 'c': 3 } } }; * * _.has(object, 'a'); * // => true * * _.has(object, 'a.b.c'); * // => true * * _.has(object, ['a', 'b', 'c']); * // => true */ function has(object,path){if(null==object)return!1;var result=hasOwnProperty.call(object,path);if(!result&&!isKey(path)){if(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;path=last(path),result=hasOwnProperty.call(object,path)}return result||isLength(object.length)&&isIndex(path,object.length)&&(isArray(object)||isArguments(object))}/** * Creates an object composed of the inverted keys and values of `object`. * If `object` contains duplicate values, subsequent values overwrite property * assignments of previous values unless `multiValue` is `true`. * * @static * @memberOf _ * @category Object * @param {Object} object The object to invert. * @param {boolean} [multiValue] Allow multiple values per key. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Object} Returns the new inverted object. * @example * * var object = { 'a': 1, 'b': 2, 'c': 1 }; * * _.invert(object); * // => { '1': 'c', '2': 'b' } * * // with `multiValue` * _.invert(object, true); * // => { '1': ['a', 'c'], '2': ['b'] } */ function invert(object,multiValue,guard){guard&&isIterateeCall(object,multiValue,guard)&&(multiValue=undefined);for(var index=-1,props=keys(object),length=props.length,result={};++index<length;){var key=props[index],value=object[key];multiValue?hasOwnProperty.call(result,value)?result[value].push(key):result[value]=[key]:result[value]=key}return result}/** * Creates an array of the own and inherited enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keysIn(new Foo); * // => ['a', 'b', 'c'] (iteration order is not guaranteed) */ function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto="function"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;++index<length;)result[index]=index+"";for(var key in object)skipIndexes&&isIndex(key,length)||"constructor"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}/** * Creates a two dimensional array of the key-value pairs for `object`, * e.g. `[[key1, value1], [key2, value2]]`. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the new array of key-value pairs. * @example * * _.pairs({ 'barney': 36, 'fred': 40 }); * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) */ function pairs(object){object=toObject(object);for(var index=-1,props=keys(object),length=props.length,result=Array(length);++index<length;){var key=props[index];result[index]=[key,object[key]]}return result}/** * This method is like `_.get` except that if the resolved value is a function * it is invoked with the `this` binding of its parent object and its result * is returned. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path of the property to resolve. * @param {*} [defaultValue] The value returned if the resolved value is `undefined`. * @returns {*} Returns the resolved value. * @example * * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; * * _.result(object, 'a[0].b.c1'); * // => 3 * * _.result(object, 'a[0].b.c2'); * // => 4 * * _.result(object, 'a.b.c', 'default'); * // => 'default' * * _.result(object, 'a.b.c', _.constant('default')); * // => 'default' */ function result(object,path,defaultValue){var result=null==object?undefined:object[path];return result===undefined&&(null==object||isKey(path,object)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),result=null==object?undefined:object[last(path)]),result=result===undefined?defaultValue:result),isFunction(result)?result.call(object):result}/** * Sets the property value of `path` on `object`. If a portion of `path` * does not exist it is created. * * @static * @memberOf _ * @category Object * @param {Object} object The object to augment. * @param {Array|string} path The path of the property to set. * @param {*} value The value to set. * @returns {Object} Returns `object`. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * * _.set(object, 'a[0].b.c', 4); * console.log(object.a[0].b.c); * // => 4 * * _.set(object, 'x[0].y.z', 5); * console.log(object.x[0].y.z); * // => 5 */ function set(object,path,value){if(null==object)return object;var pathKey=path+"";path=null!=object[pathKey]||isKey(path,object)?[pathKey]:toPath(path);for(var index=-1,length=path.length,lastIndex=length-1,nested=object;null!=nested&&++index<length;){var key=path[index];isObject(nested)&&(index==lastIndex?nested[key]=value:null==nested[key]&&(nested[key]=isIndex(path[index+1])?[]:{})),nested=nested[key]}return object}/** * An alternative to `_.reduce`; this method transforms `object` to a new * `accumulator` object which is the result of running each of its own enumerable * properties through `iteratee`, with each invocation potentially mutating * the `accumulator` object. The `iteratee` is bound to `thisArg` and invoked * with four arguments: (accumulator, value, key, object). Iteratee functions * may exit iteration early by explicitly returning `false`. * * @static * @memberOf _ * @category Object * @param {Array|Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [accumulator] The custom accumulator value. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {*} Returns the accumulated value. * @example * * _.transform([2, 3, 4], function(result, n) { * result.push(n *= n); * return n % 2 == 0; * }); * // => [4, 9] * * _.transform({ 'a': 1, 'b': 2 }, function(result, n, key) { * result[key] = n * 3; * }); * // => { 'a': 3, 'b': 6 } */ function transform(object,iteratee,accumulator,thisArg){var isArr=isArray(object)||isTypedArray(object);if(iteratee=getCallback(iteratee,thisArg,4),null==accumulator)if(isArr||isObject(object)){var Ctor=object.constructor;accumulator=isArr?isArray(object)?new Ctor:[]:baseCreate(isFunction(Ctor)?Ctor.prototype:undefined)}else accumulator={};return(isArr?arrayEach:baseForOwn)(object,function(value,index,object){return iteratee(accumulator,value,index,object)}),accumulator}/** * Creates an array of the own enumerable property values of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property values. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.values(new Foo); * // => [1, 2] (iteration order is not guaranteed) * * _.values('hi'); * // => ['h', 'i'] */ function values(object){return baseValues(object,keys(object))}/** * Creates an array of the own and inherited enumerable property values * of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property values. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.valuesIn(new Foo); * // => [1, 2, 3] (iteration order is not guaranteed) */ function valuesIn(object){return baseValues(object,keysIn(object))}/*------------------------------------------------------------------------*/ /** * Checks if `n` is between `start` and up to but not including, `end`. If * `end` is not specified it is set to `start` with `start` then set to `0`. * * @static * @memberOf _ * @category Number * @param {number} n The number to check. * @param {number} [start=0] The start of the range. * @param {number} end The end of the range. * @returns {boolean} Returns `true` if `n` is in the range, else `false`. * @example * * _.inRange(3, 2, 4); * // => true * * _.inRange(4, 8); * // => true * * _.inRange(4, 2); * // => false * * _.inRange(2, 2); * // => false * * _.inRange(1.2, 2); * // => true * * _.inRange(5.2, 4); * // => false */ function inRange(value,start,end){return start=+start||0,end===undefined?(end=start,start=0):end=+end||0,value>=nativeMin(start,end)&&value<nativeMax(start,end)}/** * Produces a random number between `min` and `max` (inclusive). If only one * argument is provided a number between `0` and the given number is returned. * If `floating` is `true`, or either `min` or `max` are floats, a floating-point * number is returned instead of an integer. * * @static * @memberOf _ * @category Number * @param {number} [min=0] The minimum possible value. * @param {number} [max=1] The maximum possible value. * @param {boolean} [floating] Specify returning a floating-point number. * @returns {number} Returns the random number. * @example * * _.random(0, 5); * // => an integer between 0 and 5 * * _.random(5); * // => also an integer between 0 and 5 * * _.random(5, true); * // => a floating-point number between 0 and 5 * * _.random(1.2, 5.2); * // => a floating-point number between 1.2 and 5.2 */ function random(min,max,floating){floating&&isIterateeCall(min,max,floating)&&(max=floating=undefined);var noMin=null==min,noMax=null==max;if(null==floating&&(noMax&&"boolean"==typeof min?(floating=min,min=1):"boolean"==typeof max&&(floating=max,noMax=!0)),noMin&&noMax&&(max=1,noMax=!1),min=+min||0,noMax?(max=min,min=0):max=+max||0,floating||min%1||max%1){var rand=nativeRandom();return nativeMin(min+rand*(max-min+parseFloat("1e-"+((rand+"").length-1))),max)}return baseRandom(min,max)}/** * Capitalizes the first character of `string`. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to capitalize. * @returns {string} Returns the capitalized string. * @example * * _.capitalize('fred'); * // => 'Fred' */ function capitalize(string){return string=baseToString(string),string&&string.charAt(0).toUpperCase()+string.slice(1)}/** * Deburrs `string` by converting [latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) * to basic latin letters and removing [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to deburr. * @returns {string} Returns the deburred string. * @example * * _.deburr('déjà vu'); * // => 'deja vu' */ function deburr(string){return string=baseToString(string),string&&string.replace(reLatin1,deburrLetter).replace(reComboMark,"")}/** * Checks if `string` ends with the given target string. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to search. * @param {string} [target] The string to search for. * @param {number} [position=string.length] The position to search from. * @returns {boolean} Returns `true` if `string` ends with `target`, else `false`. * @example * * _.endsWith('abc', 'c'); * // => true * * _.endsWith('abc', 'b'); * // => false * * _.endsWith('abc', 'b', 2); * // => true */ function endsWith(string,target,position){string=baseToString(string),target+="";var length=string.length;return position=position===undefined?length:nativeMin(0>position?0:+position||0,length),position-=target.length,position>=0&&string.indexOf(target,position)==position}/** * Converts the characters "&", "<", ">", '"', "'", and "\`", in `string` to * their corresponding HTML entities. * * **Note:** No other characters are escaped. To escape additional characters * use a third-party library like [_he_](https://mths.be/he). * * Though the ">" character is escaped for symmetry, characters like * ">" and "/" don't need escaping in HTML and have no special meaning * unless they're part of a tag or unquoted attribute value. * See [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) * (under "semi-related fun fact") for more details. * * Backticks are escaped because in Internet Explorer < 9, they can break out * of attribute values or HTML comments. See [#59](https://html5sec.org/#59), * [#102](https://html5sec.org/#102), [#108](https://html5sec.org/#108), and * [#133](https://html5sec.org/#133) of the [HTML5 Security Cheatsheet](https://html5sec.org/) * for more details. * * When working with HTML you should always [quote attribute values](http://wonko.com/post/html-escaping) * to reduce XSS vectors. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to escape. * @returns {string} Returns the escaped string. * @example * * _.escape('fred, barney, & pebbles'); * // => 'fred, barney, & pebbles' */ function escape(string){ // Reset `lastIndex` because in IE < 9 `String#replace` does not. return string=baseToString(string),string&&reHasUnescapedHtml.test(string)?string.replace(reUnescapedHtml,escapeHtmlChar):string}/** * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to escape. * @returns {string} Returns the escaped string. * @example * * _.escapeRegExp('[lodash](https://lodash.com/)'); * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' */ function escapeRegExp(string){return string=baseToString(string),string&&reHasRegExpChars.test(string)?string.replace(reRegExpChars,escapeRegExpChar):string||"(?:)"}/** * Pads `string` on the left and right sides if it's shorter than `length`. * Padding characters are truncated if they can't be evenly divided by `length`. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to pad. * @param {number} [length=0] The padding length. * @param {string} [chars=' '] The string used as padding. * @returns {string} Returns the padded string. * @example * * _.pad('abc', 8); * // => ' abc ' * * _.pad('abc', 8, '_-'); * // => '_-abc_-_' * * _.pad('abc', 3); * // => 'abc' */ function pad(string,length,chars){string=baseToString(string),length=+length;var strLength=string.length;if(strLength>=length||!nativeIsFinite(length))return string;var mid=(length-strLength)/2,leftLength=nativeFloor(mid),rightLength=nativeCeil(mid);return chars=createPadding("",rightLength,chars),chars.slice(0,leftLength)+string+chars}/** * Converts `string` to an integer of the specified radix. If `radix` is * `undefined` or `0`, a `radix` of `10` is used unless `value` is a hexadecimal, * in which case a `radix` of `16` is used. * * **Note:** This method aligns with the [ES5 implementation](https://es5.github.io/#E) * of `parseInt`. * * @static * @memberOf _ * @category String * @param {string} string The string to convert. * @param {number} [radix] The radix to interpret `value` by. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {number} Returns the converted integer. * @example * * _.parseInt('08'); * // => 8 * * _.map(['6', '08', '10'], _.parseInt); * // => [6, 8, 10] */ function parseInt(string,radix,guard){ // Firefox < 21 and Opera < 15 follow ES3 for `parseInt`. // Chrome fails to trim leading <BOM> whitespace characters. // See https://code.google.com/p/v8/issues/detail?id=3109 for more details. return(guard?isIterateeCall(string,radix,guard):null==radix)?radix=0:radix&&(radix=+radix),string=trim(string),nativeParseInt(string,radix||(reHasHexPrefix.test(string)?16:10))}/** * Repeats the given string `n` times. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to repeat. * @param {number} [n=0] The number of times to repeat the string. * @returns {string} Returns the repeated string. * @example * * _.repeat('*', 3); * // => '***' * * _.repeat('abc', 2); * // => 'abcabc' * * _.repeat('abc', 0); * // => '' */ function repeat(string,n){var result="";if(string=baseToString(string),n=+n,1>n||!string||!nativeIsFinite(n))return result; // Leverage the exponentiation by squaring algorithm for a faster repeat. // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. do n%2&&(result+=string),n=nativeFloor(n/2),string+=string;while(n);return result}/** * Checks if `string` starts with the given target string. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to search. * @param {string} [target] The string to search for. * @param {number} [position=0] The position to search from. * @returns {boolean} Returns `true` if `string` starts with `target`, else `false`. * @example * * _.startsWith('abc', 'a'); * // => true * * _.startsWith('abc', 'b'); * // => false * * _.startsWith('abc', 'b', 1); * // => true */ function startsWith(string,target,position){return string=baseToString(string),position=null==position?0:nativeMin(0>position?0:+position||0,string.length),string.lastIndexOf(target,position)==position}/** * Creates a compiled template function that can interpolate data properties * in "interpolate" delimiters, HTML-escape interpolated data properties in * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data * properties may be accessed as free variables in the template. If a setting * object is provided it takes precedence over `_.templateSettings` values. * * **Note:** In the development build `_.template` utilizes * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) * for easier debugging. * * For more information on precompiling templates see * [lodash's custom builds documentation](https://lodash.com/custom-builds). * * For more information on Chrome extension sandboxes see * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). * * @static * @memberOf _ * @category String * @param {string} [string=''] The template string. * @param {Object} [options] The options object. * @param {RegExp} [options.escape] The HTML "escape" delimiter. * @param {RegExp} [options.evaluate] The "evaluate" delimiter. * @param {Object} [options.imports] An object to import into the template as free variables. * @param {RegExp} [options.interpolate] The "interpolate" delimiter. * @param {string} [options.sourceURL] The sourceURL of the template's compiled source. * @param {string} [options.variable] The data object variable name. * @param- {Object} [otherOptions] Enables the legacy `options` param signature. * @returns {Function} Returns the compiled template function. * @example * * // using the "interpolate" delimiter to create a compiled template * var compiled = _.template('hello <%= user %>!'); * compiled({ 'user': 'fred' }); * // => 'hello fred!' * * // using the HTML "escape" delimiter to escape data property values * var compiled = _.template('<b><%- value %></b>'); * compiled({ 'value': '<script>' }); * // => '<b><script></b>' * * // using the "evaluate" delimiter to execute JavaScript and generate HTML * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>'); * compiled({ 'users': ['fred', 'barney'] }); * // => '<li>fred</li><li>barney</li>' * * // using the internal `print` function in "evaluate" delimiters * var compiled = _.template('<% print("hello " + user); %>!'); * compiled({ 'user': 'barney' }); * // => 'hello barney!' * * // using the ES delimiter as an alternative to the default "interpolate" delimiter * var compiled = _.template('hello ${ user }!'); * compiled({ 'user': 'pebbles' }); * // => 'hello pebbles!' * * // using custom template delimiters * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g; * var compiled = _.template('hello {{ user }}!'); * compiled({ 'user': 'mustache' }); * // => 'hello mustache!' * * // using backslashes to treat delimiters as plain text * var compiled = _.template('<%= "\\<%- value %\\>" %>'); * compiled({ 'value': 'ignored' }); * // => '<%- value %>' * * // using the `imports` option to import `jQuery` as `jq` * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>'; * var compiled = _.template(text, { 'imports': { 'jq': jQuery } }); * compiled({ 'users': ['fred', 'barney'] }); * // => '<li>fred</li><li>barney</li>' * * // using the `sourceURL` option to specify a custom sourceURL for the template * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' }); * compiled(data); * // => find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector * * // using the `variable` option to ensure a with-statement isn't used in the compiled template * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' }); * compiled.source; * // => function(data) { * // var __t, __p = ''; * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!'; * // return __p; * // } * * // using the `source` property to inline compiled templates for meaningful * // line numbers in error messages and a stack trace * fs.writeFileSync(path.join(cwd, 'jst.js'), '\ * var JST = {\ * "main": ' + _.template(mainText).source + '\ * };\ * '); */ function template(string,options,otherOptions){ // Based on John Resig's `tmpl` implementation (http://ejohn.org/blog/javascript-micro-templating/) // and Laura Doktorova's doT.js (https://github.com/olado/doT). var settings=lodash.templateSettings;otherOptions&&isIterateeCall(string,options,otherOptions)&&(options=otherOptions=undefined),string=baseToString(string),options=assignWith(baseAssign({},otherOptions||options),settings,assignOwnDefaults);var isEscaping,isEvaluating,imports=assignWith(baseAssign({},options.imports),settings.imports,assignOwnDefaults),importsKeys=keys(imports),importsValues=baseValues(imports,importsKeys),index=0,interpolate=options.interpolate||reNoMatch,source="__p += '",reDelimiters=RegExp((options.escape||reNoMatch).source+"|"+interpolate.source+"|"+(interpolate===reInterpolate?reEsTemplate:reNoMatch).source+"|"+(options.evaluate||reNoMatch).source+"|$","g"),sourceURL="//# sourceURL="+("sourceURL"in options?options.sourceURL:"lodash.templateSources["+ ++templateCounter+"]")+"\n";string.replace(reDelimiters,function(match,escapeValue,interpolateValue,esTemplateValue,evaluateValue,offset){ // The JS engine embedded in Adobe products requires returning the `match` // string in order to produce the correct `offset` value. // Escape characters that can't be included in string literals. // Replace delimiters with snippets. return interpolateValue||(interpolateValue=esTemplateValue),source+=string.slice(index,offset).replace(reUnescapedString,escapeStringChar),escapeValue&&(isEscaping=!0,source+="' +\n__e("+escapeValue+") +\n'"),evaluateValue&&(isEvaluating=!0,source+="';\n"+evaluateValue+";\n__p += '"),interpolateValue&&(source+="' +\n((__t = ("+interpolateValue+")) == null ? '' : __t) +\n'"),index=offset+match.length,match}),source+="';\n"; // If `variable` is not specified wrap a with-statement around the generated // code to add the data object to the top of the scope chain. var variable=options.variable;variable||(source="with (obj) {\n"+source+"\n}\n"),source=(isEvaluating?source.replace(reEmptyStringLeading,""):source).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;"),source="function("+(variable||"obj")+") {\n"+(variable?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(isEscaping?", __e = _.escape":"")+(isEvaluating?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+source+"return __p\n}";var result=attempt(function(){return Function(importsKeys,sourceURL+"return "+source).apply(undefined,importsValues)});if( // Provide the compiled function's source by its `toString` method or // the `source` property as a convenience for inlining compiled templates. result.source=source,isError(result))throw result;return result}/** * Removes leading and trailing whitespace or specified characters from `string`. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to trim. * @param {string} [chars=whitespace] The characters to trim. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {string} Returns the trimmed string. * @example * * _.trim(' abc '); * // => 'abc' * * _.trim('-_-abc-_-', '_-'); * // => 'abc' * * _.map([' foo ', ' bar '], _.trim); * // => ['foo', 'bar'] */ function trim(string,chars,guard){var value=string;return(string=baseToString(string))?(guard?isIterateeCall(value,chars,guard):null==chars)?string.slice(trimmedLeftIndex(string),trimmedRightIndex(string)+1):(chars+="",string.slice(charsLeftIndex(string,chars),charsRightIndex(string,chars)+1)):string}/** * Removes leading whitespace or specified characters from `string`. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to trim. * @param {string} [chars=whitespace] The characters to trim. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {string} Returns the trimmed string. * @example * * _.trimLeft(' abc '); * // => 'abc ' * * _.trimLeft('-_-abc-_-', '_-'); * // => 'abc-_-' */ function trimLeft(string,chars,guard){var value=string;return string=baseToString(string),string?(guard?isIterateeCall(value,chars,guard):null==chars)?string.slice(trimmedLeftIndex(string)):string.slice(charsLeftIndex(string,chars+"")):string}/** * Removes trailing whitespace or specified characters from `string`. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to trim. * @param {string} [chars=whitespace] The characters to trim. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {string} Returns the trimmed string. * @example * * _.trimRight(' abc '); * // => ' abc' * * _.trimRight('-_-abc-_-', '_-'); * // => '-_-abc' */ function trimRight(string,chars,guard){var value=string;return string=baseToString(string),string?(guard?isIterateeCall(value,chars,guard):null==chars)?string.slice(0,trimmedRightIndex(string)+1):string.slice(0,charsRightIndex(string,chars+"")+1):string}/** * Truncates `string` if it's longer than the given maximum string length. * The last characters of the truncated string are replaced with the omission * string which defaults to "...". * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to truncate. * @param {Object|number} [options] The options object or maximum string length. * @param {number} [options.length=30] The maximum string length. * @param {string} [options.omission='...'] The string to indicate text is omitted. * @param {RegExp|string} [options.separator] The separator pattern to truncate to. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {string} Returns the truncated string. * @example * * _.trunc('hi-diddly-ho there, neighborino'); * // => 'hi-diddly-ho there, neighbo...' * * _.trunc('hi-diddly-ho there, neighborino', 24); * // => 'hi-diddly-ho there, n...' * * _.trunc('hi-diddly-ho there, neighborino', { * 'length': 24, * 'separator': ' ' * }); * // => 'hi-diddly-ho there,...' * * _.trunc('hi-diddly-ho there, neighborino', { * 'length': 24, * 'separator': /,? +/ * }); * // => 'hi-diddly-ho there...' * * _.trunc('hi-diddly-ho there, neighborino', { * 'omission': ' [...]' * }); * // => 'hi-diddly-ho there, neig [...]' */ function trunc(string,options,guard){guard&&isIterateeCall(string,options,guard)&&(options=undefined);var length=DEFAULT_TRUNC_LENGTH,omission=DEFAULT_TRUNC_OMISSION;if(null!=options)if(isObject(options)){var separator="separator"in options?options.separator:separator;length="length"in options?+options.length||0:length,omission="omission"in options?baseToString(options.omission):omission}else length=+options||0;if(string=baseToString(string),length>=string.length)return string;var end=length-omission.length;if(1>end)return omission;var result=string.slice(0,end);if(null==separator)return result+omission;if(isRegExp(separator)){if(string.slice(end).search(separator)){var match,newEnd,substring=string.slice(0,end);for(separator.global||(separator=RegExp(separator.source,(reFlags.exec(separator)||"")+"g")),separator.lastIndex=0;match=separator.exec(substring);)newEnd=match.index;result=result.slice(0,null==newEnd?end:newEnd)}}else if(string.indexOf(separator,end)!=end){var index=result.lastIndexOf(separator);index>-1&&(result=result.slice(0,index))}return result+omission}/** * The inverse of `_.escape`; this method converts the HTML entities * `&`, `<`, `>`, `"`, `'`, and ``` in `string` to their * corresponding characters. * * **Note:** No other HTML entities are unescaped. To unescape additional HTML * entities use a third-party library like [_he_](https://mths.be/he). * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to unescape. * @returns {string} Returns the unescaped string. * @example * * _.unescape('fred, barney, & pebbles'); * // => 'fred, barney, & pebbles' */ function unescape(string){return string=baseToString(string),string&&reHasEscapedHtml.test(string)?string.replace(reEscapedHtml,unescapeHtmlChar):string}/** * Splits `string` into an array of its words. * * @static * @memberOf _ * @category String * @param {string} [string=''] The string to inspect. * @param {RegExp|string} [pattern] The pattern to match words. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Array} Returns the words of `string`. * @example * * _.words('fred, barney, & pebbles'); * // => ['fred', 'barney', 'pebbles'] * * _.words('fred, barney, & pebbles', /[^, ]+/g); * // => ['fred', 'barney', '&', 'pebbles'] */ function words(string,pattern,guard){return guard&&isIterateeCall(string,pattern,guard)&&(pattern=undefined),string=baseToString(string),string.match(pattern||reWords)||[]}/** * Creates a function that invokes `func` with the `this` binding of `thisArg` * and arguments of the created function. If `func` is a property name the * created callback returns the property value for a given element. If `func` * is an object the created callback returns `true` for elements that contain * the equivalent object properties, otherwise it returns `false`. * * @static * @memberOf _ * @alias iteratee * @category Utility * @param {*} [func=_.identity] The value to convert to a callback. * @param {*} [thisArg] The `this` binding of `func`. * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. * @returns {Function} Returns the callback. * @example * * var users = [ * { 'user': 'barney', 'age': 36 }, * { 'user': 'fred', 'age': 40 } * ]; * * // wrap to create custom callback shorthands * _.callback = _.wrap(_.callback, function(callback, func, thisArg) { * var match = /^(.+?)__([gl]t)(.+)$/.exec(func); * if (!match) { * return callback(func, thisArg); * } * return function(object) { * return match[2] == 'gt' * ? object[match[1]] > match[3] * : object[match[1]] < match[3]; * }; * }); * * _.filter(users, 'age__gt36'); * // => [{ 'user': 'fred', 'age': 40 }] */ function callback(func,thisArg,guard){return guard&&isIterateeCall(func,thisArg,guard)&&(thisArg=undefined),isObjectLike(func)?matches(func):baseCallback(func,thisArg)}/** * Creates a function that returns `value`. * * @static * @memberOf _ * @category Utility * @param {*} value The value to return from the new function. * @returns {Function} Returns the new function. * @example * * var object = { 'user': 'fred' }; * var getter = _.constant(object); * * getter() === object; * // => true */ function constant(value){return function(){return value}}/** * This method returns the first argument provided to it. * * @static * @memberOf _ * @category Utility * @param {*} value Any value. * @returns {*} Returns `value`. * @example * * var object = { 'user': 'fred' }; * * _.identity(object) === object; * // => true */ function identity(value){return value}/** * Creates a function that performs a deep comparison between a given object * and `source`, returning `true` if the given object has equivalent property * values, else `false`. * * **Note:** This method supports comparing arrays, booleans, `Date` objects, * numbers, `Object` objects, regexes, and strings. Objects are compared by * their own, not inherited, enumerable properties. For comparing a single * own or inherited property value see `_.matchesProperty`. * * @static * @memberOf _ * @category Utility * @param {Object} source The object of property values to match. * @returns {Function} Returns the new function. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': true }, * { 'user': 'fred', 'age': 40, 'active': false } * ]; * * _.filter(users, _.matches({ 'age': 40, 'active': false })); * // => [{ 'user': 'fred', 'age': 40, 'active': false }] */ function matches(source){return baseMatches(baseClone(source,!0))}/** * Creates a function that compares the property value of `path` on a given * object to `value`. * * **Note:** This method supports comparing arrays, booleans, `Date` objects, * numbers, `Object` objects, regexes, and strings. Objects are compared by * their own, not inherited, enumerable properties. * * @static * @memberOf _ * @category Utility * @param {Array|string} path The path of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new function. * @example * * var users = [ * { 'user': 'barney' }, * { 'user': 'fred' } * ]; * * _.find(users, _.matchesProperty('user', 'fred')); * // => { 'user': 'fred' } */ function matchesProperty(path,srcValue){return baseMatchesProperty(path,baseClone(srcValue,!0))}/** * Adds all own enumerable function properties of a source object to the * destination object. If `object` is a function then methods are added to * its prototype as well. * * **Note:** Use `_.runInContext` to create a pristine `lodash` function to * avoid conflicts caused by modifying the original. * * @static * @memberOf _ * @category Utility * @param {Function|Object} [object=lodash] The destination object. * @param {Object} source The object of functions to add. * @param {Object} [options] The options object. * @param {boolean} [options.chain=true] Specify whether the functions added * are chainable. * @returns {Function|Object} Returns `object`. * @example * * function vowels(string) { * return _.filter(string, function(v) { * return /[aeiou]/i.test(v); * }); * } * * _.mixin({ 'vowels': vowels }); * _.vowels('fred'); * // => ['e'] * * _('fred').vowels().value(); * // => ['e'] * * _.mixin({ 'vowels': vowels }, { 'chain': false }); * _('fred').vowels(); * // => ['e'] */ function mixin(object,source,options){if(null==options){var isObj=isObject(source),props=isObj?keys(source):undefined,methodNames=props&&props.length?baseFunctions(source,props):undefined;(methodNames?methodNames.length:isObj)||(methodNames=!1,options=source,source=object,object=this)}methodNames||(methodNames=baseFunctions(source,keys(source)));var chain=!0,index=-1,isFunc=isFunction(object),length=methodNames.length;options===!1?chain=!1:isObject(options)&&"chain"in options&&(chain=options.chain);for(;++index<length;){var methodName=methodNames[index],func=source[methodName];object[methodName]=func,isFunc&&(object.prototype[methodName]=function(func){return function(){var chainAll=this.__chain__;if(chain||chainAll){var result=object(this.__wrapped__),actions=result.__actions__=arrayCopy(this.__actions__);return actions.push({func:func,args:arguments,thisArg:object}),result.__chain__=chainAll,result}return func.apply(object,arrayPush([this.value()],arguments))}}(func))}return object}/** * Reverts the `_` variable to its previous value and returns a reference to * the `lodash` function. * * @static * @memberOf _ * @category Utility * @returns {Function} Returns the `lodash` function. * @example * * var lodash = _.noConflict(); */ function noConflict(){return root._=oldDash,this}/** * A no-operation function that returns `undefined` regardless of the * arguments it receives. * * @static * @memberOf _ * @category Utility * @example * * var object = { 'user': 'fred' }; * * _.noop(object) === undefined; * // => true */ function noop(){}/** * Creates a function that returns the property value at `path` on a * given object. * * @static * @memberOf _ * @category Utility * @param {Array|string} path The path of the property to get. * @returns {Function} Returns the new function. * @example * * var objects = [ * { 'a': { 'b': { 'c': 2 } } }, * { 'a': { 'b': { 'c': 1 } } } * ]; * * _.map(objects, _.property('a.b.c')); * // => [2, 1] * * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); * // => [1, 2] */ function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}/** * The opposite of `_.property`; this method creates a function that returns * the property value at a given path on `object`. * * @static * @memberOf _ * @category Utility * @param {Object} object The object to query. * @returns {Function} Returns the new function. * @example * * var array = [0, 1, 2], * object = { 'a': array, 'b': array, 'c': array }; * * _.map(['a[2]', 'c[0]'], _.propertyOf(object)); * // => [2, 0] * * _.map([['a', '2'], ['c', '0']], _.propertyOf(object)); * // => [2, 0] */ function propertyOf(object){return function(path){return baseGet(object,toPath(path),path+"")}}/** * Creates an array of numbers (positive and/or negative) progressing from * `start` up to, but not including, `end`. If `end` is not specified it is * set to `start` with `start` then set to `0`. If `end` is less than `start` * a zero-length range is created unless a negative `step` is specified. * * @static * @memberOf _ * @category Utility * @param {number} [start=0] The start of the range. * @param {number} end The end of the range. * @param {number} [step=1] The value to increment or decrement by. * @returns {Array} Returns the new array of numbers. * @example * * _.range(4); * // => [0, 1, 2, 3] * * _.range(1, 5); * // => [1, 2, 3, 4] * * _.range(0, 20, 5); * // => [0, 5, 10, 15] * * _.range(0, -4, -1); * // => [0, -1, -2, -3] * * _.range(1, 4, 0); * // => [1, 1, 1] * * _.range(0); * // => [] */ function range(start,end,step){step&&isIterateeCall(start,end,step)&&(end=step=undefined),start=+start||0,step=null==step?1:+step||0,null==end?(end=start,start=0):end=+end||0;for( // Use `Array(length)` so engines like Chakra and V8 avoid slower modes. // See https://youtu.be/XAqIpGU8ZZk#t=17m25s for more details. var index=-1,length=nativeMax(nativeCeil((end-start)/(step||1)),0),result=Array(length);++index<length;)result[index]=start,start+=step;return result}/** * Invokes the iteratee function `n` times, returning an array of the results * of each invocation. The `iteratee` is bound to `thisArg` and invoked with * one argument; (index). * * @static * @memberOf _ * @category Utility * @param {number} n The number of times to invoke `iteratee`. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {Array} Returns the array of results. * @example * * var diceRolls = _.times(3, _.partial(_.random, 1, 6, false)); * // => [3, 6, 4] * * _.times(3, function(n) { * mage.castSpell(n); * }); * // => invokes `mage.castSpell(n)` three times with `n` of `0`, `1`, and `2` * * _.times(3, function(n) { * this.cast(n); * }, mage); * // => also invokes `mage.castSpell(n)` three times */ function times(n,iteratee,thisArg){ // Exit early to avoid a JSC JIT bug in Safari 8 // where `Array(0)` is treated as `Array(1)`. if(n=nativeFloor(n),1>n||!nativeIsFinite(n))return[];var index=-1,result=Array(nativeMin(n,MAX_ARRAY_LENGTH));for(iteratee=bindCallback(iteratee,thisArg,1);++index<n;)MAX_ARRAY_LENGTH>index?result[index]=iteratee(index):iteratee(index);return result}/** * Generates a unique ID. If `prefix` is provided the ID is appended to it. * * @static * @memberOf _ * @category Utility * @param {string} [prefix] The value to prefix the ID with. * @returns {string} Returns the unique ID. * @example * * _.uniqueId('contact_'); * // => 'contact_104' * * _.uniqueId(); * // => '105' */ function uniqueId(prefix){var id=++idCounter;return baseToString(prefix)+id}/*------------------------------------------------------------------------*/ /** * Adds two numbers. * * @static * @memberOf _ * @category Math * @param {number} augend The first number to add. * @param {number} addend The second number to add. * @returns {number} Returns the sum. * @example * * _.add(6, 4); * // => 10 */ function add(augend,addend){return(+augend||0)+(+addend||0)}/** * Gets the sum of the values in `collection`. * * @static * @memberOf _ * @category Math * @param {Array|Object|string} collection The collection to iterate over. * @param {Function|Object|string} [iteratee] The function invoked per iteration. * @param {*} [thisArg] The `this` binding of `iteratee`. * @returns {number} Returns the sum. * @example * * _.sum([4, 6]); * // => 10 * * _.sum({ 'a': 4, 'b': 6 }); * // => 10 * * var objects = [ * { 'n': 4 }, * { 'n': 6 } * ]; * * _.sum(objects, function(object) { * return object.n; * }); * // => 10 * * // using the `_.property` callback shorthand * _.sum(objects, 'n'); * // => 10 */ function sum(collection,iteratee,thisArg){return thisArg&&isIterateeCall(collection,iteratee,thisArg)&&(iteratee=undefined),iteratee=getCallback(iteratee,thisArg,3),1==iteratee.length?arraySum(isArray(collection)?collection:toIterable(collection),iteratee):baseSum(collection,iteratee)} // Avoid issues with some ES3 environments that attempt to use values, named // after built-in constructors like `Object`, for the creation of literals. // ES5 clears this up by stating that literals must use built-in constructors. // See https://es5.github.io/#x11.1.5 for more details. context=context?_.defaults(root.Object(),context,_.pick(root,contextProps)):root;/** Native constructor references. */ var Array=context.Array,Date=context.Date,Error=context.Error,Function=context.Function,Math=context.Math,Number=context.Number,Object=context.Object,RegExp=context.RegExp,String=context.String,TypeError=context.TypeError,arrayProto=Array.prototype,objectProto=Object.prototype,stringProto=String.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,idCounter=0,objToString=objectProto.toString,oldDash=root._,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ArrayBuffer=context.ArrayBuffer,clearTimeout=context.clearTimeout,parseFloat=context.parseFloat,pow=Math.pow,propertyIsEnumerable=objectProto.propertyIsEnumerable,Set=getNative(context,"Set"),setTimeout=context.setTimeout,splice=arrayProto.splice,Uint8Array=context.Uint8Array,WeakMap=getNative(context,"WeakMap"),nativeCeil=Math.ceil,nativeCreate=getNative(Object,"create"),nativeFloor=Math.floor,nativeIsArray=getNative(Array,"isArray"),nativeIsFinite=context.isFinite,nativeKeys=getNative(Object,"keys"),nativeMax=Math.max,nativeMin=Math.min,nativeNow=getNative(Date,"now"),nativeParseInt=context.parseInt,nativeRandom=Math.random,NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,POSITIVE_INFINITY=Number.POSITIVE_INFINITY,MAX_ARRAY_LENGTH=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,MAX_SAFE_INTEGER=9007199254740991,metaMap=WeakMap&&new WeakMap,realNames={};lodash.support={};/** * By default, the template delimiters used by lodash are like those in * embedded Ruby (ERB). Change the following template settings to use * alternative delimiters. * * @static * @memberOf _ * @type Object */ lodash.templateSettings={/** * Used to detect `data` property values to be HTML-escaped. * * @memberOf _.templateSettings * @type RegExp */ escape:reEscape,/** * Used to detect code to be evaluated. * * @memberOf _.templateSettings * @type RegExp */ evaluate:reEvaluate,/** * Used to detect `data` property values to inject. * * @memberOf _.templateSettings * @type RegExp */ interpolate:reInterpolate,/** * Used to reference the data object in the template text. * * @memberOf _.templateSettings * @type string */ variable:"",/** * Used to import variables into the compiled template. * * @memberOf _.templateSettings * @type Object */ imports:{/** * A reference to the `lodash` function. * * @memberOf _.templateSettings.imports * @type Function */ _:lodash}};/** * The base implementation of `_.create` without support for assigning * properties to the created object. * * @private * @param {Object} prototype The object to inherit from. * @returns {Object} Returns the new object. */ var baseCreate=function(){function object(){}return function(prototype){if(isObject(prototype)){object.prototype=prototype;var result=new object;object.prototype=undefined}return result||{}}}(),baseEach=createBaseEach(baseForOwn),baseEachRight=createBaseEach(baseForOwnRight,!0),baseFor=createBaseFor(),baseForRight=createBaseFor(!0),baseSetData=metaMap?function(func,data){return metaMap.set(func,data),func}:identity,getData=metaMap?function(func){return metaMap.get(func)}:noop,getLength=baseProperty("length"),setData=function(){var count=0,lastCalled=0;return function(key,value){var stamp=now(),remaining=HOT_SPAN-(stamp-lastCalled);if(lastCalled=stamp,remaining>0){if(++count>=HOT_COUNT)return key}else count=0;return baseSetData(key,value)}}(),difference=restParam(function(array,values){return isObjectLike(array)&&isArrayLike(array)?baseDifference(array,baseFlatten(values,!1,!0)):[]}),findIndex=createFindIndex(),findLastIndex=createFindIndex(!0),intersection=restParam(function(arrays){for(var othLength=arrays.length,othIndex=othLength,caches=Array(length),indexOf=getIndexOf(),isCommon=indexOf==baseIndexOf,result=[];othIndex--;){var value=arrays[othIndex]=isArrayLike(value=arrays[othIndex])?value:[];caches[othIndex]=isCommon&&value.length>=120?createCache(othIndex&&value):null}var array=arrays[0],index=-1,length=array?array.length:0,seen=caches[0];outer:for(;++index<length;)if(value=array[index],(seen?cacheIndexOf(seen,value):indexOf(result,value,0))<0){for(var othIndex=othLength;--othIndex;){var cache=caches[othIndex];if((cache?cacheIndexOf(cache,value):indexOf(arrays[othIndex],value,0))<0)continue outer}seen&&seen.push(value),result.push(value)}return result}),pullAt=restParam(function(array,indexes){indexes=baseFlatten(indexes);var result=baseAt(array,indexes);return basePullAt(array,indexes.sort(baseCompareAscending)),result}),sortedIndex=createSortedIndex(),sortedLastIndex=createSortedIndex(!0),union=restParam(function(arrays){return baseUniq(baseFlatten(arrays,!1,!0))}),without=restParam(function(array,values){return isArrayLike(array)?baseDifference(array,values):[]}),zip=restParam(unzip),zipWith=restParam(function(arrays){var length=arrays.length,iteratee=length>2?arrays[length-2]:undefined,thisArg=length>1?arrays[length-1]:undefined;return length>2&&"function"==typeof iteratee?length-=2:(iteratee=length>1&&"function"==typeof thisArg?(--length,thisArg):undefined,thisArg=undefined),arrays.length=length,unzipWith(arrays,iteratee,thisArg)}),wrapperConcat=restParam(function(values){return values=baseFlatten(values),this.thru(function(array){return arrayConcat(isArray(array)?array:[toObject(array)],values)})}),at=restParam(function(collection,props){return baseAt(collection,baseFlatten(props))}),countBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?++result[key]:result[key]=1}),find=createFind(baseEach),findLast=createFind(baseEachRight,!0),forEach=createForEach(arrayEach,baseEach),forEachRight=createForEach(arrayEachRight,baseEachRight),groupBy=createAggregator(function(result,value,key){hasOwnProperty.call(result,key)?result[key].push(value):result[key]=[value]}),indexBy=createAggregator(function(result,value,key){result[key]=value}),invoke=restParam(function(collection,path,args){var index=-1,isFunc="function"==typeof path,isProp=isKey(path),result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value){var func=isFunc?path:isProp&&null!=value?value[path]:undefined;result[++index]=func?func.apply(value,args):invokePath(value,path,args)}),result}),partition=createAggregator(function(result,value,key){result[key?0:1].push(value)},function(){return[[],[]]}),reduce=createReduce(arrayReduce,baseEach),reduceRight=createReduce(arrayReduceRight,baseEachRight),sortByAll=restParam(function(collection,iteratees){if(null==collection)return[];var guard=iteratees[2];return guard&&isIterateeCall(iteratees[0],iteratees[1],guard)&&(iteratees.length=1),baseSortByOrder(collection,baseFlatten(iteratees),[])}),now=nativeNow||function(){return(new Date).getTime()},bind=restParam(function(func,thisArg,partials){var bitmask=BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,bind.placeholder);bitmask|=PARTIAL_FLAG}return createWrapper(func,bitmask,thisArg,partials,holders)}),bindAll=restParam(function(object,methodNames){methodNames=methodNames.length?baseFlatten(methodNames):functions(object);for(var index=-1,length=methodNames.length;++index<length;){var key=methodNames[index];object[key]=createWrapper(object[key],BIND_FLAG,object)}return object}),bindKey=restParam(function(object,key,partials){var bitmask=BIND_FLAG|BIND_KEY_FLAG;if(partials.length){var holders=replaceHolders(partials,bindKey.placeholder);bitmask|=PARTIAL_FLAG}return createWrapper(key,bitmask,object,partials,holders)}),curry=createCurry(CURRY_FLAG),curryRight=createCurry(CURRY_RIGHT_FLAG),defer=restParam(function(func,args){return baseDelay(func,1,args)}),delay=restParam(function(func,wait,args){return baseDelay(func,wait,args)}),flow=createFlow(),flowRight=createFlow(!0),modArgs=restParam(function(func,transforms){if(transforms=baseFlatten(transforms),"function"!=typeof func||!arrayEvery(transforms,baseIsFunction))throw new TypeError(FUNC_ERROR_TEXT);var length=transforms.length;return restParam(function(args){for(var index=nativeMin(args.length,length);index--;)args[index]=transforms[index](args[index]);return func.apply(this,args)})}),partial=createPartial(PARTIAL_FLAG),partialRight=createPartial(PARTIAL_RIGHT_FLAG),rearg=restParam(function(func,indexes){return createWrapper(func,REARG_FLAG,undefined,undefined,undefined,baseFlatten(indexes))}),isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag},merge=createAssigner(baseMerge),assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)}),defaults=createDefaults(assign,assignDefaults),defaultsDeep=createDefaults(merge,mergeDefaults),findKey=createFindKey(baseForOwn),findLastKey=createFindKey(baseForOwnRight),forIn=createForIn(baseFor),forInRight=createForIn(baseForRight),forOwn=createForOwn(baseForOwn),forOwnRight=createForOwn(baseForOwnRight),keys=nativeKeys?function(object){var Ctor=null==object?undefined:object.constructor;return"function"==typeof Ctor&&Ctor.prototype===object||"function"!=typeof object&&isArrayLike(object)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys,mapKeys=createObjectMapper(!0),mapValues=createObjectMapper(),omit=restParam(function(object,props){if(null==object)return{};if("function"!=typeof props[0]){var props=arrayMap(baseFlatten(props),String);return pickByArray(object,baseDifference(keysIn(object),props))}var predicate=bindCallback(props[0],props[1],3);return pickByCallback(object,function(value,key,object){return!predicate(value,key,object)})}),pick=restParam(function(object,props){return null==object?{}:"function"==typeof props[0]?pickByCallback(object,bindCallback(props[0],props[1],3)):pickByArray(object,baseFlatten(props))}),camelCase=createCompounder(function(result,word,index){return word=word.toLowerCase(),result+(index?word.charAt(0).toUpperCase()+word.slice(1):word)}),kebabCase=createCompounder(function(result,word,index){return result+(index?"-":"")+word.toLowerCase()}),padLeft=createPadDir(),padRight=createPadDir(!0),snakeCase=createCompounder(function(result,word,index){return result+(index?"_":"")+word.toLowerCase()}),startCase=createCompounder(function(result,word,index){return result+(index?" ":"")+(word.charAt(0).toUpperCase()+word.slice(1))}),attempt=restParam(function(func,args){try{return func.apply(undefined,args)}catch(e){return isError(e)?e:new Error(e)}}),method=restParam(function(path,args){return function(object){return invokePath(object,path,args)}}),methodOf=restParam(function(object,args){return function(path){return invokePath(object,path,args)}}),ceil=createRound("ceil"),floor=createRound("floor"),max=createExtremum(gt,NEGATIVE_INFINITY),min=createExtremum(lt,POSITIVE_INFINITY),round=createRound("round");/*------------------------------------------------------------------------*/ // Ensure wrappers are instances of `baseLodash`. // Add functions to the `Map` cache. // Add functions to the `Set` cache. // Assign cache to `_.memoize`. // Add functions that return wrapped values when chaining. // Add aliases. // Add functions to `lodash.prototype`. /*------------------------------------------------------------------------*/ // Add functions that return unwrapped values when chaining. // Add aliases. /*------------------------------------------------------------------------*/ // Add functions capable of returning wrapped and unwrapped values when chaining. /*------------------------------------------------------------------------*/ /** * The semantic version number. * * @static * @memberOf _ * @type string */ // Assign default placeholders. // Add `LazyWrapper` methods for `_.drop` and `_.take` variants. // Add `LazyWrapper` methods that accept an `iteratee` value. // Add `LazyWrapper` methods for `_.first` and `_.last`. // Add `LazyWrapper` methods for `_.initial` and `_.rest`. // Add `LazyWrapper` methods for `_.pluck` and `_.where`. // Add `LazyWrapper` methods to `lodash.prototype`. // Add `Array` and `String` methods to `lodash.prototype`. // Map minified function names to their real names. // Add functions to the lazy wrapper. // Add chaining functions to the `lodash` wrapper. // Add function aliases to the `lodash` wrapper. return lodash.prototype=baseLodash.prototype,LodashWrapper.prototype=baseCreate(baseLodash.prototype),LodashWrapper.prototype.constructor=LodashWrapper,LazyWrapper.prototype=baseCreate(baseLodash.prototype),LazyWrapper.prototype.constructor=LazyWrapper,MapCache.prototype["delete"]=mapDelete,MapCache.prototype.get=mapGet,MapCache.prototype.has=mapHas,MapCache.prototype.set=mapSet,SetCache.prototype.push=cachePush,memoize.Cache=MapCache,lodash.after=after,lodash.ary=ary,lodash.assign=assign,lodash.at=at,lodash.before=before,lodash.bind=bind,lodash.bindAll=bindAll,lodash.bindKey=bindKey,lodash.callback=callback,lodash.chain=chain,lodash.chunk=chunk,lodash.compact=compact,lodash.constant=constant,lodash.countBy=countBy,lodash.create=create,lodash.curry=curry,lodash.curryRight=curryRight,lodash.debounce=debounce,lodash.defaults=defaults,lodash.defaultsDeep=defaultsDeep,lodash.defer=defer,lodash.delay=delay,lodash.difference=difference,lodash.drop=drop,lodash.dropRight=dropRight,lodash.dropRightWhile=dropRightWhile,lodash.dropWhile=dropWhile,lodash.fill=fill,lodash.filter=filter,lodash.flatten=flatten,lodash.flattenDeep=flattenDeep,lodash.flow=flow,lodash.flowRight=flowRight,lodash.forEach=forEach,lodash.forEachRight=forEachRight,lodash.forIn=forIn,lodash.forInRight=forInRight,lodash.forOwn=forOwn,lodash.forOwnRight=forOwnRight,lodash.functions=functions,lodash.groupBy=groupBy,lodash.indexBy=indexBy,lodash.initial=initial,lodash.intersection=intersection,lodash.invert=invert,lodash.invoke=invoke,lodash.keys=keys,lodash.keysIn=keysIn,lodash.map=map,lodash.mapKeys=mapKeys,lodash.mapValues=mapValues,lodash.matches=matches,lodash.matchesProperty=matchesProperty,lodash.memoize=memoize,lodash.merge=merge,lodash.method=method,lodash.methodOf=methodOf,lodash.mixin=mixin,lodash.modArgs=modArgs,lodash.negate=negate,lodash.omit=omit,lodash.once=once,lodash.pairs=pairs,lodash.partial=partial,lodash.partialRight=partialRight,lodash.partition=partition,lodash.pick=pick,lodash.pluck=pluck,lodash.property=property,lodash.propertyOf=propertyOf,lodash.pull=pull,lodash.pullAt=pullAt,lodash.range=range,lodash.rearg=rearg,lodash.reject=reject,lodash.remove=remove,lodash.rest=rest,lodash.restParam=restParam,lodash.set=set,lodash.shuffle=shuffle,lodash.slice=slice,lodash.sortBy=sortBy,lodash.sortByAll=sortByAll,lodash.sortByOrder=sortByOrder,lodash.spread=spread,lodash.take=take,lodash.takeRight=takeRight,lodash.takeRightWhile=takeRightWhile,lodash.takeWhile=takeWhile,lodash.tap=tap,lodash.throttle=throttle,lodash.thru=thru,lodash.times=times,lodash.toArray=toArray,lodash.toPlainObject=toPlainObject,lodash.transform=transform,lodash.union=union,lodash.uniq=uniq,lodash.unzip=unzip,lodash.unzipWith=unzipWith,lodash.values=values,lodash.valuesIn=valuesIn,lodash.where=where,lodash.without=without,lodash.wrap=wrap,lodash.xor=xor,lodash.zip=zip,lodash.zipObject=zipObject,lodash.zipWith=zipWith,lodash.backflow=flowRight,lodash.collect=map,lodash.compose=flowRight,lodash.each=forEach,lodash.eachRight=forEachRight,lodash.extend=assign,lodash.iteratee=callback,lodash.methods=functions,lodash.object=zipObject,lodash.select=filter,lodash.tail=rest,lodash.unique=uniq,mixin(lodash,lodash),lodash.add=add,lodash.attempt=attempt,lodash.camelCase=camelCase,lodash.capitalize=capitalize,lodash.ceil=ceil,lodash.clone=clone,lodash.cloneDeep=cloneDeep,lodash.deburr=deburr,lodash.endsWith=endsWith,lodash.escape=escape,lodash.escapeRegExp=escapeRegExp,lodash.every=every,lodash.find=find,lodash.findIndex=findIndex,lodash.findKey=findKey,lodash.findLast=findLast,lodash.findLastIndex=findLastIndex,lodash.findLastKey=findLastKey,lodash.findWhere=findWhere,lodash.first=first,lodash.floor=floor,lodash.get=get,lodash.gt=gt,lodash.gte=gte,lodash.has=has,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.inRange=inRange,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isBoolean=isBoolean,lodash.isDate=isDate,lodash.isElement=isElement,lodash.isEmpty=isEmpty,lodash.isEqual=isEqual,lodash.isError=isError,lodash.isFinite=isFinite,lodash.isFunction=isFunction,lodash.isMatch=isMatch,lodash.isNaN=isNaN,lodash.isNative=isNative,lodash.isNull=isNull,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isRegExp=isRegExp,lodash.isString=isString,lodash.isTypedArray=isTypedArray,lodash.isUndefined=isUndefined,lodash.kebabCase=kebabCase,lodash.last=last,lodash.lastIndexOf=lastIndexOf,lodash.lt=lt,lodash.lte=lte,lodash.max=max,lodash.min=min,lodash.noConflict=noConflict,lodash.noop=noop,lodash.now=now,lodash.pad=pad,lodash.padLeft=padLeft,lodash.padRight=padRight,lodash.parseInt=parseInt,lodash.random=random,lodash.reduce=reduce,lodash.reduceRight=reduceRight,lodash.repeat=repeat,lodash.result=result,lodash.round=round,lodash.runInContext=runInContext,lodash.size=size,lodash.snakeCase=snakeCase,lodash.some=some,lodash.sortedIndex=sortedIndex,lodash.sortedLastIndex=sortedLastIndex,lodash.startCase=startCase,lodash.startsWith=startsWith,lodash.sum=sum,lodash.template=template,lodash.trim=trim,lodash.trimLeft=trimLeft,lodash.trimRight=trimRight,lodash.trunc=trunc,lodash.unescape=unescape,lodash.uniqueId=uniqueId,lodash.words=words,lodash.all=every,lodash.any=some,lodash.contains=includes,lodash.eq=isEqual,lodash.detect=find,lodash.foldl=reduce,lodash.foldr=reduceRight,lodash.head=first,lodash.include=includes,lodash.inject=reduce,mixin(lodash,function(){var source={};return baseForOwn(lodash,function(func,methodName){lodash.prototype[methodName]||(source[methodName]=func)}),source}(),!1),lodash.sample=sample,lodash.prototype.sample=function(n){return this.__chain__||null!=n?this.thru(function(value){return sample(value,n)}):sample(this.value())},lodash.VERSION=VERSION,arrayEach(["bind","bindKey","curry","curryRight","partial","partialRight"],function(methodName){lodash[methodName].placeholder=lodash}),arrayEach(["drop","take"],function(methodName,index){LazyWrapper.prototype[methodName]=function(n){var filtered=this.__filtered__;if(filtered&&!index)return new LazyWrapper(this);n=null==n?1:nativeMax(nativeFloor(n)||0,0);var result=this.clone();return filtered?result.__takeCount__=nativeMin(result.__takeCount__,n):result.__views__.push({size:n,type:methodName+(result.__dir__<0?"Right":"")}),result},LazyWrapper.prototype[methodName+"Right"]=function(n){return this.reverse()[methodName](n).reverse()}}),arrayEach(["filter","map","takeWhile"],function(methodName,index){var type=index+1,isFilter=type!=LAZY_MAP_FLAG;LazyWrapper.prototype[methodName]=function(iteratee,thisArg){var result=this.clone();return result.__iteratees__.push({iteratee:getCallback(iteratee,thisArg,1),type:type}),result.__filtered__=result.__filtered__||isFilter,result}}),arrayEach(["first","last"],function(methodName,index){var takeName="take"+(index?"Right":"");LazyWrapper.prototype[methodName]=function(){return this[takeName](1).value()[0]}}),arrayEach(["initial","rest"],function(methodName,index){var dropName="drop"+(index?"":"Right");LazyWrapper.prototype[methodName]=function(){return this.__filtered__?new LazyWrapper(this):this[dropName](1)}}),arrayEach(["pluck","where"],function(methodName,index){var operationName=index?"filter":"map",createCallback=index?baseMatches:property;LazyWrapper.prototype[methodName]=function(value){return this[operationName](createCallback(value))}}),LazyWrapper.prototype.compact=function(){return this.filter(identity)},LazyWrapper.prototype.reject=function(predicate,thisArg){return predicate=getCallback(predicate,thisArg,1),this.filter(function(value){return!predicate(value)})},LazyWrapper.prototype.slice=function(start,end){start=null==start?0:+start||0;var result=this;return result.__filtered__&&(start>0||0>end)?new LazyWrapper(result):(0>start?result=result.takeRight(-start):start&&(result=result.drop(start)),end!==undefined&&(end=+end||0,result=0>end?result.dropRight(-end):result.take(end-start)),result)},LazyWrapper.prototype.takeRightWhile=function(predicate,thisArg){return this.reverse().takeWhile(predicate,thisArg).reverse()},LazyWrapper.prototype.toArray=function(){return this.take(POSITIVE_INFINITY)},baseForOwn(LazyWrapper.prototype,function(func,methodName){var checkIteratee=/^(?:filter|map|reject)|While$/.test(methodName),retUnwrapped=/^(?:first|last)$/.test(methodName),lodashFunc=lodash[retUnwrapped?"take"+("last"==methodName?"Right":""):methodName];lodashFunc&&(lodash.prototype[methodName]=function(){var args=retUnwrapped?[1]:arguments,chainAll=this.__chain__,value=this.__wrapped__,isHybrid=!!this.__actions__.length,isLazy=value instanceof LazyWrapper,iteratee=args[0],useLazy=isLazy||isArray(value);useLazy&&checkIteratee&&"function"==typeof iteratee&&1!=iteratee.length&&( // Avoid lazy use if the iteratee has a "length" value other than `1`. isLazy=useLazy=!1);var interceptor=function(value){return retUnwrapped&&chainAll?lodashFunc(value,1)[0]:lodashFunc.apply(undefined,arrayPush([value],args))},action={func:thru,args:[interceptor],thisArg:undefined},onlyLazy=isLazy&&!isHybrid;if(retUnwrapped&&!chainAll)return onlyLazy?(value=value.clone(),value.__actions__.push(action),func.call(value)):lodashFunc.call(undefined,this.value())[0];if(!retUnwrapped&&useLazy){value=onlyLazy?value:new LazyWrapper(this);var result=func.apply(value,args);return result.__actions__.push(action),new LodashWrapper(result,chainAll)}return this.thru(interceptor)})}),arrayEach(["join","pop","push","replace","shift","sort","splice","split","unshift"],function(methodName){var func=(/^(?:replace|split)$/.test(methodName)?stringProto:arrayProto)[methodName],chainName=/^(?:push|sort|unshift)$/.test(methodName)?"tap":"thru",retUnwrapped=/^(?:join|pop|replace|shift)$/.test(methodName);lodash.prototype[methodName]=function(){var args=arguments;return retUnwrapped&&!this.__chain__?func.apply(this.value(),args):this[chainName](function(value){return func.apply(value,args)})}}),baseForOwn(LazyWrapper.prototype,function(func,methodName){var lodashFunc=lodash[methodName];if(lodashFunc){var key=lodashFunc.name,names=realNames[key]||(realNames[key]=[]);names.push({name:methodName,func:lodashFunc})}}),realNames[createHybridWrapper(undefined,BIND_KEY_FLAG).name]=[{name:"wrapper",func:undefined}],LazyWrapper.prototype.clone=lazyClone,LazyWrapper.prototype.reverse=lazyReverse,LazyWrapper.prototype.value=lazyValue,lodash.prototype.chain=wrapperChain,lodash.prototype.commit=wrapperCommit,lodash.prototype.concat=wrapperConcat,lodash.prototype.plant=wrapperPlant,lodash.prototype.reverse=wrapperReverse,lodash.prototype.toString=wrapperToString,lodash.prototype.run=lodash.prototype.toJSON=lodash.prototype.valueOf=lodash.prototype.value=wrapperValue,lodash.prototype.collect=lodash.prototype.map,lodash.prototype.head=lodash.prototype.first,lodash.prototype.select=lodash.prototype.filter,lodash.prototype.tail=lodash.prototype.rest,lodash}/** Used as a safe reference for `undefined` in pre-ES5 environments. */ var undefined,VERSION="3.10.1",BIND_FLAG=1,BIND_KEY_FLAG=2,CURRY_BOUND_FLAG=4,CURRY_FLAG=8,CURRY_RIGHT_FLAG=16,PARTIAL_FLAG=32,PARTIAL_RIGHT_FLAG=64,ARY_FLAG=128,REARG_FLAG=256,DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...",HOT_COUNT=150,HOT_SPAN=16,LARGE_ARRAY_SIZE=200,LAZY_FILTER_FLAG=1,LAZY_MAP_FLAG=2,FUNC_ERROR_TEXT="Expected a function",PLACEHOLDER="__lodash_placeholder__",argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g,reEscapedHtml=/&(?:amp|lt|gt|quot|#39|#96);/g,reUnescapedHtml=/[&<>"'`]/g,reHasEscapedHtml=RegExp(reEscapedHtml.source),reHasUnescapedHtml=RegExp(reUnescapedHtml.source),reEscape=/<%-([\s\S]+?)%>/g,reEvaluate=/<%([\s\S]+?)%>/g,reInterpolate=/<%=([\s\S]+?)%>/g,reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,reRegExpChars=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,reHasRegExpChars=RegExp(reRegExpChars.source),reComboMark=/[\u0300-\u036f\ufe20-\ufe23]/g,reEscapeChar=/\\(\\)?/g,reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,reFlags=/\w*$/,reHasHexPrefix=/^0[xX]/,reIsHostCtor=/^\[object .+?Constructor\]$/,reIsUint=/^\d+$/,reLatin1=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,reNoMatch=/($^)/,reUnescapedString=/['\n\r\u2028\u2029\\]/g,reWords=function(){var upper="[A-Z\\xc0-\\xd6\\xd8-\\xde]",lower="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(upper+"+(?="+upper+lower+")|"+upper+"?"+lower+"|"+upper+"+|[0-9]+","g")}(),contextProps=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","isFinite","parseFloat","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap"],templateCounter=-1,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;/** Used to identify `toStringTag` values supported by `_.clone`. */ var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=!1;/** Used to map latin-1 supplementary letters to basic latin letters. */ var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},htmlEscapes={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},htmlUnescapes={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},objectTypes={"function":!0,object:!0},regexpEscapes={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,freeGlobal=freeExports&&freeModule&&"object"==typeof global&&global&&global.Object&&global,freeSelf=objectTypes[typeof self]&&self&&self.Object&&self,freeWindow=objectTypes[typeof window]&&window&&window.Object&&window,root=(freeModule&&freeModule.exports===freeExports&&freeExports,freeGlobal||freeWindow!==(this&&this.window)&&freeWindow||freeSelf||this),_=runInContext(); // Expose lodash to the global object when an AMD loader is present to avoid // errors in cases where lodash is loaded by a script tag and not intended // as an AMD module. See http://requirejs.org/docs/errors.html#mismatch for // more details. root._=_,__WEBPACK_AMD_DEFINE_RESULT__=function(){return _}.call(exports,__webpack_require__,exports,module),!(__WEBPACK_AMD_DEFINE_RESULT__!==undefined&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}).call(this)}).call(exports,__webpack_require__(43)(module),function(){return this}())},/* 43 */ /***/ function(module,exports){module.exports=function(module){ // module.parent = undefined by default return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],module.children=[],module.webpackPolyfill=1),module}},/* 44 */ /***/ function(module,exports,__webpack_require__){/*jslint browser: true*/ "use strict";__webpack_require__(45);var LightMngrMixin={VideoLightMngr:{},componentDidMount:function(){window.VideoplayerLightMngr&&(this.VideoLightMngr=window.VideoplayerLightMngr)}};module.exports=LightMngrMixin},/* 45 */ /***/ function(module,exports){/*jslint browser: true*/ "use strict";var VideoplayerLightMngr,ACTIONS={PAUSE:"PAUSE",MUTE:"MUTE",DESTROY:"DESTROY"};VideoplayerLightMngr=function(){var player_count=0,max_players=2,players_registry={},findAndExecute=function(id,action){var player;for(var pid in players_registry)if(players_registry.hasOwnProperty(pid)&&pid!==id)switch(player=players_registry[pid],action){case ACTIONS.PAUSE:player.controls.isPlaying()&&player.controls.pause();break;case ACTIONS.MUTE:player.controls.getMute()||player.controls.setMute(!0)}},destroyOldest=function(){var current_player,oldest_player,oldest_pid;for(var pid in players_registry)players_registry.hasOwnProperty(pid)&&(current_player=players_registry[pid],(!oldest_player||oldest_player.registeredAt>current_player.registeredAt)&&(oldest_player=current_player,oldest_pid=pid));oldest_player&&(oldest_player.onDestroy&&oldest_player.onDestroy(),delete players_registry[oldest_pid],oldest_player.destroy())};return{registerPlayer:function(id,inst,onDestroy){return players_registry[id]?null:(player_count+=1,players_registry[id]=inst,players_registry[id].registeredAt=new Date,players_registry[id].onDestroy=onDestroy,void(player_count>max_players&&destroyOldest()))},removePlayer:function(id){player_count-=1,delete players_registry[id]},onPlayback:function(id){findAndExecute(id,ACTIONS.PAUSE)},onSound:function(id){findAndExecute(id,ACTIONS.MUTE)},getRegistry:function(){return players_registry},setMaxPlayers:function(max){max_players=max}}},function(){"undefined"!=typeof window&&(window.VideoplayerLightMngr||(window.VideoplayerLightMngr=VideoplayerLightMngr()))}()}]);</script><script>(function() { var docHead = document.head || document.getElementsByTagName("head")[0], style = document.createElement("style"); style.type = "text/css"; if (style.styleSheet) { style.styleSheet.cssText = ".SidekickTV{background:#FFF}.SidekickTV .player-controls{margin-left:-35%;margin-top:-9%;height:30%}.SidekickTV .player-controls .btn-player{margin:0 4%}.SidekickTV .player-controls .btn-player i{background-position:50% 50%;background-repeat:no-repeat;background-color:rgba(255,255,255,.7);background-size:80%;border-radius:100%}.SidekickTV .player-controls .btn-player i.off{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMTQuMDA5LDE2LjkzMiAxMSwxNi45MzIgMTEsMjIuOTM0IDE0LjAzMSwyMi45MzQgMjAuMDA1LDI4LjkxNiAyMC4wMDUsMTAuOTE2IDE0LjAwOSwxNi45MjIgIi8+DQo8cGF0aCBkPSJNMjMuMTA1LDE2LjEyOWwtMC45MDMsMS43Nzd2MC4wNDJjMC41NjcsMC40NjIsMC45MzcsMS4xNTQsMC45MzcsMS45NDRjMCwwLjc5LTAuMzY5LDEuNDc5LTAuOTM3LDEuOTQ0djAuMDA3bDAuOTE3LDEuODA0DQoJYzEuMjEyLTAuODEsMi4wMTgtMi4xODgsMi4wMTgtMy43NTNDMjUuMTM3LDE4LjMxNiwyNC4zMzEsMTYuOTM2LDIzLjEwNSwxNi4xMjl6Ii8+DQo8cGF0aCBkPSJNMjkuNzI1LDE5Ljg5M2MwLTMuMzUyLTEuODQyLTYuMjYyLTQuNTYyLTcuNzk5bC0wLjg5NSwxLjc1djAuMDQ3YzIuMDY3LDEuMjA2LDMuNDYxLDMuNDM5LDMuNDYxLDYuMDAyDQoJcy0xLjM5NCw0Ljc5Ni0zLjQ2MSw2LjAwNXYwLjAwNmwwLjkxLDEuNzc5QzI3Ljg5MywyNi4xNDUsMjkuNzI1LDIzLjIzMiwyOS43MjUsMTkuODkzeiIvPg0KPC9zdmc+DQo=)}.SidekickTV .player-controls .btn-player i.off:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.on{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMTMuMDA0LDE2LjkzMiA5Ljk5NSwxNi45MzIgOS45OTUsMjIuOTM0IDEzLjAyNiwyMi45MzQgMTksMjguOTE2IDE5LDEwLjkxNiAxMy4wMDQsMTYuOTIyICIvPg0KPHBvbHlnb24gcG9pbnRzPSIzMS4yMDcsMTYuNzA3IDI5Ljc5MywxNS4yOTMgMjYuMjUsMTguODM2IDIyLjcwNywxNS4yOTMgMjEuMjkzLDE2LjcwNyAyNC44MzYsMjAuMjUgMjEuMjkzLDIzLjc5MyAyMi43MDcsMjUuMjA3IA0KCTI2LjI1LDIxLjY2NCAyOS43OTMsMjUuMjA3IDMxLjIwNywyMy43OTMgMjcuNjY0LDIwLjI1ICIvPg0KPC9zdmc+DQo=)}.SidekickTV .player-controls .btn-player i.on:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.play{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMTQuMzY2LDEzIDE0LjM2NiwyMC41MDIgMTQuMzY2LDI4IDI2LDIwLjUwMiAiLz4NCjwvc3ZnPg0K)}.SidekickTV .player-controls .btn-player i.play:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.pause{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxyZWN0IHg9IjE0IiB5PSIxMyIgd2lkdGg9IjMiIGhlaWdodD0iMTUiLz4NCjxyZWN0IHg9IjIzIiB5PSIxMyIgd2lkdGg9IjMiIGhlaWdodD0iMTUiLz4NCjwvc3ZnPg0K)}.SidekickTV .player-controls .btn-player i.pause:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.constrict,.SidekickTV .player-controls .btn-player i.expand{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMjQuNjMyLDE0Ljg0OCAyMS4yNzksMTguMjA2IDIyLjgxMiwxOS43NDIgMjYuMTYyLDE2LjM3OCAyOC45ODIsMTkuMTkxIDI5LDEyIDIxLjgwNywxMi4wMzMgIi8+DQo8cG9seWdvbiBwb2ludHM9IjE2LjM2OSwyNi4xNDggMTkuNzI1LDIyLjc5MSAxOC4xODksMjEuMjU4IDE0Ljg0MiwyNC42MTkgMTIuMDIxLDIxLjgwNSAxMiwyOSAxOS4xOTgsMjguOTY0ICIvPg0KPC9zdmc+DQo=)}.SidekickTV .player-controls .btn-player i.constrict:hover,.SidekickTV .player-controls .btn-player i.expand:hover{background-color:#FFF}.SidekickTV .hideDefVidActions .yvp-mute-indicator,.SidekickTV .hideDefVidActions .yvp-start-screen-bar-wrapper,.SidekickTV .hideDefVidActions .yvp-start-screen-button{display:none}.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar{height:4px}.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar .yvp-menu-controls,.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar .yvp-play-btn,.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar .yvp-time-container{display:none}.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar{height:30px}.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar .yvp-menu-controls,.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar .yvp-play-btn,.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar .yvp-time-container{display:block}.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar{height:30px}.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar .yvp-menu-controls,.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar .yvp-play-btn,.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar .yvp-time-container{display:block}.SidekickTV .yvp-main .yvp-setting-btn,.SidekickTV .yvp-main .yvp-watch-later-btn{display:none}.SidekickTVLazy{opacity:0;transition:opacity .3s ease-in}.SidekickTVLazy:hover{opacity:1}.SidekickTVArrow{width:0;height:0;border-bottom:40px solid transparent;border-left:40px solid}.ad-sponsored{color:#888;font-size:11px;margin-right:0;padding-right:0}.VideoPlayerCrossFade-enter{opacity:0;transition:opacity .3s ease-in}.VideoPlayerCrossFade-enter.VideoPlayerCrossFade-enter-active{opacity:1}.VideoPlayerCrossFade-leave{opacity:1;transition:opacity .3s ease-in}.VideoPlayerCrossFade-leave.VideoPlayerCrossFade-leave-active{opacity:0}.StretchedBox{position:absolute;top:0;left:0;width:100%;height:100%}"; } else { style.appendChild(document.createTextNode(".SidekickTV{background:#FFF}.SidekickTV .player-controls{margin-left:-35%;margin-top:-9%;height:30%}.SidekickTV .player-controls .btn-player{margin:0 4%}.SidekickTV .player-controls .btn-player i{background-position:50% 50%;background-repeat:no-repeat;background-color:rgba(255,255,255,.7);background-size:80%;border-radius:100%}.SidekickTV .player-controls .btn-player i.off{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMTQuMDA5LDE2LjkzMiAxMSwxNi45MzIgMTEsMjIuOTM0IDE0LjAzMSwyMi45MzQgMjAuMDA1LDI4LjkxNiAyMC4wMDUsMTAuOTE2IDE0LjAwOSwxNi45MjIgIi8+DQo8cGF0aCBkPSJNMjMuMTA1LDE2LjEyOWwtMC45MDMsMS43Nzd2MC4wNDJjMC41NjcsMC40NjIsMC45MzcsMS4xNTQsMC45MzcsMS45NDRjMCwwLjc5LTAuMzY5LDEuNDc5LTAuOTM3LDEuOTQ0djAuMDA3bDAuOTE3LDEuODA0DQoJYzEuMjEyLTAuODEsMi4wMTgtMi4xODgsMi4wMTgtMy43NTNDMjUuMTM3LDE4LjMxNiwyNC4zMzEsMTYuOTM2LDIzLjEwNSwxNi4xMjl6Ii8+DQo8cGF0aCBkPSJNMjkuNzI1LDE5Ljg5M2MwLTMuMzUyLTEuODQyLTYuMjYyLTQuNTYyLTcuNzk5bC0wLjg5NSwxLjc1djAuMDQ3YzIuMDY3LDEuMjA2LDMuNDYxLDMuNDM5LDMuNDYxLDYuMDAyDQoJcy0xLjM5NCw0Ljc5Ni0zLjQ2MSw2LjAwNXYwLjAwNmwwLjkxLDEuNzc5QzI3Ljg5MywyNi4xNDUsMjkuNzI1LDIzLjIzMiwyOS43MjUsMTkuODkzeiIvPg0KPC9zdmc+DQo=)}.SidekickTV .player-controls .btn-player i.off:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.on{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMTMuMDA0LDE2LjkzMiA5Ljk5NSwxNi45MzIgOS45OTUsMjIuOTM0IDEzLjAyNiwyMi45MzQgMTksMjguOTE2IDE5LDEwLjkxNiAxMy4wMDQsMTYuOTIyICIvPg0KPHBvbHlnb24gcG9pbnRzPSIzMS4yMDcsMTYuNzA3IDI5Ljc5MywxNS4yOTMgMjYuMjUsMTguODM2IDIyLjcwNywxNS4yOTMgMjEuMjkzLDE2LjcwNyAyNC44MzYsMjAuMjUgMjEuMjkzLDIzLjc5MyAyMi43MDcsMjUuMjA3IA0KCTI2LjI1LDIxLjY2NCAyOS43OTMsMjUuMjA3IDMxLjIwNywyMy43OTMgMjcuNjY0LDIwLjI1ICIvPg0KPC9zdmc+DQo=)}.SidekickTV .player-controls .btn-player i.on:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.play{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMTQuMzY2LDEzIDE0LjM2NiwyMC41MDIgMTQuMzY2LDI4IDI2LDIwLjUwMiAiLz4NCjwvc3ZnPg0K)}.SidekickTV .player-controls .btn-player i.play:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.pause{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxyZWN0IHg9IjE0IiB5PSIxMyIgd2lkdGg9IjMiIGhlaWdodD0iMTUiLz4NCjxyZWN0IHg9IjIzIiB5PSIxMyIgd2lkdGg9IjMiIGhlaWdodD0iMTUiLz4NCjwvc3ZnPg0K)}.SidekickTV .player-controls .btn-player i.pause:hover{background-color:#FFF}.SidekickTV .player-controls .btn-player i.constrict,.SidekickTV .player-controls .btn-player i.expand{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQwIDQwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwb2x5Z29uIHBvaW50cz0iMjQuNjMyLDE0Ljg0OCAyMS4yNzksMTguMjA2IDIyLjgxMiwxOS43NDIgMjYuMTYyLDE2LjM3OCAyOC45ODIsMTkuMTkxIDI5LDEyIDIxLjgwNywxMi4wMzMgIi8+DQo8cG9seWdvbiBwb2ludHM9IjE2LjM2OSwyNi4xNDggMTkuNzI1LDIyLjc5MSAxOC4xODksMjEuMjU4IDE0Ljg0MiwyNC42MTkgMTIuMDIxLDIxLjgwNSAxMiwyOSAxOS4xOTgsMjguOTY0ICIvPg0KPC9zdmc+DQo=)}.SidekickTV .player-controls .btn-player i.constrict:hover,.SidekickTV .player-controls .btn-player i.expand:hover{background-color:#FFF}.SidekickTV .hideDefVidActions .yvp-mute-indicator,.SidekickTV .hideDefVidActions .yvp-start-screen-bar-wrapper,.SidekickTV .hideDefVidActions .yvp-start-screen-button{display:none}.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar{height:4px}.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar .yvp-menu-controls,.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar .yvp-play-btn,.SidekickTV .hideDefVidActions .yvp-content .yvp-bottom-bar .yvp-time-container{display:none}.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar{height:30px}.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar .yvp-menu-controls,.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar .yvp-play-btn,.SidekickTV .hideDefVidActions .yvp-content.yvp-state-fullscreen .yvp-bottom-bar .yvp-time-container{display:block}.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar{height:30px}.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar .yvp-menu-controls,.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar .yvp-play-btn,.SidekickTV .hideDefVidActions .yvp-lightbox-ancestor .yvp-content .yvp-bottom-bar .yvp-time-container{display:block}.SidekickTV .yvp-main .yvp-setting-btn,.SidekickTV .yvp-main .yvp-watch-later-btn{display:none}.SidekickTVLazy{opacity:0;transition:opacity .3s ease-in}.SidekickTVLazy:hover{opacity:1}.SidekickTVArrow{width:0;height:0;border-bottom:40px solid transparent;border-left:40px solid}.ad-sponsored{color:#888;font-size:11px;margin-right:0;padding-right:0}.VideoPlayerCrossFade-enter{opacity:0;transition:opacity .3s ease-in}.VideoPlayerCrossFade-enter.VideoPlayerCrossFade-enter-active{opacity:1}.VideoPlayerCrossFade-leave{opacity:1;transition:opacity .3s ease-in}.VideoPlayerCrossFade-leave.VideoPlayerCrossFade-leave-active{opacity:0}.StretchedBox{position:absolute;top:0;left:0;width:100%;height:100%}")); } docHead.appendChild(style);})();var backfillSidekickTV = true, sidekickTVSettings = {"mostTxtColor":"#000","mostBgColor":"#006e8e","descBgColor":"#dbdbdb","logoHeight":"40px","ylogo":"https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/m/content_index/images/sidekick_tv_finance-2e9c408.png","singlePlayer":true,"yvpGConfig":{"comscoreC4":"US finance","region":"US","lang":"en-US","site":"finance"},"autoplay":false,"playerJs":"https://web.archive.org/web/20160217234258/https://yep.video.yahoo.com/js/3/videoplayer-min.js?r=nextgen-flash&ypv=prod","YVAPId":["1054","1054"],"pageSpaceId":"1183300101","bucket":"","waitDomreadyInit":false,"addViewportHandler":true,"shuffle":false,"videoCount":0,"defaultVidActions":true,"html5":false,"expName":"sidekickTVlrecbackfill","iframeRender":false,"playlist":[{"id":"d7cd604b-4cb2-36f7-9d5f-cb244c9814e4","title":"‘The Donald’ Trumps GOP Field in Palmetto State Poll","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/O7Am9_eoGX0XB88UZnbeQg--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/7d77586acea7253e8e0d29e7c14062c6","width":640,"height":360},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/eSITsX8f91BVwBckW.2qpA--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/7d77586acea7253e8e0d29e7c14062c6","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/7d77586acea7253e8e0d29e7c14062c6","width":640,"height":360}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/donald-trumps-gop-field-palmetto-232029408.html","provider":{"name":"Bloomberg Video"}},{"id":"845692eb-a728-3dd4-ab48-4308c621112e","title":"Without Scalia, Court's Oral Arguments Will Change","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/JIRTZxfroxGbW.AOjNvZ1A--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/wall_street_journal_733/abeedc3a0a62c2c696ea7429acfb5a1a","width":1280,"height":720},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/K5c_BvfkykZr.tMQuK.6NQ--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/wall_street_journal_733/abeedc3a0a62c2c696ea7429acfb5a1a","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/wall_street_journal_733/abeedc3a0a62c2c696ea7429acfb5a1a","width":1280,"height":720}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/without-scalia-courts-oral-arguments-231702140.html","provider":{"name":"WSJ Live"}},{"id":"6a60581c-4122-3f7d-b80c-76c8eea29ae8","title":"Bombardier's Fight for Survival","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/yx_iNXk0WnMS3vayCSNKeA--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/1b404489e2509ed82d423f0b3335fc96","width":640,"height":360},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/GP2FqMrPDX8hD0PseA2B1A--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/1b404489e2509ed82d423f0b3335fc96","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/1b404489e2509ed82d423f0b3335fc96","width":640,"height":360}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/bombardiers-fight-survival-231449183.html","provider":{"name":"Bloomberg Video"}},{"id":"596cc37f-fd48-365f-805d-43590d9c5b69","title":"Counter Punxh: Ted Cruz Strikes Back Against Donald Trump","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/FdpGgxDMC4uXeLacPJ5TJw--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/02184ba43225e77bd514e5df879e2a43","width":640,"height":360},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/F5DW_931bObhcLxZRBJw3A--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/02184ba43225e77bd514e5df879e2a43","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/bloomberg_932/02184ba43225e77bd514e5df879e2a43","width":640,"height":360}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/counter-punxh-ted-cruz-strikes-230842629.html","provider":{"name":"Bloomberg Video"}},{"id":"9f0810e4-71b8-31d2-8b9d-04135592dc9b","title":"Where to Find the Best Stock Bargains","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/IS4_d_FXEAdVuW5BkoA3aQ--/dz0xMjgwO2g9NzIwO2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/wall_street_journal_733/054dfbcc7561c304d6569b15b4f5135c","width":1280,"height":720},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/keuB.__OaQYlCM2mLZO4Sg--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/wall_street_journal_733/054dfbcc7561c304d6569b15b4f5135c","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/wall_street_journal_733/054dfbcc7561c304d6569b15b4f5135c","width":1280,"height":720}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/where-best-stock-bargains-230702101.html","provider":{"name":"WSJ Live"}},{"id":"23212d9a-565f-39d1-a3c0-79e2f168f3bc","title":"Follow Through Day; Energy Surges, Priceline Zooms","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/xfmnEaTqr0DgPoDVnkc7TQ--/dz0xMjQ0O2g9NzE3O2FwcGlkPXl0YWNoeW9u/http://media.zenfs.com/en-US/video/video.ibd.com/c94f034302928747f7e767dc396d80df","width":1244,"height":717},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/NrxBVgUSHM3_hvQ0ii.aTQ--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.ibd.com/c94f034302928747f7e767dc396d80df","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.ibd.com/c94f034302928747f7e767dc396d80df","width":1244,"height":717}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/day-energy-surges-priceline-zooms-225612084.html","provider":{"name":"Investor's Business Daily Video"}},{"id":"8488a762-0f3c-31c5-aabf-cd3e9c12a424","title":"Does Apple have a right to refuse the DOJ’s request to unlock a private phone?","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/78dFkeqD88Q9_WdEGg22fA--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.foxbusinessvideos.com/dbfc1d96acaffa26213341356d8069c0","width":640,"height":360},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s1.yimg.com/uu/api/res/1.2/zQLBU65nMroJxa2vWqB0kQ--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.foxbusinessvideos.com/dbfc1d96acaffa26213341356d8069c0","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.foxbusinessvideos.com/dbfc1d96acaffa26213341356d8069c0","width":640,"height":360}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/does-apple-refuse-doj-request-224809683.html","provider":{"name":"Fox Business Videos"}},{"id":"08eddbd8-f453-3943-b79b-36a6f058f6fb","title":"Apple’s privacy battle with the federal government","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/S7ssdTwrMx9ueR_RjGg7gg--/dz02NDA7aD0zNjA7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.foxbusinessvideos.com/26bfec7faa4f144d8f1c5644a8d7d7f8","width":640,"height":360},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/v7Kxlg0Oix3jWg8YNVVLhw--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.foxbusinessvideos.com/26bfec7faa4f144d8f1c5644a8d7d7f8","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.foxbusinessvideos.com/26bfec7faa4f144d8f1c5644a8d7d7f8","width":640,"height":360}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/apple-privacy-battle-federal-government-222853441.html","provider":{"name":"Fox Business Videos"}},{"id":"2868e526-f301-32a9-af34-dd62a80e7e0c","title":"3 breakout stocks to buy","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/YIZKPGhy8r0fItr01H7jDQ--/dz00MDA7aD0yMjU7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.cnbc2.com/d20efad291e1567edb7c68dfd2501bfd","width":400,"height":225},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/qOPRMqcA2vrh6hk1SM6sVQ--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.cnbc2.com/d20efad291e1567edb7c68dfd2501bfd","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.cnbc2.com/d20efad291e1567edb7c68dfd2501bfd","width":400,"height":225}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/3-breakout-stocks-buy-222600558.html","provider":{"name":"CNBC Videos"}},{"id":"6b3b848f-00e6-3d17-b4df-73e0e6b67af3","title":"Cruz leads national GOP poll","thumbnails":[{"tag":"original","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/FBo1V2A2XgAe2exsRpeWgA--/dz00MDA7aD0yMjU7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.cnbc2.com/b2e06093e14017d57d6f5757d4c1972b","width":400,"height":225},{"tag":"300x169","url":"https://web.archive.org/web/20160217234258/https://s.yimg.com/uu/api/res/1.2/qn9z_KQuGIC5Osm9hM_QpA--/Zmk9ZmlsbDtweW9mZj0wO3c9MzAwO2g9MTY5O3NtPTE7YXBwaWQ9eXRhY2h5b24-/https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.cnbc2.com/b2e06093e14017d57d6f5757d4c1972b","width":300,"height":169},{"tag":"original_raw","url":"https://web.archive.org/web/20160217234258/http://media.zenfs.com/en-US/video/video.cnbc2.com/b2e06093e14017d57d6f5757d4c1972b","width":400,"height":225}],"targetUrl":"https://web.archive.org/web/20160217234258/https://screen.yahoo.com/sidekick-finance/cruz-leads-national-gop-poll-221500043.html","provider":{"name":"CNBC Videos"}}]};(function() { var ReactContainerId = document.getElementById("td-applet-sidekick-tv_container"); if (backfillSidekickTV) { sidekickTVBackFillHandler(); } else if (ReactContainerId){ React && React.renderComponent(React.DOM.div({className: "yom-app ReactYomApp ", id: "applet_sidekick_tv"}, SidekickTV(sidekickTVSettings)), ReactContainerId); }})();function sidekickTVBackFillHandler() { if (!YMedia || !YMedia.Global) { console.log("SIDEKICK-TV-APPLET: YMedia not ready"); return; } YMedia.Global.on("sidekicktv:backfill", function () { sidekickTVBackFill(); });};function sidekickTVBackFill() { console.log("SIDEKICK-TV-APPLET: start backfill"); YMedia.Global.fire("rapid-tracker:event", { mod_id: "sidekicktv", data: { name: "secview", keys: { sec: "stv", slk: "start" } } }); var ReactContainerId = document.getElementById("td-applet-sidekick-tv_container"); if (ReactContainerId && sidekickTVSettings) { sidekickTVSettings.autoplay = true; YMedia.Global.fire("rapid-tracker:event", { mod_id: "sidekicktv", data: { name: "secview", keys: { sec: "stv", slk: "render" } } }); React && React.renderComponent(React.DOM.div({className: "yom-app ReactYomApp ", id: "applet_sidekick_tv"}, SidekickTV(sidekickTVSettings)), ReactContainerId); }};</script> <section class="yom-mod " id="mediacontentgenericlistings" data-ylk="mid:mediacontentgenericlistings;mpos:3;cat:What+to+read+next;t1:a4;t2:lst-ct;sec:lst-ct;"> <div class="yom-generic-listings-module yom-app sidekick"> <div class="hd"> <h2>What to read next</h2> </div> <div class="bd"> <div class="latest-content-inline"> <ul> <li class="generic-list-item story sidekick" data-uuid="4606834f-78d3-3e3e-9e96-168b655479e7"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/apple-resists-government-request-to-weaken-iphone-security-152810845.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:What+to+read+next;cpos:1;test:;g:4606834f-78d3-3e3e-9e96-168b655479e7;aid:;prov:Yahoo Finance;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/slYEQI52NdZN99Av.kzk9A--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/homerun/digital_trends_973/a55641b472f5d4e9481e2b3af62ad143.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/apple-resists-government-request-to-weaken-iphone-security-152810845.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:What+to+read+next;cpos:1;test:;g:4606834f-78d3-3e3e-9e96-168b655479e7;aid:;prov:Yahoo Finance;pkgt:15;">Apple resists government request to weaken iPhone security</a> </div> </li> <li data-ad="pencil" data-ad-add="{"class":"ad-active"}" class="generic-list-item story sidekick" data-uuid="aa8c4b85-a211-37e7-b0d5-4ee0484b9fb5"> <a class="thumb-link" data-ad-replace="{"href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:1;elmt:ad;cat:What+to+read+next;cpos:8;test:;g:;aid:aa8c4b85-a211-37e7-b0d5-4ee0484b9fb5;prov:;pkgt:15;" href="/web/20160217234258/http://finance.yahoo.com/news/my-dog-is-a-crook-175834906.html"> <img data-ad-image data-ad-replace="{"src":"secHqImage"}" src="https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/80MV0PCVfbydc5tOXQNAFQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://l.yimg.com/os/publish-images/finance/2016-02-11/b54435f0-d0e6-11e5-8a9c-3567d41d9671_Beach-closeup.jpg.cf.jpg" width="300" height="156"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/my-dog-is-a-crook-175834906.html" data-ad-replace="{"_markup":"headline","href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:1;elmt:ad;cat:What+to+read+next;cpos:8;test:;g:;aid:aa8c4b85-a211-37e7-b0d5-4ee0484b9fb5;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30"}">My dog is a crook</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="Dn D-i ad-sponsored" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:sp;cat:What+to+read+next;cpos:8;test:;g:;aid:aa8c4b85-a211-37e7-b0d5-4ee0484b9fb5;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/kb/SLN22774.html?impressions=true" target="_blank">Sponsored</a> <a href="/web/20160217234258/http://finance.yahoo.com/news/my-dog-is-a-crook-175834906.html" data-ad-replace="{"href":"clickUrl","_markup":"source"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:adv;cat:What+to+read+next;cpos:8;test:;g:;aid:aa8c4b85-a211-37e7-b0d5-4ee0484b9fb5;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30 D-i"}" class="ad-source">Yahoo Finance</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="ad-icon Dn" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:help;cat:What+to+read+next;cpos:8;test:;g:;aid:aa8c4b85-a211-37e7-b0d5-4ee0484b9fb5;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank"><i class="Icon"></i></a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="8027a6d0-cd32-33d6-8982-692000f82da8"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/yahoo-finance-to-host-first-ever-live-stream-of-berkshire-meeting-164510076.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:What+to+read+next;cpos:2;test:;g:8027a6d0-cd32-33d6-8982-692000f82da8;aid:;prov:Yahoo Finance;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/4s4Y3ibkEDiKbYE2DTYgXQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@f98b038f-b0c5-3d6f-854f-cdf9f0e974df_FULL.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/yahoo-finance-to-host-first-ever-live-stream-of-berkshire-meeting-164510076.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:What+to+read+next;cpos:2;test:;g:8027a6d0-cd32-33d6-8982-692000f82da8;aid:;prov:Yahoo Finance;pkgt:15;">Yahoo Finance to host first-ever live stream of Berkshire shareholder …</a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="2c06c4e0-a55f-3869-823f-1621525ac393"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/why-donald-trump-is-a-lousy-executive-155008055.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:What+to+read+next;cpos:3;test:;g:2c06c4e0-a55f-3869-823f-1621525ac393;aid:;prov:Yahoo Finance;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/yModSk73jufFssN807c1dg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en_us/News/ap_webfeeds/72ea9c3d8643a208900f6a7067009e54.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/why-donald-trump-is-a-lousy-executive-155008055.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:What+to+read+next;cpos:3;test:;g:2c06c4e0-a55f-3869-823f-1621525ac393;aid:;prov:Yahoo Finance;pkgt:15;">Why Donald Trump is a lousy executive</a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="e3b5afd0-583c-3403-9085-277f9620a76a"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/smart-devices-pose-new-risks-but-we-re-a-long-way-from-george-orwell-165926053.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:What+to+read+next;cpos:4;test:;g:e3b5afd0-583c-3403-9085-277f9620a76a;aid:;prov:Yahoo Finance;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/zEkXMl8bF8DNe7tOcl3Qwg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en_us/News/ap_webfeeds/445f63417314e9018c0f6a7067006c58.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/smart-devices-pose-new-risks-but-we-re-a-long-way-from-george-orwell-165926053.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:What+to+read+next;cpos:4;test:;g:e3b5afd0-583c-3403-9085-277f9620a76a;aid:;prov:Yahoo Finance;pkgt:15;">Smart devices pose new risks, but we're a long way from George Orwell</a> </div> </li> <li data-ad="pencil" data-ad-add="{"class":"ad-active"}" class="generic-list-item story sidekick" data-uuid="03c50b14-8817-38f7-81ab-d72cd92db41b"> <a class="thumb-link" data-ad-replace="{"href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:1;elmt:ad;cat:What+to+read+next;cpos:7;test:;g:;aid:03c50b14-8817-38f7-81ab-d72cd92db41b;prov:;pkgt:15;" href="/web/20160217234258/http://finance.yahoo.com/news/update---100k-in-debt--1-semester-left-but-1-step-closer-to-graduation-213733920.html"> <img data-ad-image data-ad-replace="{"src":"secHqImage"}" src="https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/vEX3Lr8jJLVVJ_lFfP5Rzg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@e2e802d4-f12d-3089-8562-6e6a32dfc3c3_FULL.png.cf.jpg" width="300" height="156"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/update---100k-in-debt--1-semester-left-but-1-step-closer-to-graduation-213733920.html" data-ad-replace="{"_markup":"headline","href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:1;elmt:ad;cat:What+to+read+next;cpos:7;test:;g:;aid:03c50b14-8817-38f7-81ab-d72cd92db41b;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30"}">Update: $100K in debt, 1 semester left but 1 step closer to graduation</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="Dn D-i ad-sponsored" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:sp;cat:What+to+read+next;cpos:7;test:;g:;aid:03c50b14-8817-38f7-81ab-d72cd92db41b;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/kb/SLN22774.html?impressions=true" target="_blank">Sponsored</a> <a href="/web/20160217234258/http://finance.yahoo.com/news/update---100k-in-debt--1-semester-left-but-1-step-closer-to-graduation-213733920.html" data-ad-replace="{"href":"clickUrl","_markup":"source"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:adv;cat:What+to+read+next;cpos:7;test:;g:;aid:03c50b14-8817-38f7-81ab-d72cd92db41b;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30 D-i"}" class="ad-source">Yahoo Finance</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="ad-icon Dn" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:help;cat:What+to+read+next;cpos:7;test:;g:;aid:03c50b14-8817-38f7-81ab-d72cd92db41b;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank"><i class="Icon"></i></a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="51d7c1db-228a-3e1d-ae3c-04b6ca70d41c"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/youngest-black-ceo-of-a-public-company-joel-gay-energy-recovery-192823579.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:What+to+read+next;cpos:5;test:;g:51d7c1db-228a-3e1d-ae3c-04b6ca70d41c;aid:;prov:Yahoo Finance;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l2.yimg.com/bt/api/res/1.2/4cLHFAcWDfsL4U5mfIcnFg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://l.yimg.com/os/publish-images/finance/2016-02-12/c4ca72d0-d1a1-11e5-832e-3d4e6f306300_Joel-Gay-hi-res-logo.jpeg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/youngest-black-ceo-of-a-public-company-joel-gay-energy-recovery-192823579.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:What+to+read+next;cpos:5;test:;g:51d7c1db-228a-3e1d-ae3c-04b6ca70d41c;aid:;prov:Yahoo Finance;pkgt:15;">Meet the youngest black CEO of a public company</a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="aa46adce-722e-34b6-8a92-a9f2ce165b0c"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/how-bernie-sanders-would-remake-the-whole-u-s--economy-170549663.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:What+to+read+next;cpos:6;test:;g:aa46adce-722e-34b6-8a92-a9f2ce165b0c;aid:;prov:Yahoo Finance;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/HI_m5rS_02EsGfgGzuYFPA--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en_us/News/ap_webfeeds/5a89cc4bc9fb3407900f6a706700d307.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/how-bernie-sanders-would-remake-the-whole-u-s--economy-170549663.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:What+to+read+next;cpos:6;test:;g:aa46adce-722e-34b6-8a92-a9f2ce165b0c;aid:;prov:Yahoo Finance;pkgt:15;">How Bernie Sanders would remake the whole U.S. economy</a> </div> </li> </ul> </div> </div> </div> </section> <section class="yom-mod " id="mediacontentgenericlistings_2" data-ylk="mid:mediacontentgenericlistings_2;mpos:1;cat:Sidekick+More+Market+News;t1:a4;t2:lst-ct;sec:lst-ct;"> <div class="yom-generic-listings-module yom-app yom-generic-listings-notitle sidekick"> <div class="hd"> <h2>Sidekick More Market News</h2> </div> <div class="bd"> <div class="latest-content-inline"> <ul> <li class="generic-list-item video sidekick" data-uuid="a34f5f5d-591f-3648-943e-5c72ed076993"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/video/michael-kors-gets-flirty-natural-232123899.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:1;test:;g:a34f5f5d-591f-3648-943e-5c72ed076993;aid:;prov:Reuters Videos;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/BX_up_TzZtRiiR25OI61kw--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/video.reutersnews.com/2016-02-17T232051Z_1_LOP000HUOSA45_RTRMADP_BASEIMAGE-960X540_FASHION-NEWYORK-MICHAEL-KORS-ROUGH-CUT.JPG.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8"> <span class="overlay-icon icon-white-play-xsmall"></span> <span class="overlay-info-num">00:50</span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/michael-kors-gets-flirty-natural-232123899.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:1;test:;g:a34f5f5d-591f-3648-943e-5c72ed076993;aid:;prov:Reuters Videos;pkgt:15;">Michael Kors gets flirty and natural for fall 2016</a> <div class="content-length txt-color">00:50</div> </div> </li> <li data-ad="pencil" data-ad-add="{"class":"ad-active"}" class="generic-list-item video sidekick" data-uuid="23212d9a-565f-39d1-a3c0-79e2f168f3bc"> <a class="thumb-link" data-ad-replace="{"href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:1;elmt:ad;cat:Sidekick+More+Market+News;cpos:8;test:;g:;aid:23212d9a-565f-39d1-a3c0-79e2f168f3bc;prov:;pkgt:15;" href="/web/20160217234258/http://finance.yahoo.com/video/day-energy-surges-priceline-zooms-225612084.html"> <img data-ad-image data-ad-replace="{"src":"secHqImage"}" src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/ImSD78o0uTzKAtSE0zsgKw--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/video.ibd.com/c94f034302928747f7e767dc396d80df.cf.jpg" width="300" height="156"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/day-energy-surges-priceline-zooms-225612084.html" data-ad-replace="{"_markup":"headline","href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:1;elmt:ad;cat:Sidekick+More+Market+News;cpos:8;test:;g:;aid:23212d9a-565f-39d1-a3c0-79e2f168f3bc;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30"}">Follow Through Day; Energy Surges, Priceline Zooms</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="Dn D-i ad-sponsored" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:sp;cat:Sidekick+More+Market+News;cpos:8;test:;g:;aid:23212d9a-565f-39d1-a3c0-79e2f168f3bc;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/kb/SLN22774.html?impressions=true" target="_blank">Sponsored</a> <a href="/web/20160217234258/http://finance.yahoo.com/video/day-energy-surges-priceline-zooms-225612084.html" data-ad-replace="{"href":"clickUrl","_markup":"source"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:adv;cat:Sidekick+More+Market+News;cpos:8;test:;g:;aid:23212d9a-565f-39d1-a3c0-79e2f168f3bc;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30 D-i"}" class="ad-source">Investor's Business Daily Video</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="ad-icon Dn" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:help;cat:Sidekick+More+Market+News;cpos:8;test:;g:;aid:23212d9a-565f-39d1-a3c0-79e2f168f3bc;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank"><i class="Icon"></i></a> </div> </li> <li class="generic-list-item video sidekick" data-uuid="d7cd604b-4cb2-36f7-9d5f-cb244c9814e4"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/video/donald-trumps-gop-field-palmetto-232029408.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:2;test:;g:d7cd604b-4cb2-36f7-9d5f-cb244c9814e4;aid:;prov:Bloomberg Video;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/fCPa_IP1ONsZIcwBabCdSg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/bloomberg_932/7d77586acea7253e8e0d29e7c14062c6.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8"> <span class="overlay-icon icon-white-play-xsmall"></span> <span class="overlay-info-num">05:39</span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/donald-trumps-gop-field-palmetto-232029408.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:2;test:;g:d7cd604b-4cb2-36f7-9d5f-cb244c9814e4;aid:;prov:Bloomberg Video;pkgt:15;">‘The Donald’ Trumps GOP Field in Palmetto State Poll</a> <div class="content-length txt-color">05:39</div> </div> </li> <li class="generic-list-item video sidekick" data-uuid="845692eb-a728-3dd4-ab48-4308c621112e"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/video/without-scalia-courts-oral-arguments-231702140.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:3;test:;g:845692eb-a728-3dd4-ab48-4308c621112e;aid:;prov:WSJ Live;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/UfSGGatzXdOCuXfde0owjw--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/wall_street_journal_733/abeedc3a0a62c2c696ea7429acfb5a1a.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8"> <span class="overlay-icon icon-white-play-xsmall"></span> <span class="overlay-info-num">03:04</span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/without-scalia-courts-oral-arguments-231702140.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:3;test:;g:845692eb-a728-3dd4-ab48-4308c621112e;aid:;prov:WSJ Live;pkgt:15;">Without Scalia, Court's Oral Arguments Will Change</a> <div class="content-length txt-color">03:04</div> </div> </li> <li class="generic-list-item video sidekick" data-uuid="6a60581c-4122-3f7d-b80c-76c8eea29ae8"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/video/bombardiers-fight-survival-231449183.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:4;test:;g:6a60581c-4122-3f7d-b80c-76c8eea29ae8;aid:;prov:Bloomberg Video;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/AQ8dYh2ZT4aQyQHi5orU5g--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/bloomberg_932/1b404489e2509ed82d423f0b3335fc96.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8"> <span class="overlay-icon icon-white-play-xsmall"></span> <span class="overlay-info-num">02:43</span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/bombardiers-fight-survival-231449183.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:4;test:;g:6a60581c-4122-3f7d-b80c-76c8eea29ae8;aid:;prov:Bloomberg Video;pkgt:15;">Bombardier's Fight for Survival</a> <div class="content-length txt-color">02:43</div> </div> </li> <li data-ad="pencil" data-ad-add="{"class":"ad-active"}" class="generic-list-item video sidekick" data-uuid="8bd910ab-249c-3c42-b12f-19367cc5c419"> <a class="thumb-link" data-ad-replace="{"href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:1;elmt:ad;cat:Sidekick+More+Market+News;cpos:7;test:;g:;aid:8bd910ab-249c-3c42-b12f-19367cc5c419;prov:;pkgt:15;" href="/web/20160217234258/http://finance.yahoo.com/video/babys-body-found-connecticut-river-132831327.html"> <img data-ad-image data-ad-replace="{"src":"secHqImage"}" src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/aSnZutIP5spl6THmDEM.ZQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/video.reutersnews.com/2016-02-17T230511Z_1_LOP000HUOSE3Z_RTRMADP_BASEIMAGE-960X540_USA-ELECTION-TRUMP-CRUZ-ROUGH-CUT.JPG.cf.jpg" width="300" height="156"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/babys-body-found-connecticut-river-132831327.html" data-ad-replace="{"_markup":"headline","href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:1;elmt:ad;cat:Sidekick+More+Market+News;cpos:7;test:;g:;aid:8bd910ab-249c-3c42-b12f-19367cc5c419;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30"}">Trump on Cruz: "He raises the Bible, and yet he tells fibs, he tells …</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="Dn D-i ad-sponsored" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:sp;cat:Sidekick+More+Market+News;cpos:7;test:;g:;aid:8bd910ab-249c-3c42-b12f-19367cc5c419;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/kb/SLN22774.html?impressions=true" target="_blank">Sponsored</a> <a href="/web/20160217234258/http://finance.yahoo.com/video/babys-body-found-connecticut-river-132831327.html" data-ad-replace="{"href":"clickUrl","_markup":"source"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:adv;cat:Sidekick+More+Market+News;cpos:7;test:;g:;aid:8bd910ab-249c-3c42-b12f-19367cc5c419;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30 D-i"}" class="ad-source">Reuters Videos</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="ad-icon Dn" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:help;cat:Sidekick+More+Market+News;cpos:7;test:;g:;aid:8bd910ab-249c-3c42-b12f-19367cc5c419;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank"><i class="Icon"></i></a> </div> </li> <li class="generic-list-item video sidekick" data-uuid="596cc37f-fd48-365f-805d-43590d9c5b69"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/video/counter-punxh-ted-cruz-strikes-230842629.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:5;test:;g:596cc37f-fd48-365f-805d-43590d9c5b69;aid:;prov:Bloomberg Video;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/aeSs_LC5QKe856fRl.NaHw--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/bloomberg_932/02184ba43225e77bd514e5df879e2a43.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8"> <span class="overlay-icon icon-white-play-xsmall"></span> <span class="overlay-info-num">03:26</span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/counter-punxh-ted-cruz-strikes-230842629.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:5;test:;g:596cc37f-fd48-365f-805d-43590d9c5b69;aid:;prov:Bloomberg Video;pkgt:15;">Counter Punxh: Ted Cruz Strikes Back Against Donald Trump</a> <div class="content-length txt-color">03:26</div> </div> </li> <li class="generic-list-item video sidekick" data-uuid="9f0810e4-71b8-31d2-8b9d-04135592dc9b"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/video/where-best-stock-bargains-230702101.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:6;test:;g:9f0810e4-71b8-31d2-8b9d-04135592dc9b;aid:;prov:WSJ Live;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/nOkFIE.LqWlTOBzX.EWZ7w--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/wall_street_journal_733/054dfbcc7561c304d6569b15b4f5135c.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8"> <span class="overlay-icon icon-white-play-xsmall"></span> <span class="overlay-info-num">04:22</span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/video/where-best-stock-bargains-230702101.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:3;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+More+Market+News;cpos:6;test:;g:9f0810e4-71b8-31d2-8b9d-04135592dc9b;aid:;prov:WSJ Live;pkgt:15;">Where to Find the Best Stock Bargains</a> <div class="content-length txt-color">04:22</div> </div> </li> </ul> </div> </div> </div> </section> <section class="yom-mod " id="mediacontentfptodaylistings" data-ylk="mid:mediacontentfptodaylistings;mpos:2;cat:Sidekick+FP+Today;t1:a4;t2:lst-ct;sec:lst-ct;"> <div class="yom-generic-listings-module yom-app yom-generic-listings-notitle sidekick"> <div class="hd"> <h2>Sidekick FP Today</h2> </div> <div class="bd"> <div class="latest-content-inline"> <ul> <li class="generic-list-item sidekick" data-uuid=""> <a class="thumb-link" href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/cut-health-care-bill-pay-031100852.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:1;test:;g:;aid:;prov:;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/qvRi9AWx3VsoRae6fktGkA--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://l.yimg.com/nn/fp/rsz/021616/images/smush/knee_635x250_1455650925.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/cut-health-care-bill-pay-031100852.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:1;test:;g:;aid:;prov:;pkgt:15;">Cash yields massive health care discounts</a> </div> </li> <li data-ad="pencil" data-ad-add="{"class":"ad-active"}" class="generic-list-item video sidekick" data-uuid=""> <a class="thumb-link" data-ad-replace="{"href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:1;elmt:ad;cat:Sidekick+FP+Today;cpos:5;test:;g:;aid:;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/why-pay-employees-exercise-threaten-220003838.html"> <img data-ad-image data-ad-replace="{"src":"secHqImage"}" src="https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/z3ZrBHABu_ta8i3BxCJNAg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://l.yimg.com/nn/fp/rsz/021616/images/smush/workoutCorbis_635x250_1455651915.jpg.cf.jpg" width="300" height="156"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> </a> <div class="listing-title "> <a href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/why-pay-employees-exercise-threaten-220003838.html" data-ad-replace="{"_markup":"headline","href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:1;elmt:ad;cat:Sidekick+FP+Today;cpos:5;test:;g:;aid:;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30"}">Threatening employees to get healthier?</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="Dn D-i ad-sponsored" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:sp;cat:Sidekick+FP+Today;cpos:5;test:;g:;aid:;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/kb/SLN22774.html?impressions=true" target="_blank">Sponsored</a> <a href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/why-pay-employees-exercise-threaten-220003838.html" data-ad-replace="{"href":"clickUrl","_markup":"source"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:adv;cat:Sidekick+FP+Today;cpos:5;test:;g:;aid:;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30 D-i"}" class="ad-source"></a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="ad-icon Dn" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:help;cat:Sidekick+FP+Today;cpos:5;test:;g:;aid:;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank"><i class="Icon"></i></a> </div> </li> <li class="generic-list-item sidekick" data-uuid=""> <a class="thumb-link" href="https://web.archive.org/web/20160217234258/http://finance.yahoo.com/news/5-ways-scalia-death-affect-123605843.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:2;test:;g:;aid:;prov:;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/_T4S74vQqK8NXjegTklemg--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://l.yimg.com/nn/fp/rsz/021716/images/smush/scalia1_635x250_1455693615.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="https://web.archive.org/web/20160217234258/http://finance.yahoo.com/news/5-ways-scalia-death-affect-123605843.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:2;test:;g:;aid:;prov:;pkgt:15;">How Scalia's death will affect U.S. business</a> </div> </li> <li class="generic-list-item sidekick" data-uuid=""> <a class="thumb-link" href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/paul-aker-us-marshal-student-loan-debt-arrest-212047386.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:3;test:;g:;aid:;prov:;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/KsJ1nIiICad_JLS7h25.0A--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://l.yimg.com/nn/fp/rsz/021716/images/smush/75f0bc70-d596-11e5-946c-592f451d599f_aker_crime_FP_635x250_1455728273.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/paul-aker-us-marshal-student-loan-debt-arrest-212047386.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:3;test:;g:;aid:;prov:;pkgt:15;">Student loan arrest story not what it seems</a> </div> </li> <li class="generic-list-item sidekick" data-uuid=""> <a class="thumb-link" href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/why-100-bills-500-notes-113131296.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:4;test:;g:;aid:;prov:;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/nDSg7x67pZ8SYvJym.aOAQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://l.yimg.com/nn/fp/rsz/021716/images/smush/bill_635x250_1455735919.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="https://web.archive.org/web/20160217234258/https://finance.yahoo.com/news/why-100-bills-500-notes-113131296.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+FP+Today;cpos:4;test:;g:;aid:;prov:;pkgt:15;">Could the $100 bill's days be numbered?</a> </div> </li> </ul> </div> </div> </div> </section> <section class="yom-mod " id="mediacontentgenericlistings_3" data-ylk="mid:mediacontentgenericlistings_3;mpos:4;cat:Sidekick+top+story;t1:a4;t2:lst-ct;sec:lst-ct;"> <div class="yom-generic-listings-module yom-app yom-generic-listings-notitle sidekick"> <div class="hd"> <h2>Sidekick top story</h2> </div> <div class="bd"> <div class="latest-content-inline"> <ul> <li class="generic-list-item story sidekick" data-uuid="5ba2c129-f9f8-3751-8b5c-85e1ae13d5f1"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/these-are-wall-street-s-new-favorite-candidates-183653260.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+top+story;cpos:1;test:;g:5ba2c129-f9f8-3751-8b5c-85e1ae13d5f1;aid:;prov:Yahoo Finance;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/pFLA3L0OsF1NjcHIinqqeQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/video/video.pd2upload.com/video.yahoofinance.com@42002393-cde2-3ed9-b025-41cc947e491d_FULL.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/these-are-wall-street-s-new-favorite-candidates-183653260.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+top+story;cpos:1;test:;g:5ba2c129-f9f8-3751-8b5c-85e1ae13d5f1;aid:;prov:Yahoo Finance;pkgt:15;">These are Wall Street’s new favorite candidates</a> </div> </li> <li data-ad="pencil" data-ad-add="{"class":"ad-active"}" class="generic-list-item story sidekick" data-uuid="113a9b0f-ced5-332e-b08e-e444947797ef"> <a class="thumb-link" data-ad-replace="{"href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:1;elmt:ad;cat:Sidekick+top+story;cpos:8;test:;g:;aid:113a9b0f-ced5-332e-b08e-e444947797ef;prov:;pkgt:15;" href="/web/20160217234258/http://finance.yahoo.com/news/amex-overhaul-management-cut-jobs-194538830.html"> <img data-ad-image data-ad-replace="{"src":"secHqImage"}" src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/RpEaOa4x2w2CSuRZPgOGiA--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-02-17T194538Z_1_LYNXNPEC1G1BQ_RTROPTP_3_AMEX_original.jpg.cf.jpg" width="300" height="156"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/amex-overhaul-management-cut-jobs-194538830.html" data-ad-replace="{"_markup":"headline","href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:1;elmt:ad;cat:Sidekick+top+story;cpos:8;test:;g:;aid:113a9b0f-ced5-332e-b08e-e444947797ef;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30"}">AmEx to overhaul management, cut jobs</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="Dn D-i ad-sponsored" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:sp;cat:Sidekick+top+story;cpos:8;test:;g:;aid:113a9b0f-ced5-332e-b08e-e444947797ef;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/kb/SLN22774.html?impressions=true" target="_blank">Sponsored</a> <a href="/web/20160217234258/http://finance.yahoo.com/news/amex-overhaul-management-cut-jobs-194538830.html" data-ad-replace="{"href":"clickUrl","_markup":"source"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:adv;cat:Sidekick+top+story;cpos:8;test:;g:;aid:113a9b0f-ced5-332e-b08e-e444947797ef;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30 D-i"}" class="ad-source">Reuters</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="ad-icon Dn" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:help;cat:Sidekick+top+story;cpos:8;test:;g:;aid:113a9b0f-ced5-332e-b08e-e444947797ef;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank"><i class="Icon"></i></a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="87f4b2e9-b936-3e44-8572-03ef1a5b529f"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/dow-jumps-triple-digits-stocks-144333192.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+top+story;cpos:2;test:;g:87f4b2e9-b936-3e44-8572-03ef1a5b529f;aid:;prov:CNBC;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l2.yimg.com/bt/api/res/1.2/Pf8Zmbqj6KgxMwf3zPxHIQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://media.zenfs.com/en-US/homerun/cnbc.com/84b1caae7c9695427189f5f7052d738f.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/dow-jumps-triple-digits-stocks-144333192.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+top+story;cpos:2;test:;g:87f4b2e9-b936-3e44-8572-03ef1a5b529f;aid:;prov:CNBC;pkgt:15;">Stocks post biggest 3-day gain since Aug. as oil rises</a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="6f2b5453-c19a-3132-b9d8-392ca6a39d78"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/futures-rise-oil-gains-hold-123919946.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+top+story;cpos:3;test:;g:6f2b5453-c19a-3132-b9d8-392ca6a39d78;aid:;prov:Reuters;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l2.yimg.com/bt/api/res/1.2/0q0UgIX1EzAja7QogsUszA--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-02-17T123919Z_1_LYNXNPEC1G0PP_RTROPTP_3_USA-STOCKS_original.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-play-xsmall"></span> </div> </div> <span class="overlay-tooltip">Play</span> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/futures-rise-oil-gains-hold-123919946.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+top+story;cpos:3;test:;g:6f2b5453-c19a-3132-b9d8-392ca6a39d78;aid:;prov:Reuters;pkgt:15;">Wall St. rallies for third session, led by energy shares</a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="5c80c67e-8397-3f69-b3cb-cc0d2e6800e4"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/u-housing-starts-fall-producer-141912611.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+top+story;cpos:4;test:;g:5c80c67e-8397-3f69-b3cb-cc0d2e6800e4;aid:;prov:Reuters;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l1.yimg.com/bt/api/res/1.2/ng_IMmCdziLGLc7jMmCLaQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-02-17T172656Z_3_LYNXNPEC1G0V6_RTROPTP_3_USA-HOUSING-AFFORDABILITY_original.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/u-housing-starts-fall-producer-141912611.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+top+story;cpos:4;test:;g:5c80c67e-8397-3f69-b3cb-cc0d2e6800e4;aid:;prov:Reuters;pkgt:15;">Strong U.S. industrial output bolsters growth picture</a> </div> </li> <li data-ad="pencil" data-ad-add="{"class":"ad-active"}" class="generic-list-item story sidekick" data-uuid="e3e8e8ba-c05e-3127-b650-96d14bb11ba3"> <a class="thumb-link" data-ad-replace="{"href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:1;elmt:ad;cat:Sidekick+top+story;cpos:7;test:;g:;aid:e3e8e8ba-c05e-3127-b650-96d14bb11ba3;prov:;pkgt:15;" href="/web/20160217234258/http://finance.yahoo.com/news/wal-mart-aims-improve-scheduling-215008170.html"> <img data-ad-image data-ad-replace="{"src":"secHqImage"}" src="https://web.archive.org/web/20160217234258im_/http://l3.yimg.com/bt/api/res/1.2/5Kvj.y7VAxuTF21.AMiAbQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-02-17T215008Z_1_LYNXNPEC1G1G3_RTROPTP_3_USA-WALMART_original.jpg.cf.jpg" width="300" height="156"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/wal-mart-aims-improve-scheduling-215008170.html" data-ad-replace="{"_markup":"headline","href":"clickUrl"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:1;elmt:ad;cat:Sidekick+top+story;cpos:7;test:;g:;aid:e3e8e8ba-c05e-3127-b650-96d14bb11ba3;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30"}">Wal-Mart aims to improve scheduling for U.S. workers</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="Dn D-i ad-sponsored" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:sp;cat:Sidekick+top+story;cpos:7;test:;g:;aid:e3e8e8ba-c05e-3127-b650-96d14bb11ba3;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://help.yahoo.com/kb/SLN22774.html?impressions=true" target="_blank">Sponsored</a> <a href="/web/20160217234258/http://finance.yahoo.com/news/wal-mart-aims-improve-scheduling-215008170.html" data-ad-replace="{"href":"clickUrl","_markup":"source"}" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:adv;cat:Sidekick+top+story;cpos:7;test:;g:;aid:e3e8e8ba-c05e-3127-b650-96d14bb11ba3;prov:;pkgt:15;" data-ad-add="{"class":"Pend-30 D-i"}" class="ad-source">Reuters</a> <a rel="nofollow" data-ad-remove="{"class":"Dn"}" class="ad-icon Dn" data-ylk="itc:0;tar:finance.yahoo.com;ct:;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:itm;ad:1;elmt:help;cat:Sidekick+top+story;cpos:7;test:;g:;aid:e3e8e8ba-c05e-3127-b650-96d14bb11ba3;prov:;pkgt:15;" href="https://web.archive.org/web/20160217234258/https://info.yahoo.com/privacy/us/yahoo/relevantads.html" target="_blank"><i class="Icon"></i></a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="755665a6-2e46-30d7-acf8-4c65f4f1f60e"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/fed-policymakers-discussed-changing-interest-190614698.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+top+story;cpos:5;test:;g:755665a6-2e46-30d7-acf8-4c65f4f1f60e;aid:;prov:Reuters;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/LCnydMGzzjxMsjfOAU6TVQ--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-02-17T190751Z_2_LYNXNPEC1G1AN_RTROPTP_3_USA-FED_original.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/fed-policymakers-discussed-changing-interest-190614698.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+top+story;cpos:5;test:;g:755665a6-2e46-30d7-acf8-4c65f4f1f60e;aid:;prov:Reuters;pkgt:15;">Global downturn spurred Fed to consider changing rate path: minutes</a> </div> </li> <li class="generic-list-item story sidekick" data-uuid="46f8bf8d-c639-32bd-b1a3-a8b341b4fd54"> <a class="thumb-link" href="/web/20160217234258/http://finance.yahoo.com/news/curbing-big-u-banks-not-211129982.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:img;ad:;elmt:ct;cat:Sidekick+top+story;cpos:6;test:;g:46f8bf8d-c639-32bd-b1a3-a8b341b4fd54;aid:;prov:Reuters;pkgt:15;"> <img src="https://web.archive.org/web/20160217234258im_/http://l.yimg.com/os/mit/media/m/base/images/transparent-1093278.png" width="300" height="156" class="thumb-img lzbg" style="background-image:url('https://web.archive.org/web/20160217234258im_/http://l.yimg.com/bt/api/res/1.2/Z4k66FqJykEgsXv05_2RAw--/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MTU2O3B5b2ZmPTMwO3E9NzU7dz0zMDA-/http://globalfinance.zenfs.com/images/US_AHTTP_REUTERS_OLUSBUS_WRAPPER_H_LIVE_NEW/2016-02-17T211129Z_1_LYNXNPEC1G1EN_RTROPTP_3_USA-FED-KASHKARI_original.jpg.cf.jpg')"/> <div class="overlay-mask" style="width:300px;height:156px;"></div> <div class="overlay-hover"> <div class="overlay-info-item callout Mstart-8 Pend-0"> <span class="overlay-icon icon-white-story-xsmall"></span> </div> </div> </a> <div class="listing-title "> <a href="/web/20160217234258/http://finance.yahoo.com/news/curbing-big-u-banks-not-211129982.html" data-ylk="itc:0;tar:finance.yahoo.com;ct:1;rspns:nav;t1:a4;t2:lst-ct;sec:lst-ct;elm:hdln;ad:;elmt:ct;cat:Sidekick+top+story;cpos:6;test:;g:46f8bf8d-c639-32bd-b1a3-a8b341b4fd54;aid:;prov:Reuters;pkgt:15;">Politics nothing to do with curbing big banks: Fed's Kashkari</a> </div> </li> </ul> </div> </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>Copyright © 2016 The Associated Press. All rights reserved. The information contained in the AP News report may not be published, broadcast, rewritten, or redistributed without the prior written authority of The Associated Press.</cite> </div> <div class="disclaimer Mb-10 Mt-0 P-0 Fz-s"> <cite><a href="https://web.archive.org/web/20160217234258/http://help.yahoo.com/kb/index?page=content&y=PROD_FIN&locale=en-US&id=SLN2310&pir=Zm7qO7BibUkC.4dK5GxJ95B3DCru2iA5odBNM0pj">Data Disclaimer</a></cite> </div> <div class="copyright Fz-xs Ta-c"> <span class="Fz-xs Mx-4 D-b"></span> <ul class="D-ib M-0 P-0"> <li class="first D-i Fz-xs Mx-4 My-0 P-0"> <a href="https://web.archive.org/web/20160217234258/http://help.yahoo.com//l/us/yahoo/finance/">Help</a> / <a href="https://web.archive.org/web/20160217234258/http://yahoo.uservoice.com/forums/207809">Suggestions</a> </li> <li class="D-i Fz-xs Mx-4 My-0 P-0"> <a href="https://web.archive.org/web/20160217234258/http://info.yahoo.com/privacy/us/yahoo/">Privacy</a> </li> <li class="D-i Fz-xs Mx-4 My-0 P-0"> <a href="https://web.archive.org/web/20160217234258/http://info.yahoo.com/relevantads/">About Our Ads</a> </li> <li class="last D-i Fz-xs Mx-4 My-0 P-0"> <a href="https://web.archive.org/web/20160217234258/http://info.yahoo.com/legal/us/yahoo/utos/utos-173.html">Terms</a> </li> </ul> </div> </div> </div> </div> </div> </div> <!-- END N_C_R --> <!-- START wrap --> <div class="yog-wrap yog-full"> <div id="applet_1309788362162924" class="js-applet" data-i13n="auto:true;sec:ad-csrl" data-i13n-sec="ad-csrl" data-applet-guid="1309788362162924" data-applet-type="td-applet-ads"> <div class="App-Bd"> <div class="App-Main" data-region="main"> <div class="js-applet-view-container-main"> <script id="td-ads-prefetched-content" type="text/plain">{"prefetchAd":{"5417818":[{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15kush33d(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31439510703,dmn$c31439510703,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$5485,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=lG8H.SMGIS_75mEV7_u6I3TGmo9uTCFLQquQ4dLsi2PddmBdW3mcPqhJrmjyo.G3TCR6ZYRDKwBgT5fwSGdfQjHDmLDqPFmygug736ajP8lhwp_Jyu6NrwLAsFbz.gz4NNR7.dMm5h4tJK9mtxlK8dj00viHGfa5OifiRrDj3F1XT2FWVLckuNh58ERWC2tXxrnLT6UAnLYiNQUbaICgsRxKLZZ2bELi3y9_CJ86mScdU1OTc11XSGE3zE0wKxyT5z_j6T_IPOb0nhze9cRD6SsVvSRmgPA54ULu6aY_crK_55nFx.3yblbgaFaJPLMa1NwPQuJqajZ85_kJxLrzfWMQv6sxlAEiwRXCr.mJlbDITSwX_chRG5HJC5_Q2KjR2f5Mt7KZHrheaq8T6hlxGsBjm7m6VxPNykwqIIov.atURqgcRU9hBHrugS4wMxd7RmdLsx82dL_xCHoxzgyWPRsY0yFPas7D3tIE6G.U2YfZeDa3Af9OETU-%26lp=","headline":"California Mortgage Rates Take Huge Dip- 3.01% APR","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/fcd08daa949e2ccee37d6e2e24716b97.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/https://adfarm.mediaplex.com/ad/ck/18916-133472-1039-1477?esourceid=6190926","secHqImage":"https://web.archive.org/web/20160217234258/http://l3.yimg.com/bt/api/res/1.2/skNTliSvlHwqhlTp26IC1g--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1449689826006-9695.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/fcd08daa949e2ccee37d6e2e24716b97.jpeg","source":"LendingTree.com","summary":"Rates now at 3.01% in CALIFORNIA - $225K mortgage for $948/mo. Process is easy and quotes are free! (3.01% APR 5/1 ARM). Calculate new payment now.","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=91xaoGYGIS_zlOaxLVpCWo0IY_jGDH5WuJtBXd3vNgNeQyJ4M02KTGuTdDk_.gOMr6chDVd0SYvxL6mfbVn2wdgpGyFqhwYeGWmIu.CBQkABDOn_PkYrOyQPhybBVygwNpB68SFnrfs3yvekttOOXl9RNix1nxbg2pje6A4owD_QXwrzTqt1fpHSzPzwskVwmZbq.kXxe0M.DfV5OeFK4m0y6l0ZuNIHl8xV_xt603kO_vNNu7WM00nk1fjTkw8Y.zz1WG0E5.3Bp1kn07KLtsHnyinlu88VpV3pO0dOMo3nDa_xrZqozQ65pVLyYQlIclY5eBA7puLY1AZAHHEzZLObU2DEJ3lmwn6quKnnJepbWJeItuxkI7fm&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15utrui2j(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31721271816,dmn$offers.lendingtree.com,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$5485,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=.Ujj0IIGIS9lqp2ZN3_n3O7PEK710Ku21fkGE4E8o8mb19cdGHqdueWucnLWyI7hYLeIDr02AX4SrQ_xxIMVJYny5ZpwDO6KQC_15PxQQBSlC2Epzko1xigFF3FdolEBYtyiMMuA5AH_VAl5H3JVrjtQrONfmNR8or9pah0aFTG54PjRWYAAvHR8Hf33G1fVHlCl0YmZV3EJCCk1yLsKb_ebebDr22lasuAd9xQ8b1Jlc3.4NFOeqJS1GikBhyzqK_M6i1bzhd6TTW8b_2z6IiNs5Gw_j5Gmv6JA5b0t6nCqvzv02HVjaFMzhcHwxAWa4BVmW.tQ6kyVc0uODtKClF6XlKGigCUVjCYpV3AZjFsXhSKu9ZMbOzH074xDs6xg8oUD0rs4sFgvhHp6VuMj.N1EpFnoMPihwAdUihWgmdBuNx9SJFEzl2fWVH4Jp3tO8BagJupQbCzQO2HnOMpm4tZXsYkMfeJYxdz.wihmfB4dNkMIsPC42.Az8fQb%26lp=","headline":"CA Mortgage Rates Take Huge Dip- 3.01% APR 5/1 ARM","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/c585a82aadd1f867d2654c58402c3644.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/https://adfarm.mediaplex.com/ad/ck/18916-133472-1039-1754?esourceid=6202606","secHqImage":"https://web.archive.org/web/20160217234258/http://l.yimg.com/bt/api/res/1.2/buCVVYzpTxpMVPES1i8w7A--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1455236613106-3849.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/c585a82aadd1f867d2654c58402c3644.jpeg","source":"LendingTree","summary":"Rates now at 3.01% in CALIFORNIA - $225K mortgage for $948/mo. Process is easy and quotes are free! (3.01% APR 5/1 ARM). Calculate new payment now.","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=gAPxQOgGIS_CXL0rT8QYWDHyhjkPZ7eeyfU4j.v97cEOz1EihZGDjYsj.553VGjLFSLI8p0ASMs4dbOEsPruuLbzSNdsAy18CCzL.GdmGOElYcu5qEFlhQHQAJztMMlzow6i66_2u8xGRPSQyF2yJbNC6ufnp1BhE7yRIss7zbgCvHVBTHY2Unslku23UdAw81alTK.HvIbqgWMPjwBptRLZNrT8.PIbwKLh5614Sz3uH_e2FilQaUrrw5TeM.B7Q5X45fspeXIgUCN.juB6TtggFUjITHkSjEHiPayU5_5cGlyCnUXoYj.GvK3UwjFK_AYqhfS.tvWQVw6mVCN_iwC7C9zFhtfdOFfeRtEZsOYR1e5SuDeRGQuZ&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15n0b629c(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31669527497,dmn$c31669527497,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$1162801,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=KCDkc38GIS8wGmggfVH5LSSU9dIgeTD4Nzae1cbkV2e0Kd904ZMEXQyFmGJr1GfrGfagNshHug8tSnwzskfYMSPbQF91wRH2fDLuXhId7Zcb_zxtVL4krLs_C_gYK2dDedTds9YfohTf6QY60btAxroRtYPhgtsROKeaNrW8iSpiNeseWl9O8kuUugDMbQT0wf5d0nU7oFUlLstC4IxEMtIyAPrO2sEHT0lJontwWhXP_3ZFZpes0ZYFx8uJuuAJse.S8.zQdKaeONOqdBIMk2jnnqiVPHdNlRrjr.R.Q_AYZPYZIBa_lTnDKhaRSrNDu5YV0QetD7y_xaL8xdiLytlFKEMKqrzj9MncGdjBXKreeskJF0rOQ2Jhp8PsVgJeWbwUIURD5Zp811oCt1Iw7NjiNAdfLwrU8zYuTtoiFNysFJE75bmmecewDn06b1gE55FcUne_Z95isjWXbJqQ6rQlRWYzKFYgiG5bQ5mJYCxBkcZ0GrgnrixeX4KuPPF5Hj.29RiKsEqWmxTZKKue02CFR0W5GzyV92GdDm4EUOz1%26lp=","headline":"New Solar Panels Leave Energy Companies Outraged","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/b6354b193aaed99a89cb7c9fc6a047b3.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://click.trrrrk.com/aff_c?offer_id=167&aff_id=1257&aff_sub=new_why_solarfilmstrip&url_id=143","secHqImage":"https://web.archive.org/web/20160217234258/http://l2.yimg.com/bt/api/res/1.2/73ersgN_WRVSXItKm6kK8A--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1452886191286-929.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/b6354b193aaed99a89cb7c9fc6a047b3.jpeg","source":"National Solar Program","summary":"Why did no one tell homeowners about this? If you own a home and pay more than $19/week for power, you better read this","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=Bo0_9oAGIS.C8ZSUo2NQUQ5Zy9YavOOfo3cYRJI2li_0kvAZfzFTz2xCgPZiOeZ_Oc0KY1r52nqPr1qiqupdBO9SraOF6n9fDjSUQdJWu6AceJ3kXXHyOtDufbB9z53VfuKkr9Nj.6Gelwlcm6aMKybqrYiLFStCWsL8LitMn8MJMYL6XG.WnP_8Z4u_6vX9r0irixQfMnAGSeYSTd1I2rrV.82TyNbMbkh1UK8wSMWEmurE5E0DQTkv_J3c833cvB0Cbfa2vwHiqKRGQnNeIOdNIQEOFFng2OWxB8xGwOpfp74w5.uDM0pqifIeD1wUqa9VuW92Yg_lQ8igY7gof2LKHVA4zvcpy_tqSLjoUnzeQH8jzSVkXg81ZiA0GGjPsLYiLJc-&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15on0n8sl(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31700971249,dmn$howlifeworks.com,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$4474,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=Fr4PjHoGIS.VOv9lp80iQXX395UWoL3P2VW.91iXWkpz6T7IM3EYc4Rcq6XkY.z53RHcaFOFAG5mODsy._TYJn53qgMpCqbSp8tf1eTdgxh_aF9t.dT_gHtBJXHVIE7J_xkacpiK5vNcK2IU6WhYyCBAIcskzKfv9eyiHQlRexHJ.sWmLDTa95luB4qr3VfkG55.37EXjbdAcreCghqXMX3xQCsv8uJF8Kvx_H3Bx_p7zb0xVJQUz4rEbhPliV3iE000uwux_KsRjIcJ4ZviEDyxoF4DKe1WoCIMovhNJctEhgDTDAO0EYcrya13T1cZUrDOkZmCDqRwsU.j0YAyZ6m3adZ3SivdU.yEhEl8m_30yHkN2xT0u4IUIHrJJJTixamRnspzI846sakRVN4iRGG2gr2I_vGjgI.wJU1t90l5VCkHnMH9gmPN7AqxXgqaDFO2aKlg0MWxypw7EW0JmnjMZZiB2V6WZueO9UKIUe_Po5hlSQ--%26lp=","headline":"Military Releases Insane New Flashlight to Public","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/114f845e9240675a6b089b4930d1fcae.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://www.howlifeworks.com/a/a?AG_ID=1847&cid=8088dq_chome","secHqImage":"https://web.archive.org/web/20160217234258/http://l3.yimg.com/bt/api/res/1.2/Hn7t8sq7yddz_ZdO_rzBZA--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1454618636637-2671.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/114f845e9240675a6b089b4930d1fcae.jpeg","source":"G700","summary":"This powerful, military-grade flashlight could save your life. See why patriots everywhere are grabbing them up before they're banned.","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=SaOBDsIGIS93G0LRwmfKAt5Tk5UC0v1G35zcZqgf9LTHeqMkyz7u.QI6lYrV82l4BHXY6VfcXLEP.Lz6EgB1fT2SGj0q6RuUg8hqYAFkf9XfoPZ98kF3RLIj63FYZg5cCeK4qe4l0XpbHFy0Ug8reKEbUaj5UPUTG714X.aSyLNrWZdp3EgH2KTqnaoMbPkjt7kRZik2tsFoZNCPWxxhjvy205ZqKY.31UBVI_kG.CrfxvuhX4edRAo4H7yh4AXBLS3o1Ge_l7o3PMRS3onIWPqTeljsGVCXPeVtv_PpskwDBUqtQd7Vagx39K_R6NX.eLDIAzvqQwzF8h4NutPfARBtOSi9LjQD01v0R0qXa8czFTvQYH0XbOsjU_dACUALo18-&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15nbulqid(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31742608253,dmn$c31742608253,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$1128698,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=aNoPEZwGIS8a4R4udQMkDCkzz1ui59POeHyXr7hh9XfNdQHxgvoqyHrxzkRLp4Dqso2VcYj47_Zfj9DTYSkICryYdFWC05NGRPQ96GVXWcqFTG92nODhUIXkXYNT3HpjN4MxV4IBzALXLfca_jY9LkpZYV7wKnFNDLhzZu5NhgfhL.v0_63Cun0Y1Oq98gIcIMP8XZLtmul1CcqQw2zrrh_XARplgYpduKnSHH_XqZUEMUlKy4EHUbtVgBCyf69AjZSHB4Gm0EmA7QWLYIT6P37S8J81h3Q3s8FgFnisR.OcU5olkVdkcCXDM36ghM.cFzGpWLSV6vQIhBZAxbEbKoOZcvkEayKaMK7721iMVjpLawgozdSc.Q7HtCRpD17nxs30vcpobS4Rp5kJbgcuhbo7Fy8lugSBmu6CvFlfB1F3nuRI6oU8bc1jbvIvMXsQEWWxFICcQ.BgSwszBBvwZxfhqwsa0EfaxZuTF9rTF1mWv8fWI5ODdazWmOnq3RpKtEMbLm8TxeH.z4xrPv3dMWL.ToCrwuRTB5s-%26lp=","headline":"Federal Mortgage Pay Off Stimulus Package Released","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/270039d9818d358ae498da7816f3ac1f.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://t1.tkzio.com/1ef4c11f-f245-4b73-8f54-17e8f7197085?campaign=c24a1&adid=31742608253&imgid=reg8","secHqImage":"https://web.archive.org/web/20160217234258/http://l3.yimg.com/bt/api/res/1.2/Cz5mng8eo3UbkgCwH7jdxA--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE_AND_CROP/1200x627/95c72f22cef6ea178fec7c71021db07f.jpeg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/270039d9818d358ae498da7816f3ac1f.jpeg","source":"The RateMarketPlace","summary":"Before you pay your next mortgage you need to see this. Millions of homeowners are stunned and banks are shocked. Do this before it expires.","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=L2wAX38GIS_7DjcQGWb81S3vnckRsmK7Wncjc6pBC6WG8xdKZj6vBLS0cCs4.465UI9BYn2OHg79FxWawqIDzhRcCJec2Ms8Co69QL89NuzMMHlwUjD0UWoEb6Dep02L3k83BI_D6VCc4N4_J_QbWx7UCK5GpM8vyWbfMo7G4_RuWb0bJZfomPQGvL1DadlF0DY0UtJRoJJW5n_CvgSpsBOl7SeO3PA.D.BQKVUlvr5OvxmZSYZfhs94VIV1vH5uOVQK0H5Yyj8OYvwUQQOrbqbmtf8P1yx.ZZ0w1ceOqhdBD_WEAmCMZPQE38O7PKGC1z4A91sbV6BKzpFC3JUFbfcO_6qH62vZkImkRoN_GXczALD8xCjKn1jXSdFnaWSDfg--&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15mv95mlu(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31262160981,dmn$c31262160981,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$956895,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=jl_HU3EGIS..fw2eX9C.hPb89q.NJxOv5wq.mJB6f6nL6q2ClJZeadmVl1cw.RLQzW2bNNNa.BZUskwoKL1EiG1SrQxr9lm5.oWLEY9GolKGOc22vt9qCECK7pDduPTsRUvt0gJAMe.JVBkA77Bmt1Cjp2pJAC83KCQFNVZr7rVYoKxmT5lpKz_Fp.U.KgiXcm4nTRriQbTeyp3N3B.WQ1fX1eQ17sh3CN7RUBR6QOiwD.fiQw9VzPjUxyVG8sErxdd9WGjqZc6LzI1hVxPDCqwy5k2ol5T_fCFj1nv1jeOvYgRwEc5yKq7ElHurQ6kHXFSM41Cmimv.PAJNINQlsmv2HJ05p_1KSdf6MPH501b_0gE.giZlRS7ZbUAC0dPZZmQGY919KFQVJBhQaYhP2tzejNTChH4OZaS3Tk7eEI_GxbT75eWGQ0iiVaq21Oyso8ywyL_eq1LZAieYd0rTJyqMtOZiQQP_LK1H.XcuHLu7cNFodM6nK40G4SdQ5KQYdZwOl7a4J0KaAKx2EYzkAOTqN0XnEU2MepFMzgNnOlTXP1oZoXpDNTHjOp3WiBF5b4CGZuMN96HCqZmCK8acsegnjnMgk3w-%26lp=","headline":"Ever Googled Someone? Do A \"Deep Search\" Instead","image":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/595eadeb93e6b266a75a181ca4ec0913.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/https://www.beenverified.com/seg/?utm_source=yahoo&utm_medium=content&utm_campaign=YahooStream_BV_PRNA&creative=KDV_7136&headline=H46","secHqImage":"https://web.archive.org/web/20160217234258/http://l.yimg.com/bt/api/res/1.2/39H3_2fJ8fdrMaB8jPvtcA--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1445955360168-2189.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/595eadeb93e6b266a75a181ca4ec0913.jpeg","source":"BeenVerified","summary":"Entering a Name and State on this site could reveal info you thought wasn't available. Have you searched yourself or someone you know yet?","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=K8_9A1wGIS858iFPVzBQAJZdNL40O5sU1shZwOL9H6Y2vVLUelfGHaIz7N06t7DqJM0wVDtqSMy48EMItP3K_4A5PdBD2MYiq8_YnPXk5cWmXexsWfJd6iKPjMav9bljlMhZaOz.64717NFEhHaGyUvEUrPuhSTpN0Ht8lIs_he1RPCvEqbs7F5p6mVehvmkmLviTeU_3QBjstbzhmfiEhU.CltQ7e0de293skKiVB1IHtpSBC2Xo2G1lON8BQ39MP1CU2lnn1fSNfQhHcEiqF5b_uL8EnHCWPIMxbpYI2aya.8EA0nCI1CRtTz0SILLq.qh9DZOYAuQItrzGp4GRn4ccY5TLmAmUyDjRMIbMGfD9RuDrKHgHZfRoZdzjeyXc5nUcg--&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15kj541ol(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31669953847,dmn$c31669953847,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$5084,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=5f3ExUYGIS8B1gyN6CooDqAN_SAJalmTcXrMh2P4p6j3m8Gpw8A48RGgpt6flRjX_8hY8ztKc_AsxxJOwl1gaYkcVnqYy1Zm7fkCciySJdiR0Zi2bneG5T9PLHeZirJhfhIpenTUHziGMpzpcCuucRKu4ycWTy.lZ5fUAimJ0JjB9iYYDxVF6H4ajkP22ec2o11xgkh_u0XkgDY3MLOcpxl2y48VlNbd7bBKj8DVLrLKNolpc2mLjRi_Z1IZi7H0vnhKor.OO1zzA4Xk7WGjxItJinXamcSZ5nxAEHReTgPAuBtrqJ4bSGUa9N4lb8AqT16KPv5CBeZDbx1Sz7ml5f0o7gY5cHhzjFLUBE4Tx8kw_o4.YKXHjr8tDgza_oMaDjb2Q_TYN.Dfni4KroY6A4jKAGrV1t9DhUg3cmH4VaXBit6c0BotFT1yOiGYBGLJuB1R_jfC33eH2bmrkhilkQxwVl795dwoPBKG68TmILJPkYGXab5YBND12d6IeCMjTqMaGpai8gBCjyyIJUCcnuAGPuaL8eJ8.odGSb0Mmy5bA7DnDviWAQ--%26lp=","headline":"How Older Men Tighten Their Skin","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/70e83f6747adfc7982b0fae1683df89d.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://api.avidadserver.com/api/Asms/click?tid=5582ef2a1ee0530758383c1f&clid=569975461ee0530864c91cd7&p=1&sid1=31669953847","secHqImage":"https://web.archive.org/web/20160217234258/http://l1.yimg.com/bt/api/res/1.2/suAf5dbKQDXPbBLjgz4m7w--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1452061447063-1470.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/70e83f6747adfc7982b0fae1683df89d.jpeg","source":"lifecell","summary":"Men, reduce the look of wrinkles, sagging skin and fine lines with this affordable and effective skin tightening treatment without leaving your home.","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=cOD4BO4GIS.htokptLKKRI5cq0ypwLyuVDkLdtDNZmZLomgJ2rUAHqLpMqvXXCyrKtO.oyJLEreuihp11ibqY9GoxAjW5K_tMhN72aClrZrzIQkLq2kcqGt0RCGXIP2CW70aEGaJLxOef9ZVBfnu21xVblqZYksO.cDArU_eTx4YWNs51wM7_TqSYdk8j6i1CwLrXY0ZT3ukyzCQQ4kbNK2bEOjmWWPVBCRshk7bUbkgYmQsIElM_q1nPNdq6MmxRUMksSBsUitD4cAROBSCmvEUQT6Uw2cJw415JB9mllZob19vqeA8KofvBW5i.ozfGq_p8or4XLCXB9rYkgtQZqSIJ8vE0OhwRaG5y_XGCE9jHv7CJAPVW28R&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15nt6u5k1(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31081168988,dmn$c31081168988,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$1107198,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=bVJRXvMGIS9rY.GxijFrvoNf51lmyPwmWoYy9urUAmXdhYl7fou._a1unP_4ghfQ3hRRwmZ_C63CKCuUtG8PrhBInRG8ReLyRdo2ouaiDp2.Nep.rMCXXhFEt4kphYMTW9MVKKM4Q3wQLxeHv0EaD4LVBVIuD68upwOU3jPO4jfzyi6d_RiwFhnd.jPTfVKdUckJx1VjqiGvcxBXCMDXAsufOIAFze1QDAU3V.yfzgOl5MmIFsfOIk1qHyc7TGN3alR0XrHGDD3.1kUmh19o7uH.6j0Mak1vWWxO2P85GscF7P1HmvTcHvINvzOkD9bMU3ijV5HuGvB8zFdwDZdYSA7U5WwvKmq2v3WIZS3ciyMB46xdDfb1qNrB7PJD24GqGFwNW9NkbcdpMLW3h6hLVOKqgnx.eJhqpTO7jblcKiF9uHUQQ2.o3G7cyI.oAsGRdhsKou1fItrm8pyvzAbh8IaNYTXl9N7QC7LdZx3iElUhl2EYTh1YYA--%26lp=","headline":"Affordable Luxury Cars","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/6e0e8c832be30aa62d77ea9456e761f7.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://search.feedsmixer.org/index?q=new+luxury+cars&affiliate_id=16858","secHqImage":"https://web.archive.org/web/20160217234258/http://l.yimg.com/bt/api/res/1.2/p9upnxTSUeb.Os7u2Je1sg--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE_AND_CROP/1200x627/d4b09440eb70cec71f8ad4091a6b4491.jpeg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/6e0e8c832be30aa62d77ea9456e761f7.jpeg","source":"Feeds mixer - Luxury Cars","summary":"Dreaming about a Luxury or a Sports Car? Find Out where to get Great Deals!","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=hwljll4GIS9NrC7WUkz8xwrAysCcyzrQXmTgEf0AHFeZHJ2ef0iWWdbgz9oGxUhV5Zn9uyPGA1_mfyf6LUKFlNUdl8GzRJgBIkok8N4I8rCc5wc_gCgqEmIS_Ijk2ZkvO_XuI.63vje9jVi49mMwlsXA4s1eZf4Vm9TJrLX7fVmE5qy.WjBryP3oUoL.JB6gCBZWaWLRKLdur9f0Rhksgdmjp94PAX6gVF3qtdyOvQ17iyjpv6b50jC8aXi1nOaA.Hx4p3Vfcqf.szNsjesGasAKDALNKLxq7mY80SqTpskgzDnkeeHcsbvd4Lbnrkg6aDhEzngB6ZpJF1Yl14k2ncSizoAHE_KY9B626dL21MiC.0PpNCBnCdVKxB.h&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15t4r4rai(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31008830647,dmn$commercetopics.com,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$1002833,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=31BE5C8GIS8lG4tDz.GkHDOoa.53o4o9Pai7J5aJ7GEUrP3Oyc4cGznsIz9vrvESbjB1LTvU1SRqwX1VurVM8oaJbCZbbmKXBqYKf9ZvUlT22dLQ1hXUMTnjLshfwQfTUIO6DpwdRHSYEsp3bJswmlGl.4.nx7xQCtc1jeInpteoWUf4H4gbcp8.QZPBmLoJVRBtB3y5eJ25f5fToFp55YR2mCmoVM7SSbZ_L0iS8zGvviy5xEGdJT6Fe5CjBM8tV83pzkB_bl8hPJtky3oKiIzgawuNxJiz991Ibtwa8D.pGuq003oYmjvQfneFl8SKSrsQYqCCiBTxrLng5h4Eb_bWTzAwVVKSqo7ow0fspXbIycO.L7n43qrb0EYkyXTKE2su5PXiRcBS5d9FcuRycOLeblDfKJFw0D9EGiJj9VjPq5Jp474sLlovqA3P7aECyK2rwQg5cw--%26lp=","headline":"Top 3 New Trucks That Have It All: Search Now","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/3a76109166d8df59b10ba7b0ad479353.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://experttopicstoday.com/?hpy=O91eeb3~81","secHqImage":"https://web.archive.org/web/20160217234258/http://l1.yimg.com/bt/api/res/1.2/aPZx4utsWx5G2ej_jBl26w--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1441831762303-7357.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/3a76109166d8df59b10ba7b0ad479353.jpeg","source":"CommerceTopics.com","summary":"Pickup trucks can have style too, see this years new trucks that have it all. The all new 3 must have models that won't bust your budget! Search now","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=uWeabxUGIS84tUlP5mMbyI_yaRBiX.k14OEYjGRwqdVj2dCXOlLdtjomZYPcO8fxsQBNgVvKGhBK3JzuQ0TFu1PHqDftNwHt2THy5hKE0R0gC8VCnvpIlIBjYnOUGcTPfZH2yYLHt2TvXhzREtYrAsT1f6KyJpzC4GsaOJJN1DCSFE21Mw8WVR3O2lFcx.JKHz9Ehi6fjzeqJC7hbrsp0JfTzV8md9cIsyi1U.P.v.J6QISO4AoF5dXlW7K.lnQQNlNhro0gBF9L2Vcn_TwAtIcz1J0iBtyVoYH5cZtY05TvrBK9pLomqcZms6IXKg8tSpARh4ARwDzT6Psbx7TeYXb4LqLJz5n9J_4.9JrruyGJeskp5xfQxu3izkpS&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15m883rmp(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$31446839715,dmn$c31446839715,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$963509,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=Ntj2cssGIS8e9dZ_N5897lIAqLKpuz5.3bckJU804.qiMGfc.D8KlYY900aKd_zJCkYYhoela.llf__pZvmw2Rqvj8Ys3U1h.d4rRvKDehbX_wOyWl8ecG7kwMV.0tyvjwZQxsymTSdIEzJmXabfBGlqQUvy55N4r6scU_.oZSrNXZOBFvDkCxCdCm_RSPdg9YhQctEiPvgaWAy3o6EO2vrXHLrNfRr6q1RrG4_uQvULXclWvJL1hbZlzu9BsYdVrDg1MW.fBNg1PYBG.yRVZ.bhR.2_n2cmZ_20n_Lr7KGEjmPGERY4HwrIV.VCWHPAzWSCRcTrPjUaffnnqJlyNKz6KXBxO6NvR74_YGnpzIfW_G_cW_qbvZGnSEOVLzQu.HaCd3ACDduzKVeLLBRjJQlWO.aU6.oDyRqUlt2gQGkdjPdDq2aU4YoChIGMgMeVF_2O9Dfw5uq0e.pzIeFAfkX4QJseU1hWzzeq4vHcgDTFS1C_wINQeBEcx77GsoV3TLL6m4lM45EADD8Q6rihLpu.2uEONGbwvAJ9dMYSOF7oSHQhOzjqOAoUzCW3paDJJSdlP6u0DwWuZyGcvx6k34BvXFw4vKfeGGJw4Ds-%26lp=","headline":"20 Terrifying Animals You Didn't Know Existed","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/2903505bd5c5ace86310069db93965d8.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://www.starpulse.com/news/index.php/2015/11/02/20-terrifying-animals-you-didnt-know-w?utm_source=yahoo-gemini&utm_medium=referral&utm_campaign=yahoo-gemini","secHqImage":"https://web.archive.org/web/20160217234258/http://l2.yimg.com/bt/api/res/1.2/.auNbX2CNFRlm0dWaE.kBg--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1447962396386-5433.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/2903505bd5c5ace86310069db93965d8.jpeg","source":"Starpulse.com","summary":"Every single day, scientists discover more and more fascinating creatures around the world -- and some of them are downright terrifying!...","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=i_sJL64GIS9uOSomuD9tBbq_HuAeFnsHroyDZIujOUXUwtDRc.BVaiGlhZAIP7cwyLizH_0GLjhq_Ccixfbt9YkP8KW_CnGBmmuYiV54Qj8.Nlr8JF9qeMzwKbplKmthmP_rTB6qzThKFGUkaEl.5tAd3eYwcWT3gN4ODFF2ileq9Ijqvrs4unzTAe0kBDUyxgazIMdKrItq5HUUL_0FyK0P0AywE2rHZZRsRS3Rx10olj4RpFedcnu0ZzujvJzXW4j_a7eQF_AydZ9tVQgtE2te0mWLufqOufBH1iNjkl0DYqi6r4yvrgPqXoVlbzXkOFPhp0w7Tu8v_GfTCvxRvalEmnGePLxjSn3Oz30bK_91H5k5iscmCK.9xpk-&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15t230aed(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$29565154994,dmn$carpricesecrets.com,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$911875,pbid$1,seid$5417818))&r=1455752579391&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=E_4HYyUGIS_EHP6ZUKE6SXbWn3Q_8sprRRTvvIgEEwNoolWl8thY.S8ootZaqbOb0KXlZgV1acLKm.YOOUuJ6aC9d4z1_XzaCDRE621jPKBVABqId.w0vK2Zx6oidz3dP7WJztW._jv5wIoa6BAaPjSdyWcRNvJIC00.PTU5rfzguPvBuI1rA.GLxVYmUwfh643w7Z6m5hTXKleHeW5JFoasNBHJLRi7jaP8V2H8dJ0vQsIYApA7KwNcdhAT7OI0EnTNq0c3rqICieUPaGBbbh3shOG0Y9_z9dUcVUbGr_U75WHe2VfDmIh1jJniadgyXECOR_3oEJHCGLeGV5d7G10G4J1Ajq42LDPwlkdMLc_UALL3eYVtPYAKONlEe4bQxwu5yFkuqjmV3HvAgA9_HSgYBMnqpMYfhltFAAW2Y38MVhUORzAkMz7.Fcq2CyJNSNvpM4dwAlCPHY8lfM3xzEAVHrUyRqIPvMdxQU.tas.kl79HZY4hvR0GnuNnfE0okj4I4chusdg.SmU0ivozGN7tlurX2H9XqqBCJkyLeI2.XxE4bZ3DOacqTrCi2fopLgD6.Wq.oCnMiGeTR8B3JmnY4V4eU.C0zAplXreCnqC6.B_fB8eruy7kQZh0a8togFrybsTkHwf7c85sc3Wy4CGF8h5UWlQedW4lsK7035ty62E5iyprNsA0rw--%26lp=","headline":"Did You Know Every New Car Has a Secret Price?","image":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/79d22389fa80994a49eafa4887271a8c.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://clickserve.dartsearch.net/link/click?lid=43700009689160199&ds_s_kwgid=58700001050112706&ds_e_adid=29565154994&ds_url_v=2&ds_dest_url=http://www.carpricesecrets.com/?mkwid=6cdbYPY2&pse=bing","secHqImage":"https://web.archive.org/web/20160217234258/http://l1.yimg.com/bt/api/res/1.2/MQLvHCLRHzShozZvdtCYJw--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1421708932692-5363.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/79d22389fa80994a49eafa4887271a8c.jpeg","source":"CarPriceSecrets.com","summary":"Don't pay MSRP! Save yourself both time & money on your new car purchase. Join 97,000+ others this month and find your lowest price for your new car!","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=S2ZE_JYGIS8WbHUzRy9tm0RGppPOJj9v6w5kDg3Aj3t5y5uOPQUq1BX.nu6TRv6PiaXN0XqMbbTYX5Y2MWHO.tjynyspW2wNcDtd_zCDt1SBgch703a4mWuEg3n4hVZpuP8BU1P_DhHf0bsOcpUCWS5fPmVFeHMGlMUAdqnpdC11mRUWy6ww4JpfOOMKaaYZTPaedQrWFsyN55VZ8DCL1UNHXdf3VA89hwy0zSniHwNFpHJIl5PfCRW5Jt494F5cVRs_6JfEBBbbj6ooIUCTWyYTQJ7gWsTdvNTU3cwG6Nr0Ny28bKTWzRfhppLsb2bHCGuEr5spBVCcSJ79UoS3BrAwuTw757Jz2VWasGBtxAnBT8vXjNEvDrTkniTo1GxYrg6HwA--&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15qt25gt4(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579391000,li$0,cr$30590921529,dmn$respondtoyou.com,srv$3,exp$1455759779391000,ct$27,v$1.0,adv$995337,pbid$1,seid$5417818))&r=1455752579392&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=2FnFrTYGIS8UwPOwwnDpuhvIftBVN_1tF3Ad6STMCw6PdPSoQ53fBgBdAPz9l4Rnt7.OIHsnQJ_oZ.p3jEblKpUHCaVXSH2KHl4J2SgTc26aThOMQXqjq7WY4M127kBrO.44Y7dMl5FyKx6CqcHQlIPQ_wnik3CbL0Z6f247CTiOiENFHdI2eOSJPPHsRa3J1C_vX2oReoLSD3HKfKoh93ekD_U.fmpEfd6ve.ZN1pn4HJVWMUPvJHt9qqXEQWiv4XHWJtTvgXHeSUEDcT_ChU4aL220C0OVA1p66QbeB9ZOw0FDE2WbeQ__xqzoHsvNkRAGGK1gq7u.lppOOeb4KLyEfpghExw_6_vyo2wupdfBaNpdemK__Ia2kFD9IMQG8oqCEbC6yIGKa1i3Of2rf9DUUqlNgNTyzC6syi5FZzxphejYptRSgTL7JNreijN0qJupkMkMAGa.VJvwuN.qzh.rsxxF_Ru2f8q0_p08bWYHUPr_Gik0Zpi2MJCNLK16QKPQaU6G%26lp=","headline":"The Best New 2016 SUV? Compare The Top 3 Models","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/b340b320749ed27cd2344444bab95c65.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://respondtoyou.com/?cjp=F1c6ab_d15Q&utm_term=&Network=&utm_source=Google&url=","secHqImage":"https://web.archive.org/web/20160217234258/http://l3.yimg.com/bt/api/res/1.2/Eabt9uw17SGaf0.hFcpaWQ--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE_AND_CROP/1200x627/14ca6f3047350964c299c4474ea9fa1a.jpeg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/b340b320749ed27cd2344444bab95c65.jpeg","source":"respondtoyou.com","summary":"Find Out Which 3 Made The List, See How They Compare, Fuel Efficiency, Luxury, Safety And More. The SUVs That Are Setting The Standards. Search Now","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=cxj3N.4GIS_XKi8XaQSYXMARaYNZPSmcovL6HW_Yx719CwwHB_yWwNCmCbaS9Y1QnfoE8zhysV_v7jfxc9moFN8wvWjCaB.M7MkEb1XV7RGejXD_wG.TmSWYPyVBksB9nWfMuUsmqB2gveFjQcpWh_YzJe928ogtUgeEwpYsjoGhzOV3X4jBEj4bQOrsAB3Rdr_0E4l_wpbrCqMQVwAARGCNoHrmvuEm0L5MlizCtpbkRPhi8aVpMEwmW5ZYpkJ86mztYoaLd48DvLyovyuaA6dfwun4DwEc05D3wlnVoKN6S6diWyPmAz.XY0esuG9sZpPNWYnJa_FGw3EEary8XMSCX6mifRF9P1R2boO3VvVNqY4LdTgGKuA8dpSzaw--&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15mhe0nrk(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579392000,li$0,cr$31072033861,dmn$c31072033861,srv$3,exp$1455759779392000,ct$27,v$1.0,adv$963509,pbid$1,seid$5417818))&r=1455752579392&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=VEBXj4oGIS.2gisfuCJFgk2QaEhmPrKCyI87_gKqjZoSXhVgWAJUDqmWYf6MW8jTnDqlXhHwVKQ5croWIeQ2EPBqM1viO7SH9la4BxOZfCjFWzqhqlZbeLjruCxQotu23f4e2AD4rzd19ixHbZD62F2nvRezp1sEOOTGO.QwVz57SWayeuhBQSxp5gu3Oxm9NgXmsT1jTLjz21XGEu0dIFEsd1vDWaq6uL5JBO27hnDlwtKKEbofI41O4Ac199EX3wZdvbMPnz23llDwHk756QVfBJY.AQLxQg9c02.FInr0.IPkEwXxaKakW9fcMSM1K70KVLvET9Y5DPAWD10P3vwJ_ZDJkN4zdUpmI4C5S8nCe_tHumuRpMI4RO2rQHdvkN03pS07WUfneZn70JtczWIt0S_iAjTm4XhHdLQHfXrffYRirvmsN_oeVH4YbFSzV1P8pQ3jHaZ99Gg1Voc5koQmced.WeXEzmpVZMh9PaRkymCHzDwTbsJDWMAGXO_SyUsuAmYl0rWXALqXy7qvfp4LR3Y.1NFbUb5PVc.YJ6TBs.ExNQ_Dt9uuYmBePUD2b4uav2Ey6K3PupwuJUFm1UYzbccS8g5yqqFRiQU-%26lp=","headline":"Hot Legs: 23 Celebs with Perfect Pairs Of Pins!","image":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/7d8c10815290d42a499a4d34586aa3f6.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://www.starpulse.com/news/index.php/2014/09/26/hot_legs_23_of_the_sexiest_celebrity_w?utm_source=yahoo-gemini&utm_medium=referral&utm_campaign=yahoo-gemini","secHqImage":"https://web.archive.org/web/20160217234258/http://l2.yimg.com/bt/api/res/1.2/ThmxadYdhSrhWbtxE2TDVg--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1416848153409-2880.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/7d8c10815290d42a499a4d34586aa3f6.jpeg","source":"Starpulse.com","summary":"Seeking perfection: 23 of the nicest pairs of legs in Hollywood.","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=4u4iHjUGIS.CeEWRaydxfv_bD3of0Oo0X5eOQoynjyI6QCS96hLBYF4gEV1chTbTkYrPEqRfWKDg2a2ZB2DUjfxR8r6sKpBwv45oEOaJDYkac0Acw2tJvd81MqVO7xuq0ZmA_eX1hK7T7L.eWVJbn.y7zDkTzBKHT94vT5434Ho9ak1bNollkgBghdbWxtm_B9ComatZb1n_sU5FAguTeoWT8xumEKgP57jlepgEyKuuZO79YNxpqPtv85RwSfJsT.7kz4LJp5vsWEyywr0HZAM7MUA_91vGpnBVZhdnG21MAKVUNib5yuO4LKR54xauQKesWMjejHmyqsaxo3JXd84kV7kWomi6IibJLXkgYggXP99qgCyI.dTxAZE-&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(16208nq9d(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579392000,li$0,cr$31690779397,dmn$shadowhawkflashlights.com,srv$3,exp$1455759779392000,ct$27,v$1.0,adv$12967,pbid$1,seid$5417818))&r=1455752579392&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=mLneQNwGIS_kR__tClur_x.NUVb8yITGhB__JFygNUyBqFlbsGlOZ3UMvugxPOpVbDsB5zSEtBTYR12cAFAVouAK4d61A4V7jUs3H8bt6ExP0eUXF9XHB.IyTUx.nfINV764HFm9oosRT1WmxSTBe3vRpZM6XEEkYjb3eDUwTtWbXUE50ri3hNELO3dZrBTtG_5332bGNmcqTdOytyVFbQ3q6UHWmJLCn1cMmYdrYti1pP9U8uLUMHJPaPdhLbeBVsEM4jFxHcfCC.Yp2PojKUqUM1vYA_D58mZyDHZuGNAwObntngDGcWGkb3uzJQ1qe1Yf7qdyVK0mrSAIGqR3RDOz3qEe.S3fz6.lsdLKrUy51J0xFMoPoGtlGE92DQKbN_uOhd6iJW.u591mBVjLB3r0IABc0ZVkZ.QqbBjE3lXk91rfpURXXsQpgnjnvYEThyEZqaUOI36h9GqTd9CXiitug9r0JQ6B5yAsMLUxnJ_lqKXd8On9Mg54Rh6p%26lp=","headline":"Insane Navy Seal Flashlight, should it be banned?","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/a152993ed41f4e3745b77f9d6c9ff19b.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/https://www.shadowhawkflashlights.com/ss1/index.php?AFID=12&SID=YH","secHqImage":"https://web.archive.org/web/20160217234258/http://l3.yimg.com/bt/api/res/1.2/yoP9ej3el5ZaSHz1Y_JYfA--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/https://s.yimg.com/av/moneyball/ads/1452198456012-5800.jpg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/a152993ed41f4e3745b77f9d6c9ff19b.jpeg","source":"Shadowhawk Flashlights","summary":"The Military has recently released technology that is now available to the public. Get yours before they run out - Limited Supply!","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=uEHw5M0GIS_oQXD99Jnlu4RZw4eEG6GC7kpkszR4gCO63qyDbZtyZhBGJpSTcKzi7FrGyxuYzF4E3unaC2zKwTD0ACKD1BQW6e0aYRrOAPCutOV0BvK2bieiLfXq0V76rphy2K8XkQxcWoYQhuBHnUNY6fZ5PMcANxapRzAHu7YDy2qPBFmMxmoh6Xw2pA.zCM7cxQE6f1lGVRCfArzrIqA4AJlG5UYJYPki6zkrvriZQgDZHAePkBwbIfNHC5izfGx1gPYRHHn4pD8PWJroUh.A0vUfCH6tNrxV2aNzIv.l093bzq9XwtpK90CP0KjTSAIg9B2jtfkzY2NMglI_xYgPlaIR8OnCewRptpvfC8GfydSPws.b5KjE7hJ69twPSShG&ap=$(AD_POSN)"},{"ad_feedback_beacon":"https://web.archive.org/web/20160217234258/https://us.af.beap.bc.yahoo.com/af?bv=1.0.0&bs=(15t0agj7a(gid$2d3a82e2-d5d0-11e5-92f1-008cfac0d9a8-7f299654a700,st$1455752579392000,li$0,cr$31602866224,dmn$commercetopics.com,srv$3,exp$1455759779392000,ct$27,v$1.0,adv$1002833,pbid$1,seid$5417818))&r=1455752579392&al=$(AD_FEEDBACK)","clickUrl":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&es=PhmhamkGIS_3qJxOBR4TkHbnRuQjLZCr.08H_HQSIaB888pew2.VbKfJpMYj_ff1Xu.HiLezARHxh0BDqyH_STuRhugz98SGa1MGtkxHWDtMPYW7NCJfyhvS1fdGpBTfU3.czVAiMWC6YdXOXOjh2JodJqyWFz5D5nJPzN0oJ4N2WjVwT5y6WGMr_9wOdaa5.rr2bJYzrp7cuqCFUQd5tt4hKVyGfrLkIlwGDaqdhEFvh9zNHdZ.Ebo1wtfAVdduUcd3eZIXDzRpGbWsTAJh904jspelk1zZvhQ1ZZXl1Agvw0UhuqBZ2os4MOaZWXAw1rZ3YUS7XHWOteIsneJ7fKpKnZgUnVaC3cNlc9UAE9SYWNzRohUW_FpSaqcOOITtm_b64jd0FCKcCJq6hziNEdgjyGkzptOUVZdFT2K.SAAYzxxVBHmL47H0MweQn1wvOkeKZI5FFQ--%26lp=","headline":"Top 3 2016 Luxury SUVs That Have It All","image":"https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE/82x82/22121be90887bc7b1b14ef074f1d5b4a.jpeg","landingUrl":"https://web.archive.org/web/20160217234258/http://experttopicstoday.com/?hpy=cD1e14a~e5","secHqImage":"https://web.archive.org/web/20160217234258/http://l2.yimg.com/bt/api/res/1.2/qjoQHngjfyVpM_CvNLB1pQ--/YXBwaWQ9eW5ld3M7dz0zMDA7aD0xNTY7Zmk9ZmlsbA--/https://web.archive.org/web/20160217234258/http://l.yimg.com/av/curveball/ads/pr/RESIZE_AND_CROP/1200x627/b4979a3321801de8ec410be7353fdec1.jpeg.cf.jpg","secImage":"https://web.archive.org/web/20160217234258/https://s.yimg.com/av/curveball/ads/pr/RESIZE/82x82/22121be90887bc7b1b14ef074f1d5b4a.jpeg","source":"commercetopics.com","summary":"Need A Luxury SUV That Has Style, Comfort & Gets Great Gas Mileage, See The Top 3 New Luxury SUVs. See Which Top Models Made Our List, Search Now","beacon":"https://web.archive.org/web/20160217234258/https://beap.gemini.yahoo.com/mbcsc?bv=1.0.0&es=tvRMgasGIS85KO0GXaJdndFSEocaYpY.pVqULRzGtQ9YQsFAtjh5drPxaB7Tba1AKGk28cgTDzqa2ihK_N9TznuhwlA4fZehmiAv3.Q1I4wHOR2QDX_hbmD7S_AJuKb4etoBziodDp4xyneRH0qDRH7SQya14Z9ZbscZmctZsBoVFCHVZDBjEykWuCJNWg.tb1MM2vZCluM7_0hmJ5wuleFWNH9tHX2EfcLRKm1V8DdtrJyJCgSRX_4mvx9wYa1tax91tvH2pV2KHhHwuqD23MVKGQBcEJTw2bop_KkABw9mkHFoMDW5UZ.oz47fd430Otl72mGsHJrX76nTrXOKsDtIE23jbjiYQs7pR5RxXBoaMVYTgl99WWvCorVK&ap=$(AD_POSN)"}]},"spaceid":"1183300101","enableClientSideFetch":"0","enableBeaconComputation":"1","mock":"", "enableAdFeedback":"1"}</script> <div class="root" data-listener></div> </div> </div> </div> </div><script>YMedia.applyConfig({"groups":{"td-applet-ads":{"base":"https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/td/td-applet-ads-0.1.590/","root":"os/mit/td/td-applet-ads-0.1.590/","combine":true,"filter":"min","comboBase":"https://web.archive.org/web/20160217234258/http://l.yimg.com/zz/combo?","comboSep":"&"}}});</script><script>window.Af=window.Af||{};window.Af.bootstrap=window.Af.bootstrap||{};window.Af.bootstrap["1309788362162924"] = {"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":"ccZXhDx.mql","device":"desktop","lang":"en-US","region":"US","site":"finance"}};</script><script>!YMedia||YMedia.UA&&YMedia.UA.ie&&YMedia.UA.ie<=7||YMedia.use("json-parse","td-ads-fetcher","td-ads-enhancer","td-ads-feedback",function(Y){if(!(Y&&Y.Ads&&Y.Ads.Fetcher&&Y.Ads.Enhance))return void Y.Af.Beacon.error("td-applet-ads",{},"js assets are not loaded");var data,node=Y.one("script#td-ads-prefetched-content");if(!node||!node._node||!node._node.innerHTML)return void Y.Af.Beacon.error("td-applet-ads",{},"cannot find prefetched ad content");Y.Ads.t_placegenlistadstart=(new Date).getTime();try{node=node._node,data=Y.JSON.parse(node.innerHTML)}catch(e){return void Y.Af.Beacon.error("td-applet-ads",{},"failed to parse prefetched ads content")}Y.Ads.Fetcher(data),Y.Ads.Enhance(),Y.fire("nativeads:ready")});</script> <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> <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":"#mediabankrate_container","continueOnError":true,"response":"\r\n--dali-response-split-56c5058362fb9\r\nContent-Type: text\/plain; charset=utf-8\r\nRMP-Embed-Location: top\r\n\r\n<style> .yog-cp .yom-app.yom-bank-rate .bd{ margin-left:-10px !important; margin-right:-10px !important;}<\/style>\r\n--dali-response-split-56c5058362fb9\r\nContent-Type: text\/plain; charset=utf-8\r\nRMP-Embed-Location: bottom\r\n\r\n<script language=\"javascript\">\n \nYUI.YUICfg = {\"gallery\":\"yui:gallery-2011.04.20-13-04\",\"groups\":{\"group01c9d8dea06e05460a64eed4dadd622b6\":{\"base\":\"http:\\\/\\\/l.yimg.com\\\/\",\"comboBase\":\"http:\\\/\\\/l.yimg.com\\\/zz\\\/combo?\",\"modules\":{\"media-bank-rate\":{\"path\":\"os\\\/mit\\\/media\\\/m\\\/finance\\\/bank-rate-min-85077a1.js\"}},\"combine\":true,\"filter\":\"min\",\"root\":\"\\\/\"}},\"combine\":true,\"allowRollup\":true,\"comboBase\":\"http:\\\/\\\/l.yimg.com\\\/zz\\\/combo?\",\"fetchCSS\":false,\"maxURLLength\":\"2000\"}\nYUI.YUICfg.root='yui:'+YUI.version+'\/build\/';\nYMedia.applyConfig(YUI.YUICfg);\nYUI.Env[YUI.version].base = 'https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/';\nYUI.Env[YUI.version].comboBase = 'https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/zz\/combo?';\nYUI.Env[YUI.version].root = 'yui:'+YUI.version+'\/build\/';\nYMedia.use(\"media-bank-rate\",function(Y){\n \n \n});\n\nYUI.Env.add(window, \"load\", function(){\nYMedia.use(\"\",function(Y){\n \n Y.later(10, this, function() {new Y.Media.BankRate({\n 'mod_id': 'mediabankrate',\n 'iframe_src': '\/\/web.archive.org\/web\/20160217234258\/http:\/\/p.bankrate.com\/yho\/Default.aspx?t=m&$key=13&$pid=yhof3',\n 'iframe_class': 'yom-bank-rate'\n });\n });\n Y.later(10, this, function() {(function(){ var rapid = YMedia.rapid; if (rapid) { rapid.addModules(\"mediabankrate\"); } }());\n });\n});\n});\n \n <\/script>\r\n--dali-response-split-56c5058362fb9\r\nContent-Type: text\/html; charset=utf-8\r\n\r\n<div id=\"mediabankrate\" class=\"yom-mod yom-app yom-bank-rate fin-glass-disabled\" data-ylk=\"sec:bk-r;t1:a4;t2:bk-r;\">\n <div class='hd'>\n <h2 class='Fw-200 Fz-l M-0 D-ib'>Rates<\/h2>\n <\/div>\n <div class='bd'>\n <iframe src='' frameborder='0' scrolling='no' style='width:100%;height:350px;' allowTransparency='true'><\/iframe>\n <\/div>\n<\/div>\n\r\n--dali-response-split-56c5058362fb9--\r\n"});});</script><!-- fe886.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:59 UTC 2016 --> <script>YMedia.use("media-rmp", function(Y){Y.Media.RMP.load({"srcNode":"#mediamarkettimegs_2_container","continueOnError":true,"response":"\r\n--dali-response-split-56c5058366e89\r\nContent-Type: text\/plain; charset=utf-8\r\nRMP-Embed-Location: top\r\n\r\n<link rel=\"stylesheet\" type=\"text\/css\" href=\"http:\/\/l.yimg.com\/zz\/combo?os\/mit\/media\/m\/finance\/quote-streaming-gs-min-919aeef.css&os\/mit\/media\/m\/finance\/common-gs-min-12d09cb.css&os\/mit\/media\/m\/finance\/market-time-gs-desktop-min-919aeef.css\" \/>\r\n--dali-response-split-56c5058366e89\r\nContent-Type: text\/plain; charset=utf-8\r\nRMP-Embed-Location: bottom\r\n\r\n<script language=\"javascript\">\n \nYUI.YUICfg = {\"gallery\":\"yui:gallery-2011.04.20-13-04\",\"groups\":{\"group01c9d8dea06e05460a64eed4dadd622b6\":{\"base\":\"http:\\\/\\\/l.yimg.com\\\/\",\"comboBase\":\"http:\\\/\\\/l.yimg.com\\\/zz\\\/combo?\",\"modules\":{\"media-yfs_l10n_en-US\":{\"path\":\"os\\\/mit\\\/media\\\/m\\\/quotes\\\/yfs_l10n_en-US-min-01dce39.js\"},\"media-quotes-streaming\":{\"path\":\"os\\\/mit\\\/media\\\/m\\\/quotes\\\/quotes-streaming-min-fbb9f53.js\"},\"media-market-time\":{\"path\":\"os\\\/mit\\\/media\\\/m\\\/finance\\\/market-time-min-6affaa4.js\"}},\"combine\":true,\"filter\":\"min\",\"root\":\"\\\/\"}},\"combine\":true,\"allowRollup\":true,\"comboBase\":\"http:\\\/\\\/l.yimg.com\\\/zz\\\/combo?\",\"fetchCSS\":false,\"maxURLLength\":\"2000\"}\nYUI.YUICfg.root='yui:'+YUI.version+'\/build\/';\nYMedia.applyConfig(YUI.YUICfg);\nYUI.Env[YUI.version].base = 'https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/';\nYUI.Env[YUI.version].comboBase = 'https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/zz\/combo?';\nYUI.Env[YUI.version].root = 'yui:'+YUI.version+'\/build\/';\nYUI.Env.add(window, \"load\", function(){\nYMedia.use(\"media-yfs_l10n_en-US\",\"media-quotes-streaming\",\"media-market-time\",function(Y){\n \n Y.later(10, this, function() {setTimeout(YUI.Finance.Streaming.init, 5000);\n });\n Y.later(10, this, function() {new Y.Media.MarketTime({\n 'mod_id': 'mediamarkettimegs_2',\n 'indices_url': '\/_xhr\/markettimeindices\/',\n 'show_indices': 0,\n 'tickers': '',\n 'names': ''\n });\n });\n Y.later(10, this, function() {(function(){ var rapid = YMedia.rapid; if (rapid) { rapid.addModules(\"mediamarkettimegs_2\"); } }());\n });\n});\n});\n \n <\/script>\r\n--dali-response-split-56c5058366e89\r\nContent-Type: text\/html; charset=utf-8\r\n\r\n<div id=\"mediamarkettimegs_2\" class=\"yom-mod yom-app yom-market-time fin-glass-disabled\">\n <div class='bd Fz-xs Ov-h'>\n <span id='yfs_market_time' class='fin-market-time base-txt-color Va-b'>Wed, Feb 17, 2016, 6:42 PM EST - U.S. Markets closed<\/span> <div class='mt-indices D-ib Fz-s SlowTrans Op-0'><\/div>\n <\/div>\n\n <script>\n YUI().use(function (Y) {\n \/\/ Set doc.domin for all browsers except IE6 and 7 when domain is finance.yahoo.com\n \/\/ This is required for streaming and darla\n try {\n if ( !(( Y.UA.ie == 6 || Y.UA.ie == 7 ) && document.domain == 'finance.yahoo.com' )) {\n document.domain = 'finance.yahoo.com';\n window.DOC_DOMAIN_SET = 1;\n }\n } catch(e) {\n \/\/Do nothing\n }\n });\n\n yfs_common_params = {\n \"market\" : {\n \"NAME\" : \"\",\n \"ID\" : \"US\",\n \"TZ\" : \"ET\",\n \"STDTZ_TAG\": \"EST\",\n \"DSTTZ_TAG\": \"EDT\",\n \"TZOFFSET\" : \"-18000\",\n \"open\" : \"\",\n \"close\" : \"\",\n \"flags\" : \"\"\n },\n \"STREAMER_SERVER\": \"\/\/streamerapi.finance.yahoo.com\" ,\n \"arrowAsChangeSign\": false ,\n \"throttleInterval\": \"1000\",\n \"localize\": \"0\" ,\n \"region\": \"US\",\n \"lang\": \"en-US\",\n \"mu\": \"1\" ,\n \"up_arrow_icon\": \"http:\/\/l.yimg.com\/a\/i\/us\/fi\/03rd\/up_g.gif\" ,\n \"down_arrow_icon\": \"http:\/\/l.yimg.com\/a\/i\/us\/fi\/03rd\/down_r.gif\" ,\n \"up_color\": \"green\" ,\n \"down_color\": \"red\",\n \"pass_market_id\": \"0\",\n \"market_status_yrb\":\"YFT_MARKET_WILL_CLOSE\",\n \"DOC_DOMAIN\": \"finance.yahoo.com\",\n \"useXHR\": \"1\"\n }\n <\/script>\n\n \n<\/div>\n\r\n--dali-response-split-56c5058366e89--\r\n"});});</script><!-- fe891.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:59 UTC 2016 --> <script>YMedia.use("media-rmp", function(Y){Y.Media.RMP.load({"srcNode":"#mediacontentrelatedstory_container","continueOnError":true,"response":"\r\n--dali-response-split-56c505837a207\r\nContent-Type: text\/plain; charset=utf-8\r\nRMP-Embed-Location: top\r\n\r\n<link rel=\"stylesheet\" type=\"text\/css\" href=\"http:\/\/l.yimg.com\/zz\/combo?os\/mit\/media\/m\/content_index\/generic-listings-desktop-min-da555a8.css&os\/mit\/media\/m\/content_index\/content-related-story-min-960a862.css\" \/>\r\n--dali-response-split-56c505837a207\r\nContent-Type: text\/plain; charset=utf-8\r\nRMP-Embed-Location: bottom\r\n\r\n<script language=\"javascript\">\n \nYUI.YUICfg = {\"gallery\":\"yui:gallery-2011.04.20-13-04\",\"groups\":{\"group01c9d8dea06e05460a64eed4dadd622b6\":{\"base\":\"http:\\\/\\\/l.yimg.com\\\/\",\"comboBase\":\"http:\\\/\\\/l.yimg.com\\\/zz\\\/combo?\",\"modules\":{\"media-preview-default\":{\"path\":\"os\\\/mit\\\/media\\\/m\\\/content_index\\\/preview-default-min-e0e1d50.js\"}},\"combine\":true,\"filter\":\"min\",\"root\":\"\\\/\"}},\"combine\":true,\"allowRollup\":true,\"comboBase\":\"http:\\\/\\\/l.yimg.com\\\/zz\\\/combo?\",\"fetchCSS\":false,\"maxURLLength\":\"2000\"}\nYUI.YUICfg.root='yui:'+YUI.version+'\/build\/';\nYMedia.applyConfig(YUI.YUICfg);\nYUI.Env[YUI.version].base = 'https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/';\nYUI.Env[YUI.version].comboBase = 'https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/zz\/combo?';\nYUI.Env[YUI.version].root = 'yui:'+YUI.version+'\/build\/';\nYUI.Env.add(window, \"load\", function(){\nYMedia.use(\"media-preview-default\",function(Y){\n \n Y.later(10, this, function() {(function(){ var rapid = YMedia.rapid; if (rapid) { rapid.addModules(\"mediacontentrelatedstory\"); } }());\n });\n});\n});\n \n <\/script>\r\n--dali-response-split-56c505837a207\r\nContent-Type: text\/html; charset=utf-8\r\n\r\n <section class=\"yom-mod \" id=\"mediacontentrelatedstory\" data-ylk=\"mid:mediacontentrelatedstory;mpos:1;elm:hdln;elmt:ct;cat:Related Stories;rspns:nav;t1:a3;t2:lst-ct;itc:0;sec:lst-ct;\"> <div class=\"yom-related-story-module story sidekick \"> <div class=\"hd\"> <h2>Related Stories<\/h2> <\/div> <div class=\"bd\"> <div class=\"latest-content-inline\"> <ol> <li class=\"list-item story\" data-uuid=\"8410f965-171a-363a-84ef-95c7b2971445\"> <a href=\"http:\/\/www.bloomberg.com\/politics\/articles\/2016-02-17\/apple-opposes-order-to-unlock-san-bernardino-shooter-s-iphone?cmpid=yhoo.headline\" data-ylk=\"itc:0;tar:www.bloomberg.com;ct:1;sec:lst-ct;cpos:1;test:;g:8410f965-171a-363a-84ef-95c7b2971445;pkgt:2;prov:Bloomberg;\" >Apple Opposes Order to Unlock San Bernardino Shooter's iPhone<\/a> <span class=\"source\">Bloomberg<\/span> <\/li> <li class=\"list-item story\" data-uuid=\"bc72110c-fd64-3dd2-9722-08a85c30e276\"> <a href=\"\/news\/judge-orders-apple-unlock-phone-091509199.html\" data-ylk=\"itc:0;tar:finance.yahoo.com;ct:1;sec:lst-ct;cpos:2;test:;g:bc72110c-fd64-3dd2-9722-08a85c30e276;pkgt:2;prov:Digital Trends;\" >Tim Cook denounces \u2018chilling\u2019 FBI demands<\/a> <span class=\"source\">Digital Trends<\/span> <\/li> <li class=\"list-item story\" data-uuid=\"9b76e0cc-9cfd-3afe-b822-b4298b30ef5b\"> <a href=\"http:\/\/www.investopedia.com\/articles\/investing\/021716\/apple-ceo-contests-fbi-court-order-unlock-iphone-aapl.asp?partner=YahooSA\" data-ylk=\"itc:0;tar:www.investopedia.com;ct:1;sec:lst-ct;cpos:3;test:;g:9b76e0cc-9cfd-3afe-b822-b4298b30ef5b;pkgt:2;prov:Investopedia;\" >Apple CEO Contests FBI Court Order to Unlock iPhone (AAPL)<\/a> <span class=\"source\">Investopedia<\/span> <\/li> <li class=\"list-item story\" data-uuid=\"ac9a9494-646b-3253-b3c5-2aa73db1a857\"> <a href=\"http:\/\/www.wsj.com\/articles\/apple-to-oppose-judge-order-to-help-unlock-phone-linked-to-san-bernardino-attack-1455698783?mod=yahoo_hs\" data-ylk=\"itc:0;tar:www.wsj.com;ct:1;sec:lst-ct;cpos:4;test:;g:ac9a9494-646b-3253-b3c5-2aa73db1a857;pkgt:2;prov:The Wall Street Journal;\" >[$$] Apple Opposes Judge's Order to Unlock Phone<\/a> <span class=\"source\">The Wall Street Journal<\/span> <\/li> <li class=\"list-item story\" data-uuid=\"34d241bd-eac0-3871-8341-f404ff81e84d\"> <a href=\"\/news\/apple-ordered-aid-fbi-breach-014814619.html\" data-ylk=\"itc:0;tar:finance.yahoo.com;ct:1;sec:lst-ct;cpos:5;test:;g:34d241bd-eac0-3871-8341-f404ff81e84d;pkgt:2;prov:Reuters;\" >Apple opposes order to help unlock California shooter's phone<\/a> <span class=\"source\">Reuters<\/span> <\/li> <li class=\"list-item sidekick Dn\" data-ad=\"pencil\" data-ad-remove='{\"class\":\"Dn\"}'> <a href=\"#\" class=\"title\" data-ad-replace='{\"_markup\":\"headline\",\"href\":\"clickUrl\",\"target\":\"_blank\"}'><\/a> <span class=\"Whs-nw ads-sponsored-text\"> <span class=\"provider\"><a rel=\"nofollow\" href=\"#\" data-ad-replace='{\"_markup\":\"source\",\"href\":\"landingUrl\"}' class=\"ad-source\"><\/a><\/span> <a rel=\"nofollow\" href=\"https:\/\/help.yahoo.com\/kb\/SLN22774.html?impressions=true\" target=\"_blank\" class=\"ad-sponsored\"> <span class=\"C-darkGrey Fz-xs\">Sponsored <\/span> <\/a> <a rel=\"nofollow\" data-ad-remove='{\"class\":\"Dn\"}' class=\"Dn\" href=\"https:\/\/info.yahoo.com\/privacy\/us\/yahoo\/relevantads.html\" target=\"_blank\"> <span class=\"Icon C-darkGrey \"><\/span> <\/a> <\/span> <\/li> <\/ol> <\/div> <\/div> <\/div> <\/section>\n\r\n--dali-response-split-56c505837a207--\r\n"});});</script><!-- fe890.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:59 UTC 2016 --> <script language="javascript"> YUI.YUICfg = {"gallery":"yui:gallery-2011.04.20-13-04","groups":{"group01c9d8dea06e05460a64eed4dadd622b6":{"base":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/","comboBase":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.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-fac0ae0.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-watchlist-base":{"path":"os\/mit\/media\/m\/finance\/watchlist-base-min-240ac0f.js"},"media-watchlist-gs":{"path":"os\/mit\/media\/m\/finance\/watchlist-gs-min-8a3c5b2.js"},"media-follow-quote":{"path":"os\/mit\/media\/m\/finance\/follow-quote-min-8559ad0.js"},"media-quotes-search-gs":{"path":"os\/mit\/media\/m\/quotes\/quotes-search-gs-min-edf8574.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-9fcce18.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-preview":{"path":"os\/mit\/media\/m\/content_index\/preview-min-9f53411.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:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.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://web.archive.org/web/20160217234258/http://l.yimg.com/'; YUI.Env[YUI.version].comboBase = 'https://web.archive.org/web/20160217234258/http://l.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-watchlist-base","media-watchlist-gs","media-follow-quote","media-quotes-search-gs","node","event","collection","json","intl","autocomplete","datasource-get","cookie","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","querystring-stringify-simple","dom-screen","base","datatype","querystring","media-content-share-buttons",function(Y){ Y.later(10, this, function() {if (window.LH !== undefined) { if ( !window.LH.isInitialized) { if (window.location.href.indexOf('showaft=') != -1 || Math.floor(Math.random()*100)<=6 || 0) { window.LH.init( { spaceid:'1183300101', serverip:'', pvid:'', crumb:'' }); } } if (window.LH.isInitialized && window.YAFT !== undefined) { var ___aftMaxWaitTime___ = 4500, ___lhOnContentType___ = 1, ___lhContentType___ = 'story', ___lhNPageExcludes___ = 'MAST,LDBR', ___yaftConfig___, ___lhReccord = function (ma, va) { window.LH.record(ma, { name: ma, type: 'mark', startTime: Math.round(va), duration: 0 }); }; if ('') { window.LH.tag("b", { val: '' }); } else if ( ___lhOnContentType___ === 1 && (___lhContentType___ == 'story' || ___lhContentType___ == 'slideshow')) { window.LH.tag("b", { val: 'GSUS_'+___lhContentType___ }); } ___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 && YMedia.rapid) ? YMedia.rapid : null, aftThreshold: 10000 ? 10000 : 15000 } }); } window.YAFT.init( ___yaftConfig___, function (data, error) { var allAdPos = window.___allAdsPos___, i, norPage = 1, aft; if (!error) { aft = Math.round(data.aft); ___lhReccord('AFT', aft); ___lhReccord('AFT1', aft); ___lhReccord('AFTNOAD', Math.round(data.aftNoAd)); ___lhReccord('VIC', data.visuallyComplete); ___lhReccord('STR', data.startRender); if ( window.___adLT___ !== undefined && window.___adLT___.length && window.___adLT___.length > 0) { for (i = 0; i < ___adLT___.length; i+=1) { ___lhReccord(___adLT___[i][0], ___adLT___[i][1]); } } if (___lhNPageExcludes___ && ___lhNPageExcludes___ != '0' && ___lhNPageExcludes___.length && allAdPos && allAdPos.length) { for (i = 0; i < allAdPos.length; i+=1) { if (___lhNPageExcludes___.indexOf(allAdPos[i]) != -1) { norPage = 0; break; } } if (norPage) { ___lhReccord('xAFT', aft); ___lhReccord('xPLT', data.pageLoadTime); } } window.LH.beacon( { clearMarks:false, clearMeasures: false, clearCustomEntries: true, clearTags: false }); } }); } }}); 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() {/** reuse the current header timer**/ window._sf_startpt=t_headstart; window._sf_async_config={}; /** CONFIGURATION START **/ window._sf_async_config.uid = 54992; window._sf_async_config.domain = 'finance.yahoo.com'; window._sf_async_config.useCanonical = true; window._sf_async_config.sections = 'Federal_Bureau_of_Investigation, Apple_Inc., Tim_Cook, United_States_Department_of_Justice, White_House, Capitol_Hill, IPhone, Twitter, Richard_Burr, Josh_Earnest, Government, Open_Technology_Institute, Software_industry, Chief_executive_officer, Dianne_Feinstein, Justin_Amash, United_States_magistrate_judge, Donald_Trump, Edward_Snowden, 2015_San_Bernardino_attack, United_States_Senate_Select_Committee_on_Intelligence, Law_enforcement_agency, Technology_company, The_Gunman_%28film%29, Personally_identifiable_information, United_States_Attorney, Fox_News_Channel, San_Bernardino,_California, Presidency_of_Barack_Obama, Public_relations, United_States_presidential_election, The_Judge_%282014_film%29, Unique_identifier, Islamic_terrorism, Medical_record, California, Court_order, United_States, No_Sympathy, The_Technique, Hundred_%28county_division%29, Spokesperson, Key_%28lock%29, Nokia_N9, Soil'; window._sf_async_config.authors = 'TAMI ABDOLLAH and ERIC TUCKER'; /** 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', 'https://web.archive.org/web/20160217234258/https://s1.yimg.com/cd/assets/chartbeat_yahoo.js '); document.body.appendChild(e); } if (Math.floor(Math.random()*100)<=50) { if(window.addEventListener)window.addEventListener('load',loadChartbeat,0); else if(window.attachEvent)window.attachEvent('onload',loadChartbeat); } })();}); Y.later(10, this, function() {new Y.Media.Instrumentation();}); Y.later(10, this, function() {if (Y.Media && !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: '1', enableRMXAds: '0', enableSponsoredRMXAds: '0', enableNativeAds: '1', enableTrendingModule: '0', enableFilmAd: '1', nativeAdsThreshold: '500', rmxAdsSectionId: '5049247', 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: 'f88a5248-19a3-36c7-9a08-7dfc93b9fa4c', slideshowInstanceId: 'c0645350-77ac-317f-a6f0-7c43c8931833', trendingInstanceId: '91246927-f853-3daa-b2a7-2fd2ecab95d3', rmpModuleTimeout: '2000', enableLDRBads: '0', strm_cc: 'STRM', enableSidekick: 1, 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 && tabIcon.one('.sfl-icon'); if (tabIcon && !sflIcon) { var repeats = 0, callback = null; sflIcon = Y.Node.create('<i class="icon-y-xsmall selected sfl-icon"></i>'); 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 < 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='1183300101';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:'finance',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.FollowQuote.init({ 'xhrBase': '/', 'lang': 'en-US', 'region': 'US', 'tickerUrlPattern': '/q?s=', 'bucketCode': '' }); new Y.Media.WatchlistGS({ 'mod_id': 'mediawatchlistgs_2', 'data_xhr': '/_xhr/watchlist-data/', 'timeout': "15000", 'refresh_mod' :[{ 'mod_id' : 'td-applet-related-videos', 'instance_id' :'b9a05e05-e47c-3e30-a9f3-f88869ee109e', 'src_node' : '#td-applet-related-videos_container', 'sig' : 'sigVideo', 'params': {'mode' : 'myquotes'} },{ 'mod_id' : 'td-applet-stream', 'instance_id' :'853ad91f-487f-389b-8650-c3ba83c72c5e', 'src_node' : '#td-applet-stream_container', 'sig' : 'sigStream', 'params': {'ads_se' :'4492794', 'category': 'YCUSTOM:MYQUOTES', 'timeout': '2000', 'finance_use_default': '1','header':'0'} }] });}); Y.later(10, this, function() {Y.Media.FollowQuote.init({ 'xhrBase': '/', 'lang': 'en-US', 'region': 'US' }); new YAHOO.Media.SymbolSuggestGS({ 'acInputFormId' : '#mediaquotessearchgs_2', 'dsServer' : 'https://web.archive.org/web/20160217234258/http://d.yimg.com/aq/autoc', 'spaceId' : '1183300101', 'region' : 'US', 'lang' : 'en-US', 'quotesPage' : '/q', 'quotesLookup' : '/lookup?s=', 'showAllResultsStr': 'Show all results for {0}', 'focusOnInput':'0', 'device' : 'full' });}); 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:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/YoJWpWsdB8zLDqq0cz3gFw--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NDE0O2lsPXBsYW5lO3B4b2ZmPTUwO3B5b2ZmPTA7cT03NTt3PTczNg--\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","width":736,"height":414},"date":"8 hours ago","uuid":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","isVideo":true,"url":"\/video\/apple-fight-court-order-san-144843124.html","orig_index":0,"type":"video","title":"Apple to fight court order on San Bernadino case","caption":"Apple to fight court order to help hack San Bernadino terrorist iPhone","provider":"Yahoo Finance Video","attribution":[],"coverId":"cover-66311ed292ec39d7587597453cdf250c"},{"credit":null,"img":{"url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/cXlIyMl7ZZ7hKYiMmbUExw--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NjIyO2lsPXBsYW5lO3B5b2ZmPTA7cT03NTt3PTk2MA--\/http:\/\/globalfinance.zenfs.com\/images\/US_AHTTP_AP_FINANCIALTIMES\/2fd3436bb32bb308900f6a706700c7f8_original.jpg","width":960,"height":622},"date":"","uuid":"84b36e78-fe81-30c2-9bc6-1c6624d80e88","isVideo":false,"url":"\/photos\/apple-resisting-magistrate-order-share-photo-113320864.html","orig_index":1,"type":"image","title":"Apple to fight order to help FBI unlock shooter's iPhone","caption":" FILE - In this April 30, 2015, file photo, Apple CEO Tim Cook responds to a question during a news conference at IBM Watson headquarters, in New York. Cook said his company will resist a federal magistrate's order to hack its own users in connection with the investigation of the San Bernardino, Calif., shootings. In a statement posted early Wednesday, Feb. 17, 2016, on the company's website, Cook argued that such a move would undermine encryption by creating a backdoor that could potentially be used on other future devices. (AP Photo\/Richard Drew, File) ","provider":"Associated Press","attribution":[],"coverId":"cover-4d996f8ae18695926cff37eb74ebbdc3"}],"playlist":[{"player_type":"yep","video_config":{"autoplay":true,"continuousPlay":true,"mute":false,"volume":"0.90","lang":"en-US","site":"finance","region":"US","jurisdiction":"US","YVAP":{"accountId":"193","playContext":null},"pageSpaceId":"1183300101","comscoreC4":"US Finance","comscoreC6":"","showEmbedCode":true,"showShareUrl":true,"expBucket":"","expName":"grandslam","expType":"lead_vp","apiEnv":"prod","CMS":{"env":"prod","suppressAdContext":true},"playlist":[{"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","title":"Apple to fight court order on San Bernadino case","embedCode":"<iframe width=\"624\" height=\"351\" scrolling=\"no\" frameborder=\"0\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\" allowtransparency=\"true\" src=\"http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html?format=embed&player_autoplay=false\"><\/iframe>","shareUrl":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html","licenseId":"a0ad0000009aEX5AAM","duration":"165","images":{"large":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/d9Rpt72AdwqLh50DuIln9g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NDg3O2lsPXBsYW5lO3E9NzU7dz02NTA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","medium":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/VOQchPnZ.1L6DPOdOv4gNg--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"},"description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","embeddable":true}]},"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","title":"Apple to fight court order on San Bernadino case","embedCode":"<iframe width=\"624\" height=\"351\" scrolling=\"no\" frameborder=\"0\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\" allowtransparency=\"true\" src=\"http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html?format=embed&player_autoplay=false\"><\/iframe>","shareUrl":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html","licenseId":"a0ad0000009aEX5AAM","duration":"165","images":{"large":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/d9Rpt72AdwqLh50DuIln9g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NDg3O2lsPXBsYW5lO3E9NzU7dz02NTA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","medium":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/VOQchPnZ.1L6DPOdOv4gNg--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"},"description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","embedable":true,"inline_js_url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/os\/mit\/media\/m\/videos\/yepcainlineplayer-min-06ae69e.js","js_url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/yep.video.yahoo.com\/js\/3\/videoplayer-min.js?lang=en-US"}]},"total":2,"templates":{"structure":"<div id=\"content-lightbox\" class=\"yom-lb yom-lb-bg {{ieClass}} overlay-tracker\" data-uuid=\"{{slideshowId}}\">\n <div class=\"lb-content clearfix\">\n <div id=\"lb-share-btns\" class=\"lb-share-btns\">\n <\/div>\n <i class=\"Icon close-btn\"><\/i>\n <div id=\"lb-rp\" class=\"lb-rp\">\n {{#embedSlotOne}}\n <div id=\"{{..\/embedSlotOne}}\" class=\"{{..\/embedSlotOne}} hidden\">\n <center>\n <\/center>\n <\/div>\n {{\/embedSlotOne}}\n {{#enableTrendingModule}}\n <div id=\"{{trendingModuleId}}\" class=\"lb-module\">\n <center>\n <\/center>\n <\/div>\n {{\/enableTrendingModule}}\n <div id=\"yom-ad-LREC-lb\" class=\"yom-ad-LREC lb-lrec\">\n <center>\n <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;\">\n <\/div>\n <\/center>\n <\/div>\n <div id=\"yom-ad-FILM-lb\" class=\"yom-ad-FILM lb-film\">\n <center>\n <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;\">\n <\/div>\n <\/center>\n <\/div>\n {{#sidekickTopId}}\n <div id=\"{{..\/sidekickTopId}}\" class=\"lb-module\">\n <center>\n <\/center>\n <\/div>\n {{\/sidekickTopId}}\n {{#embedSlotTwo}}\n <div id=\"{{..\/embedSlotTwo}}\" class=\"{{..\/embedSlotTwo}} hidden\">\n <center>\n <\/center>\n <\/div>\n {{\/embedSlotTwo}}\n {{#sidekickMidId}}\n <div id=\"{{..\/sidekickMidId}}\" class=\"lb-module\">\n <center>\n <\/center>\n <\/div>\n {{\/sidekickMidId}}\n {{#embedSlotThree}}\n <div id=\"{{..\/embedSlotThree}}\" class=\"{{..\/embedSlotThree}} hidden\">\n <center>\n <\/center>\n <\/div>\n {{\/embedSlotThree}}\n {{#sidekickBotId}}\n <div id=\"{{..\/sidekickBotId}}\" class=\"lb-module\">\n <center>\n <\/center>\n <\/div>\n {{\/sidekickBotId}}\n <div id=\"yom-ad-LREC2-lb\" class=\"yom-ad-LREC2 lb-lrec\">\n <center>\n <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;\">\n <\/div>\n <\/center>\n <\/div>\n <\/div>\n <div id=\"lb-cp\" class=\"lb-cp\">\n <div class=\"lb-meta-title\">\n <span>{{{slideshowTitle}}}<\/span>\n <\/div>\n <div id=\"lb-viewport\" class=\"lb-viewport\">\n <ul id=\"lb-viewport-list\" class=\"lb-viewport-list\">\n <\/ul>\n <span class=\"lb-nav-left-panel\">\n <span id=\"lb-btn-prev\" class=\"lb-btn Bdtrrs Bdbrrs\">\n <i class=\"Icon Fz-35 Lh-reset lb-prev\"><\/i>\n <\/span>\n <\/span>\n <span class=\"lb-nav-right-panel\">\n <span id=\"lb-btn-next\" class=\"lb-btn Bdtlrs Bdblrs\">\n <i class=\"Icon Fz-35 Lh-reset lb-next\"><\/i>\n <\/span>\n <\/span>\n <\/div>\n <div id=\"lb-meta\" class=\"lb-meta clearfix\">\n <\/div>\n {{#embedSlotSouth}}\n <div id=\"{{..\/embedSlotSouth}}\" class=\"{{..\/embedSlotSouth}} hidden\">\n <center>\n <\/center>\n <\/div>\n {{\/embedSlotSouth}}\n {{#enableLDRBads}}\n <div id=\"yom-ad-LDRB-lb\" class=\"yom-ad-LDRB lb-ldrb\">\n <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;\">\n <\/div>\n <\/div>\n {{\/enableLDRBads}}\n {{^disableComments}}\n <div class=\"lb-comments\">\n <div id=\"{{commentsModuleId}}\" class=\"yom-comments yom-mod\">\n <\/div>\n <\/div>\n {{\/disableComments}}\n <\/div>\n <\/div>\n <div id=\"lb-preload\" class=\"lb-preload\">\n <\/div>\n<\/div>\n","metaStructure":"<div class=\"lb-meta-rp clearfix {{#ad}}sidekick{{\/ad}}\">\n <div class=\"lb-meta-controls\">\n <span class=\"lb-meta-count\">{{current}}\/{{total}}<\/span>\n <\/div>\n<\/div>\n{{#tumblrAttribution}}\n<span class=\"tumblr-attribution-wrapper\">\n <span class=\"tumblr-info lightbg\">\n {{#provider}}\n <span class=\"tumblr-provider\">\n {{#logo}}\n <a href=\"{{..\/..\/postUrl}}\" target=\"_blank\">\n <img src=\"{{url}}\" class=\"avatar not-figure\"\/>\n <\/a>\n {{\/logo}}\n <a href=\"{{..\/postUrl}}\" target=\"_blank\" class=\"name\">{{name}}<\/a><!-- remove the space and put 4px via CSS\n --><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}}\">\n <span class=\"tip\" style=\"left: -50px\">\n <span class=\"text\">Follow on Tumblr<\/span>\n <span class=\"arrow\"><\/span>\n <\/span>\n <\/a><br\/>\n <span class=\"tumblr-logo\"><\/span>\n <\/span>\n {{\/provider}}\n <span class=\"tumblr-attribution\">\n {{#noteCount}}\n <a href=\"{{postUrl}}\" target=\"_blank\" class=\"tumblr-notes\">{{.}} notes<\/a>\n {{\/noteCount}}\n <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}}\">\n <span class=\"tip\">\n <span class=\"text\">Reblog on Tumblr<\/span>\n <span class=\"arrow\"><\/span>\n <\/span>\n <\/a>\n {{#enableTumblrLike}}\n <span class=\"tumblr-like\">\n <iframe src=\"https:\/\/assets.tumblr.com\/assets\/html\/tumblr_like_iframe.html#name={{provider.name}}&post_id={{id}}\" scrolling=\"no\" width=\"20\" height=\"20\" frameborder=\"0\" class=\"like_toggle\" allowTransparency=\"true\">\n <\/iframe>\n <\/span>\n {{\/enableTumblrLike}}\n <\/span>\n <\/span>\n<\/span>\n{{\/tumblrAttribution}}\n{{^tumblrAttribution}}\n <span class=\"lb-meta-credit\">\n {{#attribution}}\n {{attributionDivider}}{{#if attributionUrl}}<a href=\"{{attributionUrl}}\" target=\"_blank\">{{\/if}}{{#if attributionSrc}}<img src=\"{{attributionSrc}}\" class style=\"max-height:1em\">{{\/if}}{{{attributionText}}}{{#if attributionUrl}}<\/a>{{\/if}}\n {{\/attribution}}\n <\/span>\n{{\/tumblrAttribution}}\n<div class=\"lb-meta-cp {{#ad}}sidekick{{\/ad}}\" data-ad-feedback-beacon=\"{{feedbackUrl}}\">\n <div id=\"lb-meta-content\" class=\"lb-meta-content\">\n {{#ibItem}}\n <div class=\"lb-ib-notice\">{{relatedString}}<\/div>\n {{\/ibItem}}\n {{#isSponsored}}\n <a href=\"{{sponsor_url}}\">\n <div class=\"lb-meta-nfl-spons-logo\"><\/div>\n <\/a>\n {{\/isSponsored}}\n {{#ad}}\n <div>\n <p class=\"lb-meta-title\">\n <a rel=\"nofollow\" href=\"{{adUrl}}\" target=\"_blank\">{{{adTitle}}}<\/a>\n <\/p>\n <\/div>\n {{\/ad}}\n <div class=\"lb-meta-caption-container\">\n <div class=\"lb-meta-caption\">\n <div>\n <p>\n {{{description}}}\n <\/p>\n <\/div>\n <\/div>\n <\/div>\n {{#ad}}\n <div>\n <p class=\"lb-ad-source\">\n <a rel=\"nofollow\" href=\"{{adUrl}}\" class=\"ad-source\" target=\"_blank\">{{{adSource}}}<\/a>\n <a rel=\"nofollow\" class=\"ad-sponsored\" href=\"https:\/\/help.yahoo.com\/kb\/SLN22774.html?impressions=true\" target=\"_blank\">Sponsored<\/a>\n <a rel=\"nofollow\" class=\"ad-icon\" target=\"_blank\" href=\"http:\/\/info.yahoo.com\/privacy\/us\/yahoo\/relevantads.html\">\n <i class=\"Icon\"><\/i>\n <\/a>\n <\/p>\n <\/div>\n {{\/ad}}\n {{^ad}}\n <div class=\"lb-meta-desc-container\">\n <div class=\"lb-meta-desc\">\n <div>\n <p>\n {{{slideshowDesc}}}\n <\/p>\n <\/div>\n <\/div>\n <\/div>\n {{\/ad}}\n <\/div>\n<\/div>\n\n","rmxStructure":"\n<li id=\"{{id}}\" class=\"lb-img-container\">\n <a href=\"{{url}}\" target=\"_blank\">\n <img class=\"lb-img\" src=\"{{imgSrc}}\" style=\"max-height: {{viewportHeight}}px;\">\n <\/a>\n<\/li>\n","rmxCtaStructure":"\n<div id=\"rmx-ad-cta-box\">\n <a href=\"{{clickurl}}\" target=\"_blank\">\n <div id=\"rmx-ad-cta\">\n <p>Learn more at<br><span class=\"source\">{{source}}<\/span><\/p>\n <img src=\"{{brandimage}}\" width=\"{{brandimagewidth}}px\" height=\"{{brandimageheight}}px\" alt=\"{{source}}\">\n <\/div>\n <\/a>\n<\/div>\n","photoStructure":"<li id=\"{{id}}\" class=\"lb-img-container\" style=\"left: {{leftPosition}} ;\">\n {{#isTumblrVideo}}\n <div class=\"tumblr-video\" style=\"text-align: center;\">{{{player.body}}}<\/div>\n {{\/isTumblrVideo}}\n {{^isTumblrVideo}}\n {{#isEmbed}}\n <embed src=\"{{..\/embed.embed_src}}\" width=\"{{..\/embed.width}}\" height=\"{{..\/embed.height}}\">\n {{\/isEmbed}}\n {{^isEmbed}}\n <img class=\"lb-img {{#isVideo}}lb-video-thumbnail{{\/isVideo}}\" src=\"{{imgSrc}}\" alt=\"{{imgTitle}}\" style=\"max-height: {{viewportHeight}}px; {{#isVideo}}max-width: 100%;{{\/isVideo}}\"><\/img>\n {{#isVideo}}\n <div id=\"lb-video-container\" class=\"lb-video-container hidden\"><\/div>\n <span class=\"lb-video-cta icon-white-play\"><\/span>\n {{\/isVideo}}\n {{\/isEmbed}}\n {{\/isTumblrVideo}}\n <div class=\"lb-img-holder\"><\/div>\n<\/li>\n"},"coverPhotoURL":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/zrGrAtnBG2_.qcdOhS3CcQ--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjY2LjY2NjY2NjY2NjY3O2lsPXBsYW5lO3B4b2ZmPTUwO3B5b2ZmPTA7cT03NTt3PTQwMA--\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"};}); 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: '1183300101', location: 'body', mobileLoginUrl: 'https://web.archive.org/web/20160217234258/http://www.yahoo.com', desktopLoginUrl: 'https://web.archive.org/web/20160217234258/http://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': "Apple resisting magistrate order to share iPhone information - Yahoo Finance" }, 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":"finance","region":"US","jurisdiction":"US","YVAP":{"accountId":"193","playContext":null},"pageSpaceId":"1183300101","comscoreC4":"US Finance","comscoreC6":"","showEmbedCode":true,"showShareUrl":true,"expBucket":"","expName":"grandslam","expType":"lead_vp","apiEnv":"prod","CMS":{"env":"prod","suppressAdContext":true},"playlist":[{"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","title":"Apple to fight court order on San Bernadino case","embedCode":"<iframe width=\"624\" height=\"351\" scrolling=\"no\" frameborder=\"0\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\" allowtransparency=\"true\" src=\"http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html?format=embed&player_autoplay=false\"><\/iframe>","shareUrl":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html","licenseId":"a0ad0000009aEX5AAM","duration":"165","images":{"large":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/d9Rpt72AdwqLh50DuIln9g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NDg3O2lsPXBsYW5lO3E9NzU7dz02NTA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","medium":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/VOQchPnZ.1L6DPOdOv4gNg--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"},"description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","embeddable":true}]},"id":"4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578","title":"Apple to fight court order on San Bernadino case","embedCode":"<iframe width=\"624\" height=\"351\" scrolling=\"no\" frameborder=\"0\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\" allowtransparency=\"true\" src=\"http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html?format=embed&player_autoplay=false\"><\/iframe>","shareUrl":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/video\/apple-fight-court-order-san-144843124.html","licenseId":"a0ad0000009aEX5AAM","duration":"165","images":{"large":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/d9Rpt72AdwqLh50DuIln9g--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NDg3O2lsPXBsYW5lO3E9NzU7dz02NTA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","medium":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l1.yimg.com\/bt\/api\/res\/1.2\/VOQchPnZ.1L6DPOdOv4gNg--\/YXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9MjIwO3E9NzU7dz0yMzA-\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg"},"description":"Apple to fight court order to help hack San Bernadino terrorist iPhone","embedable":true,"inline_js_url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/os\/mit\/media\/m\/videos\/yepcainlineplayer-min-06ae69e.js","js_url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/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 && 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() {var defaultConfig = { config: { modId: 'mediacontentcomments', enableCacheControl: 1, enableInfiniteScroll: 0 || 0, enableMuteCommenter: 1, enableViewOthers: 1, enableCommentLightbox: 0, enableCollapsedComment: 1 || 0, spaceid: '1183300101', location: 'body', mobileLoginUrl: 'https://web.archive.org/web/20160217234258/http://mlogin.yahoo.com/w/login?.src=yahoo_finance&.intl=us&.lang=en-US', desktopLoginUrl: 'https://web.archive.org/web/20160217234258/https://login.yahoo.com/config/login?.src=yahoo_finance&.intl=us&.lang=en-US', 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': "Apple resisting magistrate order to share iPhone information - Yahoo Finance" }, infinite: { 'yOffset': '900', 'timerDelay': 300 } }, chrome: Y.Media.pageChrome }; Y.Media.pageContentCommentsDefaultConfig = defaultConfig; if (!Y.Media.lbData) { }}); Y.later(10, this, function() {var queryString = window.location.search.substring(1), bcmt = /bcmt=([^&]*)/g, validate = /(?:[0-9a-f]{13}-[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})_?(?:[0-9a-z]{30}-[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})?/gi, bcmtParam, valid, toValidate, deeplink = '', defaultConfig = Y.Media.pageContentCommentsDefaultConfig; while (bcmtParam = bcmt.exec(queryString)) { toValidate = decodeURIComponent(bcmtParam[1]); if ('comments-postbox' === toValidate) { deeplink = toValidate; } else { while (valid = validate.exec(toValidate)) { deeplink = valid[0]; } } } defaultConfig.config.deeplinkId = deeplink; if (window.MediaPerfTiming) { window.MediaPerfTiming.startTimer('Comments', 'm1'); } Y.Media.pageContentComments = new Y.Media.ContentComments(defaultConfig); if (window.MediaPerfTiming) { window.MediaPerfTiming.endTimer('Comments', 'm1'); } if (!(defaultConfig.config.enableCollapsedComment === 1) || defaultConfig.config.deeplinkId !== "") { Y.later(100, this, function() { if (defaultConfig.config.enableCommentLightbox === 1) { Y.one('.collapsed-button.go-to-slideshow-lightbox').simulate('click'); } else { var node = Y.one('#comments-show') || null; if (window.MediaPerfTiming) { window.MediaPerfTiming.startTimer('Comments', 'm2'); } Y.Media.pageContentComments.displayModule(node); } }); }}); 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%2Ffinance.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dmail"},"pageData":{"crumb":"","title":"Apple resisting magistrate order to share iPhone information","summary":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate's order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","thumbnail":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/news\/judge-apple-must-help-us-005604451.html","type":"article","locale":"US","prop":"finance","content_id":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","ult__S":"1183300101","ult_ct":"a","ult_pkg":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","ult_test":"","ult_csrcpvid":"k4kIwTk4LjE7Znm0QKnsggA2MjA3LlbFBYL_2wQo","ult_sec":"mod-sh-mail","ult_slk":"mail","ult_mpos":1,"ult_lang":"en-US","ult_act":"mail","ult_pstaid":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb"},"contentMetaData":{"id":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","url_orig":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/news\/judge-apple-must-help-us-005604451.html","title_orig":"Apple resisting magistrate order to share iPhone information","summary":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate's order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","type":"story"},"config":{"site":"finance","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 && 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-preview","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://web.archive.org/web/20160217234258/http://l.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:\/\/web.archive.org\/web\/20160217234258\/http:\/\/www.facebook.com\/yahoofinance","fb:app_id":"90376669494","fb:page_id":"","og:description":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate s order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","og:image":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","og:site_name":"Yahoo Finance","og:title":"Apple resisting magistrate order to share iPhone information","og:type":"article","og:url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/news\/judge-apple-must-help-us-005604451.html","twitter:card":"summary_large_image","twitter:description":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate s order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","twitter:dnt":"on","twitter:image":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","twitter:image:src":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","twitter:site":"@YahooFinance","twitter:title":"Apple resisting magistrate order to share iPhone information","follow_url":"www.facebook.com","follow_site":"facebook","follow_id":"yahoofinance","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":"","is_tumblr":""},"item_twitter":{"article:publisher":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/www.facebook.com\/yahoofinance","fb:app_id":"90376669494","fb:page_id":"","og:description":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate s order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","og:image":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","og:site_name":"Yahoo Finance","og:title":"Apple resisting magistrate order to share iPhone information","og:type":"article","og:url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/news\/judge-apple-must-help-us-005604451.html","twitter:card":"summary_large_image","twitter:description":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate s order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","twitter:dnt":"on","twitter:image":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","twitter:image:src":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","twitter:site":"@YahooFinance","twitter:title":"Apple resisting magistrate order to share iPhone information","follow_url":"twitter.com","follow_site":"twitter","follow_id":"YahooFinance","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":"","is_tumblr":""},"item_tumblr":{"article:publisher":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/www.facebook.com\/yahoofinance","fb:app_id":"90376669494","fb:page_id":"","og:description":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate s order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","og:image":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","og:site_name":"Yahoo Finance","og:title":"Apple resisting magistrate order to share iPhone information","og:type":"article","og:url":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/news\/judge-apple-must-help-us-005604451.html","twitter:card":"summary_large_image","twitter:description":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate s order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ...","twitter:dnt":"on","twitter:image":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","twitter:image:src":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l3.yimg.com\/bt\/api\/res\/1.2\/TPEct8bPpbOVD.JaNVc_aw--\/YXBwaWQ9eW5ld3NfbGVnbztpbD1wbGFuZTtxPTc1O3c9NjAw\/http:\/\/media.zenfs.com\/en-US\/video\/video.pd2upload.com\/video.yahoofinance.com@4a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg","twitter:site":"@YahooFinance","twitter:title":"Apple resisting magistrate order to share iPhone information","follow_url":"tumblr.com","follow_site":"tumblr","follow_id":"yahoofinance","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:yahoofinance.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:yahoofinance.tumblr.com;test:;act:click;rspns:nav;slk:btn-sh-tu;elmt:sh-tu;","outcome":"sh","rel":"publisher","gicon":"","is_tumblr":"1"},"mod_id":"mediacontentfollowproperty_2","mixer":{"site":"finance","region":"US","lang":"en-US","scrumb":"","content_id":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","title_orig":"Apple resisting magistrate order to share iPhone information - Yahoo Finance","url_orig":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/finance.yahoo.com\/news\/judge-apple-must-help-us-005604451.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_2', 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":"Apple resisting magistrate order to share iPhone information","attribution":"Associated Press","uuid":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","description":"Apple Inc. CEO Tim Cook says his company will fight a federal magistrate's order to hack its users in connection with the investigation of the San Bernardino shootings, asserting that would undermine encryption ..."}, modId : 'mediacontentstory' }, chrome: Y.Media.pageChrome }); }); Y.later(10, this, function() {Y.Media.RMP.load({"srcNode":"#mediafinancerelatedquotes_gs_container","timeout":5000,"params":{"content_id":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb","remote_module":"MediaRemoteInstance","remote_module_id":"MediaFinanceRelatedQuotes_GS","remote_config_id":"MediaFinanceRelatedQuotesGSConfig","instance_id":"1f8cb837-709a-325d-a4a7-466c5dcc1861","y_proc_embeds":"1","_device":"full","remote_uuid":"1f8cb837-709a-325d-a4a7-466c5dcc1861","remote_title":"Related Quotes GS","mod_id":"mediafinancerelatedquotes_gs","remote_is_slot":"1","nolz":"1","y_map_urn":"urn:rmp:lite","m_mode":"multipart","r_load":"1","_product_version":"v2sg","_sig":"WYbAdadrcQRDaplV5kH61MDcbuE-"}}); }); 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.<br />Tell us more about what you like:", topicShowLess: "Got it, We'll show you fewer stories like this.<br />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://web.archive.org/web/20160217234258/https://login.yahoo.com/config/login?.src=yahoo_finance&.intl=US&.lang=en-US&.done=', 'enableTopicBar' : 1, 'actionbarDrawerPtn' : 'https://web.archive.org/web/20160217234258/http://l.yimg.com/os/mit/media/m/content/images/actionbar_drawer_ptn-b49899b.png', 'contentType': 'story', 'sig' : '13f7500d2640b81e3c43e570d7b134c96f815e23' }); }); 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:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/os\/mit\/media\/m\/content_index\/images\/purple_loader-d46f515.png"}); }); Y.later(10, this, function() {new Y.Media.ContentVideoPreview({"no_preview_text":"No Preview Available","video_preview_audio":"off","mod_id":"mediacontentgenericlistings_2","video_preview_loading_icon":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.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":"mediacontentfptodaylistings","video_preview_loading_icon":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.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_3","video_preview_loading_icon":"https:\/\/web.archive.org\/web\/20160217234258\/http:\/\/l.yimg.com\/os\/mit\/media\/m\/content_index\/images\/purple_loader-d46f515.png"}); }); Y.later(10, this, function() {if(Y.Media.Footer) var footer = Y.Media.Footer(Y,{footerInfoSelector:"#mediafooterinfo",currentDeviceType:"full",projectId:"1000911397279",enableYwaTracking:"0"}); }); 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":"<div class=\"share-btns-int-container\">\n <div class=\"share-btns\" role=\"menu\">\n <ul><li class=\"share-btn tumblr\"><a href=\"https:\/\/www.tumblr.com\/share\/photo?clickthru=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3D%26soc_trk%3Dtu&caption=Apple%20Inc.%20CEO%20Tim%20Cook%20says%20his%20company%20will%20fight%20a%20federal%20magistrate%27s%20order%20to%20hack%20its%20users%20in%20connection%20with%20the%20investigation%20of%20the%20San%20Bernardino%20shootings%2C%20asserting%20that%20would%20undermine%20encryption%20...&source=http%3A%2F%2Fl1.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FRm8QI3jbXFHeYdUOY_X8Ng--%2FYXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NjAwO2lsPXBsYW5lO3E9NzU7dz02MDA-%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.pd2upload.com%2Fvideo.yahoofinance.com%404a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg.cf.png\" role=\"link\" title=\"Share on Tumblr\" data-share-key=\"tumblr\" target=\"_blank\"><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&redirect_uri=http%3A%2F%2Ffinance.yahoo.com%2F_xhr%2Fmediacontentsharebuttons%2Fpostshare%2F%3Fsrc%3Dfb&link=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3D%26soc_trk%3Dfb&picture=http%3A%2F%2Fl1.yimg.com%2Fbt%2Fapi%2Fres%2F1.2%2FRm8QI3jbXFHeYdUOY_X8Ng--%2FYXBwaWQ9eW5ld3NfbGVnbztmaT1maWxsO2g9NjAwO2lsPXBsYW5lO3E9NzU7dz02MDA-%2Fhttp%3A%2F%2Fmedia.zenfs.com%2Fen-US%2Fvideo%2Fvideo.pd2upload.com%2Fvideo.yahoofinance.com%404a8a0b14-2b6a-3cbd-a8f2-7c0d3b90b578_FULL.jpg.cf.png&name=Apple+resisting+magistrate+order+to+share+iPhone+information&description=Apple+Inc.+CEO+Tim+Cook+says+his+company+will+fight+a+federal+magistrate%27s+order+to+hack+its+users+in+connection+with+the+investigation+of+the+San+Bernardino+shootings%2C+asserting+that+would+undermine+encryption+...&display=popup&show_error=yes\" role=\"link\" title=\"Share on Facebook\" data-share-key=\"facebook\" target=\"_blank\"><span class=\"Icon btn-icon btn-facebook small\"><\/span><\/a><\/li><li class=\"share-btn twitter\"><a href=\"https:\/\/twitter.com\/share?text=Apple+resisting+magistrate+order+to+share+iPhone+information&url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3D%26soc_trk%3Dtw&via=YahooFinance\" role=\"link\" title=\"Share on Twitter\" data-share-key=\"twitter\" target=\"_blank\"><span class=\"Icon btn-icon btn-twitter small\"><\/span><\/a><\/li><li class=\"share-btn gplus\"><a href=\"https:\/\/plus.google.com\/share?url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3D%26soc_trk%3Dgp&hl=en-US\" role=\"link\" title=\"Share on Google+\" data-share-key=\"gplus\" target=\"_blank\"><span class=\"Icon btn-icon btn-gplus small\"><\/span><\/a><\/li><li class=\"share-btn more\"><a href=\"#\" role=\"menu\" title=\"\" data-share-key=\"more\" ><span class=\"Icon btn-icon btn-more\">⋯<\/span><\/a><\/li><\/ul>\n <div class=\"moreBox hidden\">\n <div class=\"moreBoxPointer\"><\/div>\n <div class=\"moreBoxPointerSmall\"><\/div>\n <div class=\"moreBoxInner\">\n <ul><li class=\"share-btn linkedin\"><a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3D%26soc_trk%3Dli&title=Apple+resisting+magistrate+order+to+share+iPhone+information&summary=Apple+Inc.+CEO+Tim+Cook+says+his+company+will+fight+a+federal+magistrate%27s+order+to+hack+its+users+in+connection+with+the+investigation+of+the+San+Bernardino+shootings%2C+asserting+that+would+undermine+encryption+...&source=YahooFinance\" role=\"link\" title=\"Share on Linkedin\" data-share-key=\"linkedin\" target=\"_blank\"><span class=\"Icon btn-icon btn-linkedin small\"><\/span><\/a><\/li><li class=\"share-btn mail\"><a href=\"http:\/\/finance.yahoo.com\/_xhr\/mtf_popup\/?url=http%3A%2F%2Ffinance.yahoo.com%2Fnews%2Fjudge-apple-must-help-us-005604451.html%3Fsoc_src%3D%26soc_trk%3Dma&site=finance&region=US&lang=en-US&content_id=8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb&alias_id=story%3Djudge-apple-must-help-us-005604451\" class=\"rapid-noclick-resp\" role=\"link\" title=\"Email to friends\" data-share-key=\"mail\" target=\"_blank\"><span class=\"Icon btn-icon btn-mail small\"><\/span><\/a><\/li><\/ul>\n <\/div>\n <\/div>\n <\/div>\n<\/div>\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":"1183300101", "uuid":"8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb", "pt":"4" } ); }); Y.later(10, this, function() {(function(Y) { var videoEmbedPlayer = new Y.Media.VideoEmbedHandler(Y,Y.Media.pageChrome, { modId :'mediacontentstory', contentId :'8ea0184f-36f9-3dbe-a9c2-f047fd13f3bb', site :'finance', lang :'en-US', region :'US', spaceid :'1183300101', autoPlay :'0', ybang :false }); })(Y); }); }); }); </script> <script> (function(r) { if(! r) { return; } if(typeof YMEDIA_REQ_ATTR === 'object' && 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 && YAHOO.i13n && YAHOO.i13n.Rapid) { // media-rapid-tracking not ready, init Rapid adhoc r.rapidConfig.tracked_mods = typeof r.rapidConfig.tracked_mods === 'object' && 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> </body> </html> <!-- fe878.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:58 UTC 2016 --> <!-- ncache64.global.media.gq1.yahoo.com uncompressed/chunked Wed Feb 17 23:42:58 UTC 2016 --> <!-- FILE ARCHIVED ON 23:42:58 Feb 17, 2016 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 01:42:55 Dec 04, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.559 exclusion.robots: 0.03 exclusion.robots.policy: 0.018 esindex: 0.01 cdx.remote: 12.381 LoadShardBlock: 343.83 (3) PetaboxLoader3.datanode: 639.914 (4) PetaboxLoader3.resolve: 153.131 (2) load_resource: 500.159 -->