function BigInteger ( e , t , n ) { null != e && ( "number" == typeof e ? this . fromNumber ( e , t , n ) : null == t && "string" != typeof e ? this . fromString ( e , 256 ) : this . fromString ( e , t ) ) } function nbi ( ) { return new BigInteger ( null ) } function am1 ( e , t , n , i , a , r ) { for ( ; -- r >= 0 ; ) { var o = t * this [ e ++ ] + n [ i ] + a ; a = Math . floor ( o / 67108864 ) , n [ i ++ ] = 67108863 & o } return a } function am2 ( e , t , n , i , a , r ) { for ( var o = 32767 & t , s = t >> 15 ; -- r >= 0 ; ) { var l = 32767 & this [ e ] , c = this [ e ++ ] >> 15 , d = s * l + c * o ; l = o * l + ( ( 32767 & d ) << 15 ) + n [ i ] + ( 1073741823 & a ) , a = ( l >>> 30 ) + ( d >>> 15 ) + s * c + ( a >>> 30 ) , n [ i ++ ] = 1073741823 & l } return a } function am3 ( e , t , n , i , a , r ) { for ( var o = 16383 & t , s = t >> 14 ; -- r >= 0 ; ) { var l = 16383 & this [ e ] , c = this [ e ++ ] >> 14 , d = s * l + c * o ; l = o * l + ( ( 16383 & d ) << 14 ) + n [ i ] + a , a = ( l >> 28 ) + ( d >> 14 ) + s * c , n [ i ++ ] = 268435455 & l } return a } function int2char ( e ) { return BI _RM . charAt ( e ) } function intAt ( e , t ) { var n = BI _RC [ e . charCodeAt ( t ) ] ; return null == n ? - 1 : n } function bnpCopyTo ( e ) { for ( var t = this . t - 1 ; t >= 0 ; -- t ) e [ t ] = this [ t ] ; e . t = this . t , e . s = this . s } function bnpFromInt ( e ) { this . t = 1 , this . s = e < 0 ? - 1 : 0 , e > 0 ? this [ 0 ] = e : e < - 1 ? this [ 0 ] = e + this . DV : this . t = 0 } function nbv ( e ) { var t = nbi ( ) ; return t . fromInt ( e ) , t } function bnpFromString ( e , t , n ) { var i ; if ( 16 == t ) i = 4 ; else if ( 8 == t ) i = 3 ; else if ( 256 == t ) i = 8 ; else if ( 2 == t ) i = 1 ; else if ( 32 == t ) i = 5 ; else { if ( 4 != t ) return void this . fromRadix ( e , t ) ; i = 2 } this . t = 0 , this . s = 0 ; for ( var a = e . length , r = ! 1 , o = 0 ; -- a >= 0 ; ) { var s = 8 == i ? 255 & e [ a ] : intAt ( e , a ) ; s < 0 ? "-" == e . charAt ( a ) && ( r = ! 0 ) : ( r = ! 1 , 0 == o ? this [ this . t ++ ] = s : o + i > this . DB ? ( this [ this . t - 1 ] |= ( s & ( 1 << this . DB - o ) - 1 ) << o , this [ this . t ++ ] = s >> this . DB - o ) : this [ this . t - 1 ] |= s << o , o += i , o >= this . DB && ( o -= this . DB ) ) } 8 == i && 0 != ( 128 & e [ 0 ] ) && n && ( this . s = - 1 , o > 0 && ( this [ this . t - 1 ] |= ( 1 << this . DB - o ) - 1 << o ) ) , this . clamp ( ) , r && BigInteger . ZERO . subTo ( this , this ) } function bnpClamp ( ) { for ( var e = this . s & this . DM ; this . t > 0 && this [ this . t - 1 ] == e ; ) -- this . t } function bnToString ( e ) { if ( this . s < 0 ) return "-" + this . negate ( ) . toString ( e ) ; var t ; if ( 16 == e ) t = 4 ; else if ( 8 == e ) t = 3 ; else if ( 2 == e ) t = 1 ; else if ( 32 == e ) t = 5 ; else { if ( 4 != e ) return this . toRadix ( e ) ; t = 2 } var n , i = ( 1 << t ) - 1 , a = ! 1 , r = "" , o = this . t , s = this . DB - o * this . DB % t ; if ( o -- > 0 ) for ( s < this . DB && ( n = this [ o ] >> s ) > 0 && ( a = ! 0 , r = int2char ( n ) ) ; o >= 0 ; ) s < t ? ( n = ( this [ o ] & ( 1 << s ) - 1 ) << t - s , n |= this [ -- o ] >> ( s += this . DB - t ) ) : ( n = this [ o ] >> ( s -= t ) & i , s <= 0 && ( s += this . DB , -- o ) ) , n > 0 && ( a = ! 0 ) , a && ( r += int2char ( n ) ) ; return a ? r : "0" } function bnNegate ( ) { var e = nbi ( ) ; return BigInteger . ZERO . subTo ( this , e ) , e } function bnAbs ( ) { return this . s < 0 ? this . negate ( ) : this } function bnCompareTo ( e ) { var t = this . s - e . s ; if ( 0 != t ) return t ; var n = this . t ; if ( t = n - e . t , 0 != t ) return this . s < 0 ? - t : t ; for ( ; -- n >= 0 ; ) if ( 0 != ( t = this [ n ] - e [ n ] ) ) return t ; return 0 } function nbits ( e ) { var t , n = 1 ; return 0 != ( t = e >>> 16 ) && ( e = t , n += 16 ) , 0 != ( t = e >> 8 ) && ( e = t , n += 8 ) , 0 != ( t = e >> 4 ) && ( e = t , n += 4 ) , 0 != ( t = e >> 2 ) && ( e = t , n += 2 ) , 0 != ( t = e >> 1 ) && ( e = t , n += 1 ) , n } function bnBitLength ( ) { return this . t <= 0 ? 0 : this . DB * ( this . t - 1 ) + nbits ( this [ this . t - 1 ] ^ this . s & this . DM ) } function bnpDLShiftTo ( e , t ) { var n ; for ( n = this . t - 1 ; n >= 0 ; -- n ) t [ n + e ] = this [ n ] ; for ( n = e - 1 ; n >= 0 ; -- n ) t [ n ] = 0 ; t . t = this . t + e , t . s = this . s } function bnpDRShiftTo ( e , t ) { for ( var n = e ; n < this . t ; ++ n ) t [ n - e ] = this [ n ] ; t . t = Math . max ( this . t - e , 0 ) , t . s = this . s } function bnpLShiftTo ( e , t ) { var n , i = e % this . DB , a = this . DB - i , r = ( 1 << a ) - 1 , o = Math . floor ( e / this . DB ) , s = this . s << i & this . DM ; for ( n = this . t - 1 ; n >= 0 ; -- n ) t [ n + o + 1 ] = this [ n ] >> a | s , s = ( this [ n ] & r ) << i ; for ( n = o - 1 ; n >= 0 ; -- n ) t [ n ] = 0 ; t [ o ] = s , t . t = this . t + o + 1 , t . s = this . s , t . clamp ( ) } function bnpRShiftTo ( e , t ) { t . s = this . s ; var n = Math . floor ( e / this . DB ) ; if ( n >= this . t ) return void ( t . t = 0 ) ; var i = e % this . DB , a = this . DB - i , r = ( 1 << i ) - 1 ; t [ 0 ] = this [ n ] >> i ; for ( var o = n + 1 ; o < this . t ; ++ o ) t [ o - n - 1 ] |= ( this [ o ] & r ) << a , t [ o - n ] = this [ o ] >> i ; i > 0 && ( t [ this . t - n - 1 ] |= ( this . s & r ) << a ) , t . t = this . t - n , t . clamp ( ) } function bnpSubTo ( e , t ) { for ( var n = 0 , i = 0 , a = Math . min ( e . t , this . t ) ; n < a ; ) i += this [ n ] - e [ n ] , t [ n ++ ] = i & this . DM , i >>= this . DB ; if ( e . t < this . t ) { for ( i -= e . s ; n < this . t ; ) i += this [ n ] , t [ n ++ ] = i & this . DM , i >>= this . DB ; i += this . s } else { for ( i += this . s ; n < e . t ; ) i -= e [ n ] , t [ n ++ ] = i & this . DM , i >>= this . DB ; i -= e . s } t . s = i < 0 ? - 1 : 0 , i < - 1 ? t [ n ++ ] = this . DV + i : i > 0 && ( t [ n ++ ] = i ) , t . t = n , t . clamp ( ) } function bnpMultiplyTo ( e , t ) { var n = this . abs ( ) , i = e . abs ( ) , a = n . t ; for ( t . t = a + i . t ; -- a >= 0 ; ) t [ a ] = 0 ; for ( a = 0 ; a < i . t ; ++ a ) t [ a + n . t ] = n . am ( 0 , i [ a ] , t , a , 0 , n . t ) ; t . s = 0 , t . clamp ( ) , this . s != e . s && BigInteger . ZERO . subTo ( t , t ) } function bnpSquareTo ( e ) { for ( var t = this . abs ( ) , n = e . t = 2 * t . t ; -- n >= 0 ; ) e [ n ] = 0 ; for ( n = 0 ; n < t . t - 1 ; ++ n ) { var i = t .
return ! 1 } function cancelEvent ( e ) { return e = e || window . event , e && ( e = e . originalEvent || e , e . stopPropagation && e . stopPropagation ( ) , e . preventDefault && e . preventDefault ( ) , e . returnValue = ! 1 , e . cancelBubble = ! 0 ) , ! 1 } function hasOnclick ( e ) { if ( e . onclick || e . getAttribute ( "ng-click" ) ) return ! 0 ; var t = $ . _data ( e , "events" ) ; return ! ( ! t || ! t . click && ! t . mousedown ) } function getScrollWidth ( ) { var e = $ ( "<div>" ) . css ( { position : "absolute" , width : 100 , height : 100 , overflow : "scroll" , top : - 9999 } ) . appendTo ( $ ( document . body ) ) , t = e [ 0 ] . offsetWidth - e [ 0 ] . clientWidth ; return e . remove ( ) , t } function onCtrlEnter ( e , t ) { $ ( e ) . on ( "keydown" , function ( e ) { if ( 13 == e . keyCode && ( e . ctrlKey || e . metaKey ) ) return t ( ) , cancelEvent ( e ) } ) } function setFieldSelection ( e , t , n ) { e = $ ( e ) [ 0 ] ; try { if ( e . focus ( ) , void 0 !== t && t !== ! 1 || ( t = e . value . length ) , void 0 !== n && n !== ! 1 || ( n = t ) , e . createTextRange ) { var i = e . createTextRange ( ) ; i . collapse ( ! 0 ) , i . moveEnd ( "character" , n ) , i . moveStart ( "character" , t ) , i . select ( ) } else e . setSelectionRange && e . setSelectionRange ( t , n ) } catch ( a ) { } } function getFieldSelection ( e ) { if ( e . selectionStart ) return e . selectionStart ; if ( ! document . selection ) return 0 ; var t = " " , n = document . selection . createRange ( ) , i = n . text , a = n . duplicate ( ) , r = 0 ; try { a . moveToElementText ( e ) } catch ( o ) { return 0 } return n . text = i + t , r = a . text . indexOf ( t ) , n . moveStart ( "character" , - 1 ) , n . text = "" , r } function getRichValue ( e ) { if ( ! e ) return "" ; var t = [ ] , n = [ ] ; getRichElementValue ( e , t , n ) , n . length && t . push ( n . join ( "" ) ) ; var i = t . join ( "\n" ) ; return i = i . replace ( /\u00A0/g , " " ) } function getRichValueWithCaret ( e ) { if ( ! e ) return [ ] ; var t , n , i = [ ] , a = [ ] , r = ! ! window . getSelection && window . getSelection ( ) ; if ( r && r . rangeCount ) { var o = r . getRangeAt ( 0 ) ; o . startContainer && o . startContainer == o . endContainer && o . startOffset == o . endOffset && ( t = o . startContainer , n = o . startOffset ) } getRichElementValue ( e , i , a , t , n ) , a . length && i . push ( a . join ( "" ) ) ; var s = i . join ( "\n" ) , l = s . indexOf ( " " ) ; return l != - 1 && ( s = s . substr ( 0 , l ) + s . substr ( l + 1 ) ) , s = s . replace ( /\u00A0/g , " " ) , [ s , l ] } function getRichElementValue ( e , t , n , i , a ) { if ( 3 != e . nodeType ) { if ( 1 == e . nodeType ) { var r , o = i === e , s = "DIV" == e . tagName || "P" == e . tagName ; s && n . length || "BR" == e . tagName ? ( t . push ( n . join ( "" ) ) , n . splice ( 0 , n . length ) ) : "IMG" == e . tagName && e . alt && n . push ( e . alt ) , o && ! a && n . push ( " " ) ; for ( var r = e . firstChild ; r ; ) getRichElementValue ( r , t , n , i , a ) , r = r . nextSibling ; o && a && n . push ( " " ) , s && n . length && ( t . push ( n . join ( "" ) ) , n . splice ( 0 , n . length ) ) } } else if ( i === e ) { var l = e . nodeValue ; n . push ( l . substr ( 0 , a ) + " " + l . substr ( a ) ) } else n . push ( e . nodeValue ) } function setRichFocus ( e , t , n ) { if ( e . focus ( ) , ! t || t . parentNode != e || t . nextSibling || n || ( e . removeChild ( t ) , t = null ) , window . getSelection && document . createRange ) { var i = document . createRange ( ) ; t ? i . selectNode ( t ) : i . selectNodeContents ( e ) , n || i . collapse ( ! 1 ) ; var a = window . getSelection ( ) ; a . removeAllRanges ( ) , a . addRange ( i ) } else if ( void 0 !== document . body . createTextRange ) { var r = document . body . createTextRange ( ) ; r . moveToElementText ( t || e ) , n || r . collapse ( ! 1 ) , r . select ( ) } } function getSelectedText ( ) { var e = ( window . getSelection && window . getSelection ( ) || document . getSelection && document . getSelection ( ) || document . selection && document . selection . createRange ( ) . text || "" ) . toString ( ) . replace ( /^\s+|\s+$/g , "" ) ; return e } function scrollToNode ( e , t , n ) { var i = t . offsetTop - 15 , a = t . offsetHeight + 30 , r = e . scrollTop , o = e . clientHeight ; r > i ? ( e . scrollTop = i , $ ( n ) . nanoScroller ( { flash : ! 0 } ) ) : r < i + a - o && ( e . scrollTop = i + a - o , $ ( n ) . nanoScroller ( { flash : ! 0 } ) ) } function onContentLoaded ( e ) { e = onAnimationFrameCallback ( e ) , setZeroTimeout ( e ) } function tsNow ( e ) { var t = + new Date + ( window . tsOffset || 0 ) ; return e ? Math . floor ( t / 1e3 ) : t } function safeReplaceObject ( e , t ) { for ( var n in e ) t . hasOwnProperty ( n ) || "$" == n . charAt ( 0 ) || delete e [ n ] ; for ( var n in t ) t . hasOwnProperty ( n ) && ( e [ n ] = t [ n ] ) } function listMergeSorted ( e , t ) { e = e || [ ] , t = t || [ ] ; for ( var n = angular . copy ( e ) , i = e . length ? e [ e . length - 1 ] : 4294967295 , a = 0 ; a < t . length ; a ++ ) t [ a ] < i && n . push ( t [ a ] ) ; return n } function listUniqSorted ( e ) { e = e || [ ] ; for ( var t = [ ] , n = ! 1 , i = 0 ; i < e . length ; i ++ ) e [ i ] !== n && t . push ( e [ i ] ) , n = e [ i ] ; return t } function templateUrl ( e ) { var t = { confirm _modal : "desktop" , error _modal : "desktop" , media _modal _layout : "desktop" , slider : "desktop" , reply _message : "desktop" , full _round : "desktop" , message _body : "desktop" , message _media : "desktop" , message _attach _game : "desktop" , forward
a === ! 1 ) break } else if ( s ) for ( ; o > r && ( a = t . call ( e [ r ] , r , e [ r ] ) , a !== ! 1 ) ; r ++ ) ; else for ( r in e ) if ( a = t . call ( e [ r ] , r , e [ r ] ) , a === ! 1 ) break ; return e } , trim : function ( e ) { return null == e ? "" : ( e + "" ) . replace ( re , "" ) } , makeArray : function ( e , t ) { var i = t || [ ] ; return null != e && ( n ( Object ( e ) ) ? ae . merge ( i , "string" == typeof e ? [ e ] : e ) : J . call ( i , e ) ) , i } , inArray : function ( e , t , n ) { var i ; if ( t ) { if ( Z ) return Z . call ( t , e , n ) ; for ( i = t . length , n = n ? 0 > n ? Math . max ( 0 , i + n ) : n : 0 ; i > n ; n ++ ) if ( n in t && t [ n ] === e ) return n } return - 1 } , merge : function ( e , t ) { for ( var n = + t . length , i = 0 , a = e . length ; n > i ; ) e [ a ++ ] = t [ i ++ ] ; if ( n !== n ) for ( ; void 0 !== t [ i ] ; ) e [ a ++ ] = t [ i ++ ] ; return e . length = a , e } , grep : function ( e , t , n ) { for ( var i , a = [ ] , r = 0 , o = e . length , s = ! n ; o > r ; r ++ ) i = ! t ( e [ r ] , r ) , i !== s && a . push ( e [ r ] ) ; return a } , map : function ( e , t , i ) { var a , r = 0 , o = e . length , s = n ( e ) , l = [ ] ; if ( s ) for ( ; o > r ; r ++ ) a = t ( e [ r ] , r , i ) , null != a && l . push ( a ) ; else for ( r in e ) a = t ( e [ r ] , r , i ) , null != a && l . push ( a ) ; return X . apply ( [ ] , l ) } , guid : 1 , proxy : function ( e , t ) { var n , i , a ; return "string" == typeof t && ( a = e [ t ] , t = e , e = a ) , ae . isFunction ( e ) ? ( n = Y . call ( arguments , 2 ) , i = function ( ) { return e . apply ( t || this , n . concat ( Y . call ( arguments ) ) ) } , i . guid = e . guid = e . guid || ae . guid ++ , i ) : void 0 } , now : function ( ) { return + new Date } , support : ne } ) , ae . each ( "Boolean Number String Function Array Date RegExp Object Error" . split ( " " ) , function ( e , t ) { Q [ "[object " + t + "]" ] = t . toLowerCase ( ) } ) ; var ce = function ( e ) { function t ( e , t , n , i ) { var a , r , o , s , l , c , u , f , m , h ; if ( ( t ? t . ownerDocument || t : B ) !== P && x ( t ) , t = t || P , n = n || [ ] , ! e || "string" != typeof e ) return n ; if ( 1 !== ( s = t . nodeType ) && 9 !== s ) return [ ] ; if ( R && ! i ) { if ( a = ve . exec ( e ) ) if ( o = a [ 1 ] ) { if ( 9 === s ) { if ( r = t . getElementById ( o ) , ! r || ! r . parentNode ) return n ; if ( r . id === o ) return n . push ( r ) , n } else if ( t . ownerDocument && ( r = t . ownerDocument . getElementById ( o ) ) && F ( t , r ) && r . id === o ) return n . push ( r ) , n } else { if ( a [ 2 ] ) return Q . apply ( n , t . getElementsByTagName ( e ) ) , n ; if ( ( o = a [ 3 ] ) && w . getElementsByClassName && t . getElementsByClassName ) return Q . apply ( n , t . getElementsByClassName ( o ) ) , n } if ( w . qsa && ( ! O || ! O . test ( e ) ) ) { if ( f = u = U , m = t , h = 9 === s && e , 1 === s && "object" !== t . nodeName . toLowerCase ( ) ) { for ( c = A ( e ) , ( u = t . getAttribute ( "id" ) ) ? f = u . replace ( be , "\\$&" ) : t . setAttribute ( "id" , f ) , f = "[id='" + f + "'] " , l = c . length ; l -- ; ) c [ l ] = f + p ( c [ l ] ) ; m = ye . test ( e ) && d ( t . parentNode ) || t , h = c . join ( "," ) } if ( h ) try { return Q . apply ( n , m . querySelectorAll ( h ) ) , n } catch ( g ) { } finally { u || t . removeAttribute ( "id" ) } } } return T ( e . replace ( le , "$1" ) , t , n , i ) } function n ( ) { function e ( n , i ) { return t . push ( n + " " ) > k . cacheLength && delete e [ t . shift ( ) ] , e [ n + " " ] = i } var t = [ ] ; return e } function i ( e ) { return e [ U ] = ! 0 , e } function a ( e ) { var t = P . createElement ( "div" ) ; try { return ! ! e ( t ) } catch ( n ) { return ! 1 } finally { t . parentNode && t . parentNode . removeChild ( t ) , t = null } } function r ( e , t ) { for ( var n = e . split ( "|" ) , i = e . length ; i -- ; ) k . attrHandle [ n [ i ] ] = t } function o ( e , t ) { var n = t && e , i = n && 1 === e . nodeType && 1 === t . nodeType && ( ~ t . sourceIndex || K ) - ( ~ e . sourceIndex || K ) ; if ( i ) return i ; if ( n ) for ( ; n = n . nextSibling ; ) if ( n === t ) return - 1 ; return e ? 1 : - 1 } function s ( e ) { return function ( t ) { var n = t . nodeName . toLowerCase ( ) ; return "input" === n && t . type === e } } function l ( e ) { return function ( t ) { var n = t . nodeName . toLowerCase ( ) ; return ( "input" === n || "button" === n ) && t . type === e } } function c ( e ) { return i ( function ( t ) { return t = + t , i ( function ( n , i ) { for ( var a , r = e ( [ ] , n . length , t ) , o = r . length ; o -- ; ) n [ a = r [ o ] ] && ( n [ a ] = ! ( i [ a ] = n [ a ] ) ) } ) } ) } function d ( e ) { return e && typeof e . getElementsByTagName !== G && e } function u ( ) { } function p ( e ) { for ( var t = 0 , n = e . length , i = "" ; n > t ; t ++ ) i += e [ t ] . value ; return i } function f ( e , t , n ) { var i = t . dir , a = n && "parentNode" === i , r = j ++ ; return t . first ? function ( t , n , r ) { for ( ; t = t [ i ] ; ) if ( 1 === t . nodeType || a ) return e ( t , n , r ) } : function ( t , n , o ) { var s , l , c = [ H , r ] ; if ( o ) { for ( ; t = t [ i ] ; ) if ( ( 1 === t . nodeType || a ) && e ( t , n , o ) ) return ! 0 } else for ( ; t = t [ i ] ; ) if ( 1 === t . nodeType || a ) { if ( l = t [ U ] || ( t [ U ] = { } ) , ( s = l [ i ] ) && s [ 0 ] === H && s [ 1 ] === r ) return c [ 2 ] = s [ 2 ] ; if ( l [ i ] = c , c [ 2 ] = e ( t , n , o ) ) return ! 0 } } } function m ( e ) { return e . length > 1 ? function ( t , n , i ) { for ( var a = e . length ; a -- ; ) if ( ! e [ a ] ( t , n , i ) ) return ! 1 ; return ! 0 } : e [ 0 ] } function h ( e , n , i ) { for ( var a = 0 , r = n . length ; r > a ; a ++ ) t ( e , n [ a ] , i ) ; return i } function g ( e , t , n , i , a ) { for ( var r , o = [ ] , s = 0 , l = e . length , c = null != t ; l > s ; s ++ ) ( r = e [ s ] ) && ( ! n || n ( r , i , a ) ) && ( o . push ( r ) , c && t . push ( s ) ) ; return o } function _ ( e , t , n , a , r , o ) { return a && ! a [ U ] && ( a = _ ( a ) ) , r && ! r [ U ] && ( r = _ ( r , o ) ) , i ( function ( i , o , s , l ) { v
if ( g ) { for ( n . handler && ( l = n , n = l . handler , a = l . selector ) , n . guid || ( n . guid = ae . guid ++ ) , ( o = g . events ) || ( o = g . events = { } ) , ( d = g . handle ) || ( d = g . handle = function ( e ) { return typeof ae === Me || e && ae . event . triggered === e . type ? void 0 : ae . event . dispatch . apply ( d . elem , arguments ) } , d . elem = e ) , t = ( t || "" ) . match ( ye ) || [ "" ] , s = t . length ; s -- ; ) r = Oe . exec ( t [ s ] ) || [ ] , f = h = r [ 1 ] , m = ( r [ 2 ] || "" ) . split ( "." ) . sort ( ) , f && ( c = ae . event . special [ f ] || { } , f = ( a ? c . delegateType : c . bindType ) || f , c = ae . event . special [ f ] || { } , u = ae . extend ( { type : f , origType : h , data : i , handler : n , guid : n . guid , selector : a , needsContext : a && ae . expr . match . needsContext . test ( a ) , namespace : m . join ( "." ) } , l ) , ( p = o [ f ] ) || ( p = o [ f ] = [ ] , p . delegateCount = 0 , c . setup && c . setup . call ( e , i , m , d ) !== ! 1 || ( e . addEventListener ? e . addEventListener ( f , d , ! 1 ) : e . attachEvent && e . attachEvent ( "on" + f , d ) ) ) , c . add && ( c . add . call ( e , u ) , u . handler . guid || ( u . handler . guid = n . guid ) ) , a ? p . splice ( p . delegateCount ++ , 0 , u ) : p . push ( u ) , ae . event . global [ f ] = ! 0 ) ; e = null } } , remove : function ( e , t , n , i , a ) { var r , o , s , l , c , d , u , p , f , m , h , g = ae . hasData ( e ) && ae . _data ( e ) ; if ( g && ( d = g . events ) ) { for ( t = ( t || "" ) . match ( ye ) || [ "" ] , c = t . length ; c -- ; ) if ( s = Oe . exec ( t [ c ] ) || [ ] , f = h = s [ 1 ] , m = ( s [ 2 ] || "" ) . split ( "." ) . sort ( ) , f ) { for ( u = ae . event . special [ f ] || { } , f = ( i ? u . delegateType : u . bindType ) || f , p = d [ f ] || [ ] , s = s [ 2 ] && new RegExp ( "(^|\\.)" + m . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , l = r = p . length ; r -- ; ) o = p [ r ] , ! a && h !== o . origType || n && n . guid !== o . guid || s && ! s . test ( o . namespace ) || i && i !== o . selector && ( "**" !== i || ! o . selector ) || ( p . splice ( r , 1 ) , o . selector && p . delegateCount -- , u . remove && u . remove . call ( e , o ) ) ; l && ! p . length && ( u . teardown && u . teardown . call ( e , m , g . handle ) !== ! 1 || ae . removeEvent ( e , f , g . handle ) , delete d [ f ] ) } else for ( f in d ) ae . event . remove ( e , f + t [ c ] , n , i , ! 0 ) ; ae . isEmptyObject ( d ) && ( delete g . handle , ae . _removeData ( e , "events" ) ) } } , trigger : function ( t , n , i , a ) { var r , o , s , l , c , d , u , p = [ i || me ] , f = te . call ( t , "type" ) ? t . type : t , m = te . call ( t , "namespace" ) ? t . namespace . split ( "." ) : [ ] ; if ( s = d = i = i || me , 3 !== i . nodeType && 8 !== i . nodeType && ! Re . test ( f + ae . event . triggered ) && ( f . indexOf ( "." ) >= 0 && ( m = f . split ( "." ) , f = m . shift ( ) , m . sort ( ) ) , o = f . indexOf ( ":" ) < 0 && "on" + f , t = t [ ae . expando ] ? t : new ae . Event ( f , "object" == typeof t && t ) , t . isTrigger = a ? 2 : 3 , t . namespace = m . join ( "." ) , t . namespace _re = t . namespace ? new RegExp ( "(^|\\.)" + m . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : null , t . result = void 0 , t . target || ( t . target = i ) , n = null == n ? [ t ] : ae . makeArray ( n , [ t ] ) , c = ae . event . special [ f ] || { } , a || ! c . trigger || c . trigger . apply ( i , n ) !== ! 1 ) ) { if ( ! a && ! c . noBubble && ! ae . isWindow ( i ) ) { for ( l = c . delegateType || f , Re . test ( l + f ) || ( s = s . parentNode ) ; s ; s = s . parentNode ) p . push ( s ) , d = s ; d === ( i . ownerDocument || me ) && p . push ( d . defaultView || d . parentWindow || e ) } for ( u = 0 ; ( s = p [ u ++ ] ) && ! t . isPropagationStopped ( ) ; ) t . type = u > 1 ? l : c . bindType || f , r = ( ae . _data ( s , "events" ) || { } ) [ t . type ] && ae . _data ( s , "handle" ) , r && r . apply ( s , n ) , r = o && s [ o ] , r && r . apply && ae . acceptData ( s ) && ( t . result = r . apply ( s , n ) , t . result === ! 1 && t . preventDefault ( ) ) ; if ( t . type = f , ! a && ! t . isDefaultPrevented ( ) && ( ! c . _default || c . _default . apply ( p . pop ( ) , n ) === ! 1 ) && ae . acceptData ( i ) && o && i [ f ] && ! ae . isWindow ( i ) ) { d = i [ o ] , d && ( i [ o ] = null ) , ae . event . triggered = f ; try { i [ f ] ( ) } catch ( h ) { } ae . event . triggered = void 0 , d && ( i [ o ] = d ) } return t . result } } , dispatch : function ( e ) { e = ae . event . fix ( e ) ; var t , n , i , a , r , o = [ ] , s = Y . call ( arguments ) , l = ( ae . _data ( this , "events" ) || { } ) [ e . type ] || [ ] , c = ae . event . special [ e . type ] || { } ; if ( s [ 0 ] = e , e . delegateTarget = this , ! c . preDispatch || c . preDispatch . call ( this , e ) !== ! 1 ) { for ( o = ae . event . handlers . call ( this , e , l ) , t = 0 ; ( a = o [ t ++ ] ) && ! e . isPropagationStopped ( ) ; ) for ( e . currentTarget = a . elem , r = 0 ; ( i = a . handlers [ r ++ ] ) && ! e . isImmediatePropagationStopped ( ) ; ) ( ! e . namespace _re || e . namespace _re . test ( i . namespace ) ) && ( e . handleObj = i , e . data = i . data , n = ( ( ae . event . special [ i . origType ] || { } ) . handle || i . handler ) . apply ( a . elem , s ) , void 0 !== n && ( e . result = n ) === ! 1 && ( e . preventDefault ( ) , e . stopPropagation ( ) ) ) ; return c . postDispatch && c . postDispatch . call ( this , e ) , e . result } } , handlers : function ( e , t ) { var n , i , a , r , o = [ ] , s = t . delegateCount , l = e . target ; if ( s && l . nodeType && ( ! e . button || "click" !== e . type ) ) for ( ; l != this ; l = l . parentNode || this ) if ( 1 === l . nodeType && ( l . disabled !== ! 0 || "click" !== e . type ) ) { for ( a = [ ] , r = 0 ; s > r ; r ++ ) i = t [ r ] , n = i . selector + " " , void 0 === a [ n ] && ( a [ n ] = i . needsContext ? ae ( n , this ) . index ( l ) >= 0 : ae . find ( n , this , null , [ l ] ) . length ) , a [ n ] && a . push ( i ) ; a . length && o . push ( { elem : l , handle
i . value = t += "" , "value" === n || t === e . getAttribute ( n ) ? t : void 0 } } , Mt . id = Mt . name = Mt . coords = function ( e , t , n ) { var i ; return n ? void 0 : ( i = e . getAttributeNode ( t ) ) && "" !== i . value ? i . value : null } , ae . valHooks . button = { get : function ( e , t ) { var n = e . getAttributeNode ( t ) ; return n && n . specified ? n . value : void 0 } , set : wt . set } , ae . attrHooks . contenteditable = { set : function ( e , t , n ) { wt . set ( e , "" !== t && t , n ) } } , ae . each ( [ "width" , "height" ] , function ( e , t ) { ae . attrHooks [ t ] = { set : function ( e , n ) { return "" === n ? ( e . setAttribute ( t , "auto" ) , n ) : void 0 } } } ) ) , ne . style || ( ae . attrHooks . style = { get : function ( e ) { return e . style . cssText || void 0 } , set : function ( e , t ) { return e . style . cssText = t + "" } } ) ; var Tt = /^(?:input|select|textarea|button|object)$/i , $t = /^(?:a|area)$/i ; ae . fn . extend ( { prop : function ( e , t ) { return Ee ( this , ae . prop , e , t , arguments . length > 1 ) } , removeProp : function ( e ) { return e = ae . propFix [ e ] || e , this . each ( function ( ) { try { this [ e ] = void 0 , delete this [ e ] } catch ( t ) { } } ) } } ) , ae . extend ( { propFix : { "for" : "htmlFor" , "class" : "className" } , prop : function ( e , t , n ) { var i , a , r , o = e . nodeType ; if ( e && 3 !== o && 8 !== o && 2 !== o ) return r = 1 !== o || ! ae . isXMLDoc ( e ) , r && ( t = ae . propFix [ t ] || t , a = ae . propHooks [ t ] ) , void 0 !== n ? a && "set" in a && void 0 !== ( i = a . set ( e , n , t ) ) ? i : e [ t ] = n : a && "get" in a && null !== ( i = a . get ( e , t ) ) ? i : e [ t ] } , propHooks : { tabIndex : { get : function ( e ) { var t = ae . find . attr ( e , "tabindex" ) ; return t ? parseInt ( t , 10 ) : Tt . test ( e . nodeName ) || $t . test ( e . nodeName ) && e . href ? 0 : - 1 } } } } ) , ne . hrefNormalized || ae . each ( [ "href" , "src" ] , function ( e , t ) { ae . propHooks [ t ] = { get : function ( e ) { return e . getAttribute ( t , 4 ) } } } ) , ne . optSelected || ( ae . propHooks . selected = { get : function ( e ) { var t = e . parentNode ; return t && ( t . selectedIndex , t . parentNode && t . parentNode . selectedIndex ) , null } } ) , ae . each ( [ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ] , function ( ) { ae . propFix [ this . toLowerCase ( ) ] = this } ) , ne . enctype || ( ae . propFix . enctype = "encoding" ) ; var Et = /[\t\r\n\f]/g ; ae . fn . extend ( { addClass : function ( e ) { var t , n , i , a , r , o , s = 0 , l = this . length , c = "string" == typeof e && e ; if ( ae . isFunction ( e ) ) return this . each ( function ( t ) { ae ( this ) . addClass ( e . call ( this , t , this . className ) ) } ) ; if ( c ) for ( t = ( e || "" ) . match ( ye ) || [ ] ; l > s ; s ++ ) if ( n = this [ s ] , i = 1 === n . nodeType && ( n . className ? ( " " + n . className + " " ) . replace ( Et , " " ) : " " ) ) { for ( r = 0 ; a = t [ r ++ ] ; ) i . indexOf ( " " + a + " " ) < 0 && ( i += a + " " ) ; o = ae . trim ( i ) , n . className !== o && ( n . className = o ) } return this } , removeClass : function ( e ) { var t , n , i , a , r , o , s = 0 , l = this . length , c = 0 === arguments . length || "string" == typeof e && e ; if ( ae . isFunction ( e ) ) return this . each ( function ( t ) { ae ( this ) . removeClass ( e . call ( this , t , this . className ) ) } ) ; if ( c ) for ( t = ( e || "" ) . match ( ye ) || [ ] ; l > s ; s ++ ) if ( n = this [ s ] , i = 1 === n . nodeType && ( n . className ? ( " " + n . className + " " ) . replace ( Et , " " ) : "" ) ) { for ( r = 0 ; a = t [ r ++ ] ; ) for ( ; i . indexOf ( " " + a + " " ) >= 0 ; ) i = i . replace ( " " + a + " " , " " ) ; o = e ? ae . trim ( i ) : "" , n . className !== o && ( n . className = o ) } return this } , toggleClass : function ( e , t ) { var n = typeof e ; return "boolean" == typeof t && "string" === n ? t ? this . addClass ( e ) : this . removeClass ( e ) : this . each ( ae . isFunction ( e ) ? function ( n ) { ae ( this ) . toggleClass ( e . call ( this , n , this . className , t ) , t ) } : function ( ) { if ( "string" === n ) for ( var t , i = 0 , a = ae ( this ) , r = e . match ( ye ) || [ ] ; t = r [ i ++ ] ; ) a . hasClass ( t ) ? a . removeClass ( t ) : a . addClass ( t ) ; else ( n === Me || "boolean" === n ) && ( this . className && ae . _data ( this , "__className__" , this . className ) , this . className = this . className || e === ! 1 ? "" : ae . _data ( this , "__className__" ) || "" ) } ) } , hasClass : function ( e ) { for ( var t = " " + e + " " , n = 0 , i = this . length ; i > n ; n ++ ) if ( 1 === this [ n ] . nodeType && ( " " + this [ n ] . className + " " ) . replace ( Et , " " ) . indexOf ( t ) >= 0 ) return ! 0 ; return ! 1 } } ) , ae . each ( "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu" . split ( " " ) , function ( e , t ) { ae . fn [ t ] = function ( e , n ) { return arguments . length > 0 ? this . on ( t , null , e , n ) : this . trigger ( t ) } } ) , ae . fn . extend ( { hover : function ( e , t ) { return this . mouseenter ( e ) . mouseleave ( t || e ) } , bind : function ( e , t , n ) { return this . on ( e , null , t , n ) } , unbind : function ( e , t ) { return this . off ( e , null , t ) } , delegate : function ( e , t , n , i ) { return this . on ( t , e , n , i ) } , undelegate : function ( e , t , n ) { return 1 === arguments . length ? this . off ( e , "**" ) : this . off
Config . Schema . API = { constructors : [ { id : "-1132882121" , predicate : "boolFalse" , params : [ ] , type : "Bool" } , { id : "-1720552011" , predicate : "boolTrue" , params : [ ] , type : "Bool" } , { id : "1072550713" , predicate : "true" , params : [ ] , type : "True" } , { id : "481674261" , predicate : "vector" , params : [ ] , type : "Vector t" } , { id : "-994444869" , predicate : "error" , params : [ { name : "code" , type : "int" } , { name : "text" , type : "string" } ] , type : "Error" } , { id : "1450380236" , predicate : "null" , params : [ ] , type : "Null" } , { id : "2134579434" , predicate : "inputPeerEmpty" , params : [ ] , type : "InputPeer" } , { id : "2107670217" , predicate : "inputPeerSelf" , params : [ ] , type : "InputPeer" } , { id : "396093539" , predicate : "inputPeerChat" , params : [ { name : "chat_id" , type : "int" } ] , type : "InputPeer" } , { id : "-1182234929" , predicate : "inputUserEmpty" , params : [ ] , type : "InputUser" } , { id : "-138301121" , predicate : "inputUserSelf" , params : [ ] , type : "InputUser" } , { id : "-208488460" , predicate : "inputPhoneContact" , params : [ { name : "client_id" , type : "long" } , { name : "phone" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } ] , type : "InputContact" } , { id : "-181407105" , predicate : "inputFile" , params : [ { name : "id" , type : "long" } , { name : "parts" , type : "int" } , { name : "name" , type : "string" } , { name : "md5_checksum" , type : "string" } ] , type : "InputFile" } , { id : "-1771768449" , predicate : "inputMediaEmpty" , params : [ ] , type : "InputMedia" } , { id : "792191537" , predicate : "inputMediaUploadedPhoto" , params : [ { name : "flags" , type : "#" } , { name : "file" , type : "InputFile" } , { name : "caption" , type : "string" } , { name : "stickers" , type : "flags.0?Vector<InputDocument>" } , { name : "ttl_seconds" , type : "flags.1?int" } ] , type : "InputMedia" } , { id : "-2114308294" , predicate : "inputMediaPhoto" , params : [ { name : "flags" , type : "#" } , { name : "id" , type : "InputPhoto" } , { name : "caption" , type : "string" } , { name : "ttl_seconds" , type : "flags.0?int" } ] , type : "InputMedia" } , { id : "-104578748" , predicate : "inputMediaGeoPoint" , params : [ { name : "geo_point" , type : "InputGeoPoint" } ] , type : "InputMedia" } , { id : "-1494984313" , predicate : "inputMediaContact" , params : [ { name : "phone_number" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } ] , type : "InputMedia" } , { id : "480546647" , predicate : "inputChatPhotoEmpty" , params : [ ] , type : "InputChatPhoto" } , { id : "-1837345356" , predicate : "inputChatUploadedPhoto" , params : [ { name : "file" , type : "InputFile" } ] , type : "InputChatPhoto" } , { id : "-1991004873" , predicate : "inputChatPhoto" , params : [ { name : "id" , type : "InputPhoto" } ] , type : "InputChatPhoto" } , { id : "-457104426" , predicate : "inputGeoPointEmpty" , params : [ ] , type : "InputGeoPoint" } , { id : "-206066487" , predicate : "inputGeoPoint" , params : [ { name : "lat" , type : "double" } , { name : "long" , type : "double" } ] , type : "InputGeoPoint" } , { id : "483901197" , predicate : "inputPhotoEmpty" , params : [ ] , type : "InputPhoto" } , { id : "-74070332" , predicate : "inputPhoto" , params : [ { name : "id" , type : "long" } , { name : "access_hash" , type : "long" } ] , type : "InputPhoto" } , { id : "342061462" , predicate : "inputFileLocation" , params : [ { name : "volume_id" , type : "long" } , { name : "local_id" , type : "int" } , { name : "secret" , type : "long" } ] , type : "InputFileLocation" } , { id : "1996904104" , predicate : "inputAppEvent" , params : [ { name : "time" , type : "double" } , { name : "type" , type : "string" } , { name : "peer" , type : "long" } , { name : "data" , type : "string" } ] , type : "InputAppEvent" } , { id : "-1649296275" , predicate : "peerUser" , params : [ { name : "user_id" , type : "int" } ] , type : "Peer" } , { id : "-1160714821" , predicate : "peerChat" , params : [ { name : "chat_id" , type : "int" } ] , type : "Peer" } , { id : "-1432995067" , predicate : "storage.fileUnknown" , params : [ ] , type : "storage.FileType" } , { id : "1086091090" , predicate : "storage.filePartial" , params : [ ] , type : "storage.FileType" } , { id : "8322574" , predicate : "storage.fileJpeg" , params : [ ] , type : "storage.FileType" } , { id : "-891180321" , predicate : "storage.fileGif" , params : [ ] , type : "storage.FileType" } , { id : "172975040" , predicate : "storage.filePng" , params : [ ] , type : "storage.FileType" } , { id : "-1373745011" , predicate : "storage.filePdf" , params : [ ] , type : "storage.FileType" } , { id : "1384777335" , predicate : "storage.fileMp3" , params : [ ] , type : "storage.FileType" } , { id : "1258941372" , predicate : "storage.fileMov" , params : [ ] , type : "storage.FileType" } , { id : "-1278304028" , predicate : "storage.fileMp4" , params : [ ] , type : "storage.FileType" } , { id : "276907596" , predicate : "storage.fileWebp" , params : [ ] , type : "storage.FileType" } , { id
type : "int" } , { name : "attributes" , type : "Vector<DocumentAttribute>" } ] , type : "Document" } , { id : "398898678" , predicate : "help.support" , params : [ { name : "phone_number" , type : "string" } , { name : "user" , type : "User" } ] , type : "help.Support" } , { id : "-1613493288" , predicate : "notifyPeer" , params : [ { name : "peer" , type : "Peer" } ] , type : "NotifyPeer" } , { id : "-1261946036" , predicate : "notifyUsers" , params : [ ] , type : "NotifyPeer" } , { id : "-1073230141" , predicate : "notifyChats" , params : [ ] , type : "NotifyPeer" } , { id : "1959820384" , predicate : "notifyAll" , params : [ ] , type : "NotifyPeer" } , { id : "-2131957734" , predicate : "updateUserBlocked" , params : [ { name : "user_id" , type : "int" } , { name : "blocked" , type : "Bool" } ] , type : "Update" } , { id : "-1094555409" , predicate : "updateNotifySettings" , params : [ { name : "peer" , type : "NotifyPeer" } , { name : "notify_settings" , type : "PeerNotifySettings" } ] , type : "Update" } , { id : "381645902" , predicate : "sendMessageTypingAction" , params : [ ] , type : "SendMessageAction" } , { id : "-44119819" , predicate : "sendMessageCancelAction" , params : [ ] , type : "SendMessageAction" } , { id : "-1584933265" , predicate : "sendMessageRecordVideoAction" , params : [ ] , type : "SendMessageAction" } , { id : "-378127636" , predicate : "sendMessageUploadVideoAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "-718310409" , predicate : "sendMessageRecordAudioAction" , params : [ ] , type : "SendMessageAction" } , { id : "-212740181" , predicate : "sendMessageUploadAudioAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "-774682074" , predicate : "sendMessageUploadPhotoAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "-1441998364" , predicate : "sendMessageUploadDocumentAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "393186209" , predicate : "sendMessageGeoLocationAction" , params : [ ] , type : "SendMessageAction" } , { id : "1653390447" , predicate : "sendMessageChooseContactAction" , params : [ ] , type : "SendMessageAction" } , { id : "-1290580579" , predicate : "contacts.found" , params : [ { name : "my_results" , type : "Vector<Peer>" } , { name : "results" , type : "Vector<Peer>" } , { name : "chats" , type : "Vector<Chat>" } , { name : "users" , type : "Vector<User>" } ] , type : "contacts.Found" } , { id : "-337352679" , predicate : "updateServiceNotification" , params : [ { name : "flags" , type : "#" } , { name : "popup" , type : "flags.0?true" } , { name : "inbox_date" , type : "flags.1?int" } , { name : "type" , type : "string" } , { name : "message" , type : "string" } , { name : "media" , type : "MessageMedia" } , { name : "entities" , type : "Vector<MessageEntity>" } ] , type : "Update" } , { id : "-496024847" , predicate : "userStatusRecently" , params : [ ] , type : "UserStatus" } , { id : "129960444" , predicate : "userStatusLastWeek" , params : [ ] , type : "UserStatus" } , { id : "2011940674" , predicate : "userStatusLastMonth" , params : [ ] , type : "UserStatus" } , { id : "-298113238" , predicate : "updatePrivacy" , params : [ { name : "key" , type : "PrivacyKey" } , { name : "rules" , type : "Vector<PrivacyRule>" } ] , type : "Update" } , { id : "1335282456" , predicate : "inputPrivacyKeyStatusTimestamp" , params : [ ] , type : "InputPrivacyKey" } , { id : "-1137792208" , predicate : "privacyKeyStatusTimestamp" , params : [ ] , type : "PrivacyKey" } , { id : "218751099" , predicate : "inputPrivacyValueAllowContacts" , params : [ ] , type : "InputPrivacyRule" } , { id : "407582158" , predicate : "inputPrivacyValueAllowAll" , params : [ ] , type : "InputPrivacyRule" } , { id : "320652927" , predicate : "inputPrivacyValueAllowUsers" , params : [ { name : "users" , type : "Vector<InputUser>" } ] , type : "InputPrivacyRule" } , { id : "195371015" , predicate : "inputPrivacyValueDisallowContacts" , params : [ ] , type : "InputPrivacyRule" } , { id : "-697604407" , predicate : "inputPrivacyValueDisallowAll" , params : [ ] , type : "InputPrivacyRule" } , { id : "-1877932953" , predicate : "inputPrivacyValueDisallowUsers" , params : [ { name : "users" , type : "Vector<InputUser>" } ] , type : "InputPrivacyRule" } , { id : "-123988" , predicate : "privacyValueAllowContacts" , params : [ ] , type : "PrivacyRule" } , { id : "1698855810" , predicate : "privacyValueAllowAll" , params : [ ] , type : "PrivacyRule" } , { id : "1297858060" , predicate : "privacyValueAllowUsers" , params : [ { name : "users" , type : "Vector<int>" } ] , type : "PrivacyRule" } , { id : "-125240806" , predicate : "privacyValueDisallowContacts" , params : [ ] , type : "PrivacyRule" } , { id : "-1955338397" , predicate : "privacyValueDisallowAll" , params : [ ] , type : "PrivacyRule" } , { id : "209668535" , predicate : "privacyValueDisallowUsers" , params : [
params : [ { name : "rows" , type : "Vector<KeyboardButtonRow>" } ] , type : "ReplyMarkup" } , { id : "911761060" , predicate : "messages.botCallbackAnswer" , params : [ { name : "flags" , type : "#" } , { name : "alert" , type : "flags.1?true" } , { name : "has_url" , type : "flags.3?true" } , { name : "native_ui" , type : "flags.4?true" } , { name : "message" , type : "flags.0?string" } , { name : "url" , type : "flags.2?string" } , { name : "cache_time" , type : "int" } ] , type : "messages.BotCallbackAnswer" } , { id : "-415938591" , predicate : "updateBotCallbackQuery" , params : [ { name : "flags" , type : "#" } , { name : "query_id" , type : "long" } , { name : "user_id" , type : "int" } , { name : "peer" , type : "Peer" } , { name : "msg_id" , type : "int" } , { name : "chat_instance" , type : "long" } , { name : "data" , type : "flags.0?bytes" } , { name : "game_short_name" , type : "flags.1?string" } ] , type : "Update" } , { id : "649453030" , predicate : "messages.messageEditData" , params : [ { name : "flags" , type : "#" } , { name : "caption" , type : "flags.0?true" } ] , type : "messages.MessageEditData" } , { id : "-469536605" , predicate : "updateEditMessage" , params : [ { name : "message" , type : "Message" } , { name : "pts" , type : "int" } , { name : "pts_count" , type : "int" } ] , type : "Update" } , { id : "-1045340827" , predicate : "inputBotInlineMessageMediaGeo" , params : [ { name : "flags" , type : "#" } , { name : "geo_point" , type : "InputGeoPoint" } , { name : "period" , type : "int" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "InputBotInlineMessage" } , { id : "-1431327288" , predicate : "inputBotInlineMessageMediaVenue" , params : [ { name : "flags" , type : "#" } , { name : "geo_point" , type : "InputGeoPoint" } , { name : "title" , type : "string" } , { name : "address" , type : "string" } , { name : "provider" , type : "string" } , { name : "venue_id" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "InputBotInlineMessage" } , { id : "766443943" , predicate : "inputBotInlineMessageMediaContact" , params : [ { name : "flags" , type : "#" } , { name : "phone_number" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "InputBotInlineMessage" } , { id : "-1222451611" , predicate : "botInlineMessageMediaGeo" , params : [ { name : "flags" , type : "#" } , { name : "geo" , type : "GeoPoint" } , { name : "period" , type : "int" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "BotInlineMessage" } , { id : "1130767150" , predicate : "botInlineMessageMediaVenue" , params : [ { name : "flags" , type : "#" } , { name : "geo" , type : "GeoPoint" } , { name : "title" , type : "string" } , { name : "address" , type : "string" } , { name : "provider" , type : "string" } , { name : "venue_id" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "BotInlineMessage" } , { id : "904770772" , predicate : "botInlineMessageMediaContact" , params : [ { name : "flags" , type : "#" } , { name : "phone_number" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "BotInlineMessage" } , { id : "-1462213465" , predicate : "inputBotInlineResultPhoto" , params : [ { name : "id" , type : "string" } , { name : "type" , type : "string" } , { name : "photo" , type : "InputPhoto" } , { name : "send_message" , type : "InputBotInlineMessage" } ] , type : "InputBotInlineResult" } , { id : "-459324" , predicate : "inputBotInlineResultDocument" , params : [ { name : "flags" , type : "#" } , { name : "id" , type : "string" } , { name : "type" , type : "string" } , { name : "title" , type : "flags.1?string" } , { name : "description" , type : "flags.2?string" } , { name : "document" , type : "InputDocument" } , { name : "send_message" , type : "InputBotInlineMessage" } ] , type : "InputBotInlineResult" } , { id : "400266251" , predicate : "botInlineMediaResult" , params : [ { name : "flags" , type : "#" } , { name : "id" , type : "string" } , { name : "type" , type : "string" } , { name : "photo" , type : "flags.0?Photo" } , { name : "document" , type : "flags.1?Document" } , { name : "title" , type : "flags.2?string" } , { name : "description" , type : "flags.3?string" } , { name : "send_message" , type : "BotInlineMessage" } ] , type : "BotInlineResult" } , { id : "-1995686519" , predicate : "inputBotInlineMessageID" , params : [ { name : "dc_id" , type : "int" } , { name : "id" , type : "long" } , { name : "access_hash" , type : "long" } ] , type : "InputBotInlineMessageID" } , { id : "-103646630" , predicate : "updateInlineBotCallbackQuery" , params : [ { name : "flags" , type : "#" } , { name : "query_id" , type : "long" } , { name : "user_id" , type : "int" } , { name : "msg_id" , type : "InputBotInlineMessageID" } , { name : "chat_instance" , type : "long" } , { name : "data" , type : "flags.0?bytes" } , { nam
type : "string" } ] , type : "ChannelAdminLogEventAction" } , { id : "-1204857405" , predicate : "channelAdminLogEventActionChangePhoto" , params : [ { name : "prev_photo" , type : "ChatPhoto" } , { name : "new_photo" , type : "ChatPhoto" } ] , type : "ChannelAdminLogEventAction" } , { id : "460916654" , predicate : "channelAdminLogEventActionToggleInvites" , params : [ { name : "new_value" , type : "Bool" } ] , type : "ChannelAdminLogEventAction" } , { id : "648939889" , predicate : "channelAdminLogEventActionToggleSignatures" , params : [ { name : "new_value" , type : "Bool" } ] , type : "ChannelAdminLogEventAction" } , { id : "-370660328" , predicate : "channelAdminLogEventActionUpdatePinned" , params : [ { name : "message" , type : "Message" } ] , type : "ChannelAdminLogEventAction" } , { id : "1889215493" , predicate : "channelAdminLogEventActionEditMessage" , params : [ { name : "prev_message" , type : "Message" } , { name : "new_message" , type : "Message" } ] , type : "ChannelAdminLogEventAction" } , { id : "1121994683" , predicate : "channelAdminLogEventActionDeleteMessage" , params : [ { name : "message" , type : "Message" } ] , type : "ChannelAdminLogEventAction" } , { id : "405815507" , predicate : "channelAdminLogEventActionParticipantJoin" , params : [ ] , type : "ChannelAdminLogEventAction" } , { id : "-124291086" , predicate : "channelAdminLogEventActionParticipantLeave" , params : [ ] , type : "ChannelAdminLogEventAction" } , { id : "-484690728" , predicate : "channelAdminLogEventActionParticipantInvite" , params : [ { name : "participant" , type : "ChannelParticipant" } ] , type : "ChannelAdminLogEventAction" } , { id : "-422036098" , predicate : "channelAdminLogEventActionParticipantToggleBan" , params : [ { name : "prev_participant" , type : "ChannelParticipant" } , { name : "new_participant" , type : "ChannelParticipant" } ] , type : "ChannelAdminLogEventAction" } , { id : "-714643696" , predicate : "channelAdminLogEventActionParticipantToggleAdmin" , params : [ { name : "prev_participant" , type : "ChannelParticipant" } , { name : "new_participant" , type : "ChannelParticipant" } ] , type : "ChannelAdminLogEventAction" } , { id : "995769920" , predicate : "channelAdminLogEvent" , params : [ { name : "id" , type : "long" } , { name : "date" , type : "int" } , { name : "user_id" , type : "int" } , { name : "action" , type : "ChannelAdminLogEventAction" } ] , type : "ChannelAdminLogEvent" } , { id : "-309659827" , predicate : "channels.adminLogResults" , params : [ { name : "events" , type : "Vector<ChannelAdminLogEvent>" } , { name : "chats" , type : "Vector<Chat>" } , { name : "users" , type : "Vector<User>" } ] , type : "channels.AdminLogResults" } , { id : "-368018716" , predicate : "channelAdminLogEventsFilter" , params : [ { name : "flags" , type : "#" } , { name : "join" , type : "flags.0?true" } , { name : "leave" , type : "flags.1?true" } , { name : "invite" , type : "flags.2?true" } , { name : "ban" , type : "flags.3?true" } , { name : "unban" , type : "flags.4?true" } , { name : "kick" , type : "flags.5?true" } , { name : "unkick" , type : "flags.6?true" } , { name : "promote" , type : "flags.7?true" } , { name : "demote" , type : "flags.8?true" } , { name : "info" , type : "flags.9?true" } , { name : "settings" , type : "flags.10?true" } , { name : "pinned" , type : "flags.11?true" } , { name : "edit" , type : "flags.12?true" } , { name : "delete" , type : "flags.13?true" } ] , type : "ChannelAdminLogEventsFilter" } , { id : "511092620" , predicate : "topPeerCategoryPhoneCalls" , params : [ ] , type : "TopPeerCategory" } , { id : "834148991" , predicate : "pageBlockAudio" , params : [ { name : "audio_id" , type : "long" } , { name : "caption" , type : "RichText" } ] , type : "PageBlock" } , { id : "1558266229" , predicate : "popularContact" , params : [ { name : "client_id" , type : "long" } , { name : "importers" , type : "int" } ] , type : "PopularContact" } , { id : "2012136335" , predicate : "cdnFileHash" , params : [ { name : "offset" , type : "int" } , { name : "limit" , type : "int" } , { name : "hash" , type : "bytes" } ] , type : "CdnFileHash" } , { id : "1200788123" , predicate : "messageActionScreenshotTaken" , params : [ ] , type : "MessageAction" } , { id : "-1634752813" , predicate : "messages.favedStickersNotModified" , params : [ ] , type : "messages.FavedStickers" } , { id : "-209768682" , predicate : "messages.favedStickers" , params : [ { name : "hash" , type : "int" } , { name : "packs" , type : "Vector<StickerPack>" } , { name : "stickers" , type : "Vector<Document>" } ] , type : "messages.FavedStickers" } , { id : "-451831443" , predicate : "updateFavedStickers" , params : [ ] , type : "Update" } , { id : "-1987495099" , predicate : "updateChannelReadMessagesContents" , params : [ { name : "channel_id" , type : "int" } , { name : "messages" , type : "Vector<int>" } ] , type : "Update" } , { id : "-1040652646" , predicate : "inputMessagesFilterMyMentions" , par
type : "flags.13?InputGeoPoint" } ] , type : "Bool" } , { id : "-2130010132" , method : "messages.getBotCallbackAnswer" , params : [ { name : "flags" , type : "#" } , { name : "game" , type : "flags.1?true" } , { name : "peer" , type : "InputPeer" } , { name : "msg_id" , type : "int" } , { name : "data" , type : "flags.0?bytes" } ] , type : "messages.BotCallbackAnswer" } , { id : "-712043766" , method : "messages.setBotCallbackAnswer" , params : [ { name : "flags" , type : "#" } , { name : "alert" , type : "flags.1?true" } , { name : "query_id" , type : "long" } , { name : "message" , type : "flags.0?string" } , { name : "url" , type : "flags.2?string" } , { name : "cache_time" , type : "int" } ] , type : "Bool" } , { id : "-728224331" , method : "contacts.getTopPeers" , params : [ { name : "flags" , type : "#" } , { name : "correspondents" , type : "flags.0?true" } , { name : "bots_pm" , type : "flags.1?true" } , { name : "bots_inline" , type : "flags.2?true" } , { name : "phone_calls" , type : "flags.3?true" } , { name : "groups" , type : "flags.10?true" } , { name : "channels" , type : "flags.15?true" } , { name : "offset" , type : "int" } , { name : "limit" , type : "int" } , { name : "hash" , type : "int" } ] , type : "contacts.TopPeers" } , { id : "451113900" , method : "contacts.resetTopPeerRating" , params : [ { name : "category" , type : "TopPeerCategory" } , { name : "peer" , type : "InputPeer" } ] , type : "Bool" } , { id : "764901049" , method : "messages.getPeerDialogs" , params : [ { name : "peers" , type : "Vector<InputPeer>" } ] , type : "messages.PeerDialogs" } , { id : "-1137057461" , method : "messages.saveDraft" , params : [ { name : "flags" , type : "#" } , { name : "no_webpage" , type : "flags.1?true" } , { name : "reply_to_msg_id" , type : "flags.0?int" } , { name : "peer" , type : "InputPeer" } , { name : "message" , type : "string" } , { name : "entities" , type : "flags.3?Vector<MessageEntity>" } ] , type : "Bool" } , { id : "1782549861" , method : "messages.getAllDrafts" , params : [ ] , type : "Updates" } , { id : "766298703" , method : "messages.getFeaturedStickers" , params : [ { name : "hash" , type : "int" } ] , type : "messages.FeaturedStickers" } , { id : "1527873830" , method : "messages.readFeaturedStickers" , params : [ { name : "id" , type : "Vector<long>" } ] , type : "Bool" } , { id : "1587647177" , method : "messages.getRecentStickers" , params : [ { name : "flags" , type : "#" } , { name : "attached" , type : "flags.0?true" } , { name : "hash" , type : "int" } ] , type : "messages.RecentStickers" } , { id : "958863608" , method : "messages.saveRecentSticker" , params : [ { name : "flags" , type : "#" } , { name : "attached" , type : "flags.0?true" } , { name : "id" , type : "InputDocument" } , { name : "unsave" , type : "Bool" } ] , type : "Bool" } , { id : "-1986437075" , method : "messages.clearRecentStickers" , params : [ { name : "flags" , type : "#" } , { name : "attached" , type : "flags.0?true" } ] , type : "Bool" } , { id : "1475442322" , method : "messages.getArchivedStickers" , params : [ { name : "flags" , type : "#" } , { name : "masks" , type : "flags.0?true" } , { name : "offset_id" , type : "long" } , { name : "limit" , type : "int" } ] , type : "messages.ArchivedStickers" } , { id : "353818557" , method : "account.sendConfirmPhoneCode" , params : [ { name : "flags" , type : "#" } , { name : "allow_flashcall" , type : "flags.0?true" } , { name : "hash" , type : "string" } , { name : "current_number" , type : "flags.0?Bool" } ] , type : "auth.SentCode" } , { id : "1596029123" , method : "account.confirmPhone" , params : [ { name : "phone_code_hash" , type : "string" } , { name : "phone_code" , type : "string" } ] , type : "Bool" } , { id : "-1920105769" , method : "channels.getAdminedPublicChannels" , params : [ ] , type : "messages.Chats" } , { id : "1706608543" , method : "messages.getMaskStickers" , params : [ { name : "hash" , type : "int" } ] , type : "messages.AllStickers" } , { id : "-866424884" , method : "messages.getAttachedStickers" , params : [ { name : "media" , type : "InputStickeredMedia" } ] , type : "Vector<StickerSetCovered>" } , { id : "-1907842680" , method : "auth.dropTempAuthKeys" , params : [ { name : "except_auth_keys" , type : "Vector<long>" } ] , type : "Bool" } , { id : "-1896289088" , method : "messages.setGameScore" , params : [ { name : "flags" , type : "#" } , { name : "edit_message" , type : "flags.0?true" } , { name : "force" , type : "flags.1?true" } , { name : "peer" , type : "InputPeer" } , { name : "id" , type : "int" } , { name : "user_id" , type : "InputUser" } , { name : "score" , type : "int" } ] , type : "Updates" } , { id : "363700068" , method : "messages.setInlineGameScore" , params : [ { name : "flags" , type : "#" } , { name : "edit_message" , type : "flags.0?true" } , { name : "force" , type : "flags.1?true" } , { name : "id" , type : "InputBotInlineMessageID" } , { name : "user_id" , type : "InputUser" } , { name : "score" , type : "int" } ] , type : "Bool" } , { id : "-400399203" , method : "messages.getGameHighScores" , params : [ { name : "peer" , type : "InputPeer" } , { name
"1f522" : [ "🔢" , [ "1234" ] ] , "1f523" : [ "🔣" , [ "symbols" ] ] , "1f524" : [ "🔤" , [ "abc" ] ] , "1f525" : [ "🔥" , [ "fire" ] ] , "1f526" : [ "🔦" , [ "flashlight" ] ] , "1f527" : [ "🔧" , [ "wrench" ] ] , "1f528" : [ "🔨" , [ "hammer" ] ] , "1f529" : [ "🔩" , [ "nut_and_bolt" ] ] , "1f52a" : [ "🔪" , [ "hocho" ] ] , "1f52b" : [ "🔫" , [ "gun" ] ] , "1f52c" : [ "🔬" , [ "microscope" ] ] , "1f52d" : [ "🔭" , [ "telescope" ] ] , "1f52e" : [ "🔮" , [ "crystal_ball" ] ] , "1f52f" : [ "🔯" , [ "six_pointed_star" ] ] , "1f530" : [ "🔰" , [ "beginner" ] ] , "1f531" : [ "🔱" , [ "trident" ] ] , "1f532" : [ "🔲" , [ "black_square_button" ] ] , "1f533" : [ "🔳" , [ "white_square_button" ] ] , "1f534" : [ "🔴" , [ "red_circle" ] ] , "1f535" : [ "🔵" , [ "large_blue_circle" ] ] , "1f536" : [ "🔶" , [ "large_orange_diamond" ] ] , "1f537" : [ "🔷" , [ "large_blue_diamond" ] ] , "1f538" : [ "🔸" , [ "small_orange_diamond" ] ] , "1f539" : [ "🔹" , [ "small_blue_diamond" ] ] , "1f53a" : [ "🔺" , [ "small_red_triangle" ] ] , "1f53b" : [ "🔻" , [ "small_red_triangle_down" ] ] , "1f53c" : [ "🔼" , [ "arrow_up_small" ] ] , "1f53d" : [ "🔽" , [ "arrow_down_small" ] ] , "1f550" : [ "🕐" , [ "clock1" ] ] , "1f551" : [ "🕑" , [ "clock2" ] ] , "1f552" : [ "🕒" , [ "clock3" ] ] , "1f553" : [ "🕓" , [ "clock4" ] ] , "1f554" : [ "🕔" , [ "clock5" ] ] , "1f555" : [ "🕕" , [ "clock6" ] ] , "1f556" : [ "🕖" , [ "clock7" ] ] , "1f557" : [ "🕗" , [ "clock8" ] ] , "1f558" : [ "🕘" , [ "clock9" ] ] , "1f559" : [ "🕙" , [ "clock10" ] ] , "1f55a" : [ "🕚" , [ "clock11" ] ] , "1f55b" : [ "🕛" , [ "clock12" ] ] , "1f55c" : [ "🕜" , [ "clock130" ] ] , "1f55d" : [ "🕝" , [ "clock230" ] ] , "1f55e" : [ "🕞" , [ "clock330" ] ] , "1f55f" : [ "🕟" , [ "clock430" ] ] , "1f560" : [ "🕠" , [ "clock530" ] ] , "1f561" : [ "🕡" , [ "clock630" ] ] , "1f562" : [ "🕢" , [ "clock730" ] ] , "1f563" : [ "🕣" , [ "clock830" ] ] , "1f564" : [ "🕤" , [ "clock930" ] ] , "1f565" : [ "🕥" , [ "clock1030" ] ] , "1f566" : [ "🕦" , [ "clock1130" ] ] , "1f567" : [ "🕧" , [ "clock1230" ] ] , "1f5fb" : [ "🗻" , [ "mount_fuji" ] ] , "1f5fc" : [ "🗼" , [ "tokyo_tower" ] ] , "1f5fd" : [ "🗽" , [ "statue_of_liberty" ] ] , "1f5fe" : [ "🗾" , [ "japan" ] ] , "1f5ff" : [ "🗿" , [ "moyai" ] ] , "1f600" : [ "😀" , [ "grinning" ] ] , "1f601" : [ "😁" , [ "grin" ] ] , "1f602" : [ "😂" , [ "joy" ] ] , "1f603" : [ "😃" , [ "smiley" ] , ":)" ] , "1f604" : [ "😄" , [ "smile" ] , ":)" ] , "1f605" : [ "😅" , [ "sweat_smile" ] ] , "1f606" : [ "😆" , [ "laughing" , "satisfied" ] ] , "1f607" : [ "😇" , [ "innocent" ] ] , "1f608" : [ "😈" , [ "smiling_imp" ] ] , "1f609" : [ "😉" , [ "wink" ] , ";)" ] , "1f60a" : [ "😊" , [ "blush" ] ] , "1f60b" : [ "😋" , [ "yum" ] ] , "1f60c" : [ "😌" , [ "relieved" ] ] , "1f60d" : [ "😍" , [ "heart_eyes" ] ] , "1f60e" : [ "😎" , [ "sunglasses" ] ] , "1f60f" : [ "😏" , [ "smirk" ] ] , "1f610" : [ "😐" , [ "neutral_face" ] ] , "1f611" : [ "😑" , [ "expressionless" ] ] , "1f612" : [ "😒" , [ "unamused" ] ] , "1f613" : [ "😓" , [ "sweat" ] ] , "1f614" : [ "😔" , [ "pensive" ] ] , "1f615" : [ "😕" , [ "confused" ] ] , "1f616" : [ "😖" , [ "confounded" ] ] , "1f617" : [ "😗" , [ "kissing" ] ] , "1f618" : [ "😘" , [ "kissing_heart" ] ] , "1f619" : [ "😙" , [ "kissing_smiling_eyes" ] ] , "1f61a" : [ "😚" , [ "kissing_closed_eyes" ] ] , "1f61b" : [ "😛" , [ "stuck_out_tongue" ] ] , "1f61c" : [ "😜" , [ "stuck_out_tongue_winking_eye" ] , ";p" ] , "1f61d" : [ "😝" , [ "stuck_out_tongue_closed_eyes" ] ] , "1f61e" : [ "😞" , [ "disappointed" ] , ":(" ] , "1f61f" : [ "😟" , [ "worried" ] ] , "1f620" : [ "😠" , [ "angry" ] ] , "1f621" : [ "😡" , [ "rage" ] ] , "1f622" : [ "😢" , [ "cry" ] , ":'(" ] , "1f623" : [ "😣" , [ "persevere" ] ] , "1f624" : [ "😤" , [ "triumph" ] ] , "1f625" : [ "😥" , [ "disappointed_relieved" ] ] , "1f626" : [ "😦" , [ "frowning" ] ] , "1f627" : [ "😧" , [ "anguished" ] ] , "1f628" : [ "😨" , [ "fearful" ] ] , "1f629" : [ "😩" , [ "weary" ] ] , "1f62a" : [ "😪" , [ "sleepy" ] ] , "1f62b" : [ "😫" , [ "tired_face" ] ] , "1f62c" : [ "😬" , [ "grimacing" ] ] , "1f62d" : [ "😭" , [ "sob" ] , ":'(" ] , "1f62e" : [ "😮" , [ "open_mouth" ] ] , "1f62f" : [ "😯" , [ "hushed" ] ] , "1f630" : [ "😰" , [ "cold_sweat" ] ] , "1f631" : [ "😱" , [ "scream" ] ] , "1f632" : [ "😲" , [ "astonished" ] ] , "1f633" : [ "😳" , [ "flushed" ] ] , "1f634" : [ "😴" , [ "sleeping" ] ] , "1f635" : [ "😵" , [ "dizzy_face" ] ] , "1f636" : [ "😶" , [ "no_mouth" ] ] , "1f637" : [ "😷" , [ "mask" ] ] , "1f638" : [ "😸" , [ "smile_cat" ] ] , "1f639" : [ "😹" , [ "joy_cat" ] ] , "1f63a" : [ "😺" , [ "smiley_cat" ] ] , "1f63b" : [ "😻" , [ "heart_eyes_cat" ] ] , "1f63c" : [ "😼" , [ "smirk_cat" ] ] , "1f63d" : [ "😽" , [ "kissing_cat" ] ] , "1f63e" : [ "😾" , [ "pouting_cat" ] ] , "1f63f" : [ "😿" , [ "crying_cat_face" ] ] , "1f640" : [ "🙀" , [ "scream_cat" ] ] , "1f645" : [ "🙅" , [ "no_good" ] ] , "1f646" : [ "🙆" , [ "ok_woman" ] ] , "1f647" : [ "🙇" , [ "bow" ] ] , "1f648" : [ "🙈" , [ "see_no_evil" ] ] , "1f649" : [ "🙉" , [ "hear_no_evil" ] ] , "1f64a" : [ "🙊" , [ "speak_no_evil" ] ] , "1f64b" : [ "🙋" ,
Config . LangCountries = { es : "ES" , ru : "RU" , en : "US" , de : "DE" , it : "IT" , nl : "NL" , fr : "FR" , ca : "ES" , "es-419" : "MX" , ar : "SA" , he : "IL" , tr : "TR" , id : "ID" , pl : "PL" } , function ( e ) { function t ( e ) { l = e } function n ( ) { c = ! 0 } function i ( ) { return c ? ( c = ! 1 , "" ) : l } function a ( e , t ) { var n = ! 1 ; Array . isArray ( e ) || ( e = Array . prototype . slice . call ( arguments ) , t = e . pop ( ) , n = 1 == e . length ) ; var a , r , o , s = [ ] , l = ! 0 , c = i ( ) ; for ( r = 0 ; r < e . length ; r ++ ) if ( o = e [ r ] = c + e [ r ] , "xt_" != o . substr ( 0 , 3 ) && void 0 !== d [ o ] ) s . push ( d [ o ] ) ; else if ( p ) { try { a = localStorage . getItem ( o ) } catch ( f ) { p = ! 1 } try { a = void 0 !== a && null !== a && JSON . parse ( a ) } catch ( f ) { a = ! 1 } s . push ( d [ o ] = a ) } else u ? l = ! 1 : s . push ( d [ o ] = ! 1 ) ; return l ? t ( n ? s [ 0 ] : s ) : void chrome . storage . local . get ( e , function ( i ) { var a ; for ( s = [ ] , r = 0 ; r < e . length ; r ++ ) o = e [ r ] , a = i [ o ] , a = void 0 !== a && null !== a && JSON . parse ( a ) , s . push ( d [ o ] = a ) ; t ( n ? s [ 0 ] : s ) } ) } function r ( e , t ) { var n , a , r = { } , o = i ( ) ; for ( n in e ) if ( e . hasOwnProperty ( n ) ) if ( a = e [ n ] , n = o + n , d [ n ] = a , a = JSON . stringify ( a ) , p ) try { localStorage . setItem ( n , a ) } catch ( s ) { p = ! 1 } else r [ n ] = a ; return p || ! u ? void ( t && t ( ) ) : void chrome . storage . local . set ( r , t ) } function o ( e , t ) { Array . isArray ( e ) || ( e = Array . prototype . slice . call ( arguments ) , "function" == typeof e [ e . length - 1 ] && ( t = e . pop ( ) ) ) ; var n , a , r = i ( ) ; for ( n = 0 ; n < e . length ; n ++ ) if ( a = e [ n ] = r + e [ n ] , delete d [ a ] , p ) try { localStorage . removeItem ( a ) } catch ( o ) { p = ! 1 } u ? chrome . storage . local . remove ( e , t ) : t && t ( ) } function s ( e ) { if ( p ) try { localStorage . clear ( ) } catch ( t ) { p = ! 1 } u ? chrome . storage . local . clear ( function ( ) { d = { } , e ( ) } ) : ( d = { } , e ( ) ) } var l = "" , c = ! 1 , d = { } , u = ! ! ( e . chrome && chrome . storage && chrome . storage . local ) , p = ! u && ! ! e . localStorage ; e . ConfigStorage = { prefix : t , noPrefix : n , get : a , set : r , remove : o , clear : s } } ( this ) , function ( ) { try { window == window . top || window . chrome && chrome . app && chrome . app . window ? document . documentElement . style . display = "block" : top . location = self . location } catch ( e ) { console . error ( "CJ protection" , e ) } var t = [ Config . Navigator . osX ? "osx" : "non_osx" , Config . Navigator . msie ? "msie" : "non_msie" , Config . Navigator . retina ? "is_2x" : "is_1x" ] ; Config . Modes . ios _standalone && t . push ( "ios_standalone" ) , $ ( document . body ) . addClass ( t . join ( " " ) ) , ConfigStorage . get ( "layout_selected" , "i18n_locale" , function ( e ) { var t = e [ 0 ] , n = e [ 1 ] , i = "en-us" , a = { dom : ! 1 , i18n _ng : ! 1 , i18n _messages : ! 1 , i18n _fallback : ! 1 } , r = function ( ) { var e , t = ! 0 ; for ( e in a ) if ( a . hasOwnProperty ( e ) && a [ e ] === ! 1 ) { t = ! 1 ; break } t && ( a . boot = ! 1 , angular . bootstrap ( document , [ "myApp" ] ) ) } ; switch ( Config . Modes . force _mobile ? t = "mobile" : Config . Modes . force _desktop && ( t = "desktop" ) , t ) { case "mobile" : Config . Mobile = ! 0 ; break ; case "desktop" : Config . Mobile = ! 1 ; break ; default : var o = $ ( window ) . width ( ) ; Config . Mobile = Config . Navigator . mobile || o > 10 && o < 480 } $ ( "head" ) . append ( '<link rel="stylesheet" href="css/' + ( Config . Mobile ? "mobile.css" : "desktop.css" ) + '" />' ) , n || ( n = ( navigator . language || "" ) . toLowerCase ( ) , n = Config . I18n . aliases [ n ] || n ) ; for ( var s = 0 ; s < Config . I18n . supported . length ; s ++ ) if ( Config . I18n . supported [ s ] == n ) { Config . I18n . locale = n ; break } a . i18n _ng = Config . I18n . locale == i , $ . getJSON ( "js/locales/" + Config . I18n . locale + ".json" ) . success ( function ( e ) { Config . I18n . messages = e , a . i18n _messages = ! 0 , Config . I18n . locale == i && ( a . i18n _fallback = ! 0 ) , r ( ) } ) , Config . I18n . locale != i && $ . getJSON ( "js/locales/" + i + ".json" ) . success ( function ( e ) { Config . I18n . fallback _messages = e , a . i18n _fallback = ! 0 , r ( ) } ) , $ ( document ) . ready ( function ( ) { a . dom = ! 0 , a . i18n _ng ? r ( ) : $ ( "<script>" ) . appendTo ( "body" ) . on ( "load" , function ( ) { a . i18n _ng = ! 0 , r ( ) } ) . attr ( "src" , "vendor/angular/i18n/angular-locale_" + Config . I18n . locale + ".js" ) } ) } ) } ( ) , function ( ) { function e ( ) { t || safeConfirm ( { type : "WEBOGRAM_UPDATED_RELOAD" , message : "A new version of Webogram is downloaded. Launch it?" } , function ( e ) { e ? window . location . reload ( ) : t = ! 0 } ) } if ( window . safeConfirm = function ( e , t ) { "string" == typeof e && ( e = { message : e } ) ; var n = ! 1 ; try { n = confirm ( e . message ) } catch ( i ) { n = ! 0 } setTimeout ( function ( ) { t ( n ) } , 10 ) } , ( navigator . serviceWorker || window . applicationCache ) && ! Config . Modes . packed && window . addEventListener ) { var t = ! 1 ; if ( navigator . serviceWorker ) navigator . serviceWorker . register ( "service_worker.js" ) . then ( function ( t ) { console . log ( "Offline worker registered" ) , t . addEventListener ( "updatefound" , function ( ) { var t = this . installing ; t . addEventListener ( "statechange" , function ( ) { switch ( t . state ) { case "installed" : navigator . serviceWorker . controller &
je ( e ) ) } function ze ( e , t ) { var n = e . ng339 , i = n && Xa [ n ] ; return t && ! i && ( e . ng339 = n = $e ( ) , i = Xa [ n ] = { events : { } , data : { } , handle : void 0 } ) , i } function We ( e , t , n ) { if ( De ( e ) ) { var i , a = b ( n ) , r = ! a && t && ! w ( t ) , o = ! t , s = ze ( e , ! r ) , l = s && s . data ; if ( a ) l [ xe ( t ) ] = n ; else { if ( o ) return l ; if ( r ) return l && l [ xe ( t ) ] ; for ( i in t ) l [ xe ( i ) ] = t [ i ] } } } function Ge ( e , t ) { return ! ! e . getAttribute && ( " " + ( e . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) . indexOf ( " " + t + " " ) > - 1 } function Ke ( e , t ) { if ( t && e . setAttribute ) { var n = ( " " + ( e . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) , i = n ; r ( t . split ( " " ) , function ( e ) { e = Ra ( e ) , i = i . replace ( " " + e + " " , " " ) } ) , i !== n && e . setAttribute ( "class" , Ra ( i ) ) } } function Ye ( e , t ) { if ( t && e . setAttribute ) { var n = ( " " + ( e . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) , i = n ; r ( t . split ( " " ) , function ( e ) { e = Ra ( e ) , i . indexOf ( " " + e + " " ) === - 1 && ( i += e + " " ) } ) , i !== n && e . setAttribute ( "class" , Ra ( i ) ) } } function Xe ( e , t ) { if ( t ) if ( t . nodeType ) e [ e . length ++ ] = t ; else { var n = t . length ; if ( "number" == typeof n && t . window !== t ) { if ( n ) for ( var i = 0 ; i < n ; i ++ ) e [ e . length ++ ] = t [ i ] } else e [ e . length ++ ] = t } } function Je ( e , t ) { return Ze ( e , "$" + ( t || "ngController" ) + "Controller" ) } function Ze ( e , t , n ) { e . nodeType === Ga && ( e = e . documentElement ) ; for ( var i = C ( t ) ? t : [ t ] ; e ; ) { for ( var a = 0 , r = i . length ; a < r ; a ++ ) if ( b ( n = ha . data ( e , i [ a ] ) ) ) return n ; e = e . parentNode || e . nodeType === Ka && e . host } } function Qe ( e ) { for ( Be ( e , ! 0 ) ; e . firstChild ; ) e . removeChild ( e . firstChild ) } function et ( e , t ) { t || Be ( e ) ; var n = e . parentNode ; n && n . removeChild ( e ) } function tt ( t , n ) { n = n || e , "complete" === n . document . readyState ? n . setTimeout ( t ) : ha ( n ) . on ( "load" , t ) } function nt ( t ) { function n ( ) { e . document . removeEventListener ( "DOMContentLoaded" , n ) , e . removeEventListener ( "load" , n ) , t ( ) } "complete" === e . document . readyState ? e . setTimeout ( t ) : ( e . document . addEventListener ( "DOMContentLoaded" , n ) , e . addEventListener ( "load" , n ) ) } function it ( e , t ) { var n = cr [ t . toLowerCase ( ) ] ; return n && dr [ H ( e ) ] && n } function at ( e ) { return ur [ e ] } function rt ( e , t ) { var n = function ( n , i ) { n . isDefaultPrevented = function ( ) { return n . defaultPrevented } ; var a = t [ i || n . type ] , r = a ? a . length : 0 ; if ( r ) { if ( y ( n . immediatePropagationStopped ) ) { var o = n . stopImmediatePropagation ; n . stopImmediatePropagation = function ( ) { n . immediatePropagationStopped = ! 0 , n . stopPropagation && n . stopPropagation ( ) , o && o . call ( n ) } } n . isImmediatePropagationStopped = function ( ) { return n . immediatePropagationStopped === ! 0 } ; var s = a . specialHandlerWrapper || ot ; r > 1 && ( a = Se ( a ) ) ; for ( var l = 0 ; l < r ; l ++ ) n . isImmediatePropagationStopped ( ) || s ( e , n , a [ l ] ) } } ; return n . elem = e , n } function ot ( e , t , n ) { n . call ( e , t ) } function st ( e , t , n ) { var i = t . relatedTarget ; i && ( i === e || sr . call ( e , i ) ) || n . call ( e , t ) } function lt ( ) { this . $get = function ( ) { return u ( Fe , { hasClass : function ( e , t ) { return e . attr && ( e = e [ 0 ] ) , Ge ( e , t ) } , addClass : function ( e , t ) { return e . attr && ( e = e [ 0 ] ) , Ye ( e , t ) } , removeClass : function ( e , t ) { return e . attr && ( e = e [ 0 ] ) , Ke ( e , t ) } } ) } } function ct ( e , t ) { var n = e && e . $$hashKey ; if ( n ) return "function" == typeof n && ( n = e . $$hashKey ( ) ) , n ; var i = typeof e ; return n = "function" === i || "object" === i && null !== e ? e . $$hashKey = i + ":" + ( t || l ) ( ) : i + ":" + e } function dt ( ) { this . _keys = [ ] , this . _values = [ ] , this . _lastKey = NaN , this . _lastIndex = - 1 } function ut ( e ) { return Function . prototype . toString . call ( e ) } function pt ( e ) { var t = ut ( e ) . replace ( yr , "" ) , n = t . match ( hr ) || t . match ( gr ) ; return n } function ft ( e ) { var t = pt ( e ) ; return t ? "function(" + ( t [ 1 ] || "" ) . replace ( /[\s\r\n]+/ , " " ) + ")" : "fn" } function mt ( e , t , n ) { var i , a , o ; if ( "function" == typeof e ) { if ( ! ( i = e . $inject ) ) { if ( i = [ ] , e . length ) { if ( t ) throw M ( n ) && n || ( n = e . name || ft ( e ) ) , br ( "strictdi" , "{0} is not using explicit annotation and cannot be invoked in strict mode" , n ) ; a = pt ( e ) , r ( a [ 1 ] . split ( _r ) , function ( e ) { e . replace ( vr , function ( e , t , n ) { i . push ( n ) } ) } ) } e . $inject = i } } else C ( e ) ? ( o = e . length - 1 , _e ( e [ o ] , "fn" ) , i = e . slice ( 0 , o ) ) : _e ( e , "fn" , ! 0 ) ; return i } function ht ( e , t ) { function n ( e ) { return function ( t , n ) { return w ( t ) ? void r ( t , s ( e ) ) : e ( t , n ) } } function i ( e , t ) { if ( ve ( e , "service" ) , ( $ ( t ) || C ( t ) ) && ( t = k . instantiate ( t ) ) , ! t . $get ) throw br ( "pget" , "Provider '{0}' must define $get factory method." , e ) ; return b [ e + h ] = t } function a ( e , t ) { return function ( ) { var n = T . invoke ( t , this ) ; if ( y ( n ) ) throw br ( "undef" , "Provider '{0}' must return a value from $get factory method." , e ) ; return n } } function o ( e , t , n ) { return i ( e , { $get : n !== ! 1 ? a ( e , t ) : t }
a || ( this . $attr [ e ] = a = me ( e , "-" ) ) ) , o = H ( this . $$element ) , "img" === o && "srcset" === e && ( this [ e ] = t = F ( t , "$set('srcset', value)" ) ) , n !== ! 1 && ( null === t || y ( t ) ? this . $$element . removeAttr ( a ) : De . test ( a ) ? l && t === ! 1 ? this . $$element . removeAttr ( a ) : this . $$element . attr ( a , t ) : B ( this . $$element [ 0 ] , a , t ) ) ; var u = this . $$observers ; u && r ( u [ d ] , function ( e ) { try { e ( t ) } catch ( n ) { i ( n ) } } ) } , $observe : function ( e , t ) { var n = this , i = n . $$observers || ( n . $$observers = we ( ) ) , a = i [ e ] || ( i [ e ] = [ ] ) ; return a . push ( t ) , c . $evalAsync ( function ( ) { a . $$inter || ! n . hasOwnProperty ( e ) || y ( n [ e ] ) || t ( n [ e ] ) } ) , function ( ) { V ( a , t ) } } } ; var Fe = n . startSymbol ( ) , Be = n . endSymbol ( ) , He = "{{" === Fe && "}}" === Be ? g : function ( e ) { return e . replace ( /\{\{/g , Fe ) . replace ( /}}/g , Be ) } , je = /^ng(Attr|Prop|On)([A-Z].*)$/ , Ve = /^(.+)Start$/ ; return q . $$addBindingInfo = I ? function ( e , t ) { var n = e . data ( "$binding" ) || [ ] ; C ( t ) ? n = n . concat ( t ) : n . push ( t ) , e . data ( "$binding" , n ) } : h , q . $$addBindingClass = I ? function ( e ) { j ( e , "ng-binding" ) } : h , q . $$addScopeInfo = I ? function ( e , t , n , i ) { var a = n ? i ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope" ; e . data ( a , t ) } : h , q . $$addScopeClass = I ? function ( e , t ) { j ( e , t ? "ng-isolate-scope" : "ng-scope" ) } : h , q . $$createComment = function ( t , n ) { var i = "" ; return I && ( i = " " + ( t || "" ) + ": " , n && ( i += n + " " ) ) , e . document . createComment ( i ) } , q } ] } function Et ( e , t ) { this . previousValue = e , this . currentValue = t } function It ( e ) { return e . replace ( Pr , "" ) . replace ( Dr , function ( e , t , n ) { return n ? t . toUpperCase ( ) : t } ) } function xt ( e , t ) { var n = "" , i = e . split ( /\s+/ ) , a = t . split ( /\s+/ ) ; e : for ( var r = 0 ; r < i . length ; r ++ ) { for ( var o = i [ r ] , s = 0 ; s < a . length ; s ++ ) if ( o === a [ s ] ) continue e ; n += ( n . length > 0 ? " " : "" ) + o } return n } function Pt ( e ) { e = ha ( e ) ; var t = e . length ; if ( t <= 1 ) return e ; for ( ; t -- ; ) { var n = e [ t ] ; ( n . nodeType === Wa || n . nodeType === za && "" === n . nodeValue . trim ( ) ) && Aa . call ( e , t , 1 ) } return e } function Dt ( e , t ) { if ( t && M ( t ) ) return t ; if ( M ( e ) ) { var n = Or . exec ( e ) ; if ( n ) return n [ 3 ] } } function Rt ( ) { var e = { } ; this . has = function ( t ) { return e . hasOwnProperty ( t ) } , this . register = function ( t , n ) { ve ( t , "controller" ) , w ( t ) ? u ( e , t ) : e [ t ] = n } , this . $get = [ "$injector" , function ( t ) { function n ( e , t , n , a ) { if ( ! e || ! w ( e . $scope ) ) throw i ( "$controller" ) ( "noscp" , "Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`." , a , t ) ; e . $scope [ t ] = n } return function ( i , a , r , o ) { var s , l , c , d ; if ( r = r === ! 0 , o && M ( o ) && ( d = o ) , M ( i ) ) { if ( l = i . match ( Or ) , ! l ) throw Rr ( "ctrlfmt" , "Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`." , i ) ; if ( c = l [ 1 ] , d = d || l [ 3 ] , i = e . hasOwnProperty ( c ) ? e [ c ] : ye ( a . $scope , c , ! 0 ) , ! i ) throw Rr ( "ctrlreg" , "The controller with the name '{0}' is not registered." , c ) ; _e ( i , c , ! 0 ) } if ( r ) { var p = ( C ( i ) ? i [ i . length - 1 ] : i ) . prototype ; return s = Object . create ( p || null ) , d && n ( a , d , s , c || i . name ) , u ( function ( ) { var e = t . invoke ( i , s , a , c ) ; return e !== s && ( w ( e ) || $ ( e ) ) && ( s = e , d && n ( a , d , s , c || i . name ) ) , s } , { instance : s , identifier : d } ) } return s = t . instantiate ( i , a , c ) , d && n ( a , d , s , c || i . name ) , s } } ] } function Ot ( ) { this . $get = [ "$window" , function ( e ) { return ha ( e . document ) } ] } function Nt ( ) { this . $get = [ "$document" , "$rootScope" , function ( e , t ) { function n ( ) { a = i . hidden } var i = e [ 0 ] , a = i && i . hidden ; return e . on ( "visibilitychange" , n ) , t . $on ( "$destroy" , function ( ) { e . off ( "visibilitychange" , n ) } ) , function ( ) { return a } } ] } function Lt ( ) { this . $get = [ "$log" , function ( e ) { return function ( t , n ) { e . error . apply ( e , arguments ) } } ] } function Ft ( e ) { return w ( e ) ? A ( e ) ? e . toISOString ( ) : J ( e ) : e } function Ut ( ) { this . $get = function ( ) { return function ( e ) { if ( ! e ) return "" ; var t = [ ] ; return o ( e , function ( e , n ) { null === e || y ( e ) || $ ( e ) || ( C ( e ) ? r ( e , function ( e ) { t . push ( se ( n ) + "=" + se ( Ft ( e ) ) ) } ) : t . push ( se ( n ) + "=" + se ( Ft ( e ) ) ) ) } ) , t . join ( "&" ) } } } function Bt ( ) { this . $get = function ( ) { return function ( e ) { function t ( e , i , a ) { C ( e ) ? r ( e , function ( e , n ) { t ( e , i + "[" + ( w ( e ) ? n : "" ) + "]" ) } ) : w ( e ) && ! A ( e ) ? o ( e , function ( e , n ) { t ( e , i + ( a ? "" : "[" ) + n + ( a ? "" : "]" ) ) } ) : ( $ ( e ) && ( e = e ( ) ) , n . push ( se ( i ) + "=" + ( null == e ? "" : se ( Ft ( e ) ) ) ) ) } if ( ! e ) return "" ; var n = [ ] ; return t ( e , "" , ! 0 ) , n . join ( "&" ) } } } function Ht ( e , t ) { if ( M ( e ) ) { var n = e . replace ( Hr , "" ) . trim ( ) ; if ( n ) { var i = t ( "Content-Type" ) , a = i && 0 === i . indexOf ( Lr ) ; if ( a || jt ( n ) ) try { e = Z ( n ) } catch ( r ) { if ( ! a ) return e ; throw jr ( "baddata" , 'Data must be a valid JSON object. Received: "{0}". Parse error: "{1}"' , e , r ) } } } return e } function jt ( e ) { var t = e . match ( Ur ) ; return t && Br [ t [ 0 ] ] . test ( e ) } function Vt ( e ) { function t ( e , t ) { e &
} , $suspend : function ( ) { this . $$suspended = ! 0 } , $isSuspended : function ( ) { return this . $$suspended } , $resume : function ( ) { this . $$suspended = ! 1 } , $destroy : function ( ) { if ( ! this . $$destroyed ) { var e = this . $parent ; this . $broadcast ( "$destroy" ) , this . $$destroyed = ! 0 , this === S && d . $$applicationDestroyed ( ) , _ ( this , - this . $$watchersCount ) ; for ( var t in this . $$listenerCount ) v ( this , this . $$listenerCount [ t ] , t ) ; e && e . $$childHead === this && ( e . $$childHead = this . $$nextSibling ) , e && e . $$childTail === this && ( e . $$childTail = this . $$prevSibling ) , this . $$prevSibling && ( this . $$prevSibling . $$nextSibling = this . $$nextSibling ) , this . $$nextSibling && ( this . $$nextSibling . $$prevSibling = this . $$prevSibling ) , this . $destroy = this . $digest = this . $apply = this . $evalAsync = this . $applyAsync = h , this . $on = this . $watch = this . $watchGroup = function ( ) { return h } , this . $$listeners = { } , this . $$nextSibling = null , p ( this ) } } , $eval : function ( e , t ) { return c ( e ) ( this , t ) } , $evalAsync : function ( e , t ) { S . $$phase || A . length || d . defer ( function ( ) { A . length && S . $digest ( ) } , null , "$evalAsync" ) , A . push ( { scope : this , fn : c ( e ) , locals : t } ) } , $$postDigest : function ( e ) { C . push ( e ) } , $apply : function ( e ) { try { m ( "$apply" ) ; try { return this . $eval ( e ) } finally { g ( ) } } catch ( t ) { i ( t ) } finally { try { S . $digest ( ) } catch ( t ) { throw i ( t ) , t } } } , $applyAsync : function ( e ) { function t ( ) { n . $eval ( e ) } var n = this ; e && T . push ( t ) , e = c ( e ) , M ( ) } , $on : function ( e , t ) { var n = this . $$listeners [ e ] ; n || ( this . $$listeners [ e ] = n = [ ] ) , n . push ( t ) ; var i = this ; do i . $$listenerCount [ e ] || ( i . $$listenerCount [ e ] = 0 ) , i . $$listenerCount [ e ] ++ ; while ( i = i . $parent ) ; var a = this ; return function ( ) { var i = n . indexOf ( t ) ; i !== - 1 && ( delete n [ i ] , v ( a , 1 , e ) ) } } , $emit : function ( e , t ) { var n , a , r , o = [ ] , s = this , l = ! 1 , c = { name : e , targetScope : s , stopPropagation : function ( ) { l = ! 0 } , preventDefault : function ( ) { c . defaultPrevented = ! 0 } , defaultPrevented : ! 1 } , d = G ( [ c ] , arguments , 1 ) ; do { for ( n = s . $$listeners [ e ] || o , c . currentScope = s , a = 0 , r = n . length ; a < r ; a ++ ) if ( n [ a ] ) try { n [ a ] . apply ( null , d ) } catch ( u ) { i ( u ) } else n . splice ( a , 1 ) , a -- , r -- ; if ( l ) break ; s = s . $parent } while ( s ) ; return c . currentScope = null , c } , $broadcast : function ( e , t ) { var n = this , a = n , r = n , o = { name : e , targetScope : n , preventDefault : function ( ) { o . defaultPrevented = ! 0 } , defaultPrevented : ! 1 } ; if ( ! n . $$listenerCount [ e ] ) return o ; for ( var s , l , c , d = G ( [ o ] , arguments , 1 ) ; a = r ; ) { for ( o . currentScope = a , s = a . $$listeners [ e ] || [ ] , l = 0 , c = s . length ; l < c ; l ++ ) if ( s [ l ] ) try { s [ l ] . apply ( null , d ) } catch ( u ) { i ( u ) } else s . splice ( l , 1 ) , l -- , c -- ; if ( ! ( r = a . $$listenerCount [ e ] && a . $$childHead || a !== n && a . $$nextSibling ) ) for ( ; a !== n && ! ( r = a . $$nextSibling ) ; ) a = a . $parent } return o . currentScope = null , o } } ; var S = new f , A = S . $$asyncQueue = [ ] , C = S . $$postDigestQueue = [ ] , T = S . $$applyAsyncQueue = [ ] , E = 0 ; return S } ] } function jn ( ) { var e = /^\s*(https?|s?ftp|mailto|tel|file):/ , t = /^\s*((https?|ftp|file|blob):|data:image\/)/ ; this . aHrefSanitizationWhitelist = function ( t ) { return b ( t ) ? ( e = t , this ) : e } , this . imgSrcSanitizationWhitelist = function ( e ) { return b ( e ) ? ( t = e , this ) : t } , this . $get = function ( ) { return function ( n , i ) { var a = i ? t : e , r = ei ( n && n . trim ( ) ) . href ; return "" === r || r . match ( a ) ? n : "unsafe:" + r } } } function Vn ( e ) { return e . replace ( lo , Ie ) } function qn ( e ) { if ( "self" === e ) return e ; if ( M ( e ) ) { if ( e . indexOf ( "***" ) > - 1 ) throw oo ( "iwcard" , "Illegal sequence *** in string matcher. String: {0}" , e ) ; return e = Oa ( e ) . replace ( /\\\*\\\*/g , ".*" ) . replace ( /\\\*/g , "[^:/.?&;]*" ) , new RegExp ( "^" + e + "$" ) } if ( E ( e ) ) return new RegExp ( "^" + e . source + "$" ) ; throw oo ( "imatcher" , 'Matchers may only be "self", string patterns or RegExp objects' ) } function zn ( e ) { var t = [ ] ; return b ( e ) && r ( e , function ( e ) { t . push ( qn ( e ) ) } ) , t } function Wn ( ) { this . SCE _CONTEXTS = so ; var e = [ "self" ] , t = [ ] ; this . resourceUrlWhitelist = function ( t ) { return arguments . length && ( e = zn ( t ) ) , e } , this . resourceUrlBlacklist = function ( e ) { return arguments . length && ( t = zn ( e ) ) , t } , this . $get = [ "$injector" , "$$sanitizeUri" , function ( n , i ) { function a ( e , t ) { return "self" === e ? ti ( t ) || ni ( t ) : ! ! e . exec ( t . href ) } function r ( n ) { var i , r , o = ei ( n . toString ( ) ) , s = ! 1 ; for ( i = 0 , r = e . length ; i < r ; i ++ ) if ( a ( e [ i ] , o ) ) { s = ! 0 ; break } if ( s ) for ( i = 0 , r = t . length ; i < r ; i ++ ) if ( a ( t [ i ] , o ) ) { s = ! 1 ; break } return s } function o ( e ) { var t = function ( e ) { this . $$unwrapTrustedValue = function ( ) { return e } } ; return e && ( t . prototype = new e ) , t . prototype . valueOf = function ( ) { return this . $$unwrapTrustedValue ( ) } , t . prototype . toString = function ( ) { return this . $$unwrapTr
dr [ e ] = ! 0 } ) ; var ur = { ngMinlength : "minlength" , ngMaxlength : "maxlength" , ngMin : "min" , ngMax : "max" , ngPattern : "pattern" , ngStep : "step" } ; r ( { data : We , removeData : qe , hasData : Re , cleanData : function ( e ) { for ( var t = 0 , n = e . length ; t < n ; t ++ ) qe ( e [ t ] ) , Ve ( e [ t ] ) } } , function ( e , t ) { Fe [ t ] = e } ) , r ( { data : We , inheritedData : Ze , scope : function ( e ) { return ha . data ( e , "$scope" ) || Ze ( e . parentNode || e , [ "$isolateScope" , "$scope" ] ) } , isolateScope : function ( e ) { return ha . data ( e , "$isolateScope" ) || ha . data ( e , "$isolateScopeNoTemplate" ) } , controller : Je , injector : function ( e ) { return Ze ( e , "$injector" ) } , removeAttr : function ( e , t ) { e . removeAttribute ( t ) } , hasClass : Ge , css : function ( e , t , n ) { return t = Ee ( t ) , b ( n ) ? void ( e . style [ t ] = n ) : e . style [ t ] } , attr : function ( e , t , n ) { var i , a = e . nodeType ; if ( a !== za && a !== qa && a !== Wa && e . getAttribute ) { var r = ka ( t ) , o = cr [ r ] ; return b ( n ) ? void ( null === n || n === ! 1 && o ? e . removeAttribute ( t ) : e . setAttribute ( t , o ? r : n ) ) : ( i = e . getAttribute ( t ) , o && null !== i && ( i = r ) , null === i ? void 0 : i ) } } , prop : function ( e , t , n ) { return b ( n ) ? void ( e [ t ] = n ) : e [ t ] } , text : function ( ) { function e ( e , t ) { if ( y ( t ) ) { var n = e . nodeType ; return n === Va || n === za ? e . textContent : "" } e . textContent = t } return e . $dv = "" , e } ( ) , val : function ( e , t ) { if ( y ( t ) ) { if ( e . multiple && "select" === H ( e ) ) { var n = [ ] ; return r ( e . options , function ( e ) { e . selected && n . push ( e . value || e . text ) } ) , n } return e . value } e . value = t } , html : function ( e , t ) { return y ( t ) ? e . innerHTML : ( Be ( e , ! 0 ) , void ( e . innerHTML = t ) ) } , empty : Qe } , function ( e , t ) { Fe . prototype [ t ] = function ( t , n ) { var i , a , r = this . length ; if ( e !== Qe && y ( 2 === e . length && e !== Ge && e !== Je ? t : n ) ) { if ( w ( t ) ) { for ( i = 0 ; i < r ; i ++ ) if ( e === We ) e ( this [ i ] , t ) ; else for ( a in t ) e ( this [ i ] , a , t [ a ] ) ; return this } for ( var o = e . $dv , s = y ( o ) ? Math . min ( r , 1 ) : r , l = 0 ; l < s ; l ++ ) { var c = e ( this [ l ] , t , n ) ; o = o ? o + c : c } return o } for ( i = 0 ; i < r ; i ++ ) e ( this [ i ] , t , n ) ; return this } } ) , r ( { removeData : qe , on : function ( e , t , n , i ) { if ( b ( i ) ) throw tr ( "onargs" , "jqLite#on() does not support the `selector` or `eventData` parameters" ) ; if ( De ( e ) ) { var a = ze ( e , ! 0 ) , r = a . events , o = a . handle ; o || ( o = a . handle = rt ( e , r ) ) ; for ( var s = t . indexOf ( " " ) >= 0 ? t . split ( " " ) : [ t ] , l = s . length , c = function ( t , i , a ) { var s = r [ t ] ; s || ( s = r [ t ] = [ ] , s . specialHandlerWrapper = i , "$destroy" === t || a || e . addEventListener ( t , o ) ) , s . push ( n ) } ; l -- ; ) t = s [ l ] , er [ t ] ? ( c ( er [ t ] , st ) , c ( t , void 0 , ! 0 ) ) : c ( t ) } } , off : Ve , one : function ( e , t , n ) { e = ha ( e ) , e . on ( t , function i ( ) { e . off ( t , n ) , e . off ( t , i ) } ) , e . on ( t , n ) } , replaceWith : function ( e , t ) { var n , i = e . parentNode ; Be ( e ) , r ( new Fe ( t ) , function ( t ) { n ? i . insertBefore ( t , n . nextSibling ) : i . replaceChild ( t , e ) , n = t } ) } , children : function ( e ) { var t = [ ] ; return r ( e . childNodes , function ( e ) { e . nodeType === Va && t . push ( e ) } ) , t } , contents : function ( e ) { return e . contentDocument || e . childNodes || [ ] } , append : function ( e , t ) { var n = e . nodeType ; if ( n === Va || n === Ka ) { t = new Fe ( t ) ; for ( var i = 0 , a = t . length ; i < a ; i ++ ) { var r = t [ i ] ; e . appendChild ( r ) } } } , prepend : function ( e , t ) { if ( e . nodeType === Va ) { var n = e . firstChild ; r ( new Fe ( t ) , function ( t ) { e . insertBefore ( t , n ) } ) } } , wrap : function ( e , t ) { Le ( e , ha ( t ) . eq ( 0 ) . clone ( ) [ 0 ] ) } , remove : et , detach : function ( e ) { et ( e , ! 0 ) } , after : function ( e , t ) { var n = e , i = e . parentNode ; if ( i ) { t = new Fe ( t ) ; for ( var a = 0 , r = t . length ; a < r ; a ++ ) { var o = t [ a ] ; i . insertBefore ( o , n . nextSibling ) , n = o } } } , addClass : Ye , removeClass : Ke , toggleClass : function ( e , t , n ) { t && r ( t . split ( " " ) , function ( t ) { var i = n ; y ( i ) && ( i = ! Ge ( e , t ) ) , ( i ? Ye : Ke ) ( e , t ) } ) } , parent : function ( e ) { var t = e . parentNode ; return t && t . nodeType !== Ka ? t : null } , next : function ( e ) { return e . nextElementSibling } , find : function ( e , t ) { return e . getElementsByTagName ? e . getElementsByTagName ( t ) : [ ] } , clone : Ue , triggerHandler : function ( e , t , n ) { var i , a , o , s = t . type || t , l = ze ( e ) , c = l && l . events , d = c && c [ s ] ; d && ( i = { preventDefault : function ( ) { this . defaultPrevented = ! 0 } , isDefaultPrevented : function ( ) { return this . defaultPrevented === ! 0 } , stopImmediatePropagation : function ( ) { this . immediatePropagationStopped = ! 0 } , isImmediatePropagationStopped : function ( ) { return this . immediatePropagationStopped === ! 0 } , stopPropagation : h , type : s , target : e } , t . type && ( i = u ( i , t ) ) , a = Se ( d ) , o = n ? [ i ] . concat ( n ) : [ i ] , r ( a , function ( t ) { i . isImmediatePropagationStopped ( ) || t . apply ( e , o ) } ) ) } } , function ( e , t ) { Fe . prototype [ t ] = function ( t , n , i ) { for ( var a , r = 0 , o = this . length ; r < o ; r ++ ) y ( a ) ? ( a = e ( this [ r ] , t , n , i ) , b ( a ) && ( a = ha ( a ) ) ) : Xe ( a , e ( this [ r ] , t , n , i ) ) ; return b ( a ) ? a : this } } ) , Fe . prototype . bind = Fe . prototype . on , Fe . prototype . unbind = Fe . prototype
key : s . recurse ( e . key ) , computed : ! 0 , value : s . recurse ( e . value ) } ) : o . push ( { key : e . key . type === no . Identifier ? e . key . name : "" + e . key . value , computed : ! 1 , value : s . recurse ( e . value ) } ) } ) , function ( e , n , i , a ) { for ( var r = { } , s = 0 ; s < o . length ; ++ s ) o [ s ] . computed ? r [ o [ s ] . key ( e , n , i , a ) ] = o [ s ] . value ( e , n , i , a ) : r [ o [ s ] . key ] = o [ s ] . value ( e , n , i , a ) ; return t ? { value : r } : r } ; case no . ThisExpression : return function ( e ) { return t ? { value : e } : e } ; case no . LocalsExpression : return function ( e , n ) { return t ? { value : n } : n } ; case no . NGValueParameter : return function ( e , n , i ) { return t ? { value : i } : i } } } , "unary+" : function ( e , t ) { return function ( n , i , a , r ) { var o = e ( n , i , a , r ) ; return o = b ( o ) ? + o : 0 , t ? { value : o } : o } } , "unary-" : function ( e , t ) { return function ( n , i , a , r ) { var o = e ( n , i , a , r ) ; return o = b ( o ) ? - o : - 0 , t ? { value : o } : o } } , "unary!" : function ( e , t ) { return function ( n , i , a , r ) { var o = ! e ( n , i , a , r ) ; return t ? { value : o } : o } } , "binary+" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) , l = t ( i , a , r , o ) , c = bn ( s , l ) ; return n ? { value : c } : c } } , "binary-" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) , l = t ( i , a , r , o ) , c = ( b ( s ) ? s : 0 ) - ( b ( l ) ? l : 0 ) ; return n ? { value : c } : c } } , "binary*" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) * t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary/" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) / t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary%" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) % t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary===" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) === t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary!==" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) !== t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary==" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) == t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary!=" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) != t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary<" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) < t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary>" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) > t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary<=" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) <= t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary>=" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) >= t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary&&" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) && t ( i , a , r , o ) ; return n ? { value : s } : s } } , "binary||" : function ( e , t , n ) { return function ( i , a , r , o ) { var s = e ( i , a , r , o ) || t ( i , a , r , o ) ; return n ? { value : s } : s } } , "ternary?:" : function ( e , t , n , i ) { return function ( a , r , o , s ) { var l = e ( a , r , o , s ) ? t ( a , r , o , s ) : n ( a , r , o , s ) ; return i ? { value : l } : l } } , value : function ( e , t ) { return function ( ) { return t ? { context : void 0 , name : void 0 , value : e } : e } } , identifier : function ( e , t , n ) { return function ( i , a , r , o ) { var s = a && e in a ? a : i ; n && 1 !== n && s && null == s [ e ] && ( s [ e ] = { } ) ; var l = s ? s [ e ] : void 0 ; return t ? { context : s , name : e , value : l } : l } } , computedMember : function ( e , t , n , i ) { return function ( a , r , o , s ) { var l , c , d = e ( a , r , o , s ) ; return null != d && ( l = t ( a , r , o , s ) , l = vn ( l ) , i && 1 !== i && d && ! d [ l ] && ( d [ l ] = { } ) , c = d [ l ] ) , n ? { context : d , name : l , value : c } : c } } , nonComputedMember : function ( e , t , n , i ) { return function ( a , r , o , s ) { var l = e ( a , r , o , s ) ; i && 1 !== i && l && null == l [ t ] && ( l [ t ] = { } ) ; var c = null != l ? l [ t ] : void 0 ; return n ? { context : l , name : t , value : c } : c } } , inputs : function ( e , t ) { return function ( n , i , a , r ) { return r ? r [ t ] : e ( n , i , a ) } } } , xn . prototype = { constructor : xn , parse : function ( e ) { var t = this . getAst ( e ) , n = this . astCompiler . compile ( t . ast ) ; return n . literal = Tn ( t . ast ) , n . constant = $n ( t . ast ) , n . oneTime = t . oneTime , n } , getAst : function ( e ) { var t = ! 1 ; return e = e . trim ( ) , ":" === e . charAt ( 0 ) && ":" === e . charAt ( 1 ) && ( t = ! 0 , e = e . substring ( 2 ) ) , { ast : this . ast . ast ( e ) , oneTime : t } } } ; var ro , oo = i ( "$sce" ) , so = { HTML : "html" , CSS : "css" , MEDIA _URL : "mediaUrl" , URL : "url" , RESOURCE _URL : "resourceUrl" , JS : "js" } , lo = /_([a-z])/g , co = i ( "$templateRequest" ) , uo = i ( "$timeout" ) , po = e . document . createElement ( "a" ) , fo = ei ( e . location . href ) ; po . href = "http://[::1]" ; var mo = "[::1]" === po . hostname ; si . $inject = [ "$document" ] , ci . $inject = [ "$provide" ] ; var ho = 22 , go = "." , _o = "0" ; mi . $inject = [ "$locale" ] , hi . $inject = [ "$locale" ] ; var vo = { yyyy : bi ( "FullYear" , 4 , 0 , ! 1 , ! 0 ) , yy : bi ( "FullYear" , 2 , 0 , ! 0 , ! 0 ) , y : bi ( "FullYear" , 1 , 0 , ! 1 , ! 0 ) , MMMM : wi ( "Month" ) , MMM : wi ( "Month" , ! 0 ) , MM : bi ( "Month" , 2 , 1 ) , M : bi ( "Month" , 1 , 1 )
r . ngModelCtrl . $render ( ) } ) ) } function a ( e ) { l || ( l = ! 0 , n . $$postDigest ( function ( ) { n . $$destroyed || ( l = ! 1 , r . ngModelCtrl . $setViewValue ( r . readValue ( ) ) , e && r . ngModelCtrl . $render ( ) ) } ) ) } var r = this , o = new fr ; r . selectValueMap = { } , r . ngModelCtrl = Hs , r . multiple = ! 1 , r . unknownOption = ha ( e . document . createElement ( "option" ) ) , r . hasEmptyOption = ! 1 , r . emptyOption = void 0 , r . renderUnknownOption = function ( e ) { var n = r . generateUnknownOptionValue ( e ) ; r . unknownOption . val ( n ) , t . prepend ( r . unknownOption ) , ua ( r . unknownOption , ! 0 ) , t . val ( n ) } , r . updateUnknownOption = function ( e ) { var n = r . generateUnknownOptionValue ( e ) ; r . unknownOption . val ( n ) , ua ( r . unknownOption , ! 0 ) , t . val ( n ) } , r . generateUnknownOptionValue = function ( e ) { return "? " + ct ( e ) + " ?" } , r . removeUnknownOption = function ( ) { r . unknownOption . parent ( ) && r . unknownOption . remove ( ) } , r . selectEmptyOption = function ( ) { r . emptyOption && ( t . val ( "" ) , ua ( r . emptyOption , ! 0 ) ) } , r . unselectEmptyOption = function ( ) { r . hasEmptyOption && ua ( r . emptyOption , ! 1 ) } , n . $on ( "$destroy" , function ( ) { r . renderUnknownOption = h } ) , r . readValue = function ( ) { var e = t . val ( ) , n = e in r . selectValueMap ? r . selectValueMap [ e ] : e ; return r . hasOption ( n ) ? n : null } , r . writeValue = function ( e ) { var n = t [ 0 ] . options [ t [ 0 ] . selectedIndex ] ; if ( n && ua ( ha ( n ) , ! 1 ) , r . hasOption ( e ) ) { r . removeUnknownOption ( ) ; var i = ct ( e ) ; t . val ( i in r . selectValueMap ? i : e ) ; var a = t [ 0 ] . options [ t [ 0 ] . selectedIndex ] ; ua ( ha ( a ) , ! 0 ) } else r . selectUnknownOrEmptyOption ( e ) } , r . addOption = function ( e , t ) { if ( t [ 0 ] . nodeType !== Wa ) { ve ( e , '"option value"' ) , "" === e && ( r . hasEmptyOption = ! 0 , r . emptyOption = t ) ; var n = o . get ( e ) || 0 ; o . set ( e , n + 1 ) , i ( ) } } , r . removeOption = function ( e ) { var t = o . get ( e ) ; t && ( 1 === t ? ( o [ "delete" ] ( e ) , "" === e && ( r . hasEmptyOption = ! 1 , r . emptyOption = void 0 ) ) : o . set ( e , t - 1 ) ) } , r . hasOption = function ( e ) { return ! ! o . get ( e ) } , r . $hasEmptyOption = function ( ) { return r . hasEmptyOption } , r . $isUnknownOptionSelected = function ( ) { return t [ 0 ] . options [ 0 ] === r . unknownOption [ 0 ] } , r . $isEmptyOptionSelected = function ( ) { return r . hasEmptyOption && t [ 0 ] . options [ t [ 0 ] . selectedIndex ] === r . emptyOption [ 0 ] } , r . selectUnknownOrEmptyOption = function ( e ) { null == e && r . emptyOption ? ( r . removeUnknownOption ( ) , r . selectEmptyOption ( ) ) : r . unknownOption . parent ( ) . length ? r . updateUnknownOption ( e ) : r . renderUnknownOption ( e ) } ; var s = ! 1 , l = ! 1 ; r . registerOption = function ( e , t , n , o , s ) { if ( n . $attr . ngValue ) { var l , c ; n . $observe ( "value" , function ( e ) { var n , i = t . prop ( "selected" ) ; b ( c ) && ( r . removeOption ( l ) , delete r . selectValueMap [ c ] , n = ! 0 ) , c = ct ( e ) , l = e , r . selectValueMap [ c ] = e , r . addOption ( e , t ) , t . attr ( "value" , c ) , n && i && a ( ) } ) } else o ? n . $observe ( "value" , function ( e ) { r . readValue ( ) ; var n , i = t . prop ( "selected" ) ; b ( l ) && ( r . removeOption ( l ) , n = ! 0 ) , l = e , r . addOption ( e , t ) , n && i && a ( ) } ) : s ? e . $watch ( s , function ( e , i ) { n . $set ( "value" , e ) ; var o = t . prop ( "selected" ) ; i !== e && r . removeOption ( i ) , r . addOption ( e , t ) , i && o && a ( ) } ) : r . addOption ( n . value , t ) ; n . $observe ( "disabled" , function ( e ) { ( "true" === e || e && t . prop ( "selected" ) ) && ( r . multiple ? a ( ! 0 ) : ( r . ngModelCtrl . $setViewValue ( null ) , r . ngModelCtrl . $render ( ) ) ) } ) , t . on ( "$destroy" , function ( ) { var e = r . readValue ( ) , t = n . value ; r . removeOption ( t ) , i ( ) , ( r . multiple && e && e . indexOf ( t ) !== - 1 || e === t ) && a ( ! 0 ) } ) } } ] , Vs = function ( ) { function e ( e , t , n , i ) { var a = i [ 0 ] , o = i [ 1 ] ; if ( ! o ) return void ( a . registerOption = h ) ; if ( a . ngModelCtrl = o , t . on ( "change" , function ( ) { a . removeUnknownOption ( ) , e . $apply ( function ( ) { o . $setViewValue ( a . readValue ( ) ) } ) } ) , n . multiple ) { a . multiple = ! 0 , a . readValue = function ( ) { var e = [ ] ; return r ( t . find ( "option" ) , function ( t ) { if ( t . selected && ! t . disabled ) { var n = t . value ; e . push ( n in a . selectValueMap ? a . selectValueMap [ n ] : n ) } } ) , e } , a . writeValue = function ( e ) { r ( t . find ( "option" ) , function ( t ) { var n = ! ! e && ( j ( e , t . value ) || j ( e , a . selectValueMap [ t . value ] ) ) , i = t . selected ; n !== i && ua ( ha ( t ) , n ) } ) } ; var s , l = NaN ; e . $watch ( function ( ) { l !== o . $viewValue || W ( s , o . $viewValue ) || ( s = Se ( o . $viewValue ) , o . $render ( ) ) , l = o . $viewValue } ) , o . $isEmpty = function ( e ) { return ! e || 0 === e . length } } } function t ( e , t , n , i ) { var a = i [ 1 ] ; if ( a ) { var r = i [ 0 ] ; a . $render = function ( ) { r . writeValue ( a . $viewValue ) } } } return { restrict : "E" , require : [ "select" , "?ngModel" ] , controller : js , priority : 1 , link : { pre : e , post : t } } } , qs = [ "$interpolate" , function ( e ) { return { restrict : "E" , priority : 100 , compile : function ( t , n ) { var i , a ; return b ( n . ngValue ) || ( b ( n . value ) ? i = e ( n . value , ! 0 ) : ( a = e ( t . text ( ) , ! 0 ) , a || n . $set ( "value" , t . text ( ) ) ) ) , functio
if ( O || z && j . state === d || ( O = ! F ( w , S , t ) ) , O ) return R && l ( C , t , "start" , i ( h ) ) , u ( ) , R && l ( C , t , "close" , i ( h ) ) , C ; P && N ( w ) ; var K = { structural : P , element : _ , event : t , addClass : h . addClass , removeClass : h . removeClass , close : u , options : h , runner : C } ; if ( z ) { var Y = o ( "skip" , K , j ) ; if ( Y ) return j . state === m ? ( u ( ) , C ) : ( g ( _ , j , K ) , j . runner ) ; var X = o ( "cancel" , K , j ) ; if ( X ) if ( j . state === m ) j . runner . end ( ) ; else { if ( ! j . structural ) return g ( _ , j , K ) , j . runner ; j . close ( ) } else { var Q = o ( "join" , K , j ) ; if ( Q ) { if ( j . state !== m ) return y ( A , _ , P ? t : null , h ) , t = K . event = j . event , h = g ( _ , j , K ) , j . runner ; I ( _ , K ) } } } else I ( _ , K ) ; var ee = K . structural ; if ( ee || ( ee = "animate" === K . event && Object . keys ( K . options . to || { } ) . length > 0 || c ( K ) ) , ! ee ) return u ( ) , L ( w ) , C ; var te = ( j . counter || 0 ) + 1 ; return K . counter = te , U ( w , d , K ) , r . $$postDigest ( function ( ) { _ = s ( e ) ; var n = B . get ( w ) , a = ! n ; n = n || { } ; var r = _ . parent ( ) || [ ] , o = r . length > 0 && ( "animate" === n . event || n . structural || c ( n ) ) ; if ( a || n . counter !== te || ! o ) return a && ( se ( _ , h ) , f ( _ , h ) ) , ( a || P && n . event !== t ) && ( h . domOperation ( ) , C . end ( ) ) , void ( o || L ( w ) ) ; t = ! n . structural && c ( n , ! 0 ) ? "setClass" : n . event , U ( w , m ) ; var d = k ( _ , t , n . options ) ; C . setHost ( d ) , l ( C , t , "start" , i ( h ) ) , d . done ( function ( e ) { u ( ! e ) ; var n = B . get ( w ) ; n && n . counter === te && L ( w ) , l ( C , t , "close" , i ( h ) ) } ) } ) , C } function N ( e ) { var t = e . querySelectorAll ( "[" + Te + "]" ) ; W ( t , function ( e ) { var t = parseInt ( e . getAttribute ( Te ) , 10 ) , n = B . get ( e ) ; if ( n ) switch ( t ) { case m : n . runner . end ( ) ; case d : B [ "delete" ] ( e ) } } ) } function L ( e ) { e . removeAttribute ( Te ) , B [ "delete" ] ( e ) } function F ( e , t , n ) { var i , a = _ [ 0 ] . body , r = v ( h ) , o = e === a || "HTML" === e . nodeName , s = e === r , l = ! 1 , c = H . get ( e ) , d = ee . data ( e , $e ) ; for ( d && ( t = v ( d ) ) ; t && ( s || ( s = t === r ) , t . nodeType === O ) ; ) { var u = B . get ( t ) || { } ; if ( ! l ) { var p = H . get ( t ) ; if ( p === ! 0 && c !== ! 1 ) { c = ! 0 ; break } p === ! 1 && ( c = ! 1 ) , l = u . structural } if ( Q ( i ) || i === ! 0 ) { var f = ee . data ( t , j ) ; K ( f ) && ( i = f ) } if ( l && i === ! 1 ) break ; if ( o || ( o = t === a ) , o && s ) break ; t = s || ! ( d = ee . data ( t , $e ) ) ? t . parentNode : v ( d ) } var m = ( ! l || i ) && c !== ! 0 ; return m && s && o } function U ( e , t , n ) { n = n || { } , n . state = t , e . setAttribute ( Te , t ) ; var i = B . get ( e ) , a = i ? z ( i , n ) : n ; B . set ( e , a ) } var B = new w , H = new w , V = null , X = r . $watch ( function ( ) { return 0 === S . totalPendingRequests } , function ( e ) { e && ( X ( ) , r . $$postDigest ( function ( ) { r . $$postDigest ( function ( ) { null === V && ( V = ! 0 ) } ) } ) ) } ) , te = Object . create ( null ) , ne = t . customFilter ( ) , ie = t . classNameFilter ( ) , ae = function ( ) { return ! 0 } , re = ne || ae , oe = ie ? function ( e , t ) { var n = [ e . getAttribute ( "class" ) , t . addClass , t . removeClass ] . join ( " " ) ; return ie . test ( n ) } : ae , se = u ( A ) , le = e . Node . prototype . contains || function ( e ) { return this === e || ! ! ( 16 & this . compareDocumentPosition ( e ) ) } , ce = { on : function ( e , t , n ) { var i = l ( t ) ; te [ e ] = te [ e ] || [ ] , te [ e ] . push ( { node : i , callback : n } ) , ee ( t ) . on ( "$destroy" , function ( ) { var a = B . get ( i ) ; a || ce . off ( e , t , n ) } ) } , off : function ( e , t , n ) { if ( 1 !== arguments . length || Z ( arguments [ 0 ] ) ) { var i = te [ e ] ; i && ( te [ e ] = 1 === arguments . length ? null : P ( i , t , n ) ) } else { t = arguments [ 0 ] ; for ( var a in te ) te [ a ] = P ( te [ a ] , t ) } } , pin : function ( e , t ) { n ( Y ( e ) , "element" , "not an element" ) , n ( Y ( t ) , "parentElement" , "not an element" ) , e . data ( $e , t ) } , push : function ( e , t , n , i ) { return n = n || { } , n . domOperation = i , R ( e , t , n ) } , enabled : function ( e , t ) { var n = arguments . length ; if ( 0 === n ) t = ! ! V ; else { var i = Y ( e ) ; if ( i ) { var a = v ( e ) ; 1 === n ? t = ! H . get ( a ) : ( H . has ( a ) || ee ( e ) . on ( "$destroy" , $ ) , H . set ( a , ! t ) ) } else t = V = ! ! e } return t } } ; return ce } ] } ] , Ie = function ( ) { var e = "$$ngAnimateParentKey" , t = 0 , n = Object . create ( null ) ; this . $get = [ function ( ) { return { cacheKey : function ( n , i , a , r ) { var o = n . parentNode , s = o [ e ] || ( o [ e ] = ++ t ) , l = [ s , i , n . getAttribute ( "class" ) ] ; return a && l . push ( a ) , r && l . push ( r ) , l . join ( " " ) } , containsCachedAnimationWithoutDuration : function ( e ) { var t = n [ e ] ; return t && ! t . isValid || ! 1 } , flush : function ( ) { n = Object . create ( null ) } , count : function ( e ) { var t = n [ e ] ; return t ? t . total : 0 } , get : function ( e ) { var t = n [ e ] ; return t && t . value } , put : function ( e , t , i ) { n [ e ] ? ( n [ e ] . total ++ , n [ e ] . value = t ) : n [ e ] = { total : 1 , value : t , isValid : i } } } } ] } , xe = [ "$animateProvider" , function ( e ) { function t ( e , t ) { e . data ( s , t ) } function n ( e ) { e . removeData ( s ) } function a ( e ) { return e . data ( s ) } var r = "ng-animate-ref" , o = this . drivers = [ ] , s = "$$animationRunner" , l = "$$animatePrepareClasses" ; this . $get = [ "$$jqLite" , "$rootScope" , "$injector" , "$$AnimateRunner" , "$$Map" , "$$rAFScheduler" , "$$animateCache" , function ( e , s , c , d , m , h , g ) { function _ ( e ) { function t ( e ) { if ( e . processed ) return e ; e . processed = ! 0 ; var n = e . domNode ,
if ( e . currentTrack ) { r = i ? i [ e . currentTrack - 1 ] : - 1 ; for ( var s = 0 ; s < t . length ; s ++ ) if ( angular . equals ( t [ s ] , r ) ) { o = s ; break } null !== o ? ( e . currentTrack = o + 1 , e . tracks = t . length ) : ( e . pause ( ) , t . length ? n ( function ( ) { e . $clearSourceList ( ) , e . $addSourceList ( t [ 0 ] ) , e . load ( ) , e . tracks = t . length } ) : e . reset ( ) ) } else t . length ? ( e . $clearSourceList ( ) , e . $addSourceList ( t [ 0 ] ) , e . load ( ) , e . tracks = t . length ) : e . reset ( ) } } var o = { load : function ( e , t ) { if ( "boolean" == typeof e ? ( t = e , e = null ) : "object" == typeof e && ( this . $clearSourceList ( ) , this . $addSourceList ( e ) ) , this . $domEl . load ( ) , this . ended = void 0 , t ) { var n = "OGVJS" == this . $domEl . tagName ? "loadeddata" : "canplay" ; this . $element . one ( n , this . play . bind ( this ) ) } } , reset : function ( e ) { angular . extend ( this , a ) , this . $clearSourceList ( ) , this . load ( this . $playlist , e ) } , play : function ( e , t ) { return "boolean" == typeof e && ( t = e , e = void 0 ) , t && ( this . $selective = ! 0 ) , this . $playlist . length > e ? ( this . currentTrack = e + 1 , this . load ( this . $playlist [ e ] , ! 0 ) ) : ( ! this . currentTrack && this . $domEl . readyState && this . currentTrack ++ , void ( this . ended ? this . load ( ! 0 ) : this . $domEl . play ( ) ) ) } , playPause : function ( e , t ) { "boolean" == typeof e && ( t = e , e = void 0 ) , t && ( this . $selective = ! 0 ) , "number" == typeof e && e + 1 !== this . currentTrack ? this . play ( e ) : this . playing ? this . pause ( ) : this . play ( ) } , pause : function ( ) { this . $domEl . pause ( ) } , stop : function ( ) { this . reset ( ) } , toggleMute : function ( ) { this . muted = this . $domEl . muted = ! this . $domEl . muted } , next : function ( e ) { var t = this ; if ( t . currentTrack && t . currentTrack < t . tracks ) { var i = e || t . playing ; t . pause ( ) , n ( function ( ) { t . $clearSourceList ( ) , t . $addSourceList ( t . $playlist [ t . currentTrack ] ) , t . load ( i ) , t . currentTrack ++ } ) } } , prev : function ( e ) { var t = this ; if ( t . currentTrack && t . currentTrack - 1 ) { var i = e || t . playing ; t . pause ( ) , n ( function ( ) { t . $clearSourceList ( ) , t . $addSourceList ( t . $playlist [ t . currentTrack - 2 ] ) , t . load ( i ) , t . currentTrack -- } ) } } , setPlaybackRate : function ( e ) { this . $domEl . playbackRate = e } , setVolume : function ( e ) { this . $domEl . volume = e } , seek : function ( e ) { var t , n = 0 ; return "string" != typeof e ? this . $domEl . currentTime = e : ( t = e . split ( ":" ) , n += parseInt ( t . pop ( ) , 10 ) , t . length && ( n += 60 * parseInt ( t . pop ( ) , 10 ) ) , t . length && ( n += 3600 * parseInt ( t . pop ( ) , 10 ) ) , isNaN ( n ) ? void 0 : this . $domEl . currentTime = n ) } , on : function ( e , t ) { return this . $element . on ( e , t ) } , off : function ( e , t ) { return this . $element . off ( e , t ) } , one : function ( e , t ) { return this . $element . one ( e , t ) } , $addSourceList : function ( e ) { var t = this ; if ( angular . isArray ( e ) ) angular . forEach ( e , function ( e , n ) { var i = document . createElement ( "SOURCE" ) ; [ "src" , "type" , "media" ] . forEach ( function ( t ) { void 0 !== e [ t ] && i . setAttribute ( t , e [ t ] ) } ) , t . $element . append ( i ) } ) ; else if ( angular . isObject ( e ) ) { var n = document . createElement ( "SOURCE" ) ; [ "src" , "type" , "media" ] . forEach ( function ( t ) { void 0 !== e [ t ] && n . setAttribute ( t , e [ t ] ) } ) , t . $element . append ( n ) } } , $clearSourceList : function ( ) { this . $element . contents ( ) . remove ( ) } , $formatTime : function ( e ) { if ( e === 1 / 0 ) return "∞" ; var t , n = parseInt ( e / 3600 , 10 ) % 24 , i = parseInt ( e / 60 , 10 ) % 60 , a = parseInt ( e % 60 , 10 ) , r = ( i < 10 ? "0" + i : i ) + ":" + ( a < 10 ? "0" + a : a ) ; return t = n > 0 ? ( n < 10 ? "0" + n : n ) + ":" + r : r } , $attachPlaylist : function ( e ) { void 0 === e || null === e ? this . playlist = [ ] : this . $playlist = e } } , s = function ( e , t , n ) { var a = function ( e ) { e . currentTime = t . currentTime , e . formatTime = e . $formatTime ( e . currentTime ) } , r = { playing : function ( ) { e . $apply ( function ( e ) { e . playing = ! 0 , e . ended = ! 1 } ) } , pause : function ( ) { e . $apply ( function ( e ) { e . playing = ! 1 } ) } , ended : function ( ) { ! e . $selective && e . currentTrack < e . tracks ? e . next ( ! 0 ) : e . $apply ( function ( e ) { e . ended = ! 0 , e . playing = ! 1 , a ( e ) } ) } , timeupdate : i ( 1e3 , ! 1 , function ( ) { e . $apply ( function ( e ) { a ( e ) } ) } ) , loadedmetadata : function ( ) { e . $apply ( function ( e ) { e . currentTrack || e . currentTrack ++ , e . duration = t . duration , e . formatDuration = e . $formatTime ( e . duration ) , t . buffered . length && ( e . loadPercent = Math . round ( t . buffered . end ( t . buffered . length - 1 ) / e . duration * 100 ) ) , a ( e ) } ) } , progress : function ( ) { e . $domEl . buffered . length && e . $apply ( function ( e ) { e . loadPercent = Math . round ( t . buffered . end ( t . buffered . length - 1 ) / e . duration * 100 ) , e . network = "progress" } ) } , volumechange : function ( ) { e . $apply ( function ( e ) { e . volume = t . volume , e . muted = t . muted } ) } , seeked : function ( ) { e . $apply ( function ( e ) { e . seeking = ! 1 } ) } , seeking : function ( ) { e . $apply ( function ( e ) { e . seeking = ! 0 } ) } , ratechange : function ( ) { e . $apply ( function ( e ) { e . playbackRate = t . playbackRat
i . prototype . getName = function ( ) { return this . name } , i . prototype . getData = function ( ) { return this . data } , i . prototype . G = function ( ) { return this . H } , t ( "Zlib.GunzipMember" , i ) , t ( "Zlib.GunzipMember.prototype.getName" , i . prototype . getName ) , t ( "Zlib.GunzipMember.prototype.getData" , i . prototype . getData ) , t ( "Zlib.GunzipMember.prototype.getMtime" , i . prototype . G ) ; var v , y = [ ] ; for ( v = 0 ; 288 > v ; v ++ ) switch ( ! 0 ) { case 143 >= v : y . push ( [ v + 48 , 8 ] ) ; break ; case 255 >= v : y . push ( [ v - 144 + 400 , 9 ] ) ; break ; case 279 >= v : y . push ( [ v - 256 + 0 , 7 ] ) ; break ; case 287 >= v : y . push ( [ v - 280 + 192 , 8 ] ) ; break ; default : e ( "invalid literal: " + v ) } var b = function ( ) { function t ( t ) { switch ( ! 0 ) { case 3 === t : return [ 257 , t - 3 , 0 ] ; case 4 === t : return [ 258 , t - 4 , 0 ] ; case 5 === t : return [ 259 , t - 5 , 0 ] ; case 6 === t : return [ 260 , t - 6 , 0 ] ; case 7 === t : return [ 261 , t - 7 , 0 ] ; case 8 === t : return [ 262 , t - 8 , 0 ] ; case 9 === t : return [ 263 , t - 9 , 0 ] ; case 10 === t : return [ 264 , t - 10 , 0 ] ; case 12 >= t : return [ 265 , t - 11 , 1 ] ; case 14 >= t : return [ 266 , t - 13 , 1 ] ; case 16 >= t : return [ 267 , t - 15 , 1 ] ; case 18 >= t : return [ 268 , t - 17 , 1 ] ; case 22 >= t : return [ 269 , t - 19 , 2 ] ; case 26 >= t : return [ 270 , t - 23 , 2 ] ; case 30 >= t : return [ 271 , t - 27 , 2 ] ; case 34 >= t : return [ 272 , t - 31 , 2 ] ; case 42 >= t : return [ 273 , t - 35 , 3 ] ; case 50 >= t : return [ 274 , t - 43 , 3 ] ; case 58 >= t : return [ 275 , t - 51 , 3 ] ; case 66 >= t : return [ 276 , t - 59 , 3 ] ; case 82 >= t : return [ 277 , t - 67 , 4 ] ; case 98 >= t : return [ 278 , t - 83 , 4 ] ; case 114 >= t : return [ 279 , t - 99 , 4 ] ; case 130 >= t : return [ 280 , t - 115 , 4 ] ; case 162 >= t : return [ 281 , t - 131 , 5 ] ; case 194 >= t : return [ 282 , t - 163 , 5 ] ; case 226 >= t : return [ 283 , t - 195 , 5 ] ; case 257 >= t : return [ 284 , t - 227 , 5 ] ; case 258 === t : return [ 285 , t - 258 , 0 ] ; default : e ( "invalid length: " + t ) } } var n , i , a = [ ] ; for ( n = 3 ; 258 >= n ; n ++ ) i = t ( n ) , a [ n ] = i [ 2 ] << 24 | i [ 1 ] << 16 | i [ 0 ] ; return a } ( ) ; p && new Uint32Array ( b ) ; var w = 0 , k = 1 ; r . prototype . g = function ( ) { for ( ; ! this . o ; ) { var t = o ( this , 3 ) ; switch ( 1 & t && ( this . o = ! 0 ) , t >>>= 1 ) { case 0 : var n = this . input , i = this . c , a = this . b , r = this . a , s = d , c = d , u = d , f = a . length , m = d ; switch ( this . d = this . f = 0 , s = n [ i ++ ] , s === d && e ( Error ( "invalid uncompressed block header: LEN (first byte)" ) ) , c = s , s = n [ i ++ ] , s === d && e ( Error ( "invalid uncompressed block header: LEN (second byte)" ) ) , c |= s << 8 , s = n [ i ++ ] , s === d && e ( Error ( "invalid uncompressed block header: NLEN (first byte)" ) ) , u = s , s = n [ i ++ ] , s === d && e ( Error ( "invalid uncompressed block header: NLEN (second byte)" ) ) , u |= s << 8 , c === ~ u && e ( Error ( "invalid uncompressed block header: length verify" ) ) , i + c > n . length && e ( Error ( "input buffer is broken" ) ) , this . k ) { case w : for ( ; r + c > a . length ; ) { if ( m = f - r , c -= m , p ) a . set ( n . subarray ( i , i + m ) , r ) , r += m , i += m ; else for ( ; m -- ; ) a [ r ++ ] = n [ i ++ ] ; this . a = r , a = this . e ( ) , r = this . a } break ; case k : for ( ; r + c > a . length ; ) a = this . e ( { t : 2 } ) ; break ; default : e ( Error ( "invalid inflate mode" ) ) } if ( p ) a . set ( n . subarray ( i , i + c ) , r ) , r += c , i += c ; else for ( ; c -- ; ) a [ r ++ ] = n [ i ++ ] ; this . c = i , this . a = r , this . b = a ; break ; case 1 : this . l ( F , B ) ; break ; case 2 : l ( this ) ; break ; default : e ( Error ( "unknown BTYPE: " + t ) ) } } return this . q ( ) } ; var M , S , A = [ 16 , 17 , 18 , 0 , 8 , 7 , 9 , 6 , 10 , 5 , 11 , 4 , 12 , 3 , 13 , 2 , 14 , 1 , 15 ] , C = p ? new Uint16Array ( A ) : A , T = [ 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 13 , 15 , 17 , 19 , 23 , 27 , 31 , 35 , 43 , 51 , 59 , 67 , 83 , 99 , 115 , 131 , 163 , 195 , 227 , 258 , 258 , 258 ] , $ = p ? new Uint16Array ( T ) : T , E = [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 0 , 0 , 0 ] , I = p ? new Uint8Array ( E ) : E , x = [ 1 , 2 , 3 , 4 , 5 , 7 , 9 , 13 , 17 , 25 , 33 , 49 , 65 , 97 , 129 , 193 , 257 , 385 , 513 , 769 , 1025 , 1537 , 2049 , 3073 , 4097 , 6145 , 8193 , 12289 , 16385 , 24577 ] , P = p ? new Uint16Array ( x ) : x , D = [ 0 , 0 , 0 , 0 , 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 6 , 6 , 7 , 7 , 8 , 8 , 9 , 9 , 10 , 10 , 11 , 11 , 12 , 12 , 13 , 13 ] , R = p ? new Uint8Array ( D ) : D , O = new ( p ? Uint8Array : Array ) ( 288 ) ; for ( M = 0 , S = O . length ; M < S ; ++ M ) O [ M ] = 143 >= M ? 8 : 255 >= M ? 9 : 279 >= M ? 7 : 8 ; var N , L , F = a ( O ) , U = new ( p ? Uint8Array : Array ) ( 30 ) ; for ( N = 0 , L = U . length ; N < L ; ++ N ) U [ N ] = 5 ; var B = a ( U ) ; r . prototype . l = function ( e , t ) { var n = this . b , i = this . a ; this . r = e ; for ( var a , r , l , c , d = n . length - 258 ; 256 !== ( a = s ( this , e ) ) ; ) if ( 256 > a ) i >= d && ( this . a = i , n = this . e ( ) , i = this . a ) , n [ i ++ ] = a ; else for ( r = a - 257 , c = $ [ r ] , 0 < I [ r ] && ( c += o ( this , I [ r ] ) ) , a = s ( this , t ) , l = P [ a ] , 0 < R [ a ] && ( l += o ( this , R [ a ] ) ) , i >= d && ( this . a = i , n = this . e ( ) , i = this . a ) ; c -- ; ) n [ i ] = n [ i ++ - l ] ; for ( ; 8 <= this . d ; ) this . d -= 8 , this . c -- ; this . a = i } , r . prototype . C = function ( e , t ) { var n = this . b , i = this . a ; this . r = e ; for ( var a , r , l , c , d = n . length ; 256 !== ( a = s ( this , e ) ) ; ) if ( 256 > a ) i >= d && ( n = this . e ( ) , d = n . length ) , n [ i ++ ] = a ; else for ( r = a - 257 , c = $ [ r ] , 0 < I [ r ] && ( c += o ( this , I [ r ] ) ) , a = s ( this , t ) , l = P [ a ] , 0 < R [ a ] && ( l += o ( this , R [ a ] ) ) , i + c > d && ( n = this . e ( ) , d = n . length ) ; c
Ee [ Ee . length - 1 ] += 16 ; Re [ Ue + Fe ] = Ze } Ne |= Me ( Pe , 8 - 2 * Ue ) , Oe |= Me ( xe , 8 - 2 * Ue ) } ye |= Me ( De , 20 ) , Se |= Me ( Re , 20 ) , Y . X = ye , Ie . X = Se , H . z = Ee , H . Oa = Oe + 0 , H . ja = Oe | Ne , Y . Nb = ! H . ja + 0 } B = ! j . Ab } if ( ! B ) { l = be ( e , "VP8_STATUS_NOT_ENOUGH_DATA" , "Premature end-of-file encountered." + e . i + " " + e . d ) ; break e } var et = e , tt = et . Ea , nt = hi , it = et . Ea , at = gi , rt = et . Ea , ot = _i ; if ( 0 < et . i ) { for ( var st = m , st = - 1 ; 16 > st ; ++ st ) ge ( tt , nt + st * fi - 4 , tt , nt + st * fi + 12 ) ; for ( st = - 1 ; 8 > st ; ++ st ) ge ( it , at + st * fi - 4 , it , at + st * fi + 4 ) , ge ( rt , ot + st * fi - 4 , rt , ot + st * fi + 4 ) } else { for ( st = 0 ; 16 > st ; ++ st ) tt [ nt + st * fi - 1 ] = 129 ; for ( st = 0 ; 8 > st ; ++ st ) it [ at + st * fi - 1 ] = 129 , rt [ ot + st * fi - 1 ] = 129 ; 0 < et . d && ( tt [ nt - 1 - fi ] = it [ at - 1 - fi ] = rt [ ot - 1 - fi ] = 129 ) } var lt = et . Xc , ct = 16 * + et . i , dt = et . Sc , ut = 8 * + et . i , pt = et . Vc , ft = 8 * + et . i , mt = et . z , ht = m ; if ( 0 < et . d ) t ( tt , nt - fi , lt , ct , 16 ) , t ( it , at - fi , dt , ut , 8 ) , t ( rt , ot - fi , pt , ft , 8 ) ; else if ( 0 == et . i ) { for ( i = 0 ; 21 > i ; ++ i ) tt [ nt - fi - 1 + i ] = 127 ; for ( i = 0 ; 9 > i ; ++ i ) it [ at - fi - 1 + i ] = 127 ; for ( i = 0 ; 9 > i ; ++ i ) rt [ ot - fi - 1 + i ] = 127 } if ( et . wa ) { var gt = nt - fi + 16 ; 0 < et . d && ( et . i >= et . Ma - 1 ? tt [ gt + 0 ] = tt [ gt + 1 ] = tt [ gt + 2 ] = tt [ gt + 3 ] = lt [ ct + 15 ] : t ( tt , gt + 0 , lt , ct + 16 , 4 ) ) ; for ( var _t = 0 ; 4 > _t ; ++ _t ) tt [ _t + gt + 4 * fi ] = tt [ _t + gt + 4 * fi ] = tt [ _t + gt + 8 * fi ] = tt [ _t + gt + 12 * fi ] = tt [ _t + gt + 0 ] ; for ( ht = 0 ; 16 > ht ; ht ++ ) { var vt = tt , yt = nt + ga [ ht ] ; ca [ et . Eb [ ht ] ] ( vt , yt ) , et . Oa & 1 << ht ? Ui ( mt , 16 * + ht , vt , yt , 0 ) : et . ja & 1 << ht && Hi ( mt , 16 * + ht , vt , yt ) } } else { var bt = he ( et , et . Eb [ 0 ] ) ; if ( da [ bt ] ( tt , nt ) , et . ja ) for ( ht = 0 ; 16 > ht ; ht ++ ) vt = tt , yt = nt + ga [ ht ] , et . Oa & 1 << ht ? Ui ( mt , 16 * + ht , vt , yt , 0 ) : et . ja & 1 << ht && Hi ( mt , 16 * + ht , vt , yt ) } if ( bt = he ( et , et . Tc ) , ua [ bt ] ( it , at ) , ua [ bt ] ( rt , ot ) , 983040 & et . ja ) { var wt = et . z , kt = 256 ; 983040 & et . Oa ? Bi ( wt , kt , it , at ) : ji ( wt , kt , it , at ) } if ( 15728640 & et . ja ) { var Mt = et . z , kt = 320 ; 15728640 & et . Oa ? Bi ( Mt , kt , rt , ot ) : ji ( Mt , kt , rt , ot ) } et . d < et . hb - 1 && ( t ( lt , ct , tt , nt + 15 * fi , 16 ) , t ( dt , ut , it , at + 7 * fi , 8 ) , t ( pt , ft , rt , ot + 7 * fi , 8 ) ) ; var St = e ; if ( 0 < St . A ) { var At = St . M [ 1 + St . i ] , Ct = St . La [ 1 + St . i ] . Nb , Tt = St . Zb [ St . Lb ] ; St . ga . oc && ( Tt += St . ga . Lc [ 0 ] , St . wa && ( Tt += St . ga . Gc [ 0 ] ) ) , Tt = 0 > Tt ? 0 : 63 < Tt ? 63 : Tt , At . zc = Tt , 0 < St . ga . kb && ( Tt = 4 < St . ga . kb ? Tt >> 2 : Tt >> 1 , Tt > 9 - St . ga . kb && ( Tt = 9 - St . ga . kb ) ) , At . yc = 1 > Tt ? 1 : Tt , At . ab = ( ! Ct || St . wa ) + 0 } for ( var $t = m , Et = 8 * St . Ja * St . r , It = St . ca , xt = St . da + 16 * St . i + 16 * St . Ja * St . H , Pt = St . aa , Dt = St . ba + 8 * St . i + Et , Rt = St . ra , Ot = St . sa + 8 * St . i + Et , $t = 0 ; 16 > $t ; ++ $t ) t ( It , xt + $t * St . H , St . Ea , + hi + $t * fi , 16 ) ; for ( $t = 0 ; 8 > $t ; ++ $t ) t ( Pt , Dt + $t * St . r , St . Ea , + gi + $t * fi , 8 ) , t ( Rt , Ot + $t * St . r , St . Ea , + _i + $t * fi , 8 ) } var Nt = e , Lt = o , Ft = 1 , Ut = Nt . oa ; if ( Nt . qb ) { var Bt = Nt . rc , Ft = Ft & WebPWorkerSync ( Bt ) ; if ( p ( Bt . a == OK ) , Ft ) { if ( Ut . N = Lt , Ut . ha = Nt . Ja , Ut . d = Nt . d , Ut . W = Nt . W , Ut . W ) { var Ht = Ut . M ; Ut . M = Nt . M , Nt . M = Ht } WebPWorkerLaunch ( Bt ) , ++ Nt . Ja == Nt . jb && ( Nt . Ja = 0 ) } } else { Ut . d = Nt . d , Ut . W = Nt . W ; t : { var jt = 1 , Vt = Nt . oa , qt = fa [ Nt . A ] , zt = qt * Nt . H , Wt = parseInt ( qt / 2 ) * Nt . r , Gt = 16 * Vt . ha * Nt . H , Kt = 8 * Vt . ha * Nt . r , Yt = Nt . ca , Xt = Nt . da - zt + Gt , Jt = Nt . aa , Zt = Nt . ba - Wt + Kt , Qt = Nt . ra , nn = Nt . sa - Wt + Kt , rn = 0 == Vt . d , on = ( Vt . d >= Nt . hb - 1 ) + 0 , ln = 16 * Vt . d , cn = 16 * ( Vt . d + 1 ) ; if ( Vt . W ) { var dn = Nt , un = g , pn = dn . oa . d ; for ( p ( dn . oa . W ) , un = dn . lb ; un < dn . wb ; ++ un ) { var fn = dn , mn = un , hn = pn , gn = fn . oa , _n = fn . H , vn = gn . M [ 1 + mn ] , yn = fn . ca , bn = fn . da + 16 * gn . ha * _n + 16 * mn , wn = vn . zc , kn = vn . yc , Mn = 2 * wn + kn ; if ( 0 != wn ) if ( 1 == fn . A ) 0 < mn && Zi ( yn , bn , _n , Mn + 4 ) , vn . ab && ea ( yn , bn , _n , Mn ) , 0 < hn && Ji ( yn , bn , _n , Mn + 4 ) , vn . ab && Qi ( yn , bn , _n , Mn ) ; else { var Sn = fn . r , An = fn . aa , Cn = fn . ba + 8 * gn . ha * Sn + 8 * mn , Tn = fn . ra , $n = fn . sa + 8 * gn . ha * Sn + 8 * mn , En = fn . Ac . fb ? 40 <= wn ? 2 : 15 <= wn ? 1 : 0 : 40 <= wn ? 3 : 20 <= wn ? 2 : 15 <= wn ? 1 : 0 ; 0 < mn && ( qi ( yn , bn , _n , Mn + 4 , kn , En ) , Wi ( An , Cn , Tn , $n , Sn , Mn + 4 , kn , En ) ) , vn . ab && ( Ki ( yn , bn , _n , Mn , kn , En ) , Xi ( An , Cn , Tn , $n , Sn , Mn , kn , En ) ) , 0 < hn && ( Vi ( yn , bn , _n , Mn + 4 , kn , En ) , zi ( An , Cn , Tn , $n , Sn , Mn + 4 , kn , En ) ) , vn . ab && ( Gi ( yn , bn , _n , Mn , kn , En ) , Yi ( An , Cn , Tn , $n , Sn , Mn , kn , En ) ) } } } if ( Lt . put ) { if ( rn ? ( Lt . y = Nt . ca , Lt . D = Nt . da + Gt , Lt . c = Nt . aa , Lt . B = Nt . ba + Kt , Lt . S = Nt . ra , Lt . C = Nt . sa + Kt ) : ( ln -= qt , Lt . y = Yt , Lt . D = Xt , Lt . c = Jt , Lt . B = Zt , Lt . S = Qt , Lt . C = nn ) , on || ( cn -= qt ) , cn > Lt . K && ( cn = Lt . K ) , Nt . Ga != h && ln < cn && ( 0 == ln ? ( Lt . p = F ( Nt , ln , cn - ln ) , Lt . q = 0 ) : Lt . q = F ( Nt , ln , cn - ln ) , Lt . p == h ) ) { Ft = be ( Nt , an , "Could not decode alpha data." ) ; break t } if ( ln < Lt . k ) { var In = Lt . k - ln , ln = Lt . k ; p ( ! ( 1 & In ) ) , Lt . D += Nt . H * In , Lt . B += Nt . r * ( In >> 1 ) , Lt . C += Nt . r * ( In >> 1 ) , Lt . p != h && ( Lt . q += Lt . width * In ) } ln < cn && ( Lt . D += Lt . t , Lt . B += Lt . t >> 1 , Lt . C += Lt . t >> 1 , Lt . p != h && ( Lt . q += Lt . t ) , Lt . w = ln - Lt . k , Lt . m = Lt . Ka - Lt . t , Lt . h = cn - ln , jt = Lt . put ( Lt ) ) } Vt . ha + 1 == Nt . jb && ! on && ( t ( Nt . ca , Nt . da - zt , Yt , Xt + 16 * Nt . H , zt ) , t ( Nt . aa , Nt . ba - Wt , Jt , Zt + 8 * Nt . r , Wt ) , t ( Nt . ra , Nt . sa - Wt , Qt , nn + 8 * Nt . r , Wt ) ) , F
this . WebPGetDecoderVersion = this . Ld = function ( ) { return 512 } ; var Ma = [ 0 , 1 , 2 , 3 , 6 , 4 , 5 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 7 , 0 ] , Sa = [ [ 173 , 148 , 140 , 0 ] , [ 176 , 155 , 140 , 135 , 0 ] , [ 180 , 157 , 141 , 134 , 130 , 0 ] , [ 254 , 254 , 243 , 230 , 196 , 177 , 153 , 140 , 133 , 130 , 129 , 0 ] ] , Aa = [ 0 , 1 , 4 , 8 , 5 , 2 , 3 , 6 , 9 , 12 , 13 , 10 , 7 , 11 , 14 , 15 ] , Ca = u ( [ ui , pi ] , "" ) ; c ( 4 , _ ) ; var Ta = [ [ 0 , 0 , 0 , 0 ] , [ 1 , 0 , 0 , 0 ] , [ 0 , 1 , 0 , 0 ] , [ 1 , 1 , 0 , 0 ] , [ 0 , 0 , 1 , 0 ] , [ 1 , 0 , 1 , 0 ] , [ 0 , 1 , 1 , 0 ] , [ 1 , 1 , 1 , 0 ] , [ 0 , 0 , 0 , 1 ] , [ 1 , 0 , 0 , 1 ] , [ 0 , 1 , 0 , 1 ] , [ 1 , 1 , 0 , 1 ] , [ 0 , 0 , 1 , 1 ] , [ 1 , 0 , 1 , 1 ] , [ 0 , 1 , 1 , 1 ] , [ 1 , 1 , 1 , 1 ] ] , $a = 134480385 , Ea = 16 , Ia = - 227 , xa = 482 , Pa = [ Fe , function ( e ) { return e } , function ( e , t , n ) { return t [ n + 0 ] } , function ( e , t , n ) { return t [ n + 1 ] } , function ( e , t , n ) { return t [ n - 1 ] } , function ( e , t , n ) { return Oe ( Oe ( e , t [ n + 1 ] ) , t [ n + 0 ] ) } , function ( e , t , n ) { return Oe ( e , t [ n - 1 ] ) } , function ( e , t , n ) { return Oe ( e , t [ n + 0 ] ) } , function ( e , t , n ) { return Oe ( t [ n - 1 ] , t [ n + 0 ] ) } , function ( e , t , n ) { return Oe ( t [ n + 0 ] , t [ n + 1 ] ) } , function ( e , t , n ) { return Oe ( Oe ( e , t [ n - 1 ] ) , Oe ( t [ n + 0 ] , t [ n + 1 ] ) ) } , function ( e , t , n ) { return 0 >= Math . abs ( ( e >> 24 & 255 ) - ( t [ n - 1 ] >> 24 & 255 ) ) - Math . abs ( ( t [ n + 0 ] >> 24 & 255 ) - ( t [ n - 1 ] >> 24 & 255 ) ) + ( Math . abs ( ( e >> 16 & 255 ) - ( t [ n - 1 ] >> 16 & 255 ) ) - Math . abs ( ( t [ n + 0 ] >> 16 & 255 ) - ( t [ n - 1 ] >> 16 & 255 ) ) ) + ( Math . abs ( ( e >> 8 & 255 ) - ( t [ n - 1 ] >> 8 & 255 ) ) - Math . abs ( ( t [ n + 0 ] >> 8 & 255 ) - ( t [ n - 1 ] >> 8 & 255 ) ) ) + ( Math . abs ( ( 255 & e ) - ( 255 & t [ n - 1 ] ) ) - Math . abs ( ( 255 & t [ n + 0 ] ) - ( 255 & t [ n - 1 ] ) ) ) ? t [ n + 0 ] : e } , function ( e , t , n ) { return ( Ne ( ( e >> 24 & 255 ) + ( t [ n + 0 ] >> 24 & 255 ) - ( t [ n - 1 ] >> 24 & 255 ) ) << 24 | Ne ( ( e >> 16 & 255 ) + ( t [ n + 0 ] >> 16 & 255 ) - ( t [ n - 1 ] >> 16 & 255 ) ) << 16 | Ne ( ( e >> 8 & 255 ) + ( t [ n + 0 ] >> 8 & 255 ) - ( t [ n - 1 ] >> 8 & 255 ) ) << 8 | Ne ( ( 255 & e ) + ( 255 & t [ n + 0 ] ) - ( 255 & t [ n - 1 ] ) ) ) >>> 0 } , function ( e , t , n ) { var i = t [ n - 1 ] ; return e = Oe ( e , t [ n + 0 ] ) , ( Le ( e >> 24 & 255 , i >> 24 & 255 ) << 24 | Le ( e >> 16 & 255 , i >> 16 & 255 ) << 16 | Le ( e >> 8 & 255 , i >> 8 & 255 ) << 8 | Le ( e >> 0 & 255 , i >> 0 & 255 ) ) >>> 0 } , Fe , Fe ] , Da = { Cc : _ , Bc : _ , Kc : _ } , Ra = 16 , Oa = 16 , Na = 16 , La = [ 2 , 3 , 7 ] , Fa = [ 3 , 3 , 11 ] , Ua = 0 , Ba = 1 , Ha = 2 , ja = 3 , Va = 4 , qa = [ $n + En , $n , $n , $n , 40 ] , za = 19 , Wa = [ 17 , 18 , 0 , 1 , 2 , 3 , 4 , 5 , 16 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] , Ga = 120 , Ka = [ 24 , 7 , 23 , 25 , 40 , 6 , 39 , 41 , 22 , 26 , 38 , 42 , 56 , 5 , 55 , 57 , 21 , 27 , 54 , 58 , 37 , 43 , 72 , 4 , 71 , 73 , 20 , 28 , 53 , 59 , 70 , 74 , 36 , 44 , 88 , 69 , 75 , 52 , 60 , 3 , 87 , 89 , 19 , 29 , 86 , 90 , 35 , 45 , 68 , 76 , 85 , 91 , 51 , 61 , 104 , 2 , 103 , 105 , 18 , 30 , 102 , 106 , 34 , 46 , 84 , 92 , 67 , 77 , 101 , 107 , 50 , 62 , 120 , 1 , 119 , 121 , 83 , 93 , 17 , 31 , 100 , 108 , 66 , 78 , 118 , 122 , 33 , 47 , 117 , 123 , 49 , 63 , 99 , 109 , 82 , 94 , 0 , 116 , 124 , 65 , 79 , 16 , 32 , 98 , 110 , 48 , 115 , 125 , 81 , 95 , 64 , 114 , 126 , 97 , 111 , 80 , 113 , 127 , 96 , 112 ] , Ya = 1 << Ea - 1 , Xa = c ( 256 , 0 ) , Ja = c ( 256 , 0 ) , Za = c ( 256 , v ) , Qa = c ( 256 , v ) , er = c ( xa - Ia , _ ) , tr = c ( xa - Ia , _ ) , nr = 0 , ir = Array ( Zt ) , ar = [ function ( e , t , n , i , a , r , o , s , l , c , d , u , p ) { mt ( e , t , n , i , a , r , o , s , l , c , d , u , p , Te , 3 ) } , ht , function ( e , t , n , i , a , r , o , s , l , c , d , u , p ) { mt ( e , t , n , i , a , r , o , s , l , c , d , u , p , xe , 3 ) } , gt , _t , vt , function ( e , t , n , i , a , r , o , s , l , c , d , u , p ) { mt ( e , t , n , i , a , r , o , s , l , c , d , u , p , $e , 2 ) } , ht , gt , _t , vt ] ; this . Hd = function ( e , t , n , i ) { return Ot ( Ut , e , t , n , i ) } , this . Id = function ( e , t , n , i ) { return Ot ( Bt , e , t , n , i ) } , this . Jd = function ( e , t , n , i ) { return Ot ( qt , e , t , n , i ) } , this . Ed = function ( e , t , n , i ) { return Ot ( Vt , e , t , n , i ) } , this . Fd = function ( e , t , n , i ) { return Ot ( Ht , e , t , n , i ) } , this . Gd = function ( e , t , n , i ) { return Ot ( jt , e , t , n , i ) } , this . WebPDecode = this . Dd = function ( t , n , i ) { var a = e ( pn ) , r = "VP8StatusCode" ; return i == h ? nn : ( r = Nt ( t , [ 0 ] , [ n ] , i . input ) , r != en ? r == ln ? an : r : ( a . j = i . j , a . Qa = i . Qa , r = Rt ( t , 0 , [ n ] , a ) ) ) } } } ( ) , function ( e , t ) { "use strict" ; angular . module ( "toaster" , [ ] ) . constant ( "toasterConfig" , { limit : 0 , "tap-to-dismiss" : ! 0 , "close-button" : ! 1 , "close-html" : '<button class="toast-close-button" type="button">×</button>' , "newest-on-top" : ! 0 , "time-out" : 5e3 , "icon-classes" : { error : "toast-error" , info : "toast-info" , wait : "toast-wait" , success : "toast-success" , warning : "toast-warning" } , "body-output-type" : "" , "body-template" : "toasterBodyTmpl.html" , "icon-class" : "toast-info" , "position-class" : "toast-top-right" , "title-class" : "toast-title" , "message-class" : "toast-message" , "prevent-duplicates" : ! 1 , "mouseover-timer-stop" : ! 0 } ) . service ( "toaster" , [ "$rootScope" , "toasterConfig" , function ( e , t ) { function n ( e ) { return function ( t , n , i , a , r , o , s , l , c ) { return angular . isString ( t ) ? this . pop ( e , t , n , i , a , r , o , s , l , c ) : this . pop ( angular . extend ( t , { type : e } ) ) } } var i = function ( ) { var e = { } ; return e . newGuid = function ( ) { return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" . replace ( /[xy]/g , function ( e ) { var t = 16 * Math . random ( ) | 0 , n = "x" == e ? t : 3 & t | 8 ; return n . toString ( 16 ) } ) } , e } ( ) ; this . pop = function ( t , n , a , r , o , s , l , c , d , u ) { if ( angular . isObject ( t ) ) { var p = t ; this . toast = { type : p . type , title : p
ne . stop ( ) } , 0 ) ; var i = ie ( ) , a = i - _t , r = je - He ; Ye += Math . abs ( r ) , ze += a ; var o = { cpuTime : at , drawingTime : Ge - lt , bufferTime : We - ct , proxyTime : Ke - dt , demuxerTime : 0 , videoTime : 0 , audioTime : 0 , clockTime : je , late : ke || e . dropped , dropped : e . dropped } ; fe && ( o . demuxerTime = fe . demuxerCpuTime - st , o . videoTime += vt - rt , o . audioTime += fe . audioCpuTime - ot ) , o . cpuTime += o . demuxerTime , at = 0 , _t = i , fe ? ( rt = vt , ot = fe . audioCpuTime , st = fe . demuxerCpuTime ) : ( rt = 0 , ot = 0 , st = 0 ) , lt = Ge , ct = We , dt = Ke , n ( "drew frame " + e . frameEndTimestamp + ": clock time " + t ( a ) + " (jitter " + t ( r ) + ") cpu: " + t ( o . cpuTime ) + " (mux: " + t ( o . demuxerTime ) + " buf: " + t ( o . bufferTime ) + " draw: " + t ( o . drawingTime ) + " proxy: " + t ( o . proxyTime ) + ") vid: " + t ( o . videoTime ) + " aud: " + t ( o . audioTime ) ) , f ( "framecallback" , o ) , ( ! yt || i - yt >= bt ) && ( yt = i , f ( "timeupdate" ) ) } function M ( e ) { Error . call ( this , e ) } function S ( e ) { ae . seeking && Ce . cancel ( new M ( "cancel for new seek" ) ) , ae . buffering && Te . cancel ( new M ( "cancel for new seek" ) ) , Ae = ! 1 , Ee = ! 1 , Le = ! 1 , ae . seek ( e , Ce ) . then ( function ( ) { O ( ) } ) [ "catch" ] ( N ) } function A ( e ) { var t = Math . max ( 0 , ae . length - 65536 ) ; Mt = e , de = new c ( { start : 0 , end : t , process : function ( e , t , n ) { return n != le && ( le = n , ce = ! 1 , fe . flush ( function ( ) { S ( n ) } ) , ! 0 ) } } ) , de . start ( ) } function C ( e , t ) { function i ( n ) { ae && ae . buffering && Te . cancel ( new M ( "cancel for new seek" ) ) , ae && ae . seeking && Ce . cancel ( new M ( "cancel for new seek" ) ) , ge . splice ( 0 , ge . length ) , y ( ) , we = ! 1 , ke = ! 1 , _e && _e . flush ( ) , Y = K . SEEKING , wt = e , se = t , fe ? fe . flush ( n ) : n ( ) } if ( n ( "requested seek to " + e + ", mode " + t ) , ne . readyState == ne . HAVE _NOTHING ) return n ( "not yet loaded; saving seek position for later" ) , void ( Me = e ) ; if ( ae && ! ae . seekable ) throw console . log ( ae ) , new Error ( "Cannot seek a non-seekable stream" ) ; i ( function ( ) { R ( ) || L ( 0 ) } ) , ge . push ( function ( ) { i ( function ( ) { T ( e ) } ) } ) } function T ( e ) { Ae = ! 1 , Ee = ! 1 , Le = ! 1 , Y = K . SEEKING , wt = e , kt = - 1 , ce = ! 1 , le = - 1 , nt = [ ] , it = [ ] , Tt = 0 , $t = 0 , ue = ! 1 , fe . seekToKeypoint ( e , function ( t ) { return t ? ( J = X . LINEAR _TO _TARGET , f ( "seeking" ) , ue ? void 0 : void L ( ) ) : void fe . getKeypointOffset ( e , function ( e ) { e > 0 ? ( J = X . LINEAR _TO _TARGET , S ( e ) ) : ( J = X . BISECT _TO _TARGET , A ( wt ) ) , f ( "seeking" ) } ) } ) } function $ ( ) { function e ( ) { yt = wt , f ( "timeupdate" ) , f ( "seeked" ) , R ( ) || L ( ) } return J = X . NOT _SEEKING , Y = K . READY , et = fe . frameTimestamp , tt = fe . audioTimestamp , wt = fe . hasAudio ? fe . audioTimestamp : fe . frameTimestamp , be = wt , fe . hasVideo && fe . frameReady ? void fe . decodeFrame ( function ( t ) { t && ( oe && ( ne . removeChild ( oe ) , oe = null ) , ee . drawFrame ( fe . frameBuffer ) ) , e ( ) } ) : void e ( ) } function E ( ) { var e ; if ( e = fe . hasVideo ? He / 1e3 : 1 / 256 , fe . hasVideo ) { if ( Tt ) return ; if ( ! fe . frameReady ) return void fe . process ( function ( e ) { e ? L ( ) : Ae ? ( n ( "stream ended during linear seeking on video" ) , Ee = ! 0 , $ ( ) ) : O ( ) } ) ; if ( se === St . FAST && fe . keyframeTimestamp == fe . frameTimestamp ) return void $ ( ) ; if ( fe . frameTimestamp + e < wt ) return void fe . decodeFrame ( function ( ) { L ( ) } ) ; if ( ! fe . hasAudio ) return void $ ( ) } if ( fe . hasAudio ) { if ( $t ) return ; return fe . audioReady ? fe . audioTimestamp + e < wt ? void fe . decodeAudio ( function ( ) { L ( ) } ) : void $ ( ) : void fe . process ( function ( e ) { e ? L ( ) : Ae ? ( n ( "stream ended during linear seeking on audio" ) , Ee = ! 0 , $ ( ) ) : O ( ) } ) } } function I ( ) { var e , t ; if ( fe . hasVideo ) t = fe . frameTimestamp , e = He / 1e3 ; else { if ( ! fe . hasAudio ) throw new Error ( "Invalid seek state; no audio or video track available" ) ; t = fe . audioTimestamp , e = 1 / 256 } t < 0 ? fe . process ( function ( e ) { if ( e ) L ( ) ; else if ( Ae ) { if ( n ( "stream ended during bisection seek" ) , ! de . right ( ) ) throw n ( "failed going back" ) , new Error ( "not sure what to do" ) } else O ( ) } ) : t - e / 2 > Mt ? de . left ( ) || ( n ( "close enough (left)" ) , wt = t , $ ( ) ) : t + e / 2 < Mt ? de . right ( ) || ( n ( "close enough (right)" ) , J = X . LINEAR _TO _TARGET , L ( ) ) : J == X . BISECT _TO _TARGET && fe . hasVideo && fe . keyframeTimestamp < fe . frameTimestamp ? ( n ( "finding the keypoint now" ) , J = X . BISECT _TO _KEYPOINT , A ( fe . keyframeTimestamp ) ) : ( n ( "straight seeking now" ) , J = X . LINEAR _TO _TARGET , L ( ) ) } function x ( ) { He = me . fps > 0 ? 1e3 / me . fps : 16.667 , te . width = me . displayWidth , te . height = me . displayHeight , h . styleManager . appendRule ( "." + H , { width : me . displayWidth + "px" , height : me . displayHeight + "px" } ) , h . updatePositionOnResize ( ) , ee = r . attach ( te , V ) } function P ( ) { if ( ue && ( ue = ! 1 ) , re = null , R ( ) , At > 0 ) throw new Error ( "REENTRANCY FAIL: doProcessing recursing unexpectedly" ) ; var e = 0 ; do { if ( Ct = ! 1 , At ++ , D ( ) , At -- , Ct && R ( ) ) throw new Error ( " REENTRANCY FAIL : waiting on input or codec but asked to keep
n ( ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _WRAP _T , c . CLAMP _TO _EDGE ) , n ( ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MIN _FILTER , p ) , n ( ) , c . texParameteri ( c . TEXTURE _2D , c . TEXTURE _MAG _FILTER , p ) , n ( ) , c . texImage2D ( c . TEXTURE _2D , 0 , u , d , o , 0 , u , c . UNSIGNED _BYTE , s ) , n ( ) , l } function o ( e , t ) { for ( var n = e * t , i = new Uint32Array ( n ) , a = 0 ; a < n ; a += 4 ) i [ a ] = 255 , i [ a + 1 ] = 65280 , i [ a + 2 ] = 16711680 , i [ a + 3 ] = 4278190080 ; return new Uint8Array ( i . buffer ) } function s ( e ) { if ( u = i ( c . VERTEX _SHADER , a . vertex ) , p = t . stripe ? i ( c . FRAGMENT _SHADER , a . fragmentStripe ) : i ( c . FRAGMENT _SHADER , a . fragment ) , f = c . createProgram ( ) , c . attachShader ( f , u ) , n ( ) , c . attachShader ( f , p ) , n ( ) , c . linkProgram ( f ) , ! c . getProgramParameter ( f , c . LINK _STATUS ) ) { var s = c . getProgramInfoLog ( f ) ; throw c . deleteProgram ( f ) , new Error ( "GL program linking failed: " + s ) } c . useProgram ( f ) , n ( ) , t . stripe && ( r ( "uStripeLuma" , c . TEXTURE3 , 3 , 4 * e . y . stride , e . format . height , o ( e . y . stride , e . format . height ) ) , n ( ) , r ( "uStripeChroma" , c . TEXTURE4 , 4 , 4 * e . u . stride , e . format . chromaHeight , o ( e . u . stride , e . format . chromaHeight ) ) , n ( ) ) } var l = this , c = e . getContext ( "webgl" ) || e . getContext ( "experimental-webgl" ) , d = ! 1 ; if ( null === c ) throw new Error ( "WebGL unavailable" ) ; var u , p , f , m , h , g = new Float32Array ( [ - 1 , - 1 , 1 , - 1 , - 1 , 1 , - 1 , 1 , 1 , - 1 , 1 , 1 ] ) , _ = { } ; return l . drawFrame = function ( t ) { function i ( e , t ) { var i = a . cropLeft / t , r = ( a . cropLeft + a . cropWidth ) / t , o = ( a . cropTop + a . cropHeight ) / a . height , s = a . cropTop / a . height , l = new Float32Array ( [ i , o , r , o , i , s , i , s , r , o , r , s ] ) , d = c . createBuffer ( ) ; c . bindBuffer ( c . ARRAY _BUFFER , d ) , n ( ) , c . bufferData ( c . ARRAY _BUFFER , l , c . STATIC _DRAW ) , n ( ) ; var u = c . getAttribLocation ( f , e ) ; n ( ) , c . enableVertexAttribArray ( u ) , n ( ) , c . vertexAttribPointer ( u , 2 , c . FLOAT , ! 1 , 0 , 0 ) , n ( ) } var a = t . format ; e . width === a . displayWidth && e . height === a . displayHeight || ( e . width = a . displayWidth , e . height = a . displayHeight , l . clear ( ) ) , f || s ( t ) , m = c . createBuffer ( ) , n ( ) , c . bindBuffer ( c . ARRAY _BUFFER , m ) , n ( ) , c . bufferData ( c . ARRAY _BUFFER , g , c . STATIC _DRAW ) , n ( ) ; var o = c . getAttribLocation ( f , "aPosition" ) ; n ( ) , c . enableVertexAttribArray ( o ) , n ( ) , c . vertexAttribPointer ( o , 2 , c . FLOAT , ! 1 , 0 , 0 ) , n ( ) , i ( "aLumaPosition" , t . y . stride ) , i ( "aChromaPosition" , t . u . stride * a . width / a . chromaWidth ) ; r ( "uTextureY" , c . TEXTURE0 , 0 , t . y . stride , a . height , t . y . bytes ) , r ( "uTextureCb" , c . TEXTURE1 , 1 , t . u . stride , a . chromaHeight , t . u . bytes ) , r ( "uTextureCr" , c . TEXTURE2 , 2 , t . v . stride , a . chromaHeight , t . v . bytes ) ; c . drawArrays ( c . TRIANGLES , 0 , g . length / 2 ) , n ( ) } , l . clear = function ( ) { c . viewport ( 0 , 0 , e . width , e . height ) , c . clearColor ( 0 , 0 , 0 , 0 ) , c . clear ( c . COLOR _BUFFER _BIT ) } , l . clear ( ) , l } var i = n ( 13 ) , a = n ( 18 ) ; t . stripe = function ( ) { return navigator . userAgent . indexOf ( "Windows" ) !== - 1 } ( ) , t . isAvailable = function ( ) { var e , n = document . createElement ( "canvas" ) ; n . width = 1 , n . height = 1 ; var i = { } ; try { e = n . getContext ( "webgl" , i ) || n . getContext ( "experimental-webgl" , i ) } catch ( a ) { return ! 1 } if ( e ) { var r = e . TEXTURE0 , o = 4 , s = 4 , l = e . createTexture ( ) , c = new Uint8Array ( o * s ) , d = t . stripe ? o / 4 : o , u = t . stripe ? e . RGBA : e . LUMINANCE , p = t . stripe ? e . NEAREST : e . LINEAR ; e . activeTexture ( r ) , e . bindTexture ( e . TEXTURE _2D , l ) , e . texParameteri ( e . TEXTURE _2D , e . TEXTURE _WRAP _S , e . CLAMP _TO _EDGE ) , e . texParameteri ( e . TEXTURE _2D , e . TEXTURE _WRAP _T , e . CLAMP _TO _EDGE ) , e . texParameteri ( e . TEXTURE _2D , e . TEXTURE _MIN _FILTER , p ) , e . texParameteri ( e . TEXTURE _2D , e . TEXTURE _MAG _FILTER , p ) , e . texImage2D ( e . TEXTURE _2D , 0 , u , d , s , 0 , u , e . UNSIGNED _BYTE , c ) ; var f = e . getError ( ) ; return ! f } return ! 1 } , t . prototype = Object . create ( i . prototype ) , e . exports = t } ( ) } , function ( e , t ) { e . exports = { vertex : "attribute vec2 aPosition;\nattribute vec2 aLumaPosition;\nattribute vec2 aChromaPosition;\nvarying vec2 vLumaPosition;\nvarying vec2 vChromaPosition;\nvoid main() {\n gl_Position = vec4(aPosition, 0, 1);\n vLumaPosition = aLumaPosition;\n vChromaPosition = aChromaPosition;\n}\n" , fragment : " // inspired by https://github.com/mbebenita/Broadway/blob/master/Player/canvas.js\n\nprecision mediump float;\nuniform sampler2D uTextureY;\nuniform sampler2D uTextureCb;\nuniform sampler2D uTextureCr;\nvarying vec2 vLumaPosition;\nvarying vec2 vChromaPosition;\nvoid main() {\n // Y, Cb, and Cr planes are uploaded as LUMINANCE textures.\n float fY = texture2D(uTextureY, vLumaPosition).x;\n float fCb = texture2D(uTextureCb, vChromaPosition).x;\n float fCr = texture2D(uTextureCr, vChromaPosition).x;\n\
r . push ( c ) } return r } , t . prototype . bufferData = function ( e ) { if ( ! this . _backend ) throw "Invalid state: AudioFeeder cannot bufferData before init" ; var t = this . _resample ( e ) ; this . _backend . appendBuffer ( t ) } , t . prototype . getPlaybackState = function ( ) { if ( this . _backend ) return this . _backend . getPlaybackState ( ) ; throw "Invalid state: AudioFeeder cannot getPlaybackState before init" } , t . prototype . waitUntilReady = function ( e ) { if ( ! this . _backend ) throw "Invalid state: AudioFeeder cannot waitUntilReady before init" ; this . _backend . waitUntilReady ( e ) } , t . prototype . start = function ( ) { if ( ! this . _backend ) throw "Invalid state: AudioFeeder cannot start before init" ; this . _backend . start ( ) } , t . prototype . stop = function ( ) { if ( ! this . _backend ) throw "Invalid state: AudioFeeder cannot stop before init" ; this . _backend . stop ( ) } , t . prototype . flush = function ( ) { if ( ! this . _backend ) throw "Invalid state: AudioFeeder cannot flush before init" ; this . _backend . flush ( ) } , t . prototype . close = function ( ) { this . _backend && ( this . _backend . close ( ) , this . _backend = null ) } , t . prototype . onstarved = null , t . prototype . onbufferlow = null , t . isSupported = function ( ) { return ! ! Float32Array && ( i . isSupported ( ) || a . isSupported ( ) ) } , t . initSharedAudioContext = function ( ) { return i . isSupported ( ) ? i . initSharedAudioContext ( ) : null } , e . exports = t } ( ) } , function ( e , t ) { function n ( e , t ) { if ( e < 1 || e !== Math . round ( e ) ) throw "Invalid channel count for BufferQueue" ; this . channels = e , this . bufferSize = t , this . flush ( ) } n . prototype . flush = function ( ) { this . _buffers = [ ] , this . _pendingBuffer = this . createBuffer ( this . bufferSize ) , this . _pendingPos = 0 } , n . prototype . sampleCount = function ( ) { var e = 0 ; return this . _buffers . forEach ( function ( t ) { e += t [ 0 ] . length } ) , e } , n . prototype . createBuffer = function ( e ) { for ( var t = [ ] , n = 0 ; n < this . channels ; n ++ ) t [ n ] = new Float32Array ( e ) ; return t } , n . prototype . validate = function ( e ) { if ( e . length !== this . channels ) return ! 1 ; for ( var t , n = 0 ; n < e . length ; n ++ ) { var i = e [ n ] ; if ( ! ( i instanceof Float32Array ) ) return ! 1 ; if ( 0 == n ) t = i . length ; else if ( i . length !== t ) return ! 1 } return ! 0 } , n . prototype . appendBuffer = function ( e ) { if ( ! this . validate ( e ) ) throw "Invalid audio buffer passed to BufferQueue.appendBuffer" ; for ( var t = e [ 0 ] , n = t . length , i = 0 ; i < n ; i ++ ) { for ( var a = 0 ; a < this . channels ; a ++ ) this . _pendingBuffer [ a ] [ this . _pendingPos ] = e [ a ] [ i ] ; ++ this . _pendingPos == this . bufferSize && ( this . _buffers . push ( this . _pendingBuffer ) , this . _pendingPos = 0 , this . _pendingBuffer = this . createBuffer ( this . bufferSize ) ) } } , n . prototype . prependBuffer = function ( e ) { if ( ! this . validate ( e ) ) throw "Invalid audio buffer passed to BufferQueue.prependBuffer" ; var t = this . _buffers . slice ( 0 ) ; t . push ( this . trimBuffer ( this . _pendingBuffer , 0 , this . _pendingPos ) ) , this . flush ( ) , this . appendBuffer ( e ) ; for ( var n = 0 ; n < t . length ; n ++ ) this . appendBuffer ( t [ n ] ) } , n . prototype . nextBuffer = function ( ) { if ( this . _buffers . length ) return this . _buffers . shift ( ) ; var e = this . trimBuffer ( this . _pendingBuffer , 0 , this . _pendingPos ) ; return this . _pendingBuffer = this . createBuffer ( this . bufferSize ) , this . _pendingPos = 0 , e } , n . prototype . trimBuffer = function ( e , t , n ) { var i = e [ 0 ] . length , a = t + Math . min ( n , i ) ; if ( 0 == t && a >= i ) return e ; for ( var r = [ ] , o = 0 ; o < this . channels ; o ++ ) r [ o ] = e [ o ] . subarray ( t , a ) ; return r } , e . exports = n } , function ( e , t , n ) { ! function ( ) { function t ( e , n , i ) { var r = i . audioContext || t . initSharedAudioContext ( ) ; if ( this . _context = r , this . output = i . output || r . destination , this . rate = r . sampleRate , this . channels = Math . min ( e , 2 ) , i . bufferSize && ( this . bufferSize = 0 | i . bufferSize ) , this . bufferThreshold = 2 * this . bufferSize , this . _bufferQueue = new a ( this . channels , this . bufferSize ) , this . _playbackTimeAtBufferTail = r . currentTime , this . _queuedTime = 0 , this . _delayedTime = 0 , this . _dropped = 0 , this . _liveBuffer = this . _bufferQueue . createBuffer ( this . bufferSize ) , r . createScriptProcessor ) this . _node = r . createScriptProcessor ( this . bufferSize , 0 , this . channels ) ; else { if ( ! r . createJavaScriptNode ) throw new Error ( "Bad version of web audio API?" ) ; this . _node = r . createJavaScriptNode ( this . bufferSize , 0 , this . channels ) } } var i = window . AudioContext || window . webkitAudioContext , a = n ( 1 ) , r = n ( 3 ) ; t . prototype . bufferSize = 4096 , t . prototype . bufferThreshold = 8192 , t . prototype . _volume = 1 , Object . defineProperty ( t . prototype , "volume" , { get : function ( ) { return this . _volume } , set : function ( e ) { this . _volume = + e } } ) , t . prototype . _muted = ! 1 , Object . defineProp
var moduleOverrides = { } ; for ( var key in Module ) Module . hasOwnProperty ( key ) && ( moduleOverrides [ key ] = Module [ key ] ) ; var ENVIRONMENT _IS _WEB = ! 1 , ENVIRONMENT _IS _WORKER = ! 1 , ENVIRONMENT _IS _NODE = ! 1 , ENVIRONMENT _IS _SHELL = ! 1 ; if ( Module . ENVIRONMENT ) if ( "WEB" === Module . ENVIRONMENT ) ENVIRONMENT _IS _WEB = ! 0 ; else if ( "WORKER" === Module . ENVIRONMENT ) ENVIRONMENT _IS _WORKER = ! 0 ; else if ( "NODE" === Module . ENVIRONMENT ) ENVIRONMENT _IS _NODE = ! 0 ; else if ( "SHELL" === Module . ENVIRONMENT ) ENVIRONMENT _IS _SHELL = ! 0 ; else { if ( "PTHREAD" !== Module . ENVIRONMENT ) throw new Error ( "The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL." ) ; ENVIRONMENT _IS _WORKER = ! 0 , ENVIRONMENT _IS _PTHREAD = ! 0 } else ENVIRONMENT _IS _WEB = "object" == typeof window , ENVIRONMENT _IS _WORKER = "function" == typeof importScripts , ENVIRONMENT _IS _NODE = "object" == typeof process && "function" == typeof require && ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _WORKER , ENVIRONMENT _IS _SHELL = ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _NODE && ! ENVIRONMENT _IS _WORKER ; if ( ENVIRONMENT _IS _NODE ) { Module . print || ( Module . print = console . log ) , Module . printErr || ( Module . printErr = console . warn ) ; var nodeFS , nodePath ; Module . read = function ( e , t ) { nodeFS || ( nodeFS = require ( "fs" ) ) , nodePath || ( nodePath = require ( "path" ) ) , e = nodePath . normalize ( e ) ; var n = nodeFS . readFileSync ( e ) ; return t ? n : n . toString ( ) } , Module . readBinary = function ( e ) { var t = Module . read ( e , ! 0 ) ; return t . buffer || ( t = new Uint8Array ( t ) ) , assert ( t . buffer ) , t } , Module . load = function ( e ) { globalEval ( read ( e ) ) } , Module . thisProgram || ( process . argv . length > 1 ? Module . thisProgram = process . argv [ 1 ] . replace ( /\\/g , "/" ) : Module . thisProgram = "unknown-program" ) , Module . arguments = process . argv . slice ( 2 ) , "undefined" != typeof module && ( module . exports = Module ) , process . on ( "uncaughtException" , function ( e ) { if ( ! ( e instanceof ExitStatus ) ) throw e } ) , Module . inspect = function ( ) { return "[Emscripten Module object]" } } else if ( ENVIRONMENT _IS _SHELL ) Module . print || ( Module . print = print ) , "undefined" != typeof printErr && ( Module . printErr = printErr ) , "undefined" != typeof read ? Module . read = read : Module . read = function ( ) { throw "no read() available" } , Module . readBinary = function ( e ) { if ( "function" == typeof readbuffer ) return new Uint8Array ( readbuffer ( e ) ) ; var t = read ( e , "binary" ) ; return assert ( "object" == typeof t ) , t } , "undefined" != typeof scriptArgs ? Module . arguments = scriptArgs : "undefined" != typeof arguments && ( Module . arguments = arguments ) , "function" == typeof quit && ( Module . quit = function ( e , t ) { quit ( e ) } ) ; else { if ( ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _WORKER ) throw "Unknown runtime environment. Where are we?" ; if ( Module . read = function ( e ) { var t = new XMLHttpRequest ; return t . open ( "GET" , e , ! 1 ) , t . send ( null ) , t . responseText } , ENVIRONMENT _IS _WORKER && ( Module . readBinary = function ( e ) { var t = new XMLHttpRequest ; return t . open ( "GET" , e , ! 1 ) , t . responseType = "arraybuffer" , t . send ( null ) , t . response } ) , Module . readAsync = function ( e , t , n ) { var i = new XMLHttpRequest ; i . open ( "GET" , e , ! 0 ) , i . responseType = "arraybuffer" , i . onload = function ( ) { 200 == i . status || 0 == i . status && i . response ? t ( i . response ) : n ( ) } , i . onerror = n , i . send ( null ) } , "undefined" != typeof arguments && ( Module . arguments = arguments ) , "undefined" != typeof console ) Module . print || ( Module . print = function ( e ) { console . log ( e ) } ) , Module . printErr || ( Module . printErr = function ( e ) { console . warn ( e ) } ) ; else { var TRY _USE _DUMP = ! 1 ; Module . print || ( Module . print = TRY _USE _DUMP && "undefined" != typeof dump ? function ( e ) { dump ( e ) } : function ( e ) { } ) } ENVIRONMENT _IS _WORKER && ( Module . load = importScripts ) , "undefined" == typeof Module . setWindowTitle && ( Module . setWindowTitle = function ( e ) { document . title = e } ) } ! Module . load && Module . read && ( Module . load = function ( e ) { globalEval ( Module . read ( e ) ) } ) , Module . print || ( Module . print = function ( ) { } ) , Module . printErr || ( Module . printErr = Module . print ) , Module . arguments || ( Module . arguments = [ ] ) , Module . thisProgram || ( Module . thisProgram = "./this.program" ) , Module . quit || ( Module . quit = function ( e , t ) { throw t } ) , Module . print = Module . print , Module . printErr = Module . printErr , Module . preRun = [ ] , Module . postRun = [ ] ; for ( var key in moduleOverrides ) moduleOverrides . hasOwnProperty ( key ) && ( Module [ key ] = moduleOverrides [ key ] ) ; moduleOverrides = void 0 ; var Runtime = { setTempRet0 : function ( e ) { return tempRet0 = e , e } , getTempRet0 : function ( ) { return tempRet0 } , stackSave : function ( ) { return S
_ogvjs _callback _audio _packet : _ogvjs _callback _audio _packet , _ _ _syscall140 : _ _ _syscall140 , _ _ _syscall146 : _ _ _syscall146 , _ogvjs _callback _video _packet : _ogvjs _callback _video _packet , DYNAMICTOP _PTR : DYNAMICTOP _PTR , tempDoublePtr : tempDoublePtr , ABORT : ABORT , STACKTOP : STACKTOP , STACK _MAX : STACK _MAX , cttz _i8 : cttz _i8 } ; var asm = function ( e , t , n ) { "use asm" ; var i = new e . Int8Array ( n ) ; var a = new e . Int16Array ( n ) ; var r = new e . Int32Array ( n ) ; var o = new e . Uint8Array ( n ) ; var s = new e . Uint16Array ( n ) ; var l = new e . Uint32Array ( n ) ; var c = new e . Float32Array ( n ) ; var d = new e . Float64Array ( n ) ; var u = t . DYNAMICTOP _PTR | 0 ; var p = t . tempDoublePtr | 0 ; var f = t . ABORT | 0 ; var m = t . STACKTOP | 0 ; var h = t . STACK _MAX | 0 ; var g = t . cttz _i8 | 0 ; var _ = 0 ; var v = 0 ; var y = 0 ; var b = 0 ; var w = e . NaN , k = e . Infinity ; var M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 ; var P = 0 ; var D = e . Math . floor ; var R = e . Math . abs ; var O = e . Math . sqrt ; var N = e . Math . pow ; var L = e . Math . cos ; var F = e . Math . sin ; var U = e . Math . tan ; var B = e . Math . acos ; var H = e . Math . asin ; var j = e . Math . atan ; var V = e . Math . atan2 ; var q = e . Math . exp ; var z = e . Math . log ; var W = e . Math . ceil ; var G = e . Math . imul ; var K = e . Math . min ; var Y = e . Math . max ; var X = e . Math . clz32 ; var J = t . abort ; var Z = t . assert ; var Q = t . enlargeMemory ; var ee = t . getTotalMemory ; var te = t . abortOnCannotGrowMemory ; var ne = t . invoke _iiii ; var ie = t . invoke _vi ; var ae = t . invoke _ii ; var re = t . invoke _iiiii ; var oe = t . invoke _iii ; var se = t . invoke _iiiiii ; var le = t . _ogvjs _callback _loaded _metadata ; var ce = t . _ _ _syscall3 ; var de = t . _ _ _lock ; var ue = t . _ _ _syscall6 ; var pe = t . _ _ _setErrNo ; var fe = t . _abort ; var me = t . _ _ _unlock ; var he = t . _emscripten _memcpy _big ; var ge = t . _ _ _syscall54 ; var _e = t . _ogvjs _callback _audio _packet ; var ve = t . _ _ _syscall140 ; var ye = t . _ _ _syscall146 ; var be = t . _ogvjs _callback _video _packet ; var we = 0 ; function ke ( e ) { e = e | 0 ; var t = 0 ; t = m ; m = m + e | 0 ; m = m + 15 & - 16 ; return t | 0 } function Me ( ) { return m | 0 } function Se ( e ) { e = e | 0 ; m = e } function Ae ( e , t ) { e = e | 0 ; t = t | 0 ; m = e ; h = t } function Ce ( e , t ) { e = e | 0 ; t = t | 0 ; if ( ! _ ) { _ = e ; v = t } } function Te ( e ) { e = e | 0 ; P = e } function $e ( ) { return P | 0 } function Ee ( e ) { e = e | 0 ; return i [ ( r [ e >> 2 ] | 0 ) + 5 >> 0 ] & 1 | 0 } function Ie ( e ) { e = e | 0 ; return i [ ( r [ e >> 2 ] | 0 ) + 5 >> 0 ] & 2 | 0 } function xe ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = r [ e >> 2 ] | 0 ; e = Lr ( o [ t + 13 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; n = Lr ( e | ( o [ t + 12 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; e = Lr ( n | ( o [ t + 11 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; n = Lr ( e | ( o [ t + 10 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; e = Lr ( n | ( o [ t + 9 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; n = Lr ( e | ( o [ t + 8 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; e = Lr ( n | ( o [ t + 7 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; return e | ( o [ t + 6 >> 0 ] | 0 ) | 0 } function Pe ( e ) { e = e | 0 ; var t = 0 ; t = r [ e >> 2 ] | 0 ; return ( o [ t + 15 >> 0 ] | 0 ) << 8 | ( o [ t + 14 >> 0 ] | 0 ) | ( o [ t + 16 >> 0 ] | 0 ) << 16 | ( o [ t + 17 >> 0 ] | 0 ) << 24 | 0 } function De ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 ; if ( ! e ) { n = - 1 ; return n | 0 } Or ( e + 8 | 0 , 0 , 352 ) | 0 ; r [ e + 4 >> 2 ] = 16384 ; r [ e + 24 >> 2 ] = 1024 ; i = Ar ( 16384 ) | 0 ; r [ e >> 2 ] = i ; a = Ar ( 4096 ) | 0 ; o = e + 16 | 0 ; r [ o >> 2 ] = a ; s = Ar ( 8192 ) | 0 ; l = e + 20 | 0 ; r [ l >> 2 ] = s ; do if ( ! i ) { c = a ; d = a } else { if ( ( s | 0 ) == 0 | ( a | 0 ) == 0 ) { Cr ( i ) ; u = r [ o >> 2 ] | 0 ; c = u ; d = u ; break } r [ e + 336 >> 2 ] = t ; n = 0 ; return n | 0 } while ( 0 ) ; if ( c | 0 ) Cr ( d ) ; d = r [ l >> 2 ] | 0 ; if ( d | 0 ) Cr ( d ) ; Or ( e | 0 , 0 , 360 ) | 0 ; n = - 1 ; return n | 0 } function Re ( e ) { e = e | 0 ; var t = 0 ; if ( ! e ) return 0 ; t = r [ e >> 2 ] | 0 ; if ( t | 0 ) Cr ( t ) ; t = r [ e + 16 >> 2 ] | 0 ; if ( t | 0 ) Cr ( t ) ; t = r [ e + 20 >> 2 ] | 0 ; if ( t | 0 ) Cr ( t ) ; Or ( e | 0 , 0 , 360 ) | 0 ; return 0 } function Oe ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 ; n = e + 24 | 0 ; i = r [ n >> 2 ] | 0 ; if ( ( i - t | 0 ) > ( r [ e + 28 >> 2 ] | 0 ) ) { a = 0 ; return a | 0 } if ( ( i | 0 ) > ( 2147483647 - t | 0 ) ) { o = r [ e >> 2 ] | 0 ; if ( o | 0 ) Cr ( o ) ; o = r [ e + 16 >> 2 ] | 0 ; if ( o | 0 ) Cr ( o ) ; o = r [ e + 20 >> 2 ] | 0 ; if ( o | 0 ) Cr ( o ) ; Or ( e | 0 , 0 , 360 ) | 0 ; a = - 1 ; return a | 0 } o = i + t | 0 ; t = ( o | 0 ) < 2147483615 ? o + 32 | 0 : o ; o = e + 16 | 0 ; i = $r ( r [ o >> 2 ] | 0 , t << 2 ) | 0 ; if ( ! i ) { s = r [ e >> 2 ] | 0 ; if ( s | 0 ) Cr ( s ) ; s = r [ o >> 2 ] | 0 ; if ( s | 0 ) Cr ( s ) ; s = r [ e + 20 >> 2 ] | 0 ; if ( s | 0 ) Cr ( s ) ; Or ( e | 0 , 0 , 360 ) | 0 ; a = - 1 ; return a | 0 } r [ o >> 2 ] = i ; i = e + 20 | 0 ; s = $r ( r [ i >> 2 ] | 0 , t << 3 ) | 0 ; if ( s | 0 ) { r [ i >> 2 ] = s ; r [ n >> 2 ] = t ; a = 0 ; return a | 0 } t = r [ e >> 2 ] | 0 ; if ( t | 0 ) Cr ( t ) ; t = r [ o >> 2 ] | 0 ; if ( t | 0 ) Cr ( t ) ; t = r [ i >> 2 ] | 0 ; if ( t | 0 ) Cr ( t ) ; Or ( e | 0 , 0 , 360 ) | 0 ; a = - 1 ; return a | 0 } function Ne ( e ) { e = e | 0 ; if ( ! e ) return 0 ; r [ e >> 2 ] = 0 ; r [ e + 4 >> 2 ] = 0 ; r [ e + 8 >> 2 ] = 0 ; r [ e + 12 >> 2 ] = 0 ; r [ e + 16 >> 2 ] = 0 ; r [ e + 20 >> 2 ] = 0 ; r [ e + 24 >> 2 ] = 0 ; return 0 } function Le ( e ) { e = e | 0 ; var t = 0 ; if ( ! e ) return 0 ; t = r [ e >> 2 ] | 0 ; if ( t | 0 ) Cr ( t ) ; r [ e >> 2 ] = 0 ; r [ e + 4 >> 2 ] = 0 ; r [ e + 8 >> 2 ] = 0 ; r [ e + 12 >> 2 ] = 0 ; r [ e + 16 >> 2 ] = 0 ; r [ e + 20 >> 2 ] = 0 ; r [ e + 24 >> 2 ] = 0 ; return 0 } function Fe ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 ; n = e + 4 | 0 ; i = r [ n >> 2 ] | 0 ; if ( ( i | 0 ) <= - 1 ) { a = 0 ; return a | 0 } o = e + 12 | 0 ; s = r [ o >> 2 ] | 0 ; l = e + 8 | 0 ; if ( ! s ) c = i ; else { d
P = b ; m = o ; return _ | 0 } i = It ( r [ d >> 2 ] | 0 ) | 0 ; d = Dr ( s | 0 , f | 0 , i | 0 , P | 0 ) | 0 ; i = p ; r [ i >> 2 ] = d ; r [ i + 4 >> 2 ] = P ; i = p ; d = r [ i + 4 >> 2 ] | 0 ; f = ( r [ u >> 2 ] | 0 ) + 8 | 0 ; s = r [ f + 4 >> 2 ] | 0 ; if ( ( d | 0 ) < ( s | 0 ) | ( ( d | 0 ) == ( s | 0 ) ? ( r [ i >> 2 ] | 0 ) >>> 0 < ( r [ f >> 2 ] | 0 ) >>> 0 : 0 ) ) { f = ( r [ u >> 2 ] | 0 ) + 8 | 0 ; i = r [ f + 4 >> 2 ] | 0 ; s = p ; r [ s >> 2 ] = r [ f >> 2 ] ; r [ s + 4 >> 2 ] = i } i = ( r [ u >> 2 ] | 0 ) + 8 | 0 ; r [ i >> 2 ] = 0 ; r [ i + 4 >> 2 ] = 0 ; h = p ; g = h ; _ = r [ g >> 2 ] | 0 ; v = h + 4 | 0 ; y = v ; b = r [ y >> 2 ] | 0 ; P = b ; m = o ; return _ | 0 } function mt ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 ; s = m ; m = m + 48 | 0 ; l = s + 32 | 0 ; c = s + 28 | 0 ; d = s + 24 | 0 ; u = s + 20 | 0 ; p = s + 16 | 0 ; f = s + 8 | 0 ; h = s + 4 | 0 ; g = s ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = i ; r [ s + 12 >> 2 ] = a ; r [ f >> 2 ] = r [ u >> 2 ] ; if ( ( r [ p >> 2 ] | 0 ) < 26 ) { r [ l >> 2 ] = 0 ; _ = r [ l >> 2 ] | 0 ; m = s ; return _ | 0 } if ( ( o [ r [ u >> 2 ] >> 0 ] | 0 | 0 ) != 79 ) { r [ l >> 2 ] = 0 ; _ = r [ l >> 2 ] | 0 ; m = s ; return _ | 0 } if ( Ta ( ( r [ u >> 2 ] | 0 ) + 1 | 0 , 2723 , 4 ) | 0 ) { r [ l >> 2 ] = 0 ; _ = r [ l >> 2 ] | 0 ; m = s ; return _ | 0 } if ( ( o [ ( r [ u >> 2 ] | 0 ) + 5 >> 0 ] | 0 | 0 ) != 1 ) { r [ l >> 2 ] = 0 ; _ = r [ l >> 2 ] | 0 ; m = s ; return _ | 0 } if ( ( o [ ( r [ u >> 2 ] | 0 ) + 6 >> 0 ] | 0 | 0 ) != 1 ) { r [ l >> 2 ] = 0 ; _ = r [ l >> 2 ] | 0 ; m = s ; return _ | 0 } else { r [ h >> 2 ] = gt ( ( r [ f >> 2 ] | 0 ) + 18 | 0 ) | 0 ; r [ g >> 2 ] = gt ( ( r [ f >> 2 ] | 0 ) + 22 | 0 ) | 0 ; f = r [ c >> 2 ] | 0 ; u = r [ d >> 2 ] | 0 ; p = r [ h >> 2 ] | 0 ; h = r [ g >> 2 ] | 0 ; g = Vr ( 1e3 , 0 , h | 0 , ( ( h | 0 ) < 0 ) << 31 >> 31 | 0 ) | 0 ; _t ( f , u , p , ( ( p | 0 ) < 0 ) << 31 >> 31 , g , P ) | 0 ; vt ( r [ c >> 2 ] | 0 , r [ d >> 2 ] | 0 , 32 ) | 0 ; yt ( r [ c >> 2 ] | 0 , r [ d >> 2 ] | 0 , 1 ) | 0 ; r [ l >> 2 ] = 1 ; _ = r [ l >> 2 ] | 0 ; m = s ; return _ | 0 } return 0 } function ht ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var a = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 ; a = m ; m = m + 80 | 0 ; s = a + 40 | 0 ; l = a + 32 | 0 ; c = a + 68 | 0 ; d = a + 64 | 0 ; u = a + 60 | 0 ; p = a + 56 | 0 ; f = a + 52 | 0 ; h = a + 48 | 0 ; g = a + 24 | 0 ; _ = a + 16 | 0 ; v = a + 8 | 0 ; y = a ; b = l ; r [ b >> 2 ] = e ; r [ b + 4 >> 2 ] = t ; r [ c >> 2 ] = n ; r [ d >> 2 ] = i ; r [ h >> 2 ] = r [ ( r [ c >> 2 ] | 0 ) + 504 >> 2 ] ; if ( ! ( r [ ( r [ c >> 2 ] | 0 ) + 504 >> 2 ] | 0 ) ) { i = Ar ( 8 ) | 0 ; r [ ( r [ c >> 2 ] | 0 ) + 504 >> 2 ] = i ; if ( ! ( r [ ( r [ c >> 2 ] | 0 ) + 504 >> 2 ] | 0 ) ) { i = s ; r [ i >> 2 ] = - 1 ; r [ i + 4 >> 2 ] = - 1 ; w = s ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = a ; return M | 0 } else { r [ h >> 2 ] = r [ ( r [ c >> 2 ] | 0 ) + 504 >> 2 ] ; r [ ( r [ h >> 2 ] | 0 ) + 4 >> 2 ] = 0 ; r [ r [ h >> 2 ] >> 2 ] = 1 ; i = s ; r [ i >> 2 ] = 0 ; r [ i + 4 >> 2 ] = 0 ; w = s ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = a ; return M | 0 } } if ( ! ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) ) T = 1 ; else T = ( o [ r [ r [ d >> 2 ] >> 2 ] >> 0 ] | 0 | 0 ) == 79 ; r [ u >> 2 ] = T & 1 ; if ( ! ( r [ u >> 2 ] | 0 ) ? ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) > 0 : 0 ) $ = ( ( o [ r [ r [ d >> 2 ] >> 2 ] >> 0 ] | 0 ) & 1 | 0 ) == 0 ; else $ = 0 ; r [ p >> 2 ] = $ & 1 ; if ( ! ( r [ u >> 2 ] | 0 ) ? ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) > 0 : 0 ) E = ( ( o [ r [ r [ d >> 2 ] >> 2 ] >> 0 ] | 0 ) >> 4 & 1 | 0 ) != 0 ; else E = 0 ; r [ f >> 2 ] = E & 1 ; E = r [ h >> 2 ] | 0 ; if ( r [ u >> 2 ] | 0 ) r [ E >> 2 ] = ( r [ E >> 2 ] | 0 ) + 1 ; else r [ E + 4 >> 2 ] = 1 ; E = l ; d = r [ E + 4 >> 2 ] | 0 ; if ( ( d | 0 ) > - 1 | ( d | 0 ) == - 1 & ( r [ E >> 2 ] | 0 ) >>> 0 > 4294967295 ) { E = l ; l = r [ E + 4 >> 2 ] | 0 ; d = s ; r [ d >> 2 ] = r [ E >> 2 ] ; r [ d + 4 >> 2 ] = l ; w = s ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = a ; return M | 0 } if ( ! ( r [ ( r [ h >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) ) { h = s ; r [ h >> 2 ] = 0 ; r [ h + 4 >> 2 ] = 0 ; w = s ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = a ; return M | 0 } h = ( r [ c >> 2 ] | 0 ) + 488 | 0 ; l = r [ h + 4 >> 2 ] | 0 ; if ( ! ( ( l | 0 ) > 0 | ( l | 0 ) == 0 & ( r [ h >> 2 ] | 0 ) >>> 0 > 0 ) ) { h = s ; r [ h >> 2 ] = - 1 ; r [ h + 4 >> 2 ] = - 1 ; w = s ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = a ; return M | 0 } h = ( r [ c >> 2 ] | 0 ) + 488 | 0 ; l = r [ h >> 2 ] | 0 ; d = r [ h + 4 >> 2 ] | 0 ; if ( r [ u >> 2 ] | 0 ) { u = s ; r [ u >> 2 ] = l ; r [ u + 4 >> 2 ] = d ; w = s ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = a ; return M | 0 } u = Pr ( l | 0 , d | 0 , 32 ) | 0 ; d = g ; r [ d >> 2 ] = u ; r [ d + 4 >> 2 ] = P ; d = ( r [ c >> 2 ] | 0 ) + 488 | 0 ; u = Pr ( r [ d >> 2 ] | 0 , r [ d + 4 >> 2 ] | 0 , 30 ) | 0 ; d = _ ; r [ d >> 2 ] = u & 3 ; r [ d + 4 >> 2 ] = 0 ; d = ( r [ c >> 2 ] | 0 ) + 488 | 0 ; c = Pr ( r [ d >> 2 ] | 0 , r [ d + 4 >> 2 ] | 0 , 3 ) | 0 ; d = v ; r [ d >> 2 ] = c & 134217727 ; r [ d + 4 >> 2 ] = 0 ; if ( r [ p >> 2 ] | 0 ) { p = v ; r [ p >> 2 ] = 0 ; r [ p + 4 >> 2 ] = 0 } else { p = v ; d = Rr ( r [ p >> 2 ] | 0 , r [ p + 4 >> 2 ] | 0 , 1 , 0 ) | 0 ; p = v ; r [ p >> 2 ] = d ; r [ p + 4 >> 2 ] = P } do if ( ! ( r [ f >> 2 ] | 0 ) ) { p = _ ; if ( ( r [ p >> 2 ] | 0 ) == 3 & ( r [ p + 4 >> 2 ] | 0 ) == 0 ) { p = _ ; r [ p >> 2 ] = 0 ; r [ p + 4 >> 2 ] = 0 ; break } else { p = _ ; d = Rr ( r [ p >> 2 ] | 0 , r [ p + 4 >> 2 ] | 0 , 1 , 0 ) | 0 ; p = _ ; r [ p >> 2 ] = d ; r [ p + 4 >> 2 ] = P ; break } } else { p = g ; d = Rr ( r [ p >> 2 ] | 0 , r [ p + 4 >> 2 ] | 0 , 1 , 0 ) | 0 ; p = g ; r [ p >> 2 ] = d ; r [ p + 4 >> 2 ] = P ; p = _ ; r [ p >> 2 ] = 3 ; r [ p + 4 >> 2 ] = 0 } while ( 0 ) ; f = r [ g >> 2 ] | 0 ; g = _ ; _ = Lr ( r [ g >> 2 ] | 0 , r [ g + 4 >> 2 ] | 0 , 30 ) | 0 ; g = f | P ; f = v ; v = Lr ( r [ f >> 2 ] | 0 , r [ f + 4 >> 2 ] | 0 , 3 ) | 0 ; f = y ; r [ f >> 2 ] = _ | v ; r [ f + 4 >> 2 ] = g | P ; g = y ; y = r [ g + 4 >> 2 ] | 0 ; f = s ; r [ f >> 2 ] = r [ g >> 2 ] ; r [ f + 4 >> 2 ] = y ; w = s ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = a ; return M | 0 } function gt ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; m = t ; return ( o [ r [ n >> 2 ] >> 0 ] | 0 ) << 24 | ( o [ ( r [ n >> 2 ] | 0 ) + 1 >> 0 ] | 0 ) << 16 | ( o [ ( r [ n >> 2 ] | 0 ) + 2 >> 0 ] | 0 ) << 8 | ( o [ ( r [ n >> 2 ] | 0 ) + 3 >> 0 ] | 0 ) | 0 } function _t ( e , t , n , i , a , o ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; var s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 ; s = m ; m = m + 32 | 0 ; l = s + 28 | 0 ; c = s + 24 | 0 ; d = s + 20 | 0 ; u = s + 8 | 0 ; p = s ; f = s + 16 | 0 ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; t = u ; r [ t >> 2 ] = n ; r [ t + 4 >> 2 ] = i ; i = p ; r [ i >> 2
s = o + 16 | 0 ; l = o + 12 | 0 ; c = o ; d = o + 8 | 0 ; r [ s >> 2 ] = e ; r [ l >> 2 ] = t ; t = c ; r [ t >> 2 ] = n ; r [ t + 4 >> 2 ] = i ; r [ d >> 2 ] = a ; hn ( r [ s >> 2 ] | 0 ) ; a = c ; c = _n ( r [ s >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ a >> 2 ] | 0 , r [ a + 4 >> 2 ] | 0 , r [ d >> 2 ] | 0 ) | 0 ; m = o ; return c | 0 } function _n ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 ; o = m ; m = m + 32 | 0 ; s = o + 28 | 0 ; l = o + 24 | 0 ; c = o + 20 | 0 ; d = o ; u = o + 16 | 0 ; p = o + 12 | 0 ; f = o + 8 | 0 ; r [ l >> 2 ] = e ; r [ c >> 2 ] = t ; t = d ; r [ t >> 2 ] = n ; r [ t + 4 >> 2 ] = i ; r [ u >> 2 ] = a ; r [ p >> 2 ] = ( r [ l >> 2 ] | 0 ) + 112 ; r [ f >> 2 ] = vn ( r [ l >> 2 ] | 0 , r [ c >> 2 ] | 0 , r [ u >> 2 ] | 0 ) | 0 ; if ( ( r [ f >> 2 ] | 0 ) == - 1 ) { r [ s >> 2 ] = - 1 ; h = r [ s >> 2 ] | 0 ; m = o ; return h | 0 } r [ ( r [ l >> 2 ] | 0 ) + 64 >> 2 ] = r [ f >> 2 ] ; l = d ; if ( ( r [ l >> 2 ] | 0 ) != - 1 ? 1 : ( r [ l + 4 >> 2 ] | 0 ) != - 1 ) { l = d ; d = r [ l + 4 >> 2 ] | 0 ; u = ( r [ p >> 2 ] | 0 ) + 416 | 0 ; r [ u >> 2 ] = r [ l >> 2 ] ; r [ u + 4 >> 2 ] = d } r [ s >> 2 ] = r [ f >> 2 ] ; h = r [ s >> 2 ] | 0 ; m = o ; return h | 0 } function vn ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 ; i = m ; m = m + 32 | 0 ; a = i + 20 | 0 ; o = i + 16 | 0 ; s = i + 12 | 0 ; l = i + 8 | 0 ; c = i + 4 | 0 ; d = i ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ c >> 2 ] = ( r [ o >> 2 ] | 0 ) + 112 ; if ( ( yn ( r [ o >> 2 ] | 0 , r [ s >> 2 ] | 0 , r [ l >> 2 ] | 0 ) | 0 ) == - 1 ) { r [ a >> 2 ] = - 1 ; u = r [ a >> 2 ] | 0 ; m = i ; return u | 0 } else { r [ d >> 2 ] = bn ( r [ o >> 2 ] | 0 ) | 0 ; r [ ( r [ o >> 2 ] | 0 ) + 64 >> 2 ] = r [ d >> 2 ] ; je ( r [ c >> 2 ] | 0 ) | 0 ; Zt ( r [ ( r [ o >> 2 ] | 0 ) + 80 >> 2 ] | 0 , 7 ) | 0 ; r [ a >> 2 ] = r [ d >> 2 ] ; u = r [ a >> 2 ] | 0 ; m = i ; return u | 0 } return 0 } function yn ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 ; i = m ; m = m + 32 | 0 ; a = i + 16 | 0 ; o = i + 12 | 0 ; s = i + 8 | 0 ; l = i + 4 | 0 ; c = i ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; n = r [ o >> 2 ] | 0 ; if ( r [ ( r [ o >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) { if ( ( hr ( r [ n + 4 >> 2 ] | 0 , r [ s >> 2 ] | 0 , r [ l >> 2 ] | 0 ) | 0 ) == - 1 ) { ya ( ) | 0 ; r [ a >> 2 ] = - 10 ; d = r [ a >> 2 ] | 0 ; m = i ; return d | 0 } } else { o = r [ n + 8 >> 2 ] | 0 ; r [ c >> 2 ] = o ; if ( ! o ) { r [ a >> 2 ] = - 3 ; d = r [ a >> 2 ] | 0 ; m = i ; return d | 0 } if ( ! ( r [ ( r [ c >> 2 ] | 0 ) + 16 >> 2 ] | 0 ) ) { r [ a >> 2 ] = - 1 ; d = r [ a >> 2 ] | 0 ; m = i ; return d | 0 } if ( ( so [ r [ ( r [ c >> 2 ] | 0 ) + 16 >> 2 ] & 7 ] ( r [ ( r [ c >> 2 ] | 0 ) + 20 >> 2 ] | 0 , r [ s >> 2 ] | 0 , r [ l >> 2 ] | 0 ) | 0 ) == - 1 ) { r [ a >> 2 ] = - 1 ; d = r [ a >> 2 ] | 0 ; m = i ; return d | 0 } } r [ a >> 2 ] = 0 ; d = r [ a >> 2 ] | 0 ; m = i ; return d | 0 } function bn ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; t = m ; m = m + 16 | 0 ; n = t + 12 | 0 ; i = t + 8 | 0 ; a = t + 4 | 0 ; o = t ; r [ i >> 2 ] = e ; e = r [ i >> 2 ] | 0 ; do if ( r [ ( r [ i >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) { s = Mr ( r [ e + 4 >> 2 ] | 0 ) | 0 ; r [ o >> 2 ] = s ; if ( ( s | 0 ) == - 1 ) { ya ( ) | 0 ; r [ n >> 2 ] = - 1 } else l = 10 } else { s = r [ e + 8 >> 2 ] | 0 ; r [ a >> 2 ] = s ; if ( ! s ) { r [ n >> 2 ] = - 3 ; break } if ( ! ( r [ ( r [ a >> 2 ] | 0 ) + 24 >> 2 ] | 0 ) ) { r [ n >> 2 ] = - 1 ; break } s = co [ r [ ( r [ a >> 2 ] | 0 ) + 24 >> 2 ] & 15 ] ( r [ ( r [ a >> 2 ] | 0 ) + 28 >> 2 ] | 0 ) | 0 ; r [ o >> 2 ] = s ; if ( ( s | 0 ) == - 1 ) r [ n >> 2 ] = - 1 ; else l = 10 } while ( 0 ) ; if ( ( l | 0 ) == 10 ) r [ n >> 2 ] = r [ o >> 2 ] ; m = t ; return r [ n >> 2 ] | 0 } function wn ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; e = ( r [ n >> 2 ] | 0 ) + 488 | 0 ; r [ e >> 2 ] = - 1 ; r [ e + 4 >> 2 ] = - 1 ; m = t ; return 0 } function kn ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 ; t = m ; m = m + 16 | 0 ; n = t + 4 | 0 ; i = t ; r [ n >> 2 ] = e ; r [ i >> 2 ] = r [ n >> 2 ] ; if ( ( r [ ( r [ i >> 2 ] | 0 ) + 336 >> 2 ] | 0 ) == - 1 ) { m = t ; return 0 } Ve ( r [ i >> 2 ] | 0 ) | 0 ; m = t ; return 0 } function Mn ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; n = m ; m = m + 16 | 0 ; i = n + 12 | 0 ; a = n + 8 | 0 ; o = n + 4 | 0 ; s = n ; r [ a >> 2 ] = e ; r [ o >> 2 ] = t ; r [ s >> 2 ] = Ar ( 512 ) | 0 ; if ( ! ( r [ s >> 2 ] | 0 ) ) { r [ i >> 2 ] = 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } De ( r [ s >> 2 ] | 0 , r [ o >> 2 ] | 0 ) | 0 ; o = ( ai ( r [ s >> 2 ] | 0 ) | 0 ) == - 1 ; t = r [ s >> 2 ] | 0 ; if ( o ) { Cr ( t ) ; r [ i >> 2 ] = 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } else { r [ t + 360 >> 2 ] = 15 ; r [ ( r [ s >> 2 ] | 0 ) + 364 >> 2 ] = 3 ; r [ ( r [ s >> 2 ] | 0 ) + 368 >> 2 ] = 0 ; t = ( r [ s >> 2 ] | 0 ) + 376 | 0 ; r [ t >> 2 ] = 1 ; r [ t + 4 >> 2 ] = 0 ; t = ( r [ s >> 2 ] | 0 ) + 384 | 0 ; r [ t >> 2 ] = 1 ; r [ t + 4 >> 2 ] = 0 ; t = ( r [ s >> 2 ] | 0 ) + 392 | 0 ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; t = ( r [ s >> 2 ] | 0 ) + 400 | 0 ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 408 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 420 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 424 >> 2 ] = 1 ; r [ ( r [ s >> 2 ] | 0 ) + 428 >> 2 ] = 0 ; t = ( r [ s >> 2 ] | 0 ) + 432 | 0 ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; t = ( r [ s >> 2 ] | 0 ) + 440 | 0 ; r [ t >> 2 ] = - 1 ; r [ t + 4 >> 2 ] = - 1 ; r [ ( r [ s >> 2 ] | 0 ) + 448 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 452 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 456 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 460 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 464 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 468 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 472 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 476 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 480 >> 2 ] = 0 ; r [ ( r [ s >> 2 ] | 0 ) + 504 >> 2 ] = 0 ; Jn ( r [ ( r [ a >> 2 ] | 0 ) + 80 >> 2 ] | 0 , r [ s >> 2 ] | 0 ) | 0 ; r [ i >> 2 ] = r [ s >> 2 ] ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } return 0 } function Sn ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 ; a = m ; m = m + 32 | 0 ; o = a + 20 | 0 ; s = a + 16 | 0 ; l = a + 12 | 0 ; c = a + 8 | 0 ; d = a + 4 | 0 ; u = a ; r [ s >> 2 ] = e ; r [ l >> 2 ] = t ; r [ c >> 2 ] = n ; r [ d >> 2 ] = i ; r [ u >> 2 ] = 0 ; r [ u >> 2 ] = Ct ( r [ s >> 2 ] | 0 , r [ c >> 2 ] | 0 ) | 0 ; if ( ( r [ u >> 2 ] | 0 ) < 0 | ( r [ u >> 2 ] | 0 ) >= 15 ) { r [ o >> 2 ] = 0 ; p = r [ o >> 2 ] | 0 ; m = a ; return p | 0 } if ( ( r [ u >> 2 ] | 0 ) == 6 ? ( r [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) == 0 : 0 ) { r [ o >> 2 ] = Ln ( r [ s >> 2 ] | 0 , r [ c >> 2 ] | 0 , r [ r [ l >> 2 ] >> 2 ] | 0 , r [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] | 0 , r [ d >> 2 ] | 0 ) | 0 ; p = r [ o >> 2 ] | 0 ; m = a ; return p | 0 } r [ o >> 2 ] = fo [ r [ 1032 + ( ( r [ u >> 2 ] | 0 ) * 24 | 0 ) + 12 >> 2 ] & 31 ] ( r [ s >> 2 ] | 0 , r [ c >> 2 ] | 0 , r [ r [ l >> 2 ] >> 2 ] | 0 , r [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] | 0 , r [ d >> 2 ] | 0
var n = 0 , i = 0 , o = 0 , s = 0 , l = 0 , c = 0 ; n = m ; m = m + 16 | 0 ; i = n + 12 | 0 ; o = n + 8 | 0 ; s = n + 4 | 0 ; l = n ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = - 1 ; if ( ! ( r [ o >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 2 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } if ( ! ( r [ s >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 13 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } if ( r [ ( r [ s >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) { if ( ( r [ ( r [ o >> 2 ] | 0 ) + 120 >> 2 ] | 0 ) != 1 ) { r [ i >> 2 ] = - 1 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } a [ ( r [ o >> 2 ] | 0 ) + 118 >> 1 ] = 1 ; r [ ( r [ o >> 2 ] | 0 ) + 120 >> 2 ] = 2 ; if ( r [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) { r [ i >> 2 ] = - 6 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } else { r [ i >> 2 ] = 0 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } } do if ( ! ( Ta ( r [ r [ s >> 2 ] >> 2 ] | 0 , 2779 , 8 ) | 0 ) ) { r [ l >> 2 ] = Si ( r [ o >> 2 ] | 0 , r [ s >> 2 ] | 0 ) | 0 ; if ( r [ l >> 2 ] | 0 ) { if ( r [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) { if ( r [ ( r [ o >> 2 ] | 0 ) + 120 >> 2 ] | 0 ) r [ l >> 2 ] = - 14 } else r [ l >> 2 ] = - 12 ; r [ ( r [ o >> 2 ] | 0 ) + 120 >> 2 ] = 1 } } else { if ( ! ( Ta ( r [ r [ s >> 2 ] >> 2 ] | 0 , 2770 , 8 ) | 0 ) ) { r [ l >> 2 ] = Ai ( r [ o >> 2 ] | 0 , r [ s >> 2 ] | 0 ) | 0 ; if ( ! ( r [ l >> 2 ] | 0 ) ) break ; if ( ( r [ ( r [ o >> 2 ] | 0 ) + 120 >> 2 ] | 0 ) == 1 ) break ; r [ l >> 2 ] = - 14 ; break } if ( Ta ( r [ r [ s >> 2 ] >> 2 ] | 0 , 2788 , 6 ) | 0 ) { r [ l >> 2 ] = - 1 ; break } a [ ( r [ o >> 2 ] | 0 ) + 116 >> 1 ] = 1 ; r [ l >> 2 ] = Ci ( r [ o >> 2 ] | 0 , r [ s >> 2 ] | 0 ) | 0 ; if ( r [ l >> 2 ] | 0 ? ( r [ ( r [ o >> 2 ] | 0 ) + 120 >> 2 ] | 0 ) != 1 : 0 ) r [ l >> 2 ] = - 14 } while ( 0 ) ; r [ i >> 2 ] = r [ l >> 2 ] ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } function Si ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , a = 0 , o = 0 , l = 0 , c = 0 , d = 0 , u = 0 ; n = m ; m = m + 32 | 0 ; a = n + 16 | 0 ; o = n + 12 | 0 ; l = n + 8 | 0 ; c = n + 4 | 0 ; d = n ; r [ o >> 2 ] = e ; r [ l >> 2 ] = t ; r [ d >> 2 ] = 0 ; if ( ! ( r [ o >> 2 ] | 0 ) ) { r [ a >> 2 ] = - 2 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } if ( r [ l >> 2 ] | 0 ? r [ r [ l >> 2 ] >> 2 ] | 0 : 0 ) { r [ d >> 2 ] = ( r [ r [ l >> 2 ] >> 2 ] | 0 ) + 8 ; r [ d >> 2 ] = Pi ( r [ d >> 2 ] | 0 , r [ o >> 2 ] | 0 ) | 0 ; r [ d >> 2 ] = Pi ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 2 | 0 ) | 0 ; r [ c >> 2 ] = ( s [ r [ o >> 2 ] >> 1 ] | 0 ) << 16 | ( s [ ( r [ o >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) ; if ( ( r [ c >> 2 ] | 0 ) >>> 0 > 262144 ) { r [ a >> 2 ] = - 11 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } if ( ( r [ c >> 2 ] | 0 ) == 262144 ? ( r [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) != 80 : 0 ) { r [ a >> 2 ] = - 18 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } if ( ( s [ r [ o >> 2 ] >> 1 ] | 0 | 0 ) == 3 ) { if ( ( s [ ( r [ o >> 2 ] | 0 ) + 2 >> 1 ] | 0 | 0 ) >= 2 ? ( r [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) != 112 : 0 ) { r [ a >> 2 ] = - 18 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } if ( ( s [ ( r [ o >> 2 ] | 0 ) + 2 >> 1 ] | 0 | 0 ) == 0 ? ( r [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) != 64 : 0 ) { r [ a >> 2 ] = - 18 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } } r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 8 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 16 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 24 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 32 | 0 ) | 0 ; l = ( r [ o >> 2 ] | 0 ) + 40 | 0 ; t = r [ d >> 2 ] | 0 ; e = l + 20 | 0 ; do { i [ l >> 0 ] = i [ t >> 0 ] | 0 ; l = l + 1 | 0 ; t = t + 1 | 0 } while ( ( l | 0 ) < ( e | 0 ) ) ; if ( ( r [ c >> 2 ] | 0 ) >>> 0 >= 196610 ) { r [ d >> 2 ] = ( r [ d >> 2 ] | 0 ) + 20 ; if ( ( s [ r [ o >> 2 ] >> 1 ] | 0 | 0 ) == 3 ) { r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 64 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 72 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 80 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 88 | 0 ) | 0 } r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 96 | 0 ) | 0 ; $i ( r [ d >> 2 ] | 0 , ( r [ o >> 2 ] | 0 ) + 104 | 0 ) | 0 } r [ a >> 2 ] = 1 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } r [ a >> 2 ] = - 13 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } function Ai ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 ; n = m ; m = m + 32 | 0 ; a = n + 20 | 0 ; o = n + 16 | 0 ; s = n + 12 | 0 ; l = n + 8 | 0 ; c = n + 4 | 0 ; d = n ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = 0 ; r [ c >> 2 ] = - 1 ; r [ d >> 2 ] = 0 ; if ( ! ( r [ o >> 2 ] | 0 ) ) { r [ a >> 2 ] = - 2 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } if ( r [ s >> 2 ] | 0 ? r [ r [ s >> 2 ] >> 2 ] | 0 : 0 ) { if ( ( r [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) < 52 ) { r [ a >> 2 ] = - 7 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } r [ l >> 2 ] = Tr ( 1 , 56 ) | 0 ; if ( ! ( r [ l >> 2 ] | 0 ) ) { r [ a >> 2 ] = - 4 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } r [ d >> 2 ] = ( r [ r [ s >> 2 ] >> 2 ] | 0 ) + 8 ; r [ d >> 2 ] = xi ( r [ d >> 2 ] | 0 , r [ l >> 2 ] | 0 ) | 0 ; r [ d >> 2 ] = Ti ( r [ d >> 2 ] | 0 , ( r [ l >> 2 ] | 0 ) + 4 | 0 ) | 0 ; r [ d >> 2 ] = xi ( r [ d >> 2 ] | 0 , ( r [ l >> 2 ] | 0 ) + 8 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ l >> 2 ] | 0 ) + 16 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ l >> 2 ] | 0 ) + 24 | 0 ) | 0 ; r [ d >> 2 ] = $i ( r [ d >> 2 ] | 0 , ( r [ l >> 2 ] | 0 ) + 32 | 0 ) | 0 ; r [ d >> 2 ] = xi ( r [ d >> 2 ] | 0 , ( r [ l >> 2 ] | 0 ) + 40 | 0 ) | 0 ; i [ ( r [ l >> 2 ] | 0 ) + 44 >> 0 ] = i [ r [ d >> 2 ] >> 0 ] | 0 ; d = Tr ( ( r [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) - 52 | 0 , 1 ) | 0 ; r [ ( r [ l >> 2 ] | 0 ) + 48 >> 2 ] = d ; d = r [ l >> 2 ] | 0 ; if ( ! ( r [ ( r [ l >> 2 ] | 0 ) + 48 >> 2 ] | 0 ) ) { Cr ( d ) ; r [ a >> 2 ] = - 4 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } zr ( r [ d + 48 >> 2 ] | 0 , ( r [ r [ s >> 2 ] >> 2 ] | 0 ) + 52 | 0 , ( r [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) - 52 | 0 ) | 0 ; r [ c >> 2 ] = bi ( r [ ( r [ o >> 2 ] | 0 ) + 112 >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) | 0 ; if ( ( r [ c >> 2 ] | 0 ) < 0 ) Cr ( r [ l >> 2 ] | 0 ) ; r [ a >> 2 ] = r [ c >> 2 ] ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } r [ a >> 2 ] = - 13 ; u = r [ a >> 2 ] | 0 ; m = n ; return u | 0 } function Ci ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 ; n = m ; m = m + 80 | 0 ; i = n + 76 | 0 ; a = n + 72 | 0 ; o = n + 68 | 0 ; l = n + 48 | 0 ; c = n + 40 | 0 ; d = n + 32 | 0 ; u = n + 24 | 0 ; p = n + 64 | 0 ; f = n + 16 | 0 ; h = n + 60 | 0 ; g = n + 56 | 0 ; _ = n + 8 | 0 ; v = n ; r [ a >> 2 ] = e ; r [ o >> 2 ] = t ; t = l ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; t = c ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; t = d ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; t = u ; r [ t >> 2 ] = 1e3 ; r [ t + 4 >> 2 ] = 0 ; r [ p >> 2 ] = 0 ; t = f ; r [ t >> 2 ] = - 1 ; r [ t + 4 >> 2 ] = - 1 ; r [ h >> 2 ] = 0 ; r [ g >> 2 ] = - 1 ; if ( ! ( r [ a >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 2 ; y = r [ i >> 2 ] | 0 ; m = n ; return y | 0 } if ( r [ o >> 2 ] | 0 ? r [ r [ o
R = r [ D >> 2 ] | 0 ; S = r [ D + 4 >> 2 ] | 0 ; D = Oa ( R , S , _ , ce & 32 ) | 0 ; z = ( se & 8 | 0 ) == 0 | ( R | 0 ) == 0 & ( S | 0 ) == 0 ; de = R ; ue = S ; pe = D ; fe = se ; me = le ; he = z ? 0 : 2 ; ge = z ? 3591 : 3591 + ( ce >> 4 ) | 0 ; A = 67 } else if ( ( A | 0 ) == 66 ) { A = 0 ; de = ve ; ue = ye ; pe = La ( ve , ye , _ ) | 0 ; fe = B ; me = ne ; he = be ; ge = we ; A = 67 } else if ( ( A | 0 ) == 71 ) { A = 0 ; z = Ua ( $e , 0 , ne ) | 0 ; D = ( z | 0 ) == 0 ; ke = $e ; Me = U ; Se = D ? ne : z - $e | 0 ; Ae = 0 ; Ce = 3591 ; Te = D ? $e + ne | 0 : z } else if ( ( A | 0 ) == 75 ) { A = 0 ; z = 0 ; D = 0 ; S = Ee ; while ( 1 ) { R = r [ S >> 2 ] | 0 ; if ( ! R ) { Pe = z ; De = D ; break } F = Ha ( h , R ) | 0 ; if ( ( F | 0 ) < 0 | F >>> 0 > ( Ie - z | 0 ) >>> 0 ) { Pe = z ; De = F ; break } R = F + z | 0 ; if ( Ie >>> 0 > R >>> 0 ) { z = R ; D = F ; S = S + 4 | 0 } else { Pe = R ; De = F ; break } } if ( ( De | 0 ) < 0 ) { X = - 1 ; break e } Ba ( e , 32 , ee , Pe , B ) ; if ( ! Pe ) { xe = 0 ; A = 84 } else { S = 0 ; D = Ee ; while ( 1 ) { z = r [ D >> 2 ] | 0 ; if ( ! z ) { xe = Pe ; A = 84 ; break t } F = Ha ( h , z ) | 0 ; S = F + S | 0 ; if ( ( S | 0 ) > ( Pe | 0 ) ) { xe = Pe ; A = 84 ; break t } Pa ( e , h , F ) ; if ( S >>> 0 >= Pe >>> 0 ) { xe = Pe ; A = 84 ; break } else D = D + 4 | 0 } } } while ( 0 ) ; if ( ( A | 0 ) == 67 ) { A = 0 ; U = ( de | 0 ) != 0 | ( ue | 0 ) != 0 ; D = ( me | 0 ) != 0 | U ; S = ( ( U ^ 1 ) & 1 ) + ( v - pe ) | 0 ; ke = D ? pe : _ ; Me = ( me | 0 ) > - 1 ? fe & - 65537 : fe ; Se = D ? ( me | 0 ) > ( S | 0 ) ? me : S : me ; Ae = he ; Ce = ge ; Te = _ } else if ( ( A | 0 ) == 84 ) { A = 0 ; Ba ( e , 32 , ee , xe , B ^ 8192 ) ; b = ae ; t = M ; w = ( ee | 0 ) > ( xe | 0 ) ? ee : xe ; k = Q ; continue } S = Te - ke | 0 ; D = ( Se | 0 ) < ( S | 0 ) ? S : Se ; U = D + Ae | 0 ; F = ( ee | 0 ) < ( U | 0 ) ? U : ee ; Ba ( e , 32 , F , U , Me ) ; Pa ( e , Ce , Ae ) ; Ba ( e , 48 , F , U , Me ^ 65536 ) ; Ba ( e , 48 , D , S , 0 ) ; Pa ( e , ke , S ) ; Ba ( e , 32 , F , U , Me ^ 8192 ) ; b = ae ; t = M ; w = F ; k = Q } e : do if ( ( A | 0 ) == 87 ) if ( ! e ) if ( ! k ) X = 0 ; else { Q = 1 ; while ( 1 ) { w = r [ s + ( Q << 2 ) >> 2 ] | 0 ; if ( ! w ) { Re = Q ; break } Ra ( o + ( Q << 3 ) | 0 , w , n ) ; Q = Q + 1 | 0 ; if ( ( Q | 0 ) >= 10 ) { X = 1 ; break e } } while ( 1 ) { if ( r [ s + ( Re << 2 ) >> 2 ] | 0 ) { X = - 1 ; break e } Re = Re + 1 | 0 ; if ( ( Re | 0 ) >= 10 ) { X = 1 ; break } } } else X = M ; while ( 0 ) ; m = l ; return X | 0 } function Ia ( e ) { e = e | 0 ; return 0 } function xa ( e ) { e = e | 0 ; return } function Pa ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; if ( ! ( r [ e >> 2 ] & 32 ) ) er ( t , n , e ) | 0 ; return } function Da ( e ) { e = e | 0 ; var t = 0 , n = 0 , a = 0 , o = 0 , s = 0 ; t = r [ e >> 2 ] | 0 ; n = ( i [ t >> 0 ] | 0 ) + - 48 | 0 ; if ( n >>> 0 < 10 ) { a = t ; t = 0 ; o = n ; while ( 1 ) { n = o + ( t * 10 | 0 ) | 0 ; a = a + 1 | 0 ; r [ e >> 2 ] = a ; o = ( i [ a >> 0 ] | 0 ) + - 48 | 0 ; if ( o >>> 0 >= 10 ) { s = n ; break } else t = n } } else s = 0 ; return s | 0 } function Ra ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; e : do if ( t >>> 0 <= 20 ) do switch ( t | 0 ) { case 9 : { i = ( r [ n >> 2 ] | 0 ) + ( 4 - 1 ) & ~ ( 4 - 1 ) ; a = r [ i >> 2 ] | 0 ; r [ n >> 2 ] = i + 4 ; r [ e >> 2 ] = a ; break e ; break } case 10 : { a = ( r [ n >> 2 ] | 0 ) + ( 4 - 1 ) & ~ ( 4 - 1 ) ; i = r [ a >> 2 ] | 0 ; r [ n >> 2 ] = a + 4 ; a = e ; r [ a >> 2 ] = i ; r [ a + 4 >> 2 ] = ( ( i | 0 ) < 0 ) << 31 >> 31 ; break e ; break } case 11 : { i = ( r [ n >> 2 ] | 0 ) + ( 4 - 1 ) & ~ ( 4 - 1 ) ; a = r [ i >> 2 ] | 0 ; r [ n >> 2 ] = i + 4 ; i = e ; r [ i >> 2 ] = a ; r [ i + 4 >> 2 ] = 0 ; break e ; break } case 12 : { i = ( r [ n >> 2 ] | 0 ) + ( 8 - 1 ) & ~ ( 8 - 1 ) ; a = i ; o = r [ a >> 2 ] | 0 ; s = r [ a + 4 >> 2 ] | 0 ; r [ n >> 2 ] = i + 8 ; i = e ; r [ i >> 2 ] = o ; r [ i + 4 >> 2 ] = s ; break e ; break } case 13 : { s = ( r [ n >> 2 ] | 0 ) + ( 4 - 1 ) & ~ ( 4 - 1 ) ; i = r [ s >> 2 ] | 0 ; r [ n >> 2 ] = s + 4 ; s = ( i & 65535 ) << 16 >> 16 ; i = e ; r [ i >> 2 ] = s ; r [ i + 4 >> 2 ] = ( ( s | 0 ) < 0 ) << 31 >> 31 ; break e ; break } case 14 : { s = ( r [ n >> 2 ] | 0 ) + ( 4 - 1 ) & ~ ( 4 - 1 ) ; i = r [ s >> 2 ] | 0 ; r [ n >> 2 ] = s + 4 ; s = e ; r [ s >> 2 ] = i & 65535 ; r [ s + 4 >> 2 ] = 0 ; break e ; break } case 15 : { s = ( r [ n >> 2 ] | 0 ) + ( 4 - 1 ) & ~ ( 4 - 1 ) ; i = r [ s >> 2 ] | 0 ; r [ n >> 2 ] = s + 4 ; s = ( i & 255 ) << 24 >> 24 ; i = e ; r [ i >> 2 ] = s ; r [ i + 4 >> 2 ] = ( ( s | 0 ) < 0 ) << 31 >> 31 ; break e ; break } case 16 : { s = ( r [ n >> 2 ] | 0 ) + ( 4 - 1 ) & ~ ( 4 - 1 ) ; i = r [ s >> 2 ] | 0 ; r [ n >> 2 ] = s + 4 ; s = e ; r [ s >> 2 ] = i & 255 ; r [ s + 4 >> 2 ] = 0 ; break e ; break } case 17 : { s = ( r [ n >> 2 ] | 0 ) + ( 8 - 1 ) & ~ ( 8 - 1 ) ; l = + d [ s >> 3 ] ; r [ n >> 2 ] = s + 8 ; d [ e >> 3 ] = l ; break e ; break } case 18 : { s = ( r [ n >> 2 ] | 0 ) + ( 8 - 1 ) & ~ ( 8 - 1 ) ; l = + d [ s >> 3 ] ; r [ n >> 2 ] = s + 8 ; d [ e >> 3 ] = l ; break e ; break } default : break e } while ( 0 ) ; while ( 0 ) ; return } function Oa ( e , t , n , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; a = a | 0 ; var r = 0 , s = 0 ; if ( ( e | 0 ) == 0 & ( t | 0 ) == 0 ) r = n ; else { s = e ; e = t ; t = n ; while ( 1 ) { n = t + - 1 | 0 ; i [ n >> 0 ] = o [ 3643 + ( s & 15 ) >> 0 ] | 0 | a ; s = Nr ( s | 0 , e | 0 , 4 ) | 0 ; e = P ; if ( ( s | 0 ) == 0 & ( e | 0 ) == 0 ) { r = n ; break } else t = n } } return r | 0 } function Na ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var a = 0 , r = 0 ; if ( ( e | 0 ) == 0 & ( t | 0 ) == 0 ) a = n ; else { r = e ; e = t ; t = n ; while ( 1 ) { n = t + - 1 | 0 ; i [ n >> 0 ] = r & 7 | 48 ; r = Nr ( r | 0 , e | 0 , 3 ) | 0 ; e = P ; if ( ( r | 0 ) == 0 & ( e | 0 ) == 0 ) { a = n ; break } else t = n } } return a | 0 } function La ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var a = 0 , r = 0 , o = 0 , s = 0 , l = 0 , c = 0 ; if ( t >>> 0 > 0 | ( t | 0 ) == 0 & e >>> 0 > 4294967295 ) { a = e ; r = t ; t = n ; while ( 1 ) { o = Gr ( a | 0 , r | 0 , 10 , 0 ) | 0 ; t = t + - 1 | 0 ; i [ t >> 0 ] = o & 255 | 48 ; o = a ; a = Hr ( a | 0 , r | 0 , 10 , 0 ) | 0 ; if ( ! ( r >>> 0 > 9 | ( r | 0 ) == 9 & o >>> 0 > 4294967295 ) ) break ; else r = P } s = t ; l = a } else { s = n ; l = e } if ( ! l ) c = s ; else { e = s ; s = l ; while ( 1 ) { l = e + - 1 | 0 ; i [ l >> 0 ] = ( s >>> 0 ) % 10 | 0 | 48 ; if ( s >>> 0 < 10 ) { c = l ; break } else { e = l ; s = ( s >>> 0 ) / 10 | 0 } } } return c | 0 } function Fa ( e ) { e = e | 0 ; return Ya ( e , r [ ( Ka ( ) | 0 ) + 188 >> 2 ] | 0 ) | 0 } function Ua ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 ; a = t & 255 ; o = ( n | 0 ) != 0 ; e : do if ( o & ( e & 3 | 0 ) != 0 ) { s = t & 255 ; l = n ; c = e ; while ( 1 ) { if ( ( i [ c >> 0 ] | 0 ) == s << 24 >> 24 ) { d = l ; u = c ; p
Se = n ; Ae = Z } } else { r [ 1421 ] = q | _ ; Se = ee + 8 | 0 ; Ae = ee } r [ Se >> 2 ] = se ; r [ Ae + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = Ae ; r [ se + 12 >> 2 ] = ee ; break } ee = z >>> 8 ; if ( ee ) if ( z >>> 0 > 16777215 ) Ce = 31 ; else { _ = ( ee + 1048320 | 0 ) >>> 16 & 8 ; q = ee << _ ; ee = ( q + 520192 | 0 ) >>> 16 & 4 ; Z = q << ee ; q = ( Z + 245760 | 0 ) >>> 16 & 2 ; n = 14 - ( ee | _ | q ) + ( Z << q >>> 15 ) | 0 ; Ce = z >>> ( n + 7 | 0 ) & 1 | n << 1 } else Ce = 0 ; n = 5988 + ( Ce << 2 ) | 0 ; r [ se + 28 >> 2 ] = Ce ; r [ se + 20 >> 2 ] = 0 ; r [ ne >> 2 ] = 0 ; q = r [ 1422 ] | 0 ; Z = 1 << Ce ; if ( ! ( q & Z ) ) { r [ 1422 ] = q | Z ; r [ n >> 2 ] = se ; r [ se + 24 >> 2 ] = n ; r [ se + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = se ; break } Z = z << ( ( Ce | 0 ) == 31 ? 0 : 25 - ( Ce >>> 1 ) | 0 ) ; q = r [ n >> 2 ] | 0 ; while ( 1 ) { if ( ( r [ q + 4 >> 2 ] & - 8 | 0 ) == ( z | 0 ) ) { N = 292 ; break } Te = q + 16 + ( Z >>> 31 << 2 ) | 0 ; n = r [ Te >> 2 ] | 0 ; if ( ! n ) { N = 289 ; break } else { Z = Z << 1 ; q = n } } if ( ( N | 0 ) == 289 ) if ( Te >>> 0 < ( r [ 1425 ] | 0 ) >>> 0 ) fe ( ) ; else { r [ Te >> 2 ] = se ; r [ se + 24 >> 2 ] = q ; r [ se + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = se ; break } else if ( ( N | 0 ) == 292 ) { Z = q + 8 | 0 ; z = r [ Z >> 2 ] | 0 ; ne = r [ 1425 ] | 0 ; if ( z >>> 0 >= ne >>> 0 & q >>> 0 >= ne >>> 0 ) { r [ z + 12 >> 2 ] = se ; r [ Z >> 2 ] = se ; r [ se + 8 >> 2 ] = z ; r [ se + 12 >> 2 ] = q ; r [ se + 24 >> 2 ] = 0 ; break } else fe ( ) } } } else { z = r [ 1425 ] | 0 ; if ( ( z | 0 ) == 0 | ie >>> 0 < z >>> 0 ) r [ 1425 ] = ie ; r [ 1533 ] = ie ; r [ 1534 ] = ae ; r [ 1536 ] = 0 ; r [ 1430 ] = r [ 1539 ] ; r [ 1429 ] = - 1 ; z = 0 ; do { Z = 5724 + ( z << 1 << 2 ) | 0 ; r [ Z + 12 >> 2 ] = Z ; r [ Z + 8 >> 2 ] = Z ; z = z + 1 | 0 } while ( ( z | 0 ) != 32 ) ; z = ie + 8 | 0 ; q = ( z & 7 | 0 ) == 0 ? 0 : 0 - z & 7 ; z = ie + q | 0 ; Z = ae + - 40 - q | 0 ; r [ 1427 ] = z ; r [ 1424 ] = Z ; r [ z + 4 >> 2 ] = Z | 1 ; r [ z + Z + 4 >> 2 ] = 40 ; r [ 1428 ] = r [ 1543 ] } while ( 0 ) ; ae = r [ 1424 ] | 0 ; if ( ae >>> 0 > x >>> 0 ) { ie = ae - x | 0 ; r [ 1424 ] = ie ; ae = r [ 1427 ] | 0 ; se = ae + x | 0 ; r [ 1427 ] = se ; r [ se + 4 >> 2 ] = ie | 1 ; r [ ae + 4 >> 2 ] = x | 3 ; g = ae + 8 | 0 ; m = t ; return g | 0 } } r [ ( ya ( ) | 0 ) >> 2 ] = 12 ; g = 0 ; m = t ; return g | 0 } function Cr ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 ; if ( ! e ) return ; t = e + - 8 | 0 ; n = r [ 1425 ] | 0 ; if ( t >>> 0 < n >>> 0 ) fe ( ) ; i = r [ e + - 4 >> 2 ] | 0 ; e = i & 3 ; if ( ( e | 0 ) == 1 ) fe ( ) ; a = i & - 8 ; o = t + a | 0 ; e : do if ( ! ( i & 1 ) ) { s = r [ t >> 2 ] | 0 ; if ( ! e ) return ; l = t + ( 0 - s ) | 0 ; c = s + a | 0 ; if ( l >>> 0 < n >>> 0 ) fe ( ) ; if ( ( l | 0 ) == ( r [ 1426 ] | 0 ) ) { d = o + 4 | 0 ; u = r [ d >> 2 ] | 0 ; if ( ( u & 3 | 0 ) != 3 ) { p = l ; f = l ; m = c ; break } r [ 1423 ] = c ; r [ d >> 2 ] = u & - 2 ; r [ l + 4 >> 2 ] = c | 1 ; r [ l + c >> 2 ] = c ; return } u = s >>> 3 ; if ( s >>> 0 < 256 ) { s = r [ l + 8 >> 2 ] | 0 ; d = r [ l + 12 >> 2 ] | 0 ; h = 5724 + ( u << 1 << 2 ) | 0 ; if ( ( s | 0 ) != ( h | 0 ) ) { if ( s >>> 0 < n >>> 0 ) fe ( ) ; if ( ( r [ s + 12 >> 2 ] | 0 ) != ( l | 0 ) ) fe ( ) } if ( ( d | 0 ) == ( s | 0 ) ) { r [ 1421 ] = r [ 1421 ] & ~ ( 1 << u ) ; p = l ; f = l ; m = c ; break } if ( ( d | 0 ) != ( h | 0 ) ) { if ( d >>> 0 < n >>> 0 ) fe ( ) ; h = d + 8 | 0 ; if ( ( r [ h >> 2 ] | 0 ) == ( l | 0 ) ) g = h ; else fe ( ) } else g = d + 8 | 0 ; r [ s + 12 >> 2 ] = d ; r [ g >> 2 ] = s ; p = l ; f = l ; m = c ; break } s = r [ l + 24 >> 2 ] | 0 ; d = r [ l + 12 >> 2 ] | 0 ; do if ( ( d | 0 ) == ( l | 0 ) ) { h = l + 16 | 0 ; u = h + 4 | 0 ; _ = r [ u >> 2 ] | 0 ; if ( ! _ ) { v = r [ h >> 2 ] | 0 ; if ( ! v ) { y = 0 ; break } else { b = v ; w = h } } else { b = _ ; w = u } while ( 1 ) { u = b + 20 | 0 ; _ = r [ u >> 2 ] | 0 ; if ( _ | 0 ) { b = _ ; w = u ; continue } u = b + 16 | 0 ; _ = r [ u >> 2 ] | 0 ; if ( ! _ ) break ; else { b = _ ; w = u } } if ( w >>> 0 < n >>> 0 ) fe ( ) ; else { r [ w >> 2 ] = 0 ; y = b ; break } } else { u = r [ l + 8 >> 2 ] | 0 ; if ( u >>> 0 < n >>> 0 ) fe ( ) ; _ = u + 12 | 0 ; if ( ( r [ _ >> 2 ] | 0 ) != ( l | 0 ) ) fe ( ) ; h = d + 8 | 0 ; if ( ( r [ h >> 2 ] | 0 ) == ( l | 0 ) ) { r [ _ >> 2 ] = d ; r [ h >> 2 ] = u ; y = d ; break } else fe ( ) } while ( 0 ) ; if ( s ) { d = r [ l + 28 >> 2 ] | 0 ; u = 5988 + ( d << 2 ) | 0 ; do if ( ( l | 0 ) == ( r [ u >> 2 ] | 0 ) ) { r [ u >> 2 ] = y ; if ( ! y ) { r [ 1422 ] = r [ 1422 ] & ~ ( 1 << d ) ; p = l ; f = l ; m = c ; break e } } else if ( s >>> 0 >= ( r [ 1425 ] | 0 ) >>> 0 ) { r [ s + 16 + ( ( ( r [ s + 16 >> 2 ] | 0 ) != ( l | 0 ) & 1 ) << 2 ) >> 2 ] = y ; if ( ! y ) { p = l ; f = l ; m = c ; break e } else break } else fe ( ) ; while ( 0 ) ; d = r [ 1425 ] | 0 ; if ( y >>> 0 < d >>> 0 ) fe ( ) ; r [ y + 24 >> 2 ] = s ; u = l + 16 | 0 ; h = r [ u >> 2 ] | 0 ; do if ( h | 0 ) if ( h >>> 0 < d >>> 0 ) fe ( ) ; else { r [ y + 16 >> 2 ] = h ; r [ h + 24 >> 2 ] = y ; break } while ( 0 ) ; h = r [ u + 4 >> 2 ] | 0 ; if ( h ) if ( h >>> 0 < ( r [ 1425 ] | 0 ) >>> 0 ) fe ( ) ; else { r [ y + 20 >> 2 ] = h ; r [ h + 24 >> 2 ] = y ; p = l ; f = l ; m = c ; break } else { p = l ; f = l ; m = c } } else { p = l ; f = l ; m = c } } else { p = t ; f = t ; m = a } while ( 0 ) ; if ( p >>> 0 >= o >>> 0 ) fe ( ) ; a = o + 4 | 0 ; t = r [ a >> 2 ] | 0 ; if ( ! ( t & 1 ) ) fe ( ) ; if ( ! ( t & 2 ) ) { y = r [ 1426 ] | 0 ; if ( ( o | 0 ) == ( r [ 1427 ] | 0 ) ) { n = ( r [ 1424 ] | 0 ) + m | 0 ; r [ 1424 ] = n ; r [ 1427 ] = f ; r [ f + 4 >> 2 ] = n | 1 ; if ( ( f | 0 ) != ( y | 0 ) ) return ; r [ 1426 ] = 0 ; r [ 1423 ] = 0 ; return } if ( ( o | 0 ) == ( y | 0 ) ) { y = ( r [ 1423 ] | 0 ) + m | 0 ; r [ 1423 ] = y ; r [ 1426 ] = p ; r [ f + 4 >> 2 ] = y | 1 ; r [ p + y >> 2 ] = y ; return } y = ( t & - 8 ) + m | 0 ; n = t >>> 3 ; e : do if ( t >>> 0 >= 256 ) { b = r [ o + 24 >> 2 ] | 0 ; w = r [ o + 12 >> 2 ] | 0 ; do if ( ( w | 0 ) == ( o | 0 ) ) { g = o + 16 | 0 ; e = g + 4 | 0 ; i = r [ e >> 2 ] | 0 ; if ( ! i ) { h = r [ g >> 2 ] | 0 ; if ( ! h ) { k = 0 ; break } else { M = h ; S = g } } else { M = i ; S = e } while ( 1 ) { e = M + 20 | 0 ; i = r [ e >> 2 ] | 0 ; if ( i | 0 ) { M = i ; S = e ; continue } e = M + 16 | 0 ; i = r [ e >> 2 ] | 0 ; if ( ! i ) break ; else { M = i ; S = e } } if ( S >>> 0 < ( r [ 1425 ] | 0 ) >>> 0 ) fe ( ) ; else { r [ S >> 2 ] = 0 ; k = M ; break } } else { e = r [ o + 8 >> 2 ] | 0 ; if ( e >>> 0 < ( r [ 1425 ] | 0 ) >>> 0 ) fe ( ) ; i = e + 12 | 0 ; if ( ( r [ i >> 2 ] | 0 ) != ( o | 0 ) ) fe ( ) ; g = w + 8 | 0 ; if ( ( r [ g >> 2 ] | 0 ) == ( o | 0 ) ) { r [ i >> 2 ] = w ; r [ g >> 2 ] = e ; k = w ; break } else fe ( ) } while ( 0 ) ; if ( b | 0 ) { w = r [ o + 28 >> 2 ] | 0 ; c = 5988 + ( w << 2 ) | 0 ; do if ( ( o | 0 ) == ( r [ c >> 2 ] | 0 ) ) { r [ c >> 2 ] = k ; if ( ! k ) { r [ 1422 ] = r [ 1422 ] & ~
stringToUTF8 ( n , a , i ) ; var r = _malloc ( 4 ) , o = t ( a , 0 , 0 , r ) ; if ( 0 === getValue ( r , "i32" ) && o ) return Pointer _stringify ( o ) } catch ( s ) { } finally { a && _free ( a ) , r && _free ( r ) , o && _free ( o ) } return e } return Runtime . warnOnce ( "warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling" ) , e } function demangleAll ( e ) { var t = /__Z[\w\d_]+/g ; return e . replace ( t , function ( e ) { var t = demangle ( e ) ; return e === t ? e : e + " [" + t + "]" } ) } function jsStackTrace ( ) { var e = new Error ; if ( ! e . stack ) { try { throw new Error ( 0 ) } catch ( t ) { e = t } if ( ! e . stack ) return "(no stack trace available)" } return e . stack . toString ( ) } function stackTrace ( ) { var e = jsStackTrace ( ) ; return Module . extraStackTrace && ( e += "\n" + Module . extraStackTrace ( ) ) , demangleAll ( e ) } function updateGlobalBufferViews ( ) { Module . HEAP8 = HEAP8 = new Int8Array ( buffer ) , Module . HEAP16 = HEAP16 = new Int16Array ( buffer ) , Module . HEAP32 = HEAP32 = new Int32Array ( buffer ) , Module . HEAPU8 = HEAPU8 = new Uint8Array ( buffer ) , Module . HEAPU16 = HEAPU16 = new Uint16Array ( buffer ) , Module . HEAPU32 = HEAPU32 = new Uint32Array ( buffer ) , Module . HEAPF32 = HEAPF32 = new Float32Array ( buffer ) , Module . HEAPF64 = HEAPF64 = new Float64Array ( buffer ) } function abortOnCannotGrowMemory ( ) { abort ( "Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " + TOTAL _MEMORY + ", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 " ) } function enlargeMemory ( ) { abortOnCannotGrowMemory ( ) } function getTotalMemory ( ) { return TOTAL _MEMORY } function callRuntimeCallbacks ( e ) { for ( ; e . length > 0 ; ) { var t = e . shift ( ) ; if ( "function" != typeof t ) { var n = t . func ; "number" == typeof n ? void 0 === t . arg ? Module . dynCall _v ( n ) : Module . dynCall _vi ( n , t . arg ) : n ( void 0 === t . arg ? null : t . arg ) } else t ( ) } } function preRun ( ) { if ( Module . preRun ) for ( "function" == typeof Module . preRun && ( Module . preRun = [ Module . preRun ] ) ; Module . preRun . length ; ) addOnPreRun ( Module . preRun . shift ( ) ) ; callRuntimeCallbacks ( _ _ATPRERUN _ _ ) } function ensureInitRuntime ( ) { runtimeInitialized || ( runtimeInitialized = ! 0 , callRuntimeCallbacks ( _ _ATINIT _ _ ) ) } function preMain ( ) { callRuntimeCallbacks ( _ _ATMAIN _ _ ) } function exitRuntime ( ) { callRuntimeCallbacks ( _ _ATEXIT _ _ ) , runtimeExited = ! 0 } function postRun ( ) { if ( Module . postRun ) for ( "function" == typeof Module . postRun && ( Module . postRun = [ Module . postRun ] ) ; Module . postRun . length ; ) addOnPostRun ( Module . postRun . shift ( ) ) ; callRuntimeCallbacks ( _ _ATPOSTRUN _ _ ) } function addOnPreRun ( e ) { _ _ATPRERUN _ _ . unshift ( e ) } function addOnInit ( e ) { _ _ATINIT _ _ . unshift ( e ) } function addOnPreMain ( e ) { _ _ATMAIN _ _ . unshift ( e ) } function addOnExit ( e ) { _ _ATEXIT _ _ . unshift ( e ) } function addOnPostRun ( e ) { _ _ATPOSTRUN _ _ . unshift ( e ) } function intArrayFromString ( e , t , n ) { var i = n > 0 ? n : lengthBytesUTF8 ( e ) + 1 , a = new Array ( i ) , r = stringToUTF8Array ( e , a , 0 , a . length ) ; return t && ( a . length = r ) , a } function intArrayToString ( e ) { for ( var t = [ ] , n = 0 ; n < e . length ; n ++ ) { var i = e [ n ] ; i > 255 && ( i &= 255 ) , t . push ( String . fromCharCode ( i ) ) } return t . join ( "" ) } function writeStringToMemory ( e , t , n ) { Runtime . warnOnce ( "writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!" ) ; var i , a ; n && ( a = t + lengthBytesUTF8 ( e ) , i = HEAP8 [ a ] ) , stringToUTF8 ( e , t , 1 / 0 ) , n && ( HEAP8 [ a ] = i ) } function writeArrayToMemory ( e , t ) { HEAP8 . set ( e , t ) } function writeAsciiToMemory ( e , t , n ) { for ( var i = 0 ; i < e . length ; ++ i ) HEAP8 [ t ++ >> 0 ] = e . charCodeAt ( i ) ; n || ( HEAP8 [ t >> 0 ] = 0 ) } function addRunDependency ( e ) { runDependencies ++ , Module . monitorRunDependencies && Module . monitorRunDependencies ( runDependencies ) } function removeRunDependency ( e ) { if ( runDependencies -- , Module . monitorRunDependencies && Module . monitorRunDependencies ( runDependencies ) , 0 == runDependencies && ( null !== runDependencyWatcher && ( clearInterval ( runDependencyWatcher ) , runDependencyWatcher = null ) , dependenciesFulfilled ) ) { var t = dependenciesFulfilled ; dependenciesFulfilled = null , t ( ) } } function _abort ( ) { Module . abort ( ) } function _emscripten _memcpy _big ( e , t , n ) { return HEAPU8 . set ( HEAPU8 . subarray ( t , t + n ) , e ) , e } function _llvm _stackrestore ( e ) { var t = _llvm _stacksave , n = t . LLVM _SAVEDSTACKS [ e ] ; t . LLVM _SAVEDSTACKS . splice ( e , 1 ) , Runti
allocate ( [ 191 , 49 , 127 , 63 , 88 , 14 , 127 , 63 , 37 , 232 , 126 , 63 , 38 , 191 , 126 , 63 , 92 , 147 , 126 , 63 , 200 , 100 , 126 , 63 , 105 , 51 , 126 , 63 , 65 , 255 , 125 , 63 , 79 , 200 , 125 , 63 , 150 , 142 , 125 , 63 , 20 , 82 , 125 , 63 , 203 , 18 , 125 , 63 , 188 , 208 , 124 , 63 , 231 , 139 , 124 , 63 , 77 , 68 , 124 , 63 , 239 , 249 , 123 , 63 , 205 , 172 , 123 , 63 , 233 , 92 , 123 , 63 , 67 , 10 , 123 , 63 , 221 , 180 , 122 , 63 , 182 , 92 , 122 , 63 , 209 , 1 , 122 , 63 , 46 , 164 , 121 , 63 , 206 , 67 , 121 , 63 , 178 , 224 , 120 , 63 , 220 , 122 , 120 , 63 , 76 , 18 , 120 , 63 , 4 , 167 , 119 , 63 , 4 , 57 , 119 , 63 , 79 , 200 , 118 , 63 , 228 , 84 , 118 , 63 , 198 , 222 , 117 , 63 , 246 , 101 , 117 , 63 , 117 , 234 , 116 , 63 , 68 , 108 , 116 , 63 , 101 , 235 , 115 , 63 , 218 , 103 , 115 , 63 , 163 , 225 , 114 , 63 , 194 , 88 , 114 , 63 , 57 , 205 , 113 , 63 , 9 , 63 , 113 , 63 , 52 , 174 , 112 , 63 , 187 , 26 , 112 , 63 , 160 , 132 , 111 , 63 , 228 , 235 , 110 , 63 , 138 , 80 , 110 , 63 , 147 , 178 , 109 , 63 , 1 , 18 , 109 , 63 , 213 , 110 , 108 , 63 , 17 , 201 , 107 , 63 , 183 , 32 , 107 , 63 , 201 , 117 , 106 , 63 , 73 , 200 , 105 , 63 , 57 , 24 , 105 , 63 , 155 , 101 , 104 , 63 , 111 , 176 , 103 , 63 , 186 , 248 , 102 , 63 , 124 , 62 , 102 , 63 , 184 , 129 , 101 , 63 , 111 , 194 , 100 , 63 , 164 , 0 , 100 , 63 , 90 , 60 , 99 , 63 , 145 , 117 , 98 , 63 , 76 , 172 , 97 , 63 , 142 , 224 , 96 , 63 , 89 , 18 , 96 , 63 , 174 , 65 , 95 , 63 , 145 , 110 , 94 , 63 , 3 , 153 , 93 , 63 , 8 , 193 , 92 , 63 , 160 , 230 , 91 , 63 , 207 , 9 , 91 , 63 , 152 , 42 , 90 , 63 , 251 , 72 , 89 , 63 , 253 , 100 , 88 , 63 , 159 , 126 , 87 , 63 , 229 , 149 , 86 , 63 , 208 , 170 , 85 , 63 , 99 , 189 , 84 , 63 , 161 , 205 , 83 , 63 , 140 , 219 , 82 , 63 , 39 , 231 , 81 , 63 , 117 , 240 , 80 , 63 , 121 , 247 , 79 , 63 , 52 , 252 , 78 , 63 , 171 , 254 , 77 , 63 , 223 , 254 , 76 , 63 , 212 , 252 , 75 , 63 , 140 , 248 , 74 , 63 , 10 , 242 , 73 , 63 , 82 , 233 , 72 , 63 , 101 , 222 , 71 , 63 , 71 , 209 , 70 , 63 , 251 , 193 , 69 , 63 , 132 , 176 , 68 , 63 , 229 , 156 , 67 , 63 , 32 , 135 , 66 , 63 , 58 , 111 , 65 , 63 , 52 , 85 , 64 , 63 , 19 , 57 , 63 , 63 , 216 , 26 , 62 , 63 , 136 , 250 , 60 , 63 , 38 , 216 , 59 , 63 , 180 , 179 , 58 , 63 , 54 , 141 , 57 , 63 , 175 , 100 , 56 , 63 , 34 , 58 , 55 , 63 , 147 , 13 , 54 , 63 , 5 , 223 , 52 , 63 , 124 , 174 , 51 , 63 , 249 , 123 , 50 , 63 , 130 , 71 , 49 , 63 , 25 , 17 , 48 , 63 , 194 , 216 , 46 , 63 , 127 , 158 , 45 , 63 , 86 , 98 , 44 , 63 , 72 , 36 , 43 , 63 , 90 , 228 , 41 , 63 , 144 , 162 , 40 , 63 , 235 , 94 , 39 , 63 , 113 , 25 , 38 , 63 , 37 , 210 , 36 , 63 , 9 , 137 , 35 , 63 , 35 , 62 , 34 , 63 , 117 , 241 , 32 , 63 , 4 , 163 , 31 , 63 , 210 , 82 , 30 , 63 , 228 , 0 , 29 , 63 , 61 , 173 , 27 , 63 , 225 , 87 , 26 , 63 , 211 , 0 , 25 , 63 , 25 , 168 , 23 , 63 , 180 , 77 , 22 , 63 , 170 , 241 , 20 , 63 , 253 , 147 , 19 , 63 , 178 , 52 , 18 , 63 , 204 , 211 , 16 , 63 , 80 , 113 , 15 , 63 , 66 , 13 , 14 , 63 , 164 , 167 , 12 , 63 , 124 , 64 , 11 , 63 , 205 , 215 , 9 , 63 , 154 , 109 , 8 , 63 , 233 , 1 , 7 , 63 , 189 , 148 , 5 , 63 , 25 , 38 , 4 , 63 , 3 , 182 , 2 , 63 , 126 , 68 , 1 , 63 , 28 , 163 , 255 , 62 , 110 , 186 , 252 , 62 , 250 , 206 , 249 , 62 , 202 , 224 , 246 , 62 , 228 , 239 , 243 , 62 , 81 , 252 , 240 , 62 , 26 , 6 , 238 , 62 , 71 , 13 , 235 , 62 , 224 , 17 , 232 , 62 , 237 , 19 , 229 , 62 , 119 , 19 , 226 , 62 , 135 , 16 , 223 , 62 , 36 , 11 , 220 , 62 , 88 , 3 , 217 , 62 , 42 , 249 , 213 , 62 , 164 , 236 , 210 , 62 , 205 , 221 , 207 , 62 , 175 , 204 , 204 , 62 , 82 , 185 , 201 , 62 , 191 , 163 , 198 , 62 , 254 , 139 , 195 , 62 , 24 , 114 , 192 , 62 , 22 , 86 , 189 , 62 , 0 , 56 , 186 , 62 , 224 , 23 , 183 , 62 , 189 , 245 , 179 , 62 , 161 , 209 , 176 , 62 , 149 , 171 , 173 , 62 , 162 , 131 , 170 , 62 , 207 , 89 , 167 , 62 , 39 , 46 , 164 , 62 , 178 , 0 , 161 , 62 , 121 , 209 , 157 , 62 , 133 , 160 , 154 , 62 , 223 , 109 , 151 , 62 , 143 , 57 , 148 , 62 , 160 , 3 , 145 , 62 , 26 , 204 , 141 , 62 , 5 , 147 , 138 , 62 , 107 , 88 , 135 , 62 , 86 , 28 , 132 , 62 , 205 , 222 , 128 , 62 , 182 , 63 , 123 , 62 , 16 , 191 , 116 , 62 , 187 , 59 , 110 , 62 , 201 , 181 , 103 , 62 , 77 , 45 , 97 , 62 , 89 , 162 , 90 , 62 , 255 , 20 , 84 , 62 , 81 , 133 , 77 , 62 , 99 , 243 , 70 , 62 , 70 , 95 , 64 , 62 , 13 , 201 , 57 , 62 , 202 , 48 , 51 , 62 , 144 , 150 , 44 , 62 , 114 , 250 , 37 , 62 , 130 , 92 , 31 , 62 , 210 , 188 , 24 , 62 , 118 , 27 , 18 , 62 , 127 , 120 , 11 , 62 , 1 , 212 , 4 , 62 , 29 , 92 , 252 , 61 , 114 , 13 , 239 , 61 , 41 , 188 , 225 , 61 , 102 , 104 , 212 , 61 , 78 , 18 , 199 , 61 , 8 , 186 , 185 , 61 , 184 , 95 , 172 , 61 , 132 , 3 , 159 , 61 , 146 , 165 , 145 , 61 , 7 , 70 , 132 , 61 , 18 , 202 , 109 , 61 , 122 , 5 , 83 , 61 , 145 , 62 , 56 , 61 , 164 , 117 , 29 , 61 , 252 , 170 , 2 , 61 , 202 , 189 , 207 , 60 , 86 , 35 , 154 , 60 , 97 , 14 , 73 , 60 , 197 , 167 , 187 , 59 , 61 , 122 , 86 , 186 , 9 , 70 , 241 , 187 , 18 , 221 , 99 , 188 , 80 , 138 , 167 , 188 , 65 , 36 , 221 , 188 , 227 , 93 , 9 , 189 , 35 , 40 , 36 , 189 , 150 , 240 , 62 , 189 , 242 , 182 , 89 , 189 , 234 , 122 , 116 , 189 , 26 , 158 , 135 , 189 , 66 , 253 , 148 , 189 , 200 , 90 , 162 , 189 , 134 , 182 , 175 , 189 , 87 , 16 , 189 , 189 , 22 , 104 , 202 , 189 , 155 , 189 , 215 , 189 , 195 , 16 , 229 , 189 , 105 , 97 , 242 , 189 , 101 , 175 , 255 , 189 , 74 , 125 , 6 , 190 , 104 , 33 , 13 , 190 , 250 , 195 , 19 , 190 , 237 , 100 , 26 , 190 , 46 , 4 , 33 , 190 , 172 , 161 , 39 , 190 , 83 , 61 , 46 , 190 , 16 , 215 , 52 , 190 , 210 , 110 , 59 , 190 , 134 , 4 , 66 , 190 , 25 , 152 , 72 , 190 , 121 , 41 , 79 , 190 , 148 , 184 , 85 , 190 , 86 , 69 , 92 , 190 , 174 , 207 , 98 , 190 , 137 , 87 , 105 , 190 , 214 , 220 , 111 , 190 , 128 , 95 , 118 , 190 , 120 , 223 , 124 , 190 , 84 , 174 , 129 , 190 , 129 , 235 , 132 , 190 , 56 , 39 , 136 , 190 , 114 , 97 , 139 , 190 , 36 , 154 , 142 , 190 , 69 , 209 , 145 , 190 , 205 , 6 , 149 , 190 , 179 , 58 , 152 , 190 , 238 , 108 , 155 , 190 , 116 , 157 , 158 , 190 , 61 , 204 , 161 , 190 , 64 , 249 , 164 , 190 , 115 , 36 , 168 , 190 , 207 , 77 , 171 , 190 , 73 , 117 , 174 , 190 , 218 , 154 , 177 , 190 , 120 , 190 , 180 , 190 , 27 , 224 , 183 , 190 , 186 , 255 , 186 , 190 , 75 , 29 , 190 , 190 , 199 , 56 , 193 , 190 , 37 , 82 , 196 , 190 , 91 , 105 , 199 , 190 , 97 , 126 , 202 , 190 , 48 , 145 , 205 , 190 , 188 , 161 , 208 , 190 , 0 , 176 , 211 , 190 , 241 , 187 , 2
allocate ( [ 95 , 1 , 191 , 1 , 95 , 0 , 191 , 0 , 31 , 1 , 127 , 1 , 223 , 1 , 184 , 126 , 154 , 121 , 154 , 121 , 102 , 102 , 184 , 126 , 51 , 115 , 210 , 6 , 138 , 58 , 171 , 152 , 198 , 26 , 169 , 100 , 246 , 216 , 0 , 255 , 0 , 255 , 0 , 255 , 0 , 255 , 0 , 255 , 0 , 254 , 1 , 0 , 1 , 255 , 0 , 254 , 0 , 253 , 2 , 0 , 1 , 255 , 0 , 254 , 0 , 253 , 3 , 0 , 1 , 255 , 224 , 112 , 44 , 15 , 3 , 2 , 1 , 0 , 254 , 237 , 192 , 132 , 70 , 23 , 4 , 0 , 255 , 252 , 226 , 155 , 61 , 11 , 2 , 0 , 250 , 245 , 234 , 203 , 71 , 50 , 42 , 38 , 35 , 33 , 31 , 29 , 28 , 27 , 26 , 25 , 24 , 23 , 22 , 21 , 20 , 19 , 18 , 17 , 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 , 179 , 99 , 0 , 71 , 56 , 43 , 30 , 21 , 12 , 6 , 0 , 199 , 165 , 144 , 124 , 109 , 96 , 84 , 71 , 61 , 51 , 42 , 32 , 23 , 15 , 8 , 0 , 241 , 225 , 211 , 199 , 187 , 175 , 164 , 153 , 142 , 132 , 123 , 114 , 105 , 96 , 88 , 80 , 72 , 64 , 57 , 50 , 44 , 38 , 33 , 29 , 24 , 20 , 16 , 12 , 9 , 5 , 2 , 0 , 4 , 6 , 24 , 7 , 5 , 0 , 0 , 2 , 0 , 0 , 12 , 28 , 41 , 13 , 252 , 247 , 15 , 42 , 25 , 14 , 1 , 254 , 62 , 41 , 247 , 246 , 37 , 65 , 252 , 3 , 250 , 4 , 66 , 7 , 248 , 16 , 14 , 38 , 253 , 33 , 13 , 22 , 39 , 23 , 12 , 255 , 36 , 64 , 27 , 250 , 249 , 10 , 55 , 43 , 17 , 1 , 1 , 8 , 1 , 1 , 6 , 245 , 74 , 53 , 247 , 244 , 55 , 76 , 244 , 8 , 253 , 3 , 93 , 27 , 252 , 26 , 39 , 59 , 3 , 248 , 2 , 0 , 77 , 11 , 9 , 248 , 22 , 44 , 250 , 7 , 40 , 9 , 26 , 3 , 9 , 249 , 20 , 101 , 249 , 4 , 3 , 248 , 42 , 26 , 0 , 241 , 33 , 68 , 2 , 23 , 254 , 55 , 46 , 254 , 15 , 3 , 255 , 21 , 16 , 41 , 250 , 27 , 61 , 39 , 5 , 245 , 42 , 88 , 4 , 1 , 254 , 60 , 65 , 6 , 252 , 255 , 251 , 73 , 56 , 1 , 247 , 19 , 94 , 29 , 247 , 0 , 12 , 99 , 6 , 4 , 8 , 237 , 102 , 46 , 243 , 3 , 2 , 13 , 3 , 2 , 9 , 235 , 84 , 72 , 238 , 245 , 46 , 104 , 234 , 8 , 18 , 38 , 48 , 23 , 0 , 240 , 70 , 83 , 235 , 11 , 5 , 245 , 117 , 22 , 248 , 250 , 23 , 117 , 244 , 3 , 3 , 248 , 95 , 28 , 4 , 246 , 15 , 77 , 60 , 241 , 255 , 4 , 124 , 2 , 252 , 3 , 38 , 84 , 24 , 231 , 2 , 13 , 42 , 13 , 31 , 21 , 252 , 56 , 46 , 255 , 255 , 35 , 79 , 243 , 19 , 249 , 65 , 88 , 247 , 242 , 20 , 4 , 81 , 49 , 227 , 20 , 0 , 75 , 3 , 239 , 5 , 247 , 44 , 92 , 248 , 1 , 253 , 22 , 69 , 31 , 250 , 95 , 41 , 244 , 5 , 39 , 67 , 16 , 252 , 1 , 0 , 250 , 120 , 55 , 220 , 243 , 44 , 122 , 4 , 232 , 81 , 5 , 11 , 3 , 7 , 2 , 0 , 9 , 10 , 88 , 12 , 35 , 60 , 83 , 108 , 132 , 157 , 180 , 206 , 228 , 15 , 32 , 55 , 77 , 101 , 125 , 151 , 175 , 201 , 225 , 19 , 42 , 66 , 89 , 114 , 137 , 162 , 184 , 209 , 230 , 12 , 25 , 50 , 72 , 97 , 120 , 147 , 172 , 200 , 223 , 26 , 44 , 69 , 90 , 114 , 135 , 159 , 180 , 205 , 225 , 13 , 22 , 53 , 80 , 106 , 130 , 156 , 180 , 205 , 228 , 15 , 25 , 44 , 64 , 90 , 115 , 142 , 168 , 196 , 222 , 19 , 24 , 62 , 82 , 100 , 120 , 145 , 168 , 190 , 214 , 22 , 31 , 50 , 79 , 103 , 120 , 151 , 170 , 203 , 227 , 21 , 29 , 45 , 65 , 106 , 124 , 150 , 171 , 196 , 224 , 30 , 49 , 75 , 97 , 121 , 142 , 165 , 186 , 209 , 229 , 19 , 25 , 52 , 70 , 93 , 116 , 143 , 166 , 192 , 219 , 26 , 34 , 62 , 75 , 97 , 118 , 145 , 167 , 194 , 217 , 25 , 33 , 56 , 70 , 91 , 113 , 143 , 165 , 196 , 223 , 21 , 34 , 51 , 72 , 97 , 117 , 145 , 171 , 196 , 222 , 20 , 29 , 50 , 67 , 90 , 117 , 144 , 168 , 197 , 221 , 22 , 31 , 48 , 66 , 95 , 117 , 146 , 168 , 196 , 222 , 24 , 33 , 51 , 77 , 116 , 134 , 158 , 180 , 200 , 224 , 21 , 28 , 70 , 87 , 106 , 124 , 149 , 170 , 194 , 217 , 26 , 33 , 53 , 64 , 83 , 117 , 152 , 173 , 204 , 225 , 27 , 34 , 65 , 95 , 108 , 129 , 155 , 174 , 210 , 225 , 20 , 26 , 72 , 99 , 113 , 131 , 154 , 176 , 200 , 219 , 34 , 43 , 61 , 78 , 93 , 114 , 155 , 177 , 205 , 229 , 23 , 29 , 54 , 97 , 124 , 138 , 163 , 179 , 209 , 229 , 30 , 38 , 56 , 89 , 118 , 129 , 158 , 178 , 200 , 231 , 21 , 29 , 49 , 63 , 85 , 111 , 142 , 163 , 193 , 222 , 27 , 48 , 77 , 103 , 133 , 158 , 179 , 196 , 215 , 232 , 29 , 47 , 74 , 99 , 124 , 151 , 176 , 198 , 220 , 237 , 33 , 42 , 61 , 76 , 93 , 121 , 155 , 174 , 207 , 225 , 29 , 53 , 87 , 112 , 136 , 154 , 170 , 188 , 208 , 227 , 24 , 30 , 52 , 84 , 131 , 150 , 166 , 186 , 203 , 229 , 37 , 48 , 64 , 84 , 104 , 118 , 156 , 177 , 201 , 230 , 212 , 178 , 148 , 129 , 108 , 96 , 85 , 82 , 79 , 77 , 61 , 59 , 57 , 56 , 51 , 49 , 48 , 45 , 42 , 41 , 40 , 38 , 36 , 34 , 31 , 30 , 21 , 12 , 10 , 3 , 1 , 0 , 255 , 245 , 244 , 236 , 233 , 225 , 217 , 203 , 190 , 176 , 175 , 161 , 149 , 136 , 125 , 114 , 102 , 91 , 81 , 71 , 60 , 52 , 43 , 35 , 28 , 20 , 19 , 18 , 12 , 11 , 5 , 0 , 179 , 138 , 140 , 148 , 151 , 149 , 153 , 151 , 163 , 116 , 67 , 82 , 59 , 92 , 72 , 100 , 89 , 92 , 16 , 0 , 0 , 0 , 0 , 99 , 66 , 36 , 36 , 34 , 36 , 34 , 34 , 34 , 34 , 83 , 69 , 36 , 52 , 34 , 116 , 102 , 70 , 68 , 68 , 176 , 102 , 68 , 68 , 34 , 65 , 85 , 68 , 84 , 36 , 116 , 141 , 152 , 139 , 170 , 132 , 187 , 184 , 216 , 137 , 132 , 249 , 168 , 185 , 139 , 104 , 102 , 100 , 68 , 68 , 178 , 218 , 185 , 185 , 170 , 244 , 216 , 187 , 187 , 170 , 244 , 187 , 187 , 219 , 138 , 103 , 155 , 184 , 185 , 137 , 116 , 183 , 155 , 152 , 136 , 132 , 217 , 184 , 184 , 170 , 164 , 217 , 171 , 155 , 139 , 244 , 169 , 184 , 185 , 170 , 164 , 216 , 223 , 218 , 138 , 214 , 143 , 188 , 218 , 168 , 244 , 141 , 136 , 155 , 170 , 168 , 138 , 220 , 219 , 139 , 164 , 219 , 202 , 216 , 137 , 168 , 186 , 246 , 185 , 139 , 116 , 185 , 219 , 185 , 138 , 100 , 100 , 134 , 100 , 102 , 34 , 68 , 68 , 100 , 68 , 168 , 203 , 221 , 218 , 168 , 167 , 154 , 136 , 104 , 70 , 164 , 246 , 171 , 137 , 139 , 137 , 155 , 218 , 219 , 139 , 255 , 254 , 253 , 238 , 14 , 3 , 2 , 1 , 0 , 255 , 254 , 252 , 218 , 35 , 3 , 2 , 1 , 0 , 255 , 254 , 250 , 208 , 59 , 4 , 2 , 1 , 0 , 255 , 254 , 246 , 194 , 71 , 10 , 2 , 1 , 0 , 255 , 252 , 236 , 183 , 82 , 8 , 2 , 1 , 0 , 255 , 252 , 235 , 180 , 90 , 17 , 2 , 1 , 0 , 255 , 248 , 224 , 171 , 97 , 30 , 4 , 1 , 0 , 255 , 254 , 236 , 173 , 95 , 37 , 7 , 1 , 0 , 255 , 255 , 255 , 131 , 6 , 145 , 255 , 255 , 255 , 255 , 255 , 236 , 93 , 15 , 96 , 255 , 255 , 255 , 255 , 255 , 194 , 83 , 25 , 71 , 221 , 255 , 255 , 255 , 255 , 162 , 73 , 34 , 66 , 162 , 255 , 255 , 255 , 210 , 126 , 73 , 43 , 57 , 173 , 255 , 255 , 255 , 201 , 125 , 71 , 48 , 58 , 130 , 255 , 255 , 255 , 166 , 110 , 73 , 57 , 62 , 104 , 210 , 255 , 255 , 251 , 123 , 65 , 55 , 68 , 100 , 171 , 255 , 7 , 23 , 38 , 54 , 69 , 85 , 100 , 116 , 131 , 147 , 162 , 178 , 193 , 208 , 223 , 239 , 13 , 25 , 41 , 55 , 69 , 83 , 98 , 112 , 127 , 142 , 157 , 171 , 187 , 203 , 220 , 236 , 15 , 21 , 34 , 51 , 61 , 78 , 92 , 106 , 1
V = r [ g >> 2 ] | 0 ; m = h ; return V | 0 } if ( ( r [ B >> 2 ] | 0 ) > 0 ) r [ D >> 2 ] = r [ B >> 2 ] ; do if ( ( r [ C >> 2 ] | 0 ) != 0 & ( r [ k >> 2 ] | 0 ) != 0 ) { if ( ( r [ D >> 2 ] | 0 ) == 0 ? ! ( ( r [ E >> 2 ] & 1 | 0 ) == 0 & ( r [ B >> 2 ] | 0 ) < 0 | ( r [ x >> 2 ] | 0 ) > 1 ) : 0 ) break ; La ( r [ C >> 2 ] | 0 , r [ k >> 2 ] | 0 , ( r [ y >> 2 ] << 2 ) + 0 | 0 ) | 0 ; r [ k >> 2 ] = r [ C >> 2 ] } while ( 0 ) ; r [ F >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ F >> 2 ] | 0 ) >= ( r [ D >> 2 ] | 0 ) ) break ; if ( r [ U >> 2 ] | 0 ) Se ( r [ v >> 2 ] | 0 , r [ y >> 2 ] >> r [ F >> 2 ] , 1 << r [ F >> 2 ] ) ; if ( r [ k >> 2 ] | 0 ) Se ( r [ k >> 2 ] | 0 , r [ y >> 2 ] >> r [ F >> 2 ] , 1 << r [ F >> 2 ] ) ; r [ T >> 2 ] = o [ 23948 + ( r [ T >> 2 ] & 15 ) >> 0 ] | 0 | ( o [ 23948 + ( r [ T >> 2 ] >> 4 ) >> 0 ] | 0 ) << 2 ; r [ F >> 2 ] = ( r [ F >> 2 ] | 0 ) + 1 } r [ w >> 2 ] = r [ w >> 2 ] >> r [ D >> 2 ] ; r [ E >> 2 ] = r [ E >> 2 ] << r [ D >> 2 ] ; while ( 1 ) { if ( ! ( ( r [ E >> 2 ] & 1 | 0 ) == 0 ? ( r [ B >> 2 ] | 0 ) < 0 : 0 ) ) break ; if ( r [ U >> 2 ] | 0 ) Se ( r [ v >> 2 ] | 0 , r [ E >> 2 ] | 0 , r [ w >> 2 ] | 0 ) ; if ( r [ k >> 2 ] | 0 ) Se ( r [ k >> 2 ] | 0 , r [ E >> 2 ] | 0 , r [ w >> 2 ] | 0 ) ; r [ T >> 2 ] = r [ T >> 2 ] | r [ T >> 2 ] << r [ w >> 2 ] ; r [ w >> 2 ] = r [ w >> 2 ] << 1 ; r [ E >> 2 ] = r [ E >> 2 ] >> 1 ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 ; r [ B >> 2 ] = ( r [ B >> 2 ] | 0 ) + 1 } r [ x >> 2 ] = r [ w >> 2 ] ; r [ I >> 2 ] = r [ E >> 2 ] ; if ( ( r [ x >> 2 ] | 0 ) > 1 ) { if ( r [ U >> 2 ] | 0 ) rt ( r [ v >> 2 ] | 0 , r [ E >> 2 ] >> r [ D >> 2 ] , r [ x >> 2 ] << r [ D >> 2 ] , r [ O >> 2 ] | 0 ) ; if ( r [ k >> 2 ] | 0 ) rt ( r [ k >> 2 ] | 0 , r [ E >> 2 ] >> r [ D >> 2 ] , r [ x >> 2 ] << r [ D >> 2 ] , r [ O >> 2 ] | 0 ) } r [ N >> 2 ] = ot ( r [ _ >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ y >> 2 ] | 0 , r [ b >> 2 ] | 0 , r [ w >> 2 ] | 0 , r [ k >> 2 ] | 0 , r [ M >> 2 ] | 0 , + c [ A >> 2 ] , r [ T >> 2 ] | 0 ) | 0 ; if ( r [ L >> 2 ] | 0 ) { if ( ( r [ x >> 2 ] | 0 ) > 1 ) st ( r [ v >> 2 ] | 0 , r [ E >> 2 ] >> r [ D >> 2 ] , r [ x >> 2 ] << r [ D >> 2 ] , r [ O >> 2 ] | 0 ) ; r [ E >> 2 ] = r [ I >> 2 ] ; r [ w >> 2 ] = r [ x >> 2 ] ; r [ F >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ F >> 2 ] | 0 ) >= ( r [ P >> 2 ] | 0 ) ) break ; r [ w >> 2 ] = r [ w >> 2 ] >> 1 ; r [ E >> 2 ] = r [ E >> 2 ] << 1 ; r [ N >> 2 ] = r [ N >> 2 ] | ( r [ N >> 2 ] | 0 ) >>> ( r [ w >> 2 ] | 0 ) ; Se ( r [ v >> 2 ] | 0 , r [ E >> 2 ] | 0 , r [ w >> 2 ] | 0 ) ; r [ F >> 2 ] = ( r [ F >> 2 ] | 0 ) + 1 } r [ F >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ F >> 2 ] | 0 ) >= ( r [ D >> 2 ] | 0 ) ) break ; r [ N >> 2 ] = o [ 23964 + ( r [ N >> 2 ] | 0 ) >> 0 ] ; Se ( r [ v >> 2 ] | 0 , r [ $ >> 2 ] >> r [ F >> 2 ] , 1 << r [ F >> 2 ] ) ; r [ F >> 2 ] = ( r [ F >> 2 ] | 0 ) + 1 } r [ w >> 2 ] = r [ w >> 2 ] << r [ D >> 2 ] ; e : do if ( r [ S >> 2 ] | 0 ) { c [ j >> 2 ] = + R ( + + ( r [ $ >> 2 ] | 0 ) ) ; r [ H >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ H >> 2 ] | 0 ) >= ( r [ $ >> 2 ] | 0 ) ) break e ; c [ ( r [ S >> 2 ] | 0 ) + ( r [ H >> 2 ] << 2 ) >> 2 ] = + c [ j >> 2 ] * + c [ ( r [ v >> 2 ] | 0 ) + ( r [ H >> 2 ] << 2 ) >> 2 ] ; r [ H >> 2 ] = ( r [ H >> 2 ] | 0 ) + 1 } } while ( 0 ) ; r [ N >> 2 ] = r [ N >> 2 ] & ( 1 << r [ w >> 2 ] ) - 1 } r [ g >> 2 ] = r [ N >> 2 ] ; V = r [ g >> 2 ] | 0 ; m = h ; return V | 0 } function Ee ( e , t , n , i , a , o , s , l , d , u , p ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; l = l | 0 ; d = d | 0 ; u = u | 0 ; p = p | 0 ; var f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 , B = 0 , H = 0 , j = 0 , V = 0 , q = 0 , z = 0 , W = 0 , G = 0 , K = 0 , Y = 0 , X = 0 , J = 0 , Z = 0 ; f = m ; m = m + 160 | 0 ; h = f + 156 | 0 ; g = f + 152 | 0 ; _ = f + 148 | 0 ; v = f + 144 | 0 ; y = f + 140 | 0 ; b = f + 136 | 0 ; w = f + 132 | 0 ; k = f + 128 | 0 ; M = f + 124 | 0 ; S = f + 120 | 0 ; A = f + 116 | 0 ; C = f + 112 | 0 ; T = f + 108 | 0 ; $ = f + 104 | 0 ; E = f + 100 | 0 ; I = f + 96 | 0 ; x = f + 92 | 0 ; P = f + 88 | 0 ; D = f + 84 | 0 ; R = f + 80 | 0 ; O = f + 76 | 0 ; N = f + 72 | 0 ; L = f + 68 | 0 ; F = f + 64 | 0 ; U = f + 40 | 0 ; B = f + 36 | 0 ; H = f + 32 | 0 ; j = f + 28 | 0 ; V = f + 24 | 0 ; q = f + 20 | 0 ; z = f + 16 | 0 ; W = f + 12 | 0 ; G = f + 8 | 0 ; K = f + 4 | 0 ; Y = f ; r [ g >> 2 ] = e ; r [ _ >> 2 ] = t ; r [ v >> 2 ] = n ; r [ y >> 2 ] = i ; r [ b >> 2 ] = a ; r [ w >> 2 ] = o ; r [ k >> 2 ] = s ; r [ M >> 2 ] = l ; r [ S >> 2 ] = d ; r [ A >> 2 ] = u ; r [ C >> 2 ] = p ; r [ T >> 2 ] = 0 ; r [ $ >> 2 ] = 0 ; r [ E >> 2 ] = 0 ; c [ I >> 2 ] = 0 ; c [ x >> 2 ] = 0 ; r [ P >> 2 ] = 0 ; r [ D >> 2 ] = ( ( r [ r [ g >> 2 ] >> 2 ] | 0 ) != 0 ^ 1 ) & 1 ; r [ H >> 2 ] = r [ r [ g >> 2 ] >> 2 ] ; r [ j >> 2 ] = r [ ( r [ g >> 2 ] | 0 ) + 24 >> 2 ] ; if ( ( r [ y >> 2 ] | 0 ) == 1 ) { r [ h >> 2 ] = Ie ( r [ g >> 2 ] | 0 , r [ _ >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ b >> 2 ] | 0 , r [ S >> 2 ] | 0 ) | 0 ; X = r [ h >> 2 ] | 0 ; m = f ; return X | 0 } r [ B >> 2 ] = r [ C >> 2 ] ; xe ( r [ g >> 2 ] | 0 , U , r [ _ >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ y >> 2 ] | 0 , b , r [ w >> 2 ] | 0 , r [ w >> 2 ] | 0 , r [ M >> 2 ] | 0 , 1 , C ) ; r [ E >> 2 ] = r [ U >> 2 ] ; r [ T >> 2 ] = r [ U + 4 >> 2 ] ; r [ $ >> 2 ] = r [ U + 8 >> 2 ] ; r [ N >> 2 ] = r [ U + 12 >> 2 ] ; r [ L >> 2 ] = r [ U + 16 >> 2 ] ; r [ F >> 2 ] = r [ U + 20 >> 2 ] ; c [ I >> 2 ] = + ( r [ T >> 2 ] | 0 ) * 30517578125e-15 ; c [ x >> 2 ] = + ( r [ $ >> 2 ] | 0 ) * 30517578125e-15 ; do if ( ( r [ y >> 2 ] | 0 ) == 2 ) { r [ q >> 2 ] = 0 ; r [ R >> 2 ] = r [ b >> 2 ] ; r [ O >> 2 ] = 0 ; r [ O >> 2 ] = ( r [ L >> 2 ] | 0 ) != 0 & ( r [ L >> 2 ] | 0 ) != 16384 ? 8 : 0 ; r [ R >> 2 ] = ( r [ R >> 2 ] | 0 ) - ( r [ O >> 2 ] | 0 ) ; r [ V >> 2 ] = ( r [ L >> 2 ] | 0 ) > 8192 & 1 ; $ = ( r [ g >> 2 ] | 0 ) + 28 | 0 ; r [ $ >> 2 ] = ( r [ $ >> 2 ] | 0 ) - ( ( r [ F >> 2 ] | 0 ) + ( r [ O >> 2 ] | 0 ) ) ; r [ z >> 2 ] = r [ V >> 2 ] | 0 ? r [ v >> 2 ] | 0 : r [ _ >> 2 ] | 0 ; r [ W >> 2 ] = r [ V >> 2 ] | 0 ? r [ _ >> 2 ] | 0 : r [ v >> 2 ] | 0 ; do if ( r [ O >> 2 ] | 0 ) if ( r [ H >> 2 ] | 0 ) { r [ q >> 2 ] = + c [ r [ z >> 2 ] >> 2 ] * + c [ ( r [ W >> 2 ] | 0 ) + 4 >> 2 ] - + c [ ( r [ z >> 2 ] | 0 ) + 4 >> 2 ] * + c [ r [ W >> 2 ] >> 2 ] < 0 & 1 ; Pe ( r [ j >> 2 ] | 0 , r [ q >> 2 ] | 0 , 1 ) ; break } else { r [ q >> 2 ] = De ( r [ j >> 2 ] | 0 , 1 ) | 0 ; break } while ( 0 ) ; r [ q >> 2 ] = 1 - ( r [ q >> 2 ] << 1 ) ; r [ P >> 2 ] = $e ( r [ g >> 2 ] | 0 , r [ z >> 2 ] | 0 , r [ y >> 2 ] | 0 , r [ R >> 2 ] | 0 , r [ w >> 2 ] | 0 , r [ k >> 2 ] | 0 , r [ M >> 2 ] | 0 , r [ S >> 2 ] | 0 , 1 , r [ A >> 2 ] | 0 , r [ B >> 2 ] | 0 ) | 0 ; c [ r [ W >> 2 ] >> 2 ] = + ( 0 - ( r [ q >> 2 ] | 0 ) | 0 ) * + c [ ( r [ z >> 2 ] | 0 ) + 4 >> 2 ] ; c [ ( r [ W >> 2 ] | 0 ) + 4 >> 2 ] = + ( r [ q >> 2 ] | 0 ) * + c [ r [ z >> 2 ] >> 2 ] ; if ( r [ D >> 2 ] | 0 ) { c [ r [ _ >> 2 ] >> 2 ] = + c [ I >> 2 ] * + c [ r [ _ >> 2 ] >> 2 ] ; c [ ( r [ _ >> 2 ] | 0 ) + 4 >> 2 ] = + c [ I >> 2 ] * + c [ ( r [ _ >> 2 ] | 0 ) + 4 >> 2 ] ; c [ r [ v >> 2 ] >> 2 ] = + c [ x >> 2 ] * + c [ r [ v >> 2 ] >> 2 ] ; c [ ( r [ v >> 2 ] | 0 ) + 4 >> 2 ] = + c [ x >> 2 ] * + c [ ( r [ v >> 2 ] | 0 ) + 4 >> 2 ] ; c [ G >> 2 ] = + c [ r [ _ >> 2 ] >> 2 ] ; c [ r [ _ >> 2 ] >> 2 ] = + c [ G >> 2 ] - + c [ r [ v >> 2 ] >> 2 ] ;
c [ n + ( d + ( r [ u >> 2 ] | 0 ) << 2 ) >> 2 ] = + c [ ( r [ o >> 2 ] | 0 ) + ( g + ( r [ p >> 2 ] | 0 ) << 2 ) >> 2 ] ; r [ p >> 2 ] = ( r [ p >> 2 ] | 0 ) + 1 } r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 1 } _ = r [ o >> 2 ] | 0 ; v = r [ f >> 2 ] | 0 ; y = v << 2 ; b = r [ o >> 2 ] | 0 ; w = b ; k = n ; M = w - k | 0 ; S = ( M | 0 ) / 4 | 0 ; A = 0 ; C = y + A | 0 ; La ( _ | 0 , n | 0 , C | 0 ) | 0 ; T = r [ h >> 2 ] | 0 ; ce ( T | 0 ) ; m = a ; return } } function lt ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 ; s = m ; m = m + 48 | 0 ; l = s + 36 | 0 ; c = s + 32 | 0 ; d = s + 28 | 0 ; u = s + 24 | 0 ; p = s + 20 | 0 ; f = s + 16 | 0 ; h = s + 12 | 0 ; g = s + 8 | 0 ; _ = s + 4 | 0 ; v = s ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = i ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 1 ; i = W ( r [ u >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ; r [ _ >> 2 ] = ( r [ ( r [ c >> 2 ] | 0 ) + 92 + 8 >> 2 ] | 0 ) + ( a [ ( r [ ( r [ c >> 2 ] | 0 ) + 92 + 4 >> 2 ] | 0 ) + ( i + ( r [ d >> 2 ] | 0 ) << 1 ) >> 1 ] | 0 ) ; r [ h >> 2 ] = 0 ; r [ g >> 2 ] = o [ r [ _ >> 2 ] >> 0 ] ; r [ p >> 2 ] = ( r [ p >> 2 ] | 0 ) + - 1 ; r [ f >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ f >> 2 ] | 0 ) >= 6 ) break ; r [ v >> 2 ] = ( r [ h >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) + 1 >> 1 ; d = r [ v >> 2 ] | 0 ; if ( ( o [ ( r [ _ >> 2 ] | 0 ) + ( r [ v >> 2 ] | 0 ) >> 0 ] | 0 ) >= ( r [ p >> 2 ] | 0 ) ) r [ g >> 2 ] = d ; else r [ h >> 2 ] = d ; r [ f >> 2 ] = ( r [ f >> 2 ] | 0 ) + 1 } if ( ! ( r [ h >> 2 ] | 0 ) ) y = - 1 ; else y = o [ ( r [ _ >> 2 ] | 0 ) + ( r [ h >> 2 ] | 0 ) >> 0 ] | 0 ; if ( ( ( r [ p >> 2 ] | 0 ) - y | 0 ) <= ( ( o [ ( r [ _ >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) >> 0 ] | 0 ) - ( r [ p >> 2 ] | 0 ) | 0 ) ) { r [ l >> 2 ] = r [ h >> 2 ] ; b = r [ l >> 2 ] | 0 ; m = s ; return b | 0 } else { r [ l >> 2 ] = r [ g >> 2 ] ; b = r [ l >> 2 ] | 0 ; m = s ; return b | 0 } return 0 } function ct ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 ; s = m ; m = m + 32 | 0 ; l = s + 16 | 0 ; c = s + 12 | 0 ; d = s + 8 | 0 ; u = s + 4 | 0 ; p = s ; r [ l >> 2 ] = e ; r [ c >> 2 ] = t ; r [ d >> 2 ] = n ; r [ u >> 2 ] = i ; r [ d >> 2 ] = ( r [ d >> 2 ] | 0 ) + 1 ; i = W ( r [ d >> 2 ] | 0 , r [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ; r [ p >> 2 ] = ( r [ ( r [ l >> 2 ] | 0 ) + 92 + 8 >> 2 ] | 0 ) + ( a [ ( r [ ( r [ l >> 2 ] | 0 ) + 92 + 4 >> 2 ] | 0 ) + ( i + ( r [ c >> 2 ] | 0 ) << 1 ) >> 1 ] | 0 ) ; if ( ! ( r [ u >> 2 ] | 0 ) ) { f = 0 ; m = s ; return f | 0 } f = ( o [ ( r [ p >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) >> 0 ] | 0 ) + 1 | 0 ; m = s ; return f | 0 } function dt ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; e = r [ n >> 2 ] | 0 ; if ( ( r [ n >> 2 ] | 0 ) < 8 ) { i = e ; m = t ; return i | 0 } i = 8 + ( e & 7 ) << ( r [ n >> 2 ] >> 3 ) - 1 ; m = t ; return i | 0 } function ut ( e , t , n , i , a , o ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; var s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 ; s = m ; m = m + 96 | 0 ; l = s + 84 | 0 ; d = s + 80 | 0 ; u = s + 76 | 0 ; p = s + 72 | 0 ; f = s + 68 | 0 ; h = s + 64 | 0 ; g = s + 60 | 0 ; _ = s + 56 | 0 ; v = s + 52 | 0 ; y = s + 48 | 0 ; b = s + 44 | 0 ; w = s + 40 | 0 ; k = s + 36 | 0 ; M = s + 32 | 0 ; S = s + 28 | 0 ; A = s + 24 | 0 ; C = s + 20 | 0 ; T = s + 16 | 0 ; $ = s + 12 | 0 ; E = s + 8 | 0 ; I = s + 4 | 0 ; x = s ; r [ l >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = i ; r [ f >> 2 ] = a ; r [ h >> 2 ] = o ; o = r [ d >> 2 ] | 0 ; r [ S >> 2 ] = oe ( ) | 0 ; a = m ; m = m + ( ( 1 * ( o << 2 ) | 0 ) + 15 & - 16 ) | 0 ; o = m ; m = m + ( ( 1 * ( r [ d >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; i = m ; m = m + ( ( 1 * ( r [ d >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; ht ( r [ l >> 2 ] | 0 , r [ d >> 2 ] | 0 , 1 , r [ f >> 2 ] | 0 , r [ u >> 2 ] | 0 , r [ p >> 2 ] | 0 ) ; c [ b >> 2 ] = 0 ; r [ _ >> 2 ] = 0 ; do { p = i + ( r [ _ >> 2 ] << 2 ) | 0 ; if ( + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] > 0 ) c [ p >> 2 ] = 1 ; else { c [ p >> 2 ] = - 1 ; c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] = - + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] } r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] = 0 ; c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] = 0 ; p = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = p } while ( ( p | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; c [ k >> 2 ] = 0 ; c [ w >> 2 ] = 0 ; r [ y >> 2 ] = r [ u >> 2 ] ; if ( ( r [ u >> 2 ] | 0 ) > ( r [ d >> 2 ] >> 1 | 0 ) ) { r [ _ >> 2 ] = 0 ; do { c [ b >> 2 ] = + c [ b >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; p = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = p } while ( ( p | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; if ( ! ( + c [ b >> 2 ] > 1.0000000036274937 e - 15 & + c [ b >> 2 ] < 64 ) ) { c [ r [ l >> 2 ] >> 2 ] = 1 ; r [ _ >> 2 ] = 1 ; do { c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] = 0 ; p = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = p } while ( ( p | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; c [ b >> 2 ] = 1 } c [ A >> 2 ] = + ( ( r [ u >> 2 ] | 0 ) - 1 | 0 ) * ( 1 / + c [ b >> 2 ] ) ; r [ _ >> 2 ] = 0 ; do { b = ~ ~ + P ( + ( + c [ A >> 2 ] * + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] ) ) ; r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] = b ; c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] = + ( r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] | 0 ) ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] * + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; c [ w >> 2 ] = + c [ w >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] * + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; b = a + ( r [ _ >> 2 ] << 2 ) | 0 ; c [ b >> 2 ] = + c [ b >> 2 ] * 2 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) - ( r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] | 0 ) ; b = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = b } while ( ( b | 0 ) < ( r [ d >> 2 ] | 0 ) ) } if ( ( r [ y >> 2 ] | 0 ) > ( ( r [ d >> 2 ] | 0 ) + 3 | 0 ) ) { c [ C >> 2 ] = + ( r [ y >> 2 ] | 0 ) ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ C >> 2 ] * + c [ C >> 2 ] ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ C >> 2 ] * + c [ a >> 2 ] ; r [ o >> 2 ] = ( r [ o >> 2 ] | 0 ) + ( r [ y >> 2 ] | 0 ) ; r [ y >> 2 ] = 0 } c [ v >> 2 ] = 1 ; r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ y >> 2 ] | 0 ) ) break ; c [ $ >> 2 ] = - 999999986991104 ; c [ E >> 2 ] = 0 ; r [ T >> 2 ] = 0 ; c [ k >> 2 ] = + c [ k >> 2 ] + 1 ; r [ _ >> 2 ] = 0 ; do { c [ I >> 2 ] = + c [ w >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; c [ x >> 2 ] = + c [ k >> 2 ] + + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; c [ I >> 2 ] = + c [ I >> 2 ] * + c [ I >> 2 ] ; if ( + c [ E >> 2 ] * + c [ I >> 2 ] > + c [ x >> 2 ] * + c [ $ >> 2 ] ) { c [ E >> 2 ] = + c [ x >> 2 ] ; c [ $ >> 2 ] = + c [ I >> 2 ] ; r [ T >> 2 ] = r [ _ >> 2 ] } C = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = C } while ( ( C | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; c [ w >> 2 ] = + c [ w >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ T >> 2 ] << 2 ) >> 2 ] ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ a + ( r [ T >> 2 ] << 2 ) >> 2 ] ; C = a + ( r [ T >> 2 ] << 2 ) | 0 ; c [ C >> 2 ] = + c [ C >> 2 ] + + c [ v >> 2 ] * 2 ; C = o + ( r [ T >> 2 ] << 2 ) | 0 ; r [ C >> 2 ] = ( r [ C >
r [ ae >> 2 ] = ( r [ ae >> 2 ] | 0 ) + 1 } m = $ ; return r [ se >> 2 ] | 0 } function Et ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 ; n = m ; m = m + 16 | 0 ; i = n + 4 | 0 ; a = n ; r [ i >> 2 ] = e ; r [ a >> 2 ] = t ; m = n ; return ( ( r [ i >> 2 ] | 0 ) >>> 0 ) / ( ( r [ a >> 2 ] | 0 ) >>> 0 ) | 0 | 0 } function It ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; e = ( r [ ( r [ n >> 2 ] | 0 ) + 20 >> 2 ] | 0 ) - ( 32 - ( Y ( r [ ( r [ n >> 2 ] | 0 ) + 28 >> 2 ] | 0 ) | 0 ) ) | 0 ; m = t ; return e | 0 } function xt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 ; n = m ; m = m + 16 | 0 ; i = n + 8 | 0 ; a = n + 4 | 0 ; o = n ; r [ i >> 2 ] = e ; r [ a >> 2 ] = t ; r [ o >> 2 ] = 32736 - ( r [ i >> 2 ] | 0 ) ; i = ( W ( r [ o >> 2 ] | 0 , 16384 - ( r [ a >> 2 ] | 0 ) | 0 ) | 0 ) >>> 15 ; m = n ; return i | 0 } function Pt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 ; n = m ; m = m + 64 | 0 ; i = n + 60 | 0 ; o = n + 56 | 0 ; s = n + 52 | 0 ; l = n + 48 | 0 ; c = n + 44 | 0 ; d = n + 40 | 0 ; u = n + 8 | 0 ; p = n + 4 | 0 ; f = n ; r [ i >> 2 ] = e ; r [ o >> 2 ] = t ; if ( ( r [ ( r [ i >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) > 0 ) h = r [ ( r [ i >> 2 ] | 0 ) + 8 >> 2 ] | 0 ; else h = 0 ; r [ f >> 2 ] = h ; r [ u >> 2 ] = 1 ; r [ d >> 2 ] = 0 ; do { r [ c >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( r [ d >> 2 ] << 1 << 1 ) >> 1 ] ; r [ l >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( ( r [ d >> 2 ] << 1 ) + 1 << 1 ) >> 1 ] ; h = W ( r [ u + ( r [ d >> 2 ] << 2 ) >> 2 ] | 0 , r [ c >> 2 ] | 0 ) | 0 ; r [ u + ( ( r [ d >> 2 ] | 0 ) + 1 << 2 ) >> 2 ] = h ; r [ d >> 2 ] = ( r [ d >> 2 ] | 0 ) + 1 } while ( ( r [ l >> 2 ] | 0 ) != 1 ) ; r [ l >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( ( r [ d >> 2 ] << 1 ) - 1 << 1 ) >> 1 ] ; r [ p >> 2 ] = ( r [ d >> 2 ] | 0 ) - 1 ; while ( 1 ) { if ( ( r [ p >> 2 ] | 0 ) < 0 ) break ; if ( r [ p >> 2 ] | 0 ) r [ s >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( ( r [ p >> 2 ] << 1 ) - 1 << 1 ) >> 1 ] ; else r [ s >> 2 ] = 1 ; switch ( a [ ( r [ i >> 2 ] | 0 ) + 12 + ( r [ p >> 2 ] << 1 << 1 ) >> 1 ] | 0 ) { case 2 : { Dt ( r [ o >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 ) ; break } case 4 : { Rt ( r [ o >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] << r [ f >> 2 ] , r [ i >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 , r [ s >> 2 ] | 0 ) ; break } case 3 : { Ot ( r [ o >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] << r [ f >> 2 ] , r [ i >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 , r [ s >> 2 ] | 0 ) ; break } case 5 : { Nt ( r [ o >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] << r [ f >> 2 ] , r [ i >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 , r [ s >> 2 ] | 0 ) ; break } default : { } } r [ l >> 2 ] = r [ s >> 2 ] ; r [ p >> 2 ] = ( r [ p >> 2 ] | 0 ) + - 1 } m = n ; return } function Dt ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 ; i = m ; m = m + 32 | 0 ; a = i + 28 | 0 ; o = i + 20 | 0 ; s = i + 16 | 0 ; l = i + 12 | 0 ; d = i + 8 | 0 ; u = i ; r [ a >> 2 ] = e ; r [ i + 24 >> 2 ] = t ; r [ o >> 2 ] = n ; c [ d >> 2 ] = . 7071067690849304 ; r [ l >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ l >> 2 ] | 0 ) >= ( r [ o >> 2 ] | 0 ) ) break ; r [ s >> 2 ] = ( r [ a >> 2 ] | 0 ) + 32 ; n = r [ s >> 2 ] | 0 ; r [ u >> 2 ] = r [ n >> 2 ] ; r [ u + 4 >> 2 ] = r [ n + 4 >> 2 ] ; c [ r [ s >> 2 ] >> 2 ] = + c [ r [ a >> 2 ] >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = r [ a >> 2 ] | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; c [ u >> 2 ] = ( + c [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] + + c [ ( r [ s >> 2 ] | 0 ) + 8 + 4 >> 2 ] ) * + c [ d >> 2 ] ; c [ u + 4 >> 2 ] = ( + c [ ( r [ s >> 2 ] | 0 ) + 8 + 4 >> 2 ] - + c [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] ) * + c [ d >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 8 >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 8 + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 8 + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 8 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 8 + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; c [ u >> 2 ] = + c [ ( r [ s >> 2 ] | 0 ) + 16 + 4 >> 2 ] ; c [ u + 4 >> 2 ] = - + c [ ( r [ s >> 2 ] | 0 ) + 16 >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 16 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 16 >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 16 + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 16 + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 16 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 16 + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; c [ u >> 2 ] = ( + c [ ( r [ s >> 2 ] | 0 ) + 24 + 4 >> 2 ] - + c [ ( r [ s >> 2 ] | 0 ) + 24 >> 2 ] ) * + c [ d >> 2 ] ; c [ u + 4 >> 2 ] = ( - + c [ ( r [ s >> 2 ] | 0 ) + 24 + 4 >> 2 ] - + c [ ( r [ s >> 2 ] | 0 ) + 24 >> 2 ] ) * + c [ d >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 24 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 24 >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 24 + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 24 + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 24 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 24 + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; r [ a >> 2 ] = ( r [ a >> 2 ] | 0 ) + 64 ; r [ l >> 2 ] = ( r [ l >> 2 ] | 0 ) + 1 } m = i ; return } function Rt ( e , t , n , i , a , o ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; var s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; s = m ; m = m + 128 | 0 ; l = s + 120 | 0 ; d = s + 116 | 0 ; u = s + 112 | 0 ; p = s + 108 | 0 ; f = s + 104 | 0 ; h = s + 100 | 0 ; g = s + 96 | 0 ; _ = s + 88 | 0 ; v = s + 80 | 0 ; y = s + 72 | 0 ; b = s + 24 | 0 ; w = s + 20 | 0 ; k = s + 16 | 0 ; M = s + 12 | 0 ; S = s + 8 | 0 ; A = s + 4 | 0 ; C = s ; r [ l >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = i ; r [ f >> 2 ] = a ; r [ h >> 2 ] = o ; if ( ( r [ p >> 2 ] | 0 ) == 1 ) { r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ f >> 2 ] | 0 ) ) break ; c [ _ >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] - + c [ ( r [ l >> 2 ] | 0 ) + 16 >> 2 ] ; c [ _ + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] - + c [ ( r [ l >> 2 ] | 0 ) + 16 + 4 >> 2 ] ; o = r [ l >> 2 ] | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 16 >> 2 ] ; o = ( r [ l >> 2 ] | 0 ) + 4 | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 16 + 4 >> 2 ] ; c [ v >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 24 >> 2 ] ; c [ v + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 + 4 >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 24 + 4 >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 16 >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] - + c [ v >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 16 + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] - + c [ v + 4 >> 2 ] ; o = r [ l >> 2 ] | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] + + c [ v >> 2 ] ; o = ( r [ l >> 2 ] | 0 ) + 4 | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] +
r [ q >> 2 ] = 0 ; r [ Q >> 2 ] = 0 ; if ( ( r [ U >> 2 ] | 0 ) == 0 ? ( ( r [ J >> 2 ] | 0 ) + 16 | 0 ) <= ( r [ Y >> 2 ] | 0 ) : 0 ) { if ( Ye ( r [ v >> 2 ] | 0 , 1 ) | 0 ) { r [ ue >> 2 ] = qe ( r [ v >> 2 ] | 0 , 6 ) | 0 ; A = 16 << r [ ue >> 2 ] ; r [ q >> 2 ] = A + ( De ( r [ v >> 2 ] | 0 , 4 + ( r [ ue >> 2 ] | 0 ) | 0 ) | 0 ) - 1 ; r [ de >> 2 ] = De ( r [ v >> 2 ] | 0 , 3 ) | 0 ; ue = ( nn ( r [ v >> 2 ] | 0 ) | 0 ) + 2 | 0 ; if ( ( ue | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) r [ Q >> 2 ] = an ( r [ v >> 2 ] | 0 , 25134 , 2 ) | 0 ; c [ z >> 2 ] = + ( ( r [ de >> 2 ] | 0 ) + 1 | 0 ) * . 09375 } r [ J >> 2 ] = nn ( r [ v >> 2 ] | 0 ) | 0 } if ( ( r [ L >> 2 ] | 0 ) > 0 ? ( ( r [ J >> 2 ] | 0 ) + 3 | 0 ) <= ( r [ Y >> 2 ] | 0 ) : 0 ) { r [ R >> 2 ] = Ye ( r [ v >> 2 ] | 0 , 3 ) | 0 ; r [ J >> 2 ] = nn ( r [ v >> 2 ] | 0 ) | 0 } else r [ R >> 2 ] = 0 ; if ( r [ R >> 2 ] | 0 ) r [ D >> 2 ] = r [ F >> 2 ] ; else r [ D >> 2 ] = 0 ; if ( ( ( r [ J >> 2 ] | 0 ) + 3 | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) ke = Ye ( r [ v >> 2 ] | 0 , 3 ) | 0 ; else ke = 0 ; r [ O >> 2 ] = ke ; rn ( r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ E >> 2 ] | 0 , r [ O >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ ie >> 2 ] | 0 , r [ L >> 2 ] | 0 ) ; O = r [ re >> 2 ] | 0 ; r [ pe >> 2 ] = oe ( ) | 0 ; ke = m ; m = m + ( ( 1 * ( O << 2 ) | 0 ) + 15 & - 16 ) | 0 ; on ( r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ R >> 2 ] | 0 , ke , r [ L >> 2 ] | 0 , r [ v >> 2 ] | 0 ) ; r [ J >> 2 ] = nn ( r [ v >> 2 ] | 0 ) | 0 ; r [ M >> 2 ] = 2 ; if ( ( ( r [ J >> 2 ] | 0 ) + 4 | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) r [ M >> 2 ] = an ( r [ v >> 2 ] | 0 , 25137 , 5 ) | 0 ; O = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; At ( r [ ae >> 2 ] | 0 , O , r [ L >> 2 ] | 0 , r [ ie >> 2 ] | 0 ) ; de = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; r [ Z >> 2 ] = 6 ; r [ Y >> 2 ] = r [ Y >> 2 ] << 3 ; r [ J >> 2 ] = Ce ( r [ v >> 2 ] | 0 ) | 0 ; r [ w >> 2 ] = r [ U >> 2 ] ; while ( 1 ) { if ( ( r [ w >> 2 ] | 0 ) >= ( r [ B >> 2 ] | 0 ) ) break ; ue = W ( r [ ie >> 2 ] | 0 , ( a [ ( r [ le >> 2 ] | 0 ) + ( ( r [ w >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] | 0 ) - ( a [ ( r [ le >> 2 ] | 0 ) + ( r [ w >> 2 ] << 1 ) >> 1 ] | 0 ) | 0 ) | 0 ; r [ fe >> 2 ] = ue << r [ L >> 2 ] ; ue = r [ fe >> 2 ] | 0 ; if ( ( r [ fe >> 2 ] << 3 | 0 ) < ( ( 48 > ( r [ fe >> 2 ] | 0 ) ? 48 : r [ fe >> 2 ] | 0 ) | 0 ) ) Me = ue << 3 ; else Me = 48 > ( ue | 0 ) ? 48 : r [ fe >> 2 ] | 0 ; r [ me >> 2 ] = Me ; r [ he >> 2 ] = r [ Z >> 2 ] ; r [ ge >> 2 ] = 0 ; while ( 1 ) { if ( ( ( r [ J >> 2 ] | 0 ) + ( r [ he >> 2 ] << 3 ) | 0 ) >= ( r [ Y >> 2 ] | 0 ) ) break ; if ( ( r [ ge >> 2 ] | 0 ) >= ( r [ O + ( r [ w >> 2 ] << 2 ) >> 2 ] | 0 ) ) break ; r [ _e >> 2 ] = Ye ( r [ v >> 2 ] | 0 , r [ he >> 2 ] | 0 ) | 0 ; r [ J >> 2 ] = Ce ( r [ v >> 2 ] | 0 ) | 0 ; if ( ! ( r [ _e >> 2 ] | 0 ) ) break ; r [ ge >> 2 ] = ( r [ ge >> 2 ] | 0 ) + ( r [ me >> 2 ] | 0 ) ; r [ Y >> 2 ] = ( r [ Y >> 2 ] | 0 ) - ( r [ me >> 2 ] | 0 ) ; r [ he >> 2 ] = 1 } r [ de + ( r [ w >> 2 ] << 2 ) >> 2 ] = r [ ge >> 2 ] ; if ( ( r [ ge >> 2 ] | 0 ) > 0 ) r [ Z >> 2 ] = 2 > ( ( r [ Z >> 2 ] | 0 ) - 1 | 0 ) ? 2 : ( r [ Z >> 2 ] | 0 ) - 1 | 0 ; r [ w >> 2 ] = ( r [ w >> 2 ] | 0 ) + 1 } Z = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; if ( ( ( r [ J >> 2 ] | 0 ) + 48 | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) Se = an ( r [ v >> 2 ] | 0 , 25141 , 7 ) | 0 ; else Se = 5 ; r [ V >> 2 ] = Se ; Se = r [ h >> 2 ] << 3 << 3 ; r [ S >> 2 ] = Se - ( Ce ( r [ v >> 2 ] | 0 ) | 0 ) - 1 ; if ( ( r [ R >> 2 ] | 0 ) != 0 & ( r [ L >> 2 ] | 0 ) >= 2 ) Te = ( r [ S >> 2 ] | 0 ) >= ( ( r [ L >> 2 ] | 0 ) + 2 << 3 | 0 ) ; else Te = 0 ; r [ ee >> 2 ] = Te ? 8 : 0 ; r [ S >> 2 ] = ( r [ S >> 2 ] | 0 ) - ( r [ ee >> 2 ] | 0 ) ; Te = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; Se = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; r [ j >> 2 ] = Tt ( r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , de , O , r [ V >> 2 ] | 0 , G , K , r [ S >> 2 ] | 0 , X , Te , Z , Se , r [ ie >> 2 ] | 0 , r [ L >> 2 ] | 0 , r [ v >> 2 ] | 0 , 0 , 0 , 0 ) | 0 ; sn ( r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ E >> 2 ] | 0 , Z , r [ v >> 2 ] | 0 , r [ ie >> 2 ] | 0 ) ; r [ b >> 2 ] = 0 ; do { Ba ( r [ C + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 , ( r [ C + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 ) + ( r [ k >> 2 ] << 2 ) | 0 , ( 2048 - ( r [ k >> 2 ] | 0 ) + ( ( r [ se >> 2 ] | 0 ) / 2 | 0 ) << 2 ) + 0 | 0 ) | 0 ; S = ( r [ b >> 2 ] | 0 ) + 1 | 0 ; r [ b >> 2 ] = S } while ( ( S | 0 ) < ( r [ N >> 2 ] | 0 ) ) ; C = W ( r [ ie >> 2 ] | 0 , r [ re >> 2 ] | 0 ) | 0 ; S = m ; m = m + ( ( 1 * C | 0 ) + 15 & - 16 ) | 0 ; C = ( W ( r [ ie >> 2 ] | 0 , r [ k >> 2 ] | 0 ) | 0 ) << 2 ; V = m ; m = m + ( ( 1 * C | 0 ) + 15 & - 16 ) | 0 ; Ae ( 0 , r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , V , ( r [ ie >> 2 ] | 0 ) == 2 ? V + ( r [ k >> 2 ] << 2 ) | 0 : 0 , S , 0 , Te , r [ D >> 2 ] | 0 , r [ M >> 2 ] | 0 , r [ K >> 2 ] | 0 , r [ G >> 2 ] | 0 , ke , ( r [ h >> 2 ] << 6 ) - ( r [ ee >> 2 ] | 0 ) | 0 , r [ X >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ L >> 2 ] | 0 , r [ j >> 2 ] | 0 , ( r [ p >> 2 ] | 0 ) + 36 | 0 ) ; if ( ( r [ ee >> 2 ] | 0 ) > 0 ) r [ te >> 2 ] = De ( r [ v >> 2 ] | 0 , 1 ) | 0 ; ee = r [ ae >> 2 ] | 0 ; j = r [ U >> 2 ] | 0 ; X = r [ B >> 2 ] | 0 ; ke = r [ E >> 2 ] | 0 ; G = r [ h >> 2 ] << 3 ; K = G - ( nn ( r [ v >> 2 ] | 0 ) | 0 ) | 0 ; ln ( ee , j , X , ke , Z , Se , K , r [ v >> 2 ] | 0 , r [ ie >> 2 ] | 0 ) ; if ( r [ te >> 2 ] | 0 ) be ( r [ ae >> 2 ] | 0 , V , S , r [ L >> 2 ] | 0 , r [ ie >> 2 ] | 0 , r [ k >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ E >> 2 ] | 0 , r [ I >> 2 ] | 0 , r [ x >> 2 ] | 0 , Te , r [ ( r [ p >> 2 ] | 0 ) + 36 >> 2 ] | 0 ) ; e : do if ( r [ ne >> 2 ] | 0 ) { r [ w >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ w >> 2 ] | 0 ) >= ( W ( r [ ie >> 2 ] | 0 , r [ re >> 2 ] | 0 ) | 0 ) ) break e ; c [ ( r [ E >> 2 ] | 0 ) + ( r [ w >> 2 ] << 2 ) >> 2 ] = - 28 ; r [ w >> 2 ] = ( r [ w >> 2 ] | 0 ) + 1 } } while ( 0 ) ; cn ( r [ ae >> 2 ] | 0 , V , T , r [ E >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ H >> 2 ] | 0 , r [ ie >> 2 ] | 0 , r [ N >> 2 ] | 0 , r [ R >> 2 ] | 0 , r [ L >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 16 >> 2 ] | 0 , r [ ne >> 2 ] | 0 ) ; r [ b >> 2 ] = 0 ; do { if ( ( r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 ) > 15 ) $e = r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 ; else $e = 15 ; r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] = $e ; if ( ( r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) > 15 ) Ee = r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] | 0 ; else Ee = 15 ; r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] = Ee ; Mt ( r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 , r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 , r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] | 0 , + c [ ( r [ p >> 2 ] | 0 ) + 64 >> 2 ] , + c [ ( r [ p >> 2 ] | 0 ) + 60 >> 2 ] , r [ ( r [ p >> 2 ] | 0 ) + 72 >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 68 >> 2 ] | 0 , r [ ( r [ ae >> 2 ] | 0 ) + 60 >> 2 ] | 0 , r [ se >> 2 ] | 0 ) ; if ( r [ L >> 2 ] | 0 ) Mt ( ( r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 ) + ( r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] << 2 ) | 0 , ( r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 ) + ( r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] << 2 ) | 0 , r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 , r [ q >> 2 ] | 0 , ( r [ k >> 2 ] | 0 ) - ( r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] | 0 ) | 0 , + c [ ( r [ p
c [ b >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + ( r [ g >> 2 ] << 2 ) >> 2 ] ; r [ _ >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ _ >> 2 ] | 0 ) >= ( r [ f >> 2 ] | 0 ) ) break ; c [ b >> 2 ] = + c [ b >> 2 ] - + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] * + c [ o + ( ( r [ g >> 2 ] | 0 ) + ( r [ _ >> 2 ] | 0 ) << 2 ) >> 2 ] ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + 1 } c [ o + ( ( r [ g >> 2 ] | 0 ) + ( r [ f >> 2 ] | 0 ) << 2 ) >> 2 ] = + c [ b >> 2 ] ; c [ ( r [ u >> 2 ] | 0 ) + ( r [ g >> 2 ] << 2 ) >> 2 ] = + c [ b >> 2 ] ; r [ g >> 2 ] = ( r [ g >> 2 ] | 0 ) + 1 } r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ f >> 2 ] | 0 ) ) break ; c [ ( r [ h >> 2 ] | 0 ) + ( r [ g >> 2 ] << 2 ) >> 2 ] = + c [ ( r [ u >> 2 ] | 0 ) + ( ( r [ p >> 2 ] | 0 ) - ( r [ g >> 2 ] | 0 ) - 1 << 2 ) >> 2 ] ; r [ g >> 2 ] = ( r [ g >> 2 ] | 0 ) + 1 } ce ( r [ v >> 2 ] | 0 ) ; m = s ; return } function _n ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 ; a = m ; m = m + 64 | 0 ; o = a + 48 | 0 ; s = a + 44 | 0 ; l = a + 40 | 0 ; d = a + 36 | 0 ; u = a + 32 | 0 ; p = a + 28 | 0 ; f = a + 24 | 0 ; h = a + 20 | 0 ; g = a + 16 | 0 ; _ = a + 12 | 0 ; v = a + 8 | 0 ; y = a + 4 | 0 ; b = a ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ d >> 2 ] = i ; c [ g >> 2 ] = 0 ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ p >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ f >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ h >> 2 ] = + c [ i >> 2 ] ; r [ u >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ u >> 2 ] | 0 ) >= ( ( r [ d >> 2 ] | 0 ) - 3 | 0 ) ) break ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ g >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ p >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ f >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ h >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 4 } _ = r [ u >> 2 ] | 0 ; r [ u >> 2 ] = _ + 1 ; if ( ( _ | 0 ) < ( r [ d >> 2 ] | 0 ) ) { _ = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = _ + 4 ; c [ v >> 2 ] = + c [ _ >> 2 ] ; _ = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = _ + 4 ; c [ g >> 2 ] = + c [ _ >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ v >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ v >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ v >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ v >> 2 ] * + c [ g >> 2 ] } v = r [ u >> 2 ] | 0 ; r [ u >> 2 ] = v + 1 ; if ( ( v | 0 ) < ( r [ d >> 2 ] | 0 ) ) { v = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = v + 4 ; c [ y >> 2 ] = + c [ v >> 2 ] ; v = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = v + 4 ; c [ p >> 2 ] = + c [ v >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ y >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ y >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ y >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ y >> 2 ] * + c [ p >> 2 ] } if ( ( r [ u >> 2 ] | 0 ) >= ( r [ d >> 2 ] | 0 ) ) { m = a ; return } d = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = d + 4 ; c [ b >> 2 ] = + c [ d >> 2 ] ; d = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = d + 4 ; c [ f >> 2 ] = + c [ d >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ b >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ b >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ b >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ b >> 2 ] * + c [ f >> 2 ] ; m = a ; return } function vn ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , o = 0 , s = 0 ; t = m ; m = m + 16 | 0 ; n = t + 12 | 0 ; i = t + 8 | 0 ; o = t + 4 | 0 ; s = t ; r [ n >> 2 ] = e ; r [ o >> 2 ] = 32767 / ( ( r [ ( r [ n >> 2 ] | 0 ) + 2340 >> 2 ] | 0 ) + 1 | 0 ) | 0 ; r [ s >> 2 ] = 0 ; r [ i >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ i >> 2 ] | 0 ) >= ( r [ ( r [ n >> 2 ] | 0 ) + 2340 >> 2 ] | 0 ) ) break ; r [ s >> 2 ] = ( r [ s >> 2 ] | 0 ) + ( r [ o >> 2 ] | 0 ) ; a [ ( r [ n >> 2 ] | 0 ) + 2772 + 1280 + ( r [ i >> 2 ] << 1 ) >> 1 ] = r [ s >> 2 ] ; r [ i >> 2 ] = ( r [ i >> 2 ] | 0 ) + 1 } r [ ( r [ n >> 2 ] | 0 ) + 2772 + 1376 >> 2 ] = 0 ; r [ ( r [ n >> 2 ] | 0 ) + 2772 + 1380 >> 2 ] = 3176576 ; m = t ; return } function yn ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 ; o = m ; m = m + 80 | 0 ; s = o + 36 | 0 ; l = o + 32 | 0 ; c = o + 28 | 0 ; d = o + 24 | 0 ; u = o + 20 | 0 ; p = o + 16 | 0 ; f = o + 12 | 0 ; h = o + 8 | 0 ; g = o + 40 | 0 ; _ = o + 4 | 0 ; v = o ; r [ s >> 2 ] = e ; r [ l >> 2 ] = t ; r [ c >> 2 ] = n ; r [ d >> 2 ] = i ; r [ _ >> 2 ] = ( r [ s >> 2 ] | 0 ) + 2772 ; if ( ( r [ ( r [ s >> 2 ] | 0 ) + 2316 >> 2 ] | 0 ) != ( r [ ( r [ _ >> 2 ] | 0 ) + 1384 >> 2 ] | 0 ) ) { vn ( r [ s >> 2 ] | 0 ) ; r [ ( r [ _ >> 2 ] | 0 ) + 1384 >> 2 ] = r [ ( r [ s >> 2 ] | 0 ) + 2316 >> 2 ] } e : do if ( ( r [
} i = 32 - ( 32 - ( Y ( r [ n >> 2 ] | 0 ) | 0 ) ) | 0 ; m = t ; return i | 0 } function Nn ( e , t , n , a , o , s ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; var l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 ; l = m ; m = m + 192 | 0 ; c = l + 176 | 0 ; d = l + 172 | 0 ; u = l + 168 | 0 ; p = l + 164 | 0 ; f = l + 160 | 0 ; h = l + 156 | 0 ; g = l + 152 | 0 ; _ = l + 148 | 0 ; v = l + 144 | 0 ; y = l + 4 | 0 ; b = l ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = a ; r [ f >> 2 ] = o ; r [ h >> 2 ] = s ; r [ v >> 2 ] = 0 ; r [ g >> 2 ] = r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] ; r [ y + 136 >> 2 ] = 0 ; do if ( ! ( r [ f >> 2 ] | 0 ) ) w = 4 ; else { if ( ( r [ f >> 2 ] | 0 ) == 2 ? ( r [ ( r [ c >> 2 ] | 0 ) + 2420 + ( r [ ( r [ c >> 2 ] | 0 ) + 2388 >> 2 ] << 2 ) >> 2 ] | 0 ) == 1 : 0 ) { w = 4 ; break } Bn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , 1 ) } while ( 0 ) ; if ( ( w | 0 ) == 4 ) { w = ( r [ g >> 2 ] | 0 ) + 16 - 1 & - 16 ; r [ b >> 2 ] = oe ( ) | 0 ; s = m ; m = m + ( ( 1 * ( w << 1 ) | 0 ) + 15 & - 16 ) | 0 ; Ln ( r [ c >> 2 ] | 0 , r [ d >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2388 >> 2 ] | 0 , r [ f >> 2 ] | 0 , r [ h >> 2 ] | 0 ) ; Fn ( r [ d >> 2 ] | 0 , s , i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] | 0 , i [ ( r [ c >> 2 ] | 0 ) + 2736 + 30 >> 0 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] | 0 ) ; Un ( r [ c >> 2 ] | 0 , y , r [ h >> 2 ] | 0 ) ; xn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , s ) ; Bn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , 0 ) ; r [ ( r [ c >> 2 ] | 0 ) + 4160 >> 2 ] = 0 ; r [ ( r [ c >> 2 ] | 0 ) + 4164 >> 2 ] = i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] ; r [ ( r [ c >> 2 ] | 0 ) + 2376 >> 2 ] = 0 ; ce ( r [ b >> 2 ] | 0 ) } r [ _ >> 2 ] = ( r [ ( r [ c >> 2 ] | 0 ) + 2336 >> 2 ] | 0 ) - ( r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] | 0 ) ; Ba ( ( r [ c >> 2 ] | 0 ) + 1348 | 0 , ( r [ c >> 2 ] | 0 ) + 1348 + ( r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] << 1 ) | 0 , r [ _ >> 2 ] << 1 | 0 ) | 0 ; La ( ( r [ c >> 2 ] | 0 ) + 1348 + ( r [ _ >> 2 ] << 1 ) | 0 , r [ u >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] << 1 | 0 ) | 0 ; Hn ( r [ c >> 2 ] | 0 , r [ u >> 2 ] | 0 , r [ g >> 2 ] | 0 ) ; yn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , r [ g >> 2 ] | 0 ) ; r [ ( r [ c >> 2 ] | 0 ) + 2308 >> 2 ] = r [ y + ( ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) - 1 << 2 ) >> 2 ] ; r [ r [ p >> 2 ] >> 2 ] = r [ g >> 2 ] ; m = l ; return r [ v >> 2 ] | 0 } function Ln ( e , t , n , o , s ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; o = o | 0 ; s = s | 0 ; var l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 ; l = m ; m = m + 96 | 0 ; c = l + 36 | 0 ; d = l + 32 | 0 ; u = l + 28 | 0 ; p = l + 24 | 0 ; f = l + 20 | 0 ; h = l + 16 | 0 ; g = l + 12 | 0 ; _ = l + 8 | 0 ; v = l + 4 | 0 ; y = l ; b = l + 40 | 0 ; w = l + 72 | 0 ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = o ; r [ f >> 2 ] = s ; if ( ! ( r [ p >> 2 ] | 0 ) ? ! ( r [ ( r [ c >> 2 ] | 0 ) + 2404 + ( r [ u >> 2 ] << 2 ) >> 2 ] | 0 ) : 0 ) r [ _ >> 2 ] = an ( r [ d >> 2 ] | 0 , 22720 , 8 ) | 0 ; else r [ _ >> 2 ] = ( an ( r [ d >> 2 ] | 0 , 22716 , 8 ) | 0 ) + 2 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] = r [ _ >> 2 ] >> 1 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 30 >> 0 ] = r [ _ >> 2 ] & 1 ; u = r [ d >> 2 ] | 0 ; if ( ( r [ f >> 2 ] | 0 ) == 2 ) { p = ( an ( u , 20582 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 >> 0 ] = p } else { p = ( an ( u , 20558 + ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] << 3 ) | 0 , 8 ) | 0 ) << 3 & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 >> 0 ] = p ; p = ( ( an ( r [ d >> 2 ] | 0 , 22745 , 8 ) | 0 ) & 255 ) << 24 >> 24 ; u = ( r [ c >> 2 ] | 0 ) + 2736 | 0 ; i [ u >> 0 ] = ( i [ u >> 0 ] | 0 ) + p } r [ h >> 2 ] = 1 ; while ( 1 ) { k = r [ d >> 2 ] | 0 ; if ( ( r [ h >> 2 ] | 0 ) >= ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) ) break ; p = ( an ( k , 20582 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + ( r [ h >> 2 ] | 0 ) >> 0 ] = p ; r [ h >> 2 ] = ( r [ h >> 2 ] | 0 ) + 1 } p = ( an ( k , ( r [ ( r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) + ( W ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] >> 1 , a [ r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] >> 1 ] | 0 ) | 0 ) | 0 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 8 >> 0 ] = p ; oi ( b , w , r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 , i [ ( r [ c >> 2 ] | 0 ) + 2736 + 8 >> 0 ] | 0 ) ; r [ h >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ h >> 2 ] | 0 ) >= ( a [ ( r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) ) break ; r [ _ >> 2 ] = an ( r [ d >> 2 ] | 0 , ( r [ ( r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 ) + 24 >> 2 ] | 0 ) + ( a [ b + ( r [ h >> 2 ] << 1 ) >> 1 ] | 0 ) | 0 , 8 ) | 0 ; if ( r [ _ >> 2 ] | 0 ) { if ( ( r [ _ >> 2 ] | 0 ) == 8 ) { w = an ( r [ d >> 2 ] | 0 , 22753 , 8 ) | 0 ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + w } } else { w = an ( r [ d >> 2 ] | 0 , 22753 , 8 ) | 0 ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) - w } i [ ( r [ c >> 2 ] | 0 ) + 2736 + 8 + ( ( r [ h >> 2 ] | 0 ) + 1 ) >> 0 ] = ( r [ _ >> 2 ] | 0 ) - 4 ; r [ h >> 2 ] = ( r [ h >> 2 ] | 0 ) + 1 } if ( ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) == 4 ) { h = ( an ( r [ d >> 2 ] | 0 , 22722 , 8 ) | 0 ) & 255 ; M = h ; S = r [ c >> 2 ] | 0 } else { M = 4 ; S = r [ c >> 2 ] | 0 } i [ S + 2736 + 31 >> 0 ] = M ; if ( ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] | 0 ) != 2 ) { A = r [ c >> 2 ] | 0 ; C = A + 2736 | 0 ; T = C + 29 | 0 ; $ = i [ T >> 0 ] | 0 ; E = $ << 24 >> 24 ; I = r [ c >> 2 ] | 0 ; x = I + 2396 | 0 ; r [ x >> 2 ] = E ; P = r [ d >> 2 ] | 0 ; D = an ( P , 22730 , 8 ) | 0 ; R = D & 255 ; O = r [ c >> 2 ] | 0 ; N = O + 2736 | 0 ; L = N + 34 | 0 ; i [ L >> 0 ] = R ; m = l ; return } r [ v >> 2 ] = 1 ; if ( ( ( r [ f >> 2 ] | 0 ) == 2 ? ( r [ ( r [ c >> 2 ] | 0 ) + 2396 >> 2 ] | 0 ) == 2 : 0 ) ? ( r [ y >> 2 ] = ( ( an ( r [ d >> 2 ] | 0 , 22792 , 8 ) | 0 ) & 65535 ) << 16 >> 16 , ( r [ y >> 2 ] | 0 ) > 0 ) : 0 ) { r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) - 9 ; a [ ( r [ c >> 2 ] | 0 ) + 2736 + 26 >> 1 ] = ( a [ ( r [ c >> 2 ] | 0 ) + 2400 >> 1 ] | 0 ) + ( r [ y >> 2 ] | 0 ) ; r [ v >> 2 ] = 0 } if ( r [ v >> 2 ] | 0 ) { v = ( ( an ( r [ d >> 2 ] | 0 , 22760 , 8 ) | 0 ) & 65535 ) << 16 >> 16 ; y = ( W ( v , r [ ( r [ c >> 2 ] | 0 ) + 2316 >> 2 ] >> 1 ) | 0 ) & 65535 ; a [ ( r [ c >> 2 ] | 0 ) + 2736 + 26 >> 1 ] = y ; y = ( ( an ( r [ d >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2380 >> 2 ] | 0 , 8 ) | 0 ) & 65535 ) << 16 >> 16 ; v = ( r [ c >> 2 ] | 0 ) + 2736 + 26 | 0 ; a [ v >> 1 ] = ( a [ v >> 1 ] | 0 ) + y } a [ ( r [ c >> 2 ] | 0 ) + 2400 >> 1 ] = a [ ( r [ c >> 2 ] | 0 ) + 2736 + 26 >> 1 ] | 0 ; y = ( an ( r [ d >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2384 >> 2 ] | 0 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 28 >> 0 ] = y ; y = ( an ( r [ d >> 2 ] | 0 , 20623 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 32 >> 0 ] = y ; r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) ) break ; y = ( an ( r [ d >> 2 ] | 0 , r [ 108 + ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 32 >> 0 ] << 2 ) >> 2 ] | 0 , 8 ) | 0 ) & 255 ; i [ ( r [
i [ ( r [ d >> 2 ] | 0 ) + ( r [ f >> 2 ] | 0 ) >> 0 ] = p ; a [ ( r [ c >> 2 ] | 0 ) + ( ( r [ f >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] = ( ( o [ h >> 0 ] >> 5 & 7 ) << 16 >> 16 ) * 9 ; p = i [ ( r [ ( r [ u >> 2 ] | 0 ) + 16 >> 2 ] | 0 ) + ( ( r [ f >> 2 ] | 0 ) + ( W ( o [ h >> 0 ] >> 4 & 1 , ( a [ ( r [ u >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) - 1 | 0 ) | 0 ) + 1 ) >> 0 ] | 0 ; i [ ( r [ d >> 2 ] | 0 ) + ( ( r [ f >> 2 ] | 0 ) + 1 ) >> 0 ] = p ; r [ f >> 2 ] = ( r [ f >> 2 ] | 0 ) + 2 } m = l ; return } function si ( e , t , n , s , l ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; s = s | 0 ; l = l | 0 ; var c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 ; c = m ; m = m + 32 | 0 ; d = c + 24 | 0 ; u = c + 20 | 0 ; p = c + 16 | 0 ; f = c + 12 | 0 ; h = c + 28 | 0 ; g = c + 8 | 0 ; _ = c + 4 | 0 ; v = c ; r [ d >> 2 ] = e ; r [ u >> 2 ] = t ; r [ p >> 2 ] = n ; r [ f >> 2 ] = s ; a [ h >> 1 ] = l ; r [ _ >> 2 ] = 0 ; r [ g >> 2 ] = ( a [ h >> 1 ] | 0 ) - 1 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) < 0 ) break ; r [ v >> 2 ] = ( W ( ( r [ _ >> 2 ] & 65535 ) << 16 >> 16 , o [ ( r [ p >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) >> 0 ] | 0 ) | 0 ) >> 8 ; r [ _ >> 2 ] = i [ ( r [ u >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) >> 0 ] << 10 ; h = r [ _ >> 2 ] | 0 ; if ( ( r [ _ >> 2 ] | 0 ) <= 0 ) { if ( ( h | 0 ) < 0 ) r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + 102 } else r [ _ >> 2 ] = h - 102 ; h = W ( r [ _ >> 2 ] >> 16 , ( r [ f >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ; r [ _ >> 2 ] = ( r [ v >> 2 ] | 0 ) + ( h + ( ( W ( r [ _ >> 2 ] & 65535 , ( r [ f >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ) >> 16 ) ) ; a [ ( r [ d >> 2 ] | 0 ) + ( r [ g >> 2 ] << 1 ) >> 1 ] = r [ _ >> 2 ] ; r [ g >> 2 ] = ( r [ g >> 2 ] | 0 ) + - 1 } m = c ; return } function li ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 ; i = m ; m = m + 32 | 0 ; o = i + 20 | 0 ; s = i + 16 | 0 ; l = i + 12 | 0 ; c = i + 8 | 0 ; d = i + 4 | 0 ; u = i ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ d >> 2 ] = _i ( a [ r [ s >> 2 ] >> 1 ] | 0 , 1 ) | 0 ; r [ d >> 2 ] = 131072 / ( r [ d >> 2 ] | 0 ) | 0 ; r [ u >> 2 ] = _i ( ( a [ ( r [ s >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) - ( a [ r [ s >> 2 ] >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ u >> 2 ] = 131072 / ( r [ u >> 2 ] | 0 ) | 0 ; n = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ r [ o >> 2 ] >> 1 ] = n ; r [ c >> 2 ] = 1 ; while ( 1 ) { p = r [ s >> 2 ] | 0 ; if ( ( r [ c >> 2 ] | 0 ) >= ( ( r [ l >> 2 ] | 0 ) - 1 | 0 ) ) break ; r [ d >> 2 ] = _i ( ( a [ p + ( ( r [ c >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] | 0 ) - ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ c >> 2 ] << 1 ) >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ d >> 2 ] = 131072 / ( r [ d >> 2 ] | 0 ) | 0 ; n = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ ( r [ o >> 2 ] | 0 ) + ( r [ c >> 2 ] << 1 ) >> 1 ] = n ; r [ u >> 2 ] = _i ( ( a [ ( r [ s >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) + 2 << 1 ) >> 1 ] | 0 ) - ( a [ ( r [ s >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ u >> 2 ] = 131072 / ( r [ u >> 2 ] | 0 ) | 0 ; n = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] = n ; r [ c >> 2 ] = ( r [ c >> 2 ] | 0 ) + 2 } r [ d >> 2 ] = _i ( 32768 - ( a [ p + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ d >> 2 ] = 131072 / ( r [ d >> 2 ] | 0 ) | 0 ; p = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] = p ; m = i ; return } function ci ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; t = m ; m = m + 32 | 0 ; n = t + 16 | 0 ; i = t + 12 | 0 ; a = t + 8 | 0 ; o = t + 4 | 0 ; s = t ; r [ i >> 2 ] = e ; if ( ( r [ i >> 2 ] | 0 ) <= 0 ) { r [ n >> 2 ] = 0 ; l = r [ n >> 2 ] | 0 ; m = t ; return l | 0 } mi ( r [ i >> 2 ] | 0 , o , s ) ; if ( r [ o >> 2 ] & 1 | 0 ) r [ a >> 2 ] = 32768 ; else r [ a >> 2 ] = 46214 ; r [ a >> 2 ] = r [ a >> 2 ] >> ( r [ o >> 2 ] >> 1 ) ; o = W ( r [ a >> 2 ] >> 16 , ( ( ( r [ s >> 2 ] & 65535 ) << 16 >> 16 ) * 213 & 65535 ) << 16 >> 16 ) | 0 ; r [ a >> 2 ] = ( r [ a >> 2 ] | 0 ) + ( o + ( ( W ( r [ a >> 2 ] & 65535 , ( ( ( r [ s >> 2 ] & 65535 ) << 16 >> 16 ) * 213 & 65535 ) << 16 >> 16 ) | 0 ) >> 16 ) ) ; r [ n >> 2 ] = r [ a >> 2 ] ; l = r [ n >> 2 ] | 0 ; m = t ; return l | 0 } function di ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; i = m ; m = m + 48 | 0 ; o = i + 40 | 0 ; s = i + 36 | 0 ; l = i + 32 | 0 ; c = i + 28 | 0 ; d = i + 24 | 0 ; u = i + 20 | 0 ; p = i + 16 | 0 ; f = i + 44 | 0 ; h = i + 12 | 0 ; g = i + 8 | 0 ; _ = i + 4 | 0 ; v = i ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ d >> 2 ] = 0 ; r [ p >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ p >> 2 ] | 0 ) >= 20 ) break ; r [ g >> 2 ] = ( a [ r [ o >> 2 ] >> 1 ] | 0 ) - ( a [ r [ s >> 2 ] >> 1 ] | 0 ) ; r [ d >> 2 ] = 0 ; r [ c >> 2 ] = 1 ; while ( 1 ) { y = r [ o >> 2 ] | 0 ; if ( ( r [ c >> 2 ] | 0 ) > ( ( r [ l >> 2 ] | 0 ) - 1 | 0 ) ) break ; r [ h >> 2 ] = ( a [ y + ( r [ c >> 2 ] << 1 ) >> 1 ] | 0 ) - ( ( a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ c >> 2 ] << 1 ) >> 1 ] | 0 ) ) ; if ( ( r [ h >> 2 ] | 0 ) < ( r [ g >> 2 ] | 0 ) ) { r [ g >> 2 ] = r [ h >> 2 ] ; r [ d >> 2 ] = r [ c >> 2 ] } r [ c >> 2 ] = ( r [ c >> 2 ] | 0 ) + 1 } r [ h >> 2 ] = 32768 - ( ( a [ y + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ l >> 2 ] << 1 ) >> 1 ] | 0 ) ) ; if ( ( r [ h >> 2 ] | 0 ) < ( r [ g >> 2 ] | 0 ) ) { r [ g >> 2 ] = r [ h >> 2 ] ; r [ d >> 2 ] = r [ l >> 2 ] } if ( ( r [ g >> 2 ] | 0 ) >= 0 ) { b = 42 ; break } if ( ! ( r [ d >> 2 ] | 0 ) ) a [ r [ o >> 2 ] >> 1 ] = a [ r [ s >> 2 ] >> 1 ] | 0 ; else { if ( ( r [ d >> 2 ] | 0 ) == ( r [ l >> 2 ] | 0 ) ) { w = ( r [ o >> 2 ] | 0 ) + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) | 0 ; k = 32768 - ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ l >> 2 ] << 1 ) >> 1 ] | 0 ) & 65535 } else { r [ _ >> 2 ] = 0 ; r [ u >> 2 ] = 0 ; while ( 1 ) { M = r [ s >> 2 ] | 0 ; if ( ( r [ u >> 2 ] | 0 ) >= ( r [ d >> 2 ] | 0 ) ) break ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + ( a [ M + ( r [ u >> 2 ] << 1 ) >> 1 ] | 0 ) ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 1 } r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + ( a [ M + ( r [ d >> 2 ] << 1 ) >> 1 ] >> 1 ) ; r [ v >> 2 ] = 32768 ; r [ u >> 2 ] = r [ l >> 2 ] ; while ( 1 ) { S = r [ s >> 2 ] | 0 ; if ( ( r [ u >> 2 ] | 0 ) <= ( r [ d >> 2 ] | 0 ) ) break ; r [ v >> 2 ] = ( r [ v >> 2 ] | 0 ) - ( a [ S + ( r [ u >> 2 ] << 1 ) >> 1 ] | 0 ) ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + - 1 } r [ v >> 2 ] = ( r [ v >> 2 ] | 0 ) - ( a [ S + ( r [ d >> 2 ] << 1 ) >> 1 ] >> 1 ) ; n = ( ( a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ d >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ o >> 2 ] | 0 ) + ( r [ d >> 2 ] << 1 ) >> 1 ] | 0 ) >> 1 ) + ( ( a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ d >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ o >> 2 ] | 0 ) + ( r [ d >> 2 ] << 1 ) >> 1 ] | 0 ) & 1 ) | 0 ; do if ( ( r [ _ >> 2 ] | 0 ) > ( r [ v >> 2 ] | 0 ) ) { if ( ( n | 0 ) > ( r [ _ >> 2 ] | 0 ) ) { A = r [ _ >> 2 ] | 0 ; break } if ( ( ( ( a [ ( r [ o >> 2 ] |
} m = s ; return } function Li ( e , t , n , i , o , s , l ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; o = o | 0 ; s = s | 0 ; l = l | 0 ; var c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; c = m ; m = m + 48 | 0 ; d = c + 44 | 0 ; u = c + 40 | 0 ; p = c + 36 | 0 ; f = c + 32 | 0 ; h = c + 28 | 0 ; g = c + 24 | 0 ; _ = c + 20 | 0 ; v = c + 16 | 0 ; y = c + 12 | 0 ; b = c + 8 | 0 ; w = c + 4 | 0 ; k = c ; r [ d >> 2 ] = e ; r [ u >> 2 ] = t ; r [ p >> 2 ] = n ; r [ f >> 2 ] = i ; r [ h >> 2 ] = o ; r [ g >> 2 ] = s ; r [ _ >> 2 ] = l ; switch ( r [ f >> 2 ] | 0 ) { case 18 : { r [ v >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ v >> 2 ] | 0 ) >= ( r [ g >> 2 ] | 0 ) ) break ; r [ b >> 2 ] = ( r [ u >> 2 ] | 0 ) + ( r [ v >> 2 ] >> 16 << 2 ) ; f = W ( ( r [ v >> 2 ] & 65535 ) >> 16 , ( r [ h >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ; r [ w >> 2 ] = f + ( ( W ( r [ v >> 2 ] & 65535 , ( r [ h >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ) >> 16 ) ; r [ k >> 2 ] = ( r [ p >> 2 ] | 0 ) + ( ( r [ w >> 2 ] | 0 ) * 9 << 1 ) ; f = W ( r [ r [ b >> 2 ] >> 2 ] >> 16 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = f + ( ( W ( r [ r [ b >> 2 ] >> 2 ] & 65535 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ) >> 16 ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 12 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 12 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 16 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 16 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 20 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 20 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 24 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 24 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 28 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 28 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 32 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 32 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; r [ k >> 2 ] = ( r [ p >> 2 ] | 0 ) + ( ( ( r [ h >> 2 ] | 0 ) - 1 - ( r [ w >> 2 ] | 0 ) | 0 ) * 9 << 1 ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 68 >> 2 ] >> 16 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 68 >> 2 ] & 65535 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 64 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 64 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 60 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 60 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 56 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 56 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 52 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 52 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 48 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 48 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 44 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 44 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 40 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 40 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 36 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 36 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; if ( ( ( r [ y >> 2 ] >> 5 ) + 1 >> 1 | 0 ) <= 32767 ) if ( ( ( r [ y >> 2 ] >> 5 ) + 1 >> 1 | 0 ) < - 32768 ) M = - 32768 ; else M = ( r [ y >> 2 ] >> 5 ) + 1 >> 1 ; else M = 32767 ; f = r [ d >> 2 ] | 0 ; r [ d >> 2 ] = f + 2 ; a [ f >> 1 ] = M ; r [ v >> 2 ] = ( r [ v >> 2 ] | 0 ) + ( r [ _ >> 2 ] | 0 ) } S = r [ d >> 2 ] | 0 ; m = c ; return S | 0 } case 24 : { r [ v >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ v >> 2 ] | 0 ) >= ( r [ g >> 2 ] | 0 ) ) break ; r [ b >> 2 ] = ( r [ u >> 2 ] | 0 ) + ( r [ v >> 2 ] >> 16 << 2 ) ; M = W ( ( r [ r [ b >> 2 ] >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 92 >> 2 ] | 0 ) >> 16 , a [ r [ p >> 2 ] >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = M + ( ( W ( ( r [ r [ b >> 2 ] >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 92 >> 2 ] | 0 ) & 65535 , a [ r [ p >> 2 ] >> 1 ] | 0 ) | 0 ) >> 16 ) ; M = W ( ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 88 >> 2 ] | 0 ) >> 16 , a [ ( r [ p >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( M + ( ( W ( ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 88 >> 2 ] | 0 ) & 65535 , a [ ( r [ p >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; M = W ( ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 84 >> 2 ] | 0 ) >> 16 , a [ ( r [ p >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( M + ( ( W ( ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 84 >> 2 ] | 0 ) & 65535 , a [ ( r [ p >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; M = W ( ( r [ ( r [ b >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 80 >> 2 ] | 0 ) >> 16 , a [ ( r [ p >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] |
if ( ( r [ K >> 2 ] | 0 ) != 0 & ( r [ X >> 2 ] | 0 ) != 0 ? r [ ( r [ S >> 2 ] | 0 ) + 64 >> 2 ] | 0 : 0 ) break ; re = r [ x >> 2 ] | 0 ; r [ g >> 2 ] = 0 ; Jt ( re , 10010 , g ) | 0 ; Zt ( r [ x >> 2 ] | 0 , ge , 2 , r [ T >> 2 ] | 0 , r [ Z >> 2 ] | 0 , 0 , r [ ae >> 2 ] | 0 ) | 0 } } else { r [ he >> 2 ] = ( r [ te >> 2 ] | 0 ) < ( r [ $ >> 2 ] | 0 ) ? r [ te >> 2 ] | 0 : r [ $ >> 2 ] | 0 ; do if ( ( r [ q >> 2 ] | 0 ) != ( r [ ( r [ S >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) ) { if ( ( r [ ( r [ S >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) <= 0 ) break ; if ( r [ ( r [ S >> 2 ] | 0 ) + 64 >> 2 ] | 0 ) break ; Jt ( r [ x >> 2 ] | 0 , 4028 , _ ) | 0 } while ( 0 ) ; r [ R >> 2 ] = Zt ( r [ x >> 2 ] | 0 , r [ E >> 2 ] | 0 ? 0 : r [ A >> 2 ] | 0 , r [ C >> 2 ] | 0 , r [ T >> 2 ] | 0 , r [ he >> 2 ] | 0 , O , r [ ae >> 2 ] | 0 ) | 0 } while ( 0 ) ; t : do if ( ! ( ( r [ q >> 2 ] | 0 ) == 1002 | ( r [ ae >> 2 ] | 0 ) != 0 ) ) { r [ P >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ P >> 2 ] | 0 ) >= ( W ( r [ $ >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ) ) break t ; c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] = + c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] + + ( a [ U + ( r [ P >> 2 ] << 1 ) >> 1 ] | 0 ) * 30517578125e-15 ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } } while ( 0 ) ; U = r [ x >> 2 ] | 0 ; r [ h >> 2 ] = _e + ( ( ( _e - _e | 0 ) / 4 | 0 ) << 2 ) ; Jt ( U , 10015 , h ) | 0 ; r [ ne >> 2 ] = r [ ( r [ _e >> 2 ] | 0 ) + 60 >> 2 ] ; if ( ! ( ( r [ K >> 2 ] | 0 ) == 0 | ( r [ X >> 2 ] | 0 ) != 0 ) ) { Jt ( r [ x >> 2 ] | 0 , 4028 , f ) | 0 ; U = r [ x >> 2 ] | 0 ; r [ p >> 2 ] = 0 ; Jt ( U , 10010 , p ) | 0 ; Zt ( r [ x >> 2 ] | 0 , ( r [ A >> 2 ] | 0 ) + ( r [ C >> 2 ] | 0 ) | 0 , r [ Y >> 2 ] | 0 , Se , r [ Q >> 2 ] | 0 , 0 , 0 ) | 0 ; U = r [ x >> 2 ] | 0 ; r [ u >> 2 ] = ie + ( ( ( ie - ie | 0 ) / 4 | 0 ) << 2 ) ; Jt ( U , 4031 , u ) | 0 ; U = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , ( r [ $ >> 2 ] | 0 ) - ( r [ Z >> 2 ] | 0 ) | 0 ) | 0 ) << 2 ) | 0 ; re = Se + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; Me = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , ( r [ $ >> 2 ] | 0 ) - ( r [ Z >> 2 ] | 0 ) | 0 ) | 0 ) << 2 ) | 0 ; ea ( U , re , Me , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) } if ( ( r [ K >> 2 ] | 0 ) != 0 & ( r [ X >> 2 ] | 0 ) != 0 ) { r [ J >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ J >> 2 ] | 0 ) >= ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) ) break ; r [ P >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ P >> 2 ] | 0 ) >= ( r [ Z >> 2 ] | 0 ) ) break ; Me = W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ P >> 2 ] | 0 ) | 0 ; re = W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ P >> 2 ] | 0 ) | 0 ; c [ ( r [ T >> 2 ] | 0 ) + ( re + ( r [ J >> 2 ] | 0 ) << 2 ) >> 2 ] = + c [ Se + ( Me + ( r [ J >> 2 ] | 0 ) << 2 ) >> 2 ] ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } r [ J >> 2 ] = ( r [ J >> 2 ] | 0 ) + 1 } Me = Se + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; re = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; U = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; ea ( Me , re , U , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) } do if ( r [ z >> 2 ] | 0 ) { if ( ( r [ j >> 2 ] | 0 ) < ( r [ Q >> 2 ] | 0 ) ) { ea ( r [ B >> 2 ] | 0 , r [ T >> 2 ] | 0 , r [ T >> 2 ] | 0 , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) ; break } r [ P >> 2 ] = 0 ; while ( 1 ) { U = ( r [ P >> 2 ] | 0 ) < ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) ; xe = r [ B >> 2 ] | 0 ; if ( ! U ) break ; c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] = + c [ xe + ( r [ P >> 2 ] << 2 ) >> 2 ] ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } U = xe + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; re = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; Me = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; ea ( U , re , Me , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) } while ( 0 ) ; t : do if ( r [ ( r [ S >> 2 ] | 0 ) + 40 >> 2 ] | 0 ) { c [ ve >> 2 ] = + V ( + ( + ( r [ ( r [ S >> 2 ] | 0 ) + 40 >> 2 ] | 0 ) * . 0006488140788860619 * . 6931471805599453 ) ) ; r [ P >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ P >> 2 ] | 0 ) >= ( W ( r [ $ >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ) ) break t ; c [ ye >> 2 ] = + c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] * + c [ ve >> 2 ] ; c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] = + c [ ye >> 2 ] ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } } while ( 0 ) ; if ( ( r [ C >> 2 ] | 0 ) <= 1 ) { Pe = r [ S >> 2 ] | 0 ; De = 0 } else { Pe = r [ S >> 2 ] | 0 ; De = r [ O + 28 >> 2 ] ^ r [ ie >> 2 ] } r [ Pe + 80 >> 2 ] = De ; r [ ( r [ S >> 2 ] | 0 ) + 56 >> 2 ] = r [ q >> 2 ] ; if ( r [ K >> 2 ] | 0 ) Re = ( r [ X >> 2 ] | 0 ) != 0 ^ 1 ; else Re = 0 ; r [ ( r [ S >> 2 ] | 0 ) + 64 >> 2 ] = Re & 1 ; if ( ( r [ R >> 2 ] | 0 ) >= 0 ) Yi ( ) | 0 ; r [ M >> 2 ] = ( r [ R >> 2 ] | 0 ) < 0 ? r [ R >> 2 ] | 0 : r [ j >> 2 ] | 0 ; r [ le >> 2 ] = 1 } while ( 0 ) ; ce ( r [ se >> 2 ] | 0 ) ; be = r [ M >> 2 ] | 0 ; m = d ; return be | 0 } function Yi ( ) { return 0 } function Xi ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 ; t = m ; m = m + 16 | 0 ; n = t + 4 | 0 ; i = t ; r [ n >> 2 ] = e ; do if ( ! ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 128 | 0 ) ) if ( ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 96 | 0 ) == 96 ) { r [ i >> 2 ] = 1001 ; break } else { r [ i >> 2 ] = 1e3 ; break } else r [ i >> 2 ] = 1002 ; while ( 0 ) ; m = t ; return r [ i >> 2 ] | 0 } function Ji ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , s = 0 ; t = m ; m = m + 16 | 0 ; n = t + 4 | 0 ; i = t ; r [ n >> 2 ] = e ; e = o [ r [ n >> 2 ] >> 0 ] | 0 ; if ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 128 | 0 ) { a = 1102 + ( e >> 5 & 3 ) | 0 ; r [ i >> 2 ] = a ; r [ i >> 2 ] = ( r [ i >> 2 ] | 0 ) == 1102 ? 1101 : a ; s = r [ i >> 2 ] | 0 ; m = t ; return s | 0 } a = o [ r [ n >> 2 ] >> 0 ] | 0 ; if ( ( e & 96 | 0 ) == 96 ) { r [ i >> 2 ] = a & 16 | 0 ? 1105 : 1104 ; s = r [ i >> 2 ] | 0 ; m = t ; return s | 0 } else { r [ i >> 2 ] = 1101 + ( a >> 5 & 3 ) ; s = r [ i >> 2 ] | 0 ; m = t ; return s | 0 } return 0 } function Zi ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; m = t ; return ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 4 | 0 ? 2 : 1 ) | 0 } function Qi ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; e = ( r [ ( r [ n >> 2 ] | 0 ) + 20 >> 2 ] | 0 ) - ( 32 - ( Y ( r [ ( r [ n >> 2 ] | 0 ) + 28 >> 2 ] | 0 ) | 0 ) ) | 0 ; m = t ; return e | 0 } function ea ( e , t , n , i , a , o , s ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; var l = 0 , d = 0 , u = 0 , p = 0 , f =
r [ de >> 2 ] = ue + re ; oe = le + 8 | 0 ; ne = ( oe & 7 | 0 ) == 0 ? 0 : 0 - oe & 7 ; oe = le + ne | 0 ; ee = ( r [ 6331 ] | 0 ) + ( re - ne ) | 0 ; r [ 6334 ] = oe ; r [ 6331 ] = ee ; r [ oe + 4 >> 2 ] = ee | 1 ; r [ oe + ee + 4 >> 2 ] = 40 ; r [ 6335 ] = r [ 6450 ] ; break } ee = r [ 6332 ] | 0 ; if ( ie >>> 0 < ee >>> 0 ) { r [ 6332 ] = ie ; pe = ie } else pe = ee ; ee = ie + re | 0 ; oe = 25760 ; while ( 1 ) { if ( ( r [ oe >> 2 ] | 0 ) == ( ee | 0 ) ) { N = 198 ; break } ne = r [ oe + 8 >> 2 ] | 0 ; if ( ! ne ) break ; else oe = ne } if ( ( N | 0 ) == 198 ? ( r [ oe + 12 >> 2 ] & 8 | 0 ) == 0 : 0 ) { r [ oe >> 2 ] = ie ; se = oe + 4 | 0 ; r [ se >> 2 ] = ( r [ se >> 2 ] | 0 ) + re ; se = ie + 8 | 0 ; ne = ie + ( ( se & 7 | 0 ) == 0 ? 0 : 0 - se & 7 ) | 0 ; se = ee + 8 | 0 ; n = ee + ( ( se & 7 | 0 ) == 0 ? 0 : 0 - se & 7 ) | 0 ; se = ne + x | 0 ; z = n - ne - x | 0 ; r [ ne + 4 >> 2 ] = x | 3 ; do if ( ( n | 0 ) != ( le | 0 ) ) { if ( ( n | 0 ) == ( r [ 6333 ] | 0 ) ) { te = ( r [ 6330 ] | 0 ) + z | 0 ; r [ 6330 ] = te ; r [ 6333 ] = se ; r [ se + 4 >> 2 ] = te | 1 ; r [ se + te >> 2 ] = te ; break } te = r [ n + 4 >> 2 ] | 0 ; if ( ( te & 3 | 0 ) == 1 ) { Z = te & - 8 ; Q = te >>> 3 ; e : do if ( te >>> 0 >= 256 ) { q = r [ n + 24 >> 2 ] | 0 ; Y = r [ n + 12 >> 2 ] | 0 ; do if ( ( Y | 0 ) == ( n | 0 ) ) { W = n + 16 | 0 ; J = W + 4 | 0 ; _ = r [ J >> 2 ] | 0 ; if ( ! _ ) { y = r [ W >> 2 ] | 0 ; if ( ! y ) { fe = 0 ; break } else { me = y ; he = W } } else { me = _ ; he = J } while ( 1 ) { J = me + 20 | 0 ; _ = r [ J >> 2 ] | 0 ; if ( _ | 0 ) { me = _ ; he = J ; continue } J = me + 16 | 0 ; _ = r [ J >> 2 ] | 0 ; if ( ! _ ) break ; else { me = _ ; he = J } } if ( he >>> 0 < pe >>> 0 ) ae ( ) ; else { r [ he >> 2 ] = 0 ; fe = me ; break } } else { J = r [ n + 8 >> 2 ] | 0 ; if ( J >>> 0 < pe >>> 0 ) ae ( ) ; _ = J + 12 | 0 ; if ( ( r [ _ >> 2 ] | 0 ) != ( n | 0 ) ) ae ( ) ; W = Y + 8 | 0 ; if ( ( r [ W >> 2 ] | 0 ) == ( n | 0 ) ) { r [ _ >> 2 ] = Y ; r [ W >> 2 ] = J ; fe = Y ; break } else ae ( ) } while ( 0 ) ; if ( ! q ) break ; Y = r [ n + 28 >> 2 ] | 0 ; J = 25616 + ( Y << 2 ) | 0 ; do if ( ( n | 0 ) != ( r [ J >> 2 ] | 0 ) ) if ( q >>> 0 >= ( r [ 6332 ] | 0 ) >>> 0 ) { r [ q + 16 + ( ( ( r [ q + 16 >> 2 ] | 0 ) != ( n | 0 ) & 1 ) << 2 ) >> 2 ] = fe ; if ( ! fe ) break e ; else break } else ae ( ) ; else { r [ J >> 2 ] = fe ; if ( fe | 0 ) break ; r [ 6329 ] = r [ 6329 ] & ~ ( 1 << Y ) ; break e } while ( 0 ) ; Y = r [ 6332 ] | 0 ; if ( fe >>> 0 < Y >>> 0 ) ae ( ) ; r [ fe + 24 >> 2 ] = q ; J = n + 16 | 0 ; W = r [ J >> 2 ] | 0 ; do if ( W | 0 ) if ( W >>> 0 < Y >>> 0 ) ae ( ) ; else { r [ fe + 16 >> 2 ] = W ; r [ W + 24 >> 2 ] = fe ; break } while ( 0 ) ; W = r [ J + 4 >> 2 ] | 0 ; if ( ! W ) break ; if ( W >>> 0 < ( r [ 6332 ] | 0 ) >>> 0 ) ae ( ) ; else { r [ fe + 20 >> 2 ] = W ; r [ W + 24 >> 2 ] = fe ; break } } else { W = r [ n + 8 >> 2 ] | 0 ; Y = r [ n + 12 >> 2 ] | 0 ; q = 25352 + ( Q << 1 << 2 ) | 0 ; do if ( ( W | 0 ) != ( q | 0 ) ) { if ( W >>> 0 < pe >>> 0 ) ae ( ) ; if ( ( r [ W + 12 >> 2 ] | 0 ) == ( n | 0 ) ) break ; ae ( ) } while ( 0 ) ; if ( ( Y | 0 ) == ( W | 0 ) ) { r [ 6328 ] = r [ 6328 ] & ~ ( 1 << Q ) ; break } do if ( ( Y | 0 ) == ( q | 0 ) ) ge = Y + 8 | 0 ; else { if ( Y >>> 0 < pe >>> 0 ) ae ( ) ; J = Y + 8 | 0 ; if ( ( r [ J >> 2 ] | 0 ) == ( n | 0 ) ) { ge = J ; break } ae ( ) } while ( 0 ) ; r [ W + 12 >> 2 ] = Y ; r [ ge >> 2 ] = W } while ( 0 ) ; _e = n + Z | 0 ; ve = Z + z | 0 } else { _e = n ; ve = z } Q = _e + 4 | 0 ; r [ Q >> 2 ] = r [ Q >> 2 ] & - 2 ; r [ se + 4 >> 2 ] = ve | 1 ; r [ se + ve >> 2 ] = ve ; Q = ve >>> 3 ; if ( ve >>> 0 < 256 ) { te = 25352 + ( Q << 1 << 2 ) | 0 ; X = r [ 6328 ] | 0 ; q = 1 << Q ; do if ( ! ( X & q ) ) { r [ 6328 ] = X | q ; ye = te + 8 | 0 ; be = te } else { Q = te + 8 | 0 ; J = r [ Q >> 2 ] | 0 ; if ( J >>> 0 >= ( r [ 6332 ] | 0 ) >>> 0 ) { ye = Q ; be = J ; break } ae ( ) } while ( 0 ) ; r [ ye >> 2 ] = se ; r [ be + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = be ; r [ se + 12 >> 2 ] = te ; break } q = ve >>> 8 ; do if ( ! q ) we = 0 ; else { if ( ve >>> 0 > 16777215 ) { we = 31 ; break } X = ( q + 1048320 | 0 ) >>> 16 & 8 ; Z = q << X ; J = ( Z + 520192 | 0 ) >>> 16 & 4 ; Q = Z << J ; Z = ( Q + 245760 | 0 ) >>> 16 & 2 ; _ = 14 - ( J | X | Z ) + ( Q << Z >>> 15 ) | 0 ; we = ve >>> ( _ + 7 | 0 ) & 1 | _ << 1 } while ( 0 ) ; q = 25616 + ( we << 2 ) | 0 ; r [ se + 28 >> 2 ] = we ; te = se + 16 | 0 ; r [ te + 4 >> 2 ] = 0 ; r [ te >> 2 ] = 0 ; te = r [ 6329 ] | 0 ; _ = 1 << we ; if ( ! ( te & _ ) ) { r [ 6329 ] = te | _ ; r [ q >> 2 ] = se ; r [ se + 24 >> 2 ] = q ; r [ se + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = se ; break } _ = ve << ( ( we | 0 ) == 31 ? 0 : 25 - ( we >>> 1 ) | 0 ) ; te = r [ q >> 2 ] | 0 ; while ( 1 ) { if ( ( r [ te + 4 >> 2 ] & - 8 | 0 ) == ( ve | 0 ) ) { N = 265 ; break } ke = te + 16 + ( _ >>> 31 << 2 ) | 0 ; q = r [ ke >> 2 ] | 0 ; if ( ! q ) { N = 262 ; break } else { _ = _ << 1 ; te = q } } if ( ( N | 0 ) == 262 ) if ( ke >>> 0 < ( r [ 6332 ] | 0 ) >>> 0 ) ae ( ) ; else { r [ ke >> 2 ] = se ; r [ se + 24 >> 2 ] = te ; r [ se + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = se ; break } else if ( ( N | 0 ) == 265 ) { _ = te + 8 | 0 ; q = r [ _ >> 2 ] | 0 ; Z = r [ 6332 ] | 0 ; if ( q >>> 0 >= Z >>> 0 & te >>> 0 >= Z >>> 0 ) { r [ q + 12 >> 2 ] = se ; r [ _ >> 2 ] = se ; r [ se + 8 >> 2 ] = q ; r [ se + 12 >> 2 ] = te ; r [ se + 24 >> 2 ] = 0 ; break } else ae ( ) } } else { q = ( r [ 6331 ] | 0 ) + z | 0 ; r [ 6331 ] = q ; r [ 6334 ] = se ; r [ se + 4 >> 2 ] = q | 1 } while ( 0 ) ; g = ne + 8 | 0 ; m = t ; return g | 0 } se = 25760 ; while ( 1 ) { z = r [ se >> 2 ] | 0 ; if ( z >>> 0 <= le >>> 0 ? ( Me = z + ( r [ se + 4 >> 2 ] | 0 ) | 0 , Me >>> 0 > le >>> 0 ) : 0 ) break ; se = r [ se + 8 >> 2 ] | 0 } se = Me + - 47 | 0 ; ne = se + 8 | 0 ; z = se + ( ( ne & 7 | 0 ) == 0 ? 0 : 0 - ne & 7 ) | 0 ; ne = le + 16 | 0 ; se = z >>> 0 < ne >>> 0 ? le : z ; z = se + 8 | 0 ; n = ie + 8 | 0 ; ee = ( n & 7 | 0 ) == 0 ? 0 : 0 - n & 7 ; n = ie + ee | 0 ; oe = re + - 40 - ee | 0 ; r [ 6334 ] = n ; r [ 6331 ] = oe ; r [ n + 4 >> 2 ] = oe | 1 ; r [ n + oe + 4 >> 2 ] = 40 ; r [ 6335 ] = r [ 6450 ] ; oe = se + 4 | 0 ; r [ oe >> 2 ] = 27 ; r [ z >> 2 ] = r [ 6440 ] ; r [ z + 4 >> 2 ] = r [ 6441 ] ; r [ z + 8 >> 2 ] = r [ 6442 ] ; r [ z + 12 >> 2 ] = r [ 6443 ] ; r [ 6440 ] = ie ; r [ 6441 ] = re ; r [ 6443 ] = 0 ; r [ 6442 ] = z ; z = se + 24 | 0 ; do { n = z ; z = z + 4 | 0 ; r [ z >> 2 ] = 7 } while ( ( n + 8 | 0 ) >>> 0 < Me >>> 0 ) ; if ( ( se | 0 ) != ( le | 0 ) ) { z = se - le | 0 ; r [ oe >> 2 ] = r [ oe >> 2 ] & - 2 ; r [ le + 4 >> 2 ] = z | 1 ; r [ se >> 2 ] = z ; n = z >>> 3 ; if ( z >>> 0 < 256 ) { ee = 25352 + ( n << 1 << 2 ) | 0 ; q = r [ 6328 ] | 0 ; _ = 1 << n ; if ( q & _ ) { n = ee + 8 | 0 ; Z = r [ n >> 2 ] | 0 ; if ( Z >>> 0 < ( r [ 6332 ] | 0 ) >>> 0 ) ae ( ) ; else { Se = n ; Ae = Z } } else { r [ 6328 ] = q | _ ; Se = ee + 8 | 0 ; Ae = ee } r [ Se >> 2 ] = le ; r [ Ae + 12 >> 2 ] = le ; r [ le + 8 >> 2 ] = Ae ; r [ le + 12 >> 2 ] = ee ; break }
return t . open ( "GET" , e , ! 1 ) , t . responseType = "arraybuffer" , t . send ( null ) , t . response } ) , Module . readAsync = function ( e , t , n ) { var i = new XMLHttpRequest ; i . open ( "GET" , e , ! 0 ) , i . responseType = "arraybuffer" , i . onload = function ( ) { 200 == i . status || 0 == i . status && i . response ? t ( i . response ) : n ( ) } , i . onerror = n , i . send ( null ) } , "undefined" != typeof arguments && ( Module . arguments = arguments ) , "undefined" != typeof console ) Module . print || ( Module . print = function ( e ) { console . log ( e ) } ) , Module . printErr || ( Module . printErr = function ( e ) { console . warn ( e ) } ) ; else { var TRY _USE _DUMP = ! 1 ; Module . print || ( Module . print = TRY _USE _DUMP && "undefined" != typeof dump ? function ( e ) { dump ( e ) } : function ( e ) { } ) } ENVIRONMENT _IS _WORKER && ( Module . load = importScripts ) , "undefined" == typeof Module . setWindowTitle && ( Module . setWindowTitle = function ( e ) { document . title = e } ) } ! Module . load && Module . read && ( Module . load = function ( e ) { globalEval ( Module . read ( e ) ) } ) , Module . print || ( Module . print = function ( ) { } ) , Module . printErr || ( Module . printErr = Module . print ) , Module . arguments || ( Module . arguments = [ ] ) , Module . thisProgram || ( Module . thisProgram = "./this.program" ) , Module . quit || ( Module . quit = function ( e , t ) { throw t } ) , Module . print = Module . print , Module . printErr = Module . printErr , Module . preRun = [ ] , Module . postRun = [ ] ; for ( var key in moduleOverrides ) moduleOverrides . hasOwnProperty ( key ) && ( Module [ key ] = moduleOverrides [ key ] ) ; moduleOverrides = void 0 ; var Runtime = { setTempRet0 : function ( e ) { return tempRet0 = e , e } , getTempRet0 : function ( ) { return tempRet0 } , stackSave : function ( ) { return STACKTOP } , stackRestore : function ( e ) { STACKTOP = e } , getNativeTypeSize : function ( e ) { switch ( e ) { case "i1" : case "i8" : return 1 ; case "i16" : return 2 ; case "i32" : return 4 ; case "i64" : return 8 ; case "float" : return 4 ; case "double" : return 8 ; default : if ( "*" === e [ e . length - 1 ] ) return Runtime . QUANTUM _SIZE ; if ( "i" === e [ 0 ] ) { var t = parseInt ( e . substr ( 1 ) ) ; return assert ( t % 8 === 0 ) , t / 8 } return 0 } } , getNativeFieldSize : function ( e ) { return Math . max ( Runtime . getNativeTypeSize ( e ) , Runtime . QUANTUM _SIZE ) } , STACK _ALIGN : 16 , prepVararg : function ( e , t ) { return "double" === t || "i64" === t ? 7 & e && ( assert ( 4 === ( 7 & e ) ) , e += 4 ) : assert ( 0 === ( 3 & e ) ) , e } , getAlignSize : function ( e , t , n ) { return n || "i64" != e && "double" != e ? e ? Math . min ( t || ( e ? Runtime . getNativeFieldSize ( e ) : 0 ) , Runtime . QUANTUM _SIZE ) : Math . min ( t , 8 ) : 8 } , dynCall : function ( e , t , n ) { return n && n . length ? Module [ "dynCall_" + e ] . apply ( null , [ t ] . concat ( n ) ) : Module [ "dynCall_" + e ] . call ( null , t ) } , functionPointers : [ ] , addFunction : function ( e ) { for ( var t = 0 ; t < Runtime . functionPointers . length ; t ++ ) if ( ! Runtime . functionPointers [ t ] ) return Runtime . functionPointers [ t ] = e , 2 * ( 1 + t ) ; throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS." } , removeFunction : function ( e ) { Runtime . functionPointers [ ( e - 2 ) / 2 ] = null } , warnOnce : function ( e ) { Runtime . warnOnce . shown || ( Runtime . warnOnce . shown = { } ) , Runtime . warnOnce . shown [ e ] || ( Runtime . warnOnce . shown [ e ] = 1 , Module . printErr ( e ) ) } , funcWrappers : { } , getFuncWrapper : function ( e , t ) { assert ( t ) , Runtime . funcWrappers [ t ] || ( Runtime . funcWrappers [ t ] = { } ) ; var n = Runtime . funcWrappers [ t ] ; return n [ e ] || ( 1 === t . length ? n [ e ] = function ( ) { return Runtime . dynCall ( t , e ) } : 2 === t . length ? n [ e ] = function ( n ) { return Runtime . dynCall ( t , e , [ n ] ) } : n [ e ] = function ( ) { return Runtime . dynCall ( t , e , Array . prototype . slice . call ( arguments ) ) } ) , n [ e ] } , getCompilerSetting : function ( e ) { throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work" } , stackAlloc : function ( e ) { var t = STACKTOP ; return STACKTOP = STACKTOP + e | 0 , STACKTOP = STACKTOP + 15 & - 16 , t } , staticAlloc : function ( e ) { var t = STATICTOP ; return STATICTOP = STATICTOP + e | 0 , STATICTOP = STATICTOP + 15 & - 16 , t } , dynamicAlloc : function ( e ) { var t = HEAP32 [ DYNAMICTOP _PTR >> 2 ] , n = ( t + e + 15 | 0 ) & - 16 ; if ( HEAP32 [ DYNAMICTOP _PTR >> 2 ] = n , n >= TOTAL _MEMORY ) { var i = enlargeMemory ( ) ; if ( ! i ) return HEAP32 [ DYNAMICTOP _PTR >> 2 ] = t , 0 } return t } , alignMemory : function ( e , t ) { var n = e = Math . ceil ( e / ( t ? t : 16 ) ) * ( t ? t : 16 ) ; return n } , makeBigInt : function ( e , t , n ) { var i = n ? + ( e >>> 0 ) + 4294967296 * + ( t >>> 0 ) : + ( e >>> 0 ) + 4294967296 * + ( 0 | t ) ; return i } , GLOBAL _BASE : 8 , QUANTUM _SIZE : 4 , _ _dummy _ _ : 0 } ; Module . Runtime = Runtime ; var ABORT = 0 , EXITSTATUS = 0 , cwrap , ccall ; ! function ( ) { function parseJSFunc ( e ) { var t = e . toString ( ) . match ( sourceRegex ) . slice ( 1 ) ; return { arguments : t [ 0 ] , body : t [ 1 ] , re
allocate ( [ 12 , 72 , 201 , 60 , 205 , 188 , 203 , 60 , 77 , 53 , 206 , 60 , 140 , 177 , 208 , 60 , 137 , 49 , 211 , 60 , 69 , 181 , 213 , 60 , 189 , 60 , 216 , 60 , 243 , 199 , 218 , 60 , 230 , 86 , 221 , 60 , 149 , 233 , 223 , 60 , 0 , 128 , 226 , 60 , 39 , 26 , 229 , 60 , 8 , 184 , 231 , 60 , 164 , 89 , 234 , 60 , 250 , 254 , 236 , 60 , 9 , 168 , 239 , 60 , 210 , 84 , 242 , 60 , 83 , 5 , 245 , 60 , 141 , 185 , 247 , 60 , 126 , 113 , 250 , 60 , 39 , 45 , 253 , 60 , 134 , 236 , 255 , 60 , 206 , 87 , 1 , 61 , 52 , 187 , 2 , 61 , 117 , 32 , 4 , 61 , 144 , 135 , 5 , 61 , 133 , 240 , 6 , 61 , 84 , 91 , 8 , 61 , 253 , 199 , 9 , 61 , 128 , 54 , 11 , 61 , 219 , 166 , 12 , 61 , 16 , 25 , 14 , 61 , 29 , 141 , 15 , 61 , 3 , 3 , 17 , 61 , 193 , 122 , 18 , 61 , 87 , 244 , 19 , 61 , 197 , 111 , 21 , 61 , 10 , 237 , 22 , 61 , 39 , 108 , 24 , 61 , 26 , 237 , 25 , 61 , 228 , 111 , 27 , 61 , 132 , 244 , 28 , 61 , 251 , 122 , 30 , 61 , 71 , 3 , 32 , 61 , 105 , 141 , 33 , 61 , 96 , 25 , 35 , 61 , 45 , 167 , 36 , 61 , 206 , 54 , 38 , 61 , 67 , 200 , 39 , 61 , 141 , 91 , 41 , 61 , 171 , 240 , 42 , 61 , 156 , 135 , 44 , 61 , 96 , 32 , 46 , 61 , 248 , 186 , 47 , 61 , 99 , 87 , 49 , 61 , 160 , 245 , 50 , 61 , 175 , 149 , 52 , 61 , 144 , 55 , 54 , 61 , 67 , 219 , 55 , 61 , 199 , 128 , 57 , 61 , 28 , 40 , 59 , 61 , 65 , 209 , 60 , 61 , 56 , 124 , 62 , 61 , 254 , 40 , 64 , 61 , 148 , 215 , 65 , 61 , 250 , 135 , 67 , 61 , 47 , 58 , 69 , 61 , 51 , 238 , 70 , 61 , 5 , 164 , 72 , 61 , 166 , 91 , 74 , 61 , 20 , 21 , 76 , 61 , 80 , 208 , 77 , 61 , 90 , 141 , 79 , 61 , 49 , 76 , 81 , 61 , 212 , 12 , 83 , 61 , 68 , 207 , 84 , 61 , 128 , 147 , 86 , 61 , 135 , 89 , 88 , 61 , 90 , 33 , 90 , 61 , 248 , 234 , 91 , 61 , 97 , 182 , 93 , 61 , 148 , 131 , 95 , 61 , 145 , 82 , 97 , 61 , 88 , 35 , 99 , 61 , 232 , 245 , 100 , 61 , 65 , 202 , 102 , 61 , 100 , 160 , 104 , 61 , 78 , 120 , 106 , 61 , 1 , 82 , 108 , 61 , 123 , 45 , 110 , 61 , 188 , 10 , 112 , 61 , 197 , 233 , 113 , 61 , 148 , 202 , 115 , 61 , 41 , 173 , 117 , 61 , 133 , 145 , 119 , 61 , 166 , 119 , 121 , 61 , 140 , 95 , 123 , 61 , 55 , 73 , 125 , 61 , 166 , 52 , 127 , 61 , 237 , 144 , 128 , 61 , 105 , 136 , 129 , 61 , 198 , 128 , 130 , 61 , 5 , 122 , 131 , 61 , 37 , 116 , 132 , 61 , 39 , 111 , 133 , 61 , 9 , 107 , 134 , 61 , 204 , 103 , 135 , 61 , 112 , 101 , 136 , 61 , 244 , 99 , 137 , 61 , 88 , 99 , 138 , 61 , 157 , 99 , 139 , 61 , 193 , 100 , 140 , 61 , 196 , 102 , 141 , 61 , 167 , 105 , 142 , 61 , 106 , 109 , 143 , 61 , 11 , 114 , 144 , 61 , 139 , 119 , 145 , 61 , 234 , 125 , 146 , 61 , 40 , 133 , 147 , 61 , 67 , 141 , 148 , 61 , 61 , 150 , 149 , 61 , 20 , 160 , 150 , 61 , 201 , 170 , 151 , 61 , 92 , 182 , 152 , 61 , 203 , 194 , 153 , 61 , 24 , 208 , 154 , 61 , 66 , 222 , 155 , 61 , 72 , 237 , 156 , 61 , 42 , 253 , 157 , 61 , 233 , 13 , 159 , 61 , 132 , 31 , 160 , 61 , 250 , 49 , 161 , 61 , 76 , 69 , 162 , 61 , 122 , 89 , 163 , 61 , 130 , 110 , 164 , 61 , 101 , 132 , 165 , 61 , 35 , 155 , 166 , 61 , 188 , 178 , 167 , 61 , 47 , 203 , 168 , 61 , 124 , 228 , 169 , 61 , 162 , 254 , 170 , 61 , 163 , 25 , 172 , 61 , 124 , 53 , 173 , 61 , 47 , 82 , 174 , 61 , 187 , 111 , 175 , 61 , 31 , 142 , 176 , 61 , 92 , 173 , 177 , 61 , 113 , 205 , 178 , 61 , 94 , 238 , 179 , 61 , 35 , 16 , 181 , 61 , 192 , 50 , 182 , 61 , 52 , 86 , 183 , 61 , 127 , 122 , 184 , 61 , 160 , 159 , 185 , 61 , 153 , 197 , 186 , 61 , 104 , 236 , 187 , 61 , 13 , 20 , 189 , 61 , 136 , 60 , 190 , 61 , 217 , 101 , 191 , 61 , 255 , 143 , 192 , 61 , 250 , 186 , 193 , 61 , 202 , 230 , 194 , 61 , 111 , 19 , 196 , 61 , 233 , 64 , 197 , 61 , 55 , 111 , 198 , 61 , 89 , 158 , 199 , 61 , 78 , 206 , 200 , 61 , 23 , 255 , 201 , 61 , 179 , 48 , 203 , 61 , 35 , 99 , 204 , 61 , 101 , 150 , 205 , 61 , 121 , 202 , 206 , 61 , 96 , 255 , 207 , 61 , 25 , 53 , 209 , 61 , 164 , 107 , 210 , 61 , 0 , 163 , 211 , 61 , 45 , 219 , 212 , 61 , 44 , 20 , 214 , 61 , 251 , 77 , 215 , 61 , 154 , 136 , 216 , 61 , 10 , 196 , 217 , 61 , 74 , 0 , 219 , 61 , 89 , 61 , 220 , 61 , 56 , 123 , 221 , 61 , 230 , 185 , 222 , 61 , 99 , 249 , 223 , 61 , 174 , 57 , 225 , 61 , 200 , 122 , 226 , 61 , 176 , 188 , 227 , 61 , 102 , 255 , 228 , 61 , 233 , 66 , 230 , 61 , 58 , 135 , 231 , 61 , 88 , 204 , 232 , 61 , 66 , 18 , 234 , 61 , 249 , 88 , 235 , 61 , 124 , 160 , 236 , 61 , 203 , 232 , 237 , 61 , 230 , 49 , 239 , 61 , 204 , 123 , 240 , 61 , 125 , 198 , 241 , 61 , 249 , 17 , 243 , 61 , 63 , 94 , 244 , 61 , 79 , 171 , 245 , 61 , 42 , 249 , 246 , 61 , 206 , 71 , 248 , 61 , 60 , 151 , 249 , 61 , 114 , 231 , 250 , 61 , 114 , 56 , 252 , 61 , 58 , 138 , 253 , 61 , 202 , 220 , 254 , 61 , 17 , 24 , 0 , 62 , 33 , 194 , 0 , 62 , 149 , 108 , 1 , 62 , 108 , 23 , 2 , 62 , 166 , 194 , 2 , 62 , 68 , 110 , 3 , 62 , 69 , 26 , 4 , 62 , 168 , 198 , 4 , 62 , 111 , 115 , 5 , 62 , 152 , 32 , 6 , 62 , 35 , 206 , 6 , 62 , 17 , 124 , 7 , 62 , 98 , 42 , 8 , 62 , 20 , 217 , 8 , 62 , 40 , 136 , 9 , 62 , 157 , 55 , 10 , 62 , 117 , 231 , 10 , 62 , 173 , 151 , 11 , 62 , 71 , 72 , 12 , 62 , 66 , 249 , 12 , 62 , 158 , 170 , 13 , 62 , 91 , 92 , 14 , 62 , 120 , 14 , 15 , 62 , 246 , 192 , 15 , 62 , 213 , 115 , 16 , 62 , 19 , 39 , 17 , 62 , 177 , 218 , 17 , 62 , 175 , 142 , 18 , 62 , 13 , 67 , 19 , 62 , 202 , 247 , 19 , 62 , 231 , 172 , 20 , 62 , 99 , 98 , 21 , 62 , 62 , 24 , 22 , 62 , 120 , 206 , 22 , 62 , 16 , 133 , 23 , 62 , 7 , 60 , 24 , 62 , 92 , 243 , 24 , 62 , 16 , 171 , 25 , 62 , 33 , 99 , 26 , 62 , 145 , 27 , 27 , 62 , 94 , 212 , 27 , 62 , 137 , 141 , 28 , 62 , 17 , 71 , 29 , 62 , 246 , 0 , 30 , 62 , 56 , 187 , 30 , 62 , 215 , 117 , 31 , 62 , 211 , 48 , 32 , 62 , 43 , 236 , 32 , 62 , 224 , 167 , 33 , 62 , 241 , 99 , 34 , 62 , 93 , 32 , 35 , 62 , 38 , 221 , 35 , 62 , 74 , 154 , 36 , 62 , 202 , 87 , 37 , 62 , 165 , 21 , 38 , 62 , 219 , 211 , 38 , 62 , 108 , 146 , 39 , 62 , 88 , 81 , 40 , 62 , 159 , 16 , 41 , 62 , 64 , 208 , 41 , 62 , 59 , 144 , 42 , 62 , 144 , 80 , 43 , 62 , 63 , 17 , 44 , 62 , 72 , 210 , 44 , 62 , 170 , 147 , 45 , 62 , 102 , 85 , 46 , 62 , 122 , 23 , 47 , 62 , 232 , 217 , 47 , 62 , 175 , 156 , 48 , 62 , 206 , 95 , 49 , 62 , 69 , 35 , 50 , 62 , 21 , 231 , 50 , 62 , 61 , 171 , 51 , 62 , 189 , 111 , 52 , 62 , 148 , 52 , 53 , 62 , 195 , 249 , 53 , 62 , 73 , 191 , 54 , 62 , 38 , 133 , 55 , 62 , 91 , 75 , 56 , 62 , 230 , 17 , 57 , 62 , 199 , 216 , 57 , 62 , 255 , 159 , 58 , 62 , 141 , 103 , 59 , 62 , 113 , 47 , 60 , 62 , 171 , 247 , 60 , 62 , 59 , 192 , 61 , 62 , 31 , 137 , 62 , 62 , 89 , 82 , 63 , 62 , 232 , 27 , 64 , 62 , 204 , 229 , 64 , 62 , 5 , 176 , 65 , 62 , 146 , 122
allocate ( [ 103 , 185 , 210 , 61 , 21 , 85 , 211 , 61 , 248 , 240 , 211 , 61 , 14 , 141 , 212 , 61 , 89 , 41 , 213 , 61 , 216 , 197 , 213 , 61 , 140 , 98 , 214 , 61 , 115 , 255 , 214 , 61 , 143 , 156 , 215 , 61 , 223 , 57 , 216 , 61 , 99 , 215 , 216 , 61 , 27 , 117 , 217 , 61 , 7 , 19 , 218 , 61 , 38 , 177 , 218 , 61 , 122 , 79 , 219 , 61 , 2 , 238 , 219 , 61 , 189 , 140 , 220 , 61 , 173 , 43 , 221 , 61 , 208 , 202 , 221 , 61 , 39 , 106 , 222 , 61 , 178 , 9 , 223 , 61 , 112 , 169 , 223 , 61 , 98 , 73 , 224 , 61 , 136 , 233 , 224 , 61 , 226 , 137 , 225 , 61 , 111 , 42 , 226 , 61 , 47 , 203 , 226 , 61 , 35 , 108 , 227 , 61 , 74 , 13 , 228 , 61 , 165 , 174 , 228 , 61 , 52 , 80 , 229 , 61 , 245 , 241 , 229 , 61 , 234 , 147 , 230 , 61 , 19 , 54 , 231 , 61 , 110 , 216 , 231 , 61 , 253 , 122 , 232 , 61 , 191 , 29 , 233 , 61 , 180 , 192 , 233 , 61 , 221 , 99 , 234 , 61 , 56 , 7 , 235 , 61 , 199 , 170 , 235 , 61 , 136 , 78 , 236 , 61 , 125 , 242 , 236 , 61 , 164 , 150 , 237 , 61 , 255 , 58 , 238 , 61 , 140 , 223 , 238 , 61 , 76 , 132 , 239 , 61 , 63 , 41 , 240 , 61 , 101 , 206 , 240 , 61 , 189 , 115 , 241 , 61 , 73 , 25 , 242 , 61 , 7 , 191 , 242 , 61 , 247 , 100 , 243 , 61 , 26 , 11 , 244 , 61 , 112 , 177 , 244 , 61 , 248 , 87 , 245 , 61 , 179 , 254 , 245 , 61 , 160 , 165 , 246 , 61 , 192 , 76 , 247 , 61 , 18 , 244 , 247 , 61 , 151 , 155 , 248 , 61 , 77 , 67 , 249 , 61 , 55 , 235 , 249 , 61 , 82 , 147 , 250 , 61 , 159 , 59 , 251 , 61 , 31 , 228 , 251 , 61 , 209 , 140 , 252 , 61 , 181 , 53 , 253 , 61 , 203 , 222 , 253 , 61 , 19 , 136 , 254 , 61 , 141 , 49 , 255 , 61 , 57 , 219 , 255 , 61 , 140 , 66 , 0 , 62 , 148 , 151 , 0 , 62 , 181 , 236 , 0 , 62 , 238 , 65 , 1 , 62 , 65 , 151 , 1 , 62 , 173 , 236 , 1 , 62 , 49 , 66 , 2 , 62 , 206 , 151 , 2 , 62 , 132 , 237 , 2 , 62 , 83 , 67 , 3 , 62 , 59 , 153 , 3 , 62 , 59 , 239 , 3 , 62 , 84 , 69 , 4 , 62 , 134 , 155 , 4 , 62 , 209 , 241 , 4 , 62 , 52 , 72 , 5 , 62 , 176 , 158 , 5 , 62 , 68 , 245 , 5 , 62 , 242 , 75 , 6 , 62 , 183 , 162 , 6 , 62 , 150 , 249 , 6 , 62 , 141 , 80 , 7 , 62 , 156 , 167 , 7 , 62 , 196 , 254 , 7 , 62 , 5 , 86 , 8 , 62 , 94 , 173 , 8 , 62 , 207 , 4 , 9 , 62 , 89 , 92 , 9 , 62 , 252 , 179 , 9 , 62 , 183 , 11 , 10 , 62 , 138 , 99 , 10 , 62 , 118 , 187 , 10 , 62 , 122 , 19 , 11 , 62 , 150 , 107 , 11 , 62 , 203 , 195 , 11 , 62 , 24 , 28 , 12 , 62 , 125 , 116 , 12 , 62 , 250 , 204 , 12 , 62 , 144 , 37 , 13 , 62 , 62 , 126 , 13 , 62 , 4 , 215 , 13 , 62 , 227 , 47 , 14 , 62 , 217 , 136 , 14 , 62 , 232 , 225 , 14 , 62 , 15 , 59 , 15 , 62 , 78 , 148 , 15 , 62 , 165 , 237 , 15 , 62 , 20 , 71 , 16 , 62 , 155 , 160 , 16 , 62 , 58 , 250 , 16 , 62 , 241 , 83 , 17 , 62 , 193 , 173 , 17 , 62 , 168 , 7 , 18 , 62 , 167 , 97 , 18 , 62 , 190 , 187 , 18 , 62 , 237 , 21 , 19 , 62 , 51 , 112 , 19 , 62 , 146 , 202 , 19 , 62 , 9 , 37 , 20 , 62 , 151 , 127 , 20 , 62 , 61 , 218 , 20 , 62 , 251 , 52 , 21 , 62 , 209 , 143 , 21 , 62 , 190 , 234 , 21 , 62 , 195 , 69 , 22 , 62 , 224 , 160 , 22 , 62 , 21 , 252 , 22 , 62 , 97 , 87 , 23 , 62 , 197 , 178 , 23 , 62 , 64 , 14 , 24 , 62 , 211 , 105 , 24 , 62 , 126 , 197 , 24 , 62 , 64 , 33 , 25 , 62 , 26 , 125 , 25 , 62 , 11 , 217 , 25 , 62 , 20 , 53 , 26 , 62 , 52 , 145 , 26 , 62 , 108 , 237 , 26 , 62 , 187 , 73 , 27 , 62 , 34 , 166 , 27 , 62 , 160 , 2 , 28 , 62 , 53 , 95 , 28 , 62 , 226 , 187 , 28 , 62 , 166 , 24 , 29 , 62 , 129 , 117 , 29 , 62 , 116 , 210 , 29 , 62 , 126 , 47 , 30 , 62 , 159 , 140 , 30 , 62 , 215 , 233 , 30 , 62 , 39 , 71 , 31 , 62 , 141 , 164 , 31 , 62 , 11 , 2 , 32 , 62 , 160 , 95 , 32 , 62 , 76 , 189 , 32 , 62 , 16 , 27 , 33 , 62 , 234 , 120 , 33 , 62 , 219 , 214 , 33 , 62 , 228 , 52 , 34 , 62 , 3 , 147 , 34 , 62 , 58 , 241 , 34 , 62 , 135 , 79 , 35 , 62 , 235 , 173 , 35 , 62 , 103 , 12 , 36 , 62 , 249 , 106 , 36 , 62 , 162 , 201 , 36 , 62 , 98 , 40 , 37 , 62 , 56 , 135 , 37 , 62 , 38 , 230 , 37 , 62 , 42 , 69 , 38 , 62 , 69 , 164 , 38 , 62 , 119 , 3 , 39 , 62 , 192 , 98 , 39 , 62 , 31 , 194 , 39 , 62 , 149 , 33 , 40 , 62 , 33 , 129 , 40 , 62 , 197 , 224 , 40 , 62 , 126 , 64 , 41 , 62 , 79 , 160 , 41 , 62 , 54 , 0 , 42 , 62 , 51 , 96 , 42 , 62 , 72 , 192 , 42 , 62 , 114 , 32 , 43 , 62 , 179 , 128 , 43 , 62 , 11 , 225 , 43 , 62 , 121 , 65 , 44 , 62 , 253 , 161 , 44 , 62 , 152 , 2 , 45 , 62 , 73 , 99 , 45 , 62 , 16 , 196 , 45 , 62 , 238 , 36 , 46 , 62 , 226 , 133 , 46 , 62 , 237 , 230 , 46 , 62 , 13 , 72 , 47 , 62 , 68 , 169 , 47 , 62 , 145 , 10 , 48 , 62 , 245 , 107 , 48 , 62 , 110 , 205 , 48 , 62 , 254 , 46 , 49 , 62 , 163 , 144 , 49 , 62 , 95 , 242 , 49 , 62 , 49 , 84 , 50 , 62 , 25 , 182 , 50 , 62 , 23 , 24 , 51 , 62 , 43 , 122 , 51 , 62 , 85 , 220 , 51 , 62 , 148 , 62 , 52 , 62 , 234 , 160 , 52 , 62 , 86 , 3 , 53 , 62 , 216 , 101 , 53 , 62 , 111 , 200 , 53 , 62 , 28 , 43 , 54 , 62 , 223 , 141 , 54 , 62 , 184 , 240 , 54 , 62 , 167 , 83 , 55 , 62 , 171 , 182 , 55 , 62 , 197 , 25 , 56 , 62 , 245 , 124 , 56 , 62 , 59 , 224 , 56 , 62 , 150 , 67 , 57 , 62 , 7 , 167 , 57 , 62 , 141 , 10 , 58 , 62 , 41 , 110 , 58 , 62 , 219 , 209 , 58 , 62 , 162 , 53 , 59 , 62 , 126 , 153 , 59 , 62 , 112 , 253 , 59 , 62 , 120 , 97 , 60 , 62 , 149 , 197 , 60 , 62 , 199 , 41 , 61 , 62 , 15 , 142 , 61 , 62 , 108 , 242 , 61 , 62 , 222 , 86 , 62 , 62 , 102 , 187 , 62 , 62 , 3 , 32 , 63 , 62 , 181 , 132 , 63 , 62 , 125 , 233 , 63 , 62 , 90 , 78 , 64 , 62 , 75 , 179 , 64 , 62 , 83 , 24 , 65 , 62 , 111 , 125 , 65 , 62 , 160 , 226 , 65 , 62 , 231 , 71 , 66 , 62 , 66 , 173 , 66 , 62 , 179 , 18 , 67 , 62 , 57 , 120 , 67 , 62 , 211 , 221 , 67 , 62 , 131 , 67 , 68 , 62 , 71 , 169 , 68 , 62 , 33 , 15 , 69 , 62 , 15 , 117 , 69 , 62 , 18 , 219 , 69 , 62 , 42 , 65 , 70 , 62 , 87 , 167 , 70 , 62 , 153 , 13 , 71 , 62 , 240 , 115 , 71 , 62 , 91 , 218 , 71 , 62 , 219 , 64 , 72 , 62 , 111 , 167 , 72 , 62 , 25 , 14 , 73 , 62 , 215 , 116 , 73 , 62 , 169 , 219 , 73 , 62 , 144 , 66 , 74 , 62 , 140 , 169 , 74 , 62 , 157 , 16 , 75 , 62 , 193 , 119 , 75 , 62 , 251 , 222 , 75 , 62 , 73 , 70 , 76 , 62 , 171 , 173 , 76 , 62 , 34 , 21 , 77 , 62 , 173 , 124 , 77 , 62 , 76 , 228 , 77 , 62 , 0 , 76 , 78 , 62 , 200 , 179 , 78 , 62 , 164 , 27 , 79 , 62 , 149 , 131 , 79 , 62 , 154 , 235 , 79 , 62 , 179 , 83 , 80 , 62 , 225 , 187 , 80 , 62 , 34 , 36 , 81 , 62 , 120 , 140 , 81 , 62 , 225 , 244 , 81 , 62 , 95 , 93 , 82 , 62 , 241 , 197 , 82 , 62 , 151 , 46 , 83 , 62 , 81 , 151 , 83 , 62 , 31 , 0 , 84 , 62 , 1 , 105 , 84 , 62 , 247 , 209 , 84 , 62 , 0 , 59 , 85 , 62 , 30 , 164 , 85 , 62 , 79 , 13 , 86 , 62 , 149 , 118 , 86 , 62 , 238 , 223 , 86 , 62 , 91 , 73 , 87 , 62 , 219 , 178 , 87 , 62 , 112 , 28 , 88 ,
allocate ( [ 150 , 134 , 124 , 63 , 142 , 138 , 124 , 63 , 130 , 142 , 124 , 63 , 116 , 146 , 124 , 63 , 98 , 150 , 124 , 63 , 77 , 154 , 124 , 63 , 52 , 158 , 124 , 63 , 24 , 162 , 124 , 63 , 249 , 165 , 124 , 63 , 215 , 169 , 124 , 63 , 178 , 173 , 124 , 63 , 137 , 177 , 124 , 63 , 94 , 181 , 124 , 63 , 47 , 185 , 124 , 63 , 253 , 188 , 124 , 63 , 199 , 192 , 124 , 63 , 143 , 196 , 124 , 63 , 83 , 200 , 124 , 63 , 20 , 204 , 124 , 63 , 211 , 207 , 124 , 63 , 141 , 211 , 124 , 63 , 69 , 215 , 124 , 63 , 250 , 218 , 124 , 63 , 171 , 222 , 124 , 63 , 90 , 226 , 124 , 63 , 5 , 230 , 124 , 63 , 173 , 233 , 124 , 63 , 82 , 237 , 124 , 63 , 244 , 240 , 124 , 63 , 147 , 244 , 124 , 63 , 46 , 248 , 124 , 63 , 199 , 251 , 124 , 63 , 93 , 255 , 124 , 63 , 239 , 2 , 125 , 63 , 127 , 6 , 125 , 63 , 11 , 10 , 125 , 63 , 148 , 13 , 125 , 63 , 27 , 17 , 125 , 63 , 158 , 20 , 125 , 63 , 30 , 24 , 125 , 63 , 155 , 27 , 125 , 63 , 21 , 31 , 125 , 63 , 140 , 34 , 125 , 63 , 0 , 38 , 125 , 63 , 114 , 41 , 125 , 63 , 224 , 44 , 125 , 63 , 75 , 48 , 125 , 63 , 179 , 51 , 125 , 63 , 24 , 55 , 125 , 63 , 122 , 58 , 125 , 63 , 217 , 61 , 125 , 63 , 54 , 65 , 125 , 63 , 143 , 68 , 125 , 63 , 229 , 71 , 125 , 63 , 56 , 75 , 125 , 63 , 137 , 78 , 125 , 63 , 214 , 81 , 125 , 63 , 33 , 85 , 125 , 63 , 104 , 88 , 125 , 63 , 173 , 91 , 125 , 63 , 239 , 94 , 125 , 63 , 46 , 98 , 125 , 63 , 106 , 101 , 125 , 63 , 163 , 104 , 125 , 63 , 217 , 107 , 125 , 63 , 12 , 111 , 125 , 63 , 61 , 114 , 125 , 63 , 106 , 117 , 125 , 63 , 149 , 120 , 125 , 63 , 189 , 123 , 125 , 63 , 226 , 126 , 125 , 63 , 4 , 130 , 125 , 63 , 36 , 133 , 125 , 63 , 64 , 136 , 125 , 63 , 90 , 139 , 125 , 63 , 112 , 142 , 125 , 63 , 133 , 145 , 125 , 63 , 150 , 148 , 125 , 63 , 164 , 151 , 125 , 63 , 176 , 154 , 125 , 63 , 185 , 157 , 125 , 63 , 191 , 160 , 125 , 63 , 194 , 163 , 125 , 63 , 194 , 166 , 125 , 63 , 192 , 169 , 125 , 63 , 187 , 172 , 125 , 63 , 179 , 175 , 125 , 63 , 168 , 178 , 125 , 63 , 155 , 181 , 125 , 63 , 139 , 184 , 125 , 63 , 120 , 187 , 125 , 63 , 99 , 190 , 125 , 63 , 74 , 193 , 125 , 63 , 48 , 196 , 125 , 63 , 18 , 199 , 125 , 63 , 241 , 201 , 125 , 63 , 206 , 204 , 125 , 63 , 169 , 207 , 125 , 63 , 128 , 210 , 125 , 63 , 85 , 213 , 125 , 63 , 39 , 216 , 125 , 63 , 247 , 218 , 125 , 63 , 196 , 221 , 125 , 63 , 142 , 224 , 125 , 63 , 85 , 227 , 125 , 63 , 26 , 230 , 125 , 63 , 220 , 232 , 125 , 63 , 156 , 235 , 125 , 63 , 89 , 238 , 125 , 63 , 19 , 241 , 125 , 63 , 203 , 243 , 125 , 63 , 128 , 246 , 125 , 63 , 51 , 249 , 125 , 63 , 227 , 251 , 125 , 63 , 144 , 254 , 125 , 63 , 59 , 1 , 126 , 63 , 227 , 3 , 126 , 63 , 137 , 6 , 126 , 63 , 44 , 9 , 126 , 63 , 204 , 11 , 126 , 63 , 106 , 14 , 126 , 63 , 6 , 17 , 126 , 63 , 158 , 19 , 126 , 63 , 53 , 22 , 126 , 63 , 200 , 24 , 126 , 63 , 90 , 27 , 126 , 63 , 232 , 29 , 126 , 63 , 116 , 32 , 126 , 63 , 254 , 34 , 126 , 63 , 133 , 37 , 126 , 63 , 10 , 40 , 126 , 63 , 140 , 42 , 126 , 63 , 12 , 45 , 126 , 63 , 137 , 47 , 126 , 63 , 4 , 50 , 126 , 63 , 124 , 52 , 126 , 63 , 242 , 54 , 126 , 63 , 101 , 57 , 126 , 63 , 214 , 59 , 126 , 63 , 68 , 62 , 126 , 63 , 176 , 64 , 126 , 63 , 26 , 67 , 126 , 63 , 129 , 69 , 126 , 63 , 230 , 71 , 126 , 63 , 72 , 74 , 126 , 63 , 168 , 76 , 126 , 63 , 5 , 79 , 126 , 63 , 96 , 81 , 126 , 63 , 185 , 83 , 126 , 63 , 15 , 86 , 126 , 63 , 99 , 88 , 126 , 63 , 181 , 90 , 126 , 63 , 4 , 93 , 126 , 63 , 81 , 95 , 126 , 63 , 155 , 97 , 126 , 63 , 227 , 99 , 126 , 63 , 41 , 102 , 126 , 63 , 108 , 104 , 126 , 63 , 173 , 106 , 126 , 63 , 236 , 108 , 126 , 63 , 40 , 111 , 126 , 63 , 98 , 113 , 126 , 63 , 154 , 115 , 126 , 63 , 208 , 117 , 126 , 63 , 3 , 120 , 126 , 63 , 51 , 122 , 126 , 63 , 98 , 124 , 126 , 63 , 142 , 126 , 126 , 63 , 184 , 128 , 126 , 63 , 224 , 130 , 126 , 63 , 5 , 133 , 126 , 63 , 40 , 135 , 126 , 63 , 73 , 137 , 126 , 63 , 104 , 139 , 126 , 63 , 132 , 141 , 126 , 63 , 159 , 143 , 126 , 63 , 183 , 145 , 126 , 63 , 204 , 147 , 126 , 63 , 224 , 149 , 126 , 63 , 241 , 151 , 126 , 63 , 0 , 154 , 126 , 63 , 13 , 156 , 126 , 63 , 24 , 158 , 126 , 63 , 32 , 160 , 126 , 63 , 38 , 162 , 126 , 63 , 42 , 164 , 126 , 63 , 44 , 166 , 126 , 63 , 44 , 168 , 126 , 63 , 41 , 170 , 126 , 63 , 37 , 172 , 126 , 63 , 30 , 174 , 126 , 63 , 21 , 176 , 126 , 63 , 10 , 178 , 126 , 63 , 253 , 179 , 126 , 63 , 238 , 181 , 126 , 63 , 220 , 183 , 126 , 63 , 201 , 185 , 126 , 63 , 179 , 187 , 126 , 63 , 155 , 189 , 126 , 63 , 129 , 191 , 126 , 63 , 101 , 193 , 126 , 63 , 71 , 195 , 126 , 63 , 39 , 197 , 126 , 63 , 5 , 199 , 126 , 63 , 224 , 200 , 126 , 63 , 186 , 202 , 126 , 63 , 145 , 204 , 126 , 63 , 103 , 206 , 126 , 63 , 58 , 208 , 126 , 63 , 12 , 210 , 126 , 63 , 219 , 211 , 126 , 63 , 168 , 213 , 126 , 63 , 115 , 215 , 126 , 63 , 61 , 217 , 126 , 63 , 4 , 219 , 126 , 63 , 201 , 220 , 126 , 63 , 140 , 222 , 126 , 63 , 77 , 224 , 126 , 63 , 12 , 226 , 126 , 63 , 202 , 227 , 126 , 63 , 133 , 229 , 126 , 63 , 62 , 231 , 126 , 63 , 245 , 232 , 126 , 63 , 170 , 234 , 126 , 63 , 94 , 236 , 126 , 63 , 15 , 238 , 126 , 63 , 190 , 239 , 126 , 63 , 108 , 241 , 126 , 63 , 23 , 243 , 126 , 63 , 193 , 244 , 126 , 63 , 104 , 246 , 126 , 63 , 14 , 248 , 126 , 63 , 178 , 249 , 126 , 63 , 84 , 251 , 126 , 63 , 243 , 252 , 126 , 63 , 145 , 254 , 126 , 63 , 46 , 0 , 127 , 63 , 200 , 1 , 127 , 63 , 96 , 3 , 127 , 63 , 247 , 4 , 127 , 63 , 139 , 6 , 127 , 63 , 30 , 8 , 127 , 63 , 175 , 9 , 127 , 63 , 62 , 11 , 127 , 63 , 203 , 12 , 127 , 63 , 86 , 14 , 127 , 63 , 223 , 15 , 127 , 63 , 103 , 17 , 127 , 63 , 237 , 18 , 127 , 63 , 112 , 20 , 127 , 63 , 242 , 21 , 127 , 63 , 115 , 23 , 127 , 63 , 241 , 24 , 127 , 63 , 110 , 26 , 127 , 63 , 233 , 27 , 127 , 63 , 98 , 29 , 127 , 63 , 217 , 30 , 127 , 63 , 78 , 32 , 127 , 63 , 194 , 33 , 127 , 63 , 52 , 35 , 127 , 63 , 164 , 36 , 127 , 63 , 18 , 38 , 127 , 63 , 127 , 39 , 127 , 63 , 234 , 40 , 127 , 63 , 83 , 42 , 127 , 63 , 186 , 43 , 127 , 63 , 32 , 45 , 127 , 63 , 131 , 46 , 127 , 63 , 230 , 47 , 127 , 63 , 70 , 49 , 127 , 63 , 165 , 50 , 127 , 63 , 2 , 52 , 127 , 63 , 93 , 53 , 127 , 63 , 182 , 54 , 127 , 63 , 14 , 56 , 127 , 63 , 100 , 57 , 127 , 63 , 185 , 58 , 127 , 63 , 12 , 60 , 127 , 63 , 93 , 61 , 127 , 63 , 172 , 62 , 127 , 63 , 250 , 63 , 127 , 63 , 70 , 65 , 127 , 63 , 145 , 66 , 127 , 63 , 217 , 67 , 127 , 63 , 33 , 69 , 127 , 63 , 102 , 70 , 127 , 63 , 170 , 71 , 127 , 63 , 236 , 72 , 127 , 63 , 45 , 74 , 127 , 63 , 108 , 75 , 127 , 63 , 1
allocate ( [ 0 , 0 , 150 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 172 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 130 , 194 , 0 , 0 , 116 , 194 , 0 , 0 , 92 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 28 , 194 , 0 , 0 , 4 , 194 , 0 , 0 , 32 , 194 , 0 , 0 , 12 , 194 , 0 , 0 , 0 , 194 , 0 , 0 , 24 , 194 , 0 , 0 , 32 , 194 , 0 , 0 , 4 , 194 , 0 , 0 , 12 , 194 , 0 , 0 , 20 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 36 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 48 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 40 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 80 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 92 , 194 , 0 , 0 , 100 , 194 , 0 , 0 , 120 , 194 , 0 , 0 , 128 , 194 , 0 , 0 , 132 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 152 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 164 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 168 , 194 , 0 , 0 , 158 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 234 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 164 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 184 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 224 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 142 , 194 , 0 , 0 , 124 , 194 , 0 , 0 , 128 , 194 , 0 , 0 , 134 , 194 , 0 , 0 , 120 , 194 , 0 , 0 , 128 , 194 , 0 , 0 , 134 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 146 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 168 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 208 , 194 , 0 , 0 , 218 , 194 , 0 , 0 , 228 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 206 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 112 , 194 , 0 , 0 , 124 , 194 , 0 , 0 , 132 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 138 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 164 , 194 , 0 , 0 , 168 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 208 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 216 , 194 , 0 , 0 , 204 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 112 , 194 , 0 , 0 , 76 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 64 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 44 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 60 , 194 , 0 , 0
allocate ( [ 0 , 0 , 190 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 206 , 194 , 0 , 0 , 214 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 220 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 92 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 132 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 142 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 194 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 210 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 220 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 84 , 194 , 0 , 0 , 80 , 194 , 0 , 0 , 36 , 194 , 0 , 0 , 108 , 194 , 0 , 0 , 108 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 124 , 194 , 0 , 0 , 172 , 194 , 0 , 0 , 158 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 206 , 194 , 0 , 0 , 214 , 194 , 0 , 0 , 224 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 220 , 194 , 0 , 0 , 194 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 146 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 32 , 194 , 0 , 0 , 4 , 194 , 0 , 0 , 84 , 194 , 0 , 0 , 116 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 112 , 194 , 0 , 0 , 80 , 194 , 0 , 0 , 134 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 184 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 210 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 226 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 184 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 194 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 230 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 232 , 194 , 0 , 0 , 218 , 194 , 0 , 0 , 204 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 204 , 194 , 0 , 0 , 218 , 194 , 0 , 0 , 232 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 19
} if ( ( g | 0 ) == 29 ) return o | 0 } while ( 0 ) ; if ( ( r [ s >> 2 ] | 0 ) <= 2 ) { o = l ; return o | 0 } g = t + 1032 | 0 ; a = t + 780 | 0 ; t = 2 ; do { i = t + - 2 | 0 ; _ = g + ( i << 2 ) | 0 ; u = r [ _ >> 2 ] | 0 ; f = r [ n + 836 + ( u << 2 ) >> 2 ] | 0 ; v = a + ( i << 2 ) | 0 ; i = r [ v >> 2 ] | 0 ; c = r [ l + ( u << 2 ) >> 2 ] & 32767 ; u = ( r [ l + ( i << 2 ) >> 2 ] & 32767 ) - c | 0 ; m = ( W ( ( u | 0 ) > - 1 ? u : 0 - u | 0 , ( r [ n + 836 + ( t << 2 ) >> 2 ] | 0 ) - f | 0 ) | 0 ) / ( ( r [ n + 836 + ( i << 2 ) >> 2 ] | 0 ) - f | 0 ) | 0 ; f = ( ( u | 0 ) < 0 ? 0 - m | 0 : m ) + c | 0 ; c = ( r [ e >> 2 ] | 0 ) - f | 0 ; m = l + ( t << 2 ) | 0 ; u = r [ m >> 2 ] | 0 ; if ( ! u ) r [ m >> 2 ] = f | 32768 ; else { do if ( ( u | 0 ) < ( ( ( c | 0 ) < ( f | 0 ) ? c : f ) << 1 | 0 ) ) if ( ! ( u & 1 ) ) { w = u >> 1 ; break } else { w = 0 - ( u + 1 >> 1 ) | 0 ; break } else if ( ( c | 0 ) > ( f | 0 ) ) { w = u - f | 0 ; break } else { w = ~ ( u - c ) ; break } while ( 0 ) ; r [ m >> 2 ] = w + f & 32767 ; c = l + ( r [ _ >> 2 ] << 2 ) | 0 ; r [ c >> 2 ] = r [ c >> 2 ] & 32767 ; c = l + ( r [ v >> 2 ] << 2 ) | 0 ; r [ c >> 2 ] = r [ c >> 2 ] & 32767 } t = t + 1 | 0 } while ( ( t | 0 ) < ( r [ s >> 2 ] | 0 ) ) ; o = l ; return o | 0 } function Be ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 ; a = r [ t + 1296 >> 2 ] | 0 ; o = ( r [ ( r [ ( r [ ( r [ e + 64 >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + 28 >> 2 ] | 0 ) + ( r [ e + 28 >> 2 ] << 2 ) >> 2 ] | 0 ) / 2 | 0 ; if ( ! n ) { ai ( i | 0 , 0 , o << 2 | 0 ) | 0 ; s = 0 ; return s | 0 } e = r [ a + 832 >> 2 ] | 0 ; l = W ( e , r [ n >> 2 ] | 0 ) | 0 ; d = ( l | 0 ) < 0 ? 0 : ( l | 0 ) < 255 ? l : 255 ; l = r [ t + 1284 >> 2 ] | 0 ; if ( ( l | 0 ) > 1 ) { u = t + 260 | 0 ; t = 0 ; p = 1 ; f = 0 ; m = d ; while ( 1 ) { h = r [ u + ( p << 2 ) >> 2 ] | 0 ; g = r [ n + ( h << 2 ) >> 2 ] | 0 ; e : do if ( ( g & 32767 | 0 ) == ( g | 0 ) ) { _ = r [ a + 836 + ( h << 2 ) >> 2 ] | 0 ; v = W ( e , g ) | 0 ; y = ( v | 0 ) < 0 ? 0 : ( v | 0 ) < 255 ? v : 255 ; v = y - m | 0 ; b = _ - f | 0 ; w = ( v | 0 ) / ( b | 0 ) | 0 ; k = v >> 31 | 1 ; M = W ( w , b ) | 0 ; S = ( ( v | 0 ) > - 1 ? v : 0 - v | 0 ) - ( ( M | 0 ) > - 1 ? M : 0 - M | 0 ) | 0 ; M = ( o | 0 ) > ( _ | 0 ) ? _ : o ; if ( ( M | 0 ) > ( f | 0 ) ) { A = 0 ; C = f ; T = m ; $ = 8 } else { E = 0 ; I = f ; x = m } while ( 1 ) { if ( ( $ | 0 ) == 8 ) { $ = 0 ; v = i + ( C << 2 ) | 0 ; c [ v >> 2 ] = + c [ v >> 2 ] * + c [ 476 + ( T << 2 ) >> 2 ] ; E = A ; I = C ; x = T } v = I + 1 | 0 ; if ( ( v | 0 ) >= ( M | 0 ) ) { P = _ ; D = _ ; R = y ; break e } O = E + S | 0 ; N = ( O | 0 ) < ( b | 0 ) ; A = O - ( N ? 0 : b ) | 0 ; C = v ; T = x + w + ( N ? 0 : k ) | 0 ; $ = 8 } } else { P = t ; D = f ; R = m } while ( 0 ) ; p = p + 1 | 0 ; if ( ( p | 0 ) >= ( l | 0 ) ) { L = P ; F = R ; break } else { t = P ; f = D ; m = R } } } else { L = 0 ; F = d } if ( ( L | 0 ) >= ( o | 0 ) ) { s = 1 ; return s | 0 } U = + c [ 476 + ( F << 2 ) >> 2 ] ; F = L ; do { L = i + ( F << 2 ) | 0 ; c [ L >> 2 ] = + c [ L >> 2 ] * U ; F = F + 1 | 0 } while ( ( F | 0 ) != ( o | 0 ) ) ; s = 1 ; return s | 0 } function He ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 ; n = t + 7 & - 8 ; t = e + 72 | 0 ; i = r [ t >> 2 ] | 0 ; a = e + 76 | 0 ; o = e + 68 | 0 ; s = r [ o >> 2 ] | 0 ; if ( ( i + n | 0 ) <= ( r [ a >> 2 ] | 0 ) ) { l = s ; c = i ; d = l + c | 0 ; u = c + n | 0 ; r [ t >> 2 ] = u ; return d | 0 } if ( s | 0 ) { p = Yn ( 8 ) | 0 ; f = e + 80 | 0 ; r [ f >> 2 ] = ( r [ f >> 2 ] | 0 ) + i ; i = e + 84 | 0 ; r [ p + 4 >> 2 ] = r [ i >> 2 ] ; r [ p >> 2 ] = s ; r [ i >> 2 ] = p } r [ a >> 2 ] = n ; a = Yn ( n ) | 0 ; r [ o >> 2 ] = a ; r [ t >> 2 ] = 0 ; l = a ; c = 0 ; d = l + c | 0 ; u = c + n | 0 ; r [ t >> 2 ] = u ; return d | 0 } function je ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 ; if ( ( r [ e + 8 >> 2 ] | 0 ) <= 0 ) { n = - 1 ; return n | 0 } i = Ve ( e , t ) | 0 ; if ( ( i | 0 ) <= - 1 ) { n = - 1 ; return n | 0 } n = r [ ( r [ e + 24 >> 2 ] | 0 ) + ( i << 2 ) >> 2 ] | 0 ; return n | 0 } function Ve ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 ; n = r [ e + 40 >> 2 ] | 0 ; a = Ie ( t , r [ e + 36 >> 2 ] | 0 ) | 0 ; do if ( ( a | 0 ) > - 1 ) { o = r [ ( r [ e + 32 >> 2 ] | 0 ) + ( a << 2 ) >> 2 ] | 0 ; if ( ( o | 0 ) < 0 ) { s = ( r [ e + 8 >> 2 ] | 0 ) - ( o & 32767 ) | 0 ; l = o >>> 15 & 32767 ; break } c = o + - 1 | 0 ; xe ( t , i [ ( r [ e + 28 >> 2 ] | 0 ) + c >> 0 ] | 0 ) ; d = c ; return d | 0 } else { s = r [ e + 8 >> 2 ] | 0 ; l = 0 } while ( 0 ) ; a = n ; while ( 1 ) { u = Ie ( t , a ) | 0 ; p = ( u | 0 ) < 0 ; if ( ( a | 0 ) > 1 & p ) a = a + - 1 | 0 ; else break } if ( p ) { d = - 1 ; return d | 0 } p = oi ( u | 0 ) | 0 ; u = p >>> 4 & 252645135 | p << 4 & - 252645136 ; p = u >>> 2 & 858993459 | u << 2 & - 858993460 ; u = p >>> 1 & 1431655765 | p << 1 & - 1431655766 ; p = s - l | 0 ; if ( ( p | 0 ) > 1 ) { n = r [ e + 20 >> 2 ] | 0 ; c = s ; s = l ; o = p ; while ( 1 ) { p = o >>> 1 ; f = ( r [ n + ( p + s << 2 ) >> 2 ] | 0 ) >>> 0 > u >>> 0 ; m = ( f ? 0 : p ) + s | 0 ; c = c - ( f ? p : 0 ) | 0 ; o = c - m | 0 ; if ( ( o | 0 ) <= 1 ) { h = m ; break } else s = m } } else h = l ; l = i [ ( r [ e + 28 >> 2 ] | 0 ) + h >> 0 ] | 0 ; if ( ( l | 0 ) > ( a | 0 ) ) { xe ( t , a ) ; d = - 1 ; return d | 0 } else { xe ( t , l ) ; d = h ; return d | 0 } return 0 } function qe ( e , t ) { e = e | 0 ; t = t | 0 ; return ( r [ r [ e >> 2 ] >> 2 ] | 0 ) - ( r [ r [ t >> 2 ] >> 2 ] | 0 ) | 0 } function ze ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 ; n = r [ e + 28 >> 2 ] | 0 ; e = Yn ( 96 ) | 0 ; i = Pe ( t , 8 ) | 0 ; r [ e >> 2 ] = i ; a = Pe ( t , 16 ) | 0 ; r [ e + 4 >> 2 ] = a ; o = Pe ( t , 16 ) | 0 ; r [ e + 8 >> 2 ] = o ; r [ e + 12 >> 2 ] = Pe ( t , 6 ) | 0 ; r [ e + 16 >> 2 ] = Pe ( t , 8 ) | 0 ; s = Pe ( t , 4 ) | 0 ; l = e + 20 | 0 ; r [ l >> 2 ] = s + 1 ; e : do if ( ( i | 0 ) < 1 ) { if ( ! e ) { c = 0 ; return c | 0 } } else if ( ( a | 0 ) >= 1 ? ! ( ( s | 0 ) < 0 | ( o | 0 ) < 1 ) : 0 ) { if ( ( s | 0 ) <= - 1 ) { c = e ; return c | 0 } d = e + 24 | 0 ; u = n + 24 | 0 ; p = 0 ; while ( 1 ) { f = Pe ( t , 8 ) | 0 ; r [ d + ( p << 2 ) >> 2 ] = f ; if ( ( f | 0 ) < 0 ) break e ; if ( ( f | 0 ) >= ( r [ u >> 2 ] | 0 ) ) break e ; m = r [ n + 1824 + ( f << 2 ) >> 2 ] | 0 ; if ( ! ( r [ m + 12 >> 2 ] | 0 ) ) break e ; p = p + 1 | 0 ; if ( ( r [ m >> 2 ] | 0 ) < 1 ) break e ; if ( ( p | 0 ) >= ( r [ l >> 2 ] | 0 ) ) { c = e ; break } } return c | 0 } while ( 0 ) ; Xn ( e ) ; c = 0 ; return c | 0 } function We ( e , t ) { e = e | 0 ; t = t | 0 ; e = Jn ( 1 , 32 ) | 0 ; r [ e + 4 >> 2 ] = r [ t >> 2 ] ; r [ e >> 2 ] = r [ t + 8 >> 2 ] ; r [ e + 20 >> 2 ] = t ; r [ e + 8 >> 2 ] = Jn ( 2 , 4 ) | 0 ; return e | 0 } function Ge ( e ) { e = e | 0 ; if ( ! e ) return ; Xn ( e ) ; return } function K
r [ ( r [ V >> 2 ] | 0 ) + 8 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , 28086 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 12 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , 37449 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 16 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , 46811 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 20 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , 56173 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 24 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , r [ N + 56 >> 2 ] | 0 , 9362 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 32 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , r [ O + 56 >> 2 ] | 0 , 18724 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 36 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , r [ N + 56 >> 2 ] | 0 , 28086 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 40 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , r [ O + 56 >> 2 ] | 0 , 37449 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 44 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , r [ N + 56 >> 2 ] | 0 , 46811 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 48 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , r [ O + 56 >> 2 ] | 0 , 56173 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 52 >> 2 ] = N } x = x + 1 | 0 ; N = r [ l >> 2 ] | 0 ; if ( ( x | 0 ) >= ( N | 0 ) ) { G = N ; K = S ; break e } } m = t ; return W | 0 } else { G = j ; K = o + 48 | 0 } while ( 0 ) ; c [ h >> 2 ] = H ; h = G << 2 ; G = m ; m = m + ( ( 1 * h | 0 ) + 15 & - 16 ) | 0 ; j = m ; m = m + ( ( 1 * h | 0 ) + 15 & - 16 ) | 0 ; h = ( Pt ( e ) | 0 ) != 0 ; _ = o + 44 | 0 ; R = e + 24 | 0 ; v = e + 32 | 0 ; B = a + 2868 | 0 ; M = o + 52 | 0 ; o = h ? 0 : 7 ; while ( 1 ) { h = r [ n + 12 + ( o << 2 ) >> 2 ] | 0 ; Te ( h , 0 , 1 ) ; Te ( h , b , r [ _ >> 2 ] | 0 ) ; if ( r [ y >> 2 ] | 0 ) { Te ( h , r [ R >> 2 ] | 0 , 1 ) ; Te ( h , r [ v >> 2 ] | 0 , 1 ) } s = r [ l >> 2 ] | 0 ; if ( ( s | 0 ) > 0 ) { S = 0 ; do { r [ d + ( S << 2 ) >> 2 ] = Rt ( h , e , r [ ( r [ K >> 2 ] | 0 ) + ( r [ w + 1028 + ( r [ w + 4 + ( S << 2 ) >> 2 ] << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 , r [ ( r [ f + ( S << 2 ) >> 2 ] | 0 ) + ( o << 2 ) >> 2 ] | 0 , r [ i + ( S << 2 ) >> 2 ] | 0 ) | 0 ; S = S + 1 | 0 ; x = r [ l >> 2 ] | 0 } while ( ( S | 0 ) < ( x | 0 ) ) ; Y = x } else Y = s ; Ot ( o , B , k , w , u , i , d , r [ a + 3240 + ( ( r [ y >> 2 ] | 0 ) * 60 | 0 ) + ( o << 2 ) >> 2 ] | 0 , Y ) ; if ( ( r [ w >> 2 ] | 0 ) > 0 ) { S = 0 ; do { x = r [ w + 1092 + ( S << 2 ) >> 2 ] | 0 ; A = r [ l >> 2 ] | 0 ; if ( ( A | 0 ) > 0 ) { N = A ; A = 0 ; O = 0 ; while ( 1 ) { if ( ( r [ w + 4 + ( O << 2 ) >> 2 ] | 0 ) == ( S | 0 ) ) { r [ j + ( A << 2 ) >> 2 ] = ( r [ d + ( O << 2 ) >> 2 ] | 0 ) != 0 & 1 ; r [ G + ( A << 2 ) >> 2 ] = r [ i + ( O << 2 ) >> 2 ] ; X = r [ l >> 2 ] | 0 ; J = A + 1 | 0 } else { X = N ; J = A } O = O + 1 | 0 ; if ( ( O | 0 ) >= ( X | 0 ) ) { Z = J ; break } else { N = X ; A = J } } } else Z = 0 ; A = a + 1312 + ( x << 2 ) | 0 ; N = Pi [ r [ ( r [ 464 + ( r [ A >> 2 ] << 2 ) >> 2 ] | 0 ) + 20 >> 2 ] & 7 ] ( e , r [ ( r [ M >> 2 ] | 0 ) + ( x << 2 ) >> 2 ] | 0 , G , j , Z ) | 0 ; O = r [ l >> 2 ] | 0 ; if ( ( O | 0 ) > 0 ) { V = 0 ; T = 0 ; while ( 1 ) { if ( ( r [ w + 4 + ( T << 2 ) >> 2 ] | 0 ) == ( S | 0 ) ) { r [ G + ( V << 2 ) >> 2 ] = r [ i + ( T << 2 ) >> 2 ] ; Q = V + 1 | 0 } else Q = V ; T = T + 1 | 0 ; if ( ( T | 0 ) >= ( O | 0 ) ) { ee = Q ; break } else V = Q } } else ee = 0 ; Ii [ r [ ( r [ 464 + ( r [ A >> 2 ] << 2 ) >> 2 ] | 0 ) + 24 >> 2 ] & 3 ] ( h , e , r [ ( r [ M >> 2 ] | 0 ) + ( x << 2 ) >> 2 ] | 0 , G , j , ee , N , S ) | 0 ; S = S + 1 | 0 } while ( ( S | 0 ) < ( r [ w >> 2 ] | 0 ) ) } S = ( Pt ( e ) | 0 ) != 0 ; if ( ( o | 0 ) < ( ( S ? 14 : 7 ) | 0 ) ) o = o + 1 | 0 ; else { W = 0 ; break } } m = t ; return W | 0 } function kt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 ; n = m ; i = r [ e + 64 >> 2 ] | 0 ; a = r [ i + 4 >> 2 ] | 0 ; o = r [ a + 28 >> 2 ] | 0 ; s = r [ i + 104 >> 2 ] | 0 ; i = e + 28 | 0 ; l = r [ o + ( r [ i >> 2 ] << 2 ) >> 2 ] | 0 ; r [ e + 36 >> 2 ] = l ; d = a + 4 | 0 ; a = r [ d >> 2 ] | 0 ; u = a << 2 ; p = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; f = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; h = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; g = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; if ( ( a | 0 ) > 0 ) { u = t + 4 | 0 ; _ = t + 1028 | 0 ; v = s + 48 | 0 ; y = l << 1 & 2147483646 ; b = 0 ; do { w = r [ _ + ( r [ u + ( b << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ; k = xi [ r [ ( r [ 456 + ( r [ o + 800 + ( w << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ) + 20 >> 2 ] & 15 ] ( e , r [ ( r [ v >> 2 ] | 0 ) + ( w << 2 ) >> 2 ] | 0 ) | 0 ; r [ g + ( b << 2 ) >> 2 ] = k ; r [ h + ( b << 2 ) >> 2 ] = ( k | 0 ) != 0 & 1 ; ai ( r [ ( r [ e >> 2 ] | 0 ) + ( b << 2 ) >> 2 ] | 0 , 0 , y | 0 ) | 0 ; b = b + 1 | 0 ; k = r [ d >> 2 ] | 0 } while ( ( b | 0 ) < ( k | 0 ) ) ; M = k } else M = a ; a = t + 1156 | 0 ; b = r [ a >> 2 ] | 0 ; if ( ( b | 0 ) > 0 ) { y = t + 1160 | 0 ; v = t + 2184 | 0 ; u = 0 ; do { _ = h + ( r [ y + ( u << 2 ) >> 2 ] << 2 ) | 0 ; k = h + ( r [ v + ( u << 2 ) >> 2 ] << 2 ) | 0 ; if ( ! ( ( r [ _ >> 2 ] | 0 ) == 0 ? ! ( r [ k >> 2 ] | 0 ) : 0 ) ) { r [ _ >> 2 ] = 1 ; r [ k >> 2 ] = 1 } u = u + 1 | 0 } while ( ( u | 0 ) < ( b | 0 ) ) } if ( ( r [ t >> 2 ] | 0 ) > 0 ) { u = t + 1092 | 0 ; v = s + 52 | 0 ; y = t + 4 | 0 ; k = M ; M = 0 ; while ( 1 ) { if ( ( k | 0 ) > 0 ) { _ = k ; w = 0 ; S = 0 ; while ( 1 ) { if ( ( r [ y + ( S << 2 ) >> 2 ] | 0 ) == ( M | 0 ) ) { r [ f + ( w << 2 ) >> 2 ] = ( r [ h + ( S << 2 ) >> 2 ] | 0 ) != 0 & 1 ; r [ p + ( w << 2 ) >> 2 ] = r [ ( r [ e >> 2 ] | 0 ) + ( S << 2 ) >> 2 ] ; A = r [ d >> 2 ] | 0 ; C = w + 1 | 0 } else { A = _ ; C = w } S = S + 1 | 0 ; if ( ( S | 0 ) >= ( A | 0 ) ) { T = C ; break } else { _ = A ; w = C } } } else T = 0 ; w = r [ u + ( M << 2 ) >> 2 ] | 0 ; Pi [ r [ ( r [ 464 + ( r [ o + 1312 + ( w << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ) + 28 >> 2 ] & 7 ] ( e , r [ ( r [ v >> 2 ] | 0 ) + ( w << 2 ) >> 2 ] | 0 , p , f , T ) | 0 ; w = M + 1 | 0 ; if ( ( w | 0 ) >= ( r [ t >> 2 ] | 0 ) ) break ; k = r [ d >> 2 ] | 0 ; M = w } $ = r [ a >> 2 ] | 0 } else $ = b ; if ( ( $ | 0 ) > 0 ? ( b = r [ e >> 2 ] | 0 , a = t + 1160 | 0 , M = t + 2184 | 0 , k = ( l | 0 ) / 2 | 0 , ( l | 0 ) > 1 ) : 0 ) { l = $ ; do { $ = l ; l = l + - 1 | 0 ; T = r [ b + ( r [ a + ( l << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ; f = r [ b + ( r [ M + ( l << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ; p = 0 ; do { v = T + ( p << 2 ) | 0 ; E = + c [ v >> 2 ] ; u = f + ( p << 2 ) | 0 ;
O = r [ y + ( P << 2 ) >> 2 ] | 0 ; N = r [ b + ( P << 2 ) >> 2 ] | 0 ; if ( T ) { L = 0 ; do { H = F + ( L + C << 2 ) | 0 ; B = + c [ H >> 2 ] ; j = B * B ; V = O + ( L << 2 ) | 0 ; c [ V >> 2 ] = j ; c [ N + ( L << 2 ) >> 2 ] = j ; if ( + c [ H >> 2 ] < 0 ) c [ V >> 2 ] = - + c [ V >> 2 ] ; V = U + ( L << 2 ) | 0 ; j = + c [ V >> 2 ] ; c [ V >> 2 ] = j * j ; L = L + 1 | 0 } while ( ( L | 0 ) < ( I | 0 ) ) ; q = O ; z = N } else { q = O ; z = N } } else G = 20 } else G = 20 ; if ( ( G | 0 ) == 20 ) { G = 0 ; q = r [ y + ( P << 2 ) >> 2 ] | 0 ; z = r [ b + ( P << 2 ) >> 2 ] | 0 } + Nt ( r [ h >> 2 ] | 0 , _ , q , z , U , 0 , C , I , R ) } P = P + 1 | 0 } while ( ( P | 0 ) != ( u | 0 ) ) } P = r [ S >> 2 ] | 0 ; if ( ( P | 0 ) > 0 ) { T = ( I | 0 ) > 0 ; x = l - C | 0 ; L = _ - C | 0 ; F = P ; V = 0 ; while ( 1 ) { H = r [ i + 1160 + ( V << 2 ) >> 2 ] | 0 ; K = r [ i + 2184 + ( V << 2 ) >> 2 ] | 0 ; Y = ( r [ o + ( H << 2 ) >> 2 ] | 0 ) + ( C << 2 ) | 0 ; X = ( r [ o + ( K << 2 ) >> 2 ] | 0 ) + ( C << 2 ) | 0 ; J = r [ y + ( H << 2 ) >> 2 ] | 0 ; Z = r [ y + ( K << 2 ) >> 2 ] | 0 ; Q = r [ b + ( H << 2 ) >> 2 ] | 0 ; ee = r [ b + ( K << 2 ) >> 2 ] | 0 ; te = r [ w + ( H << 2 ) >> 2 ] | 0 ; ne = r [ w + ( K << 2 ) >> 2 ] | 0 ; ie = r [ k + ( H << 2 ) >> 2 ] | 0 ; ae = r [ k + ( K << 2 ) >> 2 ] | 0 ; re = M + ( H << 2 ) | 0 ; H = M + ( K << 2 ) | 0 ; if ( ( r [ re >> 2 ] | 0 ) == 0 ? ( r [ H >> 2 ] | 0 ) == 0 : 0 ) oe = F ; else { r [ H >> 2 ] = 1 ; r [ re >> 2 ] = 1 ; if ( T ) { re = 0 ; do { do if ( ( re | 0 ) < ( x | 0 ) ) { H = ie + ( re << 2 ) | 0 ; K = Z + ( re << 2 ) | 0 ; j = + c [ K >> 2 ] ; se = J + ( re << 2 ) | 0 ; B = + c [ se >> 2 ] ; le = ae + ( re << 2 ) | 0 ; if ( ( r [ H >> 2 ] | 0 ) == 0 ? ( r [ le >> 2 ] | 0 ) == 0 : 0 ) { ce = B + j ; if ( ( re | 0 ) < ( L | 0 ) ) { c [ se >> 2 ] = ce ; c [ Q + ( re << 2 ) >> 2 ] = + D ( + ce ) } else { de = + D ( + j ) + + D ( + B ) ; c [ Q + ( re << 2 ) >> 2 ] = de ; c [ se >> 2 ] = ce < 0 ? - de : de } c [ ee + ( re << 2 ) >> 2 ] = 0 ; c [ K >> 2 ] = 0 ; r [ le >> 2 ] = 1 ; r [ X + ( re << 2 ) >> 2 ] = 0 ; break } c [ se >> 2 ] = + D ( + j ) + + D ( + B ) ; se = Q + ( re << 2 ) | 0 ; c [ se >> 2 ] = + c [ ee + ( re << 2 ) >> 2 ] + + c [ se >> 2 ] ; r [ le >> 2 ] = 1 ; r [ H >> 2 ] = 1 ; H = Y + ( re << 2 ) | 0 ; le = r [ H >> 2 ] | 0 ; se = X + ( re << 2 ) | 0 ; K = r [ se >> 2 ] | 0 ; if ( ( ( ( le | 0 ) > - 1 ? le : 0 - le | 0 ) | 0 ) > ( ( ( K | 0 ) > - 1 ? K : 0 - K | 0 ) | 0 ) ) { ue = ( le | 0 ) > 0 ? le - K | 0 : K - le | 0 ; pe = se } else { r [ se >> 2 ] = ( K | 0 ) > 0 ? le - K | 0 : K - le | 0 ; ue = K ; pe = H } r [ pe >> 2 ] = ue ; K = r [ se >> 2 ] | 0 ; le = r [ H >> 2 ] | 0 ; if ( ( K | 0 ) >= ( ( ( le | 0 ) > - 1 ? le : 0 - le | 0 ) << 1 | 0 ) ) { r [ se >> 2 ] = 0 - K ; r [ H >> 2 ] = 0 - ( r [ H >> 2 ] | 0 ) } } while ( 0 ) ; H = te + ( re << 2 ) | 0 ; K = ne + ( re << 2 ) | 0 ; B = + c [ K >> 2 ] + + c [ H >> 2 ] ; c [ K >> 2 ] = B ; c [ H >> 2 ] = B ; re = re + 1 | 0 } while ( ( re | 0 ) < ( I | 0 ) ) } + Nt ( r [ h >> 2 ] | 0 , _ , J , Q , te , ie , C , I , Y ) ; oe = r [ S >> 2 ] | 0 } V = V + 1 | 0 ; if ( ( V | 0 ) >= ( oe | 0 ) ) { fe = oe ; break } else F = oe } } else fe = P ; C = C + g | 0 } while ( ( f | 0 ) > ( C | 0 ) ) ; me = fe } else me = $ ; if ( ( me | 0 ) > 0 ) { he = me ; ge = 0 } else { m = p ; return } while ( 1 ) { me = s + ( r [ i + 1160 + ( ge << 2 ) >> 2 ] << 2 ) | 0 ; $ = i + 2184 + ( ge << 2 ) | 0 ; if ( ( r [ me >> 2 ] | 0 ) == 0 ? ( r [ s + ( r [ $ >> 2 ] << 2 ) >> 2 ] | 0 ) == 0 : 0 ) _e = he ; else { r [ me >> 2 ] = 1 ; r [ s + ( r [ $ >> 2 ] << 2 ) >> 2 ] = 1 ; _e = r [ S >> 2 ] | 0 } ge = ge + 1 | 0 ; if ( ( ge | 0 ) >= ( _e | 0 ) ) break ; else he = _e } m = p ; return } function Nt ( e , t , n , i , a , o , s , l , u ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; l = l | 0 ; u = u | 0 ; var f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 , D = 0 , O = 0 ; f = m ; h = m ; m = m + ( ( 1 * ( l << 2 ) | 0 ) + 15 & - 16 ) | 0 ; if ( ! ( r [ e + 500 >> 2 ] | 0 ) ) g = l ; else g = ( r [ e + 504 >> 2 ] | 0 ) - s | 0 ; _ = ( g | 0 ) > ( l | 0 ) ? l : g ; e : do if ( ( _ | 0 ) > 0 ) { if ( ! o ) { g = 0 ; while ( 1 ) { v = + c [ n + ( g << 2 ) >> 2 ] < 0 ; y = + Gn ( + R ( + ( + c [ i + ( g << 2 ) >> 2 ] / + c [ a + ( g << 2 ) >> 2 ] ) ) ) ; r [ u + ( g << 2 ) >> 2 ] = ~ ~ ( v ? - y : y ) ; g = g + 1 | 0 ; if ( ( g | 0 ) >= ( _ | 0 ) ) { b = _ ; break e } } } else w = 0 ; do { if ( ! ( r [ o + ( w << 2 ) >> 2 ] | 0 ) ) { g = + c [ n + ( w << 2 ) >> 2 ] < 0 ; y = + Gn ( + R ( + ( + c [ i + ( w << 2 ) >> 2 ] / + c [ a + ( w << 2 ) >> 2 ] ) ) ) ; r [ u + ( w << 2 ) >> 2 ] = ~ ~ ( g ? - y : y ) } w = w + 1 | 0 } while ( ( w | 0 ) < ( _ | 0 ) ) ; b = _ } else b = 0 ; while ( 0 ) ; if ( ( b | 0 ) >= ( l | 0 ) ) { k = 0 ; m = f ; return + k } _ = t - s | 0 ; if ( ! o ) { y = 0 ; s = 0 ; t = b ; while ( 1 ) { w = i + ( t << 2 ) | 0 ; M = + c [ a + ( t << 2 ) >> 2 ] ; S = + c [ w >> 2 ] / M ; if ( S < . 25 ) { r [ h + ( s << 2 ) >> 2 ] = w ; A = S + y ; C = s + 1 | 0 } else { g = + c [ n + ( t << 2 ) >> 2 ] < 0 ; T = + Gn ( + R ( + S ) ) ; v = ~ ~ ( g ? - T : T ) ; r [ u + ( t << 2 ) >> 2 ] = v ; c [ w >> 2 ] = + ( W ( v , v ) | 0 ) * M ; A = y ; C = s } t = t + 1 | 0 ; if ( ( t | 0 ) == ( l | 0 ) ) { $ = A ; E = C ; break } else { y = A ; s = C } } } else { A = 0 ; C = 0 ; s = b ; while ( 1 ) { do if ( ! ( r [ o + ( s << 2 ) >> 2 ] | 0 ) ) { b = i + ( s << 2 ) | 0 ; y = + c [ a + ( s << 2 ) >> 2 ] ; M = + c [ b >> 2 ] / y ; if ( ! ( M < . 25 ) | ( s | 0 ) < ( _ | 0 ) ) { t = + c [ n + ( s << 2 ) >> 2 ] < 0 ; T = + Gn ( + R ( + M ) ) ; v = ~ ~ ( t ? - T : T ) ; r [ u + ( s << 2 ) >> 2 ] = v ; c [ b >> 2 ] = + ( W ( v , v ) | 0 ) * y ; I = A ; x = C ; break } else { r [ h + ( C << 2 ) >> 2 ] = b ; I = M + A ; x = C + 1 | 0 ; break } } else { I = A ; x = C } while ( 0 ) ; s = s + 1 | 0 ; if ( ( s | 0 ) == ( l | 0 ) ) { $ = I ; E = x ; break } else { A = I ; C = x } } } if ( ! E ) { k = $ ; m = f ; return + k } Ln ( h , E , 4 , 12 ) ; if ( ( E | 0 ) <= 0 ) { k = $ ; m = f ; return + k } x = i ; I = + d [ e + 512 >> 3 ] ; A = $ ; e = 0 ; while ( 1 ) { i = r [ h + ( e << 2 ) >> 2 ] | 0 ; C = i - x >> 2 ; if ( ! ( A >= I ) ) { P = 0 ; D = A ; O = 0 } else { P = + c [ a + ( C << 2 ) >> 2 ] ; D = A + - 1 ; O = ~ ~ ( r [ p >> 2 ] = r [ n + ( C << 2 ) >> 2 ] & - 2147483648 | 1065353216 , + c [ p >> 2 ] ) } r [ u + ( C << 2 ) >> 2 ] = O ; c [ i >> 2 ] = P ; e = e + 1 | 0 ; if ( ( e | 0 ) == ( E | 0 ) ) { k = D ; break } else A = D } m = f ; return + k } function Lt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 ; n = + c [ r [ e >> 2 ] >> 2 ] ; i = + c [ r [ t >> 2 ] >> 2 ] ; return ( n < i & 1 ) - ( n > i & 1 ) | 0 } function Ft ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 , B = 0 , H = 0 , j = 0 , V = 0 , q = 0 ; o = r [ e >> 2 ] | 0 ; s = r [ e + ( ( t + - 1 | 0 ) * 56 | 0 ) + 4 >> 2 ] | 0 ; if ( ( t | 0 ) > 0 ) { l = + c [ a + 1108 >> 2 ] ; d = 0 ; a = 0 ; u = 0 ; p = 0 ; f = 0 ; m = 0 ; while ( 1 ) { h = r [ e + ( a * 56 | 0 ) + 52 >> 2
} t = e + 12 | 0 ; n = r [ t >> 2 ] | 0 ; if ( n | 0 ) { Xn ( r [ n >> 2 ] | 0 ) ; Xn ( r [ ( r [ t >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) ; Xn ( r [ ( r [ t >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) ; Xn ( r [ t >> 2 ] | 0 ) } t = e ; e = t + 52 | 0 ; do { r [ t >> 2 ] = 0 ; t = t + 4 | 0 } while ( ( t | 0 ) < ( e | 0 ) ) ; return } function on ( e ) { e = e | 0 ; if ( ! e ) return ; Xn ( e ) ; return } function sn ( e ) { e = e | 0 ; var t = 0 ; t = e ; e = t + 48 | 0 ; do { r [ t >> 2 ] = 0 ; t = t + 4 | 0 } while ( ( t | 0 ) < ( e | 0 ) ) ; return } function ln ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 , E = 0 , I = 0 , x = 0 , P = 0 ; i = m ; m = m + 144 | 0 ; a = i ; o = ( n | 0 ) != 0 ; s = Yn ( ( o ? n : t ) << 2 ) | 0 ; ai ( a | 0 , 0 , 132 ) | 0 ; l = ( t | 0 ) > 0 ; e : do if ( l ) { c = a + 4 | 0 ; d = ( n | 0 ) == 0 & 1 ; u = 0 ; p = 0 ; t : while ( 1 ) { f = r [ e + ( p << 2 ) >> 2 ] | 0 ; n : do if ( ( f | 0 ) > 0 ) { h = r [ a + ( f << 2 ) >> 2 ] | 0 ; if ( ! ( ( f | 0 ) > 31 | ( h >>> f | 0 ) == 0 ) ) break t ; g = u + 1 | 0 ; r [ s + ( u << 2 ) >> 2 ] = h ; _ = a + ( f << 2 ) | 0 ; i : do if ( ! ( h & 1 ) ) { v = h ; y = _ ; b = f ; while ( 1 ) { r [ y >> 2 ] = v + 1 ; w = b + - 1 | 0 ; if ( ( b | 0 ) <= 1 ) break i ; v = r [ a + ( w << 2 ) >> 2 ] | 0 ; k = a + ( w << 2 ) | 0 ; if ( v & 1 | 0 ) { M = k ; S = w ; A = 7 ; break } else { y = k ; b = w } } } else { M = _ ; S = f ; A = 7 } while ( 0 ) ; do if ( ( A | 0 ) == 7 ) { A = 0 ; if ( ( S | 0 ) == 1 ) { r [ c >> 2 ] = ( r [ c >> 2 ] | 0 ) + 1 ; break } else { r [ M >> 2 ] = r [ a + ( S + - 1 << 2 ) >> 2 ] << 1 ; break } } while ( 0 ) ; _ = f + 1 | 0 ; if ( ( _ | 0 ) < 33 ) { b = h ; y = f ; v = _ ; while ( 1 ) { _ = a + ( v << 2 ) | 0 ; w = b ; b = r [ _ >> 2 ] | 0 ; if ( ( b >>> 1 | 0 ) != ( w | 0 ) ) { C = g ; break n } r [ _ >> 2 ] = r [ a + ( y << 2 ) >> 2 ] << 1 ; _ = v + 1 | 0 ; if ( ( _ | 0 ) >= 33 ) { C = g ; break } else { w = v ; v = _ ; y = w } } } else C = g } else C = u + d | 0 ; while ( 0 ) ; p = p + 1 | 0 ; if ( ( p | 0 ) >= ( t | 0 ) ) break e ; else u = C } Xn ( s ) ; T = 0 ; m = i ; return T | 0 } while ( 0 ) ; e : do if ( ( n | 0 ) != 1 ) { C = 1 ; while ( 1 ) { if ( r [ a + ( C << 2 ) >> 2 ] & - 1 >>> ( 32 - C | 0 ) | 0 ) break ; C = C + 1 | 0 ; if ( ( C | 0 ) >= 33 ) break e } Xn ( s ) ; T = 0 ; m = i ; return T | 0 } while ( 0 ) ; if ( ! l ) { T = s ; m = i ; return T | 0 } if ( o ) { $ = 0 ; E = 0 } else { o = 0 ; do { l = r [ e + ( o << 2 ) >> 2 ] | 0 ; a = s + ( o << 2 ) | 0 ; if ( ( l | 0 ) > 0 ) { n = r [ a >> 2 ] | 0 ; C = 0 ; S = 0 ; while ( 1 ) { M = n >>> C & 1 | S << 1 ; C = C + 1 | 0 ; if ( ( C | 0 ) >= ( l | 0 ) ) { I = M ; break } else S = M } } else I = 0 ; o = o + 1 | 0 ; r [ a >> 2 ] = I } while ( ( o | 0 ) != ( t | 0 ) ) ; T = s ; m = i ; return T | 0 } while ( 1 ) { o = r [ e + ( E << 2 ) >> 2 ] | 0 ; if ( ( o | 0 ) > 0 ) { I = r [ s + ( $ << 2 ) >> 2 ] | 0 ; S = 0 ; l = 0 ; while ( 1 ) { C = I >>> S & 1 | l << 1 ; S = S + 1 | 0 ; if ( ( S | 0 ) >= ( o | 0 ) ) { x = C ; break } else l = C } } else x = 0 ; if ( ! o ) P = $ ; else { r [ s + ( $ << 2 ) >> 2 ] = x ; P = $ + 1 | 0 } E = E + 1 | 0 ; if ( ( E | 0 ) == ( t | 0 ) ) { T = s ; break } else $ = P } m = i ; return T | 0 } function cn ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 ; n = r [ r [ e >> 2 ] >> 2 ] | 0 ; e = r [ r [ t >> 2 ] >> 2 ] | 0 ; return ( n >>> 0 > e >>> 0 & 1 ) - ( n >>> 0 < e >>> 0 & 1 ) | 0 } function dn ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , $ = 0 ; i = r [ e + 12 >> 2 ] | 0 ; if ( ( i + - 1 | 0 ) >>> 0 >= 2 ) { a = 0 ; return a | 0 } o = r [ e + 16 >> 2 ] | 0 ; s = + ( o & 2097151 | 0 ) ; l = + Wn ( ( o | 0 ) < 0 ? - s : s , ( o >>> 21 & 1023 ) + - 788 | 0 ) ; o = r [ e + 20 >> 2 ] | 0 ; s = + ( o & 2097151 | 0 ) ; d = + Wn ( ( o | 0 ) < 0 ? - s : s , ( o >>> 21 & 1023 ) + - 788 | 0 ) ; o = r [ e >> 2 ] | 0 ; u = Jn ( W ( o , t ) | 0 , 4 ) | 0 ; switch ( i | 0 ) { case 1 : { i = r [ e + 4 >> 2 ] | 0 ; if ( ( o | 0 ) <= 0 ) while ( 1 ) { } t = ~ ~ + P ( + + O ( + + ( i | 0 ) , + ( 1 / + ( o | 0 ) ) ) ) ; while ( 1 ) { p = t + 1 | 0 ; f = 1 ; m = 1 ; h = 0 ; do { f = W ( f , t ) | 0 ; m = W ( m , p ) | 0 ; h = h + 1 | 0 } while ( ( h | 0 ) != ( o | 0 ) ) ; if ( ( m | 0 ) > ( i | 0 ) & ( f | 0 ) <= ( i | 0 ) ) break ; else t = ( ( f | 0 ) > ( i | 0 ) ? - 1 : 1 ) + t | 0 } if ( ( i | 0 ) <= 0 ) { a = u ; return a | 0 } h = ( n | 0 ) == 0 ; p = e + 8 | 0 ; g = e + 32 | 0 ; s = d ; _ = l ; v = e + 28 | 0 ; y = 0 ; b = 0 ; while ( 1 ) { if ( h ) { w = r [ g >> 2 ] | 0 ; k = W ( y , o ) | 0 ; if ( ! ( r [ v >> 2 ] | 0 ) ) { M = 1 ; S = 0 ; do { c [ u + ( k + S << 2 ) >> 2 ] = _ + + D ( + + ( r [ w + ( ( ( ( b | 0 ) / ( M | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; M = W ( M , t ) | 0 ; S = S + 1 | 0 } while ( ( S | 0 ) < ( o | 0 ) ) ; A = 21 } else { S = 1 ; M = 0 ; C = 0 ; do { C = C + _ + + D ( + + ( r [ w + ( ( ( ( b | 0 ) / ( S | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; c [ u + ( k + M << 2 ) >> 2 ] = C ; S = W ( S , t ) | 0 ; M = M + 1 | 0 } while ( ( M | 0 ) < ( o | 0 ) ) ; A = 21 } } else if ( r [ ( r [ p >> 2 ] | 0 ) + ( b << 2 ) >> 2 ] | 0 ) { M = r [ g >> 2 ] | 0 ; S = W ( r [ n + ( y << 2 ) >> 2 ] | 0 , o ) | 0 ; if ( ! ( r [ v >> 2 ] | 0 ) ) { k = 1 ; w = 0 ; do { c [ u + ( S + w << 2 ) >> 2 ] = _ + + D ( + + ( r [ M + ( ( ( ( b | 0 ) / ( k | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; k = W ( k , t ) | 0 ; w = w + 1 | 0 } while ( ( w | 0 ) < ( o | 0 ) ) ; A = 21 } else { w = 1 ; k = 0 ; C = 0 ; do { C = C + _ + + D ( + + ( r [ M + ( ( ( ( b | 0 ) / ( w | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; c [ u + ( S + k << 2 ) >> 2 ] = C ; w = W ( w , t ) | 0 ; k = k + 1 | 0 } while ( ( k | 0 ) < ( o | 0 ) ) ; A = 21 } } else T = y ; if ( ( A | 0 ) == 21 ) { A = 0 ; T = y + 1 | 0 } b = b + 1 | 0 ; if ( ( b | 0 ) >= ( i | 0 ) ) { a = u ; break } else y = T } return a | 0 } case 2 : { T = r [ e + 4 >> 2 ] | 0 ; if ( ( T | 0 ) <= 0 ) { a = u ; return a | 0 } y = ( n | 0 ) != 0 ; i = e + 8 | 0 ; b = e + 32 | 0 ; s = d ; d = l ; A = e + 28 | 0 ; e = ( o | 0 ) > 0 ; t = 0 ; v = 0 ; while ( 1 ) { if ( y ? ( r [ ( r [ i >> 2 ] | 0 ) + ( v << 2 ) >> 2 ] | 0 ) == 0 : 0 ) $ = t ; else { if ( e ) { g = r [ b >> 2 ] | 0 ; p = ( r [ A >> 2 ] | 0 ) == 0 ; if ( y ) { h = W ( o , v ) | 0 ; k = W ( r [ n + ( t << 2 ) >> 2 ] | 0 , o ) | 0 ; if ( p ) { w = 0 ; do { c [ u + ( k + w << 2 ) >> 2 ] = d + + D ( + + ( r [ g + ( h + w << 2 ) >> 2 ] | 0 ) ) * s ; w = w + 1 | 0 } while ( ( w | 0 ) < ( o | 0 ) ) } else { w = 0 ; l = 0 ; do { l = l + d + + D ( + + ( r [ g + ( h + w << 2 ) >> 2 ] | 0 ) ) * s ; c [ u + ( k + w << 2 ) >> 2 ] = l ; w = w + 1 | 0 } while ( ( w | 0 ) < ( o | 0 ) ) } } else { w = W ( o , v ) | 0 ; k = W ( t , o ) | 0 ; if ( p ) { h = 0 ; do { c [ u + ( k + h << 2 ) >> 2 ] = d + + D ( + + ( r [ g + ( w + h << 2 ) >> 2 ] | 0 ) ) * s ; h = h + 1 | 0 } while ( ( h | 0 ) < ( o | 0 ) ) } else { h = 0 ; l = 0 ; do { l = l + d + + D ( + + ( r [ g + ( w + h << 2 ) >> 2 ]
b = l << p ; l = ( b + 245760 | 0 ) >>> 16 & 2 ; s = 14 - ( p | u | l ) + ( b << l >>> 15 ) | 0 ; P = y >>> ( s + 7 | 0 ) & 1 | s << 1 } else P = 0 ; s = r [ 58292 + ( P << 2 ) >> 2 ] | 0 ; e : do if ( ! s ) { D = _ ; R = 0 ; O = 0 ; N = 81 } else { l = _ ; b = 0 ; u = y << ( ( P | 0 ) == 31 ? 0 : 25 - ( P >>> 1 ) | 0 ) ; p = s ; v = 0 ; while ( 1 ) { c = ( r [ p + 4 >> 2 ] & - 8 ) - y | 0 ; if ( c >>> 0 < l >>> 0 ) if ( ! c ) { L = 0 ; F = p ; U = p ; N = 85 ; break e } else { B = c ; H = p } else { B = l ; H = v } c = r [ p + 20 >> 2 ] | 0 ; p = r [ p + 16 + ( u >>> 31 << 2 ) >> 2 ] | 0 ; f = ( c | 0 ) == 0 | ( c | 0 ) == ( p | 0 ) ? b : c ; c = ( p | 0 ) == 0 ; if ( c ) { D = B ; R = f ; O = H ; N = 81 ; break } else { l = B ; b = f ; u = u << ( ( c ^ 1 ) & 1 ) ; v = H } } } while ( 0 ) ; if ( ( N | 0 ) == 81 ) { if ( ( R | 0 ) == 0 & ( O | 0 ) == 0 ) { s = 2 << P ; _ = h & ( s | 0 - s ) ; if ( ! _ ) { x = y ; break } s = ( _ & 0 - _ ) + - 1 | 0 ; _ = s >>> 12 & 16 ; i = s >>> _ ; s = i >>> 5 & 8 ; a = i >>> s ; i = a >>> 2 & 4 ; o = a >>> i ; a = o >>> 1 & 2 ; d = o >>> a ; o = d >>> 1 & 1 ; j = r [ 58292 + ( ( s | _ | i | a | o ) + ( d >>> o ) << 2 ) >> 2 ] | 0 ; V = 0 } else { j = R ; V = O } if ( ! j ) { q = D ; z = V } else { L = D ; F = j ; U = V ; N = 85 } } if ( ( N | 0 ) == 85 ) while ( 1 ) { N = 0 ; o = ( r [ F + 4 >> 2 ] & - 8 ) - y | 0 ; d = o >>> 0 < L >>> 0 ; a = d ? o : L ; o = d ? F : U ; F = r [ F + 16 + ( ( ( r [ F + 16 >> 2 ] | 0 ) == 0 & 1 ) << 2 ) >> 2 ] | 0 ; if ( ! F ) { q = a ; z = o ; break } else { L = a ; U = o ; N = 85 } } if ( ( z | 0 ) != 0 ? q >>> 0 < ( ( r [ 14499 ] | 0 ) - y | 0 ) >>> 0 : 0 ) { o = r [ 14501 ] | 0 ; if ( z >>> 0 < o >>> 0 ) pe ( ) ; a = z + y | 0 ; if ( z >>> 0 >= a >>> 0 ) pe ( ) ; d = r [ z + 24 >> 2 ] | 0 ; i = r [ z + 12 >> 2 ] | 0 ; do if ( ( i | 0 ) == ( z | 0 ) ) { _ = z + 20 | 0 ; s = r [ _ >> 2 ] | 0 ; if ( ! s ) { v = z + 16 | 0 ; u = r [ v >> 2 ] | 0 ; if ( ! u ) { W = 0 ; break } else { G = u ; K = v } } else { G = s ; K = _ } while ( 1 ) { _ = G + 20 | 0 ; s = r [ _ >> 2 ] | 0 ; if ( s | 0 ) { G = s ; K = _ ; continue } _ = G + 16 | 0 ; s = r [ _ >> 2 ] | 0 ; if ( ! s ) break ; else { G = s ; K = _ } } if ( K >>> 0 < o >>> 0 ) pe ( ) ; else { r [ K >> 2 ] = 0 ; W = G ; break } } else { _ = r [ z + 8 >> 2 ] | 0 ; if ( _ >>> 0 < o >>> 0 ) pe ( ) ; s = _ + 12 | 0 ; if ( ( r [ s >> 2 ] | 0 ) != ( z | 0 ) ) pe ( ) ; v = i + 8 | 0 ; if ( ( r [ v >> 2 ] | 0 ) == ( z | 0 ) ) { r [ s >> 2 ] = i ; r [ v >> 2 ] = _ ; W = i ; break } else pe ( ) } while ( 0 ) ; e : do if ( d ) { i = r [ z + 28 >> 2 ] | 0 ; o = 58292 + ( i << 2 ) | 0 ; do if ( ( z | 0 ) == ( r [ o >> 2 ] | 0 ) ) { r [ o >> 2 ] = W ; if ( ! W ) { _ = h & ~ ( 1 << i ) ; r [ 14498 ] = _ ; Y = _ ; break e } } else if ( d >>> 0 >= ( r [ 14501 ] | 0 ) >>> 0 ) { r [ d + 16 + ( ( ( r [ d + 16 >> 2 ] | 0 ) != ( z | 0 ) & 1 ) << 2 ) >> 2 ] = W ; if ( ! W ) { Y = h ; break e } else break } else pe ( ) ; while ( 0 ) ; i = r [ 14501 ] | 0 ; if ( W >>> 0 < i >>> 0 ) pe ( ) ; r [ W + 24 >> 2 ] = d ; o = r [ z + 16 >> 2 ] | 0 ; do if ( o | 0 ) if ( o >>> 0 < i >>> 0 ) pe ( ) ; else { r [ W + 16 >> 2 ] = o ; r [ o + 24 >> 2 ] = W ; break } while ( 0 ) ; o = r [ z + 20 >> 2 ] | 0 ; if ( o ) if ( o >>> 0 < ( r [ 14501 ] | 0 ) >>> 0 ) pe ( ) ; else { r [ W + 20 >> 2 ] = o ; r [ o + 24 >> 2 ] = W ; Y = h ; break } else Y = h } else Y = h ; while ( 0 ) ; do if ( q >>> 0 >= 16 ) { r [ z + 4 >> 2 ] = y | 3 ; r [ a + 4 >> 2 ] = q | 1 ; r [ a + q >> 2 ] = q ; h = q >>> 3 ; if ( q >>> 0 < 256 ) { d = 58028 + ( h << 1 << 2 ) | 0 ; o = r [ 14497 ] | 0 ; i = 1 << h ; if ( o & i ) { h = d + 8 | 0 ; _ = r [ h >> 2 ] | 0 ; if ( _ >>> 0 < ( r [ 14501 ] | 0 ) >>> 0 ) pe ( ) ; else { X = h ; J = _ } } else { r [ 14497 ] = o | i ; X = d + 8 | 0 ; J = d } r [ X >> 2 ] = a ; r [ J + 12 >> 2 ] = a ; r [ a + 8 >> 2 ] = J ; r [ a + 12 >> 2 ] = d ; break } d = q >>> 8 ; if ( d ) if ( q >>> 0 > 16777215 ) Z = 31 ; else { i = ( d + 1048320 | 0 ) >>> 16 & 8 ; o = d << i ; d = ( o + 520192 | 0 ) >>> 16 & 4 ; _ = o << d ; o = ( _ + 245760 | 0 ) >>> 16 & 2 ; h = 14 - ( d | i | o ) + ( _ << o >>> 15 ) | 0 ; Z = q >>> ( h + 7 | 0 ) & 1 | h << 1 } else Z = 0 ; h = 58292 + ( Z << 2 ) | 0 ; r [ a + 28 >> 2 ] = Z ; o = a + 16 | 0 ; r [ o + 4 >> 2 ] = 0 ; r [ o >> 2 ] = 0 ; o = 1 << Z ; if ( ! ( Y & o ) ) { r [ 14498 ] = Y | o ; r [ h >> 2 ] = a ; r [ a + 24 >> 2 ] = h ; r [ a + 12 >> 2 ] = a ; r [ a + 8 >> 2 ] = a ; break } o = q << ( ( Z | 0 ) == 31 ? 0 : 25 - ( Z >>> 1 ) | 0 ) ; _ = r [ h >> 2 ] | 0 ; while ( 1 ) { if ( ( r [ _ + 4 >> 2 ] & - 8 | 0 ) == ( q | 0 ) ) { N = 139 ; break } Q = _ + 16 + ( o >>> 31 << 2 ) | 0 ; h = r [ Q >> 2 ] | 0 ; if ( ! h ) { N = 136 ; break } else { o = o << 1 ; _ = h } } if ( ( N | 0 ) == 136 ) if ( Q >>> 0 < ( r [ 14501 ] | 0 ) >>> 0 ) pe ( ) ; else { r [ Q >> 2 ] = a ; r [ a + 24 >> 2 ] = _ ; r [ a + 12 >> 2 ] = a ; r [ a + 8 >> 2 ] = a ; break } else if ( ( N | 0 ) == 139 ) { o = _ + 8 | 0 ; h = r [ o >> 2 ] | 0 ; i = r [ 14501 ] | 0 ; if ( h >>> 0 >= i >>> 0 & _ >>> 0 >= i >>> 0 ) { r [ h + 12 >> 2 ] = a ; r [ o >> 2 ] = a ; r [ a + 8 >> 2 ] = h ; r [ a + 12 >> 2 ] = _ ; r [ a + 24 >> 2 ] = 0 ; break } else pe ( ) } } else { h = q + y | 0 ; r [ z + 4 >> 2 ] = h | 3 ; o = z + h + 4 | 0 ; r [ o >> 2 ] = r [ o >> 2 ] | 1 } while ( 0 ) ; g = z + 8 | 0 ; m = t ; return g | 0 } else x = y } else x = y } else x = - 1 ; while ( 0 ) ; z = r [ 14499 ] | 0 ; if ( z >>> 0 >= x >>> 0 ) { q = z - x | 0 ; Q = r [ 14502 ] | 0 ; if ( q >>> 0 > 15 ) { Z = Q + x | 0 ; r [ 14502 ] = Z ; r [ 14499 ] = q ; r [ Z + 4 >> 2 ] = q | 1 ; r [ Z + q >> 2 ] = q ; r [ Q + 4 >> 2 ] = x | 3 } else { r [ 14499 ] = 0 ; r [ 14502 ] = 0 ; r [ Q + 4 >> 2 ] = z | 3 ; q = Q + z + 4 | 0 ; r [ q >> 2 ] = r [ q >> 2 ] | 1 } g = Q + 8 | 0 ; m = t ; return g | 0 } Q = r [ 14500 ] | 0 ; if ( Q >>> 0 > x >>> 0 ) { q = Q - x | 0 ; r [ 14500 ] = q ; z = r [ 14503 ] | 0 ; Z = z + x | 0 ; r [ 14503 ] = Z ; r [ Z + 4 >> 2 ] = q | 1 ; r [ z + 4 >> 2 ] = x | 3 ; g = z + 8 | 0 ; m = t ; return g | 0 } if ( ! ( r [ 14615 ] | 0 ) ) { r [ 14617 ] = 4096 ; r [ 14616 ] = 4096 ; r [ 14618 ] = - 1 ; r [ 14619 ] = - 1 ; r [ 14620 ] = 0 ; r [ 14608 ] = 0 ; z = n & - 16 ^ 1431655768 ; r [ n >> 2 ] = z ; r [ 14615 ] = z ; ee = 4096 } else ee = r [ 14617 ] | 0 ; z = x + 48 | 0 ; n = x + 47 | 0 ; q = ee + n | 0 ; Z = 0 - ee | 0 ; ee = q & Z ; if ( ee >>> 0 <= x >>> 0 ) { g = 0 ; m = t ; return g | 0 } Y = r [ 14607 ] | 0 ; if ( Y | 0 ? ( J = r [ 14605 ] | 0 , X = J + ee | 0 , X >>> 0 <= J >>> 0 | X >>> 0 > Y >>> 0 ) : 0 ) { g = 0 ; m = t ; return g | 0 } e : do if ( ! ( r [ 14608 ] & 4 ) ) { Y = r [ 14503 ] | 0 ; t : do if ( Y ) { X = 58436 ; while ( 1 ) { J = r [ X >> 2 ] | 0 ; if ( J >>> 0 <= Y >>> 0 ? ( te = X + 4 | 0 , ( J + ( r [ te >> 2 ] | 0 ) | 0 ) >>> 0 > Y >>> 0 ) : 0 ) break ; J = r [ X + 8 >> 2 ] | 0 ; if ( ! J ) { N = 163 ; break t } else X = J } _ = q - Q & Z ; if ( _ >>> 0 < 2147483647 ) { J = si ( _ | 0 ) | 0 ; if ( ( J | 0 ) == ( ( r [ X >> 2 ] | 0 ) + ( r [ te >> 2 ] | 0 ) | 0 ) ) if ( ( J | 0 ) == ( - 1 | 0 ) ) ne = _ ; else { ie = J ; ae = _ ; N = 180 ; break e } else { re = J ; oe
} } ; e . exports = a } , function ( e , t ) { function n ( ) { function e ( ) { var e = 0 , n = function ( t ) { return e ++ , t < 2 ? t : n ( t - 2 ) + n ( t - 1 ) } , a = t ( ) ; n ( 30 ) ; var r = t ( ) - a ; i = e / r } var t , n = this ; t = window . performance && window . performance . now ? function ( ) { return window . performance . now ( ) } : function ( ) { return Date . now ( ) } ; var i = null ; Object . defineProperty ( n , "speed" , { get : function ( ) { return null === i && e ( ) , i } } ) , Object . defineProperty ( n , "slowCutoff" , { get : function ( ) { return 5e4 } } ) , Object . defineProperty ( n , "tooSlowCutoff" , { get : function ( ) { return 0 } } ) , Object . defineProperty ( n , "slow" , { get : function ( ) { return n . speed < n . slowCutoff } } ) , Object . defineProperty ( n , "tooSlow" , { get : function ( ) { return n . speed < n . tooSlowCutoff } } ) } e . exports = n } ] ) , ! function ( e , t ) { "object" == typeof exports && "object" == typeof module ? module . exports = t ( ) : "function" == typeof define && define . amd ? define ( [ ] , t ) : "object" == typeof exports ? exports . Recorder = t ( ) : e . Recorder = t ( ) } ( this , function ( ) { return function ( e ) { function t ( i ) { if ( n [ i ] ) return n [ i ] . exports ; var a = n [ i ] = { i : i , l : ! 1 , exports : { } } ; return e [ i ] . call ( a . exports , a , a . exports , t ) , a . l = ! 0 , a . exports } var n = { } ; return t . m = e , t . c = n , t . d = function ( e , n , i ) { t . o ( e , n ) || Object . defineProperty ( e , n , { configurable : ! 1 , enumerable : ! 0 , get : i } ) } , t . n = function ( e ) { var n = e && e . _ _esModule ? function ( ) { return e [ "default" ] } : function ( ) { return e } ; return t . d ( n , "a" , n ) , n } , t . o = function ( e , t ) { return Object . prototype . hasOwnProperty . call ( e , t ) } , t . p = "" , t ( t . s = 0 ) } ( [ function ( e , t , n ) { "use strict" ; ( function ( t ) { var i = n ( 2 ) , a = function ( e ) { var n = this , i = t . AudioContext || t . webkitAudioContext ; if ( ! a . isRecordingSupported ( ) ) throw new Error ( "Recording is not supported in this browser" ) ; this . state = "inactive" , this . eventTarget = t . document . createDocumentFragment ( ) , this . audioContext = new i , this . monitorNode = this . audioContext . createGain ( ) , this . config = Object . assign ( { bufferLength : 4096 , encoderApplication : 2049 , encoderFrameSize : 20 , encoderPath : "encoderWorker.min.js" , encoderSampleRate : 48e3 , leaveStreamOpen : ! 1 , maxBuffersPerPage : 40 , monitorGain : 0 , numberOfChannels : 1 , originalSampleRate : this . audioContext . sampleRate , resampleQuality : 3 , mediaTrackConstraints : ! 0 , streamPages : ! 1 , wavBitDepth : 16 , wavSampleRate : this . audioContext . sampleRate } , e ) , this . initWorker ( ) , this . setMonitorGain ( this . config . monitorGain ) , this . scriptProcessorNode = this . audioContext . createScriptProcessor ( this . config . bufferLength , this . config . numberOfChannels , this . config . numberOfChannels ) , this . scriptProcessorNode . onaudioprocess = function ( e ) { n . encodeBuffers ( e . inputBuffer ) } } ; a . isRecordingSupported = function ( ) { return ( t . AudioContext || t . webkitAudioContext ) && i . isSupported } , a . prototype . addEventListener = function ( e , t , n ) { this . eventTarget . addEventListener ( e , t , n ) } , a . prototype . clearStream = function ( ) { this . stream && ( this . stream . getTracks ? this . stream . getTracks ( ) . forEach ( function ( e ) { e . stop ( ) } ) : this . stream . stop ( ) , delete this . stream ) } , a . prototype . encodeBuffers = function ( e ) { if ( "recording" === this . state ) { for ( var t = [ ] , n = 0 ; n < e . numberOfChannels ; n ++ ) t [ n ] = e . getChannelData ( n ) ; this . encoder . postMessage ( { command : "encode" , buffers : t } ) } } , a . prototype . initStream = function ( ) { var e = this , n = function ( n ) { return e . stream = n , e . sourceNode = e . audioContext . createMediaStreamSource ( n ) , e . sourceNode . connect ( e . scriptProcessorNode ) , e . sourceNode . connect ( e . monitorNode ) , e . eventTarget . dispatchEvent ( new t . Event ( "streamReady" ) ) , n } , a = function ( n ) { throw e . eventTarget . dispatchEvent ( new t . ErrorEvent ( "streamError" , { error : n } ) ) , n } , r = { audio : this . config . mediaTrackConstraints } ; return this . stream ? ( this . eventTarget . dispatchEvent ( new t . Event ( "streamReady" ) ) , t . Promise . resolve ( this . stream ) ) : i ( r ) . then ( n , a ) } , a . prototype . initWorker = function ( ) { var e = this ; this . encoder = new t . Worker ( this . config . encoderPath ) , this . config . streamPages ? this . encoder . addEventListener ( "message" , function ( t ) { e . streamPage ( t . data ) } ) : ( this . recordedPages = [ ] , this . totalLength = 0 , this . encoder . addEventListener ( "message" , function ( t ) { e . storePage ( t . data ) } ) ) } , a . prototype . pause = function ( ) { "recording" === this . state && ( this . state = "paused" , this . eventTarget . dispatchEvent ( new t . Event ( "pause" ) ) ) } , a . prototype . removeEventListener = function ( e , t , n ) { this . eventTarget . removeEventListener ( e , t , n ) } , a . prototype . resume = function ( ) { "paused" === this . state && ( this . state = "recording" , this . ev
setTimeout ( function ( ) { a ( { type : "blur" , fake _initial : ! 0 } ) } , 0 ) ) } function a ( i ) { if ( "mousemove" == i . type ) { var i = i . originalEvent || i ; if ( i && 0 === i . movementX && 0 === i . movementY ) return ; $ ( t ) . off ( "mousemove" , a ) } var s = "blur" == i . type || "timeout" == i . type ; l && document [ l ] && ( s = ! 0 ) , n . cancel ( r ) , s || ( r = n ( function ( ) { a ( { type : "timeout" } ) } , 3e4 ) ) , "focus" != i . type || e . idle . afterFocus || ( e . idle . afterFocus = ! 0 , setTimeout ( function ( ) { delete e . idle . afterFocus } , 10 ) ) ; var c = e . idle . initial ? 0 : 1e3 ; i && ! i . fake _initial && delete e . idle . initial , n . cancel ( o ) , e . idle . isIDLE != s && ( o = n ( function ( ) { e . idle . isIDLE = s , s && "timeout" == i . type && $ ( t ) . on ( "mousemove" , a ) } , c ) ) } e . idle = { isIDLE : ! 1 , initial : ! 0 } ; var r , o , s = ! 1 , l = "hidden" , c = "visibilitychange" ; return "undefined" != typeof document . hidden || ( "undefined" != typeof document . mozHidden ? ( l = "mozHidden" , c = "mozvisibilitychange" ) : "undefined" != typeof document . msHidden ? ( l = "msHidden" , c = "msvisibilitychange" ) : "undefined" != typeof document . webkitHidden && ( l = "webkitHidden" , c = "webkitvisibilitychange" ) ) , Config . Mobile || ( c = "" ) , { start : i } } ] ) . service ( "GeoLocationManager" , [ "$q" , function ( e ) { function t ( ) { return void 0 !== navigator . geolocation } function n ( n ) { if ( ! n && i ) return e . when ( i ) ; if ( ! t ( ) ) return e . reject ( ) ; var a = e . defer ( ) ; return navigator . geolocation . getCurrentPosition ( function ( e ) { i = { lat : e . coords . latitude , "long" : e . coords . longitude } , a . resolve ( i ) } , function ( e ) { a . reject ( e ) } ) , a . promise } var i = ! 1 ; return { getPosition : n , isAvailable : t } } ] ) . service ( "AppRuntimeManager" , [ "$window" , function ( e ) { return { reload : function ( ) { try { location . reload ( ) } catch ( t ) { } e . chrome && chrome . runtime && chrome . runtime . reload && chrome . runtime . reload ( ) } , close : function ( ) { try { e . close ( ) } catch ( t ) { } } , focus : function ( ) { window . navigator . mozApps && document . hidden ? window . navigator . mozApps . getSelf ( ) . onsuccess = function ( ) { this . result . launch ( ) } : ( window . chrome && chrome . app && chrome . app . window && chrome . app . window . current ( ) . focus ( ) , window . focus ( ) ) } } } ] ) . service ( "RichTextProcessor" , [ "$sce" , "$sanitize" , function ( e , t ) { function n ( e ) { for ( var t , n , i , a , r = 0 ; r < Config . EmojiCategories . length ; r ++ ) if ( a = Config . EmojiCategorySpritesheetDimens [ r ] [ 1 ] , t = Config . EmojiCategories [ r ] . indexOf ( e ) , t > - 1 ) return n = Math . floor ( t / a ) , i = t % a , { category : r , row : n , column : i } ; return console . error ( "emoji not found in spritesheet" , e ) , null } function i ( e , t ) { t = t || { } ; for ( var i , a , r , o , s , l = e , c = [ ] , u = 0 ; i = l . match ( A ) ; ) { if ( s = u + i . index , i [ 3 ] ) c . push ( { _ : "messageEntityMention" , offset : s + i [ 1 ] . length , length : i [ 2 ] . length + i [ 3 ] . length } ) ; else if ( i [ 4 ] ) if ( C . test ( i [ 4 ] ) ) c . push ( { _ : "messageEntityEmail" , offset : s , length : i [ 4 ] . length } ) ; else { var a = ! 1 , p = i [ 5 ] , f = i [ 6 ] , m = "" ; if ( f ) { if ( p || "xn--" !== f . substr ( 0 , 4 ) && Config . TLD . indexOf ( f . toLowerCase ( ) ) === - 1 || ( p = "http://" ) , p ) { var g = d ( i [ 4 ] ) ; g . length !== i [ 4 ] . length && ( m = i [ 4 ] . substring ( g . length ) , i [ 4 ] = g ) , a = ( i [ 5 ] ? "" : p ) + i [ 4 ] } } else a = ( i [ 5 ] ? "" : "http://" ) + i [ 4 ] ; a && c . push ( { _ : "messageEntityUrl" , offset : s , length : i [ 4 ] . length } ) } else i [ 7 ] ? c . push ( { _ : "messageEntityLinebreak" , offset : s , length : 1 } ) : i [ 8 ] ? ( r = EmojiHelper . emojiMap [ i [ 8 ] ] ) && ( o = n ( r ) ) && c . push ( { _ : "messageEntityEmoji" , offset : s , length : i [ 0 ] . length , coords : o , title : h [ r ] [ 1 ] [ 0 ] } ) : i [ 10 ] ? c . push ( { _ : "messageEntityHashtag" , offset : s + i [ 9 ] . length , length : i [ 10 ] . length } ) : i [ 12 ] && c . push ( { _ : "messageEntityBotCommand" , offset : s + i [ 11 ] . length , length : 1 + i [ 12 ] . length + ( i [ 13 ] ? 1 + i [ 13 ] . length : 0 ) } ) ; l = l . substr ( i . index + i [ 0 ] . length ) , u += i . index + i [ 0 ] . length } return c } function a ( e ) { return e . replace ( /:([a-z0-9\-\+\*_]+?):/gi , function ( e , t ) { var n = EmojiHelper . shortcuts [ t ] ; return void 0 !== n ? EmojiHelper . emojis [ n ] [ 0 ] : e } ) } function r ( e , t , n ) { if ( ! T . test ( e ) ) return n ? e : e . trim ( ) ; for ( var i , a , r = e , o = [ ] , s = 0 ; i = r . match ( $ ) ; ) { a = s + i . index , o . push ( r . substr ( 0 , i . index ) ) ; var e = i [ 3 ] || i [ 8 ] || i [ 11 ] ; s -= e . length , e = e . replace ( /^\s+|\s+$/g , "" ) , s += e . length , e . match ( /^`*$/ ) ? o . push ( i [ 0 ] ) : i [ 3 ] ? ( "\n" == i [ 5 ] && ( i [ 5 ] = "" , s -= 1 ) , o . push ( i [ 1 ] + e + i [ 5 ] ) , t . push ( { _ : "messageEntityPre" , language : "" , offset : a + i [ 1 ] . length , length : e . length } ) , s -= i [ 2 ] . length + i [ 4 ] . length ) : i [ 7 ] ? ( o . push ( i [ 6 ] + e + i [ 9 ] ) , t . push ( { _ : x [ i [ 7 ] ] , offset : a + i [ 6 ] . length , length : e . length } ) , s -= 2 * i [ 7 ] . length ) : i [ 11 ] && ( o . push ( e ) , t . push ( { _ : "messageEntityMentionName" , user _id : i [ 10 ] , offset : a , length : e . length } ) , s -= i [ 0 ] . length - e . length ) , r = r . substr ( i . index + i [ 0 ] . length ) , s += i . index + i [ 0 ] . length } return o . push ( r ) , o = o .
this . updateSession ( ) , this . lastServerMessages = [ ] , this . checkConnectionPeriod = 0 , this . sentMessages = { } , this . pendingMessages = { } , this . pendingAcks = [ ] , this . pendingResends = [ ] , this . connectionInited = ! 1 , this . longPollInt = c ( this . checkLongPoll . bind ( this ) , 1e4 ) , this . checkLongPoll ( ) , h || ( h = ! 0 , d . offline = ! 0 , d . offlineConnecting = ! 0 ) , Config . Navigator . mobile && this . setupMobileSleep ( ) } function p ( ) { g && ( g = ! 1 , m ( { _ : "new_session_created" } , ! 0 ) ) } function f ( ) { g = ! 0 } var m , h = ! 1 , g = ! 1 , _ = navigator . userAgent . match ( /Chrome\/(\d+(\.\d+)?)/ ) , v = _ && parseFloat ( _ [ 1 ] ) || ! 1 , y = ! ( "ArrayBufferView" in window ) && v > 0 && v < 30 ; return delete o . defaults . headers . post [ "Content-Type" ] , delete o . defaults . headers . common . Accept , d . retryOnline = function ( ) { $ ( document . body ) . trigger ( "online" ) } , u . prototype . updateSession = function ( ) { this . seqNo = 0 , this . prevSessionID = this . sessionID , this . sessionID = new Array ( 8 ) , n . nextBytes ( this . sessionID ) } , u . prototype . setupMobileSleep = function ( ) { var e = this ; d . $watch ( "idle.isIDLE" , function ( t ) { t ? e . sleepAfter = tsNow ( ) + 3e4 : ( delete e . sleepAfter , e . checkLongPoll ( ) ) } ) , d . $on ( "push_received" , function ( ) { e . sleepAfter && ( e . sleepAfter = tsNow ( ) + 3e4 , e . checkLongPoll ( ) ) } ) } , u . prototype . updateSentMessage = function ( e ) { var n = this . sentMessages [ e ] ; if ( ! n ) return ! 1 ; var i = this ; if ( n . container ) { var a = [ ] ; angular . forEach ( n . inner , function ( e ) { var t = i . updateSentMessage ( e ) ; t && a . push ( t . msg _id ) } ) , n . inner = a } return n . msg _id = t . generateID ( ) , n . seq _no = this . generateSeqNo ( n . notContentRelated || n . container ) , this . sentMessages [ n . msg _id ] = n , delete i . sentMessages [ e ] , n } , u . prototype . generateSeqNo = function ( e ) { var t = 2 * this . seqNo ; return e || ( t ++ , this . seqNo ++ ) , t } , u . prototype . wrapMtpCall = function ( e , n , i ) { var a = new TLSerialization ( { mtproto : ! 0 } ) ; a . storeMethod ( e , n ) ; var r = t . generateID ( ) , o = this . generateSeqNo ( ) , s = { msg _id : r , seq _no : o , body : a . getBytes ( ) } ; return Config . Modes . debug && console . log ( dT ( ) , "MT call" , e , n , r , o ) , this . pushMessage ( s , i ) } , u . prototype . wrapMtpMessage = function ( e , n ) { n = n || { } ; var i = new TLSerialization ( { mtproto : ! 0 } ) ; i . storeObject ( e , "Object" ) ; var a = t . generateID ( ) , r = this . generateSeqNo ( n . notContentRelated ) , o = { msg _id : a , seq _no : r , body : i . getBytes ( ) } ; return Config . Modes . debug && console . log ( dT ( ) , "MT message" , e , a , r ) , this . pushMessage ( o , n ) } , u . prototype . wrapApiCall = function ( e , n , i ) { var a = new TLSerialization ( i ) ; this . connectionInited || ( a . storeInt ( 3667594509 , "invokeWithLayer" ) , a . storeInt ( Config . Schema . API . layer , "layer" ) , a . storeInt ( 3343392166 , "initConnection" ) , a . storeInt ( Config . App . id , "api_id" ) , a . storeString ( navigator . userAgent || "Unknown UserAgent" , "device_model" ) , a . storeString ( navigator . platform || "Unknown Platform" , "system_version" ) , a . storeString ( Config . App . version , "app_version" ) , a . storeString ( navigator . language || "en" , "system_lang_code" ) , a . storeString ( "" , "lang_pack" ) , a . storeString ( navigator . language || "en" , "lang_code" ) ) , i . afterMessageID && ( a . storeInt ( 3416209197 , "invokeAfterMsg" ) , a . storeLong ( i . afterMessageID , "msg_id" ) ) , i . resultType = a . storeMethod ( e , n ) ; var r = t . generateID ( ) , o = this . generateSeqNo ( ) , s = { msg _id : r , seq _no : o , body : a . getBytes ( ! 0 ) , isAPI : ! 0 } ; return Config . Modes . debug ? console . log ( dT ( ) , "Api call" , e , n , r , o , i ) : console . log ( dT ( ) , "Api call" , e ) , this . pushMessage ( s , i ) } , u . prototype . checkLongPoll = function ( e ) { var t = this . cleanupSent ( ) ; if ( this . longPollPending && tsNow ( ) < this . longPollPending || this . offline || g ) return ! 1 ; var n = this ; i . get ( "dc" ) . then ( function ( e ) { t && ( e != n . dcID || n . upload || n . sleepAfter && tsNow ( ) > n . sleepAfter ) || n . sendLongPoll ( ) } ) } , u . prototype . sendLongPoll = function ( ) { var e = 25e3 , t = this ; this . longPollPending = tsNow ( ) + e , this . wrapMtpCall ( "http_wait" , { max _delay : 500 , wait _after : 150 , max _wait : e } , { noResponse : ! 0 , longPoll : ! 0 } ) . then ( function ( ) { delete t . longPollPending , setZeroTimeout ( t . checkLongPoll . bind ( t ) ) } , function ( e ) { console . log ( "Long-poll failed" , e ) } ) } , u . prototype . pushMessage = function ( e , t ) { var n = s . defer ( ) ; return this . sentMessages [ e . msg _id ] = angular . extend ( e , t || { } , { deferred : n } ) , this . pendingMessages [ e . msg _id ] = 0 , t && t . noShedule || this . sheduleRequest ( ) , angular . isObject ( t ) && ( t . messageID = e . msg _id ) , n . promise } , u . prototype . pushResend = function ( e , t ) { var n = t ? tsNow ( ) + t : 0 , i = this . sentMessages [ e ] ; if ( i . container ) for ( var a = 0 ; a < i . inner . length ; a ++ ) this . pendingMessages [ i . inner [ a ] ] = n ; else this . pendingMess
controller : "UserModalController" , scope : a , windowClass : "user_modal_window mobile_modal" , backdrop : "single" } ) } function I ( e , t , n ) { return o . invokeApi ( "contacts.importContacts" , { contacts : [ { _ : "inputPhoneContact" , client _id : "1" , phone : e , first _name : t , last _name : n } ] , replace : ! 1 } ) . then ( function ( e ) { h ( e . users ) ; var t = ! 1 ; return angular . forEach ( e . imported , function ( e ) { D ( t = e . user _id , ! 0 ) } ) , t || ! 1 } ) } function x ( e ) { var t , n , i = [ ] ; for ( t = 0 ; t < e . length ; t ++ ) for ( n = 0 ; n < e [ t ] . phones . length ; n ++ ) i . push ( { _ : "inputPhoneContact" , client _id : ( t << 16 | n ) . toString ( 10 ) , phone : e [ t ] . phones [ n ] , first _name : e [ t ] . first _name , last _name : e [ t ] . last _name } ) ; return o . invokeApi ( "contacts.importContacts" , { contacts : i , replace : ! 1 } ) . then ( function ( e ) { h ( e . users ) ; var t = [ ] ; return angular . forEach ( e . imported , function ( e ) { D ( e . user _id , ! 0 ) , t . push ( e . user _id ) } ) , t } ) } function P ( e ) { var t = [ ] ; return angular . forEach ( e , function ( e ) { t . push ( A ( e ) ) } ) , o . invokeApi ( "contacts.deleteContacts" , { id : t } ) . then ( function ( ) { angular . forEach ( e , function ( e ) { D ( e , ! 1 ) } ) } ) } function D ( t , n ) { if ( t = parseInt ( t ) , angular . isArray ( L ) ) { var i = a = L . indexOf ( t ) , a = i != - 1 ; n != a && ( n ? ( L . push ( t ) , SearchIndexManager . indexObject ( t , p ( t ) , V ) ) : L . splice ( i , 1 ) , e . $broadcast ( "contacts_update" , t ) ) } } function R ( ) { return t . open ( { templateUrl : templateUrl ( "import_contact_modal" ) , controller : "ImportContactModalController" , windowClass : "md_simple_modal_window mobile_modal" } ) . result . then ( function ( e ) { return e ? e : a . reject ( ) } ) } function O ( t , n ) { if ( ! w ( t ) ) { var i = U [ t ] ; if ( i ) { var a = n ? { _ : "userStatusOffline" , was _online : tsNow ( ! 0 ) } : { _ : "userStatusOnline" , expires : tsNow ( ! 0 ) + 500 } ; i . status = a , i . sortStatus = v ( i . status ) , e . $broadcast ( "user_update" , t ) } } } var N , L , F , U = { } , B = { } , H = { } , j = { } , V = SearchIndexManager . createIndex ( ) ; return o . getUserID ( ) . then ( function ( e ) { F = e } ) , e . $on ( "apiUpdate" , function ( t , n ) { switch ( n . _ ) { case "updateUserStatus" : var i = n . user _id , a = U [ i ] ; a && ( a . status = n . status , a . status && ( a . status . expires && ( a . status . expires -= l . serverTimeOffset ) , a . status . was _online && ( a . status . was _online -= l . serverTimeOffset ) ) , a . sortStatus = v ( a . status ) , e . $broadcast ( "user_update" , i ) ) ; break ; case "updateUserPhoto" : var i = n . user _id , a = U [ i ] ; a && ( T ( i ) , a . photo ? safeReplaceObject ( a . photo , n . photo ) : a . photo = n . photo , void 0 !== j [ i ] && safeReplaceObject ( j [ i ] , n . photo && n . photo . photo _small || { empty : ! 0 } ) , e . $broadcast ( "user_update" , i ) ) ; break ; case "updateContactLink" : D ( n . user _id , "contactLinkContact" == n . my _link . _ ) } } ) , e . $on ( "user_auth" , function ( e , t ) { F = t && t . id || 0 } ) , setInterval ( C , 6e4 ) , e . $on ( "stateSynchronized" , C ) , { getContacts : f , saveApiUsers : h , saveApiUser : g , saveUserAccess : _ , getUser : y , getSelf : b , getUserInput : A , setUserStatus : O , forceUserOnline : T , getUserPhoto : M , getUserString : S , getUserSearchText : p , hasUser : k , isBot : w , importContact : I , importContacts : x , deleteContacts : P , wrapForFull : $ , openUser : E , resolveUsername : m , openImportContact : R } } ] ) . service ( "PhonebookContactsService" , [ "$q" , "$modal" , "$sce" , "FileManager" , function ( e , t , n , i ) { function a ( ) { if ( Config . Mobile && Config . Navigator . ffos && Config . Modes . packed ) try { return navigator . mozContacts && navigator . mozContacts . getAll } catch ( e ) { return console . error ( dT ( ) , "phonebook n/a" , e ) , ! 1 } return ! 1 } function r ( ) { return t . open ( { templateUrl : templateUrl ( "phonebook_modal" ) , controller : "PhonebookModalController" , windowClass : "phonebook_modal_window mobile_modal" } ) } function o ( ) { try { var t = window . navigator . mozContacts . getAll ( { } ) } catch ( a ) { return e . reject ( a ) } var r = e . defer ( ) , o = [ ] , s = 0 ; return t . onsuccess = function ( ) { if ( this . result ) { var e = { id : s , first _name : ( this . result . givenName || [ ] ) . join ( " " ) , last _name : ( this . result . familyName || [ ] ) . join ( " " ) , phones : [ ] } ; if ( void 0 != this . result . tel ) for ( var t = 0 ; t < this . result . tel . length ; t ++ ) e . phones . push ( this . result . tel [ t ] . value ) ; if ( this . result . photo && this . result . photo [ 0 ] ) try { e . photo = i . getUrl ( this . result . photo [ 0 ] ) } catch ( a ) { } e . photo || ( e . photo = "img/placeholders/UserAvatar" + ( Math . abs ( s ) % 8 + 1 ) + "@2x.png" ) , e . photo = n . trustAsResourceUrl ( e . photo ) , s ++ , o . push ( e ) } return ! this . result || s >= 1e3 ? void r . resolve ( o ) : void this [ "continue" ] ( ) } , t . onerror = function ( e ) { console . log ( "phonebook error" , e , e . type , e . message ) , r . reject ( e ) } , r . promise } return { isAvailable : a , openPhonebookImport : r , getPhonebookContacts : o } } ] ) . service ( "AppChatsManager" , [ "$q" , "$rootScope" , "$modal" , "_" , " MtpApiManage
} : { _ : "updateNewStickerSet" , stickerset : e } , l . processUpdateMessage ( { _ : "updateShort" , update : i } ) } ) } function y ( e ) { return b ( { _ : "inputStickerSetShortName" , short _name : e } ) } function b ( e ) { var i = t . $new ( ! 0 ) ; i . inputStickerset = e ; n . open ( { templateUrl : templateUrl ( "stickerset_modal" ) , controller : "StickersetModalController" , scope : i , windowClass : "stickerset_modal_window mobile_modal" } ) } function w ( e ) { for ( var t , n = 0 , i = 0 ; i < e . length ; i ++ ) t = e [ i ] , ! t . pFlags . disabled && t . pFlags . installed && ( n = ( 20261 * n + 2147483648 + t . hash ) % 2147483648 ) ; return n } var k = ! 1 , M = ! 1 , S = [ ] , A = { } ; return t . $on ( "apiUpdate" , function ( e , n ) { return ( "updateStickerSets" == n . _ || "updateNewStickerSet" == n . _ || "updateDelStickerSet" == n . _ || "updateStickerSetsOrder" == n . _ ) && s . get ( "all_stickers" ) . then ( function ( e ) { switch ( e && e . layer == Config . Schema . API . layer || t . $broadcast ( "stickers_changed" ) , n . _ ) { case "updateNewStickerSet" : var i = n . stickerset , a = i . set ; if ( a . pFlags . masks ) return ! 1 ; for ( var r = ! 1 , o = 0 , l = e . sets . length ; o < l ; o ++ ) if ( e . sets [ o ] . id == a . id ) { r = o ; break } r !== ! 1 && e . sets . splice ( r , 1 ) , a . pFlags . installed = ! 0 , e . sets . unshift ( a ) , e . fullSets [ a . id ] = i , p ( i ) ; break ; case "updateDelStickerSet" : for ( var a , o = 0 , l = e . sets . length ; o < l ; o ++ ) if ( a = e . sets [ o ] , a . id == n . id ) { a . pFlags . installed = ! 1 , e . sets . splice ( o , 1 ) ; break } delete e . fullSets [ n . id ] ; break ; case "updateStickerSetsOrder" : if ( n . pFlags . masks ) return ; var c = n . order ; e . sets . sort ( function ( e , t ) { return c . indexOf ( e . id ) - c . indexOf ( t . id ) } ) } e . hash = w ( e . sets ) , e . date = 0 , s . set ( { all _stickers : e } ) . then ( function ( ) { t . $broadcast ( "stickers_changed" ) } ) } ) } ) , { start : c , getStickers : d , openStickersetLink : y , openStickerset : b , installStickerset : v , pushPopularSticker : g , searchStickers : f , getStickerset : _ } } ] ) . service ( "AppInlineBotsManager" , [ "qSync" , "$q" , "$rootScope" , "toaster" , "Storage" , "ErrorService" , "MtpApiManager" , "AppMessagesManager" , "AppMessagesIDsManager" , "AppDocsManager" , "AppPhotosManager" , "AppGamesManager" , "RichTextProcessor" , "AppUsersManager" , "AppPeersManager" , "LocationParamsService" , "PeersSelectService" , "GeoLocationManager" , function ( e , t , n , i , a , r , o , s , l , c , d , u , p , f , m , h , g , _ ) { function v ( ) { return a . get ( "inline_bots_popular" ) . then ( function ( e ) { var t , n , i , a = [ ] ; if ( e && e . length ) { var r = tsNow ( ! 0 ) ; for ( t = 0 , n = e . length ; t < n ; t ++ ) r - e [ t ] [ 3 ] > 1209600 || ( i = e [ t ] [ 0 ] , f . hasUser ( i ) || f . saveApiUser ( e [ t ] [ 1 ] ) , a . push ( { id : i , rate : e [ t ] [ 2 ] , date : e [ t ] [ 3 ] } ) ) } return a } ) } function y ( e ) { v ( ) . then ( function ( t ) { for ( var i = ! 1 , a = t . length , r = [ ] , o = 0 ; o < a ; o ++ ) { t [ o ] . id == e && ( i = ! 0 , t [ o ] . rate ++ , t [ o ] . date = tsNow ( ! 0 ) ) ; var s = f . getUser ( t [ o ] . id ) ; r . push ( [ t [ o ] . id , s , t [ o ] . rate , t [ o ] . date ] ) } i ? r . sort ( function ( e , t ) { return t [ 2 ] - e [ 2 ] } ) : ( r . length > 15 && ( r = r . slice ( 0 , 15 ) ) , r . push ( [ e , f . getUser ( e ) , 1 , tsNow ( ! 0 ) ] ) ) , ConfigStorage . set ( { inline _bots _popular : r } ) , n . $broadcast ( "inline_bots_popular" ) } ) } function b ( n ) { return m . resolveUsername ( n ) . then ( function ( i ) { if ( i > 0 ) { var a = f . getUser ( i ) ; if ( a . pFlags . bot && void 0 !== a . bot _inline _placeholder ) { var r = { username : n , id : i , placeholder : a . bot _inline _placeholder } ; return a . pFlags . bot _inline _geo && _ . isAvailable ( ) ? x ( i ) . then ( function ( ) { return _ . getPosition ( ) . then ( function ( t ) { return r . geo = t , e . when ( r ) } ) } ) [ "catch" ] ( function ( ) { return e . when ( r ) } ) : e . when ( r ) } } return t . reject ( ) } , function ( e ) { return e . handled = ! 0 , t . reject ( e ) } ) } function w ( e , t , n , i , a ) { return o . invokeApi ( "messages.getInlineBotResults" , { flags : 0 | ( i ? 1 : 0 ) , bot : f . getUserInput ( t ) , peer : m . getInputPeerByID ( e ) , query : n , geo _point : i && { _ : "inputGeoPoint" , lat : i . lat , "long" : i [ "long" ] } , offset : a } , { timeout : 1 , stopTime : - 1 , noErrorBox : ! 0 } ) . then ( function ( e ) { var n = e . query _id ; return delete e . _ , delete e . flags , delete e . query _id , e . switch _pm && ( e . switch _pm . rText = p . wrapRichText ( e . switch _pm . text , { noLinebreaks : ! 0 , noLinks : ! 0 } ) ) , angular . forEach ( e . results , function ( e ) { var i = n + "_" + e . id ; e . qID = i , e . botID = t , e . rTitle = p . wrapRichText ( e . title , { noLinebreaks : ! 0 , noLinks : ! 0 } ) , e . rDescription = p . wrapRichText ( e . description , { noLinebreaks : ! 0 , noLinks : ! 0 } ) , e . initials = ( e . url || e . title || e . type || "" ) . substr ( 0 , 1 ) , e . document && c . saveDoc ( e . document ) , e . photo && d . savePhoto ( e . photo ) , P [ i ] = e } ) , e } ) } function k ( e , t , n ) { if ( e && e [ 0 ] && [ "photo" , "gif" , "sticker" ] . indexOf ( e [ 0 ] . type ) != - 1 ) { var i = [ ] ; angular . forEach ( e , function ( e ) { var t , n , a , r ; if ( "botInlineMediaResult" == e . _ ) { if ( a = e . document ) t = e . document . w , n = e . document . h ; else if ( r = e . photo ) { var o =
} } ) , t . $on ( "$routeUpdate" , f ) , f ( ) ) } function _ ( e ) { var t = e . match ( b ) ; if ( t && m ( t [ 3 ] , ! 0 ) ) return ! 0 ; var n = window . open ( e , "_blank" ) ; try { n . opener = null } catch ( i ) { } return ! ! n } function v ( n , i , a ) { var r = { } ; a && ( r . shareLinkPromise = e . when ( n ) ) , d . selectPeer ( r ) . then ( function ( e ) { t . $broadcast ( "history_focus" , { peerString : e , attachment : { _ : "share_url" , url : n , text : i } } ) } ) } function y ( e ) { return l . invokeApi ( "messages.checkChatInvite" , { hash : e } ) . then ( function ( n ) { var i ; if ( "chatInviteAlready" == n . _ ) { r . saveApiChat ( n . chat ) ; var a = ! n . chat . pFlags . left || r . isChannel ( n . chat . id ) && n . chat . username ; if ( a ) return t . $broadcast ( "history_focus" , { peerString : r . getChatString ( n . chat . id ) } ) ; i = n . chat . title } else i = n . title ; p . confirm ( { type : n . pFlags . channel && ! n . pFlags . megagroup ? "JOIN_CHANNEL_BY_LINK" : "JOIN_GROUP_BY_LINK" , title : i } ) . then ( function ( ) { return l . invokeApi ( "messages.importChatInvite" , { hash : e } ) . then ( function ( e ) { if ( c . processUpdateMessage ( e ) , e . chats && 1 == e . chats . length ) t . $broadcast ( "history_focus" , { peerString : r . getChatString ( e . chats [ 0 ] . id ) } ) ; else if ( e . updates && e . updates . length ) for ( var n , i = 0 , a = e . updates . length ; i < a ; i ++ ) if ( n = e . updates [ i ] , "updateNewMessage" == n . _ ) { t . $broadcast ( "history_focus" , { peerString : r . getChatString ( n . message . to _id . chat _id ) } ) ; break } } ) } ) } ) } var b = /^(web\+)?tg:(\/\/)?(.+)/ , w = ! 1 ; return { start : g , shareUrl : v , openUrl : _ } } ] ) . service ( "DraftsManager" , [ "$rootScope" , "qSync" , "MtpApiManager" , "ApiUpdatesManager" , "AppMessagesIDsManager" , "AppChatsManager" , "AppPeersManager" , "RichTextProcessor" , "Storage" , "ServerTimeManager" , function ( e , t , n , i , a , r , o , s , l , c ) { function d ( e , t ) { return l . get ( "draft" + e ) . then ( function ( n ) { "string" == typeof n && ( n = n . length > 0 && { text : n } ) , n || t || ( n = u ( e ) ) ; var i = n && n . replyToMsgID ; if ( i ) { var r = ! ! o . isChannel ( e ) && - e ; n . replyToMsgID = a . getFullMessageID ( i , r ) } return n } ) } function u ( e ) { var t = y [ e ] ; return void 0 !== t && t } function p ( t , n , i ) { i = i || { } ; var a = _ ( n ) ; return y [ t ] = a , i . notify && ( f ( t , a ) , e . $broadcast ( "draft_updated" , { peerID : t , draft : a , local : i . local } ) ) , a } function f ( e , t ) { e || console . trace ( "empty peerID" ) , e < 0 && ! r . hasRights ( - e , "send" ) && ( t = ! 1 ) , t || ( t = { text : "" , replyToMsgID : 0 } ) , t . replyToMsgID = t . replyToMsgID ? a . getMessageLocalID ( t . replyToMsgID ) : 0 ; var n = "draft" + e ; if ( g ( t ) ) l . remove ( n ) ; else { var i = { } ; i [ n ] = t , l . set ( i ) } } function m ( e , t ) { f ( e ) , i . processUpdateMessage ( { _ : "updateShort" , update : { _ : "updateDraftMessage" , peer : o . getOutputPeer ( e ) , draft : { _ : "draftMessageEmpty" } , local : ! 0 } } ) , t && v ( e ) } function h ( e , t ) { var n = g ( e ) , i = g ( t ) ; return ! ( ! n || ! i ) || n == i && ( e . replyToMsgID == t . replyToMsgID && e . text == t . text ) } function g ( e ) { return ! e || ! ( e . replyToMsgID > 0 ) && ( "string" != typeof e . text || ! e . text . length ) } function _ ( e ) { if ( ! e || "draftMessage" != e . _ ) return ! 1 ; var t = s . parseEntities ( e . message ) , n = e . entities || [ ] ; t = s . mergeEntities ( t , n ) ; var i = s . wrapDraftText ( e . message , { entities : t } ) , a = s . wrapRichText ( e . message , { noLinks : ! 0 , noLinebreaks : ! 0 } ) ; return { text : i , richMessage : a , replyToMsgID : e . reply _to _msg _id || 0 , date : e . date - c . serverTimeOffset } } function v ( e ) { d ( e , ! 0 ) . then ( function ( t ) { var i = y [ e ] ; if ( ! h ( i , t ) ) { var a , r = { flags : 0 , peer : o . getInputPeerByID ( e ) } ; if ( g ( t ) ) a = { _ : "draftMessageEmpty" } , r . message = "" ; else { a = { _ : "draftMessage" } ; var l = t . text , d = [ ] ; l = s . parseEmojis ( l ) , l = s . parseMarkdown ( l , d , ! 0 ) , t . replyToMsgID > 0 && ( r . flags |= 1 , r . reply _to _msg _id = t . replyToMsgID , a . reply _to _msg _id = t . replyToMsgID ) , d . length && ( r . flags |= 8 , r . entities = d , a . entities = d ) , r . message = l , a . message = l } n . invokeApi ( "messages.saveDraft" , r ) . then ( function ( ) { a . date = tsNow ( ! 0 ) + c . serverTimeOffset , p ( e , a , { notify : ! 0 , local : ! 0 } ) } ) } } ) } var y = { } ; return e . $on ( "apiUpdate" , function ( e , t ) { if ( "updateDraftMessage" == t . _ ) { var n = o . getPeerID ( t . peer ) ; p ( n , t . draft , { notify : ! 0 , local : t . local } ) } } ) , { getDraft : d , getServerDraft : u , saveDraft : p , changeDraft : f , clearDraft : m , syncDraft : v } } ] ) , angular . module ( "myApp.controllers" , [ "myApp.i18n" ] ) . controller ( "AppWelcomeController" , [ "$scope" , "$location" , "MtpApiManager" , "ChangelogNotifyService" , "LayoutSwitchService" , function ( e , t , n , i , a ) { n . getUserID ( ) . then ( function ( e ) { return e ? void t . url ( "/im" ) : "http:" != location . protocol || Config . Modes . http || Config . App . domains . indexOf ( location . hostname ) == - 1 ? void t . url ( "/login" ) : void ( location . href = location . href . replace ( /^http:/ , "https:" ) ) } ) , i . checkUpdate ( ) , a . start ( ) } ] ) . controller ( " AppLoginController
n . push ( t ) } ) , n . length && i . open ( { templateUrl : templateUrl ( "report_msgs_modal" ) , controller : "ReportMessagesModalController" , windowClass : "md_simple_modal_window mobile_modal" , scope : e . $new ( ) } ) . result . then ( function ( e ) { L ( ) , d . reportMessages ( n , e ) . then ( function ( ) { var e = r . pop ( { type : "info" , body : o ( "confirm_modal_report_success" ) , bodyOutputType : "trustedHtml" , clickHandler : function ( ) { r . clear ( e ) } , showCloseButton : ! 1 } ) } ) } ) } function V ( t ) { t || 1 != e . selectedCount || angular . forEach ( e . selectedMsgs , function ( e , n ) { t = n } ) , t && ( L ( ) , e . $broadcast ( "reply_selected" , t ) ) } function q ( t ) { t || 1 != e . selectedCount || angular . forEach ( e . selectedMsgs , function ( e , n ) { t = n } ) , t && ( L ( ) , e . $broadcast ( "edit_selected" , t ) ) } function z ( ) { e . historyState . selectActions ? L ( ) : ( e . historyState . selectActions = "selected" , e . $broadcast ( "ui_panel_update" ) ) } function W ( t ) { return "search" == t ? void a . $broadcast ( "history_search" , e . curDialog . peerID ) : ( e . historyFilter . mediaType = t || ! 1 , t && ( e . curDialog . messageID = ! 1 ) , Y . messages = [ ] , Y . ids = [ ] , e . state . empty = ! 0 , void E ( ) ) } function G ( ) { e . historyFilter . mediaType ? W ( ) : e . curDialog . messageID ? a . $broadcast ( "history_focus" , { peerString : e . curDialog . peer } ) : E ( ! 0 ) } e . $watchCollection ( "curDialog" , y ) , p . attach ( ) , m . start ( ) , h . start ( ) , e . peerHistories = [ ] , e . selectedMsgs = { } , e . selectedCount = 0 , e . historyState . selectActions = ! 1 , e . historyState . botActions = ! 1 , e . historyState . channelActions = ! 1 , e . historyState . canDelete = ! 1 , e . historyState . canReply = ! 1 , e . historyState . missedCount = 0 , e . historyState . skipped = ! 1 , e . state = { } , e . toggleMessage = O , e . selectedDelete = U , e . selectedForward = H , e . selectedReply = V , e . selectedEdit = q , e . selectedCancel = L , e . selectedFlush = F , e . selectedReport = j , e . selectInlineBot = N , e . startBot = x , e . cancelBot = P , e . joinChannel = D , e . togglePeerMuted = R , e . toggleEdit = z , e . toggleMedia = W , e . returnToRecent = G , e . $on ( "history_edit_toggle" , z ) , e . $on ( "history_edit_flush" , F ) , e . $on ( "history_media_toggle" , function ( e , t ) { W ( t ) } ) , e . $on ( "history_return_recent" , G ) ; var K , Y = ! 1 , X = ! 1 , J = ! 1 , Z = ! 1 , Q = 0 , ee = 0 , te = ! 1 , ne = { photos : "inputMessagesFilterPhotos" , video : "inputMessagesFilterVideo" , documents : "inputMessagesFilterDocument" , audio : "inputMessagesFilterVoice" , round : "inputMessagesFilterRoundVideo" , music : "inputMessagesFilterMusic" , urls : "inputMessagesFilterUrl" , mentions : "inputMessagesFilterMyMentions" } , ie = 0 , ae = 0 , re = ! 1 , oe = ! 1 , se = 0 , le = ! 1 , ce = ! 1 ; e . $on ( "history_update" , angular . noop ) ; var de = ! 1 ; e . $on ( "stateSynchronized" , function ( ) { de && ( de == e . curDialog . peerID && E ( ) , de = ! 1 ) } ) , e . $on ( "reply_button_press" , function ( t , n ) { var i = e . historyState . replyKeyboard ; if ( i ) { var a = { replyToMsgID : K < 0 && i . mid } ; switch ( n . _ ) { case "keyboardButtonRequestPhone" : _ . confirm ( { type : "BOT_ACCESS_PHONE" } ) . then ( function ( ) { var e = l . getSelf ( ) ; d . sendOther ( K , { _ : "inputMediaContact" , phone _number : e . phone , first _name : e . first _name , last _name : e . last _name } , a ) } ) ; break ; case "keyboardButtonRequestGeoLocation" : _ . confirm ( { type : "BOT_ACCESS_GEO" } ) . then ( function ( ) { return v . getPosition ( ) . then ( function ( e ) { d . sendOther ( K , { _ : "inputMediaGeoPoint" , geo _point : { _ : "inputGeoPoint" , lat : e . lat , "long" : e [ "long" ] } } , a ) } , function ( e ) { _ . alert ( o ( "error_modal_bad_request_title_raw" ) , o ( "error_modal_gelocation_na_raw" ) ) } ) } ) ; break ; default : d . sendText ( K , n . text , a ) } } } ) , e . $on ( "history_reload" , function ( t , n ) { n == e . curDialog . peerID && E ( ) } ) , e . $on ( "history_forbidden" , function ( n , i ) { i == e . curDialog . peerID && t . url ( "/im" ) , k ( i ) } ) , e . $on ( "dialog_migrate" , function ( t , n ) { if ( n . migrateFrom == e . curDialog . peerID ) { var i = u . getPeerString ( n . migrateTo ) ; a . $broadcast ( "history_focus" , { peerString : i } ) } k ( n . migrateFrom ) } ) , e . $on ( "notify_settings" , function ( t , n ) { n . peerID == e . curDialog . peerID && A ( ) } ) , e . $on ( "channel_settings" , function ( t , n ) { n . channelID == - e . curDialog . peerID && A ( ) } ) ; var ue = { } ; e . $on ( "history_append" , function ( t , i ) { var r = w ( i . peerID ) ; if ( r ) { var o = i . peerID == e . curDialog . peerID ; if ( o ) { if ( e . historyFilter . mediaType || e . historyState . skipped ) return void ( i . my ? G ( ) : e . historyState . missedCount ++ ) ; e . curDialog . messageID && i . my && G ( ) , delete e . state . empty } var s = d . wrapForHistory ( i . messageID ) ; r . messages . push ( s ) , r . ids . push ( i . messageID ) , d . regroupWrappedHistory ( r . messages , - 3 ) && e . $broadcast ( "messages_regroup" ) , o && ( e . historyState . typing . splice ( 0 , e . historyState . typing . length ) , e . $broadcast ( "ui_history_append_new" , { my : i . my , i
peerString : e . chatFull . peerString } ) : ( t . close ( ) , n . url ( "/im" ) ) } ) } ) } , e . inviteViaLink = function ( ) { var t = a . $new ( ) ; t . chatID = e . chatID , r . open ( { templateUrl : templateUrl ( "chat_invite_link_modal" ) , controller : "ChatInviteLinkModalController" , scope : t , windowClass : "md_simple_modal_window" } ) } , e . photo = { } , e . $watch ( "photo.file" , y ) , e . deletePhoto = function ( ) { e . photo . updating = ! 0 , d . invokeApi ( "messages.editChatPhoto" , { chat _id : s . getChatInput ( e . chatID ) , photo : { _ : "inputChatPhotoEmpty" } } ) . then ( v ) [ "finally" ] ( function ( ) { e . photo . updating = ! 1 } ) } , e . editTitle = function ( ) { var t = a . $new ( ) ; t . chatID = e . chatID , r . open ( { templateUrl : templateUrl ( "chat_edit_modal" ) , controller : "ChatEditModalController" , scope : t , windowClass : "md_simple_modal_window mobile_modal" } ) } , e . hasRights = function ( t ) { return s . hasRights ( e . chatID , t ) } } ] ) . controller ( "ChannelModalController" , [ "$scope" , "$timeout" , "$rootScope" , "$modal" , "AppUsersManager" , "AppChatsManager" , "AppProfileManager" , "AppPhotosManager" , "MtpApiManager" , "MtpApiFileManager" , "NotificationsManager" , "AppMessagesManager" , "AppPeersManager" , "ApiUpdatesManager" , "ContactsSelectService" , "ErrorService" , function ( e , t , n , i , a , r , o , s , l , c , d , u , p , f , m , h ) { function g ( t ) { f . processUpdateMessage ( t ) , n . $broadcast ( "history_focus" , { peerString : e . chatFull . peerString } ) , t && t . updates && t . updates . length && r . isChannel ( e . chatID ) && o . invalidateChannelParticipants ( e . chatID ) } function _ ( t ) { t && t . type && 0 === t . type . indexOf ( "image" ) && ( e . photo . updating = ! 0 , c . uploadFile ( t ) . then ( function ( t ) { return l . invokeApi ( "channels.editPhoto" , { channel : r . getChannelInput ( e . chatID ) , photo : { _ : "inputChatUploadedPhoto" , file : t } } ) . then ( g ) } ) [ "finally" ] ( function ( ) { e . photo . updating = ! 1 } ) ) } e . chatFull = r . wrapForFull ( e . chatID , { } ) , e . settings = { notifications : ! 0 } , e . isMegagroup = r . isMegagroup ( e . chatID ) , o . getChannelFull ( e . chatID , ! 0 ) . then ( function ( t ) { e . chatFull = r . wrapForFull ( e . chatID , t ) , e . $broadcast ( "ui_height" ) , d . getPeerMuted ( - e . chatID ) . then ( function ( t ) { e . settings . notifications = ! t , e . $watch ( "settings.notifications" , function ( t , n ) { return t !== n && void d . getPeerSettings ( - e . chatID ) . then ( function ( n ) { t ? n . mute _until = 0 : n . mute _until = 2e9 , d . updatePeerSettings ( - e . chatID , n ) } ) } ) } ) , e . chatFull . chat && e . chatFull . chat . pFlags . creator && e . chatFull . exported _invite && "chatInviteEmpty" == e . chatFull . exported _invite . _ && o . getChatInviteLink ( e . chatID , ! 0 ) . then ( function ( t ) { e . chatFull . exported _invite = { _ : "chatInviteExported" , link : t } } ) } ) , o . getChannelParticipants ( e . chatID ) . then ( function ( t ) { e . participants = r . wrapParticipants ( e . chatID , t ) , e . $broadcast ( "ui_height" ) } ) , e . leaveChannel = function ( ) { return h . confirm ( { type : e . isMegagroup ? "MEGAGROUP_LEAVE" : "CHANNEL_LEAVE" } ) . then ( function ( ) { l . invokeApi ( "channels.leaveChannel" , { channel : r . getChannelInput ( e . chatID ) } ) . then ( g ) } ) } , e . deleteChannel = function ( ) { return h . confirm ( { type : e . isMegagroup ? "MEGAGROUP_DELETE" : "CHANNEL_DELETE" } ) . then ( function ( ) { l . invokeApi ( "channels.deleteChannel" , { channel : r . getChannelInput ( e . chatID ) } ) . then ( g ) } ) } , e . flushHistory = function ( ) { h . confirm ( { type : "HISTORY_FLUSH" } ) . then ( function ( ) { u . flushHistory ( - e . chatID ) . then ( function ( ) { n . $broadcast ( "history_focus" , { peerString : e . chatFull . peerString } ) } ) } ) } , e . joinChannel = function ( ) { l . invokeApi ( "channels.joinChannel" , { channel : r . getChannelInput ( e . chatID ) } ) . then ( g ) } , e . inviteToChannel = function ( ) { var t = [ ] ; angular . forEach ( ( e . chatFull . participants || { } ) . participants || [ ] , function ( e ) { t . push ( e . user _id ) } ) , m . selectContacts ( { disabled : t } ) . then ( function ( t ) { var n = [ ] ; angular . forEach ( t , function ( e ) { n . push ( a . getUserInput ( e ) ) } ) , l . invokeApi ( "channels.inviteToChannel" , { channel : r . getChannelInput ( e . chatID ) , users : n } ) . then ( g ) } ) } , e . kickFromChannel = function ( t ) { l . invokeApi ( "channels.editBanned" , { channel : r . getChannelInput ( e . chatID ) , user _id : a . getUserInput ( t ) , banned _rights : { _ : "channelBannedRights" , flags : 1 , until _date : 0 } } ) . then ( g ) } , e . shareLink = function ( t ) { var a = n . $new ( ) ; return a . chatID = e . chatID , i . open ( { templateUrl : templateUrl ( "chat_invite_link_modal" ) , controller : "ChatInviteLinkModalController" , scope : a , windowClass : "md_simple_modal_window" } ) , cancelEvent ( t ) } , e . photo = { } , e . $watch ( "photo.file" , _ ) , e . deletePhoto = function ( ) { e . photo . updating = ! 0 , l . invokeApi ( "channels.editPhoto" , { channel : r . getChannelInput ( e . chatID ) , photo : { _ : " input
if ( r ) { if ( ! i || Ke . query !== t ) { Ke . query = t ; var o = SearchIndexManager . search ( t , Ge ) ; Ke . dialogs = [ ] , angular . forEach ( Ue . dialogs , function ( e ) { o [ e . peerID ] && Ke . dialogs . push ( e ) } ) , Ke . count = Ke . dialogs . length } a = Ke } else Ke . query = ! 1 ; var s = 0 ; if ( n > 0 ) for ( s = 0 ; s < a . dialogs . length && ! ( n > a . dialogs [ s ] . index ) ; s ++ ) ; return i = i || 20 , r || ot || a . dialogs . length >= s + i ? e . when ( { dialogs : a . dialogs . slice ( s , s + i ) } ) : P ( i ) . then ( function ( ) { if ( s = 0 , n > 0 ) for ( s = 0 ; s < a . dialogs . length && ! ( n > a . dialogs [ s ] . index ) ; s ++ ) ; return { dialogs : a . dialogs . slice ( s , s + i ) } } ) } function E ( t ) { var n = I ( t ) ; return n . length ? e . when ( n [ 0 ] ) : e . when ( { peerID : t , top _message : 0 , index : R ( D ( ) ) , pFlags : { } } ) } function I ( e ) { for ( var t = 0 ; t < Ue . dialogs . length ; t ++ ) if ( Ue . dialogs [ t ] . peerID == e ) return [ Ue . dialogs [ t ] , t ] ; return [ ] } function x ( e ) { var n = c . getPeerID ( e . peer ) ; if ( ! n ) return ! 1 ; var i = c . isChannel ( n ) ? - n : 0 , a = c . getPeerSearchText ( n ) ; SearchIndexManager . indexObject ( n , a , Ge ) ; c . isMegagroup ( i ) ; if ( e . top _message ) var r = f . getFullMessageID ( e . top _message , i ) , d = z ( r ) ; else { var r = ze -- , d = { _ : "message" , id : r , mid : r , from _id : s . getSelf ( ) . id , to _id : c . getOutputPeer ( n ) , deleted : ! 0 , flags : 0 , pFlags : { unread : ! 1 , out : ! 0 } , date : 0 , message : "" } ; ie ( [ d ] ) } var u = d . date ; if ( ! i && n < 0 ) { var p = l . getChat ( - n ) ; if ( p && p . migrated _to && p . pFlags . deactivated ) { var h = c . getPeerID ( p . migrated _to ) ; return dt [ n ] = h , void ( ut [ h ] = n ) } } e . top _message = r , e . read _inbox _max _id = f . getFullMessageID ( e . read _inbox _max _id , i ) , e . read _outbox _max _id = f . getFullMessageID ( e . read _outbox _max _id , i ) ; var g = d . date ; if ( i ) { var _ = l . getChat ( i ) ; ( ! g || _ . date && _ . date > g ) && ( g = _ . date ) } var v = m . saveDraft ( n , e . draft ) ; v && v . date > g && ( g = v . date ) , e . pFlags . pinned && ( g = D ( ) ) , e . index = R ( g ) , e . peerID = n , O ( e , u ) ; var y = d . pFlags . out ? "read_outbox_max_id" : "read_inbox_max_id" ; if ( d . mid && d . mid > e [ y ] && ( d . pFlags . unread = ! 0 ) , void 0 === Fe [ n ] && ! d . deleted ) { var b = { count : null , history : [ ] , pending : [ ] } ; b [ r > 0 ? "history" : "pending" ] . push ( r ) , r < 0 && d . pFlags . unread && e . unread _count ++ , Fe [ n ] = b , V ( b , d ) && t . $broadcast ( "history_reply_markup" , { peerID : n } ) } if ( w . savePeerSettings ( n , e . notify _settings ) , i && e . pts && o . addChannelState ( i , e . pts ) , Config . Modes . packed && ! i && e . unread _count > 0 && nt && e . top _message > nt && d . pFlags . unread && ! d . pFlags . out ) { var k = 16 & d . flags ? d . from _id : n ; w . getPeerMuted ( k ) . then ( function ( e ) { e || $e ( d ) } ) } } function P ( e ) { var n = Ue . dialogs , i = 0 , r = 0 , o = 0 , d = 0 , u = 0 ; return st && ( i = st + y . serverTimeOffset , d = 65536 * st , u |= 1 ) , _ . invokeApi ( "messages.getDialogs" , { flags : u , offset _date : i , offset _id : f . getMessageLocalID ( r ) , offset _peer : c . getInputPeerByID ( o ) , limit : e } , { timeout : 300 } ) . then ( function ( e ) { i || S . setAuthorized ( ! 0 ) , s . saveApiUsers ( e . users ) , l . saveApiChats ( e . chats ) , ie ( e . messages ) ; var r = ! ! i , o = ! 1 ; e . dialogs . reverse ( ) , angular . forEach ( e . dialogs , function ( e ) { x ( e ) , d && e . index > d && ( ht [ e . peerID ] = e , o = ! 0 ) , r || c . isChannel ( c . getPeerID ( e . peer ) ) || ( Te ( e . top _message ) , r = ! 0 ) } ) , e . dialogs . reverse ( ) , ( ! e . dialogs . length || ! e . count || n . length >= e . count ) && ( ot = ! 0 ) , o && ! mt ? mt = a ( Ie , 0 ) : t . $broadcast ( "dialogs_multiupdate" , { } ) } ) } function D ( ) { return 2147483392 + ( 255 & lt ++ ) } function R ( e ) { return void 0 === e && ( e = tsNow ( ! 0 ) + y . serverTimeOffset ) , 65536 * e + ( 65535 & ++ ct ) } function O ( e , t ) { var n = Ue . dialogs , i = I ( e . peerID ) [ 1 ] ; if ( void 0 !== i && n . splice ( i , 1 ) , t && ! e . pFlags . pinned && ( ! st || t < st ) ) { if ( void 0 !== i ) return ! 1 ; st = t } var a , r = e . index , o = n . length ; if ( ! o || r < n [ o - 1 ] . index ) n . push ( e ) ; else if ( r >= n [ 0 ] . index ) n . unshift ( e ) ; else for ( a = 0 ; a < o ; a ++ ) if ( r > n [ a ] . index ) { n . splice ( a , 0 , e ) ; break } } function N ( t , n , i , a ) { var r = c . isChannel ( t ) ; r && c . isMegagroup ( t ) ; return _ . invokeApi ( "messages.getHistory" , { peer : c . getInputPeerByID ( t ) , offset _id : n ? f . getMessageLocalID ( n ) : 0 , add _offset : a || 0 , limit : i || 0 } , { timeout : 300 , noErrorBox : ! 0 } ) . then ( function ( e ) { s . saveApiUsers ( e . users ) , l . saveApiChats ( e . chats ) , ie ( e . messages ) , r && o . addChannelState ( - t , e . pts ) ; var n = e . messages . length ; return n && e . messages [ n - 1 ] . deleted && ( e . messages . splice ( n - 1 , 1 ) , n -- , e . count -- ) , t < 0 || ! s . isBot ( t ) || n == i && i < e . count ? e : M . getProfile ( t ) . then ( function ( n ) { var i = n . bot _info && n . bot _info . description ; if ( i ) { var a = ze -- , r = { _ : "messageService" , id : a , from _id : t , to _id : c . getOutputPeer ( t ) , flags : 0 , pFlags : { } , date : tsNow ( ! 0 ) + y . serverTimeOffset , action : { _ : "messageActionBotIntro" , description : i } } ; ie ( [ r ] ) , e . messages . push ( r ) , e . count && e . count ++ } return e } ) } , function ( n ) { switch ( n . type ) { case "CHANNEL_PRIVATE" : var i = l . getChat ( - t ) ;
var a ; a = i > 0 ? _ . invokeApi ( "channels.getMessages" , { channel : l . getChannelInput ( i ) , id : e } ) : _ . invokeApi ( "messages.getMessages" , { id : e } ) , a . then ( function ( e ) { s . saveApiUsers ( e . users ) , l . saveApiChats ( e . chats ) , ie ( e . messages ) , t . $broadcast ( "messages_downloaded" , n . mids [ i ] ) } ) } ) } } function Se ( ) { if ( tt !== ! 1 && ( clearTimeout ( tt ) , tt = ! 1 ) , et . length ) { var e = et . slice ( ) ; et = [ ] ; var t = f . splitMessageIDsByChannels ( e ) ; angular . forEach ( t . msgIDs , function ( e , n ) { _ . invokeApi ( "messages.getMessagesViews" , { peer : c . getInputPeerByID ( - n ) , id : e , increment : ! 0 } ) . then ( function ( e ) { if ( n ) { for ( var i = t . mids [ n ] , a = [ ] , r = 0 ; r < i . length ; r ++ ) a . push ( { _ : "updateChannelMessageViews" , channel _id : n , id : i [ r ] , views : e [ r ] } ) ; o . processUpdateMessage ( { _ : "updates" , updates : a , chats : [ ] , users : [ ] } ) } } ) } ) } } function Ae ( e , t ) { if ( ! e || ! e . length ) return ! 1 ; var n , i , a , r , o , s , l , d = 0 , u = e . length , p = u , f = ! 1 , m = ! Config . Mobile ; for ( t > 0 ? p = Math . min ( t , u ) : t < 0 && ( d = Math . max ( 0 , p + t ) ) , n = d ; n < p ; n ++ ) if ( e [ n ] . deleted ) e . splice ( n , 1 ) , p -- ; else { if ( r = e [ n ] , i = Math . floor ( ( r . date + y . midnightOffset ) / 86400 ) , l = o && o . grouped , s = r . grouped , i === a ? r . needDate && ( delete r . needDate , f = ! 0 ) : n && ! o || r . needDate || ( r . needDate = ! 0 , f = ! 0 ) , r . fwdFromID && r . media && r . media . document && ( r . media . document . sticker || r . media . document . audioTitle ) && ( r . fromID != ( o || { } ) . fromID || ! ( o || { } ) . fwdFromID ) && ( delete r . fwdFromID , r . _ = "message" ) , r . views && ! Qe [ r . mid ] && ( Qe [ r . mid ] = ! 0 , et . push ( r . mid ) , tt === ! 1 && ( tt = setTimeout ( Se , 1e4 ) ) ) , ( ! c . isBroadcast ( ge ( r ) ) || r . fwdFromID ) && o && o . fromID == r . fromID && ! o . fwdFromID == ! r . fwdFromID && o . viaBotID == r . viaBotID && ! o . action && ! r . action && r . date < o . date + 900 ) { var h = r . message && r . message . length < 70 && r . message . indexOf ( "\n" ) == - 1 && ! r . reply _to _mid ; m && r . fwdFromID && r . fwdFromID == o . fwdFromID && r . viaBotID == o . viaBotID ? r . grouped = h ? "im_grouped_fwd_short" : "im_grouped_fwd" : r . grouped = ! r . fwdFromID && h ? "im_grouped_short" : "im_grouped" , m && r . fwdFromID && ( o . grouped || ( o . grouped = "im_grouped_fwd_start" ) , r . grouped && n == u - 1 && ( r . grouped += " im_grouped_fwd_end" ) ) } else ! o && n || ( delete r . grouped , m && o && o . grouped && o . fwdFromID && ( o . grouped += " im_grouped_fwd_end" ) ) ; f || l == ( o && o . grouped ) || ( f = ! 0 ) , o = r , a = i } return f || s == ( o && o . grouped ) || ( f = ! 0 ) , f } function Ce ( e , t , n ) { var i , a = ! 1 ; if ( e . media ) switch ( e . media . _ ) { case "messageMediaPhoto" : i = d . choosePhotoSize ( e . media . photo , t , n ) ; break ; case "messageMediaDocument" : i = e . media . document . thumb , e . media . document . sticker && ( a = ! 0 ) } if ( i && "photoSizeEmpty" != i . _ ) { var r = calcImageInBox ( i . w , i . h , t , n , ! 0 ) , o = { width : r . w , height : r . h , location : i . location , size : i . size } ; return a && ( o . location . sticker = ! 0 ) , o } return ! 1 } function Te ( e ) { return ! ( ! e || nt && ! ( e > nt ) ) && ( k . set ( { max _seen _msg : e } ) , void _ . invokeApi ( "messages.receivedMessages" , { max _id : e } ) ) } function $e ( e , n ) { n = n || { } ; var i , a , r = ge ( e ) , o = { } , c = ! 1 , d = w . getNotifySettings ( ) ; if ( e . fwdFromID && n . fwd _count ) c = at ( n . fwd _count ) ; else if ( e . message ) c = d . nopreview ? T ( "conversation_message_sent" ) : b . wrapPlainText ( e . message ) ; else if ( e . media ) { var u = ! 1 ; switch ( e . media . _ ) { case "messageMediaPhoto" : c = T ( "conversation_media_photo_raw" ) , u = "🖼" ; break ; case "messageMediaDocument" : switch ( e . media . document . type ) { case "gif" : c = T ( "conversation_media_gif_raw" ) , u = "🎬" ; break ; case "sticker" : c = T ( "conversation_media_sticker" ) ; var p = e . media . document . stickerEmojiRaw ; void 0 !== p && ( c = b . wrapPlainText ( p ) + " " + c ) ; break ; case "video" : c = T ( "conversation_media_video_raw" ) , u = "📹" ; break ; case "round" : c = T ( "conversation_media_round_raw" ) , u = "📹" ; break ; case "voice" : case "audio" : c = T ( "conversation_media_audio_raw" ) ; break ; default : e . media . document . file _name ? c = b . wrapPlainText ( "📎 " + e . media . document . file _name ) : ( c = T ( "conversation_media_document_raw" ) , u = "📎" ) } break ; case "messageMediaGeo" : case "messageMediaVenue" : c = T ( "conversation_media_location_raw" ) , u = "📍" ; break ; case "messageMediaContact" : c = T ( "conversation_media_contact_raw" ) ; break ; case "messageMediaGame" : c = b . wrapPlainText ( "🎮 " + e . media . game . title ) ; break ; case "messageMediaUnsupported" : c = T ( "conversation_media_unsupported_raw" ) ; break ; default : c = T ( "conversation_media_attachment_raw" ) } u !== ! 1 && e . media . caption && ( c = b . wrapPlainText ( u + " " + e . media . caption ) ) } else if ( "messageService" == e . _ ) switch ( e . action . _ ) { case "messageActionChatCreate" : c = T ( "conversation_group_created_raw" ) ; break ; case "messageActionChatEditTitle" : c = T ( " conversation _group _
e . put ( "partials/mobile/channel_modal.html" , '<div class="chat_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" dropdown ng-if="hasRights(\'edit_title\') || hasRights(\'edit_photo\')">\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="chatFull.chat.photo.photo_small" ng-if="hasRights(\'edit_photo\')">\n <a ng-click="deletePhoto()" my-i18n="group_modal_menu_delete_photo"></a>\n </li>\n <li ng-if="hasRights(\'edit_title\')">\n <a ng-click="editChannel()" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_menu_edit_group"></span>\n <span ng-switch-default my-i18n="channel_modal_menu_edit"></span>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title" ng-switch="isMegagroup">\n <h4>\n <span ng-switch-when="true" my-i18n="group_modal_info"></span>\n <span ng-switch-default my-i18n="channel_modal_info"></span>\n </h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::-chatFull.chat.id" img-class="mobile_user_modal_image mobile_chat_modal_image" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" my-peer-link="-chatFull.chat.id"></h4>\n <p class="mobile_user_modal_status" ng-if="chatFull.participants_count > 0" ng-switch="isMegagroup">\n <ng-pluralize ng-switch-when="true"\n count="chatFull.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n <ng-pluralize ng-switch-default\n count="chatFull.participants_count"\n when="group_modal_pluralize_subscribers">\n </ng-pluralize>\n </p>\n </div>\n\n </div>\n\n <div class="mobile_modal_section" ng-if="chatFull.chat.username">\n <h4 class="mobile_modal_section_header" my-i18n="channel_modal_share_link"></h4>\n <div class="mobile_modal_section_value">\n <a class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="\'https://t.me/\' + chatFull . chat . username " ng-href=" https : //t.me/{{chatFull.chat.username}}" target="_blank"></a>\n </div>\n </div>\n\n <div class="mobile_modal_section" ng-if="!chatFull.chat.username && chatFull.chat.pFlags.creator">\n <h4 class="mobile_modal_section_header" my-i18n="channel_modal_share_link"></h4>\n <div class="mobile_modal_section_value" ng-switch="chatFull.exported_invite._">\n <a ng-switch-when="chatInviteExported" class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="chatFull.exported_invite.link" ng-href="{{chatFull.exported_invite.link}}" target="_blank"></a>\n <span ng-switch-default my-i18n="channel_modal_share_loading">\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n
e . put ( "partials/mobile/head.html" , '<div class="tg_page_head">\n <div class="navbar navbar-static-top navbar-inverse" role="navigation" ng-class="{navbar_peer_not_selected: !curDialog.peer, navbar_offline: offline, navbar_history_select: historyState.selectActions}">\n <div class="container">\n\n\n <a class="navbar-peer-wrap" my-peer-photolink="historyPeer.id" peer-watch="true"></a>\n\n <div class="navbar-toggle-wrap dropdown" dropdown ng-switch="!curDialog.peer">\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul ng-switch-when="true" class="dropdown-menu">\n <li><a ng-click="openGroup()" my-i18n="head_new_group"></a></li>\n <li><a ng-click="importContact()" my-i18n="head_new_contact"></a></li>\n <li ng-if="!isEmpty.contacts"><a ng-click="openContacts()" my-i18n="head_contacts"></a></li>\n <li><a ng-click="openSettings()" my-i18n="head_settings"></a></li>\n <li><a ng-click="logOut()" my-i18n="head_log_out"></a></li>\n </ul>\n <ul ng-switch-default class="dropdown-menu">\n <li><a ng-click="toggleEdit()" my-i18n="head_select_messages"></a></li>\n <li ng-if="!historyFilter.mediaType" class="divider"></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'photos\')" my-i18n="head_media_photos"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'video\')" my-i18n="head_media_video"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'documents\')" my-i18n="head_media_documents"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'music\')" my-i18n="head_media_music"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'urls\')" my-i18n="head_media_links"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'audio\')" my-i18n="head_media_audio"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'round\')" my-i18n="head_media_round"></a></li>\n <li ng-if="!historyFilter.mediaType && isHistoryPeerGroup()" class="divider"></li>\n <li ng-if="!historyFilter.mediaType && isHistoryPeerGroup()"><a ng-click="toggleMedia(\'mentions\' ) " my-i18n=" head _media _mymentions "></a></li>\n </ul>\n </div>\n\n <a class=" navbar - search - wrap " ng-click=" toggleSearch ( ) ">\n <i class=" icon - search "></i>\n </a>\n\n <div class=" navbar - header ">\n\n <a class=" navbar - brand tg _logo _wrap " href=" # / im "><i class=" icon icon - tg - logo "></i><i class=" icon icon - tg - title "></i></a>\n\n <span class=" tg _head _logo "></span></a>\n\n <div class=" tg _head _peer _menu _wrap " ng-switch=" curDialog . peer & amp ; & amp ; historyFilter . mediaType . length > 0 ">\n <ul ng-switch-when=" true " class=" nav navbar - nav navbar - quick - nav ">\n <li>\n <a ng-click=" toggleMedia ( ) " class=" navbar - quick - media - back ">\n <i class=" icon icon - back "></i>\n <div class=" navbar - quick - back - title " ng-switch=" historyFilter . mediaType ">\n <h4 ng-switch-when=" photos " my-i18n=" im _media _photos "></h4>\n <h4 ng-switch-when=" video " my-i18n=" im _media _video "></h4>\n <h4 ng-switch-when=" documents " my-i18n=" im _media _documents "></h4>\n <h4 ng-switch-when=" audio " my-i18n=" im _media _audio "></h4>\n <h4 ng-switch-when=" round " my-i18n=" im _media _round "></h4>\n <h4 ng-switch-when=" music " my-i18n=" im _media _music "></h4>\n <h4 ng-switch-when=" urls " my-i18n=" im _media _links "></h4>\n <h4 ng-switch-when=" mentions " my-i18n=" im _media _mentions "></h4>\n </div>\n </a>\n </li>\n </ul>\n <div ng-switch-default ng-switch=" historyState . selectActions " > \ n < ul ng - swi
e . put ( "partials/mobile/message_actions_modal.html" , '<div class="message_actions_modal_wrap" my-modal-position>\n\n <div class="message_actions_wrap">\n <button ng-if="historyState.canReply" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_reply" ng-click="$close(\'reply\')"></button>\n <button ng-if="historyState.canEdit" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_edit" ng-click="$close(\'edit\')"></button>\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_forward" ng-click="$close(\'forward\')"></button>\n <button ng-if="historyState.canDelete" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_delete" ng-click="$close(\'delete\')"></button>\n <button ng-if="historyState.canReport" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_report" ng-click="$close(\'report\')"></button>\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_select" ng-click="$close(\'select\')"></button>\n <button class="btn btn-md btn-block" my-i18n="message_action_cancel" ng-click="$dismiss()"></button>\n </div>\n\n</div>\n' ) , e . put ( "partials/mobile/message_attach_contact.html" , '<div class="im_message_contact">\n <a ng-if="::media.user_id > 0" class="im_message_contact_photo pull-left" my-peer-photolink="media.user_id" img-class="im_message_contact_photo" user-override="media"></a>\n <div class="im_message_contact_name" ng-switch="media.user_id > 0">\n <a ng-switch-when="true" my-peer-link="media.user_id" user-override="media"></a>\n <span ng-switch-default ng-bind-html="::media.rFullName"></span>\n </div>\n <div class="im_message_contact_phone" ng-bind="::media.phone_number | phoneNumber"></div>\n</div>' ) , e . put ( "partials/mobile/message_attach_document.html" , '<div ng-switch="::media.document.type">\n\n <div ng-switch-when="gif" my-load-gif document="media.document"></div>\n \n <div ng-switch-when="round" my-load-round document="media.document"></div>\n\n <div ng-switch-when="sticker" my-load-sticker document="media.document" open="true"></div>\n\n <div ng-switch-when="voice" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="audio" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="video" class="im_message_video im_message_document_thumbed">\n <a class="im_message_video_thumb" href="" ng-click="videoOpen()" ng-style="::{width: media.document.thumb.width + \'px\' } ">\n <span class=" im _message _video _duration " ng-bind=" : : media . document . duration | duration "></span>\n <i class=" icon icon - videoplay "></i>\n <img\n class=" im _message _video _thumb im _message _video _thumb _blurred "\n my-load-thumb\n thumb=" media . document . thumb "\n />\n </a>\n </div>\n\n <div ng-switch-default class=" im _message _document clearfix " ng-class=" { im _message _document _thumbed : ! ! media . document . thumb , im _message _document _progress : media . document . progress . enabled } ">\n\n <a ng-if=" : : ! media . document . thumb " class=" im _message _file _button " ng-click=" docOpen ( ) " ng-class=" { im _message _file _button _dl _doc : media . document . downloaded } ">\n <i class=" im _message _file _button _icon "></i>\n </a>\n <a ng-if=" : : media . document . thumb " ng-click=" docOpen ( ) ">\n <div class=" im _message _document _thumb _wrap ">\n <img\n class=" im _message _document _thumb "\n my-load-thumb\n thumb=" media . document . thumb "\n />\n </div>\n </a>\n\n <div class=" im _message _document _info ">\n <div class=" im _message _document _name _wrap ">\n <a href=" " ng-attr-data-name=" { { media _file _name _without _ext } } " ng-attr-data-ext=" { { media _file _ext } } " ng-click=" docOpen ( ) " class=" im _message _document _name "></a>\n <span class=" im _message _document _size " ng-if=" ! media . document . progress . enabled " ng-bind=" : : media . document . size | formatSize "></span>\n <span class=" im _message _document _size " ng-if=" media . document . progress . enabled "
e . put ( "partials/mobile/send_form.html" , '<form class="im_send_form" ng-class="{im_send_form_empty: !draftMessage.text.length && draftMessage.type != \'edit\', composer_progress_enabled: draftMessage.inlineProgress, im_voice_recording: voiceRecorder.recording, im_processing_recording: voiceRecorder.processing}">\n\n <div class="im_send_reply_wrap" ng-if="draftMessage.replyToMsgID > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.replyClear(true)"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <a class="im_message_reply_wrap" my-reply-message="draftMessage.replyToMsgID" watch="true" edit="{{draftMessage.type == \'edit\'}}"></a>\n </div>\n\n <div class="im_send_reply_wrap im_send_fwds_wrap" ng-if="draftMessage.fwdMessages.length > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.fwdsClear()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <div class="im_message_reply_wrap" my-forwarded-messages="draftMessage.fwdMessages"></div>\n </div>\n\n <div class="im_send_field_panel">\n\n <div class="im_voice_recorder_wrap">\n <div class="im_recorder_indicator"><i></i></div>\n <div class="im_recorder_time" ng-bind="voiceRecorder.duration | duration"></div>\n <div class="im_recorder_label" ng-switch="voiceRecorder.processing">\n <span ng-switch-when="true" my-i18n="im_voice_processing_label">\n <my-i18n-param name="dots"></my-i18n-param>\n </span>\n <span ng-switch-default>\n <span class="im_recorder_label_hover" my-i18n="im_voice_recording_label"></span>\n <span class="im_recorder_label_hout" my-i18n="im_voice_recording_cancel_label"></span>\n </span>\n </div>\n </div>\n\n <div class="im_send_field_wrap" ng-class="replyKeyboard._ == \'replyKeyboardMarkup\' ? \'im_send_field_wrap_2ndbtn\' : \'\'">\n <a class="composer_emoji_insert_btn pull-right"><i class="icon icon-emoji"></i></a>\n <a class="composer_command_btn" ng-show="!replyKeyboard && commands.list.length > 0 && (!draftMessage.text.length || draftMessage.text[0] == \'/\')" ng-mousedown="draftMessage.toggleSlash($event)" ng-class="draftMessage.text[0] == \'/\' ? \'active\' : \'\'"><i class="icon icon-slash"></i></a>\n <a class="composer_keyboard_btn" ng-show="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-mousedown="draftMessage.replyKeyboardToggle($event)" ng-class="!replyKeyboard.pFlags.hidden ? \'active\' : \'\'"><i class="icon icon-keyboard"></i></a>\n\n <div class="composer_progress_icon_wrap">\n <div class="composer_progress_icon" my-arc-progress width="22" stroke="2.5"></div>\n </div>\n\n <div class="im_send_dropbox_wrap" my-i18n="im_photos_drop_text"></div>\n <textarea ng-model="draftMessage.text" class="form-control im_message_field no_outline" dir="auto" ng-trim="false"></textarea>\n </div>\n\n <div class="im_attach pull-left">\n <input type="file" class="im_attach_input" size="28" multiple="true" title="{{\'im_media_attach_title\' | i18n}}" />\n <i class="icon icon-paperclip"></i>\n </div>\n\n <div class="im_record pull-right" title="{{\'im_voice_record_title\' | i18n}}">\n <i class="icon icon-mic"></i>\n </div>\n\n <button type="submit" class="btn btn-success im_submit"></button>\n </div>\n\n\n <div class="im_send_keyboard_wrap" ng-if="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-show="!replyKeyboard.pFlags.hidden">\n <div my-reply-markup="replyKeyboard"></div>\n </div>\n\n</form>\n' ) , e . put ( "partials/mobile/sessions_list_modal.html" , ' < div class = "sessions_modal_wrap" > \ n \ n < div class = "tg_page_head tg_modal_head" > \ n < div class = "navbar navbar-static-top navbar-inverse" > \ n < div class = "container" > \ n \ n < div class = "navbar-header" > \ n < ul class = "nav navbar-nav navbar-quick-nav" > \ n < li > \ n < a ng - click = "$dismiss()" class = "navbar-quick-media-back" > \ n < i class = "icon icon-back" > < / i > \ n < d i v c l a s s = " n a v b a r - q u i c k - b a c k - t i t l e " > \ n
e . put ( "partials/desktop/channel_edit_modal.html" , '<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateChannel()">\n\n <h4 my-i18n="channel_edit_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="channel_edit_name"></label>\n <input class="md-input" my-focused type="text" ng-model="channel.title" />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="channel_edit_about"></label>\n <input class="md-input" type="text" ng-model="channel.about" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: channel.updating}" ng-click="updateChannel()" ng-bind="channel.updating ? \'channel_edit_submit_active\' : \'channel_edit_submit\' | i18n" ng-disabled="channel.updating"></button>\n </div>\n\n</div>' ) , e . put ( "partials/desktop/channel_modal.html" , '<div class="chat_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-if="hasRights(\'edit_title\')" ng-click="editChannel()" my-i18n="modal_edit"></a>\n </div>\n <div class="md_modal_title" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_info"></span>\n <span ng-switch-default my-i18n="channel_modal_info"></span>\n </div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\n <i></i><i></i><i></i>\n </div>\n <a ng-switch-default ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="peer_modal_photo" my-peer-photolink="::-chatFull.chat.id" img-class="peer_modal_photo" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name" my-peer-link="-chatFull.chat.id" verified="true"></div>\n <div class="peer_modal_profile_description" ng-if="chatFull.participants_count > 0" ng-switch="isMegagroup">\n <ng-pluralize ng-switch-when="true"\n count="chatFull.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n <ng-pluralize ng-switch-default\n count="chatFull.participants_count"\n when="group_modal_pluralize_subscribers">\n </ng-pluralize>\n </div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions" ng-switch="hasRights(\'edit_photo\')">\n <div ng-switch-when="true" class="md_modal_split_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'group_modal_update_photo\' | i18n}}" />\n <i class="md_modal_split_action_camera"></i>\n </div>\n <a ng-switch-default class="md_modal_split_action" href="" ng-click="goToHistory()" title="{{\'user_modal_send_message\' | i18n } } ">\n <i class=" md _modal _split _action _msg "></i>\n </a>\n </div>\n </div>\n\n <div class=" md _modal _body ">\n\n <div class=" md _modal _sections clearfix ">\n\n <div class=" md _modal _iconed _section _wrap md _modal _iconed _section _number " ng-if=" chatFull . rAbout || chatFull . chat . username || chatFull . chat . pFlags . crea
e . put ( "partials/desktop/country_select_modal.html" , '<div class="countries_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head md_modal_head_simple">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\n </div>\n </div>\n <div class="md_modal_title" my-i18n="country_select_modal_title"></div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="countries_modal_search">\n <input class="form-control countries_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="countries_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n\n </div>\n\n <div class="countries_modal_col" my-countries-list>\n\n <div class="countries_wrap nano" my-infinite-scroller>\n <div class="countries_scrollable_wrap nano-content">\n\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\n\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\n <a class="countries_modal_country" ng-click="$close(country)">\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n' ) , e . put ( "partials/desktop/dialog.html" , '<a class="im_dialog" ng-mousedown="dialogSelect(dialogMessage.peerString, dialogMessage.unreadCount == -1 && dialogMessage.mid)">\n\n <div class="im_dialog_meta pull-right text-right">\n <div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div>\n <span\n class="im_dialog_badge badge ng-hide"\n ng-show="dialogMessage.unreadCount > 0 && !dialogMessage.pFlags.out"\n ng-bind="dialogMessage.unreadCount"\n my-peer-muted="dialogMessage.peerID" muted-class="im_dialog_badge_muted"\n ></span>\n <i\n class="im_dialog_unread ng-hide"\n ng-show="dialogMessage.pFlags.out && dialogMessage.pFlags.unread"\n ></i>\n <i\n class="im_dialog_pinned ng-hide"\n ng-show="dialogMessage.pinned && !dialogMessage.unreadCount && !dialogMessage.pFlags.unread"\n ></i>\n </div>\n\n <i class="icon icon-select-tick" ng-class="{dialog_selected: isSelected(dialogMessage.peerString)}" ng-mousedown="dialogMultiSelect(dialogMessage.peerString, $event)"></i>\n \n <div class="im_dialog_photo pull-left" my-peer-photolink="::dialogMessage.peerID" img-class="im_dialog_photo" watch="true" for-dialog="!dialogMessage.foundInHistory"></div>\n\n <div class="im_dialog_message_wrap">\n\n <div class="im_dialog_peer">\n <span my-peer-link="dialogMessage.peerID" verified="true" for-dialog="!dialogMessage.foundInHistory"></span>\n </div>\n\n <div ng-switch="dialogMessage.typing ? \'typing\' : (!dialogMessage.unreadCount && dialogMessage.draft ? \'draft\' : (dialogMessage.deleted ? \'deleted\' : \'message\' ) ) ">\n\n <div ng-switch-when=" typing " class=" im _dialog _message ">\n <span class=" im _short _message _service " my-i18n=" im _conversation _group _typing ">\n <my-i18n-param name=" name "><span my-peer-link=" dialogMessage . typing " short=" true " class=" im _dialog _chat _from _wrap "></span></my-i18n-param><my-i18n-param name=" dots "><span my-loading-dots></span></my-i18n-param>\n </span>\n </div>\n\n <div ng-switch-when=" draft " class=" im _dialog _message ">\n <span class=" im _dialog _chat _from _wrap ">\n <span class=" im _dialog _draft _from " my-i18n=" conversation _draft "></span>\n </span>\n <span class=" im _short _message _text " ng-bind-html=" dialogMessage . draft . richMessage " > < / s p a n > \ n < / d i v >
e . put ( "partials/desktop/im.html" , '<div my-head></div>\n\n<div class="im_page_wrap clearfix" ng-class="{im_page_peer_not_selected: !curDialog.peer}">\n\n <div class="im_page_split clearfix">\n\n <div class="im_dialogs_col_wrap noselect" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n } } " ng-model=" search . query " autocomplete=" off " />\n <a class=" im _dialogs _search _clear tg _search _clear " ng-click=" searchClear ( ) " ng-show=" search . query . length ">\n <i class=" icon icon - search - clear "></i>\n </a>\n </div>\n </div>\n\n <div my-dialogs-list class=" im _dialogs _col ">\n <div class=" im _dialogs _wrap nano ">\n <div class=" im _dialogs _scrollable _wrap nano - content ">\n\n <div class=" im _dialogs _empty _wrap " ng-if=" isEmpty . dialogs && isEmpty . contacts ">\n <h3 class=" im _dialogs _empty _header " my-i18n=" im _no _contacts "></h3>\n <p class=" im _dialogs _empty _lead " my-i18n=" im _get _started _long "></p>\n <button type=" button " class=" btn btn - primary btn - sm " ng-click=" importContact ( ) " my-i18n=" im _add _contact "></button>\n <button ng-if=" phonebookAvailable " type=" button " class=" btn btn - primary btn - sm im _dialogs _import _phonebook " ng-click=" importPhonebook ( ) " my-i18n=" im _import _phonebook "></button>\n </div>\n\n <ul class=" nav nav - pills nav - stacked ">\n <li class=" im _dialog _wrap " ng-if=" searchPeer ">\n <a class=" im _dialog im _dialog _searchpeer disabled " ng-mousedown=" setSearchPeer ( ) ">\n\n <div class=" im _dialog _meta pull - right ">\n <div class=" im _dialog _clear _searchpeer ">\n <!-- <i class=" icon icon - clear - searchpeer "></i> -->\n <i class=" icon icon - search - clear "></i>\n </div>\n </div>\n\n <div class=" im _dialog _photo pull - left " my-peer-photolink=" searchPeer " img-class=" im _dialog _photo " watch=" true " for-dialog=" true "></div>\n\n <div class=" im _dialog _message _wrap ">\n\n <div class=" im _dialog _peer ">\n <span my-peer-link=" searchPeer " for-dialog=" true "></span>\n </div>\n\n <div class=" im _dialog _message ">\n <span class=" " my-i18n=" conversation _search _peer "></span>\n </div>\n\n </div>\n\n </a>\n\n </li>\n <li class=" im _dialog _wrap " my-dialog dialog-message=" dialogMessage " ng-repeat=" dialogMessage in dialogs track by dialogMessage . peerID " ng-class=" { active : curDialog . peerID == dialogMessage . peerID } "></li>\n </ul>\n\n <div class=" im _dialogs _contacts _wrap " ng-show=" myResults . length > 0 ">\n <h5 my-i18n=" im _chat _contacts _title "></h5>\n <ul class=" nav nav - pills nav - stacked ">\n <li class=" im _dialog _wrap " ng-repeat=" myResult in myResults track by myResult . id " ng-class=" { active : curDialog . peerID == myResult . id } ">\n <a class=" im _dialog " ng-mousedown=" dialogSelect ( myResult . peerString ) ">\n <div class=" im _dialog _photo pull - left " my-peer-photolink=" myResult . id " img-class=" im _dialog _photo " watch=" true " for-dialog=" true "></div>\n <div class=" im _dialog _message _wrap ">\n <div class=" im _dialog _peer ">\n <span class=" im _dialog _user " my-peer-link=" myResult . id " verified=" true " for-dialog=" true "></span>\n </div>\n <div class=" im _dialog _message " ng-switch=" myResult . id > 0 ">\n <span ng-switch-when=" true " class=" im _dialog _message _text " my-user-status=" : : myResult . id " for-dialog=" true " > < / s p a n > \ n < s p a n
e . put ( "partials/desktop/media_modal_layout.html" , '<div tabindex="-1" role="dialog" class="modal" ng-style="{\'z-index\': 1050 + index*10}" ng-click="close($event)" modal-transclude></div>' ) , e . put ( "partials/desktop/megagroup_edit_modal.html" , '<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateChannel()">\n\n <h4 my-i18n="channel_edit_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_edit_name"></label>\n <input class="md-input" my-focused type="text" ng-model="channel.title" />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_edit_about"></label>\n <input class="md-input" type="text" ng-model="channel.about" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: channel.updating}" ng-click="updateChannel()" ng-bind="channel.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="channel.updating"></button>\n </div>\n\n</div>' ) , e . put ( "partials/desktop/message.html" , ' <div class="im_message_outer_wrap hasselect" ng-click="toggleMessage(historyMessage.mid, $event)" data-msg-id="{{::historyMessage.id}}">\n\n <div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == \'messageService\'">\n\n <div class="im_service_message_wrap" ng-switch-when="true" ng-switch="historyMessage.action._ == \'messageActionBotIntro\'">\n <div ng-switch-when="true" class="im_bot_intro_message_wrap">\n <div class="im_bot_intro_message_header" my-i18n="message_service_bot_intro_header"></div>\n <div class="im_bot_intro_message" ng-bind-html="::historyMessage.action.rDescription"></div>\n </div>\n <div ng-switch-default class="im_service_message">\n <a class="im_message_author" ng-if="::historyMessage.fromID > 0" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\n <span class="im_message_service" my-service-message="historyMessage"></span>\n </div>\n\n <a ng-if="::historyMessage.action._ == \'messageActionChatEditPhoto\' || historyMessage.action._ == \'messageActionChannelEditPhoto\'" class="im_service_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.action.photo.id)">\n <img\n class="im_service_message_photo_thumb"\n my-load-thumb\n thumb="historyMessage.action.photo.thumb"\n />\n </a>\n\n </div>\n\n <div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.pFlags.out ? \'im_message_out\' : \'im_message_in\', historyMessage.fwdFromID ? \'im_message_fwd\' : \'\']">\n <i class="icon icon-select-tick"></i>\n\n <a class="im_message_error_btn" ng-if="::historyMessage.pending || historyMessage.error || false" ng-click="historyMessage.send()">\n <i class="icon-message-status" tooltip="{{\'message_action_retry\' | i18n } } "></i>\n </a>\n <i ng-if=" : : historyMessage . pFlags . unread & amp ; & amp ; historyMessage . pFlags . out || historyMessage . pending || false " class=" icon - message - status " ng-show=" ! historyMessage . error "></i>\n\n <a class=" im _message _from _photo pull - left " my-peer-photolink=" : : historyMessage . fromID " img-class=" im _message _from _photo "></a>\n\n <div class=" im _message _meta pull - right text - right noselect ">\n <div class=" im _message _views _wrap " ng-if=" : : ! historyMessage . fwdFromID && historyMessage . views > 0 ">\n <div class=" im _message _views ">\n <i class=" icon - message - views "></i><span class=" im _message _views _cnt " my-message-views=" historyMessage . mid "></span>\n </div>\n </div>\n <span class=" im _message _date clickable ">\n <span class=" im _message _edited " my - message - e
e . put ( "partials/desktop/photo_modal.html" , '<div class="modal_prev_wrap" ng-class="{modal_prev_active_wrap: nav.hasPrev}" ng-click="nav.prev($event)">\n <div class="modal_prev"></div>\n</div>\n<div class="modal_next_wrap" ng-class="{modal_next_active_wrap: nav.hasNext}" ng-click="nav.next($event)">\n <div class="modal_next"></div>\n</div>\n<div class="modal_close_wrap modal_close_wrap_wnext" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="canForward" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="canDelete" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="!webpageID && photo.user_id">\n <a class="media_modal_author_photo pull-left" my-peer-photolink="photo.user_id" img-class="media_modal_author_photo" watch="true"></a>\n <div class="media_modal_author_name">\n <a class="media_modal_author" my-peer-link="photo.user_id" peer-watch="true"></a>\n </div>\n <div class="media_modal_date" ng-if="photo.date > 0" ng-switch="messageID > 0">\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="photo.date | dateOrTime :true"></a>\n <span ng-switch-default ng-bind="photo.date | dateOrTime :true"></span>\n </div>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="webpageID">\n <div class="media_modal_author_name">\n <a class="media_modal_author" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\n </div>\n <div class="media_modal_date" ng-bind="webpage.site_name || webpage.display_url"></div>\n </div>\n\n <div class="media_modal_title_wrap" ng-switch="count > 1 && pos > 0">\n <my-i18n ng-switch-when="true" msgid="media_modal_photo_index">\n <my-i18n-param name="pos" ng-bind="pos"></my-i18n-param>\n <my-i18n-param name="count" ng-bind="count"></my-i18n-param>\n </my-i18n>\n <my-i18n ng-switch-default msgid="media_modal_photo">\n </div>\n </div>\n</div>\n\n<div class="modal-dialog" my-modal-nav next="nav.next()" prev="nav.prev()">\n <div class="modal-content">\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body">\n\n <div class="photo_modal_image_wrap" my-load-full-photo full-photo="photo.full" thumb-location="photo.thumb.location" ng-click="nav.next()"></div>\n\n </div>\n\n </div>\n </div>\n</div>\n\n' ) , e . put ( "partials/desktop/pinned_message.html" , '<span ng-switch="pinnedMessage.loading"><span ng-switch-when="true" my-i18n="im_reply_loading"><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param></span><span ng-switch-default my-short-message="pinnedMessage"></span></span>' ) , e . put ( "partials/desktop/profile_edit_modal.html" , '<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateProfile()">\n\n <h4 my-i18n="profile_edit_modal_title"></h4>\n\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'first_name\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="profile_edit_first_name"></label>\n <input class="md-input" my-focused type="text" ng-model="profile.first_name" />\n </div>\n\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'last_name\' } " my - labeled -
e . put ( "partials/desktop/user_modal.html" , '<div class="user_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-if="user.pFlags.contact" ng-click="importContact(true)" my-i18n="modal_edit"></a>\n </div>\n <div class="md_modal_title" my-i18n="user_modal_contact_info"></div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left">\n <a ng-click="openUserPic()" class="peer_modal_photo" ng-class="{disabled: !user.photo.photo_id}" ng-disabled="!user.photo.photo_id" my-peer-photolink="::user.id" img-class="peer_modal_photo" no-open="true"></a>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name" my-peer-link="user.id" verified="true"></div>\n <div class="peer_modal_profile_description" my-user-status="::user.id"></div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions">\n <a class="md_modal_split_action" href="" ng-click="goToHistory()" title="{{\'user_modal_send_message\' | i18n}}">\n <i class="md_modal_split_action_msg"></i>\n </a>\n </div>\n </div>\n\n\n <div class="md_modal_body">\n\n <div class="md_modal_sections clearfix">\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number" ng-if="user.phone || user.username || rAbout">\n <i class="md_modal_section_icon md_modal_section_icon_phone"></i>\n\n <div class="md_modal_section_param_wrap" ng-if="user.phone">\n <div class="md_modal_section_param_value" ng-bind="user.phone | phoneNumber"></div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_phone"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="user.username">\n <div class="md_modal_section_param_value">\n <span ng-bind="\'@\' + user.username"></span>\n </div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_username"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="rAbout">\n <div class="md_modal_section_param_value">\n <span ng-bind-html="rAbout"></span>\n </div>\n <div class="md_modal_section_param_name" my-i18n="user_modal_about"></div>\n </div>\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\n\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label" my-i18n="user_modal_notifications"></span>\n </a>\n\n </div>\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-init="f.showMoreActions = !user.phone.length">\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\n\n <div class="md_modal_section_link_wrap" ng-if="user.pFlags.bot && !user.pFlags.bot_nochats">\n <a class="md_modal_section_link" ng-click="inviteToGroup()" my-i18n="user_modal_add_to_group"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="bot_info.commands.settings != null">\n <a class="md_modal_section_link" ng-click="sendCommand(\'settings\')" my-i18n="user_modal_bot_settings"></a>\n </div>\n\n <div class="md_modal_section_link_wrap" ng-if="bot_info.commands.help != null">\n <a class="md_modal_section_link" ng-click="sendCommand(\'help\' ) " my-i18n=" user _modal _bot _help "></a>\n </div>\n\n <div class=" m
this . richTextareaEl . html ( u ) , setRichFocus ( i , $ ( "#composer_sel" + this . selId ) [ 0 ] , ! 0 ) ) } else { var a , p , f , m , i = this . textareaEl [ 0 ] , o = i . value , s = this . isActive ? getFieldSelection ( i ) : o . length , l = o . substr ( s ) , c = o . substr ( 0 , s ) , d = c . match ( /@([\S]*)$/ ) ; a = d && d [ 0 ] ? c . substr ( 0 , d . index ) + "@" + e : c + "@" + e , n ? ( p = a + "@" + e + " " + l , f = d . index + e . length + 2 ) : ( p = a + "@" + e + " (" + t + ") " + l , f = d . index + e . length + 2 , m = f + t . length ) , i . value = p , setFieldSelection ( i , f , m ) } this . hideSuggestions ( ) , this . onChange ( ) } , MessageComposer . prototype . onCommandSelected = function ( e , t ) { if ( t ) if ( this . richTextareaEl ) this . richTextareaEl . html ( encodeEntities ( e ) + " " ) , setRichFocus ( this . richTextareaEl [ 0 ] ) ; else { var n = this . textareaEl [ 0 ] ; n . value = e + " " , setFieldSelection ( n ) } else this . onCommandSend ( e ) ; this . hideSuggestions ( ) , this . onChange ( ) } , MessageComposer . prototype . onChange = function ( e ) { if ( this . richTextareaEl ) { delete this . keyupStarted ; var t = getRichValue ( this . richTextareaEl [ 0 ] ) ; this . textareaEl . val ( t ) . trigger ( "change" ) } this . updateInlinePlaceholder ( ) } , MessageComposer . prototype . getEmojiHtml = function ( e , t ) { t = t || EmojiHelper . emojis [ e ] ; var n = 20 , i = EmojiHelper . spritesheetPositions [ e ] , a = i [ 0 ] , r = ( i [ 1 ] , n * i [ 3 ] ) , o = n * i [ 2 ] ; return '<img src="img/blank.gif" alt=":' + encodeEntities ( t [ 1 ] ) + ':" data-code="' + encodeEntities ( e ) + '" class="emoji emoji-w20 emoji-spritesheet-' + a + '" style="background-position: -' + r + "px -" + o + 'px;" onresizestart="return false" />' } , MessageComposer . prototype . setValue = function ( e ) { this . richTextareaEl ? ( this . richTextareaEl . html ( this . getRichHtml ( e ) ) , this . lastLength = e . length , this . wasEmpty = ! e . length , this . onKeyEvent ( { type : "keyup" } ) ) : this . textareaEl . val ( e ) } , MessageComposer . prototype . setFocusedValue = function ( e ) { var t = e [ 0 ] , n = e [ 1 ] , i = e [ 2 ] ; if ( this . richTextareaEl ) { this . selId = ( this . selId || 0 ) + 1 ; var a = this . getRichHtml ( t ) + '<span id="composer_sel' + this . selId + '">' + this . getRichHtml ( n ) + "</span>" + this . getRichHtml ( i ) ; this . richTextareaEl . html ( a ) , setRichFocus ( this . richTextareaEl [ 0 ] , $ ( "#composer_sel" + this . selId ) [ 0 ] , ! 0 ) } else this . textareaEl . val ( t + n + i ) , setFieldSelection ( this . textareaEl [ 0 ] , t . length , t . length + n . length ) } , MessageComposer . prototype . getRichHtml = function ( e ) { var t = $ ( "<div>" ) . text ( e ) . html ( ) ; return t = t . replace ( /\n/g , "<br/>" ) , t = t . replace ( /:([A-Za-z0-9\-\+\*_]+?):/gi , function ( e , t ) { var n = EmojiHelper . shortcuts [ t ] ; return void 0 !== n ? this . getEmojiHtml ( n ) : e } . bind ( this ) ) , t = t . replace ( / /g , " " ) . replace ( /^ | $/g , " " ) } , MessageComposer . prototype . focus = function ( ) { this . richTextareaEl ? setZeroTimeout ( function ( ) { setRichFocus ( this . richTextareaEl [ 0 ] ) } . bind ( this ) ) : setFieldSelection ( this . textareaEl [ 0 ] ) } , MessageComposer . prototype . blur = function ( ) { this . richTextareaEl ? this . richTextareaEl [ 0 ] . blur ( ) : this . textareaEl [ 0 ] . blur ( ) } , MessageComposer . prototype . renderSuggestions = function ( ) { this . autoCompleteWrapEl . show ( ) , this . scroller . reinit ( ) , this . updatePosition ( ) , this . autocompleteShown = ! 0 } , MessageComposer . prototype . showEmojiSuggestions = function ( e ) { var t = ++ this . renderToggleCnt , n = this ; setZeroTimeout ( function ( ) { n . autoCompleteScope . $apply ( function ( ) { n . autoCompleteScope . type = "emoji" , n . autoCompleteScope . emojiCodes = e } ) , onContentLoaded ( function ( ) { t == n . renderToggleCnt && n . renderSuggestions ( ) } ) } ) } , MessageComposer . prototype . showMentionSuggestions = function ( e ) { var t = ++ this . renderToggleCnt , n = this ; setZeroTimeout ( function ( ) { n . autoCompleteScope . $apply ( function ( ) { n . autoCompleteScope . type = "mentions" , n . autoCompleteScope . mentionUsers = e } ) , onContentLoaded ( function ( ) { t == n . renderToggleCnt && n . renderSuggestions ( ) } ) } ) } , MessageComposer . prototype . showCommandsSuggestions = function ( e ) { var t = ++ this . renderToggleCnt , n = this ; setZeroTimeout ( function ( ) { n . autoCompleteScope . $apply ( function ( ) { n . autoCompleteScope . type = "commands" , n . autoCompleteScope . commands = e } ) , onContentLoaded ( function ( ) { t == n . renderToggleCnt && n . renderSuggestions ( ) } ) } ) } , MessageComposer . prototype . showInlineSuggestions = function ( e ) { if ( ! e || ! e . results . length ) return void this . hideSuggestions ( ) ; var t = ++ this . renderToggleCnt , n = this ; "inline" == n . autoCompleteScope . type && n . autoCompleteScope . botResults == e && n . autocompleteShown || setZeroTimeout ( function ( ) { n . autoCompleteScope . $apply ( function ( ) { n . autoCompleteScope . type = "inline" , n . autoCompleteScope . botResults = e } ) , onContentL
q . audioContext && ( q . scriptProcessorNode && q . scriptProcessorNode . disconnect ( ) , q . clearStream ( ) , q . audioContext . close ( ) , q . audioContext = null ) ) ) : void ( ie = ! 0 ) } function v ( ) { _ ( ) , s . voiceRecorder . recording && ( i . cancel ( W ) , s . $apply ( function ( ) { s . voiceRecorder . recording = ! 1 , s . voiceRecorder . duration = 0 } ) ) } function y ( ) { c . get ( "send_ctrlenter" ) . then ( function ( e ) { ae = ! e } ) } function b ( e ) { return n ( function ( ) { M ( ) , s . draftMessage . send ( ) , Y . resetTyping ( ) , K && K . update ( ) , Y . hideSuggestions ( ) } , h ? 0 : 100 ) , cancelEvent ( e ) } function w ( e ) { s . $apply ( function ( ) { s . draftMessage . inlineResultID = e } ) } function k ( e ) { return 38 == e . keyCode ? ( s . $emit ( "last_message_edit" ) , cancelEvent ( e ) ) : ( s . $emit ( "history_direction_key" , e ) , ! 0 ) } function M ( ) { X && ( Y . onChange ( ) , S ( ) ) } function S ( ) { var e = X . offsetHeight ; re != e && ( re = e , s . $emit ( "ui_editor_resize" ) ) } function A ( e ) { if ( ! ( 9 != e . keyCode || e . shiftKey || e . ctrlKey || e . metaKey || o . getTop ( ) ) ) return Y . focus ( ) , cancelEvent ( e ) } function C ( ) { onContentLoaded ( function ( ) { Y . focus ( ) } ) } function T ( e ) { var n = e . type || "" , i = t . when ( ! 1 ) ; [ "image/jpeg" , "image/gif" , "image/png" , "image/bmp" ] . indexOf ( n ) >= 0 && ( i = m . getFileCorrectUrl ( e , n ) ) , i . then ( function ( t ) { t = t || ! 1 , p . confirm ( { type : "FILE_CLIPBOARD_PASTE" , fileUrl : t } ) . then ( function ( ) { s . draftMessage . files = [ e ] , s . draftMessage . isMedia = ! 0 } ) } ) } function E ( e ) { var t , n , i = ( e . originalEvent || e ) . clipboardData , a = i && i . items || [ ] , r = [ ] ; for ( t = 0 ; t < a . length ; t ++ ) "file" == a [ t ] . kind && ( n = a [ t ] . getAsFile ( ) , r . push ( n ) ) ; if ( r . length > 0 ) { if ( 1 == r . length ) return T ( r [ 0 ] ) ; p . confirm ( { type : "FILES_CLIPBOARD_PASTE" , files : r } ) . then ( function ( ) { s . draftMessage . files = r , s . draftMessage . isMedia = ! 0 } ) } } function I ( e ) { var t = ! 1 ; return x && 1 != x || ( x = checkDragEvent ( e ) ? 2 : 1 , t = ! 0 ) , 2 == x && ( P && setTimeout ( function ( ) { clearTimeout ( P ) , P = ! 1 } , 0 ) , "dragenter" == e . type || "dragover" == e . type ? t && ( $ ( F ) . css ( { height : D . offsetHeight , width : D . offsetWidth } ) , l . addClass ( "im_send_form_dragging" ) ) : ( "drop" == e . type && s . $apply ( function ( ) { s . draftMessage . files = Array . prototype . slice . call ( e . originalEvent . dataTransfer . files ) , s . draftMessage . isMedia = ! 0 } ) , P = setTimeout ( function ( ) { l . removeClass ( "im_send_form_dragging" ) , x = ! 1 , P = ! 1 } , 300 ) ) ) , cancelEvent ( e ) } var x , P , D = $ ( ".im_send_field_wrap" , l ) [ 0 ] , R = $ ( "textarea" , l ) [ 0 ] , O = $ ( ".composer_emoji_insert_btn" , l ) [ 0 ] , N = $ ( ".composer_emoji_panel" , l ) [ 0 ] , L = $ ( "input" , l ) , F = $ ( ".im_send_dropbox_wrap" , l ) [ 0 ] , U = $ ( ".im_submit" , l ) [ 0 ] , B = $ ( ".im_voice_recorder_wrap" , l ) [ 0 ] , H = $ ( ".im_record" , l ) [ 0 ] , j = r ( '<a class="composer_sticker_btn" data-sticker="{{::document.id}}" my-load-sticker document="document" thumb="true" img-class="composer_sticker_image"></a>' ) , V = { } , q = null , z = Recorder . isRecordingSupported ( ) , W = null ; z && l . addClass ( "im_record_supported" ) , s . voiceRecorder = { duration : 0 , recording : ! 1 , processing : ! 1 } ; var G = new EmojiTooltip ( O , { getStickers : function ( e ) { d . getStickers ( ) . then ( e ) } , getStickerImage : function ( e , t ) { var n = e . attr ( "data-category" ) , i = V [ t ] ; if ( i && ! isInDOM ( i [ 0 ] ) ) return i . attr ( "data-category" , n ) , void e . replaceWith ( i ) ; var a = s . $new ( ! 0 ) ; a . document = u . getDoc ( t ) , j ( a , function ( i ) { V [ t ] = i , i . attr ( "data-category" , n ) , e . replaceWith ( i ) } ) } , onStickersetSelected : function ( e ) { d . openStickersetLink ( e ) } , onEmojiSelected : function ( e ) { s . $apply ( function ( ) { Y . onEmojiSelected ( e ) } ) } , onStickerSelected : function ( e ) { s . $apply ( function ( ) { s . draftMessage . sticker = e } ) } , langpack : { im _emoji _tab : e ( "im_emoji_tab" ) , im _stickers _tab : e ( "im_stickers_tab" ) } } ) ; s . $on ( "stickers_changed" , function ( ) { G . onStickersChanged ( ) } ) ; var K ; N && ( K = new EmojiPanel ( N , { onEmojiSelected : function ( e ) { Y . onEmojiSelected ( e ) } } ) ) ; var Y = new MessageComposer ( R , { onTyping : function ( ) { s . $emit ( "ui_typing" ) } , getSendOnEnter : function ( ) { return ae } , dropdownDirective : function ( e , t ) { var n = s . $new ( ! 0 ) ; r ( "<div><div my-composer-dropdown></div></div>" ) ( n , function ( n , i ) { e . replaceWith ( n ) , t ( i , n ) } ) } , mentions : s . mentions , commands : s . commands , onMessageSubmit : b , onDirectionKey : k , onInlineResultSend : w , onFilePaste : T , onCommandSend : function ( e ) { s . $apply ( function ( ) { s . draftMessage . command = e } ) } } ) , X = Y . richTextareaEl && Y . richTextareaEl [ 0 ] ; X && $ ( X ) . on ( "keydown keyup" , S ) , s . $on ( "inline_results" , function ( e , t ) { var n = Config . Mobile ? $ ( window ) . width ( ) : ( D . offsetWidth || 382 ) - 2 , i = 80 ; t && f . regroupWrappedResults ( t . results , n , i ) , setZeroTimeout ( function ( ) { Y . setInlineSuggestions ( t ) } ) } ) , s
} , link : function ( i , a , r ) { var o = ! r . myArcProgress , s = r . width || a . width ( ) || 40 , l = r . stroke || s / 2 * . 14 , c = s / 2 , d = c - l / 2 , u = ++ n ; a . html ( t . replace ( "%id%" , u ) ) . addClass ( "progress-arc-wrap" ) . addClass ( o ? "progress-arc-intermediate" : "progress-arc-percent" ) . css ( { width : s , height : s } ) , $ ( a [ 0 ] . firstChild ) . attr ( "width" , s ) . attr ( "height" , s ) ; var p = $ ( ".progress-arc-bar" , a ) ; p . attr ( "cx" , c ) . attr ( "cy" , c ) . attr ( "r" , d ) . css ( { strokeWidth : l } ) ; var f = 2 * Math . PI * d ; o ? ( e ( p , . 3 , f ) , p . css ( { stroke : "url(#grad_intermediate" + u + ")" } ) ) : i . $watch ( "progress" , function ( t ) { e ( p , t / 100 , f ) } ) } } } ) . directive ( "myScrollToOn" , function ( ) { return { link : function ( e , t , n ) { var i = n . myScrollToOn , a = function ( ) { onContentLoaded ( function ( ) { $ ( "html, body" ) . animate ( { scrollTop : t . offset ( ) . top } , 200 ) } ) } ; "$init" == i ? a ( ) : e . $on ( i , a ) } } } ) . directive ( "myComposerDropdown" , function ( ) { return { templateUrl : templateUrl ( "composer_dropdown" ) } } ) . directive ( "myEmojiSuggestions" , function ( ) { return { link : function ( e , t , n ) { e . $watchCollection ( "emojiCodes" , function ( e ) { var n , i , a , r , o , s , l , c , d = [ ] , u = Config . Mobile ? 26 : 20 , p = Math . min ( 5 , e . length ) ; for ( s = 0 ; s < p ; s ++ ) n = e [ s ] , n . code && ( n = n . code ) , ( i = Config . Emoji [ n ] ) && ( a = EmojiHelper . spritesheetPositions [ n ] , o = a [ 0 ] , r = a [ 1 ] , l = u * a [ 3 ] , c = u * a [ 2 ] , d . push ( '<li><a class="composer_emoji_option" data-code="' + encodeEntities ( n ) + '"><i class="emoji emoji-w' , u , " emoji-spritesheet-" + o + '" style="background-position: -' + l + "px -" + c + 'px;"></i><span class="composer_emoji_shortcut">:' + encodeEntities ( i [ 1 ] [ 0 ] ) + ":</span></a></li>" ) ) ; t . html ( d . join ( "" ) ) , console . log ( dT ( ) , "emoji done" ) } ) } } } ) . directive ( "myInlineResults" , [ "AppPhotosManager" , "ExternalResourcesManager" , "AppDocsManager" , function ( e , t , n ) { return { templateUrl : templateUrl ( "inline_results" ) , scope : { botResults : "=myInlineResults" } , link : function ( i , a , r ) { i . $watch ( "botResults.results" , function ( i ) { angular . forEach ( i , function ( i ) { i . thumb _url && ! i . thumbUrl && t . downloadByURL ( i . thumb _url ) . then ( function ( e ) { i . thumbUrl = e } ) , "gif" == i . type && i . content _url && ! i . contentUrl && t . downloadByURL ( i . content _url ) . then ( function ( e ) { i . contentUrl = e } ) , "gif" != i . type && "sticker" != i . type || ! i . document || n . downloadDoc ( i . document . id ) ; var a ; if ( "photo" == i . type && i . photo ) { a = e . choosePhotoSize ( i . photo , i . thumbW , i . thumbH ) ; var r = calcImageInBox ( a . w , a . h , i . thumbW , i . thumbH ) ; i . thumb = { width : r . w , height : r . h , location : a . location , size : a . size } } "game" == i . type && i . photo && ( a = e . choosePhotoSize ( i . photo , 100 , 100 ) , i . thumb = { location : a . location , size : a . size } ) } ) } ) } } } ] ) . directive ( "myGameCommunication" , [ "$window" , function ( e ) { function t ( t , n , i ) { onContentLoaded ( function ( ) { var i = $ ( "iframe, webview" , n ) [ 0 ] , a = i . contentWindow , r = function ( e ) { if ( e = e . originalEvent || e , ! e . source || e . source == a ) { var n = e . data ; try { var i = JSON . parse ( n ) } catch ( r ) { return } i && i . eventType && t . $emit ( "game_frame_event" , i ) } } ; $ ( e ) . on ( "message" , r ) , t . $on ( "$destroy" , function ( ) { $ ( e ) . off ( "message" , r ) } ) } ) } return { link : t } } ] ) . directive ( "myEmojiImage" , [ "RichTextProcessor" , function ( e ) { function t ( t , n , i ) { var a = i . myEmojiImage , r = e . wrapRichText ( a , { noLinks : ! 0 , noLinebreaks : ! 0 } ) ; n . html ( r . valueOf ( ) ) } return { link : t } } ] ) . directive ( "myExternalEmbed" , function ( ) { function e ( e , s , l ) { var c = e . $eval ( l . myExternalEmbed ) ; if ( c ) { var d , u = "" , p = ! 1 ; switch ( c [ 0 ] ) { case "youtube" : d = c [ 1 ] , u = '<div class="im_message_media_embed im_message_video_embed"><' + o + ' type="text/html" frameborder="0" src="https://www.youtube.com/embed/' + d + '?autoplay=0&controls=2" webkitallowfullscreen mozallowfullscreen allowfullscreen></' + o + "></div>" ; break ; case "vimeo" : d = c [ 1 ] , u = '<div class="im_message_media_embed im_message_video_embed"><' + o + ' type="text/html" frameborder="0" src="https://player.vimeo.com/video/' + d + '?title=0&byline=0&portrait=0" webkitallowfullscreen mozallowfullscreen allowfullscreen></' + o + "></div>" ; break ; case "instagram" : var f = c [ 1 ] ; u = '<div class="im_message_media_embed im_message_insta_embed"><' + o + ' type="text/html" frameborder="0" src="https://instagram.com/p/' + f + '/embed/"></' + o + "></div>" ; break ; case "vine" : var m = c [ 1 ] ; u = '<div class="im_message_media_embed im_message_vine_embed"><' + o + ' type="text/html" frameborder="0" src="https://vine.co/v/' + m + '/embed/simple"></' + o + "></div>" ; break ; case "soundcloud" : var h = c [ 1 ] ; u = ' < div class = " im _message _media _embed im _message _soundcloud _embed