var olm _exports = { } ;
var onInitSuccess ;
var onInitFail ;
var Module = ( function ( ) {
var _scriptDir = typeof document !== 'undefined' && document . currentScript ? document . currentScript . src : undefined ;
return (
function ( Module ) {
Module = Module || { } ;
var c ; c || ( c = typeof Module !== 'undefined' ? Module : { } ) ; var aa ; if ( "undefined" !== typeof window ) aa = function ( a ) { window . crypto . getRandomValues ( a ) } ; else if ( module . exports ) { var ba = require ( "crypto" ) ; aa = function ( a ) { var b = ba . randomBytes ( a . length ) ; a . set ( b ) } ; process = global . process } else throw Error ( "Cannot find global to attach library to" ) ; if ( "undefined" !== typeof OLM _OPTIONS ) for ( var ca in OLM _OPTIONS ) OLM _OPTIONS . hasOwnProperty ( ca ) && ( c [ ca ] = OLM _OPTIONS [ ca ] ) ;
c . onRuntimeInitialized = function ( ) { f = c . _olm _error ( ) ; olm _exports . PRIVATE _KEY _LENGTH = c . _olm _pk _private _key _length ( ) ; onInitSuccess && onInitSuccess ( ) } ; c . onAbort = function ( a ) { onInitFail && onInitFail ( a ) } ; var ea = { } , h ; for ( h in c ) c . hasOwnProperty ( h ) && ( ea [ h ] = c [ h ] ) ; c . arguments = [ ] ; c . thisProgram = "./this.program" ; c . quit = function ( a , b ) { throw b ; } ; c . preRun = [ ] ; c . postRun = [ ] ; var fa = ! 1 , ha = ! 1 , l = ! 1 , ia = ! 1 ; fa = "object" === typeof window ; ha = "function" === typeof importScripts ;
l = "object" === typeof process && "function" === typeof require && ! fa && ! ha ; ia = ! fa && ! l && ! ha ; var n = "" ;
if ( l ) { n = _ _dirname + "/" ; var ja , ka ; c . read = function ( a , b ) { var d = p ( a ) ; d || ( ja || ( ja = require ( "fs" ) ) , ka || ( ka = require ( "path" ) ) , a = ka . normalize ( a ) , d = ja . readFileSync ( a ) ) ; return b ? d : d . toString ( ) } ; c . readBinary = function ( a ) { a = c . read ( a , ! 0 ) ; a . buffer || ( a = new Uint8Array ( a ) ) ; assert ( a . buffer ) ; return a } ; 1 < process . argv . length && ( c . thisProgram = process . argv [ 1 ] . replace ( /\\/g , "/" ) ) ; c . arguments = process . argv . slice ( 2 ) ; process . on ( "uncaughtException" , function ( a ) { throw a ; } ) ; process . on ( "unhandledRejection" , function ( ) { process . exit ( 1 ) } ) ;
c . quit = function ( a ) { process . exit ( a ) } ; c . inspect = function ( ) { return "[Emscripten Module object]" } } else if ( ia ) "undefined" != typeof read && ( c . read = function ( a ) { var b = p ( a ) ; return b ? la ( b ) : read ( a ) } ) , c . readBinary = function ( a ) { var b ; if ( b = p ( a ) ) return b ; if ( "function" === typeof readbuffer ) return new Uint8Array ( readbuffer ( a ) ) ; b = read ( a , "binary" ) ; assert ( "object" === typeof b ) ; return b } , "undefined" != typeof scriptArgs ? c . arguments = scriptArgs : "undefined" != typeof arguments && ( c . arguments = arguments ) , "function" === typeof quit && ( c . quit =
function ( a ) { quit ( a ) } ) ; else if ( fa || ha ) fa ? document . currentScript && ( n = document . currentScript . src ) : n = self . location . href , _scriptDir && ( n = _scriptDir ) , 0 !== n . indexOf ( "blob:" ) ? n = n . substr ( 0 , n . lastIndexOf ( "/" ) + 1 ) : n = "" , c . read = function ( a ) { try { var b = new XMLHttpRequest ; b . open ( "GET" , a , ! 1 ) ; b . send ( null ) ; return b . responseText } catch ( d ) { if ( a = p ( a ) ) return la ( a ) ; throw d ; } } , ha && ( c . readBinary = function ( a ) { try { var b = new XMLHttpRequest ; b . open ( "GET" , a , ! 1 ) ; b . responseType = "arraybuffer" ; b . send ( null ) ; return new Uint8Array ( b . response ) } catch ( d ) { if ( a =
p ( a ) ) return a ; throw d ; } } ) , c . readAsync = function ( a , b , d ) { var e = new XMLHttpRequest ; e . open ( "GET" , a , ! 0 ) ; e . responseType = "arraybuffer" ; e . onload = function ( ) { if ( 200 == e . status || 0 == e . status && e . response ) b ( e . response ) ; else { var g = p ( a ) ; g ? b ( g . buffer ) : d ( ) } } ; e . onerror = d ; e . send ( null ) } , c . setWindowTitle = function ( a ) { document . title = a } ;
var ma = c . print || ( "undefined" !== typeof console ? console . log . bind ( console ) : "undefined" !== typeof print ? print : null ) , na = c . printErr || ( "undefined" !== typeof printErr ? printErr : "undefined" !== typeof console && console . warn . bind ( console ) || ma ) ; for ( h in ea ) ea . hasOwnProperty ( h ) && ( c [ h ] = ea [ h ] ) ; ea = void 0 ; function oa ( a ) { var b = q ; q = q + a + 15 & - 16 ; return b } function pa ( a ) { var b = r [ t >> 2 ] ; a = b + a + 15 & - 16 ; r [ t >> 2 ] = a ; if ( a = a >= v ) qa ( ) , a = ! 0 ; return a ? ( r [ t >> 2 ] = b , 0 ) : b } function ra ( a ) { var b ; b || ( b = 16 ) ; return Math . ceil ( a / b ) * b } var sa = ! 1 ;
function assert ( a , b ) { a || ta ( "Assertion failed: " + b ) }
function w ( a ) { var b = "i8" ; "*" === b . charAt ( b . length - 1 ) && ( b = "i32" ) ; switch ( b ) { case "i1" : x [ a >> 0 ] = 0 ; break ; case "i8" : x [ a >> 0 ] = 0 ; break ; case "i16" : ua [ a >> 1 ] = 0 ; break ; case "i32" : r [ a >> 2 ] = 0 ; break ; case "i64" : tempI64 = [ 0 , ( tempDouble = 0 , 1 <= + va ( tempDouble ) ? 0 < tempDouble ? ( wa ( + xa ( tempDouble / 4294967296 ) , 4294967295 ) | 0 ) >>> 0 : ~ ~ + ya ( ( tempDouble - + ( ~ ~ tempDouble >>> 0 ) ) / 4294967296 ) >>> 0 : 0 ) ] ; r [ a >> 2 ] = tempI64 [ 0 ] ; r [ a + 4 >> 2 ] = tempI64 [ 1 ] ; break ; case "float" : za [ a >> 2 ] = 0 ; break ; case "double" : Aa [ a >> 3 ] = 0 ; break ; default : ta ( "invalid type for setValue: " +
b ) } } function Ba ( a , b ) { b = b || "i8" ; "*" === b . charAt ( b . length - 1 ) && ( b = "i32" ) ; switch ( b ) { case "i1" : return x [ a >> 0 ] ; case "i8" : return x [ a >> 0 ] ; case "i16" : return ua [ a >> 1 ] ; case "i32" : return r [ a >> 2 ] ; case "i64" : return r [ a >> 2 ] ; case "float" : return za [ a >> 2 ] ; case "double" : return Aa [ a >> 3 ] ; default : ta ( "invalid type for getValue: " + b ) } return null }
function y ( a ) { var b = c . ALLOC _STACK ; if ( "number" === typeof a ) { var d = ! 0 ; var e = a } else d = ! 1 , e = a . length ; var g ; 4 == b ? g = k : g = [ "function" === typeof Ca ? Ca : oa , Da , oa , pa ] [ void 0 === b ? 2 : b ] ( Math . max ( e , 1 ) ) ; if ( d ) { var k = g ; assert ( 0 == ( g & 3 ) ) ; for ( a = g + ( e & - 4 ) ; k < a ; k += 4 ) r [ k >> 2 ] = 0 ; for ( a = g + e ; k < a ; ) x [ k ++ >> 0 ] = 0 ; return g } a . subarray || a . slice ? z . set ( a , g ) : z . set ( new Uint8Array ( a ) , g ) ; return g } var Ea = "undefined" !== typeof TextDecoder ? new TextDecoder ( "utf8" ) : void 0 ;
function A ( a ) { for ( var b = z , d = a ; b [ d ] ; ) ++ d ; if ( 16 < d - a && b . subarray && Ea ) return Ea . decode ( b . subarray ( a , d ) ) ; for ( d = "" ; ; ) { var e = b [ a ++ ] ; if ( ! e ) return d ; if ( e & 128 ) { var g = b [ a ++ ] & 63 ; if ( 192 == ( e & 224 ) ) d += String . fromCharCode ( ( e & 31 ) << 6 | g ) ; else { var k = b [ a ++ ] & 63 ; if ( 224 == ( e & 240 ) ) e = ( e & 15 ) << 12 | g << 6 | k ; else { var m = b [ a ++ ] & 63 ; if ( 240 == ( e & 248 ) ) e = ( e & 7 ) << 18 | g << 12 | k << 6 | m ; else { var u = b [ a ++ ] & 63 ; if ( 248 == ( e & 252 ) ) e = ( e & 3 ) << 24 | g << 18 | k << 12 | m << 6 | u ; else { var J = b [ a ++ ] & 63 ; e = ( e & 1 ) << 30 | g << 24 | k << 18 | m << 12 | u << 6 | J } } } 65536 > e ? d += String . fromCharCode ( e ) : ( e -=
65536 , d += String . fromCharCode ( 55296 | e >> 10 , 56320 | e & 1023 ) ) } } else d += String . fromCharCode ( e ) } }
function Fa ( a , b , d , e ) { if ( ! ( 0 < e ) ) return 0 ; var g = d ; e = d + e - 1 ; for ( var k = 0 ; k < a . length ; ++ k ) { var m = a . charCodeAt ( k ) ; if ( 55296 <= m && 57343 >= m ) { var u = a . charCodeAt ( ++ k ) ; m = 65536 + ( ( m & 1023 ) << 10 ) | u & 1023 } if ( 127 >= m ) { if ( d >= e ) break ; b [ d ++ ] = m } else { if ( 2047 >= m ) { if ( d + 1 >= e ) break ; b [ d ++ ] = 192 | m >> 6 } else { if ( 65535 >= m ) { if ( d + 2 >= e ) break ; b [ d ++ ] = 224 | m >> 12 } else { if ( 2097151 >= m ) { if ( d + 3 >= e ) break ; b [ d ++ ] = 240 | m >> 18 } else { if ( 67108863 >= m ) { if ( d + 4 >= e ) break ; b [ d ++ ] = 248 | m >> 24 } else { if ( d + 5 >= e ) break ; b [ d ++ ] = 252 | m >> 30 ; b [ d ++ ] = 128 | m >> 24 & 63 } b [ d ++ ] = 128 | m >> 18 & 63 } b [ d ++ ] =
128 | m >> 12 & 63 } b [ d ++ ] = 128 | m >> 6 & 63 } b [ d ++ ] = 128 | m & 63 } } b [ d ] = 0 ; return d - g } function Ga ( a ) { for ( var b = 0 , d = 0 ; d < a . length ; ++ d ) { var e = a . charCodeAt ( d ) ; 55296 <= e && 57343 >= e && ( e = 65536 + ( ( e & 1023 ) << 10 ) | a . charCodeAt ( ++ d ) & 1023 ) ; 127 >= e ? ++ b : b = 2047 >= e ? b + 2 : 65535 >= e ? b + 3 : 2097151 >= e ? b + 4 : 67108863 >= e ? b + 5 : b + 6 } return b } "undefined" !== typeof TextDecoder && new TextDecoder ( "utf-16le" ) ; var buffer , x , z , ua , r , za , Aa , Ha , q , Ia , Ja , Ka , La , t ; Ha = q = Ia = Ja = Ka = La = t = 0 ;
function qa ( ) { ta ( "Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " + v + ", (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 " ) } var Ma = c . TOTAL _STACK || 5242880 , v = c . TOTAL _MEMORY || 16777216 ;
v < Ma && na ( "TOTAL_MEMORY should be larger than TOTAL_STACK, was " + v + "! (TOTAL_STACK=" + Ma + ")" ) ; c . buffer ? buffer = c . buffer : ( buffer = new ArrayBuffer ( v ) , c . buffer = buffer ) ; c . HEAP8 = x = new Int8Array ( buffer ) ; c . HEAP16 = ua = new Int16Array ( buffer ) ; c . HEAP32 = r = new Int32Array ( buffer ) ; c . HEAPU8 = z = new Uint8Array ( buffer ) ; c . HEAPU16 = new Uint16Array ( buffer ) ; c . HEAPU32 = new Uint32Array ( buffer ) ; c . HEAPF32 = za = new Float32Array ( buffer ) ; c . HEAPF64 = Aa = new Float64Array ( buffer ) ;
function Na ( a ) { for ( ; 0 < a . length ; ) { var b = a . shift ( ) ; if ( "function" == typeof b ) b ( ) ; else { var d = b . h ; "number" === typeof d ? void 0 === b . c ? c . dynCall _v ( d ) : c . dynCall _vi ( d , b . c ) : d ( void 0 === b . c ? null : b . c ) } } } var Oa = [ ] , Pa = [ ] , Qa = [ ] , Ra = [ ] , Sa = ! 1 ; function Ta ( ) { var a = c . preRun . shift ( ) ; Oa . unshift ( a ) } function Ua ( a , b ) { for ( var d = 0 ; d < a . length ; ++ d ) x [ b ++ >> 0 ] = a . charCodeAt ( d ) } var va = Math . abs , ya = Math . ceil , xa = Math . floor , wa = Math . min , C = 0 , Va = null , Wa = null ; c . preloadedImages = { } ; c . preloadedAudios = { } ; var D = null , Xa = "data:application/octet-stream;base64," ;
Ha = 8 ; q = Ha + 36160 ; Pa . push ( ) ; D = " data : application / octet - stream ; base64 , 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
var Ya = q ; q += 16 ; t = oa ( 4 ) ; Ia = Ja = ra ( q ) ; Ka = Ia + Ma ; La = ra ( Ka ) ; r [ t >> 2 ] = La ; var Za = ! 1 ; function E ( a ) { var b = Array ( Ga ( a ) + 1 ) ; a = Fa ( a , b , 0 , b . length ) ; b . length = a ; return b } function la ( a ) { for ( var b = [ ] , d = 0 ; d < a . length ; d ++ ) { var e = a [ d ] ; 255 < e && ( Za && assert ( ! 1 , "Character code " + e + " (" + String . fromCharCode ( e ) + ") at offset " + d + " not in 0x00-0xFF." ) , e &= 255 ) ; b . push ( String . fromCharCode ( e ) ) } return b . join ( "" ) }
var $a = "function" === typeof atob ? atob : function ( a ) { var b = "" , d = 0 ; a = a . replace ( /[^A-Za-z0-9\+\/=]/g , "" ) ; do { var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" . indexOf ( a . charAt ( d ++ ) ) ; var g = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" . indexOf ( a . charAt ( d ++ ) ) ; var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" . indexOf ( a . charAt ( d ++ ) ) ; var m = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" . indexOf ( a . charAt ( d ++ ) ) ; e = e << 2 | g >> 4 ;
g = ( g & 15 ) << 4 | k >> 2 ; var u = ( k & 3 ) << 6 | m ; b += String . fromCharCode ( e ) ; 64 !== k && ( b += String . fromCharCode ( g ) ) ; 64 !== m && ( b += String . fromCharCode ( u ) ) } while ( d < a . length ) ; return b } ;
function p ( a ) { if ( String . prototype . startsWith ? a . startsWith ( Xa ) : 0 === a . indexOf ( Xa ) ) { a = a . slice ( Xa . length ) ; if ( "boolean" === typeof l && l ) { try { var b = Buffer . from ( a , "base64" ) } catch ( k ) { b = new Buffer ( a , "base64" ) } var d = new Uint8Array ( b . buffer , b . byteOffset , b . byteLength ) } else try { var e = $a ( a ) , g = new Uint8Array ( e . length ) ; for ( b = 0 ; b < e . length ; ++ b ) g [ b ] = e . charCodeAt ( b ) ; d = g } catch ( k ) { throw Error ( "Converting base64 string to bytes failed." ) ; } return d } }
c . f = { Math : Math , Int8Array : Int8Array , Int16Array : Int16Array , Int32Array : Int32Array , Uint8Array : Uint8Array , Uint16Array : Uint16Array , Uint32Array : Uint32Array , Float32Array : Float32Array , Float64Array : Float64Array , NaN : NaN , Infinity : Infinity } ;
c . g = { abort : ta , assert : assert , enlargeMemory : function ( ) { qa ( ) } , getTotalMemory : function ( ) { return v } , abortOnCannotGrowMemory : qa , invoke _ii : function ( a , b ) { var d = ab ( ) ; try { return c . dynCall _ii ( a , b ) } catch ( e ) { bb ( d ) ; if ( "number" !== typeof e && "longjmp" !== e ) throw e ; c . setThrew ( 1 , 0 ) } } , invoke _iii : function ( a , b , d ) { var e = ab ( ) ; try { return c . dynCall _iii ( a , b , d ) } catch ( g ) { bb ( e ) ; if ( "number" !== typeof g && "longjmp" !== g ) throw g ; c . setThrew ( 1 , 0 ) } } , invoke _iiiiiiiiii : function ( a , b , d , e , g , k , m , u , J , Q ) { var B = ab ( ) ; try { return c . dynCall _iiiiiiiiii ( a ,
b , d , e , g , k , m , u , J , Q ) } catch ( da ) { bb ( B ) ; if ( "number" !== typeof da && "longjmp" !== da ) throw da ; c . setThrew ( 1 , 0 ) } } , _ _ _setErrNo : function ( a ) { c . _ _ _errno _location && ( r [ c . _ _ _errno _location ( ) >> 2 ] = a ) ; return a } , _emscripten _memcpy _big : function ( a , b , d ) { z . set ( z . subarray ( b , b + d ) , a ) ; return a } , DYNAMICTOP _PTR : t , tempDoublePtr : Ya , STACKTOP : Ja , STACK _MAX : Ka } ; // EMSCRIPTEN_START_ASM
var F = ( /** @suppress {uselessCode} */ function ( global , env , buffer ) {
"use asm" ; var a = new global . Int8Array ( buffer ) ; var b = new global . Int16Array ( buffer ) ; var c = new global . Int32Array ( buffer ) ; var d = new global . Uint8Array ( buffer ) ; var e = new global . Uint16Array ( buffer ) ; var f = new global . Uint32Array ( buffer ) ; var g = new global . Float32Array ( buffer ) ; var h = new global . Float64Array ( buffer ) ; var i = env . DYNAMICTOP _PTR | 0 ; var j = env . tempDoublePtr | 0 ; var k = env . STACKTOP | 0 ; var l = env . STACK _MAX | 0 ; var m = 0 ; var n = 0 ; var o = 0 ; var p = 0 ; var q = global . NaN , r = global . Infinity ; var s = 0 , t = 0 , u = 0 , v = 0 , w = 0.0 ; var x = 0 ; var y = global . Math . floor ; var z = global . Math . abs ; var A = global . Math . sqrt ; var B = global . Math . pow ; var C = global . Math . cos ; var D = global . Math . sin ; var E = global . Math . tan ; var F = global . Math . acos ; var G = global . Math . asin ; var H = global . Math . atan ; var I = global . Math . atan2 ; var J = global . Math . exp ; var K = global . Math . log ; var L = global . Math . ceil ; var M = global . Math . imul ; var N = global . Math . min ; var O = global . Math . max ; var P = global . Math . clz32 ; var Q = env . abort ; var R = env . assert ; var S = env . enlargeMemory ; var T = env . getTotalMemory ; var U = env . abortOnCannotGrowMemory ; var V = env . invoke _ii ; var W = env . invoke _iii ; var X = env . invoke _iiiiiiiiii ; var Y = env . _ _ _setErrNo ; var Z = env . _emscripten _memcpy _big ; var _ = 0.0 ;
// EMSCRIPTEN_START_FUNCS
function ca ( a ) { a = a | 0 ; var b = 0 ; b = k ; k = k + a | 0 ; k = k + 15 & - 16 ; return b | 0 } function da ( ) { return k | 0 } function ea ( a ) { a = a | 0 ; k = a } function fa ( a , b ) { a = a | 0 ; b = b | 0 ; k = a ; l = b } function ga ( a , b ) { a = a | 0 ; b = b | 0 ; if ( ! m ) { m = a ; n = b } } function ha ( a ) { a = a | 0 ; x = a } function ia ( ) { return x | 0 } function ja ( a ) { a = a | 0 ; var b = 0 ; b = a + 2 | 0 ; a = ( b >>> 0 ) / 3 | 0 ; return ( a << 2 | b - ( a * 3 | 0 ) ) + - 2 | 0 } function ka ( b , c , e ) { b = b | 0 ; c = c | 0 ; e = e | 0 ; var f = 0 , g = 0 , h = 0 , i = 0 , j = 0 ; h = c - ( ( c >>> 0 ) % 3 | 0 ) | 0 ; g = b + h | 0 ; if ( ! h ) { h = e ; g = b } else { f = b ; do { h = d [ f >> 0 ] | 0 ; i = h << 8 | ( d [ f + 1 >> 0 ] | 0 ) ; j = d [ f + 2 >> 0 ] | 0 ; f = f + 3 | 0 ; a [ e + 3 >> 0 ] = a [ 16 + ( j & 63 ) >> 0 ] | 0 ; a [ e + 2 >> 0 ] = a [ 16 + ( ( i << 8 | j ) >>> 6 & 63 ) >> 0 ] | 0 ; a [ e + 1 >> 0 ] = a [ 16 + ( i >>> 4 & 63 ) >> 0 ] | 0 ; a [ e >> 0 ] = a [ 16 + ( h >>> 2 ) >> 0 ] | 0 ; e = e + 4 | 0 } while ( ( f | 0 ) != ( g | 0 ) ) ; h = e } e = b + c - g | 0 ; if ( ! e ) { j = h ; return j | 0 } f = d [ g >> 0 ] | 0 ; if ( ( e | 0 ) == 2 ) { e = d [ g + 1 >> 0 ] | 0 ; a [ h + 2 >> 0 ] = a [ 16 + ( e << 2 & 60 ) >> 0 ] | 0 ; e = ( f << 8 | e ) >>> 4 ; f = 3 } else { e = f << 4 ; f = 2 } a [ h + 1 >> 0 ] = a [ 16 + ( e & 63 ) >> 0 ] | 0 ; a [ h >> 0 ] = a [ 16 + ( e >>> 6 ) >> 0 ] | 0 ; j = h + f | 0 ; return j | 0 } function la ( a ) { a = a | 0 ; var b = 0 ; b = a + 2 | 0 ; return ( ( a & 3 | 0 ) == 1 ? - 1 : ( b & 3 ) + - 2 + ( ( b >>> 2 ) * 3 | 0 ) | 0 ) | 0 } function ma ( b , c , e ) { b = b | 0 ; c = c | 0 ; e = e | 0 ; var f = 0 , g = 0 , h = 0 , i = 0 , j = 0 , k = 0 , l = 0 ; j = c & - 4 ; h = b + j | 0 ; if ( ! j ) i = b ; else { i = ( ( ( j + - 4 | 0 ) >>> 2 ) * 3 | 0 ) + 3 | 0 ; f = e ; g = b ; while ( 1 ) { k = ( d [ 80 + ( a [ g >> 0 ] & 127 ) >> 0 ] | 0 ) << 6 | ( d [ 80 + ( a [ g + 1 >> 0 ] & 127 ) >> 0 ] | 0 ) ; l = k << 6 | ( d [ 80 + ( a [ g + 2 >> 0 ] & 127 ) >> 0 ] | 0 ) ; a [ f + 2 >> 0 ] = l << 6 | ( d [ 80 + ( a [ g + 3 >> 0 ] & 127 ) >> 0 ] | 0 ) ; g = g + 4 | 0 ; a [ f + 1 >> 0 ] = l >>> 2 ; a [ f >> 0 ] = k >>> 4 ; if ( ( g | 0 ) == ( h | 0 ) ) break ; else f = f + 3 | 0 } e = e + i | 0 ; i = b + j | 0 } f = b + c | 0 ; g = f - i | 0 ; if ( ! g ) return f | 0 ; h = ( d [ 80 + ( a [ i >> 0 ] & 127 ) >> 0 ] | 0 ) << 6 | ( d [ 80 + ( a [ i + 1 >> 0 ] & 127 ) >> 0 ] | 0 ) ; if ( ( g | 0 ) == 3 ) a [ e + 1 >> 0 ] = ( h << 6 | ( d [ 80 + ( a [ i + 2 >> 0 ] & 127 ) >> 0 ] | 0 ) ) >>> 2 ; a [ e >> 0 ] = h >>> 4 ; return f | 0 } function na ( a ) { a = a | 0 ; var b = 0 ; b = a + 2 | 0 ; a = ( b >>> 0 ) / 3 | 0 ; return ( a << 2 | b - ( a * 3 | 0 ) ) + - 2 | 0 } function oa ( b , c , e ) { b = b | 0 ; c = c | 0 ; e = e | 0 ; var f = 0 , g = 0 , h = 0 , i = 0 , j = 0 , k = 0 ; i = c - ( ( c >>> 0 ) % 3 | 0 ) | 0 ; h = b + i | 0 ; if ( ! i ) { i = e ; h = b } else { f = e ; g = b ; do { i = d [ g >> 0 ] | 0 ; j = i << 8 | ( d [ g + 1 >> 0 ] | 0 ) ; k = d [ g + 2 >> 0 ] | 0 ; g = g + 3 | 0 ; a [ f + 3 >> 0 ] = a [ 16 + ( k & 63 ) >> 0 ] | 0 ; a [ f + 2 >> 0 ] = a [ 16 + ( ( j << 8 | k ) >>> 6 & 63 ) >> 0 ] | 0 ; a [ f + 1 >> 0 ] = a [ 16 + ( j >>> 4 & 63 ) >> 0 ] | 0 ; a [ f >> 0 ] = a [ 16 + ( i >>> 2 ) >> 0 ] | 0 ; f = f + 4 | 0 } while ( ( g | 0 ) != ( h | 0 ) ) ; i = f } f = b + c - h | 0 ; if ( ! f ) { j = i ; k = e ; k = j - k | 0 ; return k | 0 } g = d [ h >> 0 ] | 0 ; if ( ( f | 0 ) == 2 ) { f = d [ h + 1 >> 0 ] | 0 ; a [ i + 2 >> 0 ] = a [ 16 + ( f << 2 & 60 ) >> 0 ] | 0 ; f = ( g << 8 | f ) >>> 4 ; g = 3 } else { f = g << 4 ; g = 2 } a [ i + 1 >> 0 ] = a [ 16 + ( f & 63 ) >> 0 ] | 0 ; a [ i >> 0 ] = a [ 16 + ( f >>> 6 ) >> 0 ] | 0 ; j = i + g | 0 ; k = e ; k = j - k | 0 ; return k | 0 } function pa ( a ) { a = a | 0 ; var b = 0 ; b = a + 2 | 0 ; return ( ( a & 3 | 0 ) == 1 ? - 1 : ( b & 3 ) + - 2 + ( ( b >>> 2 ) * 3 | 0 ) | 0 ) | 0 } function qa ( a , b , c ) { a = a | 0 ; b = b | 0 ; c = c | 0 ; ma ( a , b , c ) | 0 ; c = b + 2 | 0 ; return ( ( b & 3 | 0 ) == 1 ? - 1 : ( c & 3 ) + - 2 + ( ( c >>> 2 ) * 3 | 0 ) | 0 ) | 0 } function ra ( b , c ) { b = b | 0 ; c = c | 0 ; a [ b + 3 >> 0 ] = c ; a [ b + 2 >> 0 ] = c >>> 8 ; a [ b + 1 >> 0 ] = c >>> 16 ; a [ b >> 0 ] = c >>> 24 ; return b + 4 | 0 } function sa ( a , b , e ) { a = a | 0 ; b = b | 0 ; e = e | 0 ; var f = 0 ; c [ e >> 2 ] = 0 ; f = a + 4 | 0 ; if ( f >>> 0 > b >>> 0 ) { f = b ; return f | 0 } c [ e >> 2 ] = 0 ; b = ( d [ a >> 0 ] | 0 ) << 8 ; c [ e >> 2 ] = b ; b = ( b | ( d [ a + 1 >> 0 ] | 0 ) ) << 8 ; c [ e >> 2 ] = b ; b = ( b | ( d [ a + 2 >> 0 ] | 0 ) ) << 8 ; c [ e >> 2 ] = b ; c [ e >> 2 ] = b | ( d [ a + 3 >> 0 ] | 0 ) ; return f | 0 } function ta ( b , c ) { b = b | 0 ; c = c | 0 ; a [ b >> 0 ] = c & 1 ; return b + 1 | 0 } function ua ( b , c , d ) { b = b | 0 ; c = c | 0 ; d = d | 0 ; if ( ( b | 0 ) == ( c | 0 ) ) { d = b ; return d | 0 } a [ d >> 0 ] = ( a [ b >> 0 ] | 0 ) != 0 & 1 ; d = b + 1 | 0 ; return d | 0 } function va ( a , b , c ) { a = a | 0 ; b = b | 0 ; c = c | 0 ; Tf ( a | 0 , b | 0 , c | 0 ) | 0 ; return a + c | 0 } function wa ( a , b , c , d ) { a = a | 0 ; b = b | 0 ; c = c | 0 ; d = d | 0 ; var e = 0 ; e = a + d | 0 ; if ( e >>> 0 > b >>> 0 ) { e = b ; return e | 0 } Tf ( c | 0 , a | 0 , d | 0 ) | 0 ; return e | 0 } function xa ( a ) { a = a | 0 ; return 32 } function ya ( b , c ) { b = b | 0 ; c = c | 0 ; var d = 0 , e = 0 ; e = b ; d = e + 32 | 0 ; do { a [ e >> 0 ] = a [ c >> 0 ] | 0 ; e = e + 1 | 0 ; c = c + 1 | 0 } while ( ( e | 0 ) < ( d | 0 ) ) ; return b + 32 | 0 } function za ( b , c , d ) { b = b | 0 ; c = c | 0 ; d = d | 0 ; var e = 0 ; e = b + 32 | 0 ; if ( e >>> 0 > c >>> 0 ) { e = c ; return e | 0 } c = b ; b = d + 32 | 0 ; do { a [ d >> 0 ] = a [ c >> 0 ] | 0 ; d = d + 1 | 0 ; c = c + 1 | 0 } while ( ( d | 0 ) < ( b | 0 ) ) ; return e | 0 } function Aa ( a ) { a = a | 0 ; return 64 } function Ba ( b , c ) { b = b | 0 ; c = c | 0 ; var d = 0 , e = 0 , f = 0 ; d = b ; e = c ; f = d + 32 | 0 ; do { a [ d >> 0 ] = a [ e >> 0 ] | 0 ; d = d + 1 | 0 ; e = e + 1 | 0 } while ( ( d | 0 ) < ( f | 0 ) ) ; d = b + 32 | 0 ; e = c + 32 | 0 ; f = d + 32 | 0 ; do { a [ d >> 0 ] = a [ e >> 0 ] | 0 ; d = d + 1 | 0 ; e = e + 1 | 0 } while ( ( d | 0 ) < ( f | 0 ) ) ; return b + 64 | 0 } function Ca ( b , c , d ) { b = b | 0 ; c = c | 0 ; d = d | 0 ; var e = 0 , f = 0 , g = 0 , h = 0 ; e = b + 32 | 0 ; if ( e >>> 0 > c >>> 0 ) e = c ; else { h = d ; g = h + 32 | 0 ; do { a [ h >> 0 ] = a [ b >> 0 ] | 0 ; h = h + 1 | 0 ; b = b + 1 | 0 } while ( ( h | 0 ) < ( g | 0 ) ) } f = e + 32 | 0 ; if ( f >>> 0 > c >>> 0 ) { h = c ; return h | 0 } h = d + 32 | 0 ; b = e ; g = h + 32 | 0 ; do { a [ h >> 0 ] = a [ b >> 0 ] | 0 ; h = h + 1 | 0 ; b = b + 1 | 0 } while ( ( h | 0 ) < ( g | 0 ) ) ; h = f ; return h | 0 } function Da ( a ) { a = a | 0 ; return 32 } function Ea ( b , c ) { b = b | 0 ; c = c | 0 ; var d = 0 , e = 0 ; e = b ; d = e + 32 | 0 ; do { a [ e >> 0 ] = a [ c >> 0 ] | 0 ; e = e + 1 | 0 ; c = c + 1 | 0 } while ( ( e | 0 ) < ( d | 0 ) ) ; return b + 32 | 0 } function Fa ( b , c , d ) { b = b | 0 ; c = c | 0 ; d = d | 0 ; var
function ge ( b , e ) { b = b | 0 ; e = e | 0 ; var f = 0 , g = 0 , h = 0 , i = 0 , j = 0 , l = 0 , m = 0 , n = 0 , o = 0 , p = 0 , q = 0 , r = 0 , s = 0 , t = 0 , u = 0 , v = 0 , w = 0 , x = 0 , y = 0 , z = 0 , A = 0 , B = 0 , C = 0 , D = 0 , E = 0 , F = 0 , G = 0 , H = 0 , I = 0 , J = 0 , K = 0 , L = 0 , M = 0 , N = 0 , O = 0 , P = 0 , Q = 0 , R = 0 , S = 0 , T = 0 , U = 0 , V = 0 , W = 0 , X = 0 , Y = 0 , Z = 0 , _ = 0 , $ = 0 , aa = 0 , ba = 0 , ca = 0 , da = 0 , ea = 0 , fa = 0 , ga = 0 , ha = 0 , ia = 0 , ja = 0 , ka = 0 , la = 0 , ma = 0 , na = 0 , oa = 0 , pa = 0 ; pa = k ; k = k + 272 | 0 ; ka = pa + 240 | 0 ; la = pa + 192 | 0 ; i = pa + 144 | 0 ; j = pa + 96 | 0 ; ma = pa + 48 | 0 ; na = pa ; oa = b + 40 | 0 ; Rd ( oa , e ) ; l = b + 80 | 0 ; c [ l >> 2 ] = 1 ; h = b + 84 | 0 ; f = h ; g = f + 36 | 0 ; do { c [ f >> 2 ] = 0 ; f = f + 4 | 0 } while ( ( f | 0 ) < ( g | 0 ) ) ; Td ( la , oa ) ; Ud ( i , la , 1248 ) ; ba = la + 4 | 0 ; ca = la + 8 | 0 ; da = la + 12 | 0 ; ea = la + 16 | 0 ; fa = la + 20 | 0 ; ga = la + 24 | 0 ; ha = la + 28 | 0 ; ia = la + 32 | 0 ; ja = la + 36 | 0 ; E = c [ l >> 2 ] | 0 ; D = c [ h >> 2 ] | 0 ; B = c [ b + 88 >> 2 ] | 0 ; z = c [ b + 92 >> 2 ] | 0 ; x = c [ b + 96 >> 2 ] | 0 ; v = c [ b + 100 >> 2 ] | 0 ; g = c [ b + 104 >> 2 ] | 0 ; aa = c [ b + 108 >> 2 ] | 0 ; _ = c [ b + 112 >> 2 ] | 0 ; Y = c [ b + 116 >> 2 ] | 0 ; t = ( c [ la >> 2 ] | 0 ) - E | 0 ; u = ( c [ ba >> 2 ] | 0 ) - D | 0 ; l = ( c [ ca >> 2 ] | 0 ) - B | 0 ; m = ( c [ da >> 2 ] | 0 ) - z | 0 ; n = ( c [ ea >> 2 ] | 0 ) - x | 0 ; o = ( c [ fa >> 2 ] | 0 ) - v | 0 ; p = ( c [ ga >> 2 ] | 0 ) - g | 0 ; q = ( c [ ha >> 2 ] | 0 ) - aa | 0 ; r = ( c [ ia >> 2 ] | 0 ) - _ | 0 ; s = ( c [ ja >> 2 ] | 0 ) - Y | 0 ; c [ la >> 2 ] = t ; c [ ba >> 2 ] = u ; c [ ca >> 2 ] = l ; c [ da >> 2 ] = m ; c [ ea >> 2 ] = n ; c [ fa >> 2 ] = o ; c [ ga >> 2 ] = p ; c [ ha >> 2 ] = q ; c [ ia >> 2 ] = r ; c [ ja >> 2 ] = s ; C = i + 4 | 0 ; A = i + 8 | 0 ; y = i + 12 | 0 ; w = i + 16 | 0 ; h = i + 20 | 0 ; f = i + 24 | 0 ; $ = i + 28 | 0 ; Z = i + 32 | 0 ; X = i + 36 | 0 ; D = ( c [ C >> 2 ] | 0 ) + D | 0 ; B = ( c [ A >> 2 ] | 0 ) + B | 0 ; z = ( c [ y >> 2 ] | 0 ) + z | 0 ; x = ( c [ w >> 2 ] | 0 ) + x | 0 ; v = ( c [ h >> 2 ] | 0 ) + v | 0 ; g = ( c [ f >> 2 ] | 0 ) + g | 0 ; aa = ( c [ $ >> 2 ] | 0 ) + aa | 0 ; _ = ( c [ Z >> 2 ] | 0 ) + _ | 0 ; Y = ( c [ X >> 2 ] | 0 ) + Y | 0 ; c [ i >> 2 ] = ( c [ i >> 2 ] | 0 ) + E ; c [ C >> 2 ] = D ; c [ A >> 2 ] = B ; c [ y >> 2 ] = z ; c [ w >> 2 ] = x ; c [ h >> 2 ] = v ; c [ f >> 2 ] = g ; c [ $ >> 2 ] = aa ; c [ Z >> 2 ] = _ ; c [ X >> 2 ] = Y ; Td ( j , i ) ; Ud ( j , j , i ) ; Td ( b , j ) ; Ud ( b , b , i ) ; Ud ( b , b , la ) ; Wd ( b , b ) ; Ud ( b , b , j ) ; Ud ( b , b , la ) ; Td ( ma , b ) ; Ud ( ma , ma , i ) ; X = ma + 4 | 0 ; Y = ma + 8 | 0 ; Z = ma + 12 | 0 ; _ = ma + 16 | 0 ; $ = ma + 20 | 0 ; aa = ma + 24 | 0 ; f = ma + 28 | 0 ; g = ma + 32 | 0 ; h = ma + 36 | 0 ; j = ( c [ X >> 2 ] | 0 ) - u | 0 ; l = ( c [ Y >> 2 ] | 0 ) - l | 0 ; m = ( c [ Z >> 2 ] | 0 ) - m | 0 ; n = ( c [ _ >> 2 ] | 0 ) - n | 0 ; o = ( c [ $ >> 2 ] | 0 ) - o | 0 ; p = ( c [ aa >> 2 ] | 0 ) - p | 0 ; q = ( c [ f >> 2 ] | 0 ) - q | 0 ; r = ( c [ g >> 2 ] | 0 ) - r | 0 ; s = ( c [ h >> 2 ] | 0 ) - s | 0 ; c [ na >> 2 ] = ( c [ ma >> 2 ] | 0 ) - t ; i = na + 4 | 0 ; c [ i >> 2 ] = j ; j = na + 8 | 0 ; c [ j >> 2 ] = l ; l = na + 12 | 0 ; c [ l >> 2 ] = m ; m = na + 16 | 0 ; c [ m >> 2 ] = n ; n = na + 20 | 0 ; c [ n >> 2 ] = o ; o = na + 24 | 0 ; c [ o >> 2 ] = p ; p = na + 28 | 0 ; c [ p >> 2 ] = q ; q = na + 32 | 0 ; c [ q >> 2 ] = r ; r = na + 36 | 0 ; c [ r >> 2 ] = s ; Vd ( ka , na ) ; s = ka + 1 | 0 ; t = ka + 2 | 0 ; u = ka + 3 | 0 ; v = ka + 4 | 0 ; w = ka + 5 | 0 ; x = ka + 6 | 0 ; y = ka + 7 | 0 ; z = ka + 8 | 0 ; A = ka + 9 | 0 ; B = ka + 10 | 0 ; C = ka + 11 | 0 ; D = ka + 12 | 0 ; E = ka + 13 | 0 ; F = ka + 14 | 0 ; G = ka + 15 | 0 ; H = ka + 16 | 0 ; I = ka + 17 | 0 ; J = ka + 18 | 0 ; K = ka + 19 | 0 ; L = ka + 20 | 0 ; M = ka + 21 | 0 ; N = ka + 22 | 0 ; O = ka + 23 | 0 ; P = ka + 24 | 0 ; Q = ka + 25 | 0 ; R = ka + 26 | 0 ; S = ka + 27 | 0 ; T = ka + 28 | 0 ; U = ka + 29 | 0 ; V = ka + 30 | 0 ; W = ka + 31 | 0 ; do if ( ( a [ s >> 0 ] | a [ ka >> 0 ] | a [ t >> 0 ] | a [ u >> 0 ] | a [ v >> 0 ] | a [ w >> 0 ] | a [ x >> 0 ] | a [ y >> 0 ] | a [ z >> 0 ] | a [ A >> 0 ] | a [ B >> 0 ] | a [ C >> 0 ] | a [ D >> 0 ] | a [ E >> 0 ] | a [ F >> 0 ] | a [ G >> 0 ] | a [ H >> 0 ] | a [ I >> 0 ] | a [ J >> 0 ] | a [ K >> 0 ] | a [ L >> 0 ] | a [ M >> 0 ] | a [ N >> 0 ] | a [ O >> 0 ] | a [ P >> 0 ] | a [ Q >> 0 ] | a [ R >> 0 ] | a [ S >> 0 ] | a [ T >> 0 ] | a [ U >> 0 ] | a [ V >> 0 ] | a [ W >> 0 ] ) << 24 >> 24 ) { ba = ( c [ ba >> 2 ] | 0 ) + ( c [ X >> 2 ] | 0 ) | 0 ; ca = ( c [ ca >> 2 ] | 0 ) + ( c [ Y >> 2 ] | 0 ) | 0 ; da = ( c [ da >> 2 ] | 0 ) + ( c [ Z >> 2 ] | 0 ) | 0 ; ea = ( c [ ea >> 2 ] | 0 ) + ( c [ _ >> 2 ] | 0 ) | 0 ; fa = ( c [ fa >> 2 ] | 0 ) + ( c [ $ >> 2 ] | 0 ) | 0 ; ga = ( c [ ga >> 2 ] | 0 ) + ( c [ aa >> 2 ] | 0 ) | 0 ; ha = ( c [ ha >> 2 ] | 0 ) + ( c [ f >> 2 ] | 0 ) | 0 ; ia = ( c [ ia >> 2 ] | 0 ) + ( c [ g >> 2 ] | 0 ) | 0 ; ja = ( c [ ja >> 2 ] | 0 ) + ( c [ h >> 2 ] | 0 ) | 0 ; c [ na >> 2 ] = ( c [ la >> 2 ] | 0 ) + ( c [ ma >> 2 ] | 0 ) ; c [ i >> 2 ] = ba ; c [ j >> 2 ] = ca ; c [ l >> 2 ] = da ; c [ m >> 2 ] = ea ; c [ n >> 2 ] = fa ; c [ o >> 2 ] = ga ; c [ p >> 2 ] = ha ; c [ q >> 2 ] = ia ; c [ r >> 2 ] = ja ; Vd ( ka , na ) ; if ( ! ( ( a [ s >> 0 ] | a [ ka >> 0 ] | a [ t >> 0 ] | a [ u >> 0 ] | a [ v >> 0 ] | a [ w >> 0 ] | a [ x >> 0 ] | a [ y >> 0 ] | a [ z >> 0 ] | a [ A >> 0 ] | a [ B >> 0 ] | a [ C >> 0 ] | a [ D >> 0 ] | a [ E >> 0 ] | a [ F >> 0 ] | a [ G >> 0 ] | a [ H >> 0 ] | a [ I >> 0 ] | a [ J >> 0 ] | a [ K >> 0 ] | a [ L >> 0 ] | a [ M >> 0 ] | a [ N >> 0 ] | a [ O >> 0 ] | a [ P >> 0 ] | a [ Q >> 0 ] | a [ R >> 0 ] | a [ S >> 0 ] | a [ T >> 0 ] | a [ U >> 0 ] | a [ V >> 0 ] | a [ W >> 0 ] ) << 24 >> 24 ) ) { Ud ( b , b , 1296 ) ; break } else { oa = - 1 ; k = pa ; return oa | 0 } } while ( 0 ) ; Vd ( ka , b ) ; if ( ( ( d [ e + 31 >> 0 ] | 0 ) >>> 7 | 0 ) == ( a [ ka >> 0 ] & 1 | 0 ) ) { _ = b + 4 | 0 ; aa = b + 8 | 0 ; ca = b + 12 | 0 ; ea = b + 16 | 0 ; ga = b + 20 | 0 ; ia = b + 24 | 0 ; e = b + 28 | 0 ; la = b + 32 | 0 ; na = b + 36 | 0 ; Z = 0 - ( c [ _ >> 2 ] | 0 ) | 0 ; $ = 0 - ( c [ aa >> 2 ] | 0 ) | 0 ; ba = 0 - ( c [ ca >> 2 ] | 0 ) | 0 ; da = 0 - ( c [ ea >> 2 ] | 0 ) | 0 ; fa = 0 - ( c [ ga >> 2 ] | 0 ) | 0 ; ha = 0 - ( c [ ia >> 2 ] | 0 ) | 0 ; ja = 0 - ( c [ e >> 2 ] | 0 ) | 0 ; ka = 0 - ( c [ la >> 2 ] | 0 ) | 0 ; ma = 0 - ( c [ na >> 2 ] | 0 ) | 0 ; c [ b >> 2 ] = 0 - ( c [ b >> 2 ] | 0 ) ; c [ _ >> 2 ] = Z ; c [ aa >> 2 ] = $ ; c [ ca >> 2 ] = ba ; c [ ea >> 2 ] = da ; c [ ga >> 2 ] = fa ; c [ ia >> 2 ] = ha ; c [ e >> 2 ] = ja ; c [ la >> 2 ] = ka ; c [ na >> 2 ] = ma } Ud ( b + 120 | 0 , b , oa ) ; oa = 0 ; k = pa ; return oa | 0 } function he ( b , e ) { b = b | 0 ; e = e | 0 ; var f = 0 , g = 0 , h = 0 , i = 0 , j = 0 , l = 0 , m = 0 , n = 0 , o = 0 , p = 0 , q = 0 , r = 0 , s = 0 , t = 0 , u = 0 , v = 0 , w = 0 , x = 0 , y = 0 , z = 0 , A = 0 , B = 0 ; t = k ; k = k + 592 | 0 ; o = t + 464 | 0 ; q = t ; r = t + 304 | 0 ; p = t + 184 | 0 ; s = t + 64 | 0 ; g = a [ e >> 0 ] | 0 ; a [ q >> 0 ] = g & 15 ; a [ q + 1 >> 0 ] = ( g & 255 ) >>> 4 ; g = a [ e + 1 >> 0 ] | 0 ; a [ q + 2 >> 0 ] = g & 15 ; a [ q + 3 >> 0 ] = ( g & 255 ) >>> 4 ; g = a [ e + 2 >> 0 ] | 0 ; a [ q + 4 >> 0 ] = g & 15 ; a [ q + 5 >> 0 ] = ( g & 255 ) >>
function Cf ( b , e , f ) { b = b | 0 ; e = e | 0 ; f = f | 0 ; var g = 0 , h = 0 , i = 0 , j = 0 , l = 0 , m = 0 , n = 0 , o = 0 , p = 0 , q = 0 , r = 0 , s = 0 , t = 0 , u = 0 , v = 0 , w = 0 , y = 0 , z = 0 , A = 0 , B = 0 , C = 0 , D = 0 , E = 0 , F = 0 , G = 0 , H = 0 , I = 0 , J = 0 , K = 0 , L = 0 , M = 0 , N = 0 , O = 0 , P = 0 , Q = 0 , R = 0 , S = 0 , T = 0 , U = 0 , V = 0 , W = 0 , X = 0 , Y = 0 , Z = 0 , _ = 0 , $ = 0 , aa = 0 , ba = 0 , ca = 0 , da = 0 , ea = 0 , fa = 0 , ga = 0 , ha = 0 , ia = 0 , ja = 0 , ka = 0 , la = 0 , ma = 0 , na = 0 , oa = 0 , pa = 0 , qa = 0 , ra = 0 , sa = 0 , ta = 0 , ua = 0 , va = 0 , wa = 0 , xa = 0 , ya = 0 , za = 0 , Aa = 0 , Ba = 0 , Ca = 0 , Da = 0 , Ea = 0 , Fa = 0 , Ga = 0 , Ha = 0 , Ia = 0 , Ja = 0 , Ka = 0 , La = 0 , Ma = 0 , Na = 0 , Oa = 0 , Pa = 0 , Qa = 0 , Ra = 0 , Sa = 0 , Ta = 0 , Ua = 0 , Va = 0 , Wa = 0 , Xa = 0 , Ya = 0 , Za = 0 , _a = 0 , $a = 0 , ab = 0 , bb = 0 , cb = 0 , db = 0 , eb = 0 , fb = 0 , gb = 0 , hb = 0 , ib = 0 , jb = 0 , kb = 0 , lb = 0 , mb = 0 , nb = 0 , ob = 0 , pb = 0 , qb = 0 , rb = 0 , sb = 0 , tb = 0 , ub = 0 , vb = 0 , wb = 0 , xb = 0 , yb = 0 , zb = 0 , Ab = 0 , Bb = 0 , Cb = 0 , Db = 0 , Eb = 0 , Fb = 0 , Gb = 0 , Hb = 0 , Ib = 0 , Jb = 0 , Kb = 0 , Lb = 0 , Mb = 0 , Nb = 0 , Ob = 0 , Pb = 0 ; Gb = k ; k = k + 2768 | 0 ; sb = Gb + 2608 | 0 ; tb = Gb + 2448 | 0 ; Eb = Gb + 2288 | 0 ; ub = Gb + 2128 | 0 ; vb = Gb + 1968 | 0 ; wb = Gb + 1808 | 0 ; Fb = Gb + 1648 | 0 ; xb = Gb + 1488 | 0 ; yb = Gb + 1328 | 0 ; zb = Gb + 1168 | 0 ; j = Gb + 1008 | 0 ; i = Gb + 848 | 0 ; h = Gb + 688 | 0 ; g = Gb + 528 | 0 ; Ab = Gb + 368 | 0 ; hb = Gb + 288 | 0 ; Bb = Gb + 208 | 0 ; Cb = Gb + 112 | 0 ; Db = Gb + 32 | 0 ; ib = Gb ; gb = ib ; fb = gb + 32 | 0 ; do { a [ gb >> 0 ] = a [ e >> 0 ] | 0 ; gb = gb + 1 | 0 ; e = e + 1 | 0 } while ( ( gb | 0 ) < ( fb | 0 ) ) ; a [ ib >> 0 ] = a [ ib >> 0 ] & - 8 ; gb = ib + 31 | 0 ; a [ gb >> 0 ] = a [ gb >> 0 ] & 63 | 64 ; gb = d [ f >> 0 ] | 0 ; ob = Qf ( d [ f + 1 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; nb = x ; qb = Qf ( d [ f + 2 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; nb = nb | x ; pb = d [ f + 3 >> 0 ] | 0 ; fb = Qf ( pb | 0 , 0 , 24 ) | 0 ; rb = hb ; c [ rb >> 2 ] = ob | gb | qb | fb & 50331648 ; c [ rb + 4 >> 2 ] = nb ; rb = Qf ( d [ f + 4 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; nb = x ; fb = Qf ( d [ f + 5 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; nb = nb | x ; qb = d [ f + 6 >> 0 ] | 0 ; gb = Qf ( qb | 0 , 0 , 24 ) | 0 ; nb = Pf ( rb | pb | fb | gb | 0 , nb | x | 0 , 2 ) | 0 ; gb = hb + 8 | 0 ; c [ gb >> 2 ] = nb & 33554431 ; c [ gb + 4 >> 2 ] = 0 ; gb = Qf ( d [ f + 7 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; nb = x ; fb = Qf ( d [ f + 8 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; nb = nb | x ; pb = d [ f + 9 >> 0 ] | 0 ; rb = Qf ( pb | 0 , 0 , 24 ) | 0 ; nb = Pf ( gb | qb | fb | rb | 0 , nb | x | 0 , 3 ) | 0 ; rb = hb + 16 | 0 ; c [ rb >> 2 ] = nb & 67108863 ; c [ rb + 4 >> 2 ] = 0 ; rb = Qf ( d [ f + 10 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; nb = x ; fb = Qf ( d [ f + 11 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; nb = nb | x ; qb = d [ f + 12 >> 0 ] | 0 ; gb = Qf ( qb | 0 , 0 , 24 ) | 0 ; nb = Pf ( rb | pb | fb | gb | 0 , nb | x | 0 , 5 ) | 0 ; gb = hb + 24 | 0 ; c [ gb >> 2 ] = nb & 33554431 ; c [ gb + 4 >> 2 ] = 0 ; gb = Qf ( d [ f + 13 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; nb = x ; fb = Qf ( d [ f + 14 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; nb = nb | x ; pb = Qf ( d [ f + 15 >> 0 ] | 0 | 0 , 0 , 24 ) | 0 ; nb = Pf ( gb | qb | fb | pb | 0 , nb | x | 0 , 6 ) | 0 ; pb = hb + 32 | 0 ; c [ pb >> 2 ] = nb & 67108863 ; c [ pb + 4 >> 2 ] = 0 ; pb = d [ f + 16 >> 0 ] | 0 ; nb = Qf ( d [ f + 17 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; fb = x ; qb = Qf ( d [ f + 18 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; fb = fb | x ; gb = d [ f + 19 >> 0 ] | 0 ; rb = Qf ( gb | 0 , 0 , 24 ) | 0 ; ob = hb + 40 | 0 ; c [ ob >> 2 ] = nb | pb | qb | rb & 16777216 ; c [ ob + 4 >> 2 ] = fb ; ob = Qf ( d [ f + 20 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; fb = x ; rb = Qf ( d [ f + 21 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; fb = fb | x ; qb = d [ f + 22 >> 0 ] | 0 ; pb = Qf ( qb | 0 , 0 , 24 ) | 0 ; fb = Pf ( ob | gb | rb | pb | 0 , fb | x | 0 , 1 ) | 0 ; pb = hb + 48 | 0 ; c [ pb >> 2 ] = fb & 67108863 ; c [ pb + 4 >> 2 ] = 0 ; pb = Qf ( d [ f + 23 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; fb = x ; rb = Qf ( d [ f + 24 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; fb = fb | x ; gb = d [ f + 25 >> 0 ] | 0 ; ob = Qf ( gb | 0 , 0 , 24 ) | 0 ; fb = Pf ( pb | qb | rb | ob | 0 , fb | x | 0 , 3 ) | 0 ; ob = hb + 56 | 0 ; c [ ob >> 2 ] = fb & 33554431 ; c [ ob + 4 >> 2 ] = 0 ; ob = Qf ( d [ f + 26 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; fb = x ; rb = Qf ( d [ f + 27 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; fb = fb | x ; qb = d [ f + 28 >> 0 ] | 0 ; pb = Qf ( qb | 0 , 0 , 24 ) | 0 ; fb = Pf ( ob | gb | rb | pb | 0 , fb | x | 0 , 4 ) | 0 ; pb = hb + 64 | 0 ; c [ pb >> 2 ] = fb & 67108863 ; c [ pb + 4 >> 2 ] = 0 ; pb = Qf ( d [ f + 29 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; fb = x ; rb = Qf ( d [ f + 30 >> 0 ] | 0 | 0 , 0 , 16 ) | 0 ; fb = fb | x ; gb = Qf ( d [ f + 31 >> 0 ] | 0 | 0 , 0 , 24 ) | 0 ; fb = Pf ( pb | qb | rb | gb | 0 , fb | x | 0 , 6 ) | 0 ; gb = hb + 72 | 0 ; c [ gb >> 2 ] = fb & 33554431 ; c [ gb + 4 >> 2 ] = 0 ; Uf ( xb | 0 , 0 , 152 ) | 0 ; gb = xb ; c [ gb >> 2 ] = 1 ; c [ gb + 4 >> 2 ] = 0 ; Uf ( yb | 0 , 0 , 152 ) | 0 ; gb = yb ; c [ gb >> 2 ] = 1 ; c [ gb + 4 >> 2 ] = 0 ; Uf ( zb | 0 , 0 , 152 ) | 0 ; Uf ( j | 0 , 0 , 152 ) | 0 ; Uf ( i | 0 , 0 , 152 ) | 0 ; gb = i ; c [ gb >> 2 ] = 1 ; c [ gb + 4 >> 2 ] = 0 ; Uf ( h | 0 , 0 , 152 ) | 0 ; Uf ( g | 0 , 0 , 152 ) | 0 ; gb = g ; c [ gb >> 2 ] = 1 ; c [ gb + 4 >> 2 ] = 0 ; gb = Fb + 80 | 0 ; fb = gb + 72 | 0 ; do { c [ gb >> 2 ] = 0 ; gb = gb + 4 | 0 } while ( ( gb | 0 ) < ( fb | 0 ) ) ; gb = Fb ; e = hb ; fb = gb + 80 | 0 ; do { c [ gb >> 2 ] = c [ e >> 2 ] ; gb = gb + 4 | 0 ; e = e + 4 | 0 } while ( ( gb | 0 ) < ( fb | 0 ) ) ; fa = Eb + 144 | 0 ; ga = Eb + 64 | 0 ; ha = Eb + 136 | 0 ; ia = Eb + 56 | 0 ; ja = Eb + 128 | 0 ; ka = Eb + 48 | 0 ; la = Eb + 120 | 0 ; ma = Eb + 40 | 0 ; na = Eb + 112 | 0 ; oa = Eb + 32 | 0 ; pa = Eb + 104 | 0 ; qa = Eb + 24 | 0 ; ra = Eb + 96 | 0 ; sa = Eb + 16 | 0 ; ta = Eb + 88 | 0 ; ua = Eb + 8 | 0 ; va = Eb + 80 | 0 ; wa = ub + 144 | 0 ; xa = ub + 64 | 0 ; ya = ub + 136 | 0 ; za = ub + 56 | 0 ; Aa = ub + 128 | 0 ; Ba = ub + 48 | 0 ; Ca = ub + 120 | 0 ; Da = ub + 40 | 0 ; Ea = ub + 112 | 0 ; Fa = ub + 32 | 0 ; Ga = ub + 104 | 0 ; Ha = ub + 24 | 0 ; Ia = ub + 96 | 0 ; Ja = ub + 16 | 0 ; Ka = ub + 88 | 0 ; La = ub + 8 | 0 ; Ma = ub + 80 | 0 ; ea = Eb + 72 | 0 ; Na = ub + 72 | 0 ; Oa = sb + 8 | 0 ; Pa = tb + 8 | 0 ; Qa = sb + 16 | 0 ; Ra = tb + 16 | 0 ; Sa = sb + 24 | 0 ; Ta = tb + 24 | 0 ; Ua = sb + 32 | 0 ; Va = tb + 32 | 0 ; Wa = sb + 40 | 0 ; Xa = tb + 40 | 0 ; Ya = sb + 48 | 0 ; Za = tb + 48 | 0 ; _a = sb + 56 | 0 ; $a = tb + 56 | 0 ; ab = sb + 64 | 0 ; bb = tb + 64 | 0 ; cb = sb + 72 | 0 ; db = tb + 72 | 0 ; jb = Ab + 80 | 0 ; kb = Ab + 8 | 0 ; lb = Ab + 16 | 0 ; mb = Ab + 24 | 0 ; nb = Ab + 32 | 0 ; ob = Ab + 40 | 0 ; pb = Ab + 48 | 0 ; qb = Ab + 56 | 0 ; rb = Ab + 64 | 0 ; eb = Ab + 72 | 0 ; n = Fb ; da = 0 ; e = j ; f = xb ; j = zb ; l = yb ; while ( 1 ) { m = a [ ib + ( 31 - da ) >> 0 ] | 0 ; $ = 0 ; aa = g ; ba = h ; ca = i ; Z = e ; i = f ; g = j ; h = l ; _ = n ; while ( 1 ) { X = m & 255 ; Y = X >>> 7 ; Df ( h , _ ,
// EMSCRIPTEN_END_FUNCS
var $ = [ Zf , wc ] ; var aa = [ _f , xc , zc , _f ] ; var ba = [ $f , yc , Ac , $f ] ; return { _ _ _muldi3 : Nf , _bitshift64Ashr : Of , _bitshift64Lshr : Pf , _bitshift64Shl : Qf , _free : If , _i64Add : Rf , _i64Subtract : Sf , _malloc : Hf , _memcpy : Tf , _memset : Uf , _olm _account : Hb , _olm _account _generate _one _time _keys : cc , _olm _account _generate _one _time _keys _random _length : bc , _olm _account _identity _keys : Wb , _olm _account _identity _keys _length : Vb , _olm _account _last _error : Bb , _olm _account _mark _keys _as _published : $b , _olm _account _max _number _of _one _time _keys : ac , _olm _account _one _time _keys : _b , _olm _account _one _time _keys _length : Zb , _olm _account _sign : Yb , _olm _account _signature _length : Xb , _olm _account _size : Eb , _olm _clear _account : Kb , _olm _clear _inbound _group _session : Ce , _olm _clear _outbound _group _session : ef , _olm _clear _pk _decryption : Oc , _olm _clear _pk _encryption : Ec , _olm _clear _pk _signing : ad , _olm _clear _sas : Ue , _olm _clear _session : Lb , _olm _clear _utility : Mb , _olm _create _account : Ub , _olm _create _account _random _length : Tb , _olm _create _inbound _session : fc , _olm _create _inbound _session _from : gc , _olm _create _outbound _session : ec , _olm _create _outbound _session _random _length : dc , _olm _create _sas : We , _olm _create _sas _random _length : Ve , _olm _decrypt : sc , _olm _decrypt _max _plaintext _length : rc , _olm _ed25519 _verify : vc , _olm _encrypt : qc , _olm _encrypt _message _length : pc , _olm _encrypt _message _type : nc , _olm _encrypt _random _length : oc , _olm _error : Ab , _olm _export _inbound _group _session : Qe , _olm _export _inbound _group _session _length : Pe , _olm _get _library _version : zb , _olm _group _decrypt : Ke , _olm _group _decrypt _max _plaintext _length : Je , _olm _group _encrypt : nf , _olm _group _encrypt _message _length : mf , _olm _import _inbound _group _session : Fe , _olm _inbound _group _session : Be , _olm _inbound _group _session _first _known _index : Ne , _olm _inbound _group _session _id : Me , _olm _inbound _group _session _id _length : Le , _olm _inbound _group _session _is _verified : Oe , _olm _inbound _group _session _last _error : De , _olm _inbound _group _session _size : Ae , _olm _init _inbound _group _session : Ee , _olm _init _outbound _group _session : lf , _olm _init _outbound _group _session _random _length : kf , _olm _matches _inbound _session : kc , _olm _matches _inbound _session _from : lc , _olm _outbound _group _session : df , _olm _outbound _group _session _id : pf , _olm _outbound _group _session _id _length : of , _olm _outbound _group _session _key : sf , _olm _outbound _group _session _key _length : rf , _olm _outbound _group _session _last _error : ff , _olm _outbound _group _session _message _index : qf , _olm _outbound _group _session _size : cf , _olm _pickle _account : Pb , _olm _pickle _account _length : Nb , _olm _pickle _inbound _group _session : He , _olm _pickle _inbound _group _session _length : Ge , _olm _pickle _outbound _group _session : hf , _olm _pickle _outbound _group _session _length : gf , _olm _pickle _pk _decryption : Uc , _olm _pickle _pk _decryption _length : Tc , _olm _pickle _session : Qb , _olm _pickle _session _length : Ob , _olm _pk _ciphertext _length : Hc , _olm _pk _decrypt : Xc , _olm _pk _decryption : Nc , _olm _pk _decryption _last _error : Lc , _olm _pk _decryption _size : Mc , _olm _pk _encrypt : Kc , _olm _pk _encrypt _random _length : Jc , _olm _pk _encryption : Dc , _olm _pk _encryption _last _error : Bc , _olm _pk _encryption _set _recipient _key : Fc , _olm _pk _encryption _size : Cc , _olm _pk _generate _key : Sc , _olm _pk _generate _key _random _length : Qc , _olm _pk _get _private _key : Yc , _olm _pk _key _from _private : Rc , _olm _pk _key _length : Gc , _olm _pk _mac _length : Ic , _olm _pk _max _plaintext _length : Wc , _olm _pk _private _key _length : Pc , _olm _pk _sign : fd , _olm _pk _signature _length : ed , _olm _pk _signing : _c , _olm _pk _signing _key _from _seed : dd , _olm _pk _signing _last _error : $c , _olm _pk _signing _public _key _length : cd , _olm _pk _signing _seed _length : bd , _olm _pk _signing _size : Zc , _olm _remove _one _time _keys : mc , _olm _sas : Te , _olm _sas _calculate _mac : af , _olm _sas _calculate _mac _long _kdf : bf , _olm _sas _generate _bytes : _e , _olm _sas _get _pubkey : Ye , _olm _sas _last _error : Re , _olm _sas _mac _length : $e , _olm _sas _pubkey _length : Xe , _olm _sas _set _their _key : Ze , _olm _sas _size : Se , _olm _session : Ib , _olm _session _has _received _message : jc , _olm _session _id : ic , _olm _session _id _length : hc , _olm _session _last _error : Cb , _olm _session _size : Fb , _olm _sha256 : uc , _olm _sha256 _length : tc , _olm _unpickle _account : Rb , _olm _unpickle _inbound _group _session : Ie , _olm _unpickle _outbound _group _session : jf , _olm _unpickle _pk _decryption : Vc , _olm _unpickle _session : Sb , _olm _utility : Jb , _olm _utility _last _error : Db , _olm _uti
// EMSCRIPTEN_END_ASM
( c . f , c . g , buffer ) ; c . _ _ _muldi3 = F . _ _ _muldi3 ; c . _bitshift64Ashr = F . _bitshift64Ashr ; c . _bitshift64Lshr = F . _bitshift64Lshr ;
c . _bitshift64Shl = F . _bitshift64Shl ; c . _free = F . _free ; c . _i64Add = F . _i64Add ; c . _i64Subtract = F . _i64Subtract ; var Ca = c . _malloc = F . _malloc ; c . _memcpy = F . _memcpy ; c . _memset = F . _memset ; c . _olm _account = F . _olm _account ; c . _olm _account _generate _one _time _keys = F . _olm _account _generate _one _time _keys ; c . _olm _account _generate _one _time _keys _random _length = F . _olm _account _generate _one _time _keys _random _length ; c . _olm _account _identity _keys = F . _olm _account _identity _keys ; c . _olm _account _identity _keys _length = F . _olm _account _identity _keys _length ;
c . _olm _account _last _error = F . _olm _account _last _error ; c . _olm _account _mark _keys _as _published = F . _olm _account _mark _keys _as _published ; c . _olm _account _max _number _of _one _time _keys = F . _olm _account _max _number _of _one _time _keys ; c . _olm _account _one _time _keys = F . _olm _account _one _time _keys ; c . _olm _account _one _time _keys _length = F . _olm _account _one _time _keys _length ; c . _olm _account _sign = F . _olm _account _sign ; c . _olm _account _signature _length = F . _olm _account _signature _length ; c . _olm _account _size = F . _olm _account _size ;
c . _olm _clear _account = F . _olm _clear _account ; c . _olm _clear _inbound _group _session = F . _olm _clear _inbound _group _session ; c . _olm _clear _outbound _group _session = F . _olm _clear _outbound _group _session ; c . _olm _clear _pk _decryption = F . _olm _clear _pk _decryption ; c . _olm _clear _pk _encryption = F . _olm _clear _pk _encryption ; c . _olm _clear _pk _signing = F . _olm _clear _pk _signing ; c . _olm _clear _sas = F . _olm _clear _sas ; c . _olm _clear _session = F . _olm _clear _session ; c . _olm _clear _utility = F . _olm _clear _utility ; c . _olm _create _account = F . _olm _create _account ;
c . _olm _create _account _random _length = F . _olm _create _account _random _length ; c . _olm _create _inbound _session = F . _olm _create _inbound _session ; c . _olm _create _inbound _session _from = F . _olm _create _inbound _session _from ; c . _olm _create _outbound _session = F . _olm _create _outbound _session ; c . _olm _create _outbound _session _random _length = F . _olm _create _outbound _session _random _length ; c . _olm _create _sas = F . _olm _create _sas ; c . _olm _create _sas _random _length = F . _olm _create _sas _random _length ; c . _olm _decrypt = F . _olm _decrypt ;
c . _olm _decrypt _max _plaintext _length = F . _olm _decrypt _max _plaintext _length ; c . _olm _ed25519 _verify = F . _olm _ed25519 _verify ; c . _olm _encrypt = F . _olm _encrypt ; c . _olm _encrypt _message _length = F . _olm _encrypt _message _length ; c . _olm _encrypt _message _type = F . _olm _encrypt _message _type ; c . _olm _encrypt _random _length = F . _olm _encrypt _random _length ; c . _olm _error = F . _olm _error ; c . _olm _export _inbound _group _session = F . _olm _export _inbound _group _session ; c . _olm _export _inbound _group _session _length = F . _olm _export _inbound _group _session _length ;
c . _olm _get _library _version = F . _olm _get _library _version ; c . _olm _group _decrypt = F . _olm _group _decrypt ; c . _olm _group _decrypt _max _plaintext _length = F . _olm _group _decrypt _max _plaintext _length ; c . _olm _group _encrypt = F . _olm _group _encrypt ; c . _olm _group _encrypt _message _length = F . _olm _group _encrypt _message _length ; c . _olm _import _inbound _group _session = F . _olm _import _inbound _group _session ; c . _olm _inbound _group _session = F . _olm _inbound _group _session ; c . _olm _inbound _group _session _first _known _index = F . _olm _inbound _group _session _first _known _index ;
c . _olm _inbound _group _session _id = F . _olm _inbound _group _session _id ; c . _olm _inbound _group _session _id _length = F . _olm _inbound _group _session _id _length ; c . _olm _inbound _group _session _is _verified = F . _olm _inbound _group _session _is _verified ; c . _olm _inbound _group _session _last _error = F . _olm _inbound _group _session _last _error ; c . _olm _inbound _group _session _size = F . _olm _inbound _group _session _size ; c . _olm _init _inbound _group _session = F . _olm _init _inbound _group _session ; c . _olm _init _outbound _group _session = F . _olm _init _outbound _group _session ;
c . _olm _init _outbound _group _session _random _length = F . _olm _init _outbound _group _session _random _length ; c . _olm _matches _inbound _session = F . _olm _matches _inbound _session ; c . _olm _matches _inbound _session _from = F . _olm _matches _inbound _session _from ; c . _olm _outbound _group _session = F . _olm _outbound _group _session ; c . _olm _outbound _group _session _id = F . _olm _outbound _group _session _id ; c . _olm _outbound _group _session _id _length = F . _olm _outbound _group _session _id _length ; c . _olm _outbound _group _session _key = F . _olm _outbound _group _session _key ;
c . _olm _outbound _group _session _key _length = F . _olm _outbound _group _session _key _length ; c . _olm _outbound _group _session _last _error = F . _olm _outbound _group _session _last _error ; c . _olm _outbound _group _session _message _index = F . _olm _outbound _group _session _message _index ; c . _olm _outbound _group _session _size = F . _olm _outbound _group _session _size ; c . _olm _pickle _account = F . _olm _pickle _account ; c . _olm _pickle _account _length = F . _olm _pickle _account _length ; c . _olm _pickle _inbound _group _session = F . _olm _pickle _inbound _group _session ;
c . _olm _pickle _inbound _group _session _length = F . _olm _pickle _inbound _group _session _length ; c . _olm _pickle _outbound _group _session = F . _olm _pickle _outbound _group _session ; c . _olm _pickle _outbound _group _session _length = F . _olm _pickle _outbound _group _session _length ; c . _olm _pickle _pk _decryption = F . _olm _pickle _pk _decryption ; c . _olm _pickle _pk _decryption _length = F . _olm _pickle _pk _decryption _length ; c . _olm _pickle _session = F . _olm _pickle _session ; c . _olm _pickle _session _length = F . _olm _pickle _session _length ;
c . _olm _pk _ciphertext _length = F . _olm _pk _ciphertext _length ; c . _olm _pk _decrypt = F . _olm _pk _decrypt ; c . _olm _pk _decryption = F . _olm _pk _decryption ; c . _olm _pk _decryption _last _error = F . _olm _pk _decryption _last _error ; c . _olm _pk _decryption _size = F . _olm _pk _decryption _size ; c . _olm _pk _encrypt = F . _olm _pk _encrypt ; c . _olm _pk _encrypt _random _length = F . _olm _pk _encrypt _random _length ; c . _olm _pk _encryption = F . _olm _pk _encryption ; c . _olm _pk _encryption _last _error = F . _olm _pk _encryption _last _error ; c . _olm _pk _encryption _set _recipient _key = F . _olm _pk _encryption _set _recipient _key ;
c . _olm _pk _encryption _size = F . _olm _pk _encryption _size ; c . _olm _pk _generate _key = F . _olm _pk _generate _key ; c . _olm _pk _generate _key _random _length = F . _olm _pk _generate _key _random _length ; c . _olm _pk _get _private _key = F . _olm _pk _get _private _key ; c . _olm _pk _key _from _private = F . _olm _pk _key _from _private ; c . _olm _pk _key _length = F . _olm _pk _key _length ; c . _olm _pk _mac _length = F . _olm _pk _mac _length ; c . _olm _pk _max _plaintext _length = F . _olm _pk _max _plaintext _length ; c . _olm _pk _private _key _length = F . _olm _pk _private _key _length ; c . _olm _pk _sign = F . _olm _pk _sign ;
c . _olm _pk _signature _length = F . _olm _pk _signature _length ; c . _olm _pk _signing = F . _olm _pk _signing ; c . _olm _pk _signing _key _from _seed = F . _olm _pk _signing _key _from _seed ; c . _olm _pk _signing _last _error = F . _olm _pk _signing _last _error ; c . _olm _pk _signing _public _key _length = F . _olm _pk _signing _public _key _length ; c . _olm _pk _signing _seed _length = F . _olm _pk _signing _seed _length ; c . _olm _pk _signing _size = F . _olm _pk _signing _size ; c . _olm _remove _one _time _keys = F . _olm _remove _one _time _keys ; c . _olm _sas = F . _olm _sas ; c . _olm _sas _calculate _mac = F . _olm _sas _calculate _mac ;
c . _olm _sas _calculate _mac _long _kdf = F . _olm _sas _calculate _mac _long _kdf ; c . _olm _sas _generate _bytes = F . _olm _sas _generate _bytes ; c . _olm _sas _get _pubkey = F . _olm _sas _get _pubkey ; c . _olm _sas _last _error = F . _olm _sas _last _error ; c . _olm _sas _mac _length = F . _olm _sas _mac _length ; c . _olm _sas _pubkey _length = F . _olm _sas _pubkey _length ; c . _olm _sas _set _their _key = F . _olm _sas _set _their _key ; c . _olm _sas _size = F . _olm _sas _size ; c . _olm _session = F . _olm _session ; c . _olm _session _has _received _message = F . _olm _session _has _received _message ;
c . _olm _session _id = F . _olm _session _id ; c . _olm _session _id _length = F . _olm _session _id _length ; c . _olm _session _last _error = F . _olm _session _last _error ; c . _olm _session _size = F . _olm _session _size ; c . _olm _sha256 = F . _olm _sha256 ; c . _olm _sha256 _length = F . _olm _sha256 _length ; c . _olm _unpickle _account = F . _olm _unpickle _account ; c . _olm _unpickle _inbound _group _session = F . _olm _unpickle _inbound _group _session ; c . _olm _unpickle _outbound _group _session = F . _olm _unpickle _outbound _group _session ; c . _olm _unpickle _pk _decryption = F . _olm _unpickle _pk _decryption ;
c . _olm _unpickle _session = F . _olm _unpickle _session ; c . _olm _utility = F . _olm _utility ; c . _olm _utility _last _error = F . _olm _utility _last _error ; c . _olm _utility _size = F . _olm _utility _size ; c . _sbrk = F . _sbrk ; c . establishStackSpace = F . establishStackSpace ; c . getTempRet0 = F . getTempRet0 ; c . runPostSets = F . runPostSets ; c . setTempRet0 = F . setTempRet0 ; c . setThrew = F . setThrew ; var Da = c . stackAlloc = F . stackAlloc , bb = c . stackRestore = F . stackRestore , ab = c . stackSave = F . stackSave ; c . dynCall _ii = F . dynCall _ii ; c . dynCall _iii = F . dynCall _iii ;
c . dynCall _iiiiiiiiii = F . dynCall _iiiiiiiiii ; c . asm = F ; c . ALLOC _STACK = 1 ;
if ( D ) { if ( String . prototype . startsWith ? ! D . startsWith ( Xa ) : 0 !== D . indexOf ( Xa ) ) { var cb = D ; D = c . locateFile ? c . locateFile ( cb , n ) : n + cb } if ( l || ia ) { var db = c . readBinary ( D ) ; z . set ( db , 8 ) } else { var fb = function ( ) { c . readAsync ( D , eb , function ( ) { throw "could not load memory initializer " + D ; } ) } ; C ++ ; c . monitorRunDependencies && c . monitorRunDependencies ( C ) ; var eb = function ( a ) { a . byteLength && ( a = new Uint8Array ( a ) ) ; z . set ( a , 8 ) ; c . memoryInitializerRequest && delete c . memoryInitializerRequest . response ; C -- ; c . monitorRunDependencies && c . monitorRunDependencies ( C ) ;
0 == C && ( null !== Va && ( clearInterval ( Va ) , Va = null ) , Wa && ( a = Wa , Wa = null , a ( ) ) ) } , gb = p ( D ) ; if ( gb ) eb ( gb . buffer ) ; else if ( c . memoryInitializerRequest ) { var hb = function ( ) { var a = c . memoryInitializerRequest , b = a . response ; if ( 200 !== a . status && 0 !== a . status ) if ( b = p ( c . memoryInitializerRequestURL ) ) b = b . buffer ; else { console . warn ( "a problem seems to have happened with Module.memoryInitializerRequest, status: " + a . status + ", retrying " + D ) ; fb ( ) ; return } eb ( b ) } ; c . memoryInitializerRequest . response ? setTimeout ( hb , 0 ) : c . memoryInitializerRequest . addEventListener ( "load" ,
hb ) } else fb ( ) } } c . then = function ( a ) { if ( c . calledRun ) a ( c ) ; else { var b = c . onRuntimeInitialized ; c . onRuntimeInitialized = function ( ) { b && b ( ) ; a ( c ) } } return c } ; Wa = function ib ( ) { c . calledRun || jb ( ) ; c . calledRun || ( Wa = ib ) } ;
function jb ( ) { function a ( ) { if ( ! c . calledRun && ( c . calledRun = ! 0 , ! sa ) ) { Sa || ( Sa = ! 0 , Na ( Pa ) ) ; Na ( Qa ) ; if ( c . onRuntimeInitialized ) c . onRuntimeInitialized ( ) ; if ( c . postRun ) for ( "function" == typeof c . postRun && ( c . postRun = [ c . postRun ] ) ; c . postRun . length ; ) { var a = c . postRun . shift ( ) ; Ra . unshift ( a ) } Na ( Ra ) } } if ( ! ( 0 < C ) ) { if ( c . preRun ) for ( "function" == typeof c . preRun && ( c . preRun = [ c . preRun ] ) ; c . preRun . length ; ) Ta ( ) ; Na ( Oa ) ; 0 < C || c . calledRun || ( c . setStatus ? ( c . setStatus ( "Running..." ) , setTimeout ( function ( ) { setTimeout ( function ( ) { c . setStatus ( "" ) } ,
1 ) ; a ( ) } , 1 ) ) : a ( ) ) } } c . run = jb ; function ta ( a ) { if ( c . onAbort ) c . onAbort ( a ) ; void 0 !== a ? ( ma ( a ) , na ( a ) , a = JSON . stringify ( a ) ) : a = "" ; sa = ! 0 ; throw "abort(" + a + "). Build with -s ASSERTIONS=1 for more info." ; } c . abort = ta ; if ( c . preInit ) for ( "function" == typeof c . preInit && ( c . preInit = [ c . preInit ] ) ; 0 < c . preInit . length ; ) c . preInit . pop ( ) ( ) ; c . noExitRuntime = ! 0 ; jb ( ) ; function G ( ) { var a = c . _olm _outbound _group _session _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _outbound _group _session ( this . b ) }
function I ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _outbound _group _session _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } G . prototype . free = function ( ) { c . _olm _clear _outbound _group _session ( this . a ) ; K ( this . a ) } ; G . prototype . pickle = L ( function ( a ) { a = E ( a ) ; var b = I ( c . _olm _pickle _outbound _group _session _length ) ( this . a ) , d = y ( a ) , e = y ( b + 1 ) ; try { I ( c . _olm _pickle _outbound _group _session ) ( this . a , d , a . length , e , b ) } finally { for ( M ( d , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } return A ( e ) } ) ;
G . prototype . unpickle = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) ; b = E ( b ) ; var e = y ( b ) ; try { I ( c . _olm _unpickle _outbound _group _session ) ( this . a , d , a . length , e , b . length ) } finally { for ( M ( d , a . length ) , d = 0 ; d < a . length ; d ++ ) a [ d ] = 0 } } ) ; G . prototype . create = L ( function ( ) { var a = I ( c . _olm _init _outbound _group _session _random _length ) ( this . a ) , b = N ( a ) ; I ( c . _olm _init _outbound _group _session ) ( this . a , b , a ) } ) ;
G . prototype . encrypt = function ( a ) { try { var b = Ga ( a ) ; var d = I ( c . _olm _group _encrypt _message _length ) ( this . a , b ) ; var e = H ( b + 1 ) ; Fa ( a , z , e , b + 1 ) ; var g = H ( d + 1 ) ; I ( c . _olm _group _encrypt ) ( this . a , e , b , g , d ) ; w ( g + d ) ; return A ( g ) } finally { void 0 !== e && ( M ( e , b + 1 ) , K ( e ) ) , void 0 !== g && K ( g ) } } ; G . prototype . session _id = L ( function ( ) { var a = I ( c . _olm _outbound _group _session _id _length ) ( this . a ) , b = y ( a + 1 ) ; I ( c . _olm _outbound _group _session _id ) ( this . a , b , a ) ; return A ( b ) } ) ;
G . prototype . session _key = L ( function ( ) { var a = I ( c . _olm _outbound _group _session _key _length ) ( this . a ) , b = y ( a + 1 ) ; I ( c . _olm _outbound _group _session _key ) ( this . a , b , a ) ; var d = A ( b ) ; M ( b , a ) ; return d } ) ; G . prototype . message _index = function ( ) { return I ( c . _olm _outbound _group _session _message _index ) ( this . a ) } ; olm _exports . OutboundGroupSession = G ; function O ( ) { var a = c . _olm _inbound _group _session _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _inbound _group _session ( this . b ) }
function P ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _inbound _group _session _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } O . prototype . free = function ( ) { c . _olm _clear _inbound _group _session ( this . a ) ; K ( this . a ) } ; O . prototype . pickle = L ( function ( a ) { a = E ( a ) ; var b = P ( c . _olm _pickle _inbound _group _session _length ) ( this . a ) , d = y ( a ) , e = y ( b + 1 ) ; try { P ( c . _olm _pickle _inbound _group _session ) ( this . a , d , a . length , e , b ) } finally { for ( M ( d , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } return A ( e ) } ) ;
O . prototype . unpickle = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) ; b = E ( b ) ; var e = y ( b ) ; try { P ( c . _olm _unpickle _inbound _group _session ) ( this . a , d , a . length , e , b . length ) } finally { for ( M ( d , a . length ) , d = 0 ; d < a . length ; d ++ ) a [ d ] = 0 } } ) ; O . prototype . create = L ( function ( a ) { a = E ( a ) ; var b = y ( a ) ; try { P ( c . _olm _init _inbound _group _session ) ( this . a , b , a . length ) } finally { for ( M ( b , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } } ) ;
O . prototype . import _session = L ( function ( a ) { a = E ( a ) ; var b = y ( a ) ; try { P ( c . _olm _import _inbound _group _session ) ( this . a , b , a . length ) } finally { for ( M ( b , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } } ) ; O . prototype . decrypt = L ( function ( a ) { try { var b = H ( a . length ) ; Ua ( a , b ) ; var d = P ( c . _olm _group _decrypt _max _plaintext _length ) ( this . a , b , a . length ) ; Ua ( a , b ) ; var e = H ( d + 1 ) ; var g = y ( 4 ) ; var k = P ( c . _olm _group _decrypt ) ( this . a , b , a . length , e , d , g ) ; w ( e + k ) ; return { plaintext : A ( e ) , message _index : Ba ( g , "i32" ) } } finally { void 0 !== b && K ( b ) , void 0 !== e && ( M ( e , k ) , K ( e ) ) } } ) ;
O . prototype . session _id = L ( function ( ) { var a = P ( c . _olm _inbound _group _session _id _length ) ( this . a ) , b = y ( a + 1 ) ; P ( c . _olm _inbound _group _session _id ) ( this . a , b , a ) ; return A ( b ) } ) ; O . prototype . first _known _index = L ( function ( ) { return P ( c . _olm _inbound _group _session _first _known _index ) ( this . a ) } ) ; O . prototype . export _session = L ( function ( a ) { var b = P ( c . _olm _export _inbound _group _session _length ) ( this . a ) , d = y ( b + 1 ) ; I ( c . _olm _export _inbound _group _session ) ( this . a , d , b , a ) ; a = A ( d ) ; M ( d , b ) ; return a } ) ; olm _exports . InboundGroupSession = O ;
function kb ( ) { var a = c . _olm _pk _encryption _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _pk _encryption ( this . b ) } function R ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _pk _encryption _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } kb . prototype . free = function ( ) { c . _olm _clear _pk _encryption ( this . a ) ; K ( this . a ) } ; kb . prototype . set _recipient _key = L ( function ( a ) { a = E ( a ) ; var b = y ( a ) ; R ( c . _olm _pk _encryption _set _recipient _key ) ( this . a , b , a . length ) } ) ;
kb . prototype . encrypt = L ( function ( a ) { try { var b = Ga ( a ) ; var d = H ( b + 1 ) ; Fa ( a , z , d , b + 1 ) ; var e = R ( c . _olm _pk _encrypt _random _length ) ( ) ; var g = N ( e ) ; var k = R ( c . _olm _pk _ciphertext _length ) ( this . a , b ) ; var m = H ( k + 1 ) ; var u = R ( c . _olm _pk _mac _length ) ( this . a ) , J = y ( u + 1 ) ; w ( J + u ) ; var Q = R ( c . _olm _pk _key _length ) ( ) , B = y ( Q + 1 ) ; w ( B + Q ) ; R ( c . _olm _pk _encrypt ) ( this . a , d , b , m , k , J , u , B , Q , g , e ) ; w ( m + k ) ; return { ciphertext : A ( m ) , mac : A ( J ) , ephemeral : A ( B ) } } finally { void 0 !== g && M ( g , e ) , void 0 !== d && ( M ( d , b + 1 ) , K ( d ) ) , void 0 !== m && K ( m ) } } ) ;
function S ( ) { var a = c . _olm _pk _decryption _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _pk _decryption ( this . b ) } function T ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _pk _decryption _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } S . prototype . free = function ( ) { c . _olm _clear _pk _decryption ( this . a ) ; K ( this . a ) } ;
S . prototype . init _with _private _key = L ( function ( a ) { var b = y ( a . length ) ; c . HEAPU8 . set ( a , b ) ; var d = T ( c . _olm _pk _key _length ) ( ) , e = y ( d + 1 ) ; try { T ( c . _olm _pk _key _from _private ) ( this . a , e , d , b , a . length ) } finally { M ( b , a . length ) } return A ( e ) } ) ; S . prototype . generate _key = L ( function ( ) { var a = T ( c . _olm _pk _private _key _length ) ( ) , b = N ( a ) , d = T ( c . _olm _pk _key _length ) ( ) , e = y ( d + 1 ) ; try { T ( c . _olm _pk _key _from _private ) ( this . a , e , d , b , a ) } finally { M ( b , a ) } return A ( e ) } ) ;
S . prototype . get _private _key = L ( function ( ) { var a = R ( c . _olm _pk _private _key _length ) ( ) , b = y ( a ) ; T ( c . _olm _pk _get _private _key ) ( this . a , b , a ) ; var d = new Uint8Array ( new Uint8Array ( c . HEAPU8 . buffer , b , a ) ) ; M ( b , a ) ; return d } ) ; S . prototype . pickle = L ( function ( a ) { a = E ( a ) ; var b = T ( c . _olm _pickle _pk _decryption _length ) ( this . a ) , d = y ( a ) , e = y ( b + 1 ) ; try { T ( c . _olm _pickle _pk _decryption ) ( this . a , d , a . length , e , b ) } finally { for ( M ( d , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } return A ( e ) } ) ;
S . prototype . unpickle = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) , e = E ( b ) , g = y ( e ) , k = T ( c . _olm _pk _key _length ) ( ) ; b = y ( k + 1 ) ; try { T ( c . _olm _unpickle _pk _decryption ) ( this . a , d , a . length , g , e . length , b , k ) } finally { for ( M ( d , a . length ) , d = 0 ; d < a . length ; d ++ ) a [ d ] = 0 } return A ( b ) } ) ;
S . prototype . decrypt = L ( function ( a , b , d ) { try { var e = Ga ( d ) ; var g = H ( e + 1 ) ; Fa ( d , z , g , e + 1 ) ; var k = E ( a ) , m = y ( k ) , u = E ( b ) , J = y ( u ) ; var Q = T ( c . _olm _pk _max _plaintext _length ) ( this . a , e ) ; var B = H ( Q + 1 ) ; var da = T ( c . _olm _pk _decrypt ) ( this . a , m , k . length , J , u . length , g , e , B , Q ) ; w ( B + da ) ; return A ( B ) } finally { void 0 !== B && ( M ( B , da + 1 ) , K ( B ) ) , void 0 !== g && K ( g ) } } ) ; function lb ( ) { var a = c . _olm _pk _signing _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _pk _signing ( this . b ) }
function mb ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _pk _signing _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } lb . prototype . free = function ( ) { c . _olm _clear _pk _signing ( this . a ) ; K ( this . a ) } ; lb . prototype . init _with _seed = L ( function ( a ) { var b = y ( a . length ) ; c . HEAPU8 . set ( a , b ) ; var d = mb ( c . _olm _pk _signing _public _key _length ) ( ) , e = y ( d + 1 ) ; try { mb ( c . _olm _pk _signing _key _from _seed ) ( this . a , e , d , b , a . length ) } finally { M ( b , a . length ) } return A ( e ) } ) ;
lb . prototype . generate _seed = L ( function ( ) { var a = mb ( c . _olm _pk _signing _seed _length ) ( ) , b = N ( a ) , d = new Uint8Array ( new Uint8Array ( c . HEAPU8 . buffer , b , a ) ) ; M ( b , a ) ; return d } ) ; lb . prototype . sign = L ( function ( a ) { try { var b = Ga ( a ) ; var d = H ( b + 1 ) ; Fa ( a , z , d , b + 1 ) ; var e = mb ( c . _olm _pk _signature _length ) ( ) , g = y ( e + 1 ) ; mb ( c . _olm _pk _sign ) ( this . a , d , b , g , e ) ; return A ( g ) } finally { void 0 !== d && ( M ( d , b + 1 ) , K ( d ) ) } } ) ;
function U ( ) { var a = c . _olm _sas _size ( ) , b = c . _olm _create _sas _random _length ( ) , d = N ( b ) ; this . b = H ( a ) ; this . a = c . _olm _sas ( this . b ) ; c . _olm _create _sas ( this . a , d , b ) ; M ( d , b ) } function V ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _sas _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } U . prototype . free = function ( ) { c . _olm _clear _sas ( this . a ) ; K ( this . a ) } ; U . prototype . get _pubkey = L ( function ( ) { var a = V ( c . _olm _sas _pubkey _length ) ( this . a ) , b = y ( a + 1 ) ; V ( c . _olm _sas _get _pubkey ) ( this . a , b , a ) ; return A ( b ) } ) ;
U . prototype . set _their _key = L ( function ( a ) { a = E ( a ) ; var b = y ( a ) ; V ( c . _olm _sas _set _their _key ) ( this . a , b , a . length ) } ) ; U . prototype . generate _bytes = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) , e = y ( b ) ; V ( c . _olm _sas _generate _bytes ) ( this . a , d , a . length , e , b ) ; return new Uint8Array ( new Uint8Array ( c . HEAPU8 . buffer , e , b ) ) } ) ; U . prototype . calculate _mac = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) ; b = E ( b ) ; var e = y ( b ) , g = V ( c . _olm _sas _mac _length ) ( this . a ) , k = y ( g + 1 ) ; V ( c . _olm _sas _calculate _mac ) ( this . a , d , a . length , e , b . length , k , g ) ; return A ( k ) } ) ;
U . prototype . calculate _mac _long _kdf = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) ; b = E ( b ) ; var e = y ( b ) , g = V ( c . _olm _sas _mac _length ) ( this . a ) , k = y ( g + 1 ) ; V ( c . _olm _sas _calculate _mac _long _kdf ) ( this . a , d , a . length , e , b . length , k , g ) ; return A ( k ) } ) ; var H = c . _malloc , K = c . _free , f ; function N ( a ) { var b = y ( a ) ; a = new Uint8Array ( c . HEAPU8 . buffer , b , a ) ; aa ( a ) ; return b } function L ( a ) { return function ( ) { var b = ab ( ) ; try { return a . apply ( this , arguments ) } finally { bb ( b ) } } } function M ( a , b ) { for ( ; 0 < b -- ; ) c . HEAP8 [ a ++ ] = 0 }
function W ( ) { var a = c . _olm _account _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _account ( this . b ) } function X ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _account _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } W . prototype . free = function ( ) { c . _olm _clear _account ( this . a ) ; K ( this . a ) } ; W . prototype . create = L ( function ( ) { var a = X ( c . _olm _create _account _random _length ) ( this . a ) , b = N ( a ) ; X ( c . _olm _create _account ) ( this . a , b , a ) } ) ;
W . prototype . identity _keys = L ( function ( ) { var a = X ( c . _olm _account _identity _keys _length ) ( this . a ) , b = y ( a + 1 ) ; X ( c . _olm _account _identity _keys ) ( this . a , b , a ) ; return A ( b ) } ) ; W . prototype . sign = L ( function ( a ) { var b = X ( c . _olm _account _signature _length ) ( this . a ) ; a = E ( a ) ; var d = y ( a ) , e = y ( b + 1 ) ; try { X ( c . _olm _account _sign ) ( this . a , d , a . length , e , b ) } finally { for ( M ( d , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } return A ( e ) } ) ;
W . prototype . one _time _keys = L ( function ( ) { var a = X ( c . _olm _account _one _time _keys _length ) ( this . a ) , b = y ( a + 1 ) ; X ( c . _olm _account _one _time _keys ) ( this . a , b , a ) ; return A ( b ) } ) ; W . prototype . mark _keys _as _published = L ( function ( ) { X ( c . _olm _account _mark _keys _as _published ) ( this . a ) } ) ; W . prototype . max _number _of _one _time _keys = L ( function ( ) { return X ( c . _olm _account _max _number _of _one _time _keys ) ( this . a ) } ) ;
W . prototype . generate _one _time _keys = L ( function ( a ) { var b = X ( c . _olm _account _generate _one _time _keys _random _length ) ( this . a , a ) , d = N ( b ) ; X ( c . _olm _account _generate _one _time _keys ) ( this . a , a , d , b ) } ) ; W . prototype . remove _one _time _keys = L ( function ( a ) { X ( c . _olm _remove _one _time _keys ) ( this . a , a . a ) } ) ; W . prototype . pickle = L ( function ( a ) { a = E ( a ) ; var b = X ( c . _olm _pickle _account _length ) ( this . a ) , d = y ( a ) , e = y ( b + 1 ) ; try { X ( c . _olm _pickle _account ) ( this . a , d , a . length , e , b ) } finally { for ( M ( d , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } return A ( e ) } ) ;
W . prototype . unpickle = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) ; b = E ( b ) ; var e = y ( b ) ; try { X ( c . _olm _unpickle _account ) ( this . a , d , a . length , e , b . length ) } finally { for ( M ( d , a . length ) , d = 0 ; d < a . length ; d ++ ) a [ d ] = 0 } } ) ; function Y ( ) { var a = c . _olm _session _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _session ( this . b ) } function Z ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _session _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } Y . prototype . free = function ( ) { c . _olm _clear _session ( this . a ) ; K ( this . a ) } ;
Y . prototype . pickle = L ( function ( a ) { a = E ( a ) ; var b = Z ( c . _olm _pickle _session _length ) ( this . a ) , d = y ( a ) , e = y ( b + 1 ) ; try { Z ( c . _olm _pickle _session ) ( this . a , d , a . length , e , b ) } finally { for ( M ( d , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } return A ( e ) } ) ; Y . prototype . unpickle = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) ; b = E ( b ) ; var e = y ( b ) ; try { Z ( c . _olm _unpickle _session ) ( this . a , d , a . length , e , b . length ) } finally { for ( M ( d , a . length ) , d = 0 ; d < a . length ; d ++ ) a [ d ] = 0 } } ) ;
Y . prototype . create _outbound = L ( function ( a , b , d ) { var e = Z ( c . _olm _create _outbound _session _random _length ) ( this . a ) , g = N ( e ) ; b = E ( b ) ; d = E ( d ) ; var k = y ( b ) , m = y ( d ) ; try { Z ( c . _olm _create _outbound _session ) ( this . a , a . a , k , b . length , m , d . length , g , e ) } finally { M ( g , e ) } } ) ; Y . prototype . create _inbound = L ( function ( a , b ) { b = E ( b ) ; var d = y ( b ) ; try { Z ( c . _olm _create _inbound _session ) ( this . a , a . a , d , b . length ) } finally { for ( M ( d , b . length ) , a = 0 ; a < b . length ; a ++ ) b [ a ] = 0 } } ) ;
Y . prototype . create _inbound _from = L ( function ( a , b , d ) { b = E ( b ) ; var e = y ( b ) ; d = E ( d ) ; var g = y ( d ) ; try { Z ( c . _olm _create _inbound _session _from ) ( this . a , a . a , e , b . length , g , d . length ) } finally { for ( M ( g , d . length ) , a = 0 ; a < d . length ; a ++ ) d [ a ] = 0 } } ) ; Y . prototype . session _id = L ( function ( ) { var a = Z ( c . _olm _session _id _length ) ( this . a ) , b = y ( a + 1 ) ; Z ( c . _olm _session _id ) ( this . a , b , a ) ; return A ( b ) } ) ; Y . prototype . has _received _message = function ( ) { return Z ( c . _olm _session _has _received _message ) ( this . a ) ? ! 0 : ! 1 } ;
Y . prototype . matches _inbound = L ( function ( a ) { a = E ( a ) ; var b = y ( a ) ; return Z ( c . _olm _matches _inbound _session ) ( this . a , b , a . length ) ? ! 0 : ! 1 } ) ; Y . prototype . matches _inbound _from = L ( function ( a , b ) { a = E ( a ) ; var d = y ( a ) ; b = E ( b ) ; var e = y ( b ) ; return Z ( c . _olm _matches _inbound _session _from ) ( this . a , d , a . length , e , b . length ) ? ! 0 : ! 1 } ) ;
Y . prototype . encrypt = L ( function ( a ) { try { var b = Z ( c . _olm _encrypt _random _length ) ( this . a ) ; var d = Z ( c . _olm _encrypt _message _type ) ( this . a ) ; var e = Ga ( a ) ; var g = Z ( c . _olm _encrypt _message _length ) ( this . a , e ) ; var k = N ( b ) ; var m = H ( e + 1 ) ; Fa ( a , z , m , e + 1 ) ; var u = H ( g + 1 ) ; Z ( c . _olm _encrypt ) ( this . a , m , e , k , b , u , g ) ; w ( u + g ) ; return { type : d , body : A ( u ) } } finally { void 0 !== k && M ( k , b ) , void 0 !== m && ( M ( m , e + 1 ) , K ( m ) ) , void 0 !== u && K ( u ) } } ) ;
Y . prototype . decrypt = L ( function ( a , b ) { try { var d = H ( b . length ) ; Ua ( b , d ) ; var e = Z ( c . _olm _decrypt _max _plaintext _length ) ( this . a , a , d , b . length ) ; Ua ( b , d ) ; var g = H ( e + 1 ) ; var k = Z ( c . _olm _decrypt ) ( this . a , a , d , b . length , g , e ) ; w ( g + k ) ; return A ( g ) } finally { void 0 !== d && K ( d ) , void 0 !== g && ( M ( g , e ) , K ( g ) ) } } ) ; function nb ( ) { var a = c . _olm _utility _size ( ) ; this . b = H ( a ) ; this . a = c . _olm _utility ( this . b ) }
function ob ( a ) { return function ( ) { var b = a . apply ( this , arguments ) ; if ( b === f ) throw b = A ( c . _olm _utility _last _error ( arguments [ 0 ] ) ) , Error ( "OLM." + b ) ; return b } } nb . prototype . free = function ( ) { c . _olm _clear _utility ( this . a ) ; K ( this . a ) } ; nb . prototype . sha256 = L ( function ( a ) { var b = ob ( c . _olm _sha256 _length ) ( this . a ) ; a = E ( a ) ; var d = y ( a ) , e = y ( b + 1 ) ; try { ob ( c . _olm _sha256 ) ( this . a , d , a . length , e , b ) } finally { for ( M ( d , a . length ) , b = 0 ; b < a . length ; b ++ ) a [ b ] = 0 } return A ( e ) } ) ;
nb . prototype . ed25519 _verify = L ( function ( a , b , d ) { a = E ( a ) ; var e = y ( a ) ; b = E ( b ) ; var g = y ( b ) ; d = E ( d ) ; var k = y ( d ) ; try { ob ( c . _olm _ed25519 _verify ) ( this . a , e , a . length , g , b . length , k , d . length ) } finally { for ( M ( g , b . length ) , a = 0 ; a < b . length ; a ++ ) b [ a ] = 0 } } ) ; olm _exports . Account = W ; olm _exports . Session = Y ; olm _exports . Utility = nb ; olm _exports . PkEncryption = kb ; olm _exports . PkDecryption = S ; olm _exports . PkSigning = lb ; olm _exports . SAS = U ;
olm _exports . get _library _version = L ( function ( ) { var a = y ( 3 ) ; c . _olm _get _library _version ( a , a + 1 , a + 2 ) ; return [ Ba ( a , "i8" ) , Ba ( a + 1 , "i8" ) , Ba ( a + 2 , "i8" ) ] } ) ;
return Module ;
}
) ;
} ) ( ) ;
if ( typeof exports === 'object' && typeof module === 'object' )
module . exports = Module ;
else if ( typeof define === 'function' && define [ 'amd' ] )
define ( [ ] , function ( ) { return Module ; } ) ;
else if ( typeof exports === 'object' )
exports [ "Module" ] = Module ;
var olmInitPromise ;
olm _exports [ 'init' ] = function ( opts ) {
if ( olmInitPromise ) return olmInitPromise ;
if ( opts ) OLM _OPTIONS = opts ;
olmInitPromise = new Promise ( function ( resolve , reject ) {
onInitSuccess = function ( ) {
resolve ( ) ;
} ;
onInitFail = function ( err ) {
reject ( err ) ;
} ;
Module ( ) ;
} ) ;
return olmInitPromise ;
} ;
if ( typeof ( window ) !== 'undefined' ) {
// We've been imported directly into a browser. Define the global 'Olm' object.
// (we do this even if module.exports was defined, because it's useful to have
// Olm in the global scope for browserified and webpacked apps.)
window [ "Olm" ] = olm _exports ;
}
if ( typeof module === 'object' ) {
// Emscripten sets the module exports to be its module
// with wrapped c functions. Clobber it with our higher
// level wrapper class.
module . exports = olm _exports ;
}