HOME
LIFE
(Video) How Paul Walker Returns In Fast X Explained By Director
Mail Sign in to view your mail
(Video) Tyrese Gibson & Vin Diesel remember Paul Walker | Time Forgets (RIP)
Money My Money Coronavirus Articles & Tutorials News Career Planning Consumers Travel Investing Retirement {promoMarkup}{notifMarkup} {notificationCenterNavMsg}
',panelEmptyTemplate='
{emptyPanelMsg}
',panelErrorTemplate='
{errorMsg}
',panelParentTemplate='
',notifOnboardPromoTemplate='
(Video) Who arrived at the End of Fast 9?! EXPLAINED!
{notifOnboardMsg}
',EXPANDED_PANEL="expanded_panel",ERROR_PANEL="error_panel",NotificationView=function(){function e(n,t){classCallCheck(this,e);var i=this;i._config=n,i._panelNode=null,i._store=t}return createClass(e,[{key:"_generatePanelMarkup",value:function(e,n){var t=this._config,i=void 0,o=void 0;"undefined"!=typeof window&&(i=window.Notification&&"default"===window.Notification.permission,o=t.promos.bypassEligibleClassCheck||hasClass(document.body,t.promos.eligibleBodyClass));var s=t.promos.enableNotifOnboard&&i&&o?notifOnboardPromoTemplate:"";if(s){var r=t.promos.showYahooLogo?"":"yns-no-logo";s=s.replace("{notifOnboardBtnLabel}",t.promos.notifOnboardBtnLabel).replace("{notifOnboardMsg}",t.promos.notifOnboardMsg).replace("{subscriptionTopic}",t.promos.subscriptionTopic).replace("{noLogoClass}",r).replace("{promoLogo}",t.promos.promoLogo)}var a=n.newCount>t.panel.maxCount?n.newCount:"",c=t.panel.notificationCenterPath,l=c?"":constants.panelHideElement,d=t.panel.headerMsg?"":" "+constants.panelHideElement,u=c?constants.panelPaddingBtm:"",p=void 0;n.count?p=n.markup:p=panelEmptyTemplate.replace("{emptyPanelMsg}",t.panel.emptyPanelMsg);return e=e.replace("{notifMarkup}",p).replace("{promoMarkup}",s).replace("{hideClass}",l).replace("{notifCenterLink}",c).replace("{paddingClass}",u).replace("{headerMsg}",t.panel.headerMsg).replace("{hideHeaderClass}",d).replace(/{notificationCenterNavMsg}/g,t.panel.notificationCenterNavMsg).replace(/{newCount}/g,a)}},{key:"render",value:function(e,n){var t=this;if(t._panelNode){var i=void 0,o=t._panelNode,s=void 0,r=void 0;switch(e){case EXPANDED_PANEL:i=panelTemplate,r=t._store.getNotifications(),s=t._generatePanelMarkup(i,r),o.innerHTML=s;break;case ERROR_PANEL:s=(i=panelErrorTemplate).replace("{errorMsg}",t._config.panel.errorMsg),o.innerHTML=s}n&&n()}else n&&n(new Error("No panel parent"))}},{key:"createPanelParentNode",value:function(e){e&&(e.innerHTML=panelParentTemplate,this._panelNode=document.getElementById(constants.panelNodeId))}},{key:"updateBadgeNode",value:function(e){if(e){var n=this._store.getNotifications().newCount,t=this._config.badge.maxCount;if(n){var i=n>t?t+"+":n;e.innerHTML=i}else e.innerHTML=""}}},{key:"addStyles",value:function(e){if(e&&"undefined"!=typeof window){var n=document.getElementById(this._config.panel.styleTagId);n||((n=document.createElement("style")).type="text/css",n.id=this._config.panel.styleTagId,n.innerText=e,document.head.appendChild(n))}}}]),e}(),EXPANDED_PANEL$1="expanded_panel",ERROR_PANEL$1="error_panel",PanelController=function(){function e(n,t,i){classCallCheck(this,e);var o=this;o._store=t,o._view=i,o._config=n;var s=o._config.panel;o._panelParentNode=document.querySelector(s.parentSelector),o._badgeNode=o._config.badge.selector&&document.querySelector(o._config.badge.selector),o._indicatorNode=s.indicatorSelector&&document.querySelector(s.indicatorSelector)}return createClass(e,[{key:"createPanelParentNode",value:function(){this._view.createPanelParentNode(this._panelParentNode),this._notifPanelNode=document.getElementById(constants.panelNodeId)}},{key:"refreshPanelNode",value:function(e,n){var t=this;addClass(t._notifPanelNode,constants.panelLoading),t._store.fetchNotifications(e,(function(e,i){var o=window.wafer&&window.wafer.base;o&&o.destroy(t._notifPanelNode),e?t._notifPanelNode.innerHTML||(t._view.render(ERROR_PANEL$1),addClass(t._notifPanelNode,constants.panelLoading)):(t._view.render(EXPANDED_PANEL$1),t._view.updateBadgeNode(t._badgeNode),t._showBadge(),t._showIndicator(),t._view.addStyles(i.css)),removeClass(t._notifPanelNode,constants.panelLoading),o&&o.sync(t._notifPanelNode.parentNode),n&&n(e,i)}))}},{key:"resetBadge",value:function(){var e=this;e._store.resetNewCount(),e._view.updateBadgeNode(e._badgeNode),addClass(e._badgeNode,e._config.badge.hideClass)}},{key:"_showIndicator",value:function(){this._indicatorNode&&(this._store.getNotifications().newCount?addClass(this._indicatorNode,this._config.panel.indicatorClass):removeClass(this._indicatorNode,this._config.panel.indicatorClass))}},{key:"_showBadge",value:function(){var e=this;e._store.getNotifications().newCount?removeClass(e._badgeNode,e._config.badge.hideClass):addClass(e._badgeNode,e._config.badge.hideClass)}}]),e}(),config={promos:{eligibleBodyClass:"display-push-promos",enableNotifOnboard:!0,bypassEligibleClassCheck:!1,notifOnboardBtnLabel:"Notify Me",notifOnboardMsg:"Get alerts for breaking news and top stories",promoLogo:"https://s.yimg.com/cv/apiv2/ae/news/circle_bell.png",showYahooLogo:!0,subscriptionTopic:"gondor_homerun_news"},badge:{hideClass:"",maxCount:5,selector:""},panel:{emptyPanelMsg:"You have no new notifications.",errorMsg:"",headerMsg:"Notifications",imageTag:"img:40x40|2|80",indicatorClass:"yns-indicator",indicatorSelector:null,maxCount:6,notificationCenterNavMsg:"View all {newCount} notifications",notificationCenterPath:"",notificationTypes:"",parentSelector:null,styleTagId:"notificationStyles",theme:"default"},service:{attemptCount:1,attemptDelay:2,url:null,resetUrl:null,isRMP:!1,responseType:"json",timeout:1500}},Main=function(){function e(n){classCallCheck(this,e);var t=this;t.config=t._parseConfig(n),t._validateRequiredConfigs()&&(t._request=new NotificationRequest(t.config),t._store=new NotificationStore(t.config,t._request),t._view=new NotificationView(t.config,t._store),t._panelController=new PanelController(t.config,t._store,t._view),t._panelController.createPanelParentNode(),t._assignHelperMethods())}return createClass(e,[{key:"_parseConfig",value:function(e){var n={};for(var t in objectAssign(n,config),n)if(n.hasOwnProperty(t)){var i=n[t],o=e[t];"object"===(void 0===i?"undefined":_typeof(i))?objectAssign(i,o):n[t]=e[t]}return n}},{key:"_validateRequiredConfigs",value:function(){var e=this.config;return!(!e.panel.parentSelector||!e.service.url)}},{key:"_assignHelperMethods",value:function(){var e=this;e.helpers={refreshPanelNode:e._panelController.refreshPanelNode.bind(e._panelController),resetBadge:e._panelController.resetBadge.bind(e._panelController),resetIndicator:function(){removeClass(e._panelController._indicatorNode,e.config.panel.indicatorClass)}}}}]),e}(),notificationClient_module_min=Main,notificationClient={NotificationClient:notificationClient_module_min},CONSUMPTION_STORAGE_KEY="lnct",NotifClient=function(){function e(){var e,n;this.personalized=!1,this.ybarElem=document.getElementById("ybar"),this.partnerClasses=null===(n=null===(e=this.ybarElem)||void 0===e?void 0:e.className)||void 0===n?void 0:n.match(/ybar-variant-([a-z]*)/),this.client=new notificationClient.NotificationClient(this.getConfig())}return e.prototype.refreshPanel=function(){var e,n,t,i=this,o={lastUpdate:this.getTimeStamp()||this.setTimeStamp(),loadInHpViewer:!0,includePersonalized:this.personalized},s=(null===(e=window.YAHOO)||void 0===e?void 0:e.context)||(null===(n=window.Af)||void 0===n?void 0:n.context)||{};return s.region&&s.lang&&(o.lang=s.lang,o.region=s.region),(null===(t=this.partnerClasses)||void 0===t?void 0:t.length)&&(o.partner=this.partnerClasses[1]),new Promise((function(e,n){i.client.helpers.refreshPanelNode({matrixParams:o},(function(t,i){t&&(logError("Notification refresh error:",t),n(t)),e(i)}))}))},e.prototype.resetBadge=function(){this.client.helpers.resetBadge(),this.setTimeStamp()},e.prototype.getConfig=function(){var e,n,t,i,o,s={promos:{eligibleBodyClass:"display-push-promos",enableNotifOnboard:!0},badge:{selector:"#notif-badge",hideClass:"ybar-notification-hidden"},panel:{emptyPanelMsg:"You have no new notifications.",errorMsg:"Please check back later.",headerMsg:"Notifications",maxCount:5,parentSelector:"#ybarNotificationBody",notificationTypes:"breakingNews"},service:{url:"/tdv2_fp/api/resource/NotificationHistory.getHistory",isRMP:!1}},r=document.getElementById("notification-container"),a=null===(e=null==r?void 0:r.dataset)||void 0===e?void 0:e.config,c={};if(a){"att"===(null===(n=this.partnerClasses)||void 0===n?void 0:n[1])&&(s.promos.showYahooLogo=!1);try{var l=JSON.parse(a);c=__assign({},l),this.personalized=1===l.personalize}catch(e){logError("Notifications config parsing error",e)}r&&delete r.dataset.config}var d=this.mergeConfigs(s,c);return(null===(t=this.partnerClasses)||void 0===t?void 0:t.length)&&"yahoo"!==(null===(i=this.partnerClasses)||void 0===i?void 0:i[1])&&(null===(o=d.promos)||void 0===o?void 0:o.subscriptionTopic)&&delete d.promos.subscriptionTopic,d},e.prototype.mergeConfigs=function(e,n){var t=__assign({},e);for(var i in e)t[i]=__assign(__assign({},e[i]),n[i]);return t},e.prototype.getTimeStamp=function(){var e;return null===(e=window.localStorage)||void 0===e?void 0:e.getItem(CONSUMPTION_STORAGE_KEY)},e.prototype.setTimeStamp=function(){var e,n=""+Math.floor((new Date).getTime()/1e3);return null===(e=window.localStorage)||void 0===e||e.setItem(CONSUMPTION_STORAGE_KEY,n),n},e}(),notifClient=new NotifClient,getNotifClient=function(){return notifClient},reInit=function(){notifClient=new NotifClient},ybarRapid,ybarRapidInterval,ybarRapidErrMsg="",beaconQueue=[],noop=function(){},logRapidError=function(){window.removeEventListener("beforeunload",logRapidError),""!==ybarRapidErrMsg&&logError("Rapid not found on page",new Error(ybarRapidErrMsg))},findRapidWithSpaceid=function(e){var n=void 0;if(e&&e.length>0)for(var t=0;t
0){if(ybarRapid.addModules(o,!1,i),beaconQueue.length>0)for(e=0;e90&&fireImageBeacon("performance",e)}catch(e){}}),1e3)}))},measureInit=measure("ybar-init");initYbar(),measureInit.stop(),initPerformanceMetricsBeaconListener(),initRapid(),initErrorBeaconListener();var selected$1="_yb_5wdvk",Css$9={"right-item":"_yb_arikq",selected:selected$1,"ybar-mod-topnavigation":"_yb_1fa8o","ybar-mod-topnavigation-teaser-imp":"_yb_9c6o3"},DOCUMENT_NODE_TYPE=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var proto=Element.prototype;proto.matches=proto.matchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector}function closest(e,n){for(;e&&e.nodeType!==DOCUMENT_NODE_TYPE;){if("function"==typeof e.matches&&e.matches(n))return e;e=e.parentNode}}var closest_1=closest;function _delegate(e,n,t,i,o){var s=listener.apply(this,arguments);return e.addEventListener(t,s,o),{destroy:function(){e.removeEventListener(t,s,o)}}}function delegate(e,n,t,i,o){return"function"==typeof e.addEventListener?_delegate.apply(null,arguments):"function"==typeof t?_delegate.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return _delegate(e,n,t,i,o)})))}function listener(e,n,t,i){return function(t){t.delegateTarget=closest_1(t.target,n),t.delegateTarget&&i.call(e,t)}}var delegate_1=delegate,ListNode=function(e){this.data=e,this.next=null,this.prev=null},LinkedList=function(){function e(){this.head=null,this.tail=null}return e.prototype.push=function(e){var n=new ListNode(e);return this.head?this.tail?(n.prev=this.tail,this.tail.next=n,this.tail=n):(this.tail=n,this.tail.prev=this.head,this.head.next=this.tail):(this.head=n,n.next=this.tail),n},e.prototype.size=function(){for(var e=0,n=this.head;n;)e+=1,n=n.next;return e},e.prototype.getHead=function(){return this.head},e.prototype.getTail=function(){return this.tail},e.prototype.get=function(e){if(e>=this.size())return null;for(var n=0,t=this.head;(null==t?void 0:t.next)&&n0&&Array.prototype.forEach.call(e,(function(e){e.onerror=function(){e.onerror=null,e.style.display="none"}}))},fixLogoOutline=function(e,n){e&&(hideOutlineOnMouseDown("#ybar-logo","#ybar-logo",n),n.onDestroy((function(){e.classList.remove("ybar-show-outline"),e.classList.remove("ybar-hide-outline")})))},logoClick=function(e,n){n&&e.addElementListener(n,"click",(function(){e.triggerEvent("logo-click")}))},init$3=function(e,n){n.logoImages&&hideLogosOnError(n.logoImages),n.wrapper&&(fixLogoOutline(n.wrapper,e),logoClick(e,n.wrapper))};initModule("ybar-mod-logo",(function(e){var n={wrapper:document.getElementById("ybar-logo"),logoImages:document.querySelectorAll(".".concat(Css$6["logo-image"]))};init$3(e,n)}));var overlay="_yb_17sts",tooltip="_yb_ffl49",tooltip__text="_yb_likg3",tooltip__voice="_yb_16c5l",tooltip__web="_yb_mdd27",dark="_yb_vdmjo",darker="_yb_lpkxw",light="_yb_slh3a",midnight60="_yb_l42rx",Css$5={"dropdown-open":"_yb_11v81","merchant-is-selected":"_yb_5gf0o",overlay:overlay,"selected-merchant-clear-button":"_yb_1o0co","shops-buttons":"_yb_8h1av","styled-select":"_yb_adoo0",tooltip:tooltip,"tooltip--show":"_yb_1elaz",tooltip__text:tooltip__text,tooltip__voice:tooltip__voice,tooltip__web:tooltip__web,dark:dark,darker:darker,light:light,midnight60:midnight60},range=function(e,n){var t=Math.max(e,n),i=Math.min(e,n),o=Math.abs(t-i);return __spreadArray([],__read(new Array(o+1)),!1).map((function(e,n){return i+n}))},openSearchOverlay=function(e,n,t){var i=e.getConfig().bucketConfig,o=(void 0===i?{}:i).enable_search_ui,s=void 0!==o&&o;if(n.ybar){n.ybar.classList.add("ybar-searchbox-assist-fullscreen"),document.documentElement.classList.add("ybar-overlay"),document.body.classList.add("ybar-overlay-noscroll");beaconClick("ybar","websrch","",{elm:"expand",subsec:"searchbox",itc:"1"}),setTimeout((function(){n.searchInput instanceof HTMLInputElement&&(t&&(n.searchInput.value=t),n.searchInput.focus(),s&&n.searchInput.click())}))}},closeSearchOverlay=function(e){var n;null===(n=e.ybar)||void 0===n||n.classList.remove("ybar-searchbox-assist-fullscreen"),document.documentElement.classList.remove("ybar-overlay"),document.body.classList.remove("ybar-overlay-noscroll"),e.searchInput instanceof HTMLInputElement&&(e.searchInput.value="",e.searchInput.blur())},initMweb=function(e,n){"smartphone"===e.getConfig().device&&(e.addElementListener(n.searchBoxPlaceholder,"click",(function(){openSearchOverlay(e,n)})),e.addElementListener(n.searchBoxPlaceholder,"keydown",(function(t){var i=t,o=i.keyCode,s=i.key,r=range(65,90),a=__spreadArray(__spreadArray([],__read(range(58,57)),!1),__read(range(96,105)),!1),c=__spreadArray(__spreadArray([],__read(r),!1),__read(a),!1).includes(o);(32===o||13===o||c)&&(t.preventDefault(),t.stopPropagation(),openSearchOverlay(e,n,c?s:""))})),n.searchBoxBackButton&&(e.addElementListener(n.searchBoxBackButton,"click",(function(e){e.stopPropagation(),closeSearchOverlay(n);beaconClick("ybar","back-close-srch","",{elm:"btn",subsec:"searchbox",itc:"1"})})),e.addElementListener(n.searchInput,"keyup",(function(e){e.stopPropagation();27===e.keyCode&&(e.stopPropagation(),closeSearchOverlay(n))}))),e.addEventListener("viewerClosed",(function(){closeSearchOverlay(n)})),e.onDestroy((function(){closeSearchOverlay(n)})))},Tooltip=function(){function e(e,n,t){n&&(this.ybar=e,this.elem=n,this.options=t,this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.addEventListeners())}return Object.defineProperty(e.prototype,"tooltip",{get:function(){var e=this;return this.tooltipMarkup||(this.tooltipMarkup=this.createTooltip(),(this.options.tooltipParentElm||this.elem).appendChild(this.tooltipMarkup),this.ybar.onDestroy((function(){var n,t;null===(t=null===(n=e.tooltipMarkup)||void 0===n?void 0:n.parentNode)||void 0===t||t.removeChild(e.tooltipMarkup)}))),this.tooltipMarkup},enumerable:!1,configurable:!0}),e.prototype.show=function(){this.tooltip.classList.add(this.options.showClass)},e.prototype.hide=function(){this.tooltip.classList.remove(this.options.showClass)},e.prototype.addEventListeners=function(){this.ybar.addElementListener(this.elem,"mouseenter",this.show),this.ybar.addElementListener(this.elem,"focus",this.show),this.ybar.addElementListener(this.elem,"mouseleave",this.hide),this.ybar.addElementListener(this.elem,"blur",this.hide)},e.prototype.createTooltip=function(){var e=document.createElement("div");e.className=this.options.containerClass||"";var n=document.createElement("p");return n.textContent=this.options.label,n.className=this.options.textClass||"",e.appendChild(n),e},e}();createCommonjsModule((function(module){(function(){var __webpack_modules__={"./src/index.js":/*!**********************!*\ !*** ./src/index.js ***! \**********************/function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){eval("var I18n = __webpack_require__(/*! ./lib/I18n */ \"./src/lib/I18n.js\");\n\n(function (win, doc) {\n \"use strict\";\n\n var defaultConfig = {\n uiLang: 'en-US',\n speechLang: 'en-US',\n voiceButton: '#voice-btn',\n searchBox: {\n form: '#sf',\n input: '#yschsp',\n params: {\n fr: '',\n fr2: ''\n }\n },\n enable_voice_trending: false,\n trending: {\n market: \"en-us\"\n },\n ui: {\n speechOverlay: {\n disableBlur: false\n }\n },\n browsers: {\n edge: false\n }\n };\n\n function VoiceSearch(config) {\n var self = this;\n self.config = Object.assign(defaultConfig, config || {});\n self.i18n = new VoiceSearch.I18n({\n lang: self.config.uiLang\n });\n self.renderPermissionGuide(self);\n self.renderSpeechPanel(self);\n self.speechResult = '';\n self.noSpeech = true;\n self.isRecognitionStart = false;\n self.recognition = null;\n self.voiceButton = doc.querySelector(self.config.voiceButton);\n self.searchBoxForm = doc.querySelector(self.config.searchBox.form);\n self.searchBoxQuery = doc.querySelector(self.config.searchBox.input);\n self.speechPanel = doc.querySelector('#spch');\n self.speechButtonContainer = doc.querySelector('#spchbc');\n self.speechButton = doc.querySelector('#spchbc-btn');\n self.speechText = doc.querySelector('#spcht');\n self.speechOverlay = doc.getElementById('spch-overlay');\n self.retryLink = doc.querySelector('#spcht-retry');\n self.trending = doc.getElementById('spch-trending');\n self.trendingTerms = doc.getElementById('trending-terms');\n self.termSpans = doc.getElementsByClassName(\"trending-term\");\n self.closeButton = doc.querySelector('#spchx');\n self.startAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-start-202105050733.wav');\n self.resultAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-result-202105050733.wav');\n self.errorAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-error-202105050733.wav');\n self.closeAudio = new Audio('https://s.yimg.com/pv/static/misc/voice-close-202105050733.wav');\n self.permissionGuide = doc.querySelector('#spchp');\n self.permissionGuideClose = doc.querySelector('#spchpx');\n self.permissionGuideTimer = null;\n\n self.onEscKeyDown = function (e) {\n if (e.code !== 'Escape') {\n return;\n }\n\n self.recognition.stop();\n self.sendBeacon('keybrd', 'voicesearch_cancel_esc'); // The clean up should put inside closePanel() instead of here,\n // or func won't be cleaned up if user close panel with btn or overlay\n\n self.closePanel(self);\n };\n\n if (self.isBrowserSupported()) {\n var SpeechRecognition = win.SpeechRecognition || win.webkitSpeechRecognition;\n var SpeechGrammarList = win.SpeechGrammarList || win.webkitSpeechGrammarList;\n var speechGrammar = '#JSGF V1.0;';\n self.recognition = new SpeechRecognition();\n var speechRecognitionList = new SpeechGrammarList();\n\n if (speechRecognitionList.addFromString) {\n speechRecognitionList.addFromString(speechGrammar, 1);\n }\n\n self.recognition.grammars = speechRecognitionList;\n self.recognition.continuous = false;\n self.recognition.lang = self.config.speechLang;\n self.recognition.interimResults = false;\n self.recognition.maxAlternatives = 1;\n /* Listeners */\n\n if (self.voiceButton) {\n self.voiceButton.onclick = function () {\n self.recognition.start();\n\n if (self.permissionGuideTimer) {\n win.clearTimeout(self.permissionGuideTimer);\n }\n\n self.permissionGuideTimer = win.setTimeout(function () {\n if (!self.isRecognitionStart) {\n self.showPermissionGuide(self);\n }\n }, 300); // Also close when pressing esc\n\n doc.addEventListener('keydown', self.onEscKeyDown);\n self.sendBeacon('clk', 'voicesearch');\n };\n }\n\n if (self.speechButton) {\n self.speechButton.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon('clk', 'voicesearch_panel_mic_restart');\n } else {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_panel_mic_close');\n self.closePanel(self);\n }\n };\n }\n\n if (self.retryLink) {\n self.retryLink.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon('clk', 'voicesearch_panel_retry');\n }\n };\n }\n\n if (self.speechOverlay) {\n self.speechOverlay.onclick = function () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_cancel_outside');\n self.closePanel(self);\n };\n }\n\n if (self.closeButton) {\n self.closeButton.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_cancel');\n self.closePanel(self);\n };\n }\n\n if (self.permissionGuideClose) {\n self.permissionGuideClose.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon('clk', 'voicesearch_permission_close');\n self.closeAudio.play();\n self.hidePermissionGuide(self);\n };\n }\n /* Recognition Events */\n\n\n self.recognition.onresult = function (event) {\n // The SpeechRecognitionEvent results property returns a SpeechRecognitionResultList object\n // The SpeechRecognitionResultList object contains SpeechRecognitionResult objects.\n // It has a getter so it can be accessed like an array\n // The first [0] returns the SpeechRecognitionResult at the last position.\n // Each SpeechRecognitionResult object contains SpeechRecognitionAlternative objects that contain individual results.\n // These also have getters so they can be accessed like arrays.\n // The second [0] returns the SpeechRecognitionAlternative at position 0.\n // We then return the transcript property of the SpeechRecognitionAlternative object\n // console.log('Confidence: ' + event.results[0][0].confidence);\n self.speechResult = event.results[0][0].transcript;\n /* Punctuation Handling: Check last character and strip it if necessary */\n\n self.handlePunctuation(self);\n\n if (self.speechText) {\n self.speechText.innerText = self.speechResult;\n }\n\n if (self.searchBoxQuery) {\n self.searchBoxQuery.value = self.speechResult;\n }\n\n self.resultAudio.play();\n win.setTimeout(function () {\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb\");\n self.speechPanel.classList.add(\"s2tb-h\");\n }\n\n self.hideRetryLink(self);\n\n if (self.searchBoxForm) {\n var inputFr = self.searchBoxForm.querySelector('[name=fr]');\n var inputFr2 = self.searchBoxForm.querySelector('[name=fr2]');\n\n if (inputFr && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr) {\n inputFr.value = config.searchBox.params.fr;\n inputFr.disabled = false; // for homepage case\n }\n\n if (inputFr2 && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr2) {\n inputFr2.value = config.searchBox.params.fr2;\n inputFr2.disabled = false; // for homepage case\n }\n\n self.searchBoxForm.submit();\n }\n }, 1000);\n };\n\n self.recognition.onspeechstart = function\n /*event*/\n () {// Fired when speech starts\n };\n\n self.recognition.onspeechend = function () {\n // Fired when speech ends\n self.recognition.stop();\n };\n\n self.recognition.onerror = function\n /*event*/\n () {\n // console.log('Error occurred in recognition: ' + event.error);\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_error');\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n };\n\n self.recognition.onaudiostart = function\n /*event*/\n () {\n // Fired when the user agent has started to capture audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.add(\"listening\");\n }\n };\n\n self.recognition.onaudioend = function\n /*event*/\n () {\n // Fired when the user agent has finished capturing audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"listening\");\n }\n };\n\n self.recognition.onsoundstart = function\n /*event*/\n () {\n // Fired when any sound — recognisable speech or not — has been detected.\n self.hideTrending(self);\n self.noSpeech = false;\n\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"listening\");\n self.speechButtonContainer.classList.add(\"speaking\");\n }\n };\n\n self.recognition.onsoundend = function\n /*event*/\n () {\n // Fired when no sound present\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\"speaking\");\n }\n };\n\n self.recognition.onstart = function\n /*event*/\n () {\n // Fired when the speech recognition service has begun listening\n self.recognitionInit(self);\n self.startRecognition(self);\n };\n\n self.recognition.onend = function\n /*event*/\n () {\n // Fired when the speech recognition service has disconnected.\n self.isRecognitionStart = false;\n\n if (self.noSpeech == false && self.speechResult == '') {\n // No match: Fired when the speech recognition can't recognise speech\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_nomatch');\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n }\n }; // trigger onReady event when initialized\n\n\n if (document && document.dispatchEvent) {\n document.dispatchEvent(new Event('VOICE_JS_READY'));\n }\n }\n } // static members\n\n\n VoiceSearch.I18n = I18n; // instance members\n\n VoiceSearch.prototype.renderPermissionGuide = function (self) {\n var tmpl = \"\\n \\n
\\n
\\n
\\n
\\n
\".concat(self.i18n.t('search.voice.permission_title'), \"
\\n
\").concat(self.i18n.t('search.voice.permission_text'), \"
\\n
\\n
\\n
(Video) Leaked clip fast X Paul walker is back as Brian O’Connor with #CGI #BiranOconnor
\\n \");\n var dom = new DOMParser().parseFromString(tmpl, 'text/html');\n document.body.appendChild(dom.body.children[0]);\n };\n\n VoiceSearch.prototype.renderSpeechPanel = function (self) {\n var tmpl = \"\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \".concat(self.i18n.t('search.voice.recognition_retry'), \" \\n
\\n
\\n
\\n
\\n
\\n
(Video) Fast & Furious 10 Theory: Directors Keep Hint at Brian Return
\\n \").concat(self.i18n.t('search.voice.trending_title'), \" \\n \\n
\\n
\\n
\\n \");\n var dom = new DOMParser().parseFromString(tmpl, 'text/html');\n\n if (self && self.config && self.config.ui && self.config.ui.speechOverlay && self.config.ui.speechOverlay.disableBlur) {\n dom.body.children[0].classList.add('disable-blur-overlay');\n }\n\n document.body.appendChild(dom.body.children[0]);\n };\n\n VoiceSearch.prototype.isBrowserSupported = function () {\n var isSupported = false;\n var self = this;\n var isChromium = Boolean(window.chrome);\n var isIOSChrome = /CriOS/.test(window.navigator.userAgent);\n var isEdge = /Edg\\//.test(window.navigator.userAgent);\n var isLegacyEdge = /Edge\\//.test(window.navigator.userAgent);\n var isOpera = Boolean(window.opr);\n var isBrave = Boolean(window.navigator.brave);\n var browsers = [// chrome\n {\n checkEnabled: function checkEnabled() {\n return true;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && !isIOSChrome && !isEdge && !isOpera && !isBrave;\n },\n checkAPI: function checkAPI() {\n return win && ('SpeechRecognition' in win || 'webkitSpeechRecognition' in win) && ('SpeechGrammarList' in win || 'webkitSpeechGrammarList' in win);\n }\n }, // edge\n {\n checkEnabled: function checkEnabled() {\n return self && self.config && self.config.browsers && self.config.browsers.edge;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && isEdge && !isLegacyEdge;\n },\n checkAPI: function checkAPI() {\n return win && ('SpeechRecognition' in win || 'webkitSpeechRecognition' in win) && ('SpeechGrammarList' in win || 'webkitSpeechGrammarList' in win);\n }\n }];\n\n for (var b = 0; b < browsers.length; b++) {\n var browser = browsers[b];\n\n if (browser && browser.checkBrowser && browser.checkBrowser() && browser.checkEnabled && browser.checkEnabled(self) && browser.checkAPI && browser.checkAPI()) {\n isSupported = true;\n }\n }\n\n return isSupported;\n };\n\n VoiceSearch.prototype.recognitionInit = function (self) {\n // Initialize flags for checking whether user is speaking or not\n self.speechResult = '';\n self.noSpeech = true;\n self.isRecognitionStart = true;\n };\n\n VoiceSearch.prototype.showPermissionGuide = function (self) {\n if (self.permissionGuide) {\n self.permissionGuide.classList.remove(\"hide\");\n }\n };\n\n VoiceSearch.prototype.hidePermissionGuide = function (self) {\n if (self.permissionGuide) {\n self.permissionGuide.classList.add(\"hide\");\n }\n };\n\n VoiceSearch.prototype.getTrending = function (self) {\n // Call api for trending terms\n if (!self.config.enable_voice_trending || !self.trending) {\n return;\n }\n\n var url = \"https://api.search.yahoo.com/data/v3/search?appid=4d234a9d&market=\" + self.config.trending.market + \"&features=trending.voice\";\n self.ajaxReq(url, function (resBody) {\n if (!resBody || !resBody.response || !resBody.response.search || !resBody.response.search.results || !resBody.response.search.results[\"trending.voice\"]) {\n return;\n }\n\n var terms = resBody.response.search.results[\"trending.voice\"].data;\n self.showTrending(self, terms);\n });\n };\n\n VoiceSearch.prototype.showTrending = function (self, terms) {\n // params check\n if (!Array.isArray(terms) || terms.length < 3) {\n return;\n } // DOM check\n\n\n if (!self.trending || !self.termSpans || !self.termSpans[0]) {\n return;\n }\n\n var trendingLabel = '';\n trendingLabel += '\"' + terms[0].text + '\"' + ', ';\n trendingLabel += '\"' + terms[1].text + '\"' + ' ';\n trendingLabel += self.i18n.t('search.voice.trending_or') + ' ';\n trendingLabel += '\"' + terms[2].text + '\"';\n self.termSpans[0].innerText = trendingLabel;\n self.trending.classList.remove(\"hide\");\n };\n\n VoiceSearch.prototype.hideTrending = function (self) {\n if (!self.trending) {\n return;\n }\n\n self.trending.classList.add(\"hide\");\n };\n\n VoiceSearch.prototype.showRetryLink = function (self) {\n if (self.retryLink) {\n self.retryLink.innerText = self.i18n.t('search.voice.recognition_retry');\n self.retryLink.classList.remove(\"hide\");\n }\n };\n\n VoiceSearch.prototype.hideRetryLink = function (self) {\n if (self.retryLink) {\n self.retryLink.classList.add(\"hide\");\n }\n };\n\n VoiceSearch.prototype.startRecognition = function (self) {\n self.hidePermissionGuide(self);\n self.getTrending(self);\n self.startAudio.play();\n\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_start');\n win.setTimeout(function () {\n self.speechText.innerText = self.i18n.t('search.voice.recognition_listening');\n }, 2000);\n }\n\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb-h\");\n self.speechPanel.classList.add(\"s2tb\");\n }\n\n self.hideRetryLink(self);\n };\n\n VoiceSearch.prototype.closePanel = function (self) {\n self.closeAudio.play();\n win.setTimeout(function () {\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\"s2tb\");\n self.speechPanel.classList.add(\"s2tb-h\");\n }\n\n self.hideTrending(self);\n self.hideRetryLink(self); // clean up esc listener\n\n doc.removeEventListener('keydown', self.onEscKeyDown);\n }, 100);\n };\n\n VoiceSearch.prototype.handlePunctuation = function (self) {\n if (self.speechResult.length > 0) {\n var lastChar = self.speechResult.charAt(self.speechResult.length - 1);\n\n if (lastChar === '.' || lastChar === '?' || lastChar === '。' || lastChar === '?') {\n self.speechResult = self.speechResult.slice(0, -1);\n }\n }\n };\n\n VoiceSearch.prototype.sendBeacon = function (actn, slk) {\n var ULT = win.YAHOO.ULT || {},\n SB = win.YAHOO.SB || {};\n\n if (ULT.beacon_click) {\n var trackParams = {\n _S: SB.config.i13n.spaceid,\n _I: SB.config.i13n.pvid,\n actn: actn,\n sec: 'search',\n slk: slk\n };\n win.YAHOO.ULT.beacon_click(trackParams);\n }\n };\n\n VoiceSearch.prototype.ajaxReq = function (url, callback) {\n var DONE_STATE = XMLHttpRequest.DONE || 4; // for IE-compatibility\n\n var xhr = new XMLHttpRequest();\n var responseRaw;\n var response; // CORS request only for IE8/IE9\n\n if (doc.documentMode && doc.documentMode < 10) {\n var xdr = new win.XDomainRequest();\n\n xdr.onload = function () {\n try {\n response = JSON.parse(responseRaw);\n callback(response);\n } catch (err) {\n return;\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n return;\n } // CORS request for browers newer than IE9\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState !== DONE_STATE) {\n return;\n } // handle ajax response\n\n\n switch (xhr.status) {\n case 200:\n responseRaw = xhr.responseText;\n\n try {\n response = JSON.parse(responseRaw);\n callback(response);\n } catch (err) {\n return;\n }\n\n break;\n\n default:\n // non-200 status code: retry or assume failure\n callback(response);\n break;\n }\n };\n\n xhr.open('GET', url, true);\n /* aync request */\n\n xhr.timeout = 10000;\n xhr.send();\n };\n\n if (!win.YAHOO) {\n win.YAHOO = {};\n }\n\n if (!win.YAHOO.Util) {\n win.YAHOO.Util = {};\n }\n\n win.YAHOO.Util.VoiceSearch = VoiceSearch;\n})(window, document);\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.js?")},"./src/lib/I18n.js":/*!*************************!*\ !*** ./src/lib/I18n.js ***! \*************************/function(module,__unused_webpack_exports,__webpack_require__){eval("module.exports = function () {\n var LANG_LIST = __webpack_require__(/*! ./lang_list.json */ \"./src/lib/lang_list.json\");\n\n var DEFAULT_LANG = 'default';\n\n var isValidLang = function isValidLang(lang) {\n return LANG_LIST.indexOf(lang) !== -1;\n }; // convert language strings to key-value map\n\n\n var buildStrMap = function buildStrMap(langStrings) {\n return langStrings.reduce(function (strMap, item) {\n strMap[item.id] = item.defaultMessage;\n return strMap;\n }, {});\n };\n\n var I18n = function I18n(options) {\n // initialize\n this.lang = isValidLang(options && options.lang) ? options.lang : DEFAULT_LANG;\n }; // static members\n\n\n I18n.langMap = {};\n I18n.langMap[DEFAULT_LANG] = buildStrMap(__webpack_require__(/*! ../lang/strings.json */ \"./src/lang/strings.json\"));\n\n I18n.setLangMap = function (lang, strings) {\n if (lang && strings) {\n I18n.langMap[lang] = buildStrMap(strings);\n }\n }; // instance members\n\n\n I18n.prototype = {\n t: function t(id) {\n switch (true) {\n // look up target language\n case Boolean(I18n.langMap && I18n.langMap[this.lang] && I18n.langMap[this.lang][id]):\n return I18n.langMap[this.lang][id];\n // fallback to default strings\n\n case Boolean(I18n.langMap && I18n.langMap[DEFAULT_LANG] && I18n.langMap[DEFAULT_LANG][id]):\n return I18n.langMap[DEFAULT_LANG][id];\n\n default:\n return '';\n }\n }\n };\n return I18n;\n}();\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/lib/I18n.js?")},"./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css":/*!*******************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css ***! \*******************************************************************************************************/function(module,__webpack_exports__,__webpack_require__){eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, "/* Sprites */\\n#spchp.permission-guide .guide .microphone .sprite,\\n#spchp .close-button,\\n#spch .close-button,\\n#spch .spchc .microphone,\\n#spch .spchc .speaking .microphone {\\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch1x-1620383531565.min.png);\\n background-repeat: no-repeat;\\n background-size: initial;\\n color: transparent;\\n}\\n/* Retina displays */\\n@media\\n only screen and (-webkit-min-device-pixel-ratio: 2),\\n only screen and (min-device-pixel-ratio: 2),\\n only screen and (min-resolution: 192dpi),\\n only screen and (min-resolution: 2dppx) {\\n#spchp.permission-guide .guide .microphone .sprite,\\n#spchp .close-button,\\n#spch .close-button,\\n#spch .spchc .microphone,\\n#spch .spchc .speaking .microphone {\\n background-size: 41px 330px;\\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch2x-1620383531565.min.png)\\n}\\n }\\n\\n/* permission guide */\\n#spchp.permission-guide {\\n height: 100%;\\n width: 100%;\\n padding: 0;\\n opacity: 0.9;\\n background-color: #fff;\\n left: 0;\\n overflow: hidden;\\n position: fixed;\\n text-align: left;\\n top: 0;\\n z-index: 10000;\\n transition: visibility 0s linear 0.218s, background-color 0.218s;\\n}\\n#spchp.permission-guide .close-button {\\n background-position: 0 0;\\n width: 24px;\\n height: 24px;\\n border: none;\\n cursor: pointer;\\n right: 0;\\n margin: 20px;\\n padding: 0;\\n position: absolute;\\n top: 0;\\n z-index: 10;\\n opacity: 0.8;\\n }\\n#spchp.permission-guide .close-button:hover {\\n opacity: 1;\\n }\\n#spchp.permission-guide .guide {\\n margin: 191px 0 0 507px;\\n }\\n#spchp.permission-guide .guide .microphone {\\n height: 68px;\\n width: 52px;\\n border-right: 1px solid #232a31;\\n float: left;\\n }\\n#spchp.permission-guide .guide .microphone .sprite {\\n background-position: 0 -105px;\\n width: 28px;\\n height: 28px;\\n }\\n#spchp.permission-guide .guide .guide-text {\\n height: 68px;\\n margin-left: 24px;\\n float: left;\\n }\\n#spchp.permission-guide .guide .guide-text .title {\\n color: #232a31;\\n font-size: 32px;\\n font-family: HelveticaNeue-Bold;\\n line-height: 28px;\\n margin-bottom: 16px;\\n }\\n#spchp.permission-guide .guide .guide-text .text {\\n color: #232a31;\\n font-size: 16px;\\n line-height: 28px;\\n }\\n#spchp.permission-guide.hide {\\n display: none;\\n }\\n\\n/* speech panel */\\n#spch.spch {\\n background: #fff;\\n height: 100%;\\n left: 0;\\n opacity: 0;\\n overflow: hidden;\\n position: fixed;\\n text-align: left;\\n top: 0;\\n visibility: hidden;\\n width: 100%;\\n z-index: 10000;\\n transition: visibility 0s linear 0.218s, background-color 0.218s;\\n}\\n#spch.spch .close-button {\\n background-position: 0 0;\\n width: 24px;\\n height: 24px;\\n border: none;\\n cursor: pointer;\\n right: 0;\\n margin: 20px;\\n padding: 0;\\n position: absolute;\\n top: 0;\\n z-index: 10;\\n opacity: 0.8;\\n }\\n#spch.spch .close-button:hover {\\n opacity: 1;\\n }\\n#spch.spch .spchc {\\n display: block;\\n height: 97px;\\n pointer-events: none;\\n }\\n#spch.spch .spchc .inner-container {\\n width: 100%;\\n height: 100%;\\n opacity: 0.1;\\n pointer-events: none;\\n transition: opacity 0.318s ease-in;\\n }\\n#spch.spch .spchc .inner-container .spch-control {\\n display: inline-block;\\n }\\n#spch.spch .spchc .inner-container .text-container {\\n float: left;\\n height: 91px;\\n overflow: hidden;\\n margin: 3px 0;\\n pointer-events: none;\\n width: calc(50% - 48.5px);\\n }\\n#spch.spch .spchc .inner-container .text-container p {\\n display: table-cell;\\n vertical-align: middle;\\n width: 550px;\\n height: 97px;\\n }\\n#spch.spch .spchc .inner-container .text-container .spcht {\\n font-weight: normal;\\n color: #6e7780;\\n line-height: normal;\\n opacity: 0;\\n pointer-events: none;\\n text-align: left;\\n -webkit-font-smoothing: antialiased;\\n transition: opacity 0.1s ease-in, margin-left 0.5s ease-in, top 0s linear 0.218s;\\n }\\n#spch.spch .spchc .inner-container .text-container .spcht.hide {\\n display: none;\\n }\\n#spch.spch .spchc .inner-container .text-container #spcht-retry {\\n color: #0f69ff;\\n cursor: pointer;\\n pointer-events: auto;\\n }\\n#spch.spch .spchc .inner-container .button-container {\\n pointer-events: none;\\n position: relative;\\n transition: transform 0.218s, opacity 0.218s ease-in;\\n }\\n#spch.spch .spchc .inner-container .button-container .button {\\n background-color: #fff;\\n border: 1px solid #eee;\\n border-radius: 100%;\\n bottom: 0;\\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\\n cursor: pointer;\\n display: inline-block;\\n left: 0;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n right: 0;\\n top: 0;\\n transition: background-color 0.218s, border 0.218s, box-shadow 0.218s;\\n }\\n#spch.spch .spchc .inner-container .button-container .button .microphone {\\n background-position: 0 -24px;\\n width: 41px;\\n height: 41px;\\n left: 27px;\\n pointer-events: none;\\n position: absolute;\\n top: 27px;\\n transform: scale(1);\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple {\\n position: absolute;\\n width: 136px;\\n height: 136px;\\n z-index: -1;\\n left: 50%;\\n top: 50%;\\n opacity: 0;\\n margin: -70px 0 0 -70px;\\n border-radius: 100px;\\n -webkit-animation: ripple 3.3s infinite;\\n animation: ripple 3.3s infinite;\\n background-color: #fff !important;\\n border: 2px solid #e0e4e9;\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(2) {\\n -webkit-animation-delay: 1.1s;\\n animation-delay: 1.1s;\\n }\\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(3) {\\n -webkit-animation-delay: 2.2s;\\n animation-delay: 2.2s;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .button {\\n background-color: #0f69ff;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .button .microphone {\\n background-position: 0 -65px;\\n width: 40px;\\n height: 40px;\\n pointer-events: none;\\n position: absolute;\\n transform: scale(1);\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple {\\n background-size: 114px;\\n position: absolute;\\n width: 114px;\\n height: 114px;\\n z-index: -1;\\n left: 50%;\\n top: 50%;\\n margin: -57px 0 0 -57px;\\n -webkit-animation: speakingRipple1 2s infinite;\\n animation: speakingRipple1 2s infinite;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(2) {\\n background-size: 123px;\\n width: 123px;\\n height: 123px;\\n margin: -62px 0 0 -62px;\\n -webkit-animation: speakingRipple2 2s infinite;\\n animation: speakingRipple2 2s infinite;\\n }\\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(3) {\\n background-size: 136px;\\n width: 136px;\\n height: 136px;\\n margin: -68px 0 0 -68px;\\n -webkit-animation: speakingRipple3 2s infinite;\\n animation: speakingRipple3 2s infinite;\\n }\\n#spch.spch .spcho {\\n background-image: linear-gradient(to bottom, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 99%);\\n display: block;\\n min-width: 100%;\\n text-align: center;\\n top: 145px;\\n padding-bottom: 71px;\\n pointer-events: auto;\\n }\\n#spch.spch .spcho #spch-trending {\\n -webkit-animation: fadeIn 1s forwards;\\n animation: fadeIn 1s forwards;\\n opacity: 0;\\n }\\n#spch.spch .spcho #spch-trending .trending {\\n color: #6e7780;\\n display: inline-block;\\n font-size: 16px;\\n }\\n#spch.spch .spcho #spch-trending #trending-label {\\n font-weight: bold;\\n margin: 5px 5px;\\n }\\n#spch.spch .spcho #spch-trending.hide {\\n display: none;\\n }\\n#spch.spch.s2tb .spchc, #spch.spch.s2tb-h .spchc {\\n background: #fff;\\n box-sizing: border-box;\\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\\n height: auto;\\n margin: 0;\\n min-width: 100%;\\n overflow: hidden;\\n padding: 24px 115px;\\n }\\n#spch.spch.s2tb .spchc .inner-container, #spch.spch.s2tb-h .spchc .inner-container {\\n opacity: 1;\\n transition: opacity 0.318s ease-in;\\n }\\n#spch.spch.s2tb .spchc .inner-container .text-container, #spch.spch.s2tb-h .spchc .inner-container .text-container {\\n position: relative;\\n }\\n#spch.spch.s2tb {\\n background: rgba(255, 255, 255, 0);\\n opacity: 1;\\n visibility: visible;\\n transition-delay: 0s;\\n }\\n#spch.spch.s2tb .spchc .inner-container .button-container {\\n transform: scale(1);\\n height: 97px;\\n right: 0;\\n top: 0;\\n width: 97px;\\n }\\n#spch.spch.s2tb .spchc .inner-container .button-container .button {\\n opacity: 1;\\n pointer-events: auto;\\n position: absolute;\\n transform: scale(1);\\n transition-delay: 0;\\n }\\n#spch.spch.s2tb .spchc .inner-container .text-container .spcht {\\n font-size: 24px;\\n margin-left: 0;\\n opacity: 1;\\n transition: opacity 0.5s ease-out, margin-left 0.5s ease-out;\\n }\\n#spch.spch.s2tb #spch-overlay {\\n -webkit-backdrop-filter: blur(10px);\\n backdrop-filter: blur(10px);\\n background-color: #fff;\\n height: 100%;\\n opacity: 0.9;\\n position: absolute;\\n top: 149px;\\n\\n /* spchc\'s height */\\n width: 100%;\\n }\\n#spch.spch.disable-blur-overlay #spch-overlay {\\n background-color: transparent;\\n -webkit-backdrop-filter: none;\\n backdrop-filter: none;\\n }\\n#spch.spch.disable-blur-overlay .spcho {\\n height: 27px;\\n padding-bottom: 20px;\\n background: #fff;\\n background-image: none;\\n box-shadow: 0 8px 6px -6px rgb(0 0 0 / 20%);\\n }\\n#spch.spch.s2tb-h {\\n background: rgba(255, 255, 255, 0);\\n opacity: 0;\\n visibility: hidden;\\n }\\n\\n@-webkit-keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n }\\n\\n 100% {\\n opacity: 1;\\n }\\n}\\n\\n@-webkit-keyframes ripple {\\n 0% {\\n opacity: 1;\\n transform: scale(0.7);\\n }\\n\\n 100% {\\n opacity: 0;\\n transform: scale(1);\\n }\\n}\\n\\n@keyframes ripple {\\n 0% {\\n opacity: 1;\\n transform: scale(0.7);\\n }\\n\\n 100% {\\n opacity: 0;\\n transform: scale(1);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple1 {\\n 0%,\\n 100% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\\");\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple1 {\\n 0%,\\n 100% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\\");\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple2 {\\n 0%,\\n 100% {\\n background-image: none;\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple2 {\\n 0%,\\n 100% {\\n background-image: none;\\n }\\n\\n 25%,\\n 75% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\\");\\n transform: scale(1.1);\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@-webkit-keyframes speakingRipple3 {\\n 0%,\\n 25%,\\n 75%,\\n 100% {\\n background-image: none;\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n\\n@keyframes speakingRipple3 {\\n 0%,\\n 25%,\\n 75%,\\n 100% {\\n background-image: none;\\n }\\n\\n 50% {\\n background-image: url(\\"https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\\");\\n transform: scale(0.9);\\n }\\n}\\n", ""]);\n// Exports\n/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js')},"./node_modules/css-loader/dist/runtime/api.js":/*!*****************************************************!*\ !*** ./node_modules/css-loader/dist/runtime/api.js ***! \*****************************************************/function(module){eval('\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return "@media ".concat(item[2], " {").concat(content, "}");\n }\n\n return content;\n }).join("");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === "string") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, ""]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = "".concat(mediaQuery, " and ").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n//# sourceURL=webpack://@vzmi/voicejs/./node_modules/css-loader/dist/runtime/api.js?')},"./src/index.css":/*!***********************!*\ !*** ./src/index.css ***! \***********************/function(module,__unused_webpack_exports,__webpack_require__){eval('var api = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");\n var content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!../node_modules/postcss-loader/dist/cjs.js!./index.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === \'string\') {\n content = [[module.id, content, \'\']];\n }\n\nvar options = {};\n\noptions.insert = "head";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};\n\n//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?')},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":/*!****************************************************************************!*\ !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! \****************************************************************************/function(module,__unused_webpack_exports,__webpack_require__){eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of
FAQs
Brian O'Conner was noticeably missing at the BBQ in the 8th installment—the actor behind O'Conner, Paul Walker, tragically died in a Porsche Carrera GT crash during the filming of Furious 7 , and with the help of his brothers (and CGI), they completed the movie.
What did Vin Diesel say to Paul Walker? ›
"Nine years… love you and miss you ," Diesel captioned a photo of them in front of a car. Walker died in a car accident in 2013.
How do they explain Brian's absence in Fast 9? ›
How 'F9' explains Brian's absence: He's babysitting . When Mia (Jordana Brewster) shows up and is asked about Brian, she announces that Brian is looking after their two children and Dom's son, little Brian. The former FBI agent is babysitting the entire movie.
Why did Brian let Dom go? ›
It is also revealed in this film why he let Dominic go in the first film—that he respected Dominic more than he did himself, and perhaps due to the fact that his raid on Tran's estate indirectly caused Jesse's death .
Will Brian be in Fast and Furious 11? ›
Brian O'Connor's return in Fast & Furious 11 creates a massive challenge for the franchise in terms of closing his story . After starring in all but one of the first seven Fast & Furious movies, Paul Walker's character was firmly established as one of the franchise leads.
Will Brian be in fast and furious 10? ›
Vin Diesel has confirmed that the upcoming Fast X film will mention the late Paul Walker and his character Brian , with Diesel promising that the franchise will say “goodbye” to the character as it wraps up.
Why don t The Rock and Vin Diesel get along? ›
Once Diesel invited Rock aka Dwayne Johnson to return to the Fast and Furious franchise but the latter firmly declined the offer. In fact, Johnson had accused Vin Diesel of manipulation by bringing children and Paul Walker , the late actor who was one of the lead actors.
What was Paul Walker's most famous quote? ›
Because I was smiling. ”
Did Paul Walker like muscle cars? ›
Walker's love of muscle cars was also evident , as four tough, American-built examples are going under the hammer. These include a '63 Nova Wagon, '64 Chevelle Wagon, '67 Nova coupe, and a 2013 Mustang Boss 302S that has never seen a race track.
Did Brian pull up at the end of F9? ›
And Brian pulling up just as his family and friends are about to eat makes it seem like he is simply late to the party, but is still a crucial part of the crew . It's a brief moment, but the decision to have it in the movie ensures that Brian's presence in F9 is still felt no matter what.
F9 found a way to incorporate Paul Walker's Brian O'Conner without ruining the character's perfect Furious 7 ending. The seventh installment of The Fast Saga served as Walker's farewell in the franchise following the actor's tragic death in 2013.
Is Brian still supposed to be alive in Fast and Furious 9? ›
Full spoilers ahead for Fast 9. While there are two more sequels planned, Fast 9 almost works as a finale to the two-decade-old Fast & Furious saga, ending on a sweet note about family (because it's all about family) that also keeps the spirit of the late Paul Walker and his character Brian O'Conner alive .
Did Dom really let Brian win? ›
Brian wins! And he's literally never been happier... until Roman lets it slip that Dom let off the clutch at the end of the race to let him win . The resulting look on Brian's face is a mixture of denial, devastation, and complete shock, all of which come together to create one of Brian's most lovable moments.
Is Little Brian Dom's son? ›
Brian Marcos is the son of Dominic Toretto and Elena Neves , the stepson of Letty Ortiz, the nephew of Jakob, Mia Toretto and Brian O'Conner and the cousin of Jack and his younger sister.
When did Elena get pregnant by Dom? ›
When did Elena get pregnant? Elena tells Dom in Fate of the Furious that she found out she was pregnant right before Letty returned . That means she probably knew she was pregnant at the end of Fast & Furious 6, and through Furious 7. Elena appeared twice during those films.
Who is replacing Brian in fast and furious? ›
His character, Brian O'Conner, has been kept alive on screen using CGI and the late actor's two brothers, Cody and Caleb Walker as body doubles.
Who will be the new Brian in Fast and Furious 10? ›
Leo Abelo Perry is another new cast member, but he'll be playing a familiar character; Brian, the son of Dom and Elena, who first showed up as an infant being held captive by Cipher in The Fate of the Furious. He now lives with Dom and Letty after Elena was killed by Cipher.
Who replaced Brian in Fast and Furious 7? ›
Cody Beau Walker (born June 13, 1988) is an American actor. He is the youngest brother of actor Paul Walker, and helped complete the final scenes for his character Brian O'Conner in the film Furious 7 (2015) following his brother's death.
Is Brian alive in f10? ›
"Well, Brian is very much alive in the world of Fast & Furious , and they've teased him a lot in the previous movies," he told Total Film (via Gamesradar).
Will there be a Fast and Furious 10 and 11? ›
Louis Leterrier, known for creating The Transporter franchise with Jason Statham, will helm both Fast X and the eventual Fast & Furious 11 . Leterrier took over after Fast 9 director Justin Lin left the project in April 2022 due to creative differences.
It is the sequel to F9 (2021), serving as the tenth and penultimate main installment , and the eleventh full-length film in the Fast & Furious franchise.
Was Vin Diesel jealous of the rock? ›
“There was professional jealousy , It was brutal”: Marvel Star Vin Diesel is Not the Only Former Friend Who Hated Dwayne Johnson.
Will there be a Hobbs and Shaw 2? ›
It was expected that Hobbs & Shaw would keep its Fast and Furious ties to a minimum (and vice versa), mainly because Dwayne Johnson has exited the main series. Still, that Hobbs & Shaw 2 is taking so long to release is surprising.
What ethnicity is Vin Diesel? ›
He was raised by his white mother and adoptive African-American father, Irving H. Vincent, an acting instructor and theater manager. Diesel has stated that he is "of ambiguous ethnicity ." His mother has English, German, and Scottish roots.
What is Paul Walker's most famous car? ›
1. Porsche Carrera GT
Porsche Carrera GT Specs Engine 5.7-Liter V10 Horsepower 605 hp Torque 435 lb-ft Transmission 6-speed manual
2 more rows May 1, 2023
What was Paul Walker's most iconic car? ›
This 1973 Porsche 911 Carrera Was Paul Walker's Dream Car.
What was JJ Walker's favorite saying? ›
Story highlights. Jimmie “J.J.” Walker is probably best known as the the rubber-faced comedian who made famous the catchphrase “dyn-o-mite! ” on the popular 1970s sitcom “Good Times.”
How much was Paul Walker worth when he died? ›
According to new reports, the late Paul Walker's estate, worth $25 million , was left entirely to his only child, 15-year-old Meadow Walker. The actor, who starred in the film franchise “Fast & Furious”, named his father as the executor of the estate, and his mother, Cheryl Walker, as the child's guardian. Mr.
Who bought Paul Walker's cars? ›
Several of the 21 cars have been retained by Meadow Rain Walker , Paul's daughter, who two years ago settled a lawsuit with Porsche out of court for an undisclosed fee. Four years ago she also won a $10 million payment from the estate of Roger Rodas, who was driving the Carrera GT that was involved in the fatal crash.
Who was driving Paul Walker's Porsche? ›
Roger Rodas , the man who died along with Paul Walker, is often overlooked due to Walker's popularity. However, on that sad day, Rodas, a close friend of Walker's, was behind the 2005 Porsche Carrera GT's wheel. The accident took place on Hercules Drive in Valencia.
In the final moments of F9, the entire family comes together for a barbeque. Just before Dom (Vin Diesel) says a prayer for the meal, he pauses to note, “There's still an empty chair.” That empty chair, of course, belongs to Brian O'Connor , the character the late Paul Walker made world famous.
What were Dom's last words to Brian? ›
Dominic Toretto [last words for Brian] I used to say I live my life a quarter mile at a time. And I think that's why we were brothers, because you did too. No matter where you are, whether it's a quarter-mile away or halfway across the world...you'll always be with me, and you'll always be my brother.
Why did Dwayne say no to returning to F9? ›
The reason why Dwayne Johnson will not be returning to the main Fast and Furious franchise is because of a rather simple reason. He has some trouble with his co-star, Vin Diesel . Unlike their on-screen camaraderie, the two actors have not gotten along for quite some time now.
Is Brian alive in Fast 7? ›
When Walker died in 2013, the franchise opted to retire the character with Furious 7 two years later. Later installments have made it clear he's quite alive —F9 even ends with his car coming to the Torettos' driveway—and Dom's son (as revealed in F8 of the Furious) is even named after the character.
What happened to Brian's kid in Fast and Furious? ›
Elena is murdered during that movie's hostage holdout, though Owen (Luke Evans) and Deckard Shaw (Jason Statham) eventually rescue the infant Brian and return him to Dom and stepmom Letty (Michelle Rodriguez) .
Does Toretto find out about Brian? ›
In order to protect Dom, he tells Mia the truth: that's he a cop. She helps him find Dom, so he can save him. Climax: After the hijacking goes bad and Dom learns the truth about Brian , Brian returns to arrest Dom, but is interrupted when Tran shows up and kills one of Dom's team members.
Does Brian come back after dying? ›
While the production team first insisted that Brian's death was permanent and not a publicity stunt, he came back to life only two episodes later, in the episode “Christmas Guy” (season 12, episode 8), via a time travel machine . The time travel narrative suggests that Brian, in fact, never died in the first place.
Will Fast and Furious bring back Brian? ›
Fans' hearts were broken when Paul Walker, who portrayed Brian O'Conner, passed away in 2013. However, it appears that the franchise is going to offer fans some sort of resolution, as it has been confirmed that Brian O'Conner will be showing up in the next few Fast and Furious film.
Why did Fast and Furious keep Brian alive? ›
He explained that the decision was made for the character to be seen "in the past", and he noted Walker's family remains a huge part of the franchise. He added: "You will see Brian in the past, you won't see Brian in the present. It's something that everybody has to be on board with.
Was Dom a better driver than Brian? ›
Granted, it can be concluded that the two characters are at the top of the list when it comes to ranking the skills of all drivers featured in the Fast & Furious franchise. Based on other factors, it's safe to say that Dom will always be the driving champion in the film series .
though, Dom crashes into a truck right afterwards, so it's technically more of a win for Brian). The duo face off again in Fast & Furious in a race to win a spot on a team of drug traffickers, which Dom wins by "cheating" and bumping Brian's car while it's in nitro, sending it spinning out of control.
Who killed Dom's father in f9? ›
It is revealed by Jakob that Jack intended to throw the race to help his family get out of deep debt and since Jack felt that he couldn't share this with Dominic, instructed Jakob to tamper with his car and to never tell anyone else. However, upon impact with Linder it caused his car to explode and kill him.
Who is the mother of Dom's baby? ›
Cipher had kidnapped Elena (Elsa Pataky ), the Brazilian police officer and former romantic interest of Dom. Not only that, Elena had secretly given birth to Dom's son and had been kidnapped before being able to tell him she was pregnant.
Who saved Dom's baby? ›
Deckard Shaw (Jason Statham) rescued Dom's son. In one of the movie's most entertaining scenes, Deckard retrieved Dom's son from Cipher's plane while simultaneously fending off attackers.
How does Elena have Dom's baby? ›
Despite Dominic Toretto's (Vin Diesel) romantic history with Letty Ortiz (Michelle Rodriguez) throughout the Fast & Furious franchise, he became a father after a brief fling with Elena Neves (Elsa Pataky).
Who is Elena pregnant by? ›
Somtime during season six of The Vampire Diaries, Elena give birth to her and Jacob's first and only child, Bonnie Rebekah Fogerty . They named their daughter in honor of their two friends, Bonnie Bennett and Rebekah Mikaelson.
Who killed Elena Neves? ›
Elena and Dominic beg for Cipher to leave Marcos alone while Connor Rhodes stands behind Cipher holding a gun. As Elena screams for her son's life to be spared, she is killed by Connor and after Deckard Shaw reported to Dom that he has rescued his son, Dom avenges Elena's death by killing Connor.
What show does Elena get pregnant? ›
Black Hole Sun (The Vampire Diaries)
How did Brian get written out of Fast and Furious? ›
Walker died in a car accident during the production of Furious 7 , leading to Brian O'Conner being written out of the franchise.
Where do they say Brian is in fast 9? ›
In the final moments of F9, the entire family comes together for a barbeque. Just before Dom (Vin Diesel) says a prayer for the meal, he pauses to note, “There's still an empty chair.” That empty chair, of course, belongs to Brian O'Connor, the character the late Paul Walker made world famous.
Despite the complications, the filmmakers opted to give Brian a moving send-off was motivated by how the actor's death played in real life . Walker's accident is arguably one of the most heartbreaking tragedies in Hollywood in the last decade as it was so sudden.
Did Toretto let Brian win? ›
Brian wins! And he's literally never been happier... until Roman lets it slip that Dom let off the clutch at the end of the race to let him win.
Is Brian supposed to be alive in F9? ›
Full spoilers ahead for Fast 9. While there are two more sequels planned, Fast 9 almost works as a finale to the two-decade-old Fast & Furious saga, ending on a sweet note about family (because it's all about family) that also keeps the spirit of the late Paul Walker and his character Brian O'Conner alive .
What does the ending of F9 mean? ›
And in “F9,” directed by Justin Lin and written by Lin and Daniel Casey, that justice is delivered as Han reveals that he used Shaw's attack as cover to fake his own death and go undercover for Mr. Nobody, while still mourning the loss of his love, Gisele.
Will there be a fast and furious 10 and 11? ›
Louis Leterrier, known for creating The Transporter franchise with Jason Statham, will helm both Fast X and the eventual Fast & Furious 11 . Leterrier took over after Fast 9 director Justin Lin left the project in April 2022 due to creative differences.
Who is replacing Brian in Fast and Furious? ›
His character, Brian O'Conner, has been kept alive on screen using CGI and the late actor's two brothers, Cody and Caleb Walker as body doubles.
Is Brian permanently gone? ›
While the production team first insisted that Brian's death was permanent and not a publicity stunt, he came back to life only two episodes later, in the episode “Christmas Guy” (season 12, episode 8), via a time travel machine.
Is Brian alive in Fast and Furious 8? ›
He too lacks a name since his identity is so secret but, like Brian, he can drive and joins the Fast gang on their missions. As for Brian, the team acknowledges that the character is alive , though we never see or hear from him (or Mia).
What happened to Mia and Brian's daughter? ›
She and Brian live in a secluded house in the Canary Islands with Jack and are visited by Dom who informs them that Letty is alive . Brian is uncertain about getting back into the game since he retired to live peacefully with Mia but she encourages him to go and bring Letty home and she'll stay with Jack and Elena.