US-Australian research scramjet aircraft : seven times the speed of sound and a half hours to New York London

[Abstract ] NASA and Australian researchers are testing a scramjet technology, this program is called HiFiRE technology projects.

var related_video_info = {vid: ‘k0019xppbik’, cid: ‘d9jyci1iq9mukcu’, url: ‘http://v.qq.com/page/k/i/k/k0019xppbik.html’, pic: ‘http: /
/vpic.video.qq.com/4202047146/k0019xppbik_ori_1.jpg ‘, title:’ supersonic airliner in 2020 Beijing available five hours to fly to Los Angeles’}; .rv-root-v2 {font-family: “\ 5FAE \ 8F6F
\ 96C5 \ 9ED1 “, sans-serif; color: # 000} .rv-root-v2 a {text-decoration: none; color: # 000} .rv-root-v2 h1, .rv-root-v2 h2,
.rv-root-v2 h3, .rv-root-v2 ol, .rv-root-v2 p, .rv-root-v2 ul {display: block; padding: 0; margin: 0} .rv-root-v2
img {border: 0} .rv-root-v2 .rv-cf: after, .rv-root-v2 .rv-cf: before {content: “”; display: table} .rv-root-v2 .rv-
cf: after {clear: both} .rv-root-v2 .rv-cf {* zoom: 1} .rv-root-v2 .rv-top {height: 40px; line-height: 40px; background-color: #
f3f3f3} .rv-root-v2 .rv-top .rv-fold-btn {float: right; padding-left: 20px; margin-right: 16px; font-size: 14px; background-image: url (http: /
/mat1.gtimg.com/news/dc/images/fold.png);background-position:left center; background-repeat: no-repeat} .rv-root-v2 .rv-top .rv-autoplay {float:
right; width: 110px; margin-right: 16px} .rv-root-v2 .rv-top .rv-autoplay span {font-size: 14px; float: right} .rv-root-v2 .rv-top .rv
-autoplay a {float: right; display: block; width: 32px; height: 18px; padding: 2px; margin-top: 10px; margin-left: 12px; border-radius: 10px; font-size: 0; text-
indent: -9999px; cursor: pointer; background-color: #CCC; transition: background .3s ease-out} .rv-root-v2 .rv-top .rv-autoplay ai {display: block; width: 18px; height
: 18px; border-radius: 50%; background-color: #fff; margin-left: 0; box-shadow: 1px 1px 3px rgba (0,0,0, .6); transition: all .3s ease-out
} .rv-root-v2 .rv-top .rv-autoplay a: hover {background-color: # d9d9d9} .rv-root-v2 .rv-top .rv-autoplay a.enabled {background-color: # 006cb7
} .rv-root-v2 .rv-top .rv-autoplay a.enabled i {margin-left: 14px} .rv-root-v2 .rv-top .rv-autoplay a.enabled: hover {background-color:
# 007bd1} .rv-root-v2 .rv-top .rv-autoplay a: active i {box-shadow: none} .rv-root-v2 .rv-top .rv-title {overflow: hidden} .rv-
root-v2 .rv-top .rv-title a {display: block; font-size: 18px; font-weight: 400; text-indent: 12px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden
; color: # 000} .rv-root-v2 .rv-top .rv-title a: hover {color: # cd0000; text-decoration: underline} .rv-root-v2 .rv-middle .rv-player {
position: relative; min-height: 360px; padding-bottom: 18px} .rv-root-v2 .rv-middle .rv-player .rv-player-adjust-img {width: 100%; visibility: hidden; font-
size: 0} .rv-root-v2 .rv-middle .rv-player .rv-player-adjust-img img {width: 100%; vertical-align: top; max-width: 2000px important; min-width!
!: 0 important} .rv-root-v2 .rv-middle .rv-player .rv-player-wrap {position: absolute; width: 100%; height: 100%; top: 0; left: 0; background-
color: # 000; box-shadow:. inset 0 0 20px rgba (0,0,0, .6)} rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-
mod {position: relative; width: 100%; height: 100%}. rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mod .rv-player-loading {width
: 100%; height: 100%; text-align: center; color: # 999; font-family: verdana, arial, sans-serif} .rv-root-v2 .rv-middle .rv-player .rv-player
-wrap .rv-player-mod .tvp_titles {display: none} .rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl {display: none; position:
absolute; right: 0; z-index: 99; bottom: 18px; width: 30px} .rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl-close
, .rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl-mute, .rv-root-v2 .rv-middle .rv-player .rv-player
-wrap .rv-player-mini-ctrl-resize {display: block; margin-top: 3px; width: 30px; height: 30px; line-height: 30px; background-color: # 000; background-color: rgba (
0,0,0, .6); background-image: url (http://mat1.gtimg.com/news/dc/images/rv_mini_sprites_v2.png); background-repeat: no-repeat; text-align: center
} .rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl-close: hover, .rv-root-v2 .rv-middle .rv-player .rv
-player-wrap .rv-player-mini-ctrl-mute: hover, .rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl-resize: hover {
color: #FFF; background-color: # 000; background-color:. rgba (0,0,0, .9)} rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv
-player-mini-ctrl-mute, .rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl-mute.mute-off {background-position: 0 –
150px} .rv-root-v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl-mute.mute-on {background-position: 0 -180px} .rv-root-
v2 .rv-middle .rv-player .rv-player-wrap .rv-player-mini-ctrl-close {background-position: 0 0} .rv-root-v2 .rv-middle .rv-player .rv-
player-wrap .rv-player-mini-ctrl-resize {background-position: 0 -30px} .rv-root-v2 .rv-middle .rv-player .rv-player-mini {position: fixed; width: 270px
; height: 170px; left: 0; bottom: 0; top: auto; z-index: 99; box-shadow:. 0 0 3px rgba (0,0,0, .3)} rv-root-v2 .rv
-middle .rv-player .rv-player-mini .rv-player-mini-ctrl {display: block} @media only screen and (min-width: 1300px). {rv-root-v2 .rv-middle .rv
-player .rv-player-mini.rv-player-mini-sp1 {left: 50%; margin-left: -692px}.} rv-root-v2 .rv-middle .rv-player .rv-player-mini
.rv-player-mini-big {width: 640px; height: 378px} .rv-root-v2 .rv-middle .rv-player .rv-player-mini.rv-player-mini-big .rv-player-
mini-ctrl-resize {background-position: 0 -60px} .rv-root-v2 .rv-middle .rv-playlist {height: 100px; background-color: # 2f2f2f} .rv-root-v2 .rv-middle
.rv-playlist .rv-playlist-ctrl {position: relative; width: 100%; height: 0; z-index: 2} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-ctrl
a {display: block; position: absolute; top: 0; width: 17px; height: 100px; line-height: 100px; font-size: 14px; font-weight: 700; font-family: NanumMyeongjo, “\ 5B8B \
4F53 “, sans-serif; text-align: center; color: # a3a3a3; background-color: # 2f2f2f; background-color: rgba (47,47,47, .8); cursor: pointer} .rv-root-
v2 .rv-middle .rv-playlist .rv-playlist-ctrl a: hover {background-color: # 494949; background-color: rgba (73,73,73, .8)}. rv-root-v2 .rv
-middle .rv-playlist .rv-playlist-ctrl a.disabled {cursor: not-allowed; color: # 505050} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-ctrl a.disabled
: hover {background-color: # 2f2f2f; background-color: rgba (47,47,47, .8); box-shadow: none} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist
-ctrl .prev {left: 0} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-ctrl .next {right: 0} .rv-root-v2 .rv-middle .rv-playlist
.rv-playlist-wrap {height: 100px; width: 100%; overflow: hidden; position: relative; z-index: 1} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-wrap
.rv-playlist-scroller {height: 130px; width: 100%; overflow-y: hidden; overflow-x: scroll; -webkit-overflow-scrolling: touch} .rv-root-v2 .rv-middle .rv-
playlist .rv-playlist-wrap .rv-playlist-scroller ol.rv-playlist-list {width: 9999px; padding: 0 17px; list-style: none} .rv-root-v2 .rv-middle .rv-playlist
.rv-playlist-wrap .rv-playlist-scroller ol.rv-playlist-list li {display: block; float: left} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-wrap.
rv-playlist-scroller ol.rv-playlist-list li a {display: block; position: relative; width: 160px; height: 90px; padding: 5px; cursor: pointer} .rv-root-v2 .rv-middle.
rv-playlist .rv-playlist-wrap .rv-playlist-scroller ol.rv-playlist-list li a img {width: 100%; height: 100%; opacity: 0; transition: opacity .3s ease-out; vertical
-align: top} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-wrap .rv-playlist-scroller ol.rv-playlist-list li a div {position: absolute; width: 100%
; left: 0; bottom: 0; font-size: 12px; line-height: 18px} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-wrap .rv-playlist-scroller ol.rv
-playlist-list li a div span {display: block; height: 18px; margin: 5px; padding: 5px 10px 2px; overflow: hidden; font-family: Arial, sans-serif; color: #ababab; background-color:
rgba (0,0,0, .8); – ms-filter: “progid: DXImageTransform.Microsoft.gradient (GradientType = 1, startColorStr = ‘# CC000000’, EndColorStr = ‘# CC000000’)”; filter: progid:
DXImageTransform.Microsoft.Gradient (GradientType = 1, startColorStr = ‘# CC000000’, EndColorStr = ‘# CC000000’); – webkit-transition: all .2s ease-out; -moz-transition: all .2s ease-out; –
ms-transition: all .2s ease-out; -o-transition: all .2s ease-out; transition: all .2s ease-out} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist
-wrap .rv-playlist-scroller ol.rv-playlist-list li a div span: not ([dummy]) {filter: progid: DXImageTransform.Microsoft.Gradient (enabled = ‘false’)} rv-root-v2.
.rv-middle .rv-playlist .rv-playlist-wrap .rv-playlist-scroller ol.rv-playlist-list li a.current {background: # 101010} .rv-root-v2 .rv-middle .rv-
playlist .rv-playlist-wrap .rv-playlist-scroller ol.rv-playlist-list li a.current div span {color: # ff6d1a} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist
-wrap .rv-playlist-scroller ol.rv-playlist-list li a: hover {background: # 252525} .rv-root-v2 .rv-middle .rv-playlist .rv-playlist-wrap .rv-playlist-
scroller ol.rv-playlist-list li a: hover div span {height: 36px} @media only screen and (min-width: 1260px) {rv-adjust-wide-article {width: 895px; margin-left: -.
97px}} AutoPlay AutoPlay switch

supersonic airliner in 2020 Beijing available five hours to fly to Los Angeles

<-

loading …

& lt;! & gt;

    window.dc_related_video =
    {}, function (t) {t .__ author __ = “jamieyan”, t .__ version __ = “2.0.0”, t.modName = “dc_related_video”, t.config = {}, t.config.autoplay_cookie = {key:
    “aboutVideo_v”, domain: “. qq.com”, path: “/”, expires: 90}, t.config.playing_cookie = {key: “dc_vplaying”, domain: “. qq.com”, path: “/
    “, expires: function () {return new Date ((new Date) .getTime () + 72e5)}}, t.config.mini_unmute = {key:” rv_mini_unmute “, domain:”. qq.com “, path:
    “/”, expires: 1}, t.sign = {}, t.sign.qqcomstore = null, t.cache = {}, t.videos = [], t.dom = {}, t.control = {
    }, t.tvp_player_obj = null} (window.dc_related_video), function (t) {var i = {}, e = function (t, i) {var e = document.head || document.getElementsByTagName ( “head”)
    [0] || document.documentElement, n = document.createElement ( “script”), o = 1;!! n.async = 0, n.src = t, n.onload = n.onreadystatechange = function () {
    o || n.readyState && / loaded |!! complete / .test (n.readyState) || (o = 0, n.onload = n.onreadystatechange = null, n.parentNode && n.parentNode.removeChild (n), n =
    null, “function” == typeof i && i ())}, e.insertBefore (n, e.firstChild)}, n = function (t) {t = t || function () {}; var i = 1!;
    if ( “function” == typeof window.jQuery) {var n = window.jQuery () jquery;. if ( “string” == typeof n) {var o = n.split ( “.”); 3 ==
    = o.length && “1” === o [0] && parseInt (o [1], 10)> 10 && (i = 0!)}} i t (window.jQuery):? e ( “http: // mat1
    .gtimg.com / libs / jquery / 1.12.0 / jquery.min.js “, function () {t (window.jQuery.noConflict (! 0))})}, o = function (t) {if (window
    .tvp) t (window.tvp); else {var i = “http://imgcache.qq.com/tencentvideo_v1/tvp/js/tvp.player_v2”; i + = window.jQuery “_jq.js”: “?
    .js “, e (i, function () {t (window.tvp)})}}, a = function () {var t = function () {return t.get.apply (t, arguments)}, i
    = t.utils = {isArray: Array.isArray || function (t) {return “[object Array]” === Object.prototype.toString.call (t)}, isPlainObject: function (t) {return !!
    t && “[object Object]” === Object.prototype.toString.call (t)}, toArray: function (t) {return Array.prototype.slice.call (t)}, getKeys: Object.keys || function
    (t) {var i = [], e = “”; for (e in t) t.hasOwnProperty (e) && i.push (e); return i}, escape: function (t) {return String (t)
    .replace (/ [,; “\\ = \ s%] / g, function (t) {return encodeURIComponent (t)})}, retrieve: function (t, i) {return null === t i?:
    t}}; return t.defaults = {}, t.expiresMultiplier = 86400, t.set = function (t, e, n) {if (i.isPlainObject (t)) for (var o in t) t.hasOwnProperty
    (o) && this.set (o, t [o], e); else {n = i.isPlainObject (n) n: {expires:?!? n}; var a = void 0 == n.expires n.
    expires: this.defaults.expires || “”, l = typeof a; “string” === l && “” == a a = new Date (a):!? “number” === l && (a = new
    Date (+ new Date + 1e3 * this.expiresMultiplier * a)), “”! == a && “toGMTString” in a && (a = “; expires =” + a.toGMTString ()); var r = n.path |
    | this.defaults.path; r = r “; path =” + r: “”; var s = n.domain || this.defaults.domain; s = s? “; domain =” + s: “”?
    ; var u = n.secure || this.defaults.secure “; secure”:? “”; document.cookie = i.escape (t) + “=” + i.escape (e) + a + r + s
    ? + u} return this}, t.remove = function (t) {t = i.isArray (t) t: i.toArray (arguments); for (var e = 0, n = t.length; n> e
    ; e ++) this.set (t [e], “”, – 1); return this}, t.empty = function () {return this.remove (i.getKeys (this.all ()))}, t
    .get = function (t, e) {e = e || void 0; var n = this.all (); if (i.isArray (t)) {for (var o = {}, a = 0, l
    = t.length; l> a; a ++) {var r = t [a]; o [r] = i.retrieve (n [r], e)} return o} return i.retrieve (n [t],
    e)}, t.all = function () {if ( “” === document.cookie) return {}; for (var t = document.cookie.split ( “;”), i = {}, e =
    0, n = t.length; n> e; e ++) {var o, a, l = t [e] .split ( “=”); try {o = decodeURIComponent (l [0])} catch (r)
    {o = l [0]} try {a = decodeURIComponent (l [1])} catch (r) {a = l [1]} i [o] = a} return i}, t.enabled = function ()
    {if (navigator.cookieEnabled) return 0;! var i = “_” === t.set ( “_”, “_”) get ( “_”);. return t.remove ( “_”),
    i}, t} (), l = {};. l.isTransitionSupport = function () {var t = document.createElement ( “p”) style, i = “transition”; if ( “string” == typeof t
    [i]) return 0;! var e = [ “Moz”, “webkit”, “Webkit”, “O”, “ms”]; i = i.charAt (0) .toUpperCase () + i.substr (
    1); for (var n = 0, o = e.length; o> n; n + = 1) if ( “string” == typeof t [e [n] + i]) return 0;!! return 1}
    , l.isBorderRadiusSupport = “string” == typeof document.createElement ( “p”) style.borderRadius, l.isIe6orLower = function () {var t = document.createElement ( “div”);. return t.innerHTML = ”
    “, !! t.getElementsByTagName (” i “) length};. var r, s = function (t, i) {for (var e = 0, n =” “, o = 0;? o128 e + = 2
    : e ++, n + = t.charAt (o), e> = i) return n; return n}, u = function (t, i) {var e, n, o, a, l, r, s = d (
    function () {l = a = 1!}, i); return function () {e = this, n = arguments; var u = function () {o = null, l && (r = t.apply (e, n
    ?!!)), s ()}; return o || (o = setTimeout (u, i)), a l = 0: (a = 0, r = t.apply (e, n)), s (
    ), r}}, d = function (t, i, e) {var n, o; return function () {var a = this, l = arguments, r = function () {n = null, e || (
    o = t.apply (a, l))}, s = e && n;! return clearTimeout (n), n = setTimeout (r, i), s && (o = t.apply (a, l)), o}
    }, c = function () { “on” === window.related_video_debug && window.console && console.log ( “[related_video_log]”, arguments)};? window.addEventListener && window.localStorage && window.JSON (document.domain = “qq.com”
    , r = function (t) {this.id = this._getId (), this._init (t), this._origin = this._getOrigin (t), this._callbacks = {_ get: {}, _ set: {}
    , _del: {}}, this._bindEvent ()}, r.prototype._getId = function () {return id = 0, function () {return ++ id}} (), r.prototype._init = function (
    t) {var i = this, e = document.createElement ( “iframe”); e.style.display = “none”, e.src = t, document.body.appendChild (e), this._hub = e.
    contentWindow, e.onload = function () {i.load ()}}, r.prototype.load = function () {}, r.prototype._getOrigin = function (t) {var i, e; return i = document
    .createElement ( “a”), i.href = t, e = i.protocol + “//” + i.host}, r.prototype._parseMessage = function (t, i, e) {return JSON.stringify ({
    method: t, key: i, value: e})}, r.prototype._bindEvent = function () {var t = this; window.addEventListener window.addEventListener ( “message”, function (i?) {var e =
    JSON.parse (i.data), n = e.error, o = e.result && JSON.parse (e.result) || null; try {t._callbacks [ “_” + e.method] [e.key]
    (n, o)} catch (a) {console.log (a)}} ,! 1): “”}, r.prototype.get = function (t, i) {this._hub.postMessage (this._parseMessage
    ( “get”, t), this._origin), this._callbacks._get [t] = i}, r.prototype.set = function (t, i, e) {this._hub.postMessage (this._parseMessage (
    “set”, t, i), this._origin), this._callbacks._set [t] = e}, r.prototype.del = function (t, i) {this._hub.postMessage (this._parseMessage ( ”
    del “, t), this._origin), this._callbacks._del [t] = i}): r = function () {this.set = this.get = this.del = this.load = function () {
    }}, i = {getScript: e, loadJquery: n, loadTvp: o, cookie: a, browser: l, cutstr2: s, throttle: u, debounce: d, debug_log: c, localqq: new r ( “http:
    //www.qq.com/public/final12/localStorageqq.htm”)},t.utils=i}(window.dc_related_video),function(t){var i = {}, e = function (i, e)
    {var n = t.libs.jQuery; return e = e || n.noop, “string” = typeof i void e (null): void n.ajax ({method: “GET”, url: “http!?
    : //data.video.qq.com/fcgi-bin/data “, data: {tid:” 25 “, idlist: i, appid:” 10001009 “, appkey:” c5a3e1529a7ba805 “, otype:” json “},
    dataType: “jsonp”, cache: 0, scriptCharset: “utf-8”}) done (function (t) {if return void e (null); var i = []!. (t || t.errorno!)
    , o = t.results [0] .fields, a = o.c_vids || o.c_vclips || []; n.each (a, function (t, e) {i.push ({vid: e.c_vid
    , title: e.c_title, pic: e.c_pic_160_90, url:. e.c_play_url})}), e (i)}) fail (function () {e (null)})}, n = function (i,
    e, n) {var o = t.libs.jQuery; return n = n || o.noop, e (i = i || “”, void o.ajax ({method: “? GET”, url: ”
    http://like.video.qq.com/fcgi-bin/like”,data:{msgtype:”122″,uin:i,id:e,playright:”2″,pidx:”0″,size:
    !.! “11”, otype: “json”, tablist: “9”}, dataType: “jsonp”, cache: 0, scriptCharset: “utf-8”}) done (function (t) {if (t |
    | t.errmsg || t.tablist) return void n (null); var i = []; o.each (t.tablist [0] .cover_info, function (t, e)! {i.push ({vid
    : e.id, title: e.title, pic: e.picurl, url: e.playurl})}), n (i)}) fail (function () {n (null)})):. void n
    (null)}, o = t.utils.cookie, a = {_ configName: “autoplay_cookie”, _ config: null, _set: function (i) {if (this._config = t.config [this._configName], window.
    localStorage) {var e = {val: i, time: (new Date) .getTime ()}; t.utils.localqq.set (this._config.key, e, function (t, i) {})} o
    .set (this._config.key, i, {expires: this._config.expires, domain: this._config.domain, path: this._config.path})}, get: function () {this._config = t
    .config [this._configName]; var i = o.get (this._config.key); return i i:?? t.sign.qqcomstore t.sign.qqcomstore: i}, on: function () {this.
    _set ( “1”)}, off: function () {this._set ( “0”)}}, l = {_ configName: “playing_cookie”, _ config: null, _set: function (i) {this._config = t
    .config [this._configName], o.set (this._config.key, i, {expires: this._config.expires (), domain: this._config.domain, path: this._config.path})},
    get: function () {return this._config = t.config [this._configName], o.get (this._config.key)}, on: function () {this._set ( “1”)}, off:
    function () {this._set ( “0”)}}, r = {_ configName: “mini_unmute”, _ config: null, _set: function (i) {this._config = t.config [this._configName], o.
    set (this._config.key, i, {expires: this._config.expires, domain: this._config.domain, path: this._config.path})}, get: function () {return this._config = t
    .config [this._configName], o.get (this._config.key)}, on: function () {this._set ( “1”)}, off: function () {this._set ( “0”)
    }}, s = {on: function () {window.dc_playing_sign || (window.dc_playing_sign = {}), window.dc_playing_sign [t.modName] = 0}, off:! function () {window.dc_playing_sign ||
    (window.dc_playing_sign = {}), window.dc_playing_sign [t.modName] = 1}, isAnyonePlaying:! function () {if (window.dc_playing_sign) {for (var i in window.dc_playing_sign) if (i ==!
    t.modName && window.dc_playing_sign.hasOwnProperty (i) && window.dc_playing_sign [i]) return 0; return 1} return 1}}, u = {boss2619:! function (i, e) {var n = t.libs!!.
    jQuery, o = n.param ({BossId: “2619”, CheckSum: “1312852225”, sIp: “”, iQQ: t.userinfo.qq || “”, sOp: i || “”, sDomain: window.
    location.hostname || “”, sUrl: window.location.href || “”, sRef: window.document.referrer || “”, vid: e || “”, _ dc: “” + Math.random ()
    }); (new Image) .src = “http://btrace.qq.com/kvcollect?” + o}}; i = {getVideoListByCoverId: e, getLikeVideoList: n, autoPlaySign: a, playingSign: l, playingGlobalSign:
    s, miniUnMuteSign: r, trace: u}, t.fn = i} (window.dc_related_video), function (t) {var i = {}, e = 1; i.getPlayerSize = function () {return e!?
    {width:. t.dom $ player_mod.width (), height: t.dom $ player_mod.height ().}:. void 0}, i.setPlayerModId = function (i) {t.dom $ player_mod.attr (
    “id”, i)}, i.setTitle = function (i, e) {return t.dom $ title.html (i) .attr ( “href”, e)};. var n = function () {var
    i = “enabled”, e = function () {t.dom $ autoplay_sw.attr ( “bosszone”, function () {return o () “bofang_button_close”:? “bofang_button_open”}).}, n = function (n
    ) {. t.dom $ autoplay_sw [n “addClass”:? “removeClass”] (i), e ()}, o = function () {return t.dom $ autoplay_sw.hasClass (i).}, a =
    . function (n) {var a = t.dom $ autoplay_sw; a.on ( “click”, function () {a.toggleClass (i), “function” == typeof n && n.call (null, o ())
    , e ()})}; return {bind: a, setStatus: n, getStatus: o, updateBosszone: e}} (); i.autoPlaySW = n; var o = function () {var i, e, n,
    o, a, l, r = function () {p (), t.dom. $ playlist_next.on ( “click”, function () {c ( “forward”)}), t.dom. $ playlist_prev.on
    ( “click”, function () {c ( “backward”)}), t.dom. $ playlist_scol.on ( “scroll”, t.utils.throttle (function () {var e = t.dom. $ playlist_scol
    .scrollLeft (), n = “disabled”; 0 === e || e === a || 0> = a (0 === e && t.dom $ playlist_prev.addClass (n), (e =?.
    == a || 0> = a) && t.dom $ playlist_next.addClass (n)):..! t.dom $ playlist_ctrl.removeClass (n), – 1 == navigator.appVersion.indexOf ( “MSIE 7.
    “) && i.css (” visibility “,” inherit “). css (” visibility “,” visible “)}, 50)), t.dom. $ playlist_scol.trigger (” scroll “)}, s = function (
    i) {t.dom $ playlist_scol.stop () animate ({scrollLeft:. parseInt (i, 10).}, 500)}, u = function (o) {if ((0> o || o> e!
    . -1)) {var a = t.dom $ playlist_scol; $ item = i.filter (. “: eq (” + o + “)”), s (a.scrollLeft () + $ item.position () left
    -a.width () / 2 + n / 2), l = o}}, d = function (t) {var e = “current”; i.find ( “.> a” + e) ​​.removeClass (e
    ), i.filter… ( “: eq (” + t + “)”) find ( “> a”) addClass (e)}, c = function (i) {var e, o = t.dom $ playlist_scol
    , l = o.scrollLeft (), r = Math.round (.7 * o.width ()); “forward” === i e = l + r:? “backward” === i && (e = lr
    ?), n> e e = 0: e> a-n && (e = a), s (e)}, p = function () {i = t.dom $ playlist_list.find ( “> li”),.
    e = i.length, n = i.filter.: (! 0). ( “eq (0)”) outerWidth, o = t.dom $ playlist_scol.width () / n, t.dom $ playlist_list.css.
    ( “width”, e * n), a = t.dom $ playlist_list.outerWidth -t.dom $ playlist_scol.width ()}; return {init. (0!):. r, setCurrentToIdx: d, scrollToItemIdx: u
    , forward: function () {c ( “forward”)}, backward: function () {c ( “backward”)}, hide: function () {return t.dom $ playlist_node.slideUp (300).}, update
    : p}} (); i.playlist = o; var a = function () {! var i, e = 1, n = function () {var i = t.libs.jQuery, e = {}; e.
    .. top = t.dom $ root.offset () top, e.btm = e.top + t.dom $ root.height (); var n = {height:. i (window) .height (), scrollTop
    : i (window) .scrollTop ()}, o = e.top> = n.scrollTop && n.scrollTop + n.height> = e.top, a = e.btm> = n.scrollTop && n.scrollTop + n.height>
    = e.btm, l = e.top<=n.scrollTop&&n.scrollTop+n.height0) {var n = e.offset (), o = e.width (); return 2 * n.left + o === i (window) .width () o?
    !: 1} return 1}, a = t.utils.throttle (function () {var a = t.libs.jQuery, l = e 0: n (); if ((0 ===!?!!!
    i &&! 0 === l ||! 1 === i &&! 1 === l)) {if (t.dom. $ player_wrap.css ( “visibility”, “hidden”). toggleClass ( “rv-player
    -mini “!., l), l) t.dom $ player_wrap.css ({” margin-left “:” “, left:” “}!), void 0 == t.fn.miniUnMuteSign.get ()
    || t.sign.automute || t.player.setFlashVolume (80);. else {if (window.ARTICLE_INFO && 1 === window.ARTICLE_INFO.isUnique) t.dom $ player_wrap.addClass ( “rv-player-mini-
    sp1 “); else {var r = o (); if (r) {var s, u, d = t.dom $ player_wrap.width (), c = (a (window.) .width () – r)
    /2-10>=d;c?(s=0-r/2-t.dom.$player_wrap.width()-10,u=”50%”):(s=0,u=0),
    t.dom $ player_wrap.css ({ “margin-left”: s, left: u}).!}} “1” == t.fn.miniUnMuteSign.get () && t.player.setFlashVolume (0)} t
    .player.resizePlayer (), t.dom. $ player_wrap.css ( “visibility”, “visible”), i = l}}, 100), l = function () {if (! t.utils.browser.isIe6orLower
    ()) {var i = t.libs.jQuery; i (window) .scroll (a), i (window) .resize (a), t.dom $ player_mini_ctrl.on ( “click”, “a [data.
    -action = close] “, function (i) {i.preventDefault (), e =! 0, a (), t.player && t.player.tvp_player_obj && t.player.tvp_player_obj.pause && t.player.tvp_player_obj.pause ()})
    , t.dom. $ player_mini_ctrl.on ( “click”, “a [data-action = resize]”, function (i) {i.preventDefault (), t.dom. $ player_wrap.toggleClass ( “rv-player-
    mini-big “), t.player.resizePlayer ()});. var n = t.dom $ player_mini_ctrl.find (” a [data-action = mute] “), o = function () {var i = t
    .player.getFlashVolume (); “number” == typeof i n.removeClass ( “mute-off mute-on”) addClass?. (0 === i “mute-on”:? “mute-off”):
    n.hide ()}; o (), n.click (function () {var i = 0 === t.player.getFlashVolume (); t.player.setFlashVolume (i 80:?! 0, 0)}
    ), t.player.bind ( “onvolumechange”, function () {o (), t.sign.vol_change_by_prog || (t.player.getFlashVolume ()> 0 t.fn.miniUnMuteSign.on ():? t.
    fn.miniUnMuteSign.off ())})}}; return {detectVisible: n, init: l}} (); i.scrollPlay = a, i.init = function () {var i = t.libs.jQuery;
    t.dom. $ root = i ( “. rv-js-root”), t.dom. $ title = t.dom. $ root.find ( “. rv-title a”), t.dom. $ autoplay_sw
    = t.dom. $ root.find ( “. rv-js-autoplay”), t.dom. $ player_wrap = t.dom. $ root.find ( “. rv-player-wrap”), t.dom.
    $ player_mod = t.dom. $ player_wrap.find ( “. rv-player-mod”), t.dom. $ player_mini_ctrl = t.dom. $ player_wrap.find ( “. rv-player-mini-ctrl”),
    t.dom. $ playlist_node = t.dom. $ root.find ( “. rv-playlist”), t.dom. $ playlist_scol = t.dom. $ playlist_node.find ( “. rv-playlist-scroller”),
    t.dom. $ playlist_list = t.dom. $ playlist_node.find ( “ol.rv-playlist-list”), t.dom. $ playlist_ctrl = t.dom. $ playlist_node.find ( “. rv-playlist-ctrl
    . a “..), t.dom $ playlist_prev = t.dom $ playlist_ctrl.filter (” prev “..), t.dom $ playlist_next = t.dom $ playlist_ctrl.filter (” next “);. var n
    = [ “nba”];. window.ARTICLE_INFO && ~ i.inArray (window.ARTICLE_INFO.sub_nav, n) && (t.dom $ root.addClass ( “rv-adjust-wide-article”), i (window).
    resize (t.utils.throttle (function () {t.player && t.player.resizePlayer && t.player.resizePlayer ()}, 50))), e =! 0}, t.ui = i} (window.dc_related_video),
    function (t) {var i, e, n = {}, o = {}, a = {}, l = function () {var t = function (t) {return function () {for (var i = 0
    .; i .tenvideo_player “) css ({width: i, height: n})}}, t.player = n} (window.dc_related_video), function (t) {function i (i) {function e () {
    var t = o (this) .scrollTop (), i = o offset () top, e = o (window) .height () ( “rv-root-v2.”);.. return t + e-406>
    ! = i && i + 518> t} function n () {e () && r && (! t.utils.loadTvp (l), r = 0)} var o = i;. t.libs $ = t.libs.jQuery
    = i, t.utils.debug_log (. “jquery version is”, t.libs $ () jquery.), t.userinfo = {qq: t.utils.cookie.get ( “o_cookie”) || null},
    t.sign.autoplay = function () {return window.preventAutoPlay === 0 1:!?!! 0 === t.fn.playingGlobalSign.isAnyonePlaying () ?! 1: “0” === t.fn
    .autoPlaySign.get () ?! 1:! (! “1” === t.fn.playingSign.get () && / \ bQQBrowser / i.test (window.navigator.userAgent))} (), t.
    utils.debug_log ( “auto play sign:”, t.sign.autoplay), t.ui.init (); var a = function (i) {if (! i == t.modName && t.player.tvp_player_obj) if (
    t.sign.autoplay =! 1, t.utils.debug_log ( “tring to pause by event ….”), t.sign.playstatus && “play”! == t.sign.playstatus) if ( “ad”
    === t.sign.playstatus) {t.utils.debug_log ( “paused (stopvideo) by event”);. try {t.player.tvp_player_obj.getPlayer () stopVideo ()} catch (e) {}} else
    {t.utils.debug_log ( “paused by event”); try {t.player.tvp_player_obj.pause ()} catch (e) {}}? else “tostart” == i t.player.tvp_player_obj.getPlayer ()
    .stopVideo () 🙁 t.utils.debug_log ( “will stop after __addlstart or playing”), t.sign.pauseWhenPlay = 0)}, l = function (i) {t.libs.tvp = i;! var n
    = “related_video_info”; if (!! window [n] || window [n] .vid) return void t.utils.debug_log ( “Error:. related_video_info not found”); t.vinfo = window [n], t
    .sign.automute = function () {return !! window.isRelvideoMute} (), t.utils.debug_log ( “auto mute sign:”, t.sign.automute); var l = “tvp-mod-player-”
    + t.vinfo.vid; t.ui.setPlayerModId (l), t.libs $ (window) .on (. “video: pause”, function (i, e) {t.utils.debug_log ( “received custom event
    from “, e), a (e)}), t.config.tvp_player = {modId: l, autoplay: t.sign.autoplay, loadingadAutoplay:!?! window.preventAutoPlay === 0 1: t.sign.
    autoplay, vodFlashSkin: “http://imgcache.qq.com/minivideo_v1/vd/res/skins/TencentPlayerMiniSkin.swf”, pic: t.sign.autoplay “?”: t.vinfo.pic, flashWmode: “transparent”
    , vodFlashExtVars: {ptag: window.TEN_VIDEO_PTAG || “”, clientbar: 0}, plugins: {AppBanner:! 1, AppRecommend:! 1, AppFollow:! 1}}, t.player.playByVid (t.vinfo.vid
    ), t.ui.setTitle (t.vinfo.title, t.vinfo.url), t.sign.first_trace_reported = 1, t.player.bind (t.sign.autoplay “onplay”:!? “onplaying”,
    function () {t.sign.first_trace_reported || t.fn.trace.boss2619 (t.sign.autoplay “first_auto”:? “first_click”, t.vinfo.vid), t.sign.first_trace_reported = 0!})
    ; var r = 1;! t.player.bind ( “onplaying”, function () {! r || window.v_nomini || t.ui.scrollPlay.init (), r = 0}), t.videos =
    []; var s = null, u = function (i) {i || t.ui.playlist.hide (), s && clearTimeout (s), t.videos.push (t.vinfo), o.each (i,
    function (i, e) {e.vid == t.vinfo.vid && t.videos.push (e)!}), t.utils.debug_log (t.videos); var n = “”; o.each (t
    .videos, function (i, e) {e.title.replace (/ [^ \ x00- \ xff] / gi, “**”). length> 40? e.stitle = t.utils.cutstr2 (e.
    title, 40) + “…”: e.stitle = e.title, n + = “

  1. “, n + = “”, n + = ““, n + = “”, n + = “” + e.stitle +
    “, n + = “”, n + = “”, n + = “
  2. “}), t.dom $ playlist_list.html (n), t.ui.playlist.init ();. var a = function (i
    ?) {if (i) {var e, n; return o.each (t.videos, function (t, o) {return o.vid === i (e = o, n = t, 1!):
    void 0}), e && (e.idx = n), e}}, l = function (i) {if (! (0> i || i> t.videos.length-1)) {var e = t
    .videos [i]; t.player.playByVid (e.vid), t.ui.playlist.setCurrentToIdx (i), t.ui.playlist.scrollToItemIdx (i), t.ui.setTitle (e.title, e
    .url)}}; t.dom $ playlist_list.on ( “click”, “a [data-vid]”, function (i) {i.preventDefault ();. var e = o (this) .attr ( ”
    data-vid “), n = a (e); l (n.idx), t.fn.trace.boss2619 (” user_click “, e)}), t.player.bind (” ongetnext “, function (i
    ) {t.utils.debug_log ( “event: ongetnext”); var n = a (i), o = n.idx + 1, r = e (); o <t.videos.length && r && (l (o),
    t.fn.trace.boss2619 ( "auto_next", i))})}; t.vinfo.cid && "null" == t.vinfo.cid t.fn.getVideoListByCoverId (t.vinfo.cid, u)!?
    : t.fn.getLikeVideoList (t.userinfo.qq, t.vinfo.vid, u), s = setTimeout (function () {t.ui.playlist.hide ()}, 5e3), o (window) .unload
    (function () {t.fn.playingSign.off ()})}; t.ui.autoPlaySW.setStatus (t.sign.autoplay), t.ui.autoPlaySW.bind (function (i) {t.fn.
    autoPlaySign [? i "on": "off"] (), r && (i (t.libs $ (window) .trigger (?. "video: pause", t.modName), t.fn.playingSign.on (
    ), t.fn.playingGlobalSign.on (), t.player.tvp_player_obj.play ()):! a ( "tostart"))}); var r = 1; n (), o (window) .scroll (
    function (t) {n ()})} if (t.libs = t.libs || {}, t.utils.cookie.get (t.config.autoplay_cookie.key)) t.utils.loadJquery (i)
    ; else if (window.addEventListener && window.localStorage && window.JSON) {var e = (new Date) .getTime (); t.utils.localqq.load = function () {t.utils.localqq.get (t.config.autoplay_cookie
    .key, function (n, o) {var o = JSON.parse (o); if (o && o.time) {var a = (new Date) .getTime () – o.time, l = a / 864e5; l
    <t.config.autoplay_cookie.expires && (t.sign.qqcomstore = o.val)} t.utils.debug_log ( "\ u7a7f \ u900f \ u65f6 \ u95f4", (new Date) .getTime () – e, "ns
    .sign.qqcomstore ", t.sign.qqcomstore), t.utils.loadJquery (i)})}} else t.utils.loadJquery (i)} (window.dc_related_video);

    test aircraft from the
    look, shape like a javelin thrower, the tail is used in Norway Andoya rocket-propelled test in Australia’s largest terrestrial field tests conducted

    Tencent space According to foreign media reports, NASA and Australian researchers are testing a

    Article By :