1var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this; 2var $estr = function() { return js_Boot.__string_rec(this,''); },$hxEnums = $hxEnums || {},$_; 3function $extend(from, fields) { 4 var proto = Object.create(from); 5 for (var name in fields) proto[name] = fields[name]; 6 if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString; 7 return proto; 8} 9var Assert = function() { }; 10Assert.__name__ = true; 11Assert.check = function(cond,message) { 12 if(!cond) { 13 var message1 = "Assertion" + (message != null ? ": " + message : ""); 14 Assert.printStack("Failure: " + message1); 15 throw haxe_Exception.thrown(message1); 16 } 17}; 18Assert.fail = function(message) { 19 Assert.printStack("Failure: " + message); 20 throw haxe_Exception.thrown(message); 21}; 22Assert.printStack = function(message) { 23 if(message != null) { 24 Errors.print(message); 25 } 26 Errors.print(Assert.callStackToString(haxe_CallStack.callStack())); 27}; 28Assert.printExnStack = function(message) { 29 if(message != null) { 30 Errors.print(message); 31 } 32 Errors.print(Assert.callStackToString(haxe_CallStack.exceptionStack())); 33}; 34Assert.callStackToString = function(stack) { 35 return haxe_CallStack.toString(stack); 36}; 37Assert.trace = function(s) { 38 var stack = haxe_CallStack.callStack(); 39 var loc = "<unknown>"; 40 var i = 2; 41 var _g = 0; 42 while(_g < stack.length) { 43 var s1 = stack[_g]; 44 ++_g; 45 if(s1._hx_index == 2) { 46 var _g1 = s1.column; 47 var item = s1.s; 48 var file = s1.file; 49 var pos = s1.line; 50 if(--i == 0) { 51 loc = file + ": " + pos; 52 break; 53 } 54 } 55 } 56 Errors.print("TRACE: at " + loc + ": " + s); 57}; 58Assert.memStat = function(message) { 59 var msg = message != null ? message + ": " : ""; 60}; 61Assert.println = function(message) { 62 Errors.print(message); 63}; 64var Crypto = function() { }; 65Crypto.__name__ = true; 66Crypto.encodeSHA256 = function(input,callback) { 67 try { 68 var crypto = window.crypto; 69 if(crypto == null || crypto.subtle == null) { 70 callback("Error: Web Crypto API not available"); 71 return; 72 } 73 var encoder = new TextEncoder(); 74 var data = encoder.encode(input); 75 var promise = crypto.subtle.digest("SHA-256",data); 76 77 promise.then(function(hashBuffer) { 78 // Convert ArrayBuffer to hex string 79 var hashArray = new Uint8Array(hashBuffer); 80 var hashHex = ''; 81 82 for (var i = 0; i < hashArray.length; i++) { 83 var hex = hashArray[i].toString(16).padStart(2, '0'); 84 hashHex += hex; 85 } 86 87 callback(hashHex); 88 }).catch(function(error) { 89 callback('Error: ' + error.toString()); 90 }); 91 ; 92 } catch( _g ) { 93 haxe_NativeStackTrace.lastError = _g; 94 var e = haxe_Exception.caught(_g).unwrap(); 95 callback("Error: " + Std.string(e)); 96 } 97}; 98Crypto.randomUUID = function() { 99 var crypto = window.crypto; 100 try { 101 return crypto.randomUUID(); 102 } catch( _g ) { 103 haxe_NativeStackTrace.lastError = _g; 104 var e = haxe_Exception.caught(_g).unwrap(); 105 console.warn("Crypto.randomUUID() not supported : " + Std.string(e)); 106 return ""; 107 } 108}; 109var EReg = function(r,opt) { 110 this.r = new RegExp(r,opt.split("u").join("")); 111}; 112EReg.__name__ = true; 113EReg.prototype = { 114 match: function(s) { 115 if(this.r.global) { 116 this.r.lastIndex = 0; 117 } 118 this.r.m = this.r.exec(s); 119 this.r.s = s; 120 return this.r.m != null; 121 } 122 ,matched: function(n) { 123 if(this.r.m != null && n >= 0 && n < this.r.m.length) { 124 return this.r.m[n]; 125 } else { 126 throw haxe_Exception.thrown("EReg::matched"); 127 } 128 } 129 ,__class__: EReg 130}; 131var Errors = function() { 132 this.callBack = null; 133 this.doTrace = true; 134 this.count = 0; 135}; 136Errors.__name__ = true; 137Errors.get = function() { 138 if(Errors.instance == null) { 139 Errors.instance = new Errors(); 140 } 141 return Errors.instance; 142}; 143Errors.report = function(text) { 144 Errors.get().add(text); 145 var fh = Errors.get(); 146 fh.count++; 147 console.error("Error: " + text); 148 Errors.addToLog(text); 149}; 150Errors.warning = function(text) { 151 Errors.get().add(text); 152 console.warn("Warning: " + text); 153}; 154Errors.print = function(text) { 155 if(!Errors.get().doTrace) { 156 return; 157 } 158 console.log(text); 159}; 160Errors.getCount = function() { 161 return Errors.get().count; 162}; 163Errors.resetCount = function() { 164 Errors.get().count = 0; 165}; 166Errors.addToLog = function(m) { 167 if(Errors.dontlog) { 168 return; 169 } 170}; 171Errors.closeErrorLog = function() { 172}; 173Errors.prototype = { 174 add: function(text) { 175 if(this.callBack != null) { 176 this.callBack(text); 177 } 178 } 179 ,__class__: Errors 180}; 181var haxe_ds_IntMap = function() { 182 this.h = { }; 183}; 184haxe_ds_IntMap.__name__ = true; 185haxe_ds_IntMap.prototype = { 186 remove: function(key) { 187 if(!this.h.hasOwnProperty(key)) { 188 return false;
189 } 190 delete(this.h[key]); 191 return true; 192 } 193 ,__class__: haxe_ds_IntMap 194}; 195var HaxeRuntime = function() { }; 196HaxeRuntime.__name__ = true; 197HaxeRuntime.ref__ = function(val) { 198 return new FlowRefObject(val); 199}; 200HaxeRuntime.deref__ = function(val) { 201 return val.__v; 202}; 203HaxeRuntime.setref__ = function(r,v) { 204 r.__v = v; 205}; 206HaxeRuntime._s_ = function(v) { 207 return v; 208}; 209HaxeRuntime.initStruct = function(id,name,args,atypes) { 210 var j='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';var l=j.length;function f(i){var c=j[i%l|0];var r=i/l|0;return r>0?c+f(r-1):c;} 211 if(args!=[]){var a='';for(var i=0;i<args.length;i++)a+=(args[i]+':'+args[i]+ ','); a=a.substring(0, a.length -1);var c='c$'+f(id); 212 (new Function('g', 'g.'+c + '=function(' + args.join(',') + '){return {_id:'+id.toString()+',' + a + '};}'))($global); 213 HaxeRuntime._structconstruct_.h[id]=$global[c]} 214 HaxeRuntime._structnames_.h[id] = name; 215 HaxeRuntime._structids_.h[name] = id; 216 HaxeRuntime._structargs_.h[id] = args; 217 HaxeRuntime._structargtypes_.h[id] = atypes; 218}; 219HaxeRuntime.compareEqual = function(a,b) { 220 221 if (a === b) return true; 222 223 var isArray = Array.isArray; 224 var keyList = Object.keys; 225 var hasProp = Object.prototype.hasOwnProperty; 226 227 if (a && b && typeof a == 'object' && typeof b == 'object') { 228 var arrA = isArray(a) 229 , arrB = isArray(b) 230 , i 231 , length 232 , key; 233 234 if (arrA && arrB) { 235 length = a.length; 236 if (length != b.length) return false; 237 for (i = length; i-- !== 0;) 238 if (!HaxeRuntime.compareEqual(a[i], b[i])) return false; 239 return true; 240 } 241 242 if (arrA != arrB) return false; 243 244 var result = false;
245; 246 247 if (hasProp.call(a, '_id') && hasProp.call(b, '_id')) { 248 if (a._id !== b._id) { 249 return false; 250 } else { 251 result = true; 252 } 253; 254 255 var keys = keyList(a); 256 length = keys.length; 257 258 for (i = 1; i < length; i++) { 259 key = keys[i]; 260 if (!HaxeRuntime.compareEqual(a[key], b[key])) return false; 261 } 262 } 263 264 if (hasProp.call(a, '__v') && hasProp.call(b, '__v')) { 265 return false; 266 } 267 268 return result; 269} 270; 271 return false; 272}; 273HaxeRuntime.compareByValue = function(o1,o2) { 274 if (o1 === o2) return 0; 275 if(o1 == null || o2 == null) { 276 return 1; 277 } 278 if(Array.isArray(o1)) { 279 if(!Array.isArray(o2)) { 280 return 1; 281 } 282 var l1 = o1.length; 283 var l2 = o2.length; 284 var l = l1 < l2 ? l1 : l2; 285 var _g = 0; 286 var _g1 = l; 287 while(_g < _g1) { 288 var i = _g++; 289 var c = HaxeRuntime.compareByValue(o1[i],o2[i]); 290 if(c != 0) { 291 return c; 292 } 293 } 294 if(l1 == l2) { 295 return 0; 296 } else if(l1 < l2) { 297 return -1; 298 } else { 299 return 1; 300 } 301 } 302 303 var i1 = o1._id; 304 if(i1 !== undefined) { 305 var i2 = o2._id; 306 ; 307 308 if(i2 === undefined) { 309 return 1; 310 } 311 if(i1 < i2) { 312 return -1; 313 } 314 if(i1 > i2) { 315 return 1; 316 } 317 var args = HaxeRuntime._structargs_.h[i1]; 318 var _g = 0; 319 while(_g < args.length) { 320 var f = args[_g]; 321 ++_g; 322 var c = HaxeRuntime.compareByValue(o1[f],o2[f]); 323 if(c != 0) { 324 return c; 325 } 326 } 327 return 0; 328 } 329 if(o1 < o2) { 330 return -1; 331 } else { 332 return 1; 333 } 334 ; 335 return 0; 336}; 337HaxeRuntime.extractStructArguments = function(value) { 338 if(!Object.prototype.hasOwnProperty.call(value,"_id")) { 339 return []; 340 } 341 var i = value._id; 342 var sargs = HaxeRuntime._structargs_.h[i]; 343 var n = sargs.length; 344 var result = Array(n); 345 var _g = 0; 346 var _g1 = n; 347 while(_g < _g1) { 348 var i = _g++; 349 result[i] = Reflect.field(value,sargs[i]); 350 } 351 return result; 352}; 353HaxeRuntime.isArray = function(o1) { 354 return Array.isArray(o1); 355}; 356HaxeRuntime.nop___ = function() { 357}; 358HaxeRuntime.isSameStructType = function(o1,o2) { 359 if(!Array.isArray(o1) && !Array.isArray(o2) && Object.prototype.hasOwnProperty.call(o1,"_id") && Object.prototype.hasOwnProperty.call(o2,"_id")) { 360 return o1._id == o2._id; 361 } else { 362 return false; 363 } 364}; 365HaxeRuntime.toStringCommon = function(value,keepStringEscapes,additionalEscapingFn) { 366 if(keepStringEscapes == null) { 367 keepStringEscapes = false; 368 } 369 if(value == null) { 370 return "{}"; 371 } 372 if(!Reflect.isObject(value)) { 373 return Std.string(value); 374 } 375 if(Array.isArray(value)) { 376 var a = value; 377 var r = "["; 378 var s = ""; 379 var _g = 0; 380 while(_g < a.length) { 381 var v = a[_g]; 382 ++_g; 383 var vc = HaxeRuntime.toStringCommon(v,false,additionalEscapingFn); 384 r += s + vc; 385 s = ", "; 386 } 387 return r + "]"; 388 } 389 if(Object.prototype.hasOwnProperty.call(value,"__v")) { 390 return "ref " + HaxeRuntime.toStringCommon(value.__v,false,additionalEscapingFn); 391 } 392 if(Object.prototype.hasOwnProperty.call(value,"_id")) { 393 var id = value._id; 394 var structname = HaxeRuntime._structnames_.h[id]; 395 var r = structname + "("; 396 if(structname == "DLink") { 397 return r + "...)"; 398 } 399 var s = ""; 400 var args = HaxeRuntime._structargs_.h[id]; 401 var argTypes = HaxeRuntime._structargtypes_.h[id]; 402 var _g = 0; 403 var _g1 = args.length; 404 while(_g < _g1) { 405 var i = _g++; 406 var f = args[i]; 407 var t = argTypes[i]; 408 var v = Reflect.field(value,f); 409 switch(t._hx_index) { 410 case 3: 411 r += s + Std.string(v) + ((v | 0) == v ? ".0" : ""); 412 break; 413 case 5: 414 var arrtype = t.type; 415 if(!Array.isArray(v) || arrtype != RuntimeType.RTDouble) { 416 r += s + HaxeRuntime.toStringCommon(v,false,additionalEscapingFn); 417 } else { 418 r += s + "["; 419 var _g2 = 0; 420 var _g3 = v.length; 421 while(_g2 < _g3) { 422 var j = _g2++; 423 r += (j > 0 ? ", " : "") + v[j] + ((v[j] | 0) == v[j] ? ".0" : ""); 424 } 425 r += "]"; 426 } 427 break; 428 default: 429 r += s + HaxeRuntime.toStringCommon(v,false,additionalEscapingFn); 430 } 431 s = ", "; 432 } 433 r += ")"; 434 return r; 435 } 436 if(Reflect.isFunction(value)) { 437 return "<function>"; 438 } 439 try { 440 var s = value; 441 if(!keepStringEscapes) { 442 return additionalEscapingFn(value,s); 443 } else { 444 StringTools.replace(s,"\\","\\\\"); 445 return s; 446 } 447 } catch( _g ) { 448 haxe_NativeStackTrace.lastError = _g; 449 return "<native>"; 450 } 451}; 452HaxeRuntime.toString = function(value,keepStringEscapes) { 453 if(keepStringEscapes == null) { 454 keepStringEscapes = false;
455 } 456 return HaxeRuntime.toStringCommon(value,keepStringEscapes,function(val,s) { 457 458 return '"' + val.replace(HaxeRuntime.regexCharsToReplaceForString, function (c) { 459 if (c==='\\') { 460 return '\\\\'; 461 } else if (c==='\"') { 462 return '\\"'; 463 } else if (c === '\n') { 464 return '\\n'; 465 } else if (c==='\t') { 466 return '\\t'; 467 } else { 468 return c; 469 } 470 }) + '"'; 471 ; 472 return "\"" + s + "\""; 473 }); 474}; 475HaxeRuntime.toStringForJson = function(value) { 476 return HaxeRuntime.toStringCommon(value,false,function(val,s) { 477 478 return '"' + val.replace(HaxeRuntime.regexCharsToReplaceForJson, function (c) { 479 if (c==='\\') { 480 return '\\\\'; 481 } else if (c==='\"') { 482 return '\\"'; 483 } else if (c === '\n') { 484 return '\\n'; 485 } else if (c==='\t') { 486 return '\\t'; 487 } else if (c.length===1 && c.charCodeAt(0)<0x20) { 488 return "\\u" + c.charCodeAt(0).toString(16).padStart(4, "0"); 489 } else { 490 return c; 491 } 492 }) + '"'; 493 ; 494 return "\"" + s + "\""; 495 }); 496}; 497HaxeRuntime.isValueFitInType = function(type,value) { 498 switch(type._hx_index) { 499 case 2: 500 return HaxeRuntime.typeOf(value) == RuntimeType.RTDouble; 501 case 5: 502 var arrtype = type.type; 503 if(!Array.isArray(value)) { 504 return false; 505 } 506 if(arrtype != RuntimeType.RTUnknown) { 507 var _g = 0; 508 var _g1 = value.length; 509 while(_g < _g1) { 510 var i = _g++; 511 if(!HaxeRuntime.isValueFitInType(arrtype,value[i])) { 512 return false; 513 } 514 } 515 } 516 return true; 517 case 6: 518 var name = type.name; 519 var _g = HaxeRuntime.typeOf(value); 520 if(_g._hx_index == 6) { 521 var n = _g.name; 522 if(name != "") { 523 return n == name; 524 } else { 525 return true; 526 } 527 } else { 528 return false; 529 } 530 break; 531 case 7: 532 var reftype = type.type; 533 var _g = HaxeRuntime.typeOf(value); 534 if(_g._hx_index == 7) { 535 var t = _g.type; 536 return HaxeRuntime.isValueFitInType(reftype,value.__v); 537 } else { 538 return false; 539 } 540 break; 541 case 8: 542 return true; 543 default: 544 return HaxeRuntime.typeOf(value) == type; 545 } 546}; 547HaxeRuntime.makeStructValue = function(name,args,default_value) { 548 try { 549 var sid = HaxeRuntime._structids_.h[name]; 550 if(sid == null) { 551 return default_value; 552 } 553 var types = HaxeRuntime._structargtypes_.h[sid]; 554 if(types.length != args.length) { 555 return default_value; 556 } 557 var _g = 0; 558 var _g1 = args.length; 559 while(_g < _g1) { 560 var i = _g++; 561 if(!HaxeRuntime.isValueFitInType(types[i],args[i])) { 562 return default_value; 563 } 564 } 565 var sargs = HaxeRuntime._structargs_.h[sid]; 566 var o = HaxeRuntime.makeEmptyStruct(sid); 567 var _g = 0; 568 var _g1 = args.length; 569 while(_g < _g1) { 570 var i = _g++; 571 o[sargs[i]] = args[i]; 572 } 573 return o; 574 } catch( _g ) { 575 haxe_NativeStackTrace.lastError = _g; 576 return default_value; 577 } 578}; 579HaxeRuntime.fastMakeStructValue = function(n,a1) { 580 var sid = HaxeRuntime._structids_.h[n]; 581 var o = { _id : sid}; 582 o[HaxeRuntime._structargs_.h[sid][0]] = a1; 583 return o; 584}; 585HaxeRuntime.fastMakeStructValue2 = function(n,a1,a2) { 586 var sid = HaxeRuntime._structids_.h[n]; 587 var o = { _id : sid}; 588 o[HaxeRuntime._structargs_.h[sid][0]] = a1; 589 o[HaxeRuntime._structargs_.h[sid][1]] = a2; 590 return o; 591}; 592HaxeRuntime.makeEmptyStruct = function(sid) { 593 if(HaxeRuntime._structtemplates_ != null) { 594 var ff = HaxeRuntime._structtemplates_.h[sid]; 595 if(ff != null) { 596 return ff._copy(); 597 } 598 } 599 return { _id : sid}; 600}; 601HaxeRuntime.typeOf = function(value) { 602 if(value == null) { 603 return RuntimeType.RTVoid; 604 } 605 var t = typeof(value); 606 switch(t) { 607 case "boolean": 608 return RuntimeType.RTBool; 609 case "number": 610 return RuntimeType.RTDouble; 611 case "object": 612 if(Array.isArray(value)) { 613 return RuntimeType.RTArray(RuntimeType.RTUnknown); 614 } 615 if(Object.prototype.hasOwnProperty.call(value,"_id")) { 616 return RuntimeType.RTStruct(HaxeRuntime._structnames_.h[value._id]); 617 } 618 if(Object.prototype.hasOwnProperty.call(value,"__v")) { 619 return RuntimeType.RTRefTo(HaxeRuntime.typeOf(value.__v)); 620 } 621 break; 622 case "string": 623 return RuntimeType.RTString; 624 default: 625 } 626 return RuntimeType.RTUnknown; 627}; 628HaxeRuntime.mul_32 = function(a,b) { 629 var ah = a >> 16 & 65535; 630 var al = a & 65535; 631 var bh = b >> 16 & 65535; 632 var bl = b & 65535; 633 var high = ah * bl + al * bh & 65535; 634 return -1 & (high << 16) + al * bl; 635}; 636HaxeRuntime.getStructName = function(id) { 637 return HaxeRuntime._structnames_.h[id]; 638}; 639HaxeRuntime.wideStringSafe = function(str) { 640 var _g = 0; 641 var _g1 = str.length; 642 while(_g < _g1) { 643 var i = _g++; 644 var c = HxOverrides.cca(str,i); 645 if(55296 <= c && c < 57344) { 646 return false;
647 } 648 } 649 return true; 650}; 651HaxeRuntime.instanceof = function(v1,v2) { 652 return ((v1) instanceof v2); 653}; 654HaxeRuntime.typeof = function(v) { 655 return typeof(v); 656}; 657HaxeRuntime.strictEq = function(v1,v2) { 658 return ((v1) === v2); 659}; 660HaxeRuntime.getArray = function(a,i) { 661 if(i < 0 || i >= a.length) { 662 if(a.length == 0) { 663 throw haxe_Exception.thrown("array index " + i + " is out of bounds: array is empty " + haxe_CallStack.toString(haxe_CallStack.callStack())); 664 } else { 665 throw haxe_Exception.thrown("array index " + i + " is out of bounds: 0 <= i < " + a.length + " " + haxe_CallStack.toString(haxe_CallStack.callStack())); 666 } 667 } 668 return a[i]; 669}; 670var haxe_ds_StringMap = function() { 671 this.h = Object.create(null); 672}; 673haxe_ds_StringMap.__name__ = true; 674haxe_ds_StringMap.prototype = { 675 __class__: haxe_ds_StringMap 676}; 677var FlowJsProgram = function() { }; 678FlowJsProgram.__name__ = true; 679var RuntimeType = $hxEnums["RuntimeType"] = { __ename__:true,__constructs__:null 680 ,RTVoid: {_hx_name:"RTVoid",_hx_index:0,__enum__:"RuntimeType",toString:$estr} 681 ,RTBool: {_hx_name:"RTBool",_hx_index:1,__enum__:"RuntimeType",toString:$estr} 682 ,RTInt: {_hx_name:"RTInt",_hx_index:2,__enum__:"RuntimeType",toString:$estr} 683 ,RTDouble: {_hx_name:"RTDouble",_hx_index:3,__enum__:"RuntimeType",toString:$estr} 684 ,RTString: {_hx_name:"RTString",_hx_index:4,__enum__:"RuntimeType",toString:$estr} 685 ,RTArray: ($_=function(type) { return {_hx_index:5,type:type,__enum__:"RuntimeType",toString:$estr}; },$_._hx_name="RTArray",$_.__params__ = ["type"],$_) 686 ,RTStruct: ($_=function(name) { return {_hx_index:6,name:name,__enum__:"RuntimeType",toString:$estr}; },$_._hx_name="RTStruct",$_.__params__ = ["name"],$_) 687 ,RTRefTo: ($_=function(type) { return {_hx_index:7,type:type,__enum__:"RuntimeType",toString:$estr}; },$_._hx_name="RTRefTo",$_.__params__ = ["type"],$_) 688 ,RTUnknown: {_hx_name:"RTUnknown",_hx_index:8,__enum__:"RuntimeType",toString:$estr} 689}; 690RuntimeType.__constructs__ = [RuntimeType.RTVoid,RuntimeType.RTBool,RuntimeType.RTInt,RuntimeType.RTDouble,RuntimeType.RTString,RuntimeType.RTArray,RuntimeType.RTStruct,RuntimeType.RTRefTo,RuntimeType.RTUnknown]; 691var FlowRefObject = function(v) { 692 this.__v = v; 693}; 694FlowRefObject.__name__ = true; 695FlowRefObject.prototype = { 696 __class__: FlowRefObject 697}; 698var HxOverrides = function() { }; 699HxOverrides.__name__ = true; 700HxOverrides.dateStr = function(date) { 701 var m = date.getMonth() + 1; 702 var d = date.getDate(); 703 var h = date.getHours(); 704 var mi = date.getMinutes(); 705 var s = date.getSeconds(); 706 return date.getFullYear() + "-" + (m < 10 ? "0" + m : "" + m) + "-" + (d < 10 ? "0" + d : "" + d) + " " + (h < 10 ? "0" + h : "" + h) + ":" + (mi < 10 ? "0" + mi : "" + mi) + ":" + (s < 10 ? "0" + s : "" + s); 707}; 708HxOverrides.strDate = function(s) { 709 switch(s.length) { 710 case 8: 711 var k = s.split(":"); 712 var d = new Date(); 713 d["setTime"](0); 714 d["setUTCHours"](k[0]); 715 d["setUTCMinutes"](k[1]); 716 d["setUTCSeconds"](k[2]); 717 return d; 718 case 10: 719 var k = s.split("-"); 720 return new Date(k[0],k[1] - 1,k[2],0,0,0); 721 case 19: 722 var k = s.split(" "); 723 var y = k[0].split("-"); 724 var t = k[1].split(":"); 725 return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]); 726 default: 727 throw haxe_Exception.thrown("Invalid date format : " + s); 728 } 729}; 730HxOverrides.cca = function(s,index) { 731 var x = s.charCodeAt(index); 732 if(x != x) { 733 return undefined; 734 } 735 return x; 736}; 737HxOverrides.substr = function(s,pos,len) { 738 if(len == null) { 739 len = s.length; 740 } else if(len < 0) { 741 if(pos == 0) { 742 len = s.length + len; 743 } else { 744 return ""; 745 } 746 } 747 return s.substr(pos,len); 748}; 749HxOverrides.remove = function(a,obj) { 750 var i = a.indexOf(obj); 751 if(i == -1) { 752 return false; 753 } 754 a.splice(i,1); 755 return true; 756}; 757HxOverrides.now = function() { 758 return Date.now(); 759}; 760var JSBinflowBuffer = function(buffer,byte_offset,byte_length,little_endian) { 761 this.StructFixupCache = new haxe_ds_StringMap(); 762 this.StructDefs = []; 763 this.arrayBuffer = buffer; 764 this.byteOffset = byte_offset; 765 this.byteLength = byte_length; 766 this.littleEndian = little_endian; 767 this.dataView = new DataView(buffer,this.byteOffset,this.byteLength); 768 this.length = this.byteLength / 2 | 0; 769}; 770JSBinflowBuffer.__name__ = true; 771JSBinflowBuffer.prototype = { 772 getWord: function(idx) { 773 return this.dataView.getUint16(idx * 2,this.littleEndian); 774 } 775 ,getInt: function(idx) { 776 return this.dataView.getUint16(idx * 2,this.littleEndian) | this.dataView.getUint16((idx + 1) * 2,this.littleEndian) << 16; 777 } 778 ,getDouble: function(idx) { 779 if(this.littleEndian) { 780 return this.dataView.getFloat64(idx * 2,true); 781 } else { 782 JSBinflowBuffer.DoubleSwapBuffer.setUint16(0,this.dataView.getUint16(idx * 2,this.littleEndian),true); 783 JSBinflowBuffer.DoubleSwapBuffer.setUint16(2,this.dataView.getUint16((idx + 1) * 2,this.littleEndian),true); 784 JSBinflowBuffer.DoubleSwapBuffer.setUint16(4,this.dataView.getUint16((idx + 2) * 2,this.littleEndian),true); 785 JSBinflowBuffer.DoubleSwapBuffer.setUint16(6,this.dataView.getUint16((idx + 3) * 2,this.littleEndian),true); 786 return JSBinflowBuffer.DoubleSwapBuffer.getFloat64(0,true); 787 } 788 } 789 ,substr: function(idx,l) { 790 var s_b = ""; 791 var _g = idx; 792 var _g1 = idx + l; 793 while(_g < _g1) { 794 var i = _g++; 795 var c = this.dataView.getUint16(i * 2,this.littleEndian); 796 s_b += String.fromCodePoint(c); 797 } 798 return s_b; 799 } 800 ,charAt: function(idx) { 801 var s_b = ""; 802 var _g = idx; 803 var _g1 = idx + 1; 804 while(_g < _g1) { 805 var i = _g++; 806 var c = this.dataView.getUint16(i * 2,this.littleEndian); 807 s_b += String.fromCodePoint(c); 808 } 809 return s_b; 810 } 811 ,getFooterOffset: function() { 812 var footer_offset = this.dataView.getUint16(0,this.littleEndian) | this.dataView.getUint16(2,this.littleEndian) << 16; 813 if(footer_offset != 1) { 814 return [footer_offset,2]; 815 } else { 816 return [this.dataView.getUint16(4,this.littleEndian) | this.dataView.getUint16(6,this.littleEndian) << 16 | (this.dataView.getUint16(8,this.littleEndian) | this.dataView.getUint16(10,this.littleEndian) << 16),6]; 817 } 818 } 819 ,getFixup: function(name) {
820 var chached_fixup = this.StructFixupCache.h[name]; 821 if(chached_fixup === undefined) { 822 var fixup = this.Fixups(name); 823 chached_fixup = HaxeRuntime._structnames_.h[fixup._id] == "None" ? null : Reflect.field(fixup,HaxeRuntime._structargs_.h[fixup._id][0]); 824 this.StructFixupCache.h[name] = chached_fixup; 825 } 826 return chached_fixup; 827 } 828 ,doArray: function(index,n) { 829 var ni = index; 830 var ar = []; 831 var _g = 0; 832 var _g1 = n; 833 while(_g < _g1) { 834 var i = _g++; 835 var v = this.doBinary(ni); 836 ni = v[1]; 837 ar.push(v[0]); 838 } 839 return [ar,ni]; 840 } 841 ,doBinary: function(index) { 842 if(index < this.endIndex) { 843 var word = this.dataView.getUint16(index * 2,this.littleEndian); 844 var ni = index + 1; 845 if(word == 65524) { 846 var def = this.StructDefs[this.dataView.getUint16(ni * 2,this.littleEndian)]; 847 var name = def[1]; 848 var ni1 = ni + 1; 849 var ar = []; 850 var _g = 0; 851 var _g1 = def[0]; 852 while(_g < _g1) { 853 var i = _g++; 854 var v = this.doBinary(ni1); 855 ni1 = v[1]; 856 ar.push(v[0]); 857 } 858 var args = [ar,ni1]; 859 var chached_fixup = this.StructFixupCache.h[name]; 860 if(chached_fixup === undefined) { 861 var fixup = this.Fixups(name); 862 chached_fixup = HaxeRuntime._structnames_.h[fixup._id] == "None" ? null : Reflect.field(fixup,HaxeRuntime._structargs_.h[fixup._id][0]); 863 this.StructFixupCache.h[name] = chached_fixup; 864 } 865 var fixup = chached_fixup; 866 var val = fixup == null ? HaxeRuntime.makeStructValue(name,args[0],JSBinflowBuffer.FlowIllegalStruct) : fixup(args[0]); 867 return [val,args[1]]; 868 } else if(word == 65526) { 869 var v = this.doBinary(ni); 870 return [new FlowRefObject(v[0]),v[1]]; 871 } else if(word == 65530) { 872 var l = this.dataView.getUint16(ni * 2,this.littleEndian); 873 var idx = ni + 1; 874 var s_b = ""; 875 var _g = idx; 876 var _g1 = idx + l; 877 while(_g < _g1) { 878 var i = _g++; 879 var c = this.dataView.getUint16(i * 2,this.littleEndian); 880 s_b += String.fromCodePoint(c); 881 } 882 return [s_b,ni + 1 + l]; 883 } else if(word == 65532) { 884 var d; 885 if(this.littleEndian) { 886 d = this.dataView.getFloat64(ni * 2,true); 887 } else { 888 JSBinflowBuffer.DoubleSwapBuffer.setUint16(0,this.dataView.getUint16(ni * 2,this.littleEndian),true); 889 JSBinflowBuffer.DoubleSwapBuffer.setUint16(2,this.dataView.getUint16((ni + 1) * 2,this.littleEndian),true); 890 JSBinflowBuffer.DoubleSwapBuffer.setUint16(4,this.dataView.getUint16((ni + 2) * 2,this.littleEndian),true); 891 JSBinflowBuffer.DoubleSwapBuffer.setUint16(6,this.dataView.getUint16((ni + 3) * 2,this.littleEndian),true); 892 d = JSBinflowBuffer.DoubleSwapBuffer.getFloat64(0,true); 893 } 894 return [d,ni + 4]; 895 } else if(word == 65525) { 896 var i = this.dataView.getUint16(ni * 2,this.littleEndian) | this.dataView.getUint16((ni + 1) * 2,this.littleEndian) << 16; 897 return [i,ni + 2]; 898 } else if(word < 65523) { 899 return [word,ni]; 900 } else if(word == 65523) { 901 var idx = ni + 2; 902 return [this.dataView.getUint16(ni * 2,this.littleEndian) | this.dataView.getUint16((ni + 1) * 2,this.littleEndian) << 16 | (this.dataView.getUint16(idx * 2,this.littleEndian) | this.dataView.getUint16((idx + 1) * 2,this.littleEndian) << 16),ni + 4]; 903 } else if(word == 65533) { 904 return [false,ni]; 905 } else if(word == 65534) { 906 return [true,ni]; 907 } else if(word == 65528) { 908 var l = this.dataView.getUint16(ni * 2,this.littleEndian); 909 var ni1 = ni + 1; 910 var ar = []; 911 var _g = 0; 912 var _g1 = l; 913 while(_g < _g1) { 914 var i = _g++; 915 var v = this.doBinary(ni1); 916 ni1 = v[1]; 917 ar.push(v[0]); 918 } 919 var result = [ar,ni1]; 920 return result; 921 } else if(word == 65527) { 922 return [[],ni]; 923 } else if(word == 65531) { 924 var l = this.dataView.getUint16(ni * 2,this.littleEndian) | this.dataView.getUint16((ni + 1) * 2,this.littleEndian) << 16; 925 var idx = ni + 2; 926 var s_b = ""; 927 var _g = idx; 928 var _g1 = idx + l; 929 while(_g < _g1) { 930 var i = _g++; 931 var c = this.dataView.getUint16(i * 2,this.littleEndian); 932 s_b += String.fromCodePoint(c); 933 } 934 return [s_b,ni + 2 + l]; 935 } else if(word == 65529) { 936 var l = this.dataView.getUint16(ni * 2,this.littleEndian) | this.dataView.getUint16((ni + 1) * 2,this.littleEndian) << 16; 937 var ni1 = ni + 2; 938 var ar = []; 939 var _g = 0; 940 var _g1 = l; 941 while(_g < _g1) { 942 var i = _g++; 943 var v = this.doBinary(ni1); 944 ni1 = v[1]; 945 ar.push(v[0]); 946 } 947 var result = [ar,ni1]; 948 return result; 949 } else if(word == 65535) { 950 return [null,ni]; 951 } else { 952 return [word,ni]; 953 } 954 } else { 955 return [this.DefValue,index]; 956 } 957 } 958 ,deserialise: function(defvalue,fixups) { 959 if(JSBinflowBuffer.FlowIllegalStruct == null) { 960 JSBinflowBuffer.FlowIllegalStruct = HaxeRuntime.makeStructValue("IllegalStruct",[],null); 961 } 962 var footer_offset = this.getFooterOffset(); 963 this.endIndex = this.length; 964 this.StructDefs = this.doBinary(footer_offset[0])[0]; 965 this.DefValue = defvalue; 966 this.Fixups = fixups; 967 this.endIndex = footer_offset[0]; 968 var r = this.doBinary(footer_offset[1]); 969 if(r[1] < footer_offset[0]) {
970 Errors.print("Did not understand all!"); 971 } 972 return r[0]; 973 } 974 ,__class__: JSBinflowBuffer 975}; 976var JsMd5 = function(s) { 977 this.input = s; 978 this.inputBytes = 0; 979 this.nextCharIndex = 0; 980 this.bytesStorage = 0; 981 this.bytesInStorage = 0; 982 var i = 0; 983 while(i < s.length) { 984 var c = s.charCodeAt(i++); 985 if(55296 <= c && c <= 56319) { 986 c = c - 55232 << 10 | s.charCodeAt(i++) & 1023; 987 } 988 if(c <= 127) { 989 this.inputBytes++; 990 } else if(c <= 2047) { 991 this.inputBytes += 2; 992 } else if(c <= 65535) { 993 this.inputBytes += 3; 994 } else { 995 this.inputBytes += 4; 996 } 997 } 998}; 999JsMd5.__name__ = true; 1000JsMd5.encode = function(s) { 1001 var m = new JsMd5(s); 1002 var h = m.doEncode(); 1003 return m.hex(h); 1004}; 1005JsMd5.prototype = { 1006 bitOR: function(a,b) { 1007 var lsb = a & 1 | b & 1; 1008 var msb31 = a >>> 1 | b >>> 1; 1009 return msb31 << 1 | lsb; 1010 } 1011 ,bitXOR: function(a,b) { 1012 var lsb = a & 1 ^ b & 1; 1013 var msb31 = a >>> 1 ^ b >>> 1; 1014 return msb31 << 1 | lsb; 1015 } 1016 ,bitAND: function(a,b) { 1017 var lsb = a & 1 & (b & 1); 1018 var msb31 = a >>> 1 & b >>> 1; 1019 return msb31 << 1 | lsb; 1020 } 1021 ,addme: function(x,y) { 1022 var lsw = (x & 65535) + (y & 65535); 1023 var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 1024 return msw << 16 | lsw & 65535; 1025 } 1026 ,hex: function(a) { 1027 var str = ""; 1028 var hex_chr = "0123456789abcdef"; 1029 var _g = 0; 1030 while(_g < a.length) { 1031 var num = a[_g]; 1032 ++_g; 1033 str += hex_chr.charAt(num >> 4 & 15) + hex_chr.charAt(num & 15); 1034 str += hex_chr.charAt(num >> 12 & 15) + hex_chr.charAt(num >> 8 & 15); 1035 str += hex_chr.charAt(num >> 20 & 15) + hex_chr.charAt(num >> 16 & 15); 1036 str += hex_chr.charAt(num >> 28 & 15) + hex_chr.charAt(num >> 24 & 15); 1037 } 1038 return str; 1039 } 1040 ,rol: function(num,cnt) { 1041 return num << cnt | num >>> 32 - cnt; 1042 } 1043 ,cmn: function(q,a,b,x,s,t) { 1044 return this.addme(this.rol(this.addme(this.addme(a,q),this.addme(x,t)),s),b); 1045 } 1046 ,ff: function(a,b,c,d,x,s,t) { 1047 return this.cmn(this.bitOR(this.bitAND(b,c),this.bitAND(~b,d)),a,b,x,s,t); 1048 } 1049 ,gg: function(a,b,c,d,x,s,t) { 1050 return this.cmn(this.bitOR(this.bitAND(b,d),this.bitAND(c,~d)),a,b,x,s,t); 1051 } 1052 ,hh: function(a,b,c,d,x,s,t) { 1053 return this.cmn(this.bitXOR(this.bitXOR(b,c),d),a,b,x,s,t); 1054 } 1055 ,ii: function(a,b,c,d,x,s,t) { 1056 return this.cmn(this.bitXOR(c,this.bitOR(b,~d)),a,b,x,s,t); 1057 } 1058 ,getNextByte: function() { 1059 if(this.bytesInStorage != 0) { 1060 this.bytesInStorage--; 1061 var result = this.bytesStorage & 255; 1062 this.bytesStorage >>= 8; 1063 return result; 1064 } 1065 var result = 0; 1066 if(this.nextCharIndex >= this.input.length) { 1067 return result; 1068 } 1069 var c = this.input.charCodeAt(this.nextCharIndex++); 1070 if(55296 <= c && c <= 56319) { 1071 c = c - 55232 << 10 | this.input.charCodeAt(this.nextCharIndex++) & 1023; 1072 } 1073 if(c <= 127) { 1074 result = c; 1075 } else if(c <= 2047) { 1076 result = 192 | c >> 6; 1077 this.bytesInStorage = 1; 1078 this.bytesStorage = 128 | c & 63; 1079 } else if(c <= 65535) { 1080 result = 224 | c >> 12; 1081 this.bytesInStorage = 2; 1082 this.bytesStorage = 128 | c >> 6 & 63 | (128 | c & 63) << 8; 1083 } else { 1084 result = 240 | c >> 18; 1085 this.bytesInStorage = 3; 1086 this.bytesStorage = 128 | c >> 12 & 63 | (128 | c >> 6 & 63) << 8 | (128 | c & 63) << 16; 1087 } 1088 return result; 1089 } 1090 ,setBlockData: function(x,blockNumber,numberOfBlocks) { 1091 var _gthis = this; 1092 var i = 0; 1093 var byteOffset = blockNumber << 6; 1094 var getByte = function(idx) { 1095 if(idx < _gthis.inputBytes) { 1096 return _gthis.getNextByte(); 1097 } else if(idx == _gthis.inputBytes) { 1098 return 128; 1099 } else { 1100 return 0; 1101 } 1102 }; 1103 var _g = 0; 1104 while(_g < 16) { 1105 var i = _g++; 1106 if(blockNumber + 1 == numberOfBlocks && i == 14) { 1107 x[i] = this.inputBytes << 3; 1108 } else { 1109 x[i] = getByte(byteOffset) | getByte(byteOffset + 1) << 8 | getByte(byteOffset + 2) << 16 | getByte(byteOffset + 3) << 24; 1110 } 1111 byteOffset += 4; 1112 } 1113 } 1114 ,doEncode: function() { 1115 var a = 1732584193; 1116 var b = -271733879;
1117 var c = -1732584194; 1118 var d = 271733878; 1119 var step; 1120 this.nextCharIndex = 0; 1121 this.bytesStorage = 0; 1122 this.bytesInStorage = 0; 1123 var numberOfBlocks = (this.inputBytes + 8 >> 6) + 1; 1124 var x = new Array(16); 1125 var blockNumber = 0; 1126 while(blockNumber < numberOfBlocks) { 1127 var olda = a; 1128 var oldb = b; 1129 var oldc = c; 1130 var oldd = d; 1131 this.setBlockData(x,blockNumber,numberOfBlocks); 1132 step = 0; 1133 a = this.ff(a,b,c,d,x[0],7,-680876936); 1134 d = this.ff(d,a,b,c,x[1],12,-389564586); 1135 c = this.ff(c,d,a,b,x[2],17,606105819); 1136 b = this.ff(b,c,d,a,x[3],22,-1044525330); 1137 a = this.ff(a,b,c,d,x[4],7,-176418897); 1138 d = this.ff(d,a,b,c,x[5],12,1200080426); 1139 c = this.ff(c,d,a,b,x[6],17,-1473231341); 1140 b = this.ff(b,c,d,a,x[7],22,-45705983); 1141 a = this.ff(a,b,c,d,x[8],7,1770035416); 1142 d = this.ff(d,a,b,c,x[9],12,-1958414417); 1143 c = this.ff(c,d,a,b,x[10],17,-42063); 1144 b = this.ff(b,c,d,a,x[11],22,-1990404162); 1145 a = this.ff(a,b,c,d,x[12],7,1804603682); 1146 d = this.ff(d,a,b,c,x[13],12,-40341101); 1147 c = this.ff(c,d,a,b,x[14],17,-1502002290); 1148 b = this.ff(b,c,d,a,x[15],22,1236535329); 1149 a = this.gg(a,b,c,d,x[1],5,-165796510); 1150 d = this.gg(d,a,b,c,x[6],9,-1069501632); 1151 c = this.gg(c,d,a,b,x[11],14,643717713); 1152 b = this.gg(b,c,d,a,x[0],20,-373897302); 1153 a = this.gg(a,b,c,d,x[5],5,-701558691); 1154 d = this.gg(d,a,b,c,x[10],9,38016083); 1155 c = this.gg(c,d,a,b,x[15],14,-660478335); 1156 b = this.gg(b,c,d,a,x[4],20,-405537848); 1157 a = this.gg(a,b,c,d,x[9],5,568446438); 1158 d = this.gg(d,a,b,c,x[14],9,-1019803690); 1159 c = this.gg(c,d,a,b,x[3],14,-187363961); 1160 b = this.gg(b,c,d,a,x[8],20,1163531501); 1161 a = this.gg(a,b,c,d,x[13],5,-1444681467); 1162 d = this.gg(d,a,b,c,x[2],9,-51403784); 1163 c = this.gg(c,d,a,b,x[7],14,1735328473); 1164 b = this.gg(b,c,d,a,x[12],20,-1926607734); 1165 a = this.hh(a,b,c,d,x[5],4,-378558); 1166 d = this.hh(d,a,b,c,x[8],11,-2022574463); 1167 c = this.hh(c,d,a,b,x[11],16,1839030562); 1168 b = this.hh(b,c,d,a,x[14],23,-35309556); 1169 a = this.hh(a,b,c,d,x[1],4,-1530992060); 1170 d = this.hh(d,a,b,c,x[4],11,1272893353); 1171 c = this.hh(c,d,a,b,x[7],16,-155497632); 1172 b = this.hh(b,c,d,a,x[10],23,-1094730640); 1173 a = this.hh(a,b,c,d,x[13],4,681279174); 1174 d = this.hh(d,a,b,c,x[0],11,-358537222); 1175 c = this.hh(c,d,a,b,x[3],16,-722521979); 1176 b = this.hh(b,c,d,a,x[6],23,76029189); 1177 a = this.hh(a,b,c,d,x[9],4,-640364487); 1178 d = this.hh(d,a,b,c,x[12],11,-421815835); 1179 c = this.hh(c,d,a,b,x[15],16,530742520); 1180 b = this.hh(b,c,d,a,x[2],23,-995338651); 1181 a = this.ii(a,b,c,d,x[0],6,-198630844); 1182 d = this.ii(d,a,b,c,x[7],10,1126891415); 1183 c = this.ii(c,d,a,b,x[14],15,-1416354905); 1184 b = this.ii(b,c,d,a,x[5],21,-57434055); 1185 a = this.ii(a,b,c,d,x[12],6,1700485571); 1186 d = this.ii(d,a,b,c,x[3],10,-1894986606); 1187 c = this.ii(c,d,a,b,x[10],15,-1051523); 1188 b = this.ii(b,c,d,a,x[1],21,-2054922799); 1189 a = this.ii(a,b,c,d,x[8],6,1873313359); 1190 d = this.ii(d,a,b,c,x[15],10,-30611744); 1191 c = this.ii(c,d,a,b,x[6],15,-1560198380); 1192 b = this.ii(b,c,d,a,x[13],21,1309151649); 1193 a = this.ii(a,b,c,d,x[4],6,-145523070); 1194 d = this.ii(d,a,b,c,x[11],10,-1120210379); 1195 c = this.ii(c,d,a,b,x[2],15,718787259); 1196 b = this.ii(b,c,d,a,x[9],21,-343485551); 1197 a = this.addme(a,olda); 1198 b = this.addme(b,oldb); 1199 c = this.addme(c,oldc); 1200 d = this.addme(d,oldd); 1201 ++blockNumber; 1202 } 1203 return [a,b,c,d]; 1204 } 1205 ,__class__: JsMd5 1206}; 1207Math.__name__ = true; 1208var Md5 = function() { 1209}; 1210Md5.__name__ = true; 1211Md5.encode = function(s) { 1212 return Md5.inst.doEncode(s); 1213}; 1214Md5.bitOR = function(a,b) { 1215 var lsb = a & 1 | b & 1; 1216 var msb31 = a >>> 1 | b >>> 1; 1217 return msb31 << 1 | lsb; 1218}; 1219Md5.bitXOR = function(a,b) { 1220 var lsb = a & 1 ^ b & 1; 1221 var msb31 = a >>> 1 ^ b >>> 1; 1222 return msb31 << 1 | lsb; 1223}; 1224Md5.bitAND = function(a,b) { 1225 var lsb = a & 1 & (b & 1); 1226 var msb31 = a >>> 1 & b >>> 1; 1227 return msb31 << 1 | lsb; 1228}; 1229Md5.addme = function(x,y) { 1230 var lsw = (x & 65535) + (y & 65535); 1231 var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 1232 return msw << 16 | lsw & 65535; 1233}; 1234Md5.rhex = function(num) { 1235 var str = ""; 1236 var hex_chr = "0123456789abcdef"; 1237 str += hex_chr.charAt(num >> 4 & 15) + hex_chr.charAt(num & 15); 1238 str += hex_chr.charAt(num >> 12 & 15) + hex_chr.charAt(num >> 8 & 15); 1239 str += hex_chr.charAt(num >> 20 & 15) + hex_chr.charAt(num >> 16 & 15); 1240 str += hex_chr.charAt(num >> 28 & 15) + hex_chr.charAt(num >> 24 & 15); 1241 return str; 1242}; 1243Md5.rol = function(num,cnt) { 1244 return num << cnt | num >>> 32 - cnt; 1245}; 1246Md5.cmn = function(q,a,b,x,s,t) { 1247 var lsw = (a & 65535) + (q & 65535); 1248 var msw = (a >> 16) + (q >> 16) + (lsw >> 16); 1249 var x1 = msw << 16 | lsw & 65535; 1250 var lsw = (x & 65535) + (t & 65535); 1251 var msw = (x >> 16) + (t >> 16) + (lsw >> 16); 1252 var y = msw << 16 | lsw & 65535; 1253 var lsw = (x1 & 65535) + (y & 65535); 1254 var msw = (x1 >> 16) + (y >> 16) + (lsw >> 16); 1255 var num = msw << 16 | lsw & 65535; 1256 var x = num << s | num >>> 32 - s; 1257 var lsw = (x & 65535) + (b & 65535); 1258 var msw = (x >> 16) + (b >> 16) + (lsw >> 16); 1259 return msw << 16 | lsw & 65535; 1260}; 1261Md5.ff = function(a,b,c,d,x,s,t) { 1262 var lsb = b & 1 & (c & 1); 1263 var msb31 = b >>> 1 & c >>> 1; 1264 var a1 = msb31 << 1 | lsb; 1265 var a2 = ~b; 1266 var lsb = a2 & 1 & (d & 1); 1267 var msb31 = a2 >>
1267> 1 & d >>> 1; 1268 var b1 = msb31 << 1 | lsb; 1269 var lsb = a1 & 1 | b1 & 1; 1270 var msb31 = a1 >>> 1 | b1 >>> 1; 1271 var q = msb31 << 1 | lsb; 1272 var lsw = (a & 65535) + (q & 65535); 1273 var msw = (a >> 16) + (q >> 16) + (lsw >> 16); 1274 var x1 = msw << 16 | lsw & 65535; 1275 var lsw = (x & 65535) + (t & 65535); 1276 var msw = (x >> 16) + (t >> 16) + (lsw >> 16); 1277 var y = msw << 16 | lsw & 65535; 1278 var lsw = (x1 & 65535) + (y & 65535); 1279 var msw = (x1 >> 16) + (y >> 16) + (lsw >> 16); 1280 var num = msw << 16 | lsw & 65535; 1281 var x = num << s | num >>> 32 - s; 1282 var lsw = (x & 65535) + (b & 65535); 1283 var msw = (x >> 16) + (b >> 16) + (lsw >> 16); 1284 return msw << 16 | lsw & 65535; 1285}; 1286Md5.gg = function(a,b,c,d,x,s,t) { 1287 var lsb = b & 1 & (d & 1); 1288 var msb31 = b >>> 1 & d >>> 1; 1289 var a1 = msb31 << 1 | lsb; 1290 var b1 = ~d; 1291 var lsb = c & 1 & (b1 & 1); 1292 var msb31 = c >>> 1 & b1 >>> 1; 1293 var b1 = msb31 << 1 | lsb; 1294 var lsb = a1 & 1 | b1 & 1; 1295 var msb31 = a1 >>> 1 | b1 >>> 1; 1296 var q = msb31 << 1 | lsb; 1297 var lsw = (a & 65535) + (q & 65535); 1298 var msw = (a >> 16) + (q >> 16) + (lsw >> 16); 1299 var x1 = msw << 16 | lsw & 65535; 1300 var lsw = (x & 65535) + (t & 65535); 1301 var msw = (x >> 16) + (t >> 16) + (lsw >> 16); 1302 var y = msw << 16 | lsw & 65535; 1303 var lsw = (x1 & 65535) + (y & 65535); 1304 var msw = (x1 >> 16) + (y >> 16) + (lsw >> 16); 1305 var num = msw << 16 | lsw & 65535; 1306 var x = num << s | num >>> 32 - s; 1307 var lsw = (x & 65535) + (b & 65535); 1308 var msw = (x >> 16) + (b >> 16) + (lsw >> 16); 1309 return msw << 16 | lsw & 65535; 1310}; 1311Md5.hh = function(a,b,c,d,x,s,t) { 1312 var lsb = b & 1 ^ c & 1; 1313 var msb31 = b >>> 1 ^ c >>> 1; 1314 var a1 = msb31 << 1 | lsb; 1315 var lsb = a1 & 1 ^ d & 1; 1316 var msb31 = a1 >>> 1 ^ d >>> 1; 1317 var q = msb31 << 1 | lsb; 1318 var lsw = (a & 65535) + (q & 65535); 1319 var msw = (a >> 16) + (q >> 16) + (lsw >> 16); 1320 var x1 = msw << 16 | lsw & 65535; 1321 var lsw = (x & 65535) + (t & 65535); 1322 var msw = (x >> 16) + (t >> 16) + (lsw >> 16); 1323 var y = msw << 16 | lsw & 65535; 1324 var lsw = (x1 & 65535) + (y & 65535); 1325 var msw = (x1 >> 16) + (y >> 16) + (lsw >> 16); 1326 var num = msw << 16 | lsw & 65535; 1327 var x = num << s | num >>> 32 - s; 1328 var lsw = (x & 65535) + (b & 65535); 1329 var msw = (x >> 16) + (b >> 16) + (lsw >> 16); 1330 return msw << 16 | lsw & 65535; 1331}; 1332Md5.ii = function(a,b,c,d,x,s,t) { 1333 var b1 = ~d; 1334 var lsb = b & 1 | b1 & 1; 1335 var msb31 = b >>> 1 | b1 >>> 1; 1336 var b1 = msb31 << 1 | lsb; 1337 var lsb = c & 1 ^ b1 & 1; 1338 var msb31 = c >>> 1 ^ b1 >>> 1; 1339 var q = msb31 << 1 | lsb; 1340 var lsw = (a & 65535) + (q & 65535); 1341 var msw = (a >> 16) + (q >> 16) + (lsw >> 16); 1342 var x1 = msw << 16 | lsw & 65535; 1343 var lsw = (x & 65535) + (t & 65535); 1344 var msw = (x >> 16) + (t >> 16) + (lsw >> 16); 1345 var y = msw << 16 | lsw & 65535; 1346 var lsw = (x1 & 65535) + (y & 65535); 1347 var msw = (x1 >> 16) + (y >> 16) + (lsw >> 16); 1348 var num = msw << 16 | lsw & 65535; 1349 var x = num << s | num >>> 32 - s; 1350 var lsw = (x & 65535) + (b & 65535); 1351 var msw = (x >> 16) + (b >> 16) + (lsw >> 16); 1352 return msw << 16 | lsw & 65535; 1353}; 1354Md5.prototype = { 1355 str2blks: function(str) { 1356 var nblk = (str.length + 8 >> 6) + 1; 1357 var blks = []; 1358 var _g = 0; 1359 var _g1 = nblk * 16; 1360 while(_g < _g1) { 1361 var i = _g++; 1362 blks[i] = 0; 1363 } 1364 var i = 0; 1365 while(i < str.length) { 1366 blks[i >> 2] |= HxOverrides.cca(str,i) << (str.length * 8 + i) % 4 * 8; 1367 ++i; 1368 } 1369 blks[i >> 2] |= 128 << (str.length * 8 + i) % 4 * 8; 1370 var l = str.length * 8; 1371 var k = nblk * 16 - 2; 1372 blks[k] = l & 255; 1373 blks[k] |= (l >>> 8 & 255) << 8; 1374 blks[k] |= (l >>> 16 & 255) << 16; 1375 blks[k] |= (l >>> 24 & 255) << 24; 1376 return blks; 1377 } 1378 ,charCodeAt: function(str,i) { 1379 return HxOverrides.cca(str,i); 1380 } 1381 ,doEncode: function(str) { 1382 var x = this.str2blks(str); 1383 var a = 1732584193; 1384 var b = -271733879;
1385 var c = -1732584194; 1386 var d = 271733878; 1387 var step; 1388 var i = 0; 1389 while(i < x.length) { 1390 var olda = a; 1391 var oldb = b; 1392 var oldc = c; 1393 var oldd = d; 1394 step = 0; 1395 var x1 = x[i]; 1396 var lsb = b & 1 & (c & 1); 1397 var msb31 = b >>> 1 & c >>> 1; 1398 var a1 = msb31 << 1 | lsb; 1399 var a2 = ~b; 1400 var lsb1 = a2 & 1 & (d & 1); 1401 var msb311 = a2 >>> 1 & d >>> 1; 1402 var b1 = msb311 << 1 | lsb1; 1403 var lsb2 = a1 & 1 | b1 & 1; 1404 var msb312 = a1 >>> 1 | b1 >>> 1; 1405 var q = msb312 << 1 | lsb2; 1406 var lsw = (a & 65535) + (q & 65535); 1407 var msw = (a >> 16) + (q >> 16) + (lsw >> 16); 1408 var x2 = msw << 16 | lsw & 65535; 1409 var lsw1 = (x1 & 65535) + 42104; 1410 var msw1 = (x1 >> 16) + (-10390) + (lsw1 >> 16); 1411 var y = msw1 << 16 | lsw1 & 65535; 1412 var lsw2 = (x2 & 65535) + (y & 65535); 1413 var msw2 = (x2 >> 16) + (y >> 16) + (lsw2 >> 16); 1414 var num = msw2 << 16 | lsw2 & 65535; 1415 var x3 = num << 7 | num >>> 25; 1416 var lsw3 = (x3 & 65535) + (b & 65535); 1417 var msw3 = (x3 >> 16) + (b >> 16) + (lsw3 >> 16); 1418 a = msw3 << 16 | lsw3 & 65535; 1419 var x4 = x[i + 1]; 1420 var lsb3 = a & 1 & (b & 1); 1421 var msb313 = a >>> 1 & b >>> 1; 1422 var a3 = msb313 << 1 | lsb3; 1423 var a4 = ~a; 1424 var lsb4 = a4 & 1 & (c & 1); 1425 var msb314 = a4 >>> 1 & c >>> 1; 1426 var b2 = msb314 << 1 | lsb4; 1427 var lsb5 = a3 & 1 | b2 & 1; 1428 var msb315 = a3 >>> 1 | b2 >>> 1; 1429 var q1 = msb315 << 1 | lsb5; 1430 var lsw4 = (d & 65535) + (q1 & 65535); 1431 var msw4 = (d >> 16) + (q1 >> 16) + (lsw4 >> 16); 1432 var x5 = msw4 << 16 | lsw4 & 65535; 1433 var lsw5 = (x4 & 65535) + 46934; 1434 var msw5 = (x4 >> 16) + (-5945) + (lsw5 >> 16); 1435 var y1 = msw5 << 16 | lsw5 & 65535; 1436 var lsw6 = (x5 & 65535) + (y1 & 65535); 1437 var msw6 = (x5 >> 16) + (y1 >> 16) + (lsw6 >> 16); 1438 var num1 = msw6 << 16 | lsw6 & 65535; 1439 var x6 = num1 << 12 | num1 >>> 20; 1440 var lsw7 = (x6 & 65535) + (a & 65535); 1441 var msw7 = (x6 >> 16) + (a >> 16) + (lsw7 >> 16); 1442 d = msw7 << 16 | lsw7 & 65535; 1443 var x7 = x[i + 2]; 1444 var lsb6 = d & 1 & (a & 1); 1445 var msb316 = d >>> 1 & a >>> 1; 1446 var a5 = msb316 << 1 | lsb6; 1447 var a6 = ~d; 1448 var lsb7 = a6 & 1 & (b & 1); 1449 var msb317 = a6 >>> 1 & b >>> 1; 1450 var b3 = msb317 << 1 | lsb7; 1451 var lsb8 = a5 & 1 | b3 & 1; 1452 var msb318 = a5 >>> 1 | b3 >>> 1; 1453 var q2 = msb318 << 1 | lsb8; 1454 var lsw8 = (c & 65535) + (q2 & 65535); 1455 var msw8 = (c >> 16) + (q2 >> 16) + (lsw8 >> 16); 1456 var x8 = msw8 << 16 | lsw8 & 65535; 1457 var lsw9 = (x7 & 65535) + 28891; 1458 var msw9 = (x7 >> 16) + 9248 + (lsw9 >> 16); 1459 var y2 = msw9 << 16 | lsw9 & 65535; 1460 var lsw10 = (x8 & 65535) + (y2 & 65535); 1461 var msw10 = (x8 >> 16) + (y2 >> 16) + (lsw10 >> 16); 1462 var num2 = msw10 << 16 | lsw10 & 65535; 1463 var x9 = num2 << 17 | num2 >>> 15; 1464 var lsw11 = (x9 & 65535) + (d & 65535); 1465 var msw11 = (x9 >> 16) + (d >> 16) + (lsw11 >> 16); 1466 c = msw11 << 16 | lsw11 & 65535; 1467 var x10 = x[i + 3]; 1468 var lsb9 = c & 1 & (d & 1); 1469 var msb319 = c >>> 1 & d >>> 1; 1470 var a7 = msb319 << 1 | lsb9; 1471 var a8 = ~c; 1472 var lsb10 = a8 & 1 & (a & 1); 1473 var msb3110 = a8 >>> 1 & a >>> 1; 1474 var b4 = msb3110 << 1 | lsb10; 1475 var lsb11 = a7 & 1 | b4 & 1; 1476 var msb3111 = a7 >>> 1 | b4 >>> 1; 1477 var q3 = msb3111 << 1 | lsb11; 1478 var lsw12 = (b & 65535) + (q3 & 65535); 1479 var msw12 = (b >> 16) + (q3 >> 16) + (lsw12 >> 16); 1480 var x11 = msw12 << 16 | lsw12 & 65535; 1481 var lsw13 = (x10 & 65535) + 52974; 1482 var msw13 = (x10 >> 16) + (-15939) + (lsw13 >> 16); 1483 var y3 = msw13 << 16 | lsw13 & 65535; 1484 var lsw14 = (x11 & 65535) + (y3 & 65535); 1485 var msw14 = (x11 >> 16) + (y3 >> 16) + (lsw14 >> 16); 1486 var num3 = msw14 << 16 | lsw14 & 65535; 1487 var x12 = num3 << 22 | num3 >>> 10; 1488 var lsw15 = (x12 & 65535) + (c & 65535); 1489 var msw15 = (x12 >> 16) + (c >> 16) + (lsw15 >> 16); 1490 b = msw15 << 16 | lsw15 & 65535; 1491 var x13 = x[i + 4]; 1492 var lsb12 = b & 1 & (c & 1); 1493 var msb3112 = b >>> 1 & c >>> 1; 1494 var a9 = msb3112 << 1 | lsb12; 1495 var a10 = ~b; 1496 var lsb13 = a10 & 1 & (d & 1); 1497 var msb3113 = a10 >>> 1 & d >>> 1; 1498 var b5 = msb3113 << 1 | lsb13; 1499 var lsb14 = a9 & 1 | b5 & 1; 1500 var msb3114 = a9 >>> 1 | b5 >>> 1; 1501 var q4 = msb3114 << 1 | lsb14; 1502 var lsw16 = (a & 65535) + (q4 & 65535); 1503 var msw16 = (a >> 16) + (q4 >> 16) + (lsw16 >> 16); 1504 var x14 = msw16 << 16 | lsw16 & 65535; 1505 var lsw17 = (x13 & 65535) + 4015; 1506 var msw17 = (x13 >> 16) + (-2692) + (lsw17 >> 16); 1507 var y4 = msw17 << 16 | lsw17 & 65535; 1508 var lsw18 = (x14 & 65535) + (y4 & 65535); 1509 var msw18 = (x14 >> 16) + (y4 >> 16) + (lsw18 >> 16); 1510 var num4 = msw18 << 16 | lsw18 & 65535; 1511 var x15 = num4 << 7 | num4 >>> 25; 1512 var lsw19 = (x15 & 65535) + (b & 65535); 1513 var msw19 = (x15 >> 16) + (b >> 16) + (lsw19 >> 16); 1514 a = msw19 << 16 | lsw19 & 65535; 1515 var x16 = x[i + 5]; 1516 var lsb15 = a & 1 & (b & 1); 1517 var msb3115 = a >>> 1 & b >>> 1; 1518 var a11 = msb3115 << 1 | lsb15; 1519 var a12 = ~a; 1520 var lsb16 = a12 & 1 & (c & 1); 1521 var msb3116 = a12 >>> 1 & c >>> 1; 1522 var b6 = msb3116 << 1 | lsb16; 1523 var lsb17 = a11 & 1 | b6 & 1; 1524 var msb3117 = a11 >>> 1 | b6 >>> 1; 1525 var q5 = msb3117 << 1 | lsb17; 1526 var lsw20 = (d & 65535) + (q5 & 65535); 1527 var msw20 = (d >> 16) + (q5 >> 16) + (lsw20 >> 16); 1528 var x17 = msw20 << 16 | lsw20 & 65535; 1529 var lsw21 = (x16 & 65535) + 50730; 1530 var msw21 = (x16 >> 16) + 18311 + (lsw21 >> 16); 1531 var y5 = msw21 << 16 | lsw21 & 65535; 1532 var lsw22 = (x17 & 65535) + (y5 & 65535); 1533 var msw22 = (x17 >> 16) + (y5 >> 16) + (lsw22 >> 16); 1534 var num5 = msw22 << 16 | lsw22 & 65535; 1535 var x18 = num5 << 12 | num5 >>> 20; 1536 var lsw23 = (x18 & 65535) + (a & 65535); 1537 var msw23 = (x18 >> 16) + (a >> 16) + (lsw23 >> 16); 1538 d = msw23 << 16 | lsw23 & 65535; 1539 var x19 = x[i + 6]; 1540 var lsb18 = d & 1 & (a & 1); 1541 var msb3118 = d >>> 1 & a >>> 1; 1542 var a13 = msb3118 << 1 | lsb18; 1543 var a14 = ~d; 1544 var lsb19 = a14 & 1 & (b & 1); 1545 var msb3119 = a14 >>> 1 & b >>> 1; 1546 var b7 = msb3119 << 1 | lsb19; 1547 var lsb20 = a13 & 1 | b7 & 1; 1548 var msb3120 = a13 >>> 1 | b7 >>> 1; 1549 var q6 = msb3120 << 1 | lsb20; 1550 var lsw24 = (c & 65535) + (q6 & 65535); 1551 var msw24 = (c >> 16) + (q6 >> 16) + (lsw24 >> 16); 1552 var x20 = msw24 << 16 | lsw24 & 65535; 1553 var lsw25 = (x19 & 65535) + 17939; 1554 var msw25 = (x19 >> 16) + (-22480) + (lsw25 >> 16); 1555 var y6 = msw25 << 16 | lsw25 & 65535; 1556 var lsw26 = (x20 & 65535) + (y6 & 65535); 1557 var msw26 = (x20 >> 16) + (y6 >> 16) + (lsw26 >> 16); 1558 var num6 = msw26 << 16 | lsw26 & 65535; 1559 var x21 = num6 << 17 | num6 >>> 15; 1560 var lsw27 = (x21 & 65535) + (d & 65535); 1561 var msw27 = (x21 >> 16) + (d >> 16) + (lsw27 >> 16); 1562 c = msw27 << 16 | lsw27 & 65535; 1563 var x22 = x[i + 7]; 1564 var lsb21 = c & 1 & (d & 1); 1565 var msb3121 = c >>> 1 & d >>> 1; 1566 var a15 = msb3121 << 1 | lsb21; 1567 var a16 = ~c; 1568 var lsb22 = a16 & 1 & (a & 1); 1569 var msb3122 = a16 >>> 1 & a >>> 1; 1570 var b8 = msb3122 << 1 | lsb22; 1571 var lsb23 = a15 & 1 | b8 & 1; 1572 var msb3123 = a15 >>> 1 | b8 >>> 1; 1573 var q7 = msb3123 << 1 | lsb23; 1574 var lsw28 = (b & 65535) + (q7 & 65535); 1575 var msw28 = (b >> 16) + (q7 >> 16) + (lsw28 >> 16); 1576 var x23 = msw28 << 16 | lsw28 & 65535; 1577 var lsw29 = (x22 & 65535) + 38145; 1578 var msw29 = (x22 >> 16) + (-698) + (lsw29 >> 16); 1579 var y7 = msw29 << 16 | lsw29 & 65535; 1580 var lsw30 = (x23 & 65535) + (y7 & 65535); 1581 var msw30 = (x23 >> 16) + (y7 >> 16) + (lsw30 >> 16); 1582 var num7 = msw30 << 16 | lsw30 & 65535; 1583 var x24 = num7 << 22 | num7 >>> 10; 1584 var lsw31 = (x24 & 65535) + (c & 65535); 1585 var msw31 = (x24 >> 16) + (c >> 16) + (lsw31 >> 16); 1586 b = msw31 << 16 | lsw31 & 65535; 1587 var x25 = x[i + 8]; 1588 var lsb24 = b & 1 & (c & 1); 1589 var msb3124 = b >>> 1 & c >>> 1; 1590 var a17 = msb3124 << 1 | lsb24; 1591 var a18 = ~b; 1592 var lsb25 = a18 & 1 & (d & 1); 1593 var msb3125 = a18 >>> 1 & d >>> 1; 1594 var b9 = msb3125 << 1 | lsb25; 1595 var lsb26 = a17 & 1 | b9 & 1; 1596 var msb3126 = a17 >>> 1 | b9 >>> 1; 1597 var q8 = msb3126 << 1 | lsb26; 1598 var lsw32 = (a & 65535) + (q8 & 65535); 1599 var msw32 = (a >> 16) + (q8 >> 16) + (lsw32 >> 16); 1600 var x26 = msw32 << 16 | lsw32 & 65535; 1601 var lsw33 = (x25 & 65535) + 39128; 1602 var msw33 = (x25 >> 16) + 27008 + (lsw33 >> 16); 1603 var y8 = msw33 << 16 | lsw33 & 65535; 1604 var lsw34 = (x26 & 65535) + (y8 & 65535); 1605 var msw34 = (x26 >> 16) + (y8 >> 16) + (lsw34 >> 16); 1606 var num8 = msw34 << 16 | lsw34 & 65535; 1607 var x27 = num8 << 7 | num8 >>> 25; 1608 var lsw35 = (x27 & 65535) + (b & 65535); 1609 var msw35 = (x27 >> 16) + (b >> 16) + (lsw35 >> 16); 1610 a = msw35 << 16 | lsw35 & 65535; 1611 var x28 = x[i + 9]; 1612 var lsb27 = a & 1 & (b & 1); 1613 var msb3127 = a >>> 1 & b >>> 1; 1614 var a19 = msb3127 << 1 | lsb27; 1615 var a20 = ~a; 1616 var lsb28 = a20 & 1 & (c & 1); 1617 var msb3128 = a20 >>> 1 & c >>> 1; 1618 var b10 = msb3128 << 1 | lsb28; 1619 var lsb29 = a19 & 1 | b10 & 1; 1620 var msb3129 = a19 >>> 1 | b10 >>> 1; 1621 var q9 = msb3129 << 1 | lsb29; 1622 var lsw36 = (d & 65535) + (q9 & 65535); 1623 var msw36 = (d >> 16) + (q9 >> 16) + (lsw36 >> 16); 1624 var x29 = msw36 << 16 | lsw36 & 65535; 1625 var lsw37 = (x28 & 65535) + 63407; 1626 var msw37 = (x28 >> 16) + (-29884) + (lsw37 >> 16); 1627 var y9 = msw37 << 16 | lsw37 & 65535; 1628 var lsw38 = (x29 & 65535) + (y9 & 65535); 1629 var msw38 = (x29 >> 16) + (y9 >> 16) + (lsw38 >> 16); 1630 var num9 = msw38 << 16 | lsw38 & 65535; 1631 var x30 = num9 << 12 | num9 >>> 20; 1632 var lsw39 = (x30 & 65535) + (a & 65535); 1633 var msw39 = (x30 >> 16) + (a >> 16) + (lsw39 >> 16); 1634 d = msw39 << 16 | lsw39 & 65535; 1635 var x31 = x[i + 10]; 1636 var lsb30 = d & 1 & (a & 1); 1637 var msb3130 = d >>> 1 & a >>> 1; 1638 var a21 = msb3130 << 1 | lsb30; 1639 var a22 = ~d; 1640 var lsb31 = a22 & 1 & (b & 1); 1641 var msb3131 = a22 >>> 1 & b >>> 1; 1642 var b11 = msb3131 << 1 | lsb31; 1643 var lsb32 = a21 & 1 | b11 & 1; 1644 var msb3132 = a21 >>> 1 | b11 >>> 1; 1645 var q10 = msb3132 << 1 | lsb32; 1646 var lsw40 = (c & 65535) + (q10 & 65535); 1647 var msw40 = (c >> 16) + (q10 >> 16) + (lsw40 >> 16); 1648 var x32 = msw40 << 16 | lsw40 & 65535; 1649 var lsw41 = (x31 & 65535) + 23473; 1650 var msw41 = (x31 >> 16) + (-1) + (lsw41 >> 16); 1651 var y10 = msw41 << 16 | lsw41 & 65535; 1652 var lsw42 = (x32 & 65535) + (y10 & 65535); 1653 var msw42 = (x32 >> 16) + (y10 >> 16) + (lsw42 >> 16); 1654 var num10 = msw42 << 16 | lsw42 & 65535; 1655 var x33 = num10 << 17 | num10 >>> 15; 1656 var lsw43 = (x33 & 65535) + (d & 65535); 1657 var msw43 = (x33 >> 16) + (d >> 16) + (lsw43 >> 16); 1658 c = msw43 << 16 | lsw43 & 65535; 1659 var x34 = x[i + 11]; 1660 var lsb33 = c & 1 & (d & 1); 1661 var msb3133 = c >>> 1 & d >>> 1; 1662 var a23 = msb3133 << 1 | lsb33; 1663 var a24 = ~c; 1664 var lsb34 = a24 & 1 & (a & 1); 1665 var msb3134 = a24 >>> 1 & a >>> 1; 1666 var b12 = msb3134 << 1 | lsb34; 1667 var lsb35 = a23 & 1 | b12 & 1; 1668 var msb3135 = a23 >>> 1 | b12 >>> 1; 1669 var q11 = msb3135 << 1 | lsb35; 1670 var lsw44 = (b & 65535) + (q11 & 65535); 1671 var msw44 = (b >> 16) + (q11 >> 16) + (lsw44 >> 16); 1672 var x35 = msw44 << 16 | lsw44 & 65535; 1673 var lsw45 = (x34 & 65535) + 55230; 1674 var msw45 = (x34 >> 16) + (-30372) + (lsw45 >> 16); 1675 var y11 = msw45 << 16 | lsw45 & 65535; 1676 var lsw46 = (x35 & 65535) + (y11 & 65535); 1677 var msw46 = (x35 >> 16) + (y11 >> 16) + (lsw46 >> 16); 1678 var num11 = msw46 << 16 | lsw46 & 65535; 1679 var x36 = num11 << 22 | num11 >>> 10; 1680 var lsw47 = (x36 & 65535) + (c & 65535); 1681 var msw47 = (x36 >> 16) + (c >> 16) + (lsw47 >> 16); 1682 b = msw47 << 16 | lsw47 & 65535; 1683 var x37 = x[i + 12]; 1684 var lsb36 = b & 1 & (c & 1); 1685 var msb3136 = b >>> 1 & c >>> 1; 1686 var a25 = msb3136 << 1 | lsb36; 1687 var a26 = ~b; 1688 var lsb37 = a26 & 1 & (d & 1); 1689 var msb3137 = a26 >>> 1 & d >>> 1; 1690 var b13 = msb3137 << 1 | lsb37; 1691 var lsb38 = a25 & 1 | b13 & 1; 1692 var msb3138 = a25 >>> 1 | b13 >>> 1; 1693 var q12 = msb3138 << 1 | lsb38; 1694 var lsw48 = (a & 65535) + (q12 & 65535); 1695 var msw48 = (a >> 16) + (q12 >> 16) + (lsw48 >> 16); 1696 var x38 = msw48 << 16 | lsw48 & 65535; 1697 var lsw49 = (x37 & 65535) + 4386; 1698 var msw49 = (x37 >> 16) + 27536 + (lsw49 >> 16); 1699 var y12 = msw49 << 16 | lsw49 & 65535; 1700 var lsw50 = (x38 & 65535) + (y12 & 65535); 1701 var msw50 = (x38 >> 16) + (y12 >> 16) + (lsw50 >> 16); 1702 var num12 = msw50 << 16 | lsw50 & 65535; 1703 var x39 = num12 << 7 | num12 >>> 25;
1704 var lsw51 = (x39 & 65535) + (b & 65535); 1705 var msw51 = (x39 >> 16) + (b >> 16) + (lsw51 >> 16); 1706 a = msw51 << 16 | lsw51 & 65535; 1707 var x40 = x[i + 13]; 1708 var lsb39 = a & 1 & (b & 1); 1709 var msb3139 = a >>> 1 & b >>> 1; 1710 var a27 = msb3139 << 1 | lsb39; 1711 var a28 = ~a; 1712 var lsb40 = a28 & 1 & (c & 1); 1713 var msb3140 = a28 >>> 1 & c >>> 1; 1714 var b14 = msb3140 << 1 | lsb40; 1715 var lsb41 = a27 & 1 | b14 & 1; 1716 var msb3141 = a27 >>> 1 | b14 >>> 1; 1717 var q13 = msb3141 << 1 | lsb41; 1718 var lsw52 = (d & 65535) + (q13 & 65535); 1719 var msw52 = (d >> 16) + (q13 >> 16) + (lsw52 >> 16); 1720 var x41 = msw52 << 16 | lsw52 & 65535; 1721 var lsw53 = (x40 & 65535) + 29075; 1722 var msw53 = (x40 >> 16) + (-616) + (lsw53 >> 16); 1723 var y13 = msw53 << 16 | lsw53 & 65535; 1724 var lsw54 = (x41 & 65535) + (y13 & 65535); 1725 var msw54 = (x41 >> 16) + (y13 >> 16) + (lsw54 >> 16); 1726 var num13 = msw54 << 16 | lsw54 & 65535; 1727 var x42 = num13 << 12 | num13 >>> 20; 1728 var lsw55 = (x42 & 65535) + (a & 65535); 1729 var msw55 = (x42 >> 16) + (a >> 16) + (lsw55 >> 16); 1730 d = msw55 << 16 | lsw55 & 65535; 1731 var x43 = x[i + 14]; 1732 var lsb42 = d & 1 & (a & 1); 1733 var msb3142 = d >>> 1 & a >>> 1; 1734 var a29 = msb3142 << 1 | lsb42; 1735 var a30 = ~d; 1736 var lsb43 = a30 & 1 & (b & 1); 1737 var msb3143 = a30 >>> 1 & b >>> 1; 1738 var b15 = msb3143 << 1 | lsb43; 1739 var lsb44 = a29 & 1 | b15 & 1; 1740 var msb3144 = a29 >>> 1 | b15 >>> 1; 1741 var q14 = msb3144 << 1 | lsb44; 1742 var lsw56 = (c & 65535) + (q14 & 65535); 1743 var msw56 = (c >> 16) + (q14 >> 16) + (lsw56 >> 16); 1744 var x44 = msw56 << 16 | lsw56 & 65535; 1745 var lsw57 = (x43 & 65535) + 17294; 1746 var msw57 = (x43 >> 16) + (-22919) + (lsw57 >> 16); 1747 var y14 = msw57 << 16 | lsw57 & 65535; 1748 var lsw58 = (x44 & 65535) + (y14 & 65535); 1749 var msw58 = (x44 >> 16) + (y14 >> 16) + (lsw58 >> 16); 1750 var num14 = msw58 << 16 | lsw58 & 65535; 1751 var x45 = num14 << 17 | num14 >>> 15; 1752 var lsw59 = (x45 & 65535) + (d & 65535); 1753 var msw59 = (x45 >> 16) + (d >> 16) + (lsw59 >> 16); 1754 c = msw59 << 16 | lsw59 & 65535; 1755 var x46 = x[i + 15]; 1756 var lsb45 = c & 1 & (d & 1); 1757 var msb3145 = c >>> 1 & d >>> 1; 1758 var a31 = msb3145 << 1 | lsb45; 1759 var a32 = ~c; 1760 var lsb46 = a32 & 1 & (a & 1); 1761 var msb3146 = a32 >>> 1 & a >>> 1; 1762 var b16 = msb3146 << 1 | lsb46; 1763 var lsb47 = a31 & 1 | b16 & 1; 1764 var msb3147 = a31 >>> 1 | b16 >>> 1; 1765 var q15 = msb3147 << 1 | lsb47; 1766 var lsw60 = (b & 65535) + (q15 & 65535); 1767 var msw60 = (b >> 16) + (q15 >> 16) + (lsw60 >> 16); 1768 var x47 = msw60 << 16 | lsw60 & 65535; 1769 var lsw61 = (x46 & 65535) + 2081; 1770 var msw61 = (x46 >> 16) + 18868 + (lsw61 >> 16); 1771 var y15 = msw61 << 16 | lsw61 & 65535; 1772 var lsw62 = (x47 & 65535) + (y15 & 65535); 1773 var msw62 = (x47 >> 16) + (y15 >> 16) + (lsw62 >> 16); 1774 var num15 = msw62 << 16 | lsw62 & 65535; 1775 var x48 = num15 << 22 | num15 >>> 10; 1776 var lsw63 = (x48 & 65535) + (c & 65535); 1777 var msw63 = (x48 >> 16) + (c >> 16) + (lsw63 >> 16); 1778 b = msw63 << 16 | lsw63 & 65535; 1779 var x49 = x[i + 1]; 1780 var lsb48 = b & 1 & (d & 1); 1781 var msb3148 = b >>> 1 & d >>> 1; 1782 var a33 = msb3148 << 1 | lsb48; 1783 var b17 = ~d; 1784 var lsb49 = c & 1 & (b17 & 1); 1785 var msb3149 = c >>> 1 & b17 >>> 1; 1786 var b18 = msb3149 << 1 | lsb49; 1787 var lsb50 = a33 & 1 | b18 & 1; 1788 var msb3150 = a33 >>> 1 | b18 >>> 1; 1789 var q16 = msb3150 << 1 | lsb50; 1790 var lsw64 = (a & 65535) + (q16 & 65535); 1791 var msw64 = (a >> 16) + (q16 >> 16) + (lsw64 >> 16); 1792 var x50 = msw64 << 16 | lsw64 & 65535; 1793 var lsw65 = (x49 & 65535) + 9570; 1794 var msw65 = (x49 >> 16) + (-2530) + (lsw65 >> 16); 1795 var y16 = msw65 << 16 | lsw65 & 65535; 1796 var lsw66 = (x50 & 65535) + (y16 & 65535); 1797 var msw66 = (x50 >> 16) + (y16 >> 16) + (lsw66 >> 16); 1798 var num16 = msw66 << 16 | lsw66 & 65535; 1799 var x51 = num16 << 5 | num16 >>> 27; 1800 var lsw67 = (x51 & 65535) + (b & 65535); 1801 var msw67 = (x51 >> 16) + (b >> 16) + (lsw67 >> 16); 1802 a = msw67 << 16 | lsw67 & 65535; 1803 var x52 = x[i + 6]; 1804 var lsb51 = a & 1 & (c & 1); 1805 var msb3151 = a >>> 1 & c >>> 1; 1806 var a34 = msb3151 << 1 | lsb51; 1807 var b19 = ~c; 1808 var lsb52 = b & 1 & (b19 & 1); 1809 var msb3152 = b >>> 1 & b19 >>> 1; 1810 var b20 = msb3152 << 1 | lsb52; 1811 var lsb53 = a34 & 1 | b20 & 1; 1812 var msb3153 = a34 >>> 1 | b20 >>> 1; 1813 var q17 = msb3153 << 1 | lsb53; 1814 var lsw68 = (d & 65535) + (q17 & 65535); 1815 var msw68 = (d >> 16) + (q17 >> 16) + (lsw68 >> 16); 1816 var x53 = msw68 << 16 | lsw68 & 65535; 1817 var lsw69 = (x52 & 65535) + 45888; 1818 var msw69 = (x52 >> 16) + (-16320) + (lsw69 >> 16); 1819 var y17 = msw69 << 16 | lsw69 & 65535; 1820 var lsw70 = (x53 & 65535) + (y17 & 65535); 1821 var msw70 = (x53 >> 16) + (y17 >> 16) + (lsw70 >> 16); 1822 var num17 = msw70 << 16 | lsw70 & 65535; 1823 var x54 = num17 << 9 | num17 >>> 23; 1824 var lsw71 = (x54 & 65535) + (a & 65535); 1825 var msw71 = (x54 >>
1825 16) + (a >> 16) + (lsw71 >> 16); 1826 d = msw71 << 16 | lsw71 & 65535; 1827 var x55 = x[i + 11]; 1828 var lsb54 = d & 1 & (b & 1); 1829 var msb3154 = d >>> 1 & b >>> 1; 1830 var a35 = msb3154 << 1 | lsb54; 1831 var b21 = ~b; 1832 var lsb55 = a & 1 & (b21 & 1); 1833 var msb3155 = a >>> 1 & b21 >>> 1; 1834 var b22 = msb3155 << 1 | lsb55; 1835 var lsb56 = a35 & 1 | b22 & 1; 1836 var msb3156 = a35 >>> 1 | b22 >>> 1; 1837 var q18 = msb3156 << 1 | lsb56; 1838 var lsw72 = (c & 65535) + (q18 & 65535); 1839 var msw72 = (c >> 16) + (q18 >> 16) + (lsw72 >> 16); 1840 var x56 = msw72 << 16 | lsw72 & 65535; 1841 var lsw73 = (x55 & 65535) + 23121; 1842 var msw73 = (x55 >> 16) + 9822 + (lsw73 >> 16); 1843 var y18 = msw73 << 16 | lsw73 & 65535; 1844 var lsw74 = (x56 & 65535) + (y18 & 65535); 1845 var msw74 = (x56 >> 16) + (y18 >> 16) + (lsw74 >> 16); 1846 var num18 = msw74 << 16 | lsw74 & 65535; 1847 var x57 = num18 << 14 | num18 >>> 18; 1848 var lsw75 = (x57 & 65535) + (d & 65535); 1849 var msw75 = (x57 >> 16) + (d >> 16) + (lsw75 >> 16); 1850 c = msw75 << 16 | lsw75 & 65535; 1851 var x58 = x[i]; 1852 var lsb57 = c & 1 & (a & 1); 1853 var msb3157 = c >>> 1 & a >>> 1;
1854 var a36 = msb3157 << 1 | lsb57; 1855 var b23 = ~a; 1856 var lsb58 = d & 1 & (b23 & 1); 1857 var msb3158 = d >>> 1 & b23 >>> 1; 1858 var b24 = msb3158 << 1 | lsb58; 1859 var lsb59 = a36 & 1 | b24 & 1; 1860 var msb3159 = a36 >>> 1 | b24 >>> 1; 1861 var q19 = msb3159 << 1 | lsb59; 1862 var lsw76 = (b & 65535) + (q19 & 65535); 1863 var msw76 = (b >> 16) + (q19 >> 16) + (lsw76 >> 16); 1864 var x59 = msw76 << 16 | lsw76 & 65535; 1865 var lsw77 = (x58 & 65535) + 51114; 1866 var msw77 = (x58 >> 16) + (-5706) + (lsw77 >> 16); 1867 var y19 = msw77 << 16 | lsw77 & 65535; 1868 var lsw78 = (x59 & 65535) + (y19 & 65535); 1869 var msw78 = (x59 >> 16) + (y19 >> 16) + (lsw78 >> 16); 1870 var num19 = msw78 << 16 | lsw78 & 65535; 1871 var x60 = num19 << 20 | num19 >>> 12; 1872 var lsw79 = (x60 & 65535) + (c & 65535); 1873 var msw79 = (x60 >> 16) + (c >> 16) + (lsw79 >> 16); 1874 b = msw79 << 16 | lsw79 & 65535; 1875 var x61 = x[i + 5]; 1876 var lsb60 = b & 1 & (d & 1); 1877 var msb3160 = b >>> 1 & d >>> 1; 1878 var a37 = msb3160 << 1 | lsb60; 1879 var b25 = ~d; 1880 var lsb61 = c & 1 & (b25 & 1); 1881 var msb3161 = c >>> 1 & b25 >>> 1; 1882 var b26 = msb3161 << 1 | lsb61; 1883 var lsb62 = a37 & 1 | b26 & 1; 1884 var msb3162 = a37 >>> 1 | b26 >>> 1; 1885 var q20 = msb3162 << 1 | lsb62; 1886 var lsw80 = (a & 65535) + (q20 & 65535); 1887 var msw80 = (a >> 16) + (q20 >> 16) + (lsw80 >> 16); 1888 var x62 = msw80 << 16 | lsw80 & 65535; 1889 var lsw81 = (x61 & 65535) + 4189; 1890 var msw81 = (x61 >> 16) + (-10705) + (lsw81 >> 16); 1891 var y20 = msw81 << 16 | lsw81 & 65535; 1892 var lsw82 = (x62 & 65535) + (y20 & 65535); 1893 var msw82 = (x62 >> 16) + (y20 >> 16) + (lsw82 >> 16); 1894 var num20 = msw82 << 16 | lsw82 & 65535; 1895 var x63 = num20 << 5 | num20 >>> 27; 1896 var lsw83 = (x63 & 65535) + (b & 65535); 1897 var msw83 = (x63 >> 16) + (b >> 16) + (lsw83 >> 16); 1898 a = msw83 << 16 | lsw83 & 65535; 1899 var x64 = x[i + 10]; 1900 var lsb63 = a & 1 & (c & 1); 1901 var msb3163 = a >>> 1 & c >>> 1; 1902 var a38 = msb3163 << 1 | lsb63; 1903 var b27 = ~c; 1904 var lsb64 = b & 1 & (b27 & 1); 1905 var msb3164 = b >>> 1 & b27 >>> 1; 1906 var b28 = msb3164 << 1 | lsb64; 1907 var lsb65 = a38 & 1 | b28 & 1; 1908 var msb3165 = a38 >>> 1 | b28 >>> 1; 1909 var q21 = msb3165 << 1 | lsb65; 1910 var lsw84 = (d & 65535) + (q21 & 65535); 1911 var msw84 = (d >> 16) + (q21 >> 16) + (lsw84 >> 16); 1912 var x65 = msw84 << 16 | lsw84 & 65535; 1913 var lsw85 = (x64 & 65535) + 5203; 1914 var msw85 = (x64 >> 16) + 580 + (lsw85 >> 16); 1915 var y21 = msw85 << 16 | lsw85 & 65535; 1916 var lsw86 = (x65 & 65535) + (y21 & 65535); 1917 var msw86 = (x65 >> 16) + (y21 >> 16) + (lsw86 >> 16); 1918 var num21 = msw86 << 16 | lsw86 & 65535; 1919 var x66 = num21 << 9 | num21 >>> 23; 1920 var lsw87 = (x66 & 65535) + (a & 65535); 1921 var msw87 = (x66 >> 16) + (a >> 16) + (lsw87 >> 16); 1922 d = msw87 << 16 | lsw87 & 65535; 1923 var x67 = x[i + 15]; 1924 var lsb66 = d & 1 & (b & 1); 1925 var msb3166 = d >>> 1 & b >>> 1; 1926 var a39 = msb3166 << 1 | lsb66; 1927 var b29 = ~b; 1928 var lsb67 = a & 1 & (b29 & 1); 1929 var msb3167 = a >>> 1 & b29 >>> 1; 1930 var b30 = msb3167 << 1 | lsb67; 1931 var lsb68 = a39 & 1 | b30 & 1; 1932 var msb3168 = a39 >>> 1 | b30 >>> 1; 1933 var q22 = msb3168 << 1 | lsb68; 1934 var lsw88 = (c & 65535) + (q22 & 65535); 1935 var msw88 = (c >> 16) + (q22 >> 16) + (lsw88 >> 16); 1936 var x68 = msw88 << 16 | lsw88 & 65535; 1937 var lsw89 = (x67 & 65535) + 59009; 1938 var msw89 = (x67 >> 16) + (-10079) + (lsw89 >> 16); 1939 var y22 = msw89 << 16 | lsw89 & 65535; 1940 var lsw90 = (x68 & 65535) + (y22 & 65535); 1941 var msw90 = (x68 >> 16) + (y22 >> 16) + (lsw90 >> 16); 1942 var num22 = msw90 << 16 | lsw90 & 65535; 1943 var x69 = num22 << 14 | num22 >>> 18; 1944 var lsw91 = (x69 & 65535) + (d & 65535); 1945 var msw91 = (x69 >> 16) + (d >> 16) + (lsw91 >> 16); 1946 c = msw91 << 16 | lsw91 & 65535; 1947 var x70 = x[i + 4]; 1948 var lsb69 = c & 1 & (a & 1); 1949 var msb3169 = c >>> 1 & a >>> 1; 1950 var a40 = msb3169 << 1 | lsb69; 1951 var b31 = ~a; 1952 var lsb70 = d & 1 & (b31 & 1); 1953 var msb3170 = d >>> 1 & b31 >>> 1; 1954 var b32 = msb3170 << 1 | lsb70; 1955 var lsb71 = a40 & 1 | b32 & 1; 1956 var msb3171 = a40 >>> 1 | b32 >>> 1; 1957 var q23 = msb3171 << 1 | lsb71; 1958 var lsw92 = (b & 65535) + (q23 & 65535); 1959 var msw92 = (b >> 16) + (q23 >> 16) + (lsw92 >> 16); 1960 var x71 = msw92 << 16 | lsw92 & 65535; 1961 var lsw93 = (x70 & 65535) + 64456; 1962 var msw93 = (x70 >> 16) + (-6189) + (lsw93 >> 16); 1963 var y23 = msw93 << 16 | lsw93 & 65535; 1964 var lsw94 = (x71 & 65535) + (y23 & 65535); 1965 var msw94 = (x71 >> 16) + (y23 >> 16) + (lsw94 >> 16); 1966 var num23 = msw94 << 16 | lsw94 & 65535; 1967 var x72 = num23 << 20 | num23 >>> 12; 1968 var lsw95 = (x72 & 65535) + (c & 65535); 1969 var msw95 = (x72 >> 16) + (c >> 16) + (lsw95 >> 16); 1970 b = msw95 << 16 | lsw95 & 65535; 1971 var x73 = x[i + 9]; 1972 var lsb72 = b & 1 & (d & 1); 1973 var msb3172 = b >>> 1 & d >>> 1; 1974 var a41 = msb3172 << 1 | lsb72; 1975 var b33 = ~d; 1976 var lsb73 = c & 1 & (b33 & 1); 1977 var msb3173 = c >>> 1 & b33 >>> 1; 1978 var b34 = msb3173 << 1 | lsb73; 1979 var lsb74 = a41 & 1 | b34 & 1; 1980 var msb3174 = a41 >>> 1 | b34 >>> 1; 1981 var q24 = msb3174 << 1 | lsb74; 1982 var lsw96 = (a & 65535) + (q24 & 65535); 1983 var msw96 = (a >> 16) + (q24 >> 16) + (lsw96 >> 16); 1984 var x74 = msw96 << 16 | lsw96 & 65535; 1985 var lsw97 = (x73 & 65535) + 52710; 1986 var msw97 = (x73 >> 16) + 8673 + (lsw97 >> 16); 1987 var y24 = msw97 << 16 | lsw97 & 65535; 1988 var lsw98 = (x74 & 65535) + (y24 & 65535); 1989 var msw98 = (x74 >> 16) + (y24 >> 16) + (lsw98 >> 16); 1990 var num24 = msw98 << 16 | lsw98 & 65535; 1991 var x75 = num24 << 5 | num24 >>> 27; 1992 var lsw99 = (x75 & 65535) + (b & 65535); 1993 var msw99 = (x75 >> 16) + (b >> 16) + (lsw99 >> 16); 1994 a = msw99 << 16 | lsw99 & 65535;
1995 var x76 = x[i + 14]; 1996 var lsb75 = a & 1 & (c & 1); 1997 var msb3175 = a >>> 1 & c >>> 1; 1998 var a42 = msb3175 << 1 | lsb75; 1999 var b35 = ~c; 2000 var lsb76 = b & 1 & (b35 & 1); 2001 var msb3176 = b >>> 1 & b35 >>> 1; 2002 var b36 = msb3176 << 1 | lsb76; 2003 var lsb77 = a42 & 1 | b36 & 1; 2004 var msb3177 = a42 >>> 1 | b36 >>> 1; 2005 var q25 = msb3177 << 1 | lsb77; 2006 var lsw100 = (d & 65535) + (q25 & 65535); 2007 var msw100 = (d >> 16) + (q25 >> 16) + (lsw100 >> 16); 2008 var x77 = msw100 << 16 | lsw100 & 65535; 2009 var lsw101 = (x76 & 65535) + 2006; 2010 var msw101 = (x76 >> 16) + (-15561) + (lsw101 >> 16); 2011 var y25 = msw101 << 16 | lsw101 & 65535; 2012 var lsw102 = (x77 & 65535) + (y25 & 65535); 2013 var msw102 = (x77 >> 16) + (y25 >> 16) + (lsw102 >> 16); 2014 var num25 = msw102 << 16 | lsw102 & 65535; 2015 var x78 = num25 << 9 | num25 >>> 23; 2016 var lsw103 = (x78 & 65535) + (a & 65535); 2017 var msw103 = (x78 >> 16) + (a >> 16) + (lsw103 >> 16); 2018 d = msw103 << 16 | lsw103 & 65535; 2019 var x79 = x[i + 3]; 2020 var lsb78 = d & 1 & (b & 1); 2021 var msb3178 = d >>> 1 & b >>> 1; 2022 var a43 = msb3178 << 1 | lsb78; 2023 var b37 = ~b; 2024 var lsb79 = a & 1 & (b37 & 1); 2025 var msb3179 = a >>> 1 & b37 >>> 1; 2026 var b38 = msb3179 << 1 | lsb79; 2027 var lsb80 = a43 & 1 | b38 & 1; 2028 var msb3180 = a43 >>> 1 | b38 >>> 1; 2029 var q26 = msb3180 << 1 | lsb80; 2030 var lsw104 = (c & 65535) + (q26 & 65535); 2031 var msw104 = (c >> 16) + (q26 >> 16) + (lsw104 >> 16); 2032 var x80 = msw104 << 16 | lsw104 & 65535; 2033 var lsw105 = (x79 & 65535) + 3463; 2034 var msw105 = (x79 >> 16) + (-2859) + (lsw105 >> 16); 2035 var y26 = msw105 << 16 | lsw105 & 65535; 2036 var lsw106 = (x80 & 65535) + (y26 & 65535); 2037 var msw106 = (x80 >> 16) + (y26 >> 16) + (lsw106 >> 16); 2038 var num26 = msw106 << 16 | lsw106 & 65535; 2039 var x81 = num26 << 14 | num26 >>> 18; 2040 var lsw107 = (x81 & 65535) + (d & 65535); 2041 var msw107 = (x81 >> 16) + (d >> 16) + (lsw107 >> 16); 2042 c = msw107 << 16 | lsw107 & 65535; 2043 var x82 = x[i + 8]; 2044 var lsb81 = c & 1 & (a & 1); 2045 var msb3181 = c >>> 1 & a >>> 1; 2046 var a44 = msb3181 << 1 | lsb81; 2047 var b39 = ~a; 2048 var lsb82 = d & 1 & (b39 & 1); 2049 var msb3182 = d >>> 1 & b39 >>> 1; 2050 var b40 = msb3182 << 1 | lsb82; 2051 var lsb83 = a44 & 1 | b40 & 1; 2052 var msb3183 = a44 >>> 1 | b40 >>> 1; 2053 var q27 = msb3183 << 1 | lsb83; 2054 var lsw108 = (b & 65535) + (q27 & 65535); 2055 var msw108 = (b >> 16) + (q27 >> 16) + (lsw108 >> 16); 2056 var x83 = msw108 << 16 | lsw108 & 65535; 2057 var lsw109 = (x82 & 65535) + 5357; 2058 var msw109 = (x82 >> 16) + 17754 + (lsw109 >> 16); 2059 var y27 = msw109 << 16 | lsw109 & 65535; 2060 var lsw110 = (x83 & 65535) + (y27 & 65535); 2061 var msw110 = (x83 >> 16) + (y27 >> 16) + (lsw110 >> 16); 2062 var num27 = msw110 << 16 | lsw110 & 65535; 2063 var x84 = num27 << 20 | num27 >>> 12; 2064 var lsw111 = (x84 & 65535) + (c & 65535); 2065 var msw111 = (x84 >> 16) + (c >> 16) + (lsw111 >> 16); 2066 b = msw111 << 16 | lsw111 & 65535; 2067 var x85 = x[i + 13]; 2068 var lsb84 = b & 1 & (d & 1); 2069 var msb3184 = b >>> 1 & d >>> 1; 2070 var a45 = msb3184 << 1 | lsb84; 2071 var b41 = ~d; 2072 var lsb85 = c & 1 & (b41 & 1); 2073 var msb3185 = c >>> 1 & b41 >>> 1; 2074 var b42 = msb3185 << 1 | lsb85; 2075 var lsb86 = a45 & 1 | b42 & 1; 2076 var msb3186 = a45 >>> 1 | b42 >>> 1; 2077 var q28 = msb3186 << 1 | lsb86; 2078 var lsw112 = (a & 65535) + (q28 & 65535); 2079 var msw112 = (a >> 16) + (q28 >> 16) + (lsw112 >> 16); 2080 var x86 = msw112 << 16 | lsw112 & 65535; 2081 var lsw113 = (x85 & 65535) + 59653; 2082 var msw113 = (x85 >> 16) + (-22045) + (lsw113 >> 16); 2083 var y28 = msw113 << 16 | lsw113 & 65535; 2084 var lsw114 = (x86 & 65535) + (y28 & 65535); 2085 var msw114 = (x86 >> 16) + (y28 >> 16) + (lsw114 >> 16); 2086 var num28 = msw114 << 16 | lsw114 & 65535; 2087 var x87 = num28 << 5 | num28 >>> 27; 2088 var lsw115 = (x87 & 65535) + (b & 65535); 2089 var msw115 = (x87 >> 16) + (b >> 16) + (lsw115 >> 16); 2090 a = msw115 << 16 | lsw115 & 65535; 2091 var x88 = x[i + 2]; 2092 var lsb87 = a & 1 & (c & 1); 2093 var msb3187 = a >>> 1 & c >>> 1; 2094 var a46 = msb3187 << 1 | lsb87; 2095 var b43 = ~c; 2096 var lsb88 = b & 1 & (b43 & 1); 2097 var msb3188 = b >>> 1 & b43 >>> 1; 2098 var b44 = msb3188 << 1 | lsb88; 2099 var lsb89 = a46 & 1 | b44 & 1; 2100 var msb3189 = a46 >>> 1 | b44 >>> 1; 2101 var q29 = msb3189 << 1 | lsb89; 2102 var lsw116 = (d & 65535) + (q29 & 65535); 2103 var msw116 = (d >> 16) + (q29 >> 16) + (lsw116 >> 16); 2104 var x89 = msw116 << 16 | lsw116 & 65535; 2105 var lsw117 = (x88 & 65535) + 41976; 2106 var msw117 = (x88 >> 16) + (-785) + (lsw117 >> 16); 2107 var y29 = msw117 << 16 | lsw117 & 65535; 2108 var lsw118 = (x89 & 65535) + (y29 & 65535); 2109 var msw118 = (x89 >> 16) + (y29 >> 16) + (lsw118 >> 16); 2110 var num29 = msw118 << 16 | lsw118 & 65535; 2111 var x90 = num29 << 9 | num29 >>> 23; 2112 var lsw119 = (x90 & 65535) + (a & 65535); 2113 var msw119 = (x90 >> 16) + (a >> 16) + (lsw119 >> 16); 2114 d = msw119 << 16 | lsw119 & 65535; 2115 var x91 = x[i + 7]; 2116 var lsb90 = d & 1 & (b & 1); 2117 var msb3190 = d >>> 1 & b >>> 1; 2118 var a47 = msb3190 << 1 | lsb90; 2119 var b45 = ~b; 2120 var lsb91 = a & 1 & (b45 & 1); 2121 var msb3191 = a >>> 1 & b45 >>> 1; 2122 var b46 = msb3191 << 1 | lsb91; 2123 var lsb92 = a47 & 1 | b46 & 1; 2124 var msb3192 = a47 >>> 1 | b46 >>> 1; 2125 var q30 = msb3192 << 1 | lsb92; 2126 var lsw120 = (c & 65535) + (q30 & 65535); 2127 var msw120 = (c >> 16) + (q30 >> 16) + (lsw120 >> 16); 2128 var x92 = msw120 << 16 | lsw120 & 65535; 2129 var lsw121 = (x91 & 65535) + 729; 2130 var msw121 = (x91 >> 16) + 26479 + (lsw121 >> 16); 2131 var y30 = msw121 << 16 | lsw121 & 65535; 2132 var lsw122 = (x92 & 65535) + (y30 & 65535); 2133 var msw122 = (x92 >> 16) + (y30 >> 16) + (lsw122 >> 16); 2134 var num30 = msw122 << 16 | lsw122 & 65535; 2135 var x93 = num30 << 14 | num30 >>> 18; 2136 var lsw123 = (x93 & 65535) + (d & 65535); 2137 var msw123 = (x93 >> 16) + (d >> 16) + (lsw123 >> 16); 2138 c = msw123 << 16 | lsw123 & 65535; 2139 var x94 = x[i + 12]; 2140 var lsb93 = c & 1 & (a & 1); 2141 var msb3193 = c >>> 1 & a >>> 1; 2142 var a48 = msb3193 << 1 | lsb93; 2143 var b47 = ~a; 2144 var lsb94 = d & 1 & (b47 & 1); 2145 var msb3194 = d >>> 1 & b47 >>> 1; 2146 var b48 = msb3194 << 1 | lsb94; 2147 var lsb95 = a48 & 1 | b48 & 1; 2148 var msb3195 = a48 >>> 1 | b48 >>> 1; 2149 var q31 = msb3195 << 1 | lsb95; 2150 var lsw124 = (b & 65535) + (q31 & 65535); 2151 var msw124 = (b >> 16) + (q31 >> 16) + (lsw124 >> 16); 2152 var x95 = msw124 << 16 | lsw124 & 65535; 2153 var lsw125 = (x94 & 65535) + 19594; 2154 var msw125 = (x94 >> 16) + (-29398) + (lsw125 >> 16); 2155 var y31 = msw125 << 16 | lsw125 & 65535; 2156 var lsw126 = (x95 & 65535) + (y31 & 65535); 2157 var msw126 = (x95 >> 16) + (y31 >> 16) + (lsw126 >> 16); 2158 var num31 = msw126 << 16 | lsw126 & 65535; 2159 var x96 = num31 << 20 | num31 >>> 12; 2160 var lsw127 = (x96 & 65535) + (c & 65535); 2161 var msw127 = (x96 >> 16) + (c >> 16) + (lsw127 >> 16); 2162 b = msw127 << 16 | lsw127 & 65535; 2163 var x97 = x[i + 5]; 2164 var lsb96 = b & 1 ^ c & 1; 2165 var msb3196 = b >>> 1 ^ c >>> 1; 2166 var a49 = msb3196 << 1 | lsb96; 2167 var lsb97 = a49 & 1 ^ d & 1; 2168 var msb3197 = a49 >>> 1 ^ d >>> 1; 2169 var q32 = msb3197 << 1 | lsb97; 2170 var lsw128 = (a & 65535) + (q32 & 65535); 2171 var msw128 = (a >> 16) + (q32 >> 16) + (lsw128 >> 16); 2172 var x98 = msw128 << 16 | lsw128 & 65535; 2173 var lsw129 = (x97 & 65535) + 14658; 2174 var msw129 = (x97 >> 16) + (-6) + (lsw129 >> 16); 2175 var y32 = msw129 << 16 | lsw129 & 65535; 2176 var lsw130 = (x98 & 65535) + (y32 & 65535); 2177 var msw130 = (x98 >> 16) + (y32 >> 16) + (lsw130 >> 16); 2178 var num32 = msw130 << 16 | lsw130 & 65535; 2179 var x99 = num32 << 4 | num32 >>> 28; 2180 var lsw131 = (x99 & 65535) + (b & 65535); 2181 var msw131 = (x99 >> 16) + (b >> 16) + (lsw131 >> 16); 2182 a = msw131 << 16 | lsw131 & 65535; 2183 var x100 = x[i + 8]; 2184 var lsb98 = a & 1 ^ b & 1; 2185 var msb3198 = a >>> 1 ^ b >>> 1; 2186 var a50 = msb3198 << 1 | lsb98; 2187 var lsb99 = a50 & 1 ^ c & 1; 2188 var msb3199 = a50 >>> 1 ^ c >>> 1; 2189 var q33 = msb3199 << 1 | lsb99; 2190 var lsw132 = (d & 65535) + (q33 & 65535); 2191 var msw132 = (d >> 16) + (q33 >> 16) + (lsw132 >> 16); 2192 var x101 = msw132 << 16 | lsw132 & 65535; 2193 var lsw133 = (x100 & 65535) + 63105; 2194 var msw133 = (x100 >> 16) + (-30863) + (lsw133 >> 16); 2195 var y33 = msw133 << 16 | lsw133 & 65535; 2196 var lsw134 = (x101 & 65535) + (y33 & 65535); 2197 var msw134 = (x101 >> 16) + (y33 >> 16) + (lsw134 >> 16); 2198 var num33 = msw134 << 16 | lsw134 & 65535; 2199 var x102 = num33 << 11 | num33 >>> 21; 2200 var lsw135 = (x102 & 65535) + (a & 65535); 2201 var msw135 = (x102 >> 16) + (a >> 16) + (lsw135 >> 16); 2202 d = msw135 << 16 | lsw135 & 65535; 2203 var x103 = x[i + 11]; 2204 var lsb100 = d & 1 ^ a & 1; 2205 var msb31100 = d >>> 1 ^ a >>> 1; 2206 var a51 = msb31100 << 1 | lsb100; 2207 var lsb101 = a51 & 1 ^ b & 1; 2208 var msb31101 = a51 >>> 1 ^ b >>> 1; 2209 var q34 = msb31101 << 1 | lsb101; 2210 var lsw136 = (c & 65535) + (q34 & 65535); 2211 var msw136 = (c >> 16) + (q34 >> 16) + (lsw136 >> 16); 2212 var x104 = msw136 << 16 | lsw136 & 65535; 2213 var lsw137 = (x103 & 65535) + 24866; 2214 var msw137 = (x103 >> 16) + 28061 + (lsw137 >> 16); 2215 var y34 = msw137 << 16 | lsw137 & 65535; 2216 var lsw138 = (x104 & 65535) + (y34 & 65535); 2217 var msw138 = (x104 >> 16) + (y34 >> 16) + (lsw138 >> 16); 2218 var num34 = msw138 << 16 | lsw138 & 65535; 2219 var x105 = num34 << 16 | num34 >>> 16; 2220 var lsw139 = (x105 & 65535) + (d & 65535); 2221 var msw139 = (x105 >> 16) + (d >> 16) + (lsw139 >> 16); 2222 c = msw139 << 16 | lsw139 & 65535; 2223 var x106 = x[i + 14]; 2224 var lsb102 = c & 1 ^ d & 1; 2225 var msb31102 = c >>> 1 ^ d >>> 1; 2226 var a52 = msb31102 << 1 | lsb102; 2227 var lsb103 = a52 & 1 ^ a & 1; 2228 var msb31103 = a52 >>> 1 ^ a >>> 1; 2229 var q35 = msb31103 << 1 | lsb103; 2230 var lsw140 = (b & 65535) + (q35 & 65535); 2231 var msw140 = (b >> 16) + (q35 >> 16) + (lsw140 >> 16); 2232 var x107 = msw140 << 16 | lsw140 & 65535; 2233 var lsw141 = (x106 & 65535) + 14348; 2234 var msw141 = (x106 >> 16) + (-539) + (lsw141 >> 16); 2235 var y35 = msw141 << 16 | lsw141 & 65535; 2236 var lsw142 = (x107 & 65535) + (y35 & 65535); 2237 var msw142 = (x107 >> 16) + (y35 >> 16) + (lsw142 >> 16); 2238 var num35 = msw142 << 16 | lsw142 & 65535; 2239 var x108 = num35 << 23 | num35 >>> 9; 2240 var lsw143 = (x108 & 65535) + (c & 65535); 2241 var msw143 = (x108 >> 16) + (c >> 16) + (lsw143 >> 16); 2242 b = msw143 << 16 | lsw143 & 65535; 2243 var x109 = x[i + 1]; 2244 var lsb104 = b & 1 ^ c & 1; 2245 var msb31104 = b >>> 1 ^ c >>> 1; 2246 var a53 = msb31104 << 1 | lsb104; 2247 var lsb105 = a53 & 1 ^ d & 1; 2248 var msb31105 = a53 >>> 1 ^ d >>> 1; 2249 var q36 = msb31105 << 1 | lsb105; 2250 var lsw144 = (a & 65535) + (q36 & 65535); 2251 var msw144 = (a >> 16) + (q36 >> 16) + (lsw144 >> 16); 2252 var x110 = msw144 << 16 | lsw144 & 65535; 2253 var lsw145 = (x109 & 65535) + 59972; 2254 var msw145 = (x109 >> 16) + (-23362) + (lsw145 >> 16); 2255 var y36 = msw145 << 16 | lsw145 & 65535; 2256 var lsw146 = (x110 & 65535) + (y36 & 65535); 2257 var msw146 = (x110 >> 16) + (y36 >> 16) + (lsw146 >> 16); 2258 var num36 = msw146 << 16 | lsw146 & 65535; 2259 var x111 = num36 << 4 | num36 >>> 28; 2260 var lsw147 = (x111 & 65535) + (b & 65535); 2261 var msw147 = (x111 >> 16) + (b >> 16) + (lsw147 >> 16); 2262 a = msw147 << 16 | lsw147 & 65535; 2263 var x112 = x[i + 4]; 2264 var lsb106 = a & 1 ^ b & 1; 2265 var msb31106 = a >>> 1 ^ b >>> 1; 2266 var a54 = msb31106 << 1 | lsb106; 2267 var lsb107 = a54 & 1 ^ c & 1; 2268 var msb31107 = a54 >>> 1 ^ c >>> 1;
2269 var q37 = msb31107 << 1 | lsb107; 2270 var lsw148 = (d & 65535) + (q37 & 65535); 2271 var msw148 = (d >> 16) + (q37 >> 16) + (lsw148 >> 16); 2272 var x113 = msw148 << 16 | lsw148 & 65535; 2273 var lsw149 = (x112 & 65535) + 53161; 2274 var msw149 = (x112 >> 16) + 19422 + (lsw149 >> 16); 2275 var y37 = msw149 << 16 | lsw149 & 65535; 2276 var lsw150 = (x113 & 65535) + (y37 & 65535); 2277 var msw150 = (x113 >> 16) + (y37 >> 16) + (lsw150 >> 16); 2278 var num37 = msw150 << 16 | lsw150 & 65535; 2279 var x114 = num37 << 11 | num37 >>> 21; 2280 var lsw151 = (x114 & 65535) + (a & 65535); 2281 var msw151 = (x114 >> 16) + (a >> 16) + (lsw151 >> 16); 2282 d = msw151 << 16 | lsw151 & 65535; 2283 var x115 = x[i + 7]; 2284 var lsb108 = d & 1 ^ a & 1; 2285 var msb31108 = d >>> 1 ^ a >>> 1; 2286 var a55 = msb31108 << 1 | lsb108; 2287 var lsb109 = a55 & 1 ^ b & 1; 2288 var msb31109 = a55 >>> 1 ^ b >>> 1; 2289 var q38 = msb31109 << 1 | lsb109; 2290 var lsw152 = (c & 65535) + (q38 & 65535); 2291 var msw152 = (c >> 16) + (q38 >> 16) + (lsw152 >> 16); 2292 var x116 = msw152 << 16 | lsw152 & 65535; 2293 var lsw153 = (x115 & 65535) + 19296; 2294 var msw153 = (x115 >> 16) + (-2373) + (lsw153 >> 16); 2295 var y38 = msw153 << 16 | lsw153 & 65535; 2296 var lsw154 = (x116 & 65535) + (y38 & 65535); 2297 var msw154 = (x116 >> 16) + (y38 >> 16) + (lsw154 >> 16); 2298 var num38 = msw154 << 16 | lsw154 & 65535; 2299 var x117 = num38 << 16 | num38 >>> 16; 2300 var lsw155 = (x117 & 65535) + (d & 65535); 2301 var msw155 = (x117 >> 16) + (d >> 16) + (lsw155 >> 16); 2302 c = msw155 << 16 | lsw155 & 65535; 2303 var x118 = x[i + 10]; 2304 var lsb110 = c & 1 ^ d & 1; 2305 var msb31110 = c >>> 1 ^ d >>> 1; 2306 var a56 = msb31110 << 1 | lsb110; 2307 var lsb111 = a56 & 1 ^ a & 1; 2308 var msb31111 = a56 >>> 1 ^ a >>> 1; 2309 var q39 = msb31111 << 1 | lsb111; 2310 var lsw156 = (b & 65535) + (q39 & 65535); 2311 var msw156 = (b >> 16) + (q39 >> 16) + (lsw156 >> 16); 2312 var x119 = msw156 << 16 | lsw156 & 65535; 2313 var lsw157 = (x118 & 65535) + 48240; 2314 var msw157 = (x118 >> 16) + (-16705) + (lsw157 >> 16); 2315 var y39 = msw157 << 16 | lsw157 & 65535; 2316 var lsw158 = (x119 & 65535) + (y39 & 65535); 2317 var msw158 = (x119 >> 16) + (y39 >> 16) + (lsw158 >> 16); 2318 var num39 = msw158 << 16 | lsw158 & 65535; 2319 var x120 = num39 << 23 | num39 >>> 9; 2320 var lsw159 = (x120 & 65535) + (c & 65535); 2321 var msw159 = (x120 >> 16) + (c >> 16) + (lsw159 >> 16); 2322 b = msw159 << 16 | lsw159 & 65535; 2323 var x121 = x[i + 13]; 2324 var lsb112 = b & 1 ^ c & 1; 2325 var msb31112 = b >>> 1 ^ c >>> 1; 2326 var a57 = msb31112 << 1 | lsb112; 2327 var lsb113 = a57 & 1 ^ d & 1; 2328 var msb31113 = a57 >>> 1 ^ d >>> 1; 2329 var q40 = msb31113 << 1 | lsb113; 2330 var lsw160 = (a & 65535) + (q40 & 65535); 2331 var msw160 = (a >> 16) + (q40 >> 16) + (lsw160 >> 16); 2332 var x122 = msw160 << 16 | lsw160 & 65535; 2333 var lsw161 = (x121 & 65535) + 32454; 2334 var msw161 = (x121 >> 16) + 10395 + (lsw161 >> 16); 2335 var y40 = msw161 << 16 | lsw161 & 65535; 2336 var lsw162 = (x122 & 65535) + (y40 & 65535); 2337 var msw162 = (x122 >> 16) + (y40 >> 16) + (lsw162 >> 16); 2338 var num40 = msw162 << 16 | lsw162 & 65535; 2339 var x123 = num40 << 4 | num40 >>> 28; 2340 var lsw163 = (x123 & 65535) + (b & 65535); 2341 var msw163 = (x123 >> 16) + (b >> 16) + (lsw163 >> 16); 2342 a = msw163 << 16 | lsw163 & 65535; 2343 var x124 = x[i]; 2344 var lsb114 = a & 1 ^ b & 1; 2345 var msb31114 = a >>> 1 ^ b >>> 1; 2346 var a58 = msb31114 << 1 | lsb114; 2347 var lsb115 = a58 & 1 ^ c & 1; 2348 var msb31115 = a58 >>> 1 ^ c >>> 1; 2349 var q41 = msb31115 << 1 | lsb115; 2350 var lsw164 = (d & 65535) + (q41 & 65535); 2351 var msw164 = (d >> 16) + (q41 >> 16) + (lsw164 >> 16); 2352 var x125 = msw164 << 16 | lsw164 & 65535; 2353 var lsw165 = (x124 & 65535) + 10234; 2354 var msw165 = (x124 >> 16) + (-5471) + (lsw165 >> 16); 2355 var y41 = msw165 << 16 | lsw165 & 65535; 2356 var lsw166 = (x125 & 65535) + (y41 & 65535); 2357 var msw166 = (x125 >> 16) + (y41 >> 16) + (lsw166 >> 16); 2358 var num41 = msw166 << 16 | lsw166 & 65535; 2359 var x126 = num41 << 11 | num41 >>> 21; 2360 var lsw167 = (x126 & 65535) + (a & 65535); 2361 var msw167 = (x126 >> 16) + (a >> 16) + (lsw167 >> 16); 2362 d = msw167 << 16 | lsw167 & 65535; 2363 var x127 = x[i + 3]; 2364 var lsb116 = d & 1 ^ a & 1; 2365 var msb31116 = d >>> 1 ^ a >>> 1; 2366 var a59 = msb31116 << 1 | lsb116; 2367 var lsb117 = a59 & 1 ^ b & 1; 2368 var msb31117 = a59 >>> 1 ^ b >>> 1; 2369 var q42 = msb31117 << 1 | lsb117; 2370 var lsw168 = (c & 65535) + (q42 & 65535); 2371 var msw168 = (c >> 16) + (q42 >> 16) + (lsw168 >> 16); 2372 var x128 = msw168 << 16 | lsw168 & 65535; 2373 var lsw169 = (x127 & 65535) + 12421; 2374 var msw169 = (x127 >> 16) + (-11025) + (lsw169 >> 16); 2375 var y42 = msw169 << 16 | lsw169 & 65535; 2376 var lsw170 = (x128 & 65535) + (y42 & 65535); 2377 var msw170 = (x128 >> 16) + (y42 >> 16) + (lsw170 >> 16); 2378 var num42 = msw170 << 16 | lsw170 & 65535; 2379 var x129 = num42 << 16 | num42 >>> 16; 2380 var lsw171 = (x129 & 65535) + (d & 65535); 2381 var msw171 = (x129 >> 16) + (d >> 16) + (lsw171 >> 16); 2382 c = msw171 << 16 | lsw171 & 65535; 2383 var x130 = x[i + 6]; 2384 var lsb118 = c & 1 ^ d & 1; 2385 var msb31118 = c >>> 1 ^ d >>> 1; 2386 var a60 = msb31118 << 1 | lsb118; 2387 var lsb119 = a60 & 1 ^ a & 1; 2388 var msb31119 = a60 >>> 1 ^ a >>> 1; 2389 var q43 = msb31119 << 1 | lsb119; 2390 var lsw172 = (b & 65535) + (q43 & 65535); 2391 var msw172 = (b >> 16) + (q43 >> 16) + (lsw172 >> 16); 2392 var x131 = msw172 << 16 | lsw172 & 65535; 2393 var lsw173 = (x130 & 65535) + 7429; 2394 var msw173 = (x130 >> 16) + 1160 + (lsw173 >> 16); 2395 var y43 = msw173 << 16 | lsw173 & 65535; 2396 var lsw174 = (x131 & 65535) + (y43 & 65535); 2397 var msw174 = (x131 >> 16) + (y43 >> 16) + (lsw174 >> 16); 2398 var num43 = msw174 << 16 | lsw174 & 65535; 2399 var x132 = num43 << 23 | num43 >>> 9; 2400 var lsw175 = (x132 & 65535) + (c & 65535); 2401 var msw175 = (x132 >> 16) + (c >> 16) + (lsw175 >> 16); 2402 b = msw175 << 16 | lsw175 & 65535; 2403 var x133 = x[i + 9]; 2404 var lsb120 = b & 1 ^ c & 1; 2405 var msb31120 = b >>> 1 ^ c >>> 1; 2406 var a61 = msb31120 << 1 | lsb120; 2407 var lsb121 = a61 & 1 ^ d & 1; 2408 var msb31121 = a61 >>> 1 ^ d >>> 1; 2409 var q44 = msb31121 << 1 | lsb121; 2410 var lsw176 = (a & 65535) + (q44 & 65535); 2411 var msw176 = (a >> 16) + (q44 >> 16) + (lsw176 >> 16); 2412 var x134 = msw176 << 16 | lsw176 & 65535; 2413 var lsw177 = (x133 & 65535) + 53305; 2414 var msw177 = (x133 >> 16) + (-9772) + (lsw177 >> 16); 2415 var y44 = msw177 << 16 | lsw177 & 65535; 2416 var lsw178 = (x134 & 65535) + (y44 & 65535); 2417 var msw178 = (x134 >> 16) + (y44 >> 16) + (lsw178 >> 16); 2418 var num44 = msw178 << 16 | lsw178 & 65535; 2419 var x135 = num44 << 4 | num44 >>> 28; 2420 var lsw179 = (x135 & 65535) + (b & 65535); 2421 var msw179 = (x135 >> 16) + (b >> 16) + (lsw179 >> 16); 2422 a = msw179 << 16 | lsw179 & 65535; 2423 var x136 = x[i + 12]; 2424 var lsb122 = a & 1 ^ b & 1; 2425 var msb31122 = a >>> 1 ^ b >>> 1; 2426 var a62 = msb31122 << 1 | lsb122; 2427 var lsb123 = a62 & 1 ^ c & 1; 2428 var msb31123 = a62 >>> 1 ^ c >>> 1; 2429 var q45 = msb31123 << 1 | lsb123; 2430 var lsw180 = (d & 65535) + (q45 & 65535); 2431 var msw180 = (d >> 16) + (q45 >> 16) + (lsw180 >> 16); 2432 var x137 = msw180 << 16 | lsw180 & 65535; 2433 var lsw181 = (x136 & 65535) + 39397; 2434 var msw181 = (x136 >> 16) + (-6437) + (lsw181 >> 16); 2435 var y45 = msw181 << 16 | lsw181 & 65535; 2436 var lsw182 = (x137 & 65535) + (y45 & 65535); 2437 var msw182 = (x137 >> 16) + (y45 >> 16) + (lsw182 >> 16); 2438 var num45 = msw182 << 16 | lsw182 & 65535; 2439 var x138 = num45 << 11 | num45 >>> 21; 2440 var lsw183 = (x138 & 65535) + (a & 65535); 2441 var msw183 = (x138 >> 16) + (a >> 16) + (lsw183 >> 16); 2442 d = msw183 << 16 | lsw183 & 65535; 2443 var x139 = x[i + 15]; 2444 var lsb124 = d & 1 ^ a & 1; 2445 var msb31124 = d >>> 1 ^ a >>> 1; 2446 var a63 = msb31124 << 1 | lsb124; 2447 var lsb125 = a63 & 1 ^ b & 1; 2448 var msb31125 = a63 >>> 1 ^ b >>> 1; 2449 var q46 = msb31125 << 1 | lsb125; 2450 var lsw184 = (c & 65535) + (q46 & 65535); 2451 var msw184 = (c >> 16) + (q46 >> 16) + (lsw184 >> 16); 2452 var x140 = msw184 << 16 | lsw184 & 65535; 2453 var lsw185 = (x139 & 65535) + 31992;
2454 var msw185 = (x139 >> 16) + 8098 + (lsw185 >> 16); 2455 var y46 = msw185 << 16 | lsw185 & 65535; 2456 var lsw186 = (x140 & 65535) + (y46 & 65535); 2457 var msw186 = (x140 >> 16) + (y46 >> 16) + (lsw186 >> 16); 2458 var num46 = msw186 << 16 | lsw186 & 65535; 2459 var x141 = num46 << 16 | num46 >>> 16; 2460 var lsw187 = (x141 & 65535) + (d & 65535); 2461 var msw187 = (x141 >> 16) + (d >> 16) + (lsw187 >> 16); 2462 c = msw187 << 16 | lsw187 & 65535; 2463 var x142 = x[i + 2]; 2464 var lsb126 = c & 1 ^ d & 1; 2465 var msb31126 = c >>> 1 ^ d >>> 1; 2466 var a64 = msb31126 << 1 | lsb126; 2467 var lsb127 = a64 & 1 ^ a & 1; 2468 var msb31127 = a64 >>> 1 ^ a >>> 1; 2469 var q47 = msb31127 << 1 | lsb127; 2470 var lsw188 = (b & 65535) + (q47 & 65535); 2471 var msw188 = (b >> 16) + (q47 >> 16) + (lsw188 >> 16); 2472 var x143 = msw188 << 16 | lsw188 & 65535; 2473 var lsw189 = (x142 & 65535) + 22117; 2474 var msw189 = (x142 >> 16) + (-15188) + (lsw189 >> 16); 2475 var y47 = msw189 << 16 | lsw189 & 65535; 2476 var lsw190 = (x143 & 65535) + (y47 & 65535); 2477 var msw190 = (x143 >> 16) + (y47 >> 16) + (lsw190 >> 16); 2478 var num47 = msw190 << 16 | lsw190 & 65535; 2479 var x144 = num47 << 23 | num47 >>> 9; 2480 var lsw191 = (x144 & 65535) + (c & 65535); 2481 var msw191 = (x144 >> 16) + (c >> 16) + (lsw191 >> 16); 2482 b = msw191 << 16 | lsw191 & 65535; 2483 var x145 = x[i]; 2484 var b49 = ~d; 2485 var lsb128 = b & 1 | b49 & 1; 2486 var msb31128 = b >>> 1 | b49 >>> 1; 2487 var b50 = msb31128 << 1 | lsb128; 2488 var lsb129 = c & 1 ^ b50 & 1; 2489 var msb31129 = c >>> 1 ^ b50 >>> 1; 2490 var q48 = msb31129 << 1 | lsb129; 2491 var lsw192 = (a & 65535) + (q48 & 65535); 2492 var msw192 = (a >> 16) + (q48 >> 16) + (lsw192 >> 16); 2493 var x146 = msw192 << 16 | lsw192 & 65535; 2494 var lsw193 = (x145 & 65535) + 8772; 2495 var msw193 = (x145 >> 16) + (-3031) + (lsw193 >> 16); 2496 var y48 = msw193 << 16 | lsw193 & 65535; 2497 var lsw194 = (x146 & 65535) + (y48 & 65535); 2498 var msw194 = (x146 >> 16) + (y48 >> 16) + (lsw194 >> 16); 2499 var num48 = msw194 << 16 | lsw194 & 65535; 2500 var x147 = num48 << 6 | num48 >>> 26; 2501 var lsw195 = (x147 & 65535) + (b & 65535); 2502 var msw195 = (x147 >> 16) + (b >> 16) + (lsw195 >> 16); 2503 a = msw195 << 16 | lsw195 & 65535; 2504 var x148 = x[i + 7]; 2505 var b51 = ~c; 2506 var lsb130 = a & 1 | b51 & 1; 2507 var msb31130 = a >>> 1 | b51 >>> 1; 2508 var b52 = msb31130 << 1 | lsb130; 2509 var lsb131 = b & 1 ^ b52 & 1; 2510 var msb31131 = b >>> 1 ^ b52 >>> 1; 2511 var q49 = msb31131 << 1 | lsb131; 2512 var lsw196 = (d & 65535) + (q49 & 65535); 2513 var msw196 = (d >> 16) + (q49 >> 16) + (lsw196 >> 16); 2514 var x149 = msw196 << 16 | lsw196 & 65535; 2515 var lsw197 = (x148 & 65535) + 65431; 2516 var msw197 = (x148 >> 16) + 17194 + (lsw197 >> 16); 2517 var y49 = msw197 << 16 | lsw197 & 65535; 2518 var lsw198 = (x149 & 65535) + (y49 & 65535); 2519 var msw198 = (x149 >> 16) + (y49 >> 16) + (lsw198 >> 16); 2520 var num49 = msw198 << 16 | lsw198 & 65535; 2521 var x150 = num49 << 10 | num49 >>> 22; 2522 var lsw199 = (x150 & 65535) + (a & 65535); 2523 var msw199 = (x150 >> 16) + (a >> 16) + (lsw199 >> 16); 2524 d = msw199 << 16 | lsw199 & 65535; 2525 var x151 = x[i + 14]; 2526 var b53 = ~b; 2527 var lsb132 = d & 1 | b53 & 1; 2528 var msb31132 = d >>> 1 | b53 >>> 1; 2529 var b54 = msb31132 << 1 | lsb132; 2530 var lsb133 = a & 1 ^ b54 & 1; 2531 var msb31133 = a >>> 1 ^ b54 >>> 1; 2532 var q50 = msb31133 << 1 | lsb133; 2533 var lsw200 = (c & 65535) + (q50 & 65535); 2534 var msw200 = (c >> 16) + (q50 >> 16) + (lsw200 >> 16); 2535 var x152 = msw200 << 16 | lsw200 & 65535; 2536 var lsw201 = (x151 & 65535) + 9127; 2537 var msw201 = (x151 >> 16) + (-21612) + (lsw201 >> 16); 2538 var y50 = msw201 << 16 | lsw201 & 65535; 2539 var lsw202 = (x152 & 65535) + (y50 & 65535); 2540 var msw202 = (x152 >> 16) + (y50 >> 16) + (lsw202 >> 16); 2541 var num50 = msw202 << 16 | lsw202 & 65535; 2542 var x153 = num50 << 15 | num50 >>> 17; 2543 var lsw203 = (x153 & 65535) + (d & 65535); 2544 var msw203 = (x153 >> 16) + (d >> 16) + (lsw203 >> 16); 2545 c = msw203 << 16 | lsw203 & 65535; 2546 var x154 = x[i + 5]; 2547 var b55 = ~a; 2548 var lsb134 = c & 1 | b55 & 1; 2549 var msb31134 = c >>> 1 | b55 >>> 1; 2550 var b56 = msb31134 << 1 | lsb134; 2551 var lsb135 = d & 1 ^ b56 & 1; 2552 var msb31135 = d >>> 1 ^ b56 >>> 1; 2553 var q51 = msb31135 << 1 | lsb135; 2554 var lsw204 = (b & 65535) + (q51 & 65535); 2555 var msw204 = (b >> 16) + (q51 >> 16) + (lsw204 >> 16); 2556 var x155 = msw204 << 16 | lsw204 & 65535; 2557 var lsw205 = (x154 & 65535) + 41017; 2558 var msw205 = (x154 >> 16) + (-877) + (lsw205 >> 16); 2559 var y51 = msw205 << 16 | lsw205 & 65535; 2560 var lsw206 = (x155 & 65535) + (y51 & 65535); 2561 var msw206 = (x155 >> 16) + (y51 >> 16) + (lsw206 >> 16); 2562 var num51 = msw206 << 16 | lsw206 & 65535; 2563 var x156 = num51 << 21 | num51 >>> 11; 2564 var lsw207 = (x156 & 65535) + (c & 65535); 2565 var msw207 = (x156 >> 16) + (c >> 16) + (lsw207 >> 16); 2566 b = msw207 << 16 | lsw207 & 65535; 2567 var x157 = x[i + 12]; 2568 var b57 = ~d; 2569 var lsb136 = b & 1 | b57 & 1; 2570 var msb31136 = b >>> 1 | b57 >>> 1; 2571 var b58 = msb31136 << 1 | lsb136; 2572 var lsb137 = c & 1 ^ b58 & 1; 2573 var msb31137 = c >>> 1 ^ b58 >>> 1; 2574 var q52 = msb31137 << 1 | lsb137; 2575 var lsw208 = (a & 65535) + (q52 & 65535); 2576 var msw208 = (a >> 16) + (q52 >> 16) + (lsw208 >> 16); 2577 var x158 = msw208 << 16 | lsw208 & 65535; 2578 var lsw209 = (x157 & 65535) + 22979; 2579 var msw209 = (x157 >> 16) + 25947 + (lsw209 >> 16); 2580 var y52 = msw209 << 16 | lsw209 & 65535; 2581 var lsw210 = (x158 & 65535) + (y52 & 65535); 2582 var msw210 = (x158 >> 16) + (y52 >> 16) + (lsw210 >> 16); 2583 var num52 = msw210 << 16 | lsw210 & 65535; 2584 var x159 = num52 << 6 | num52 >>> 26; 2585 var lsw211 = (x159 & 65535) + (b & 65535); 2586 var msw211 = (x159 >> 16) + (b >> 16) + (lsw211 >> 16); 2587 a = msw211 << 16 | lsw211 & 65535; 2588 var x160 = x[i + 3]; 2589 var b59 = ~c; 2590 var lsb138 = a & 1 | b59 & 1; 2591 var msb31138 = a >>> 1 | b59 >>> 1; 2592 var b60 = msb31138 << 1 | lsb138; 2593 var lsb139 = b & 1 ^ b60 & 1; 2594 var msb31139 = b >>> 1 ^ b60 >>> 1; 2595 var q53 = msb31139 << 1 | lsb139; 2596 var lsw212 = (d & 65535) + (q53 & 65535); 2597 var msw212 = (d >> 16) + (q53 >> 16) + (lsw212 >> 16); 2598 var x161 = msw212 << 16 | lsw212 & 65535; 2599 var lsw213 = (x160 & 65535) + 52370; 2600 var msw213 = (x160 >> 16) + (-28916) + (lsw213 >> 16); 2601 var y53 = msw213 << 16 | lsw213 & 65535; 2602 var lsw214 = (x161 & 65535) + (y53 & 65535); 2603 var msw214 = (x161 >> 16) + (y53 >> 16) + (lsw214 >> 16); 2604 var num53 = msw214 << 16 | lsw214 & 65535; 2605 var x162 = num53 << 10 | num53 >>> 22; 2606 var lsw215 = (x162 & 65535) + (a & 65535); 2607 var msw215 = (x162 >> 16) + (a >> 16) + (lsw215 >> 16); 2608 d = msw215 << 16 | lsw215 & 65535; 2609 var x163 = x[i + 10]; 2610 var b61 = ~b; 2611 var lsb140 = d & 1 | b61 & 1; 2612 var msb31140 = d >>> 1 | b61 >>> 1; 2613 var b62 = msb31140 << 1 | lsb140; 2614 var lsb141 = a & 1 ^ b62 & 1; 2615 var msb31141 = a >>> 1 ^ b62 >>> 1; 2616 var q54 = msb31141 << 1 | lsb141; 2617 var lsw216 = (c & 65535) + (q54 & 65535); 2618 var msw216 = (c >> 16) + (q54 >> 16) + (lsw216 >> 16); 2619 var x164 = msw216 << 16 | lsw216 & 65535; 2620 var lsw217 = (x163 & 65535) + 62589; 2621 var msw217 = (x163 >> 16) + (-17) + (lsw217 >> 16); 2622 var y54 = msw217 << 16 | lsw217 & 65535; 2623 var lsw218 = (x164 & 65535) + (y54 & 65535); 2624 var msw218 = (x164 >> 16) + (y54 >> 16) + (lsw218 >> 16); 2625 var num54 = msw218 << 16 | lsw218 & 65535; 2626 var x165 = num54 << 15 | num54 >>> 17; 2627 var lsw219 = (x165 & 65535) + (d & 65535); 2628 var msw219 = (x165 >> 16) + (d >> 16) + (lsw219 >> 16); 2629 c = msw219 << 16 | lsw219 & 65535; 2630 var x166 = x[i + 1]; 2631 var b63 = ~a; 2632 var lsb142 = c & 1 | b63 & 1; 2633 var msb31142 = c >>> 1 | b63 >>> 1; 2634 var b64 = msb31142 << 1 | lsb142; 2635 var lsb143 = d & 1 ^ b64 & 1; 2636 var msb31143 = d >>> 1 ^ b64 >>> 1; 2637 var q55 = msb31143 << 1 | lsb143; 2638 var lsw220 = (b & 65535) + (q55 & 65535); 2639 var msw220 = (b >> 16) + (q55 >> 16) + (lsw220 >> 16); 2640 var x167 = msw220 << 16 | lsw220 & 65535; 2641 var lsw221 = (x166 & 65535) + 24017; 2642 var msw221 = (x166 >> 16) + (-31356) + (lsw221 >> 16); 2643 var y55 = msw221 << 16 | lsw221 & 65535; 2644 var lsw222 = (x167 & 65535) + (y55 & 65535); 2645 var msw222 = (x167 >> 16) + (y55 >> 16) + (lsw222 >> 16); 2646 var num55 = msw222 << 16 | lsw222 & 65535; 2647 var x168 = num55 << 21 | num55 >>> 11; 2648 var lsw223 = (x168 & 65535) + (c & 65535); 2649 var msw223 = (x168 >> 16) + (c >> 16) + (lsw223 >> 16); 2650 b = msw223 << 16 | lsw223 & 65535; 2651 var x169 = x[i + 8]; 2652 var b65 = ~d; 2653 var lsb144 = b & 1 | b65 & 1; 2654 var msb31144 = b >>> 1 | b65 >>> 1; 2655 var b66 = msb31144 << 1 | lsb144; 2656 var lsb145 = c & 1 ^ b66 & 1; 2657 var msb31145 = c >>> 1 ^ b66 >>> 1; 2658 var q56 = msb31145 << 1 | lsb145; 2659 var lsw224 = (a & 65535) + (q56 & 65535); 2660 var msw224 = (a >> 16) + (q56 >> 16) + (lsw224 >> 16); 2661 var x170 = msw224 << 16 | lsw224 & 65535; 2662 var lsw225 = (x169 & 65535) + 32335; 2663 var msw225 = (x169 >> 16) + 28584 + (lsw225 >> 16); 2664 var y56 = msw225 << 16 | lsw225 & 65535; 2665 var lsw226 = (x170 & 65535) + (y56 & 65535); 2666 var msw226 = (x170 >> 16) + (y56 >> 16) + (lsw226 >> 16); 2667 var num56 = msw226 << 16 | lsw226 & 65535; 2668 var x171 = num56 << 6 | num56 >>> 26; 2669 var lsw227 = (x171 & 65535) + (b & 65535); 2670 var msw227 = (x171 >> 16) + (b >> 16) + (lsw227 >> 16); 2671 a = msw227 << 16 | lsw227 & 65535; 2672 var x172 = x[i + 15]; 2673 var b67 = ~c; 2674 var lsb146 = a & 1 | b67 & 1; 2675 var msb31146 = a >>> 1 | b67 >>> 1; 2676 var b68 = msb31146 << 1 | lsb146; 2677 var lsb147 = b & 1 ^ b68 & 1; 2678 var msb31147 = b >>> 1 ^ b68 >>> 1; 2679 var q57 = msb31147 << 1 | lsb147; 2680 var lsw228 = (d & 65535) + (q57 & 65535); 2681 var msw228 = (d >> 16) + (q57 >> 16) + (lsw228 >> 16); 2682 var x173 = msw228 << 16 | lsw228 & 65535; 2683 var lsw229 = (x172 & 65535) + 59104; 2684 var msw229 = (x172 >> 16) + (-468) + (lsw229 >> 16); 2685 var y57 = msw229 << 16 | lsw229 & 65535; 2686 var lsw230 = (x173 & 65535) + (y57 & 65535); 2687 var msw230 = (x173 >> 16) + (y57 >> 16) + (lsw230 >> 16); 2688 var num57 = msw230 << 16 | lsw230 & 65535; 2689 var x174 = num57 << 10 | num57 >>> 22; 2690 var lsw231 = (x174 & 65535) + (a & 65535); 2691 var msw231 = (x174 >> 16) + (a >> 16) + (lsw231 >> 16); 2692 d = msw231 << 16 | lsw231 & 65535; 2693 var x175 = x[i + 6]; 2694 var b69 = ~b; 2695 var lsb148 = d & 1 | b69 & 1; 2696 var msb31148 = d >>> 1 | b69 >>> 1; 2697 var b70 = msb31148 << 1 | lsb148; 2698 var lsb149 = a & 1 ^ b70 & 1; 2699 var msb31149 = a >>> 1 ^ b70 >>> 1; 2700 var q58 = msb31149 << 1 | lsb149; 2701 var lsw232 = (c & 65535) + (q58 & 65535); 2702 var msw232 = (c >> 16) + (q58 >> 16) + (lsw232 >> 16); 2703 var x176 = msw232 << 16 | lsw232 & 65535; 2704 var lsw233 = (x175 & 65535) + 17172; 2705 var msw233 = (x175 >> 16) + (-23807) + (lsw233 >> 16); 2706 var y58 = msw233 << 16 | lsw233 & 65535; 2707 var lsw234 = (x176 & 65535) + (y58 & 65535); 2708 var msw234 = (x176 >> 16) + (y58 >> 16) + (lsw234 >> 16); 2709 var num58 = msw234 << 16 | lsw234 & 65535; 2710 var x177 = num58 << 15 | num58 >>> 17; 2711 var lsw235 = (x177 & 65535) + (d & 65535); 2712 var msw235 = (x177 >> 16) + (d >> 16) + (lsw235 >> 16); 2713 c = msw235 << 16 | lsw235 & 65535; 2714 var x178 = x[i + 13]; 2715 var b71 = ~a; 2716 var lsb150 = c & 1 | b71 & 1; 2717 var msb31150 = c >>> 1 | b71 >>> 1; 2718 var b72 = msb31150 << 1 | lsb150; 2719 var lsb151 = d & 1 ^ b72 & 1; 2720 var msb31151 = d >>> 1 ^ b72 >>> 1; 2721 var q59 = msb31151 << 1 | lsb151; 2722 var lsw236 = (b & 65535) + (q59 & 65535); 2723 var msw236 = (b >> 16) + (q59 >> 16) + (lsw236 >> 16); 2724 var x179 = msw236 << 16 | lsw236 & 65535; 2725 var lsw237 = (x178 & 65535) + 4513; 2726 var msw237 = (x178 >> 16) + 19976 + (lsw237 >> 16); 2727 var y59 = msw237 << 16 | lsw237 & 65535; 2728 var lsw238 = (x179 & 65535) + (y59 & 65535); 2729 var msw238 = (x179 >> 16) + (y59 >> 16) + (lsw238 >> 16); 2730 var num59 = msw238 << 16 | lsw238 & 65535; 2731 var x180 = num59 << 21 | num59 >>> 11; 2732 var lsw239 = (x180 & 65535) + (c & 65535); 2733 var msw239 = (x180 >> 16) + (c >> 16) + (lsw239 >> 16); 2734 b = msw239 << 16 | lsw239 & 65535; 2735 var x181 = x[i + 4]; 2736 var b73 = ~d; 2737 var lsb152 = b & 1 | b73 & 1; 2738 var msb31152 = b >>> 1 | b73 >>> 1; 2739 var b74 = msb31152 << 1 | lsb152; 2740 var lsb153 = c & 1 ^ b74 & 1; 2741 var msb31153 = c >>> 1 ^ b74 >>> 1; 2742 var q60 = msb31153 << 1 | lsb153; 2743 var lsw240 = (a & 65535) + (q60 & 65535); 2744 var msw240 = (a >> 16) + (q60 >> 16) + (lsw240 >> 16); 2745 var x182 = msw240 << 16 | lsw240 & 65535; 2746 var lsw241 = (x181 & 65535) + 32386; 2747 var msw241 = (x181 >> 16) + (-2221) + (lsw241 >> 16); 2748 var y60 = msw241 << 16 | lsw241 & 65535; 2749 var lsw242 = (x182 & 65535) + (y60 & 65535); 2750 var msw242 = (x182 >> 16) + (y60 >> 16) + (lsw242 >> 16); 2751 var num60 = msw242 << 16 | lsw242 & 65535; 2752 var x183 = num60 << 6 | num60 >>> 26; 2753 var lsw243 = (x183 & 65535) + (b & 65535); 2754 var msw243 = (x183 >> 16) + (b >> 16) + (lsw243 >> 16); 2755 a = msw243 << 16 | lsw243 & 65535; 2756 var x184 = x[i + 11]; 2757 var b75 = ~c; 2758 var lsb154 = a & 1 | b75 & 1; 2759 var msb31154 = a >>> 1 | b75 >>> 1; 2760 var b76 = msb31154 << 1 | lsb154; 2761 var lsb155 = b & 1 ^ b76 & 1; 2762 var msb31155 = b >>> 1 ^ b76 >>> 1; 2763 var q61 = msb31155 << 1 | lsb155; 2764 var lsw244 = (d & 65535) + (q61 & 65535); 2765 var msw244 = (d >> 16) + (q61 >> 16) + (lsw244 >> 16); 2766 var x185 = msw244 << 16 | lsw244 & 65535; 2767 var lsw245 = (x184 & 65535) + 62005; 2768 var msw245 = (x184 >> 16) + (-17094) + (lsw245 >> 16); 2769 var y61 = msw245 << 16 | lsw245 & 65535; 2770 var lsw246 = (x185 & 65535) + (y61 & 65535); 2771 var msw246 = (x185 >> 16) + (y61 >> 16) + (lsw246 >> 16);
2772 var num61 = msw246 << 16 | lsw246 & 65535; 2773 var x186 = num61 << 10 | num61 >>> 22; 2774 var lsw247 = (x186 & 65535) + (a & 65535); 2775 var msw247 = (x186 >> 16) + (a >> 16) + (lsw247 >> 16); 2776 d = msw247 << 16 | lsw247 & 65535; 2777 var x187 = x[i + 2]; 2778 var b77 = ~b; 2779 var lsb156 = d & 1 | b77 & 1; 2780 var msb31156 = d >>> 1 | b77 >>> 1; 2781 var b78 = msb31156 << 1 | lsb156; 2782 var lsb157 = a & 1 ^ b78 & 1; 2783 var msb31157 = a >>> 1 ^ b78 >>> 1; 2784 var q62 = msb31157 << 1 | lsb157; 2785 var lsw248 = (c & 65535) + (q62 & 65535); 2786 var msw248 = (c >> 16) + (q62 >> 16) + (lsw248 >> 16); 2787 var x188 = msw248 << 16 | lsw248 & 65535; 2788 var lsw249 = (x187 & 65535) + 53947; 2789 var msw249 = (x187 >> 16) + 10967 + (lsw249 >> 16); 2790 var y62 = msw249 << 16 | lsw249 & 65535; 2791 var lsw250 = (x188 & 65535) + (y62 & 65535); 2792 var msw250 = (x188 >> 16) + (y62 >> 16) + (lsw250 >> 16); 2793 var num62 = msw250 << 16 | lsw250 & 65535; 2794 var x189 = num62 << 15 | num62 >>> 17; 2795 var lsw251 = (x189 & 65535) + (d & 65535); 2796 var msw251 = (x189 >> 16) + (d >> 16) + (lsw251 >> 16); 2797 c = msw251 << 16 | lsw251 & 65535; 2798 var x190 = x[i + 9]; 2799 var b79 = ~a; 2800 var lsb158 = c & 1 | b79 & 1; 2801 var msb31158 = c >>> 1 | b79 >>> 1; 2802 var b80 = msb31158 << 1 | lsb158; 2803 var lsb159 = d & 1 ^ b80 & 1; 2804 var msb31159 = d >>> 1 ^ b80 >>> 1; 2805 var q63 = msb31159 << 1 | lsb159; 2806 var lsw252 = (b & 65535) + (q63 & 65535); 2807 var msw252 = (b >> 16) + (q63 >> 16) + (lsw252 >> 16); 2808 var x191 = msw252 << 16 | lsw252 & 65535; 2809 var lsw253 = (x190 & 65535) + 54161; 2810 var msw253 = (x190 >> 16) + (-5242) + (lsw253 >> 16); 2811 var y63 = msw253 << 16 | lsw253 & 65535; 2812 var lsw254 = (x191 & 65535) + (y63 & 65535); 2813 var msw254 = (x191 >> 16) + (y63 >> 16) + (lsw254 >> 16); 2814 var num63 = msw254 << 16 | lsw254 & 65535; 2815 var x192 = num63 << 21 | num63 >>> 11; 2816 var lsw255 = (x192 & 65535) + (c & 65535); 2817 var msw255 = (x192 >> 16) + (c >> 16) + (lsw255 >> 16); 2818 b = msw255 << 16 | lsw255 & 65535; 2819 var lsw256 = (a & 65535) + (olda & 65535); 2820 var msw256 = (a >> 16) + (olda >> 16) + (lsw256 >> 16); 2821 a = msw256 << 16 | lsw256 & 65535; 2822 var lsw257 = (b & 65535) + (oldb & 65535); 2823 var msw257 = (b >> 16) + (oldb >> 16) + (lsw257 >> 16); 2824 b = msw257 << 16 | lsw257 & 65535; 2825 var lsw258 = (c & 65535) + (oldc & 65535); 2826 var msw258 = (c >> 16) + (oldc >> 16) + (lsw258 >> 16); 2827 c = msw258 << 16 | lsw258 & 65535; 2828 var lsw259 = (d & 65535) + (oldd & 65535); 2829 var msw259 = (d >> 16) + (oldd >> 16) + (lsw259 >> 16); 2830 d = msw259 << 16 | lsw259 & 65535; 2831 i += 16; 2832 } 2833 return Md5.rhex(a) + Md5.rhex(b) + Md5.rhex(c) + Md5.rhex(d); 2834 } 2835 ,__class__: Md5 2836}; 2837var js_BinaryParser = function(bigEndian,allowExceptions) { 2838 this.bigEndian = bigEndian; 2839 this.allowExceptions = allowExceptions; 2840}; 2841js_BinaryParser.__name__ = true; 2842js_BinaryParser.prototype = { 2843 encodeFloat: function(number,precisionBits,exponentBits) { 2844 2845 var bias = Math.pow(2, exponentBits - 1) - 1, minExp = -bias + 1, maxExp = bias, minUnnormExp = minExp - precisionBits, 2846 status = isNaN(n = parseFloat(number)) || n == -Infinity || n == +Infinity ? n : 0, 2847 exp = 0, len = 2 * bias + 1 + precisionBits + 3, bin = new Array(len), 2848 signal = (n = status !== 0 ? 0 : n) < 0, n = Math.abs(n), intPart = Math.floor(n), floatPart = n - intPart, 2849 i, lastBit, rounded, j, result; 2850 for(i = len; i; bin[--i] = 0); 2851 for(i = bias + 2; intPart && i; bin[--i] = intPart % 2, intPart = Math.floor(intPart / 2)); 2852 for(i = bias + 1; floatPart > 0 && i; (bin[++i] = ((floatPart *= 2) >= 1) - 0) && --floatPart); 2853 for(i = -1; ++i < len && !bin[i];); 2854 if(bin[(lastBit = precisionBits - 1 + (i = (exp = bias + 1 - i) >= minExp && exp <= maxExp ? i + 1 : bias + 1 - (exp = minExp - 1))) + 1]){ 2855 if(!(rounded = bin[lastBit])) 2856 for(j = lastBit + 2; !rounded && j < len; rounded = bin[j++]); 2857 for(j = lastBit + 1; rounded && --j >= 0; (bin[j] = !bin[j] - 0) && (rounded = 0)); 2858 } 2859 for(i = i - 2 < 0 ? -1 : i - 3; ++i < len && !bin[i];); 2860 2861 (exp = bias + 1 - i) >= minExp && exp <= maxExp ? ++i : exp < minExp && 2862 (exp != bias + 1 - len && exp < minUnnormExp && this.warn("encodeFloat::float underflow"), i = bias + 1 - (exp = minExp - 1)); 2863 (intPart || status !== 0) && (this.warn(intPart ? "encodeFloat::float overflow" : "encodeFloat::" + status), 2864 exp = maxExp + 1, i = bias + 2, status == -Infinity ? signal = 1 : isNaN(status) && (bin[i] = 1));
2865 for(n = Math.abs(exp + bias), j = exponentBits + 1, result = ""; --j; result = (n % 2) + result, n = n >>= 1); 2866 for(var n = 0, j = 0, i = (result = (signal ? "1" : "0") + result + bin.slice(i, i + precisionBits).join("")).length, r = []; 2867 i; n += (1 << j) * result.charAt(--i), j == 7 && (r[r.length] = String.fromCharCode(n), n = 0), j = (j + 1) % 8); 2868 r[r.length] = n ? String.fromCharCode(n) : ""; 2869 return (this.bigEndian ? r.reverse() : r).join(""); 2870 ; 2871 return ""; 2872 } 2873 ,decodeFloat: function(data,precisionBits,exponentBits) { 2874 2875 var b = (((typeof js !== 'undefined' && js) ? 2876 (b = new js.BinaryBuffer(this.bigEndian, data)) : 2877 (b = new js_BinaryBuffer(this.bigEndian, data))).checkBuffer(precisionBits + exponentBits + 1), b), 2878 bias = Math.pow(2, exponentBits - 1) - 1, signal = b.readBits(precisionBits + exponentBits, 1), 2879 exponent = b.readBits(precisionBits, exponentBits), significand = 0, 2880 divisor = 2, curByte = b.buffer.length + (-precisionBits >> 3) - 1, 2881 byteValue, startBit, mask; 2882 do 2883 for(byteValue = b.buffer[ ++curByte ], startBit = precisionBits % 8 || 8, mask = 1 << startBit; 2884 mask >>= 1; (byteValue & mask) && (significand += 1 / divisor), divisor *= 2); 2885 while(precisionBits -= startBit); 2886 return exponent == (bias << 1) + 1 ? significand ? NaN : signal ? -Infinity : +Infinity 2887 : (1 + signal * -2) * (exponent || significand ? !exponent ? Math.pow(2, -bias + 1) * significand 2888 : Math.pow(2, exponent - bias) * (1 + significand) : 0); 2889 ; 2890 return 0.0; 2891 } 2892 ,warn: function(msg) { 2893 if(this.allowExceptions) { 2894 throw new Error(msg); 2895 } 2896 return 1; 2897 } 2898 ,toDouble: function(data) { 2899 return this.decodeFloat(data,52,11); 2900 } 2901 ,fromDouble: function(number) { 2902 return this.encodeFloat(number,52,11); 2903 } 2904 ,__class__: js_BinaryParser 2905}; 2906var StringBuf = function() { 2907 this.b = ""; 2908}; 2909StringBuf.__name__ = true; 2910StringBuf.prototype = { 2911 __class__: StringBuf 2912}; 2913var Util = function() { }; 2914Util.__name__ = true; 2915Util.getParameter = function(name) { 2916 var href = window.location.href; 2917 var href2 = window.urlParameters ? window.urlParameters : ""; 2918 var regexS = "[\\?&]" + name + "=([^&#]*)"; 2919 var regex = new EReg(regexS,""); 2920 if(regex.match(href)) { 2921 var s = regex.matched(1); 2922 return decodeURIComponent(s.split("+").join(" ")); 2923 } else if(regex.match(href2)) { 2924 var s = regex.matched(1); 2925 return decodeURIComponent(s.split("+").join(" ")); 2926 } else { 2927 return null; 2928 } 2929}; 2930Util.makePath = function(dir,name) { 2931 if(StringTools.endsWith(dir,"/")) { 2932 return dir + name; 2933 } else { 2934 return dir + "/" + name; 2935 } 2936}; 2937Util.openFile = function(path,mode) { 2938 if(mode == null) { 2939 mode = true; 2940 } 2941 return null; 2942}; 2943Util.createDir = function(dir) { 2944}; 2945Util.println = function(s) { 2946}; 2947Util.clearCache = function() { 2948 Util.filesCache = new haxe_ds_StringMap(); 2949 Util.filesHashCache = new haxe_ds_StringMap(); 2950}; 2951Util.readFile = function(file) { 2952 var content = Util.filesCache.h[file]; 2953 var tmp = content == null; 2954 return content; 2955}; 2956Util.setFileContent = function(file,content) { 2957 Util.filesCache.h[file] = content; 2958 Util.filesHashCache.h[file] = null; 2959}; 2960Util.getFileContent = function(file,content) { 2961 var this1 = Util.filesCache; 2962}; 2963Util.fileMd5 = function(file) { 2964 var hash = Util.filesHashCache.h[file]; 2965 if(hash == null) { 2966 var content = Util.readFile(file); 2967 if(content != null) { 2968 var this1 = Util.filesHashCache; 2969 var value = Md5.encode(content); 2970 this1.h[file] = value; 2971 } 2972 } 2973 return hash; 2974}; 2975Util.writeFile = function(file,content) { 2976}; 2977Util.compareStrings = function(a,b) { 2978 if(a < b) { 2979 return -1; 2980 } 2981 if(a > b) { 2982 return 1; 2983 } 2984 return 0; 2985}; 2986Util.fromCharCode = function(code) { 2987 return String.fromCodePoint(code); 2988}; 2989Util.determineCrossOrigin = function(url) { 2990 if(url.indexOf("data:") == 0) { 2991 return ""; 2992 } 2993 var loc = window.location; 2994 var tempAnchor = window.document.createElement("a"); 2995 tempAnchor.href = url; 2996 var samePort = !tempAnchor.port && loc.port == "" || tempAnchor.port == loc.port; 2997 if(tempAnchor.hostname != loc.hostname || !samePort || tempAnchor.protocol != loc.protocol) { 2998 return "anonymous"; 2999 } 3000 return ""; 3001}; 3002Util.isMouseEventName = function(event) { 3003 if(!(event == "pointerdown" || event == "pointerup" || event == "pointermove" || event == "pointerover" || event == "pointerout" || event == "mouseout" || event == "mousedown" || event == "mousemove" || event == "mouseup" || event == "mousemiddledown" || event == "mousemiddleup" || event == "mousemiddledown" || event == "mousemiddleup" || event == "touchstart" || event == "touchmove")) { 3004 return event == "touchend"; 3005 } else { 3006 return true; 3007 } 3008}; 3009Util.loadJS = function(url,id) { 3010 if(id == null) { 3011 id = ""; 3012 } 3013 return new Promise(function(resolve,reject) { 3014 var script = window.document.createElement("script"); 3015 script.addEventListener("load",resolve); 3016 script.addEventListener("error",reject); 3017 script.addEventListener("abort",reject); 3018 script.src = url; 3019 if(id != "") { 3020 script.id = id; 3021 } 3022 window.document.head.appendChild(script); 3023 }); 3024}; 3025var Platform = function() { }; 3026Platform.__name__ = true; 3027Platform.getIsRetinaDisplay = function() { 3028 if(Platform.isMacintosh && window.matchMedia != null) { 3029 if(!((window.matchMedia && (window.matchMedia('only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 75.6dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)').matches)) || (window.devicePixelRatio && window.devicePixelRatio >= 2)) && /(iPad|iPhone|iPod)/g.test(navigator.userAgent)) { 3030 return getIsHighDensity(); 3031 } else { 3032 return true; 3033 } 3034 } else { 3035 return false;
3036 } 3037}; 3038Platform.getIsHighDensityDisplay = function() { 3039 return ((window.matchMedia && (window.matchMedia('only screen and (min-resolution: 124dpi), only screen and (min-resolution: 1.3dppx), only screen and (min-resolution: 48.8dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3)').matches)) || (window.devicePixelRatio && window.devicePixelRatio > 1.3)); 3040}; 3041Platform.getIsWindows = function() { 3042 return Platform.isWindows; 3043}; 3044Platform.getIsMacOS = function() { 3045 return Platform.isMacintosh; 3046}; 3047Platform.getIsLinux = function() { 3048 return Platform.isLinux; 3049}; 3050Platform.getIsAndroid = function() { 3051 return Platform.isAndroid; 3052}; 3053Platform.getIsIos = function() { 3054 return Platform.isIOS; 3055}; 3056var Native = function() { }; 3057Native.__name__ = true; 3058Native.println = function(arg) { 3059 var keepStringEscapes = true; 3060 if(keepStringEscapes == null) { 3061 keepStringEscapes = false; 3062 } 3063 var s = HaxeRuntime.toString(arg,keepStringEscapes); 3064 console.log(s); 3065 return null; 3066}; 3067Native.debugStopExecution = function() { 3068 debugger; 3069}; 3070Native.genericCompare = function(a,b) { 3071 return HaxeRuntime.compareByValue(a,b); 3072}; 3073Native.hostCall = function(name,args) { 3074 var result = null; 3075 try { 3076 var name_parts = name.split("."); 3077 var fun = window; 3078 var fun_nested_object = fun; 3079 var _g = 0; 3080 var _g1 = name_parts.length; 3081 while(_g < _g1) { 3082 var i = _g++; 3083 fun_nested_object = fun; 3084 fun = fun[name_parts[i]]; 3085 } 3086 result = fun.call(fun_nested_object,args[0],args[1],args[2],args[3],args[4]); 3087 } catch( _g ) { 3088 haxe_NativeStackTrace.lastError = _g; 3089 var e = haxe_Exception.caught(_g).unwrap(); 3090 Errors.report(e); 3091 } 3092 return result; 3093}; 3094Native.importJSModule = function(arg,cb) { 3095 try { 3096 var module = arg + encodeURI('\nconst importJSModuleVersion =' + Math.random()); 3097 eval("import(module).then((v) => { return v && v.default ? v.default : v; }).then((v) => { cb(v); }).catch((e) => { Errors.report(e); cb(null); })"); 3098 } catch( _g ) { 3099 haxe_NativeStackTrace.lastError = _g; 3100 var e = haxe_Exception.caught(_g).unwrap(); 3101 Errors.report(e); 3102 cb(null); 3103 } 3104}; 3105Native.hostAddCallback = function(name,cb) { 3106 window[name] = cb; 3107 return null; 3108}; 3109Native.createInvisibleTextArea = function() { 3110 var textArea = window.document.createElement("textarea"); 3111 textArea.style.cssText = "position:fixed;top:0px;left:0px;width:2em;height:2em;padding:0px;border:none;outline:none;boxShadow:none;background:transparent;"; 3112 window.document.body.appendChild(textArea); 3113 return textArea; 3114}; 3115Native.evaluateObjectSize = function(object) { 3116 var bytes = 0; 3117 3118 var objectList = []; 3119 var stack = [object]; 3120 3121 while (stack.length) { 3122 var value = stack.pop(); 3123 3124 if (typeof value === 'boolean') { 3125 bytes += 4; 3126 } 3127 else if ( typeof value === 'string' ) { 3128 bytes += value.length * 2; 3129 } 3130 else if ( typeof value === 'number' ) { 3131 bytes += 8; 3132 } 3133 else if 3134 ( 3135 typeof value === 'object' 3136 && objectList.indexOf( value ) === -1 3137 ) 3138 { 3139 objectList.push( value ); 3140 3141 if (Object.prototype.toString.call(value) != '[object Array]'){ 3142 for(var key in value) bytes += 2 * key.length; 3143 } 3144 3145 for( var i in value ) { 3146 stack.push( value[ i ] ); 3147 } 3148 } 3149 } 3150 ; 3151 return bytes; 3152}; 3153Native.usedJSHeapSize = function() { 3154 try { 3155 return window.performance.memory.usedJSHeapSize; 3156 } catch( _g ) { 3157 haxe_NativeStackTrace.lastError = _g; 3158 console.log("Warning! performance.memory.usedJSHeapSize is not implemented in this target"); 3159 return 0; 3160 } 3161}; 3162Native.totalJSHeapSize = function() { 3163 try { 3164 return window.performance.memory.totalJSHeapSize; 3165 } catch( _g ) { 3166 haxe_NativeStackTrace.lastError = _g; 3167 console.log("Warning! performance.memory.totalJSHeapSize is not implemented in this target"); 3168 return 0; 3169 } 3170}; 3171Native.createWindowSnapshot = function() { 3172 var snapshot = { 3173 timestamp: Date.now(), 3174 properties: new Map(), 3175 objectCounts: {}, 3176 totalSize: 0 3177 } 3178 3179 // Capture all window properties 3180 for (var key in window) { 3181 try { 3182 var value = window[key]; 3183 var type = typeof value; 3184 var size = Native.estimateObjectSize(value, new WeakSet(), 0, 2); // Limit depth to avoid infinite recursion 3185 3186 snapshot.properties.set(key, { 3187 type: type, 3188 size: size, 3189 constructor: value && value.constructor ? value.constructor.name : 'unknown', 3190 isArray: Array.isArray(value),
3191 length: value && value.length !== undefined ? value.length : -1 3192 }); 3193 3194 snapshot.totalSize += size; 3195 snapshot.objectCounts[type] = (snapshot.objectCounts[type] || 0) + 1; 3196 } catch (e) { 3197 // Some properties might not be accessible 3198 snapshot.properties.set(key, { error: e.message }); 3199 } 3200 } 3201 ; 3202 return snapshot; 3203}; 3204Native.estimateObjectSize = function(obj,visited,currentDepth,maxDepth) { 3205 var size = 0; 3206 3207 if (currentDepth > maxDepth || visited.has(obj)) return 0; 3208 3209 var type = typeof obj; 3210 3211 if (type === 'boolean') return 4; 3212 if (type === 'number') return 8; 3213 if (type === 'string') return obj.length * 2; 3214 if (obj === null || obj === undefined) return 0; 3215 3216 if (type === 'object') { 3217 visited.add(obj); 3218 3219 // Count property names 3220 for (var key in obj) { 3221 size += key.length * 2; // Property name size 3222 try { 3223 size += Native.estimateObjectSize(obj[key], visited, currentDepth + 1, maxDepth); 3224 } catch (e) { 3225 // Skip inaccessible properties 3226 } 3227 } 3228 } 3229 ; 3230 return size; 3231}; 3232Native.compareWindowSnapshots = function(beforeSnapshot,afterSnapshot) { 3233 var diff = { 3234 newProperties: [], 3235 changedProperties: [], 3236 sizeDifferences: [], 3237 totalSizeChange: afterSnapshot.totalSize - beforeSnapshot.totalSize 3238 } 3239 3240 // Find new properties and changed properties 3241 for (var entry of afterSnapshot.properties) { 3242 var key = entry[0]; 3243 var afterValue = entry[1]; 3244 3245 if (!beforeSnapshot.properties.has(key)) { 3246 diff.newProperties.push(Object.assign({ key: key }, afterValue)); 3247 } else { 3248 var beforeValue = beforeSnapshot.properties.get(key); 3249 var sizeChange = afterValue.size - beforeValue.size; 3250 3251 if (sizeChange !== 0) { 3252 diff.changedProperties.push({ 3253 key: key, 3254 sizeBefore: beforeValue.size, 3255 sizeAfter: afterValue.size, 3256 sizeChange: sizeChange, 3257 typeBefore: beforeValue.type, 3258 typeAfter: afterValue.type 3259 }); 3260 } 3261 } 3262 } 3263 3264 // Sort by size change (largest first) 3265 diff.changedProperties.sort(function(a, b) { return Math.abs(b.sizeChange) - Math.abs(a.sizeChange); }); 3266 diff.newProperties.sort(function(a, b) { return b.size - a.size; }); 3267 3268 // Add summary information needed by printMemoryLeakReport 3269 diff.summary = { 3270 totalSizeChange: diff.totalSizeChange, 3271 newPropertiesCount: diff.newProperties.length, 3272 changedPropertiesCount: diff.changedProperties.length, 3273 significantChanges: diff.changedProperties.filter(function(p) { 3274 return Math.abs(p.sizeChange) > 1000; // Changes > 1KB 3275 }), 3276 topNewProperties: diff.newProperties.slice(0, 10), 3277 topChangedProperties: diff.changedProperties.slice(0, 10) 3278 }; 3279 ; 3280 return diff; 3281}; 3282Native.detectWindowMemoryLeaks = function() { 3283 return 3284 var snapshot1 = Native.createWindowSnapshot(); 3285 3286 return { 3287 takeInitialSnapshot: function() { 3288 snapshot1 = Native.createWindowSnapshot(); 3289 return snapshot1; 3290 }, 3291 3292 compareCurrent: function() { 3293 var snapshot2 = Native.createWindowSnapshot(); 3294 var diff = Native.compareWindowSnapshots(snapshot1, snapshot2); 3295 3296 // Add summary information 3297 diff.summary = { 3298 totalSizeChange: diff.totalSizeChange, 3299 newPropertiesCount: diff.newProperties.length, 3300 changedPropertiesCount: diff.changedProperties.length, 3301 significantChanges: diff.changedProperties.filter(function(p) { 3302 return Math.abs(p.sizeChange) > 1000; // Changes > 1KB 3303 }), 3304 topNewProperties: diff.newProperties.slice(0, 10), 3305 topChangedProperties: diff.changedProperties.slice(0, 10) 3306 }; 3307 3308 return diff; 3309 }, 3310 3311 getFlowSpecificChanges: function() { 3312 var snapshot2 = Native.createWindowSnapshot(); 3313 var flowChanges = []; 3314 var flowPatterns = [ 3315 /^(Flow|Haxe|Material|RenderSupport|Native)/, 3316 /Manager$/, 3317 /Behaviour$/, 3318 /Transform$/, 3319 /^M[A-Z]/, // Material components 3320 /_struct/, 3321 /_id$/ 3322 ]; 3323 3324 for (var entry of snapshot2.properties) { 3325 var key = entry[0]; 3326 var afterValue = entry[1]; 3327 var isFlowRelated = flowPatterns.some(function(pattern) { return pattern.test(key); }); 3328 3329 if (isFlowRelated) { 3330 var beforeValue = snapshot1.properties.get(key); 3331 if (!beforeValue) { 3332 flowChanges.push(Object.assign({ 3333 type: 'NEW', 3334 key: key 3335 }, afterValue)); 3336 } else if (beforeValue.size !== afterValue.size) { 3337 flowChanges.push({ 3338 type: 'CHANGED', 3339 key: key, 3340 sizeBefore: beforeValue.size, 3341 sizeAfter: afterValue.size, 3342 sizeChange: afterValue.size - beforeValue.size 3343 }); 3344 } 3345 } 3346 } 3347 3348 return flowChanges.sort(function(a, b) { 3349 var aSize = a.sizeChange || a.size || 0; 3350 var bSize = b.sizeChange || b.size || 0; 3351 return Math.abs(bSize) - Math.abs(aSize); 3352 }); 3353 }, 3354 3355 categorizeWindowObjects: function() { 3356 var snapshot = Native.createWindowSnapshot(); 3357 var categories = { 3358 functions: [], 3359 objects: [], 3360 arrays: [], 3361 domElements: [], 3362 eventListeners: [], 3363 timers: [], 3364 flowObjects: [], 3365 other: [] 3366 }; 3367 3368 for (var entry of snapshot.properties) { 3369 var key = entry[0]; 3370 var value = entry[1];
3371 var item = { key: key, size: value.size, type: value.type }; 3372 3373 try { 3374 var actualValue = window[key]; 3375 if (typeof actualValue === 'function') { 3376 categories.functions.push(item); 3377 } else if (actualValue && actualValue.nodeType) { 3378 categories.domElements.push(item); 3379 } else if (Array.isArray(actualValue)) { 3380 categories.arrays.push(Object.assign(item, { length: actualValue.length })); 3381 } else if (key.match(/^(Flow|Haxe|RenderSupport|MaterialManager)/)) { 3382 categories.flowObjects.push(item); 3383 } else if (key.includes('event') || key.includes('listener')) { 3384 categories.eventListeners.push(item); 3385 } else if (key.includes('timer') || key.includes('interval')) { 3386 categories.timers.push(item); 3387 } else if (typeof actualValue === 'object' && actualValue !== null) { 3388 categories.objects.push(item); 3389 } else { 3390 categories.other.push(item); 3391 } 3392 } catch (e) { 3393 categories.other.push(item); 3394 } 3395 } 3396 3397 // Sort each category by size 3398 for (var cat in categories) { 3399 categories[cat].sort(function(a, b) { return b.size - a.size; }); 3400 } 3401 3402 return categories; 3403 } 3404 }; 3405 ; 3406}; 3407Native.printMemoryLeakReport = function(diff) { 3408 3409 if (!diff || !diff.summary) { 3410 console.log('No memory leak data available'); 3411 return; 3412 } 3413 3414 console.group('ð Memory Leak Analysis Report'); 3415 3416 console.log('ð Summary:'); 3417 console.log(' Total size change:', Math.round(diff.summary.totalSizeChange / 1024) + 'KB'); 3418 console.log(' New properties:', diff.summary.newPropertiesCount); 3419 console.log(' Changed properties:', diff.summary.changedPropertiesCount); 3420 console.log(' Significant changes (>1KB):', diff.summary.significantChanges.length); 3421 3422 if (diff.summary.topNewProperties.length > 0) { 3423 console.group('ð Top New Properties:'); 3424 diff.summary.topNewProperties.forEach(function(prop) { 3425 console.log(' ' + prop.key + ':', { 3426 type: prop.type, 3427 size: Math.round(prop.size / 1024) + 'KB', 3428 constructor: prop.constructor 3429 }); 3430 }); 3431 console.groupEnd(); 3432 } 3433 3434 if (diff.summary.topChangedProperties.length > 0) { 3435 console.group('ð Top Changed Properties:'); 3436 diff.summary.topChangedProperties.forEach(function(prop) { 3437 console.log(' ' + prop.key + ':', { 3438 change: (prop.sizeChange > 0 ? '+' : '') + Math.round(prop.sizeChange / 1024) + 'KB', 3439 before: Math.round(prop.sizeBefore / 1024) + 'KB', 3440 after: Math.round(prop.sizeAfter / 1024) + 'KB' 3441 }); 3442 }); 3443 console.groupEnd(); 3444 } 3445 3446 console.groupEnd(); 3447 ; 3448}; 3449Native.createDeepPathSnapshot = function(rootObject,maxDepth) { 3450 var snapshot = { 3451 timestamp: Date.now(), 3452 paths: new Map(), // path -> size 3453 totalSize: 0 3454 } 3455 3456 function traverseObject(obj, currentPath, depth, visited, globalVisited) { 3457 if (!obj) return 0; 3458 3459 var objType = typeof obj; 3460 var currentSize = 0; 3461 3462 // Base size for primitive types 3463 if (objType === 'boolean') return 4; 3464 if (objType === 'number') return 8; 3465 if (objType === 'string') return obj.length * 2; 3466 if (objType !== 'object' || obj === null) return 0; 3467 3468 // For objects, check if we've seen this exact object before (circular reference) 3469 if (globalVisited.has(obj)) { 3470 return 0; // Don't double-count, but this object's size was already counted 3471 } 3472 3473 globalVisited.add(obj); 3474 3475 // Count property names for this object 3476 for (var key in obj) { 3477 currentSize += key.length * 2; // Property name overhead 3478 } 3479 3480 // If we haven't hit max depth, recurse into properties and track paths 3481 if (depth < maxDepth) { 3482 for (var key in obj) { 3483 try { 3484 var childObj = obj[key]; 3485 var childPath = currentPath ? currentPath + '.' + key : key; 3486 var childSize = traverseObject(childObj, childPath, depth + 1, visited, globalVisited); 3487 currentSize += childSize; 3488 3489 // Store significant paths for comparison 3490 if (childSize > 1000) { 3491 snapshot.paths.set(childPath, childSize); 3492 } 3493 } catch (e) { 3494 // Skip inaccessible properties 3495 } 3496 } 3497 } else { 3498 // At max depth - estimate remaining size without recursion (like original evaluateObjectSize) 3499 for (var key in obj) { 3500 try { 3501 var childObj = obj[key]; 3502 var childType = typeof childObj; 3503 3504 if (childType === 'boolean') currentSize += 4; 3505 else if (childType === 'number') currentSize += 8; 3506 else if (childType === 'string') currentSize += childObj.length * 2; 3507 else if (childType === 'object' && childObj !== null && !globalVisited.has(childObj)) { 3508 // Rough estimate for unexplored objects 3509 currentSize += 100; // Base object overhead estimate 3510 } 3511 } catch (e) { 3512 // Skip inaccessible properties 3513 } 3514 } 3515 } 3516 3517 // Store this path's total size if significant 3518 if (currentSize > 1000 && currentPath) { 3519 snapshot.paths.set(currentPath, currentSize); 3520 } 3521 3522 return currentSize; 3523 } 3524 3525 // Start traversal - use the same approach as original evaluateObjectSize 3526 snapshot.totalSize = traverseObject(rootObject, '', 0, new WeakSet(), new WeakSet()); 3527 ; 3528 return snapshot; 3529}; 3530Native.createAccuratePathSnapshot = function(rootObject,maxDepth) { 3531 var snapshot = { 3532 timestamp: Date.now(), 3533 paths: new Map(), 3534 totalSize: 0 3535 } 3536 3537 // First get accurate total using the original method 3538 snapshot.totalSize = Native.evaluateObjectSize(rootObject); 3539
3540 // Then do path tracking with limited depth for comparison purposes 3541 function trackPaths(obj, currentPath, depth, visited) { 3542 if (depth > maxDepth || !obj || typeof obj !== 'object' || obj === null || visited.has(obj)) { 3543 return; 3544 } 3545 3546 visited.add(obj); 3547 3548 // Calculate size of this specific object path using limited recursion 3549 var pathSize = Native.estimateObjectSize(obj, new WeakSet(), 0, 2); 3550 3551 if (pathSize > 1000) { 3552 snapshot.paths.set(currentPath || 'root', pathSize); 3553 } 3554 3555 // Recurse into properties 3556 for (var key in obj) { 3557 try { 3558 var childPath = currentPath ? currentPath + '.' + key : key; 3559 trackPaths(obj[key], childPath, depth + 1, visited); 3560 } catch (e) { 3561 // Skip inaccessible properties 3562 } 3563 } 3564 } 3565 3566 // Track paths for comparison 3567 trackPaths(rootObject, '', 0, new WeakSet()); 3568 ; 3569 return snapshot; 3570}; 3571Native.compareDeepPathSnapshots = function(beforeSnapshot,afterSnapshot) { 3572 var comparison = { 3573 timestamp: Date.now(), 3574 totalSizeChange: afterSnapshot.totalSize - beforeSnapshot.totalSize, 3575 pathChanges: [], 3576 newPaths: [], 3577 removedPaths: [] 3578 } 3579 3580 // Find all unique paths from both snapshots 3581 var allPaths = new Set(); 3582 beforeSnapshot.paths.forEach((size, path) => allPaths.add(path)); 3583 afterSnapshot.paths.forEach((size, path) => allPaths.add(path)); 3584 3585 // Compare each path 3586 allPaths.forEach(path => { 3587 var beforeSize = beforeSnapshot.paths.get(path) || 0; 3588 var afterSize = afterSnapshot.paths.get(path) || 0; 3589 var sizeChange = afterSize - beforeSize; 3590 3591 if (beforeSize === 0 && afterSize > 0) { 3592 // New path 3593 comparison.newPaths.push({ 3594 path: path, 3595 size: afterSize, 3596 sizeKB: Math.round(afterSize / 1024) 3597 }); 3598 } else if (afterSize === 0 && beforeSize > 0) { 3599 // Removed path 3600 comparison.removedPaths.push({ 3601 path: path, 3602 size: beforeSize, 3603 sizeKB: Math.round(beforeSize / 1024) 3604 }); 3605 } else if (sizeChange !== 0) { 3606 // Changed path 3607 comparison.pathChanges.push({ 3608 path: path, 3609 beforeSize: beforeSize, 3610 afterSize: afterSize, 3611 sizeChange: sizeChange, 3612 sizeChangeKB: Math.round(sizeChange / 1024), 3613 percentChange: beforeSize > 0 ? Math.round((sizeChange / beforeSize) * 100) : 0 3614 }); 3615 } 3616 }); 3617 3618 // Sort by absolute change 3619 comparison.pathChanges.sort((a, b) => Math.abs(b.sizeChange) - Math.abs(a.sizeChange)); 3620 comparison.newPaths.sort((a, b) => b.size - a.size); 3621 comparison.removedPaths.sort((a, b) => b.size - a.size); 3622 ; 3623 return comparison; 3624}; 3625Native.printDeepPathComparison = function(comparison) { 3626 3627 console.group('ð Deep Path Memory Analysis'); 3628 3629 console.log('ð Summary:'); 3630 console.log(' Total size change: ' + Math.round(comparison.totalSizeChange / 1024) + 'KB'); 3631 console.log(' Paths with changes: ' + comparison.pathChanges.length); 3632 console.log(' New paths: ' + comparison.newPaths.length); 3633 console.log(' Removed paths: ' + comparison.removedPaths.length); 3634 3635 if (comparison.pathChanges.length > 0) { 3636 console.group('ð Top 15 Growing Paths:'); 3637 comparison.pathChanges.slice(0, 15).forEach((change, i) => { 3638 var changeStr = (change.sizeChange > 0 ? '+' : '') + change.sizeChangeKB + 'KB'; 3639 var percentStr = change.percentChange !== 0 ? ' (' + (change.percentChange > 0 ? '+' : '') + change.percentChange + '%)' : ''; 3640 console.log((i + 1) + '. ' + change.path); 3641 console.log(' ' + changeStr + percentStr + ' [' + Math.round(change.beforeSize/1024) + 'KB â ' + Math.round(change.afterSize/1024) + 'KB]'); 3642 }); 3643 console.groupEnd(); 3644 } 3645 3646 if (comparison.newPaths.length > 0) { 3647 console.group('ð Top 10 New Paths:'); 3648 comparison.newPaths.slice(0, 10).forEach((newPath, i) => { 3649 console.log((i + 1) + '. ' + newPath.path + ': ' + newPath.sizeKB + 'KB'); 3650 }); 3651 console.groupEnd(); 3652 } 3653 3654 if (comparison.removedPaths.length > 0) { 3655 console.group('ðï¸ Top 10 Removed Paths:'); 3656 comparison.removedPaths.slice(0, 10).forEach((removedPath, i) => { 3657 console.log((i + 1) + '. ' + removedPath.path + ': ' + removedPath.sizeKB + 'KB'); 3658 }); 3659 console.groupEnd(); 3660 } 3661 3662 console.groupEnd(); 3663 ; 3664}; 3665Native.analyzeFlowMemoryLeaks = function(beforeSnapshot,afterSnapshot) { 3666 var flowChanges = []; 3667 3668 var flowPatterns = [ 3669 /^(Flow|Haxe|Material|RenderSupport|Native)/, 3670 /Manager$/, 3671 /Behaviour$/, 3672 /Transform$/, 3673 /^M[A-Z]/, // Material components 3674 /_struct/, 3675 /_id$/ 3676 ]; 3677 3678 // Check new properties 3679 for (var entry of afterSnapshot.properties) { 3680 var key = entry[0]; 3681 var afterValue = entry[1]; 3682 var isFlowRelated = flowPatterns.some(function(pattern) { 3683 return pattern.test(key); 3684 }); 3685 3686 if (isFlowRelated) { 3687 var beforeValue = beforeSnapshot.properties.get(key); 3688 if (!beforeValue) { 3689 flowChanges.push({ 3690 type: 'NEW', 3691 key: key, 3692 size: afterValue.size, 3693 constructor: afterValue.constructor 3694 }); 3695 } else if (beforeValue.size !== afterValue.size) { 3696 flowChanges.push({ 3697 type: 'CHANGED', 3698 key: key, 3699 sizeChange: afterValue.size - beforeValue.size, 3700 sizeBefore: beforeValue.size, 3701 sizeAfter: afterValue.size 3702 }); 3703 } 3704 } 3705 } 3706 3707 // Sort by impact 3708 flowChanges.sort(function(a, b) { 3709 var aSize = a.sizeChange || a.size || 0; 3710 var bSize = b.sizeChange || b.size || 0; 3711 return Math.abs(bSize) - Math.abs(aSize); 3712 }); 3713 ; 3714 return flowChanges; 3715}; 3716Native.createDeepWindowSnapshot = function() { 3717 var snapshot = { 3718 timestamp: Date.now(), 3719 properties: new Map(), 3720 objectCounts: {}, 3721 totalSize: 0 3722 } 3723 3724 // Capture all window properties with NO depth limit (like original evaluateObjectSize) 3725 for (var key in window) { 3726 try { 3727 var value = window[key]; 3728 var type = typeof value; 3729 var size = Native.estimateObjectSize(value, new WeakSet(), 0, 20); // Much deeper traversal 3730 3731 snapshot.properties.set(key, { 3732 type: type, 3733 size: size, 3734 constructor: value && value.constructor ? value.constructor.name : 'unknown', 3735 isArray: Array.isArray(value),
3736 length: value && value.length !== undefined ? value.length : -1 3737 }); 3738 3739 snapshot.totalSize += size; 3740 snapshot.objectCounts[type] = (snapshot.objectCounts[type] || 0) + 1; 3741 } catch (e) { 3742 // Some properties might not be accessible 3743 snapshot.properties.set(key, { error: e.message }); 3744 } 3745 } 3746 ; 3747 return snapshot; 3748}; 3749Native.analyzeWindowPropertyGrowth = function(propertyName,beforeSnapshot,afterSnapshot) { 3750 var result = { 3751 propertyName: propertyName, 3752 beforeSize: 0, 3753 afterSize: 0, 3754 sizeChange: 0, 3755 subProperties: [] 3756 } 3757 3758 // Get the property size from snapshots 3759 var beforeProp = beforeSnapshot.properties.get(propertyName); 3760 var afterProp = afterSnapshot.properties.get(propertyName); 3761 3762 if (!beforeProp || !afterProp) { 3763 console.log('â Property ' + propertyName + ' not found in snapshots'); 3764 return result; 3765 } 3766 3767 result.beforeSize = beforeProp.size; 3768 result.afterSize = afterProp.size; 3769 result.sizeChange = afterProp.size - beforeProp.size; 3770 3771 // Now analyze the actual object to see what's inside it 3772 try { 3773 var obj = window[propertyName]; 3774 if (!obj || typeof obj !== 'object') { 3775 console.log('â ï¸ Property ' + propertyName + ' is not an object, cannot drill down'); 3776 return result; 3777 } 3778 3779 console.log('ð Analyzing sub-properties of ' + propertyName + ':'); 3780 console.log(' Total change: ' + Math.round(result.sizeChange / 1024) + 'KB'); 3781 console.log(''); 3782 3783 // Get top-level properties of this object 3784 var subProps = []; 3785 for (var key in obj) { 3786 try { 3787 var subObj = obj[key]; 3788 var subSize = Native.estimateObjectSize(subObj, new WeakSet(), 0, 3); 3789 subProps.push({ 3790 key: key, 3791 size: subSize, 3792 type: typeof subObj, 3793 constructor: subObj && subObj.constructor ? subObj.constructor.name : 'unknown' 3794 }); 3795 } catch (e) { 3796 // Skip inaccessible properties 3797 } 3798 } 3799 3800 // Sort by size (largest first) 3801 subProps.sort(function(a, b) { return b.size - a.size; }); 3802 3803 // Show top 20 largest sub-properties 3804 console.log('ð Top sub-properties by size:'); 3805 subProps.slice(0, 20).forEach(function(prop, i) { 3806 console.log(' ' + (i+1) + '. ' + prop.key + ': ' + 3807 Math.round(prop.size / 1024) + 'KB (' + prop.type + ', ' + prop.constructor + ')'); 3808 }); 3809 3810 result.subProperties = subProps; 3811 3812 } catch (e) { 3813 console.error('â Error analyzing sub-properties:', e); 3814 } 3815 ; 3816 return result; 3817}; 3818Native.findSpecificLeaks = function() { 3819 return { 3820 // Take before and after snapshots and analyze specific known leak sources 3821 before: null, 3822 after: null, 3823 3824 takeBeforeSnapshot: function() { 3825 this.before = Native.createDeepWindowSnapshot(); 3826 console.log('ð¸ Before snapshot taken'); 3827 return this.before; 3828 }, 3829 3830 takeAfterSnapshot: function() { 3831 this.after = Native.createDeepWindowSnapshot(); 3832 console.log('ð¸ After snapshot taken'); 3833 return this.after; 3834 }, 3835 3836 analyzeLeaks: function() { 3837 if (!this.before || !this.after) { 3838 console.log('â Need both before and after snapshots. Call takeBeforeSnapshot() first, then takeAfterSnapshot()'); 3839 return; 3840 } 3841 3842 console.log('ð Analyzing specific leak sources...'); 3843 console.log(''); 3844 3845 // Analyze major properties that commonly leak 3846 var suspiciousProps = [ 3847 'RenderSupport', 'PIXI', 'MaterialManager', 'FlowFontsManager', 3848 'Native', 'HaxeRuntime', 'Platform', 'Errors', 'document' 3849 ]; 3850 3851 suspiciousProps.forEach(function(propName) { 3852 try { 3853 var analysis = Native.analyzeWindowPropertyGrowth(propName, this.before, this.after); 3854 if (Math.abs(analysis.sizeChange) > 1000) { // Only show changes > 1KB 3855 console.log(''); 3856 console.log('ð¯ ' + propName + ' grew by ' + Math.round(analysis.sizeChange / 1024) + 'KB'); 3857 } 3858 } catch (e) { 3859 // Skip properties that don't exist 3860 } 3861 }.bind(this)); 3862 }, 3863 3864 // Analyze DOM-specific leaks 3865 analyzeDOMLeaks: function() { 3866 console.log('ð Analyzing DOM-specific leaks...'); 3867 3868 try { 3869 var beforeNodes = this.before ? this.before.properties.get('document') : null; 3870 var afterNodes = this.after ? this.after.properties.get('document') : null; 3871 3872 if (beforeNodes && afterNodes) { 3873 var domGrowth = afterNodes.size - beforeNodes.size; 3874 console.log('ð DOM size change: ' + Math.round(domGrowth / 1024) + 'KB'); 3875 3876 // Count actual DOM elements 3877 var elementCount = document.getElementsByTagName('*').length; 3878 console.log('ð¢ Current DOM elements: ' + elementCount.toLocaleStr
3878ing()); 3879 3880 // Look for common DOM leak patterns 3881 this.analyzeDOMElements(); 3882 } 3883 } catch (e) { 3884 console.error('â Error analyzing DOM leaks:', e); 3885 } 3886 }, 3887 3888 analyzeDOMElements: function() { 3889 var tagCounts = {}; 3890 var elements = document.getElementsByTagName('*'); 3891 3892 for (var i = 0; i < elements.length; i++) { 3893 var tag = elements[i].tagName.toLowerCase(); 3894 tagCounts[tag] = (tagCounts[tag] || 0) + 1; 3895 } 3896 3897 // Sort by count 3898 var sortedTags = Object.keys(tagCounts) 3899 .map(function(tag) { return {tag: tag, count: tagCounts[tag]}; }) 3900 .sort(function(a, b) { return b.count - a.count; }); 3901 3902 console.log('ð·ï¸ DOM elements by type:'); 3903 sortedTags.slice(0, 10).forEach(function(item) { 3904 console.log(' ' + item.tag + ': ' + item.count.toLocaleString()); 3905 }); 3906 }, 3907 3908 // Quick workflow: take both snapshots and analyze 3909 quickAnalysis: function() { 3910 if (!this.before) { 3911 console.log('â No before snapshot. Taking one now...'); 3912 this.takeBeforeSnapshot(); 3913 console.log('ð¡ Now perform your operations that cause leaks, then call quickAnalysis() again'); 3914 return; 3915 } 3916 3917 this.takeAfterSnapshot(); 3918 this.analyzeLeaks(); 3919 this.analyzeDOMLeaks(); 3920 }, 3921 3922 // Drill deeper into specific objects that showed leaks 3923 drillDown: function(objectPath) { 3924 try { 3925 var obj = window; 3926 var pathParts = objectPath.split('.'); 3927 3928 for (var i = 0; i < pathParts.length; i++) { 3929 obj = obj[pathParts[i]]; 3930 if (!obj) { 3931 console.log('â Path not found:', objectPath); 3932 return; 3933 } 3934 } 3935 3936 console.log('ð Drilling down into: ' + objectPath); 3937 this.analyzeObjectContents(obj, objectPath, 2); 3938 3939 } catch (e) { 3940 console.error('â Error drilling down into', objectPath + ':', e); 3941 } 3942 }, 3943 3944 analyzeObjectContents: function(obj, path, maxDepth) { 3945 if (maxDepth <= 0 || !obj || typeof obj !== 'object') return; 3946 3947 var props = []; 3948 for (var key in obj) { 3949 try { 3950 var subObj = obj[key]; 3951 var size = Native.estimateObjectSize(subObj, new WeakSet(), 0, 2); 3952 props.push({ 3953 key: key, 3954 size: size, 3955 type: typeof subObj, 3956 constructor: subObj && subObj.constructor ? subObj.constructor.name : 'unknown', 3957 isArray: Array.isArray(subObj), 3958 length: Array.isArray(subObj) ? subObj.length : -1 3959 }); 3960 } catch (e) { 3961 // Skip inaccessible properties 3962 } 3963 } 3964 3965 // Sort by size 3966 props.sort(function(a, b) { return b.size - a.size; }); 3967 3968 console.log('ð Contents of ' + path + ':'); 3969 props.slice(0, 15).forEach(function(prop, i) { 3970 var info = Math.round(prop.size / 1024) + 'KB (' + prop.type; 3971 if (prop.isArray) info += ', length: ' + prop.length; 3972 info += ')'; 3973 console.log(' ' + (i+1) + '. ' + prop.key + ': ' + info); 3974 }); 3975 } 3976 } 3977}; 3978Native.memoryLeakStart = function() { 3979 3980 console.log('ð MEMORY LEAK ANALYSIS - STARTING'); 3981 console.log('=' + '='.repeat(35)); 3982 console.log('ð¸ Taking initial snapshot...'); 3983 console.log('â³ Please wait (this may take 10-20 seconds)...'); 3984 3985 try { 3986 // Take accurate snapshot 3987 window._memoryLeakBefore = Native.createAccuratePathSnapshot(window, 5); 3988 3989 console.log('â Initial snapshot completed!'); 3990 console.log('ð Paths captured:', window._memoryLeakBefore.paths.size); 3991 console.log('ð Total memory size:', Math.round(window._memoryLeakBefore.totalSize / 1024 / 1024) + 'MB'); 3992 console.log('ð Time:', new Date(window._memoryLeakBefore.timestamp).toLocaleTimeString()); 3993 console.log(''); 3994 console.log('ð¯ NOW PERFORM OPERATIONS THAT CAUSE MEMORY LEAKS'); 3995 console.log(' Then call: Native.memoryLeakAnalyze()'); 3996 3997 } catch (e) { 3998 console.error('â Error taking snapshot:', e); 3999 } 4000 ; 4001}; 4002Native.memoryLeakAnalyze = function() { 4003 4004 console.log('ð MEMORY LEAK ANALYSIS - ANALYZING'); 4005 console.log('=' + '='.repeat(35)); 4006 4007 if (!window._memoryLeakBefore) { 4008 console.log('â No initial snapshot found!'); 4009 console.log('ð¡ First run: Native.memoryLeakStart()'); 4010 return; 4011 } 4012 4013 console.log('ð¸ Taking final snapshot and comparing...'); 4014 console.log('â³ Please wait...'); 4015 4016 try { 4017 // Take after snapshot 4018 window._memoryLeakAfter = Native.createAccuratePathSnapshot(window, 5); 4019 4020 console.log('â Final snapshot completed!'); 4021 console.log('ð Paths captured:', window._memoryLeakAfter.paths.size); 4022 console.log('ð Total memory size:', Math.round(window._memoryLeakAfter.totalSize / 1024 / 1024) + 'MB'); 4023 4024 // Calculate accurate growth 4025 var actualGrowth = window._memoryLeakAfter.totalSize - window._memoryLeakBefore.totalSize; 4026 console.log(''); 4027 4028 if (actualGrowth < 0) { 4029 console.log('â MEMORY DECREASED: ' + Math.round(Math.abs(actualGrowth) / 1024 / 1024) + 'MB'); 4030 console.log('ð Memory was freed - this is GOOD news, not a leak!'); 4031 console.log('ð Freed bytes: ' + Math.abs(actualGrowth).toLocaleStr
4031ing()); 4032 console.log(''); 4033 console.log('ð¡ No analysis needed - memory is being cleaned up properly.'); 4034 console.log('ð Call Native.memoryLeakReset() to start a new analysis.'); 4035 return; 4036 } else if (actualGrowth < 1000000) { // Less than 1MB growth 4037 console.log('â¹ï¸ SMALL GROWTH DETECTED: ' + Math.round(actualGrowth / 1024 / 1024 * 100) / 100 + 'MB'); 4038 console.log('ð Growth in bytes: ' + actualGrowth.toLocaleString()); 4039 console.log(''); 4040 if (actualGrowth < 100000) { // Less than 100KB 4041 console.log('â This is very small and likely normal app usage.'); 4042 console.log('ð¡ No detailed analysis needed - this is not a significant leak.'); 4043 console.log('ð Call Native.memoryLeakReset() to start fresh if needed.'); 4044 return; 4045 } else { 4046 console.log('â¹ï¸ Growth is small but measurable. Proceeding with light analysis...'); 4047 } 4048 } else { 4049 console.log('ð¨ SIGNIFICANT MEMORY GROWTH DETECTED: ' + Math.round(actualGrowth / 1024 / 1024) + 'MB'); 4050 console.log('ð Growth in bytes: ' + actualGrowth.toLocaleString()); 4051 console.log('â ï¸ This indicates a potential memory leak!'); 4052 } 4053 4054 // Compare paths 4055 var comparison = Native.compareDeepPathSnapshots(window._memoryLeakBefore, window._memoryLeakAfter); 4056 comparison.totalSizeChange = actualGrowth; 4057 window._memoryLeakComparison = comparison; 4058 4059 // Print results 4060 Native.printDeepPathComparison(comparison); 4061 4062 console.log(''); 4063 console.log('ð¯ DETAILED PATH ANALYSIS:');
4064 console.log('ð¡ Call Native.memoryLeakDetails() for detailed investigation'); 4065 console.log('ð Call Native.memoryLeakMonitor() to monitor ongoing growth'); 4066 4067 } catch (e) { 4068 console.error('â Error during analysis:', e); 4069 } 4070 ; 4071}; 4072Native.memoryLeakDetails = function() { 4073 4074 console.log('ðµï¸ MEMORY LEAK - DETAILED PATH ANALYSIS'); 4075 console.log('=' + '='.repeat(40)); 4076 4077 if (!window._memoryLeakComparison) { 4078 console.log('â No analysis data found!'); 4079 console.log('ð¡ Run Native.memoryLeakStart() then Native.memoryLeakAnalyze() first'); 4080 return; 4081 } 4082 4083 var comparison = window._memoryLeakComparison; 4084 4085 if (comparison.pathChanges.length > 0) { 4086 console.log('ð¥ TOP 10 MEMORY GROWTH LOCATIONS:'); 4087 4088 comparison.pathChanges.slice(0, 10).forEach(function(change, i) { 4089 console.log('\n' + (i + 1) + '. ð PATH: ' + change.path); 4090 console.log(' ð GROWTH: ' + (change.sizeChangeKB > 0 ? '+' : '') + change.sizeChangeKB + 'KB (' + change.percentChange + '%)'); 4091 console.log(' ð SIZE: ' + Math.round(change.beforeSize/1024) + 'KB â ' + Math.round(change.afterSize/1024) + 'KB'); 4092 4093 // Try to inspect the actual object 4094 try { 4095 var pathParts = change.path.split('.'); 4096 var obj = window; 4097 4098 for (var j = 0; j < pathParts.length; j++) { 4099 var part = pathParts[j]; 4100 if (obj && typeof obj === 'object' && part in obj) { 4101 obj = obj[part]; 4102 } else { 4103 obj = null; 4104 break; 4105 } 4106 } 4107 4108 if (obj !== null) { 4109 console.log(' ð TYPE: ' + typeof obj); 4110 if (obj.constructor) console.log(' ðï¸ CONSTRUCTOR: ' + obj.constructor.name); 4111 4112 if (Array.isArray(obj)) { 4113 console.log(' ð ARRAY LENGTH: ' + obj.length.toLocaleString()); 4114 if (obj.length > 0) { 4115 var sampleTypes = obj.slice(0, 3).map(function(x) { return typeof x; }); 4116 console.log(' ð¬ SAMPLE TYPES: ' + sampleTypes.join(', ')); 4117 4118 // Show sample content for small arrays 4119 if (obj.length <= 10) { 4120 console.log(' ð CONTENT: ' + obj.slice(0, 5).map(function(x) { 4121 return typeof x === 'string' ? '"' + x.substring(0, 20) + '"' : String(x).substring(0, 20); 4122 }).join(', ')); 4123 } 4124 } 4125 } else if (typeof obj === 'object' && obj !== null) { 4126 var keys = Object.keys(obj); 4127 console.log(' ð PROPERTIES: ' + keys.length.toLocaleString()); 4128 if (keys.length > 0 && keys.length <= 10) { 4129 console.log(' ð·ï¸ KEYS: ' + keys.join(', ')); 4130 } else if (keys.length > 10) { 4131 console.log(' ð·ï¸ SAMPLE KEYS: ' + keys.slice(0, 5).join(', ') + ', ...'); 4132 } 4133 } else if (typeof obj === 'string') { 4134 console.log(' ð STRING LENGTH: ' + obj.length.toLocaleString()); 4135 console.log(' ð PREVIEW: "' + obj.substring(0, 100) + (obj.length > 100 ? '...' : '') + '"'); 4136 } 4137 } 4138 } catch (e) { 4139 console.log(' â Cannot analyze: ' + e.message); 4140 } 4141 }); 4142 } 4143 4144 if (comparison.newPaths.length > 0) { 4145 console.log('\nð TOP 5 NEW OBJECTS:');
4146 comparison.newPaths.slice(0, 5).forEach(function(newPath, i) { 4147 console.log((i + 1) + '. ' + newPath.path + ': ' + newPath.sizeKB + 'KB'); 4148 }); 4149 } 4150 4151 console.log('\nð¡ TIPS:'); 4152 console.log('⢠Look for arrays that keep growing (length increasing)'); 4153 console.log('⢠Check for objects with more properties over time'); 4154 console.log('⢠Watch for caches that never get cleared'); 4155 console.log('⢠Strings that keep getting longer indicate text accumulation'); 4156 ; 4157}; 4158Native.memoryLeakMonitor = function() { 4159 4160 console.log('â±ï¸ MEMORY LEAK - CONTINUOUS MONITORING'); 4161 console.log('=' + '='.repeat(40)); 4162 4163 if (!window._memoryLeakComparison || !window._memoryLeakComparison.pathChanges.length) { 4164 console.log('â No growth paths to monitor!'); 4165 console.log('ð¡ Run Native.memoryLeakStart() and Native.memoryLeakAnalyze() first'); 4166 return; 4167 } 4168 4169 // Get top growing paths to monitor 4170 var topPaths = window._memoryLeakComparison.pathChanges.slice(0, 5).map(function(c) { return c.path; }); 4171 4172 console.log('ð¯ Monitoring these paths for continued growth:'); 4173 topPaths.forEach(function(path, i) { 4174 console.log((i + 1) + '. ' + path); 4175 }); 4176 4177 // Store initial sizes for monitoring 4178 var initialSizes = new Map(); 4179 4180 topPaths.forEach(function(path) { 4181 try { 4182 var pathParts = path.split('.'); 4183 var obj = window; 4184 4185 for (var i = 0; i < pathParts.length; i++) { 4186 var part = pathParts[i]; 4187 if (obj && typeof obj === 'object' && part in obj) { 4188 obj = obj[part]; 4189 } else { 4190 obj = null; 4191 break; 4192 } 4193 } 4194 4195 if (obj !== null) { 4196 var size = Native.estimateObjectSize(obj, new WeakSet(), 0, 2); 4197 initialSizes.set(path, size); 4198 } 4199 } catch (e) { 4200 console.log('Cannot monitor ' + path + ': ' + e.message); 4201 } 4202 }); 4203 4204 console.log('â Monitoring started - checking every 10 seconds'); 4205 console.log('â¹ï¸ Will stop automatically after 2 minutes'); 4206 console.log('ð Or stop manually with: clearInterval(' + 'window._memoryMonitorId' + ')'); 4207 4208 var checkCount = 0; 4209 var maxChecks = 12; // 2 minutes 4210 4211 window._memoryMonitorId = setInterval(function() { 4212 checkCount++; 4213 var anyChanges = false; 4214 4215 console.log('\nð Monitor Check #' + checkCount + ':'); 4216
4217 initialSizes.forEach(function(initialSize, path) { 4218 try { 4219 var pathParts = path.split('.'); 4220 var obj = window; 4221 4222 for (var i = 0; i < pathParts.length; i++) { 4223 var part = pathParts[i]; 4224 if (obj && typeof obj === 'object' && part in obj) { 4225 obj = obj[part]; 4226 } else { 4227 obj = null; 4228 break; 4229 } 4230 } 4231 4232 if (obj !== null) { 4233 var currentSize = Native.estimateObjectSize(obj, new WeakSet(), 0, 2); 4234 var growth = currentSize - initialSize; 4235 4236 if (Math.abs(growth) > 10000) { // Report changes > 10KB 4237 console.log(' ð ' + path + ': ' + (growth > 0 ? '+' : '') + Math.round(growth/1024) + 'KB'); 4238 anyChanges = true; 4239 4240 // Update initial size for next comparison 4241 initialSizes.set(path, currentSize); 4242 } 4243 } 4244 } catch (e) { 4245 // Skip errors 4246 } 4247 }); 4248 4249 if (!anyChanges) { 4250 console.log(' â No significant changes detected'); 4251 } 4252 4253 if (checkCount >= maxChecks) { 4254 clearInterval(window._memoryMonitorId); 4255 console.log('\nâ¹ï¸ Monitoring stopped after 2 minutes'); 4256 delete window._memoryMonitorId; 4257 } 4258 }, 10000); 4259 ; 4260}; 4261Native.memoryLeakReset = function() { 4262 4263 console.log('ðï¸ MEMORY LEAK ANALYSIS - RESET'); 4264 console.log('=' + '='.repeat(30)); 4265 4266 // Clear stored data 4267 delete window._memoryLeakBefore; 4268 delete window._memoryLeakAfter; 4269 delete window._memoryLeakComparison; 4270 4271 // Stop monitoring if running 4272 if (window._memoryMonitorId) { 4273 clearInterval(window._memoryMonitorId); 4274 delete window._memoryMonitorId; 4275 console.log('â¹ï¸ Stopped monitoring'); 4276 } 4277 4278 console.log('â Analysis data cleared'); 4279 console.log('ð¡ Ready for new analysis - call Native.memoryLeakStart()'); 4280 ; 4281}; 4282Native.memoryLeakHelp = function() { 4283 4284 console.log('â MEMORY LEAK ANALYSIS - HELP & USAGE'); 4285 console.log('=' + '='.repeat(40)); 4286 console.log(''); 4287 console.log('ð¯ BASIC USAGE (4 simple steps):'); 4288 console.log(' 1. Native.memoryLeakStart() - Take initial snapshot'); 4289 console.log(' 2. [Use your app - navigate, create UI, etc.]'); 4290 console.log(' 3. Native.memoryLeakAnalyze() - Find what grew');
4291 console.log(' 4. Native.memoryLeakDetails() - See detailed analysis'); 4292 console.log(''); 4293 console.log('ð AVAILABLE FUNCTIONS:'); 4294 console.log(' Native.memoryLeakStart() - Begin analysis (takes snapshot)'); 4295 console.log(' Native.memoryLeakAnalyze() - Compare & find memory growth'); 4296 console.log(' Native.memoryLeakDetails() - Detailed breakdown of growth'); 4297 console.log(' Native.memoryLeakMonitor() - Monitor ongoing growth (2 min)'); 4298 console.log(' Native.memoryLeakReset() - Clear data & start fresh'); 4299 console.log(' Native.memoryLeakHelp() - Show this help'); 4300 console.log(''); 4301 console.log('ð¡ EXAMPLE WORKFLOW:'); 4302 console.log(' > Native.memoryLeakStart()'); 4303 console.log(' ð¸ Initial snapshot taken...'); 4304 console.log(' [Navigate your app, trigger suspected leak]'); 4305 console.log(' > Native.memoryLeakAnalyze()'); 4306 console.log(' ð Shows: "PIXI.utils.TextureCache grew +45MB"'); 4307 console.log(' > Native.memoryLeakDetails()'); 4308 console.log(' ð Shows: "Array length: 1,234 textures"'); 4309 console.log(''); 4310 console.log('ð¯ WHAT TO LOOK FOR:'); 4311 console.log(' ⢠Arrays that keep getting longer'); 4312 console.log(' ⢠Objects with more properties over time'); 4313 console.log(' ⢠Caches that never get cleared'); 4314 console.log(' ⢠Strings that keep growing'); 4315 console.log(' ⢠Texture/image data accumulating'); 4316 console.log(''); 4317 console.log('â¡ QUICK CHECK - Current memory:'); 4318 console.log(' Total: ' + Math.round(Native.evaluateObjectSize(window) / 1024 / 1024) + 'MB'); 4319 console.log(' PIXI textures: ' + Object.keys(PIXI.utils.TextureCache).length); 4320 console.log(' DOM elements: ' + document.querySelectorAll('*').length.toLocaleString()); 4321 ; 4322}; 4323Native.analyzeStyleElementsLeak = function() { 4324 4325 console.log('ð¨ Analyzing Style Elements Leak:'); 4326 console.log(''); 4327 4328 var styleElements = document.querySelectorAll('style'); 4329 console.log('ð Total <style> elements: ' + styleElements.length); 4330 4331 if (styleElements.length > 20) { 4332 console.log('â ï¸ WARNING: ' + styleElements.length + ' style elements is excessive!'); 4333 console.log(' This suggests CSS is being added without cleanup.'); 4334 console.log(''); 4335 } 4336 4337 // Analyze style content 4338 var totalStyleContent = 0; 4339 var styleSources = {}; 4340 var duplicateStyles = 0; 4341 var seenContent = new Set(); 4342 4343 for (var i = 0; i < Math.min(styleElements.length, 50); i++) { 4344 var style = styleElements[i]; 4345 var content = style.textContent || style.innerHTML || ''; 4346 var contentLength = content.length; 4347 totalStyleContent += contentLength; 4348 4349 // Check for duplicates 4350 if (seenContent.has(content) && content.length > 10) { 4351 duplicateStyles++; 4352 } 4353 seenContent.add(content); 4354 4355 // Try to identify source 4356 var source = 'unknown'; 4357 if (content.includes('pixi')) source = 'PIXI'; 4358 else if (content.includes('material') || content.includes('Material')) source = 'Material'; 4359 else if (content.includes('flow') || content.includes('Flow')) source = 'Flow'; 4360 else if (content.includes('font')) source = 'Font'; 4361 else if (content.length < 100) source = 'small'; 4362 else source = 'large'; 4363 4364 styleSources[source] = (styleSources[source] || 0) + 1; 4365 4366 // Show first few for inspection 4367 if (i < 5) { 4368 console.log('Style ' + (i+1) + ': ' + contentLength + ' chars, source: ' + source); 4369 if (contentLength < 200) { 4370 console.log(' Content: ' + content.substring(0, 100) + (content.length > 100 ? '...' : '')); 4371 } 4372 } 4373 } 4374 4375 console.log(''); 4376 console.log('ð Style Statistics:'); 4377 console.log(' Total style content: ' + Math.round(totalStyleContent / 1024) + 'KB'); 4378 console.log(' Duplicate styles: ' + duplicateStyles); 4379 console.log(' Average size per style: ' + Math.round(totalStyleContent / styleElements.length) + ' chars'); 4380 4381 console.log(''); 4382 console.log('ð·ï¸ Style sources:'); 4383 Object.keys(styleSources).forEach(function(source) { 4384 console.log(' ' + source + ': ' + styleSources[source] + ' elements'); 4385 }); 4386 4387 // Recommendations 4388 console.log(''); 4389 console.log('ð¡ Recommendations:'); 4390 if (styleElements.length > 50) { 4391 console.log(' ð´ CRITICAL: ' + styleElements.length + ' style elements indicates a severe CSS leak'); 4392 console.log(' ð§ Check for: CSS being added on every render/update cycle'); 4393 } 4394 if (duplicateStyles > 5) { 4395 console.log(' ð¡ ' + duplicateStyles + ' duplicate styles - check for redundant CSS insertion'); 4396 } 4397 if (styleSources.PIXI > 10) { 4398 console.log(' ð¯ PIXI styles: ' + styleSources.PIXI + ' - check PIXI CSS generation'); 4399 } 4400 ; 4401}; 4402Native.copyAction = function(textArea) { 4403 try { 4404 textArea.select(); 4405 var successful = window.document.execCommand("copy"); 4406 if(!successful) { 4407 Errors.warning("Browser \"copy\" command execution was unsuccessful"); 4408 } 4409 } catch( _g ) { 4410 haxe_NativeStackTrace.lastError = _g; 4411 Errors.report("Oops, unable to copy"); 4412 } 4413}; 4414Native.setClipboard = function(text) { 4415 var focusedElement = window.document.activeElement; 4416 if(window.clipboardData && window.clipboardData.setData) { 4417 window.clipboardData.setData("Text",text); 4418 } else if($global.navigator.clipboard && ($_=$global.navigator.clipboard,$bind($_,$_.writeText))) { 4419 $global.navigator.clipboard.writeText(text); 4420 } else { 4421 var textArea = Native.createInvisibleTextArea(); 4422 textArea.value = text; 4423 if(text.length < 10000) { 4424 Native.copyAction(textArea); 4425 window.document.body.removeChild(textArea); 4426 } else { 4427 setTimeout(function() { 4428 Native.copyAction(textArea); 4429 window.document.body.removeChild(textArea); 4430 },0); 4431 } 4432 } 4433 focusedElement.focus(); 4434 Native.clipboardData = text; 4435}; 4436Native.getClipboard = function() { 4437 if(window.clipboardData && window.clipboardData.getData) { 4438 return window.clipboardData.getData("Text"); 4439 } 4440 if(Native.isNew) { 4441 return Native.clipboardData; 4442 } 4443 var focusedElement = window.document.activeElement; 4444 var result = Native.clipboardData; 4445 var textArea = Native.createInvisibleTextArea(); 4446 textArea.value = ""; 4447 textArea.select(); 4448 try { 4449 4450 if (typeof RenderSupport !== 'undefined') { 4451 RenderSupport.disablePasteEventListener(); 4452 } 4453 ; 4454 var successful = window.document.execCommand("paste"); 4455 if(successful) { 4456 result = textArea.value; 4457 } else { 4458 Errors.warning("Browser \"paste\" command execution was unsuccessful"); 4459 } 4460 } catch( _g ) { 4461 haxe_NativeStackTrace.lastError = _g; 4462 Errors.report("Oops, unable to paste"); 4463 } 4464 4465 if (typeof RenderSupport !== 'undefined') { 4466 RenderSupport.enablePasteEventListener(); 4467 } 4468 ; 4469 window.document.body.removeChild(textArea); 4470 4471 if (typeof RenderSupport !== 'undefined') { 4472 RenderSupport.deferUntilRender(function() { 4473 focusedElement.focus(); 4474 }); 4475 } else { 4476 focusedElement.focus(); 4477 } 4478 ; 4479 return result; 4480}; 4481Native.getClipboardToCB = function(callback) { 4482 if(window.clipboardData && window.clipboardData.getData) { 4483 callback(window.clipboardData.getData("Text")); 4484 } else if(navigator.clipboard && navigator.clipboard.readText) { 4485 navigator.clipboard.readText().then(callback,function(e) { 4486 Errors.print(e); 4487 }); 4488 } else { 4489 callback(Native.clipboardData); 4490 } 4491}; 4492Native.setCurrentDirectory = function(path) { 4493}; 4494Native.getCurrentDirectory = function() { 4495 return ""; 4496}; 4497Native.getClipboardFormat = function(mimetype) { 4498 if(mimetype == "html" || mimetype == "text/html") { 4499 return Native.clipboardDataHtml; 4500 } else { 4501 return ""; 4502 } 4503}; 4504Native.getApplicationPath = function() { 4505 return ""; 4506}; 4507Native.getApplicationArguments = function() { 4508 return []; 4509}; 4510Native.toString = function(value,keepStringEscapes) { 4511 if(keepStringEscapes == null) { 4512 keepStringEscapes = false;
4513 } 4514 return HaxeRuntime.toString(value,keepStringEscapes); 4515}; 4516Native.toStringForJson = function(value) { 4517 return HaxeRuntime.toStringForJson(value); 4518}; 4519Native.gc = function() { 4520}; 4521Native.addHttpHeader = function(data) { 4522}; 4523Native.getCgiParameter = function(name) { 4524 return ""; 4525}; 4526Native.subrange = function(arr,start,len) { 4527 if(start < 0 || len < 1) { 4528 return []; 4529 } else { 4530 return arr.slice(start,start + len); 4531 } 4532}; 4533Native.removeIndex = function(src,index) { 4534 if(index >= 0 && index < src.length) { 4535 var dst = new Array(src.length - 1); 4536 var i = 0; 4537 while(i < index) { 4538 dst[i] = src[i]; 4539 ++i; 4540 } 4541 while(i < dst.length) { 4542 dst[i] = src[i + 1]; 4543 ++i; 4544 } 4545 return dst; 4546 } else { 4547 return src; 4548 } 4549}; 4550Native.isArray = function(a) { 4551 return Array.isArray(a); 4552}; 4553Native.isSameStructType = function(a,b) { 4554 if(!Array.isArray(a) && !Array.isArray(b) && Object.prototype.hasOwnProperty.call(a,"_id") && Object.prototype.hasOwnProperty.call(b,"_id")) { 4555 return a._id == b._id; 4556 } else { 4557 return false; 4558 } 4559}; 4560Native.isSameObj = function(a,b) { 4561 if(a == b) { 4562 return true; 4563 } 4564 if(a != null && b != null && Object.prototype.hasOwnProperty.call(a,"_id") && a._id == b._id && HaxeRuntime._structargs_.h[a._id].length == 0) { 4565 return true; 4566 } 4567 return false; 4568}; 4569Native.length__ = function(arr) { 4570 return arr.length; 4571}; 4572Native.strSplit = function(str,separator) { 4573 return str.split(separator); 4574}; 4575Native.strlen = function(s) { 4576 return s.length; 4577}; 4578Native.strIndexOf = function(str,substr) { 4579 return str.indexOf(substr,0); 4580}; 4581Native.strRangeIndexOf = function(str,substr,start,end) { 4582 if(str == "" || start < 0) { 4583 return -1; 4584 } 4585 var s = start; 4586 var e = end > str.length || end < 0 ? str.length : end; 4587 if(substr.length == 0) { 4588 return 0; 4589 } else if(substr.length > e - s) { 4590 return -1; 4591 } 4592 if(2 * (e - s) < str.length - s) { 4593 if(end >= str.length) { 4594 return str.indexOf(substr,start); 4595 } 4596 var rv = HxOverrides.substr(str,start,end - start).indexOf(substr,0); 4597 if(rv < 0) { 4598 return rv; 4599 } else { 4600 return start + rv; 4601 } 4602 } else { 4603 var pos = str.indexOf(substr,s); 4604 var finish = pos + substr.length - 1; 4605 if(pos < 0) { 4606 return -1; 4607 } else if(finish < e) { 4608 return pos; 4609 } else { 4610 return -1; 4611 } 4612 } 4613}; 4614Native.substring = function(str,start,end) { 4615 var s = HxOverrides.substr(str,start,end); 4616 if(2 * s.length < str.length) { 4617 return (" " + s).slice(1); 4618 } else { 4619 return s; 4620 } 4621}; 4622Native.cloneString = function(str) { 4623 return (" " + str).slice(1); 4624}; 4625Native.toLowerCase = function(str) { 4626 return str.toLowerCase(); 4627}; 4628Native.toUpperCase = function(str) { 4629 return str.toUpperCase(); 4630}; 4631Native.strReplace = function(str,find,replace) { 4632 return StringTools.replace(str,find,replace); 4633}; 4634Native.string2utf8 = function(str) { 4635 var bytes = haxe_io_Bytes.ofString(str); 4636 var _g = []; 4637 var _g1 = 0; 4638 var _g2 = bytes.length; 4639 while(_g1 < _g2) { 4640 var i = _g1++; 4641 _g.push(bytes.b[i]); 4642 } 4643 var a = _g; 4644 return a; 4645}; 4646Native.s2a = function(str) { 4647 var arr = []; 4648 var _g = 0; 4649 var _g1 = str.length; 4650 while(_g < _g1) { 4651 var i = _g++; 4652 arr.push(HxOverrides.cca(str,i)); 4653 } 4654 return arr; 4655}; 4656Native.list2string = function(h) { 4657 var res = ""; 4658 while(Object.prototype.hasOwnProperty.call(h,"head")) { 4659 var s = Std.string(h.head); 4660 res = s + res; 4661 h = h.tail; 4662 } 4663 return res; 4664}; 4665Native.list2arrayMapi = function(h,clos) { 4666 var cnt = 0; 4667 var p = h; 4668 while(Object.prototype.hasOwnProperty.call(p,"head")) { 4669 ++cnt; 4670 p = p.tail; 4671 } 4672 if(cnt == 0) { 4673 return Array(0); 4674 } 4675 var result = Array(cnt); 4676 p = h; 4677 --cnt; 4678 while(cnt >= 0) { 4679 result[cnt] = clos(cnt,p.head); 4680 --cnt; 4681 p = p.tail; 4682 } 4683 return result; 4684}; 4685Native.list2array = function(h) { 4686 return Native.list2arrayMapi(h,function(i,li) { 4687 return li; 4688 }); 4689}; 4690Native.list2arrayByCount = function(h,count) { 4691 if(count <= 0) { 4692 return Array(0); 4693 } 4694 var result = Array(count); 4695 var cnt = count - 1; 4696 var p = h; 4697 while(cnt >= 0) { 4698 result[cnt] = p.head; 4699 --cnt; 4700 p = p.tail; 4701 } 4702 return result; 4703}; 4704Native.bitXor = function(a,b) { 4705 return a ^ b; 4706}; 4707Native.bitAnd = function(a,b) { 4708 return a & b; 4709}; 4710Native.bitOr = function(a,b) { 4711 return a | b; 4712}; 4713Native.bitUshr = function(a,b) { 4714 return a >>> b; 4715}; 4716Native.bitShl = function(a,b) { 4717 return a << b; 4718}; 4719Native.bitNot = function(a) { 4720 return ~a; 4721}; 4722Native.concat = function(arr1,arr2) { 4723 return arr1.concat(arr2); 4724}; 4725Native.replace = function(arr,i,v) { 4726 if(arr == null) { 4727 return []; 4728 } else if(i < 0 || i > arr.length) { 4729 Native.println("replace: array index is out of bounds: " + HaxeRuntime.toString(i,false) + " of " + HaxeRuntime.toString(arr.length,false));
4730 Native.println(haxe_CallStack.toString(haxe_CallStack.callStack())); 4731 return arr; 4732 } else if(i == arr.length && Native.useConcatForPush) { 4733 return arr.concat([v]); 4734 } else { 4735 var new_arr = arr.slice(0,arr.length); 4736 new_arr[i] = v; 4737 return new_arr; 4738 } 4739}; 4740Native.map = function(values,clos) { 4741 var n = values.length; 4742 var result = Array(n); 4743 var _g = 0; 4744 var _g1 = n; 4745 while(_g < _g1) { 4746 var i = _g++; 4747 result[i] = clos(values[i]); 4748 } 4749 return result; 4750}; 4751Native.iter = function(values,clos) { 4752 var _g = 0; 4753 while(_g < values.length) { 4754 var v = values[_g]; 4755 ++_g; 4756 clos(v); 4757 } 4758}; 4759Native.mapi = function(values,clos) { 4760 var n = values.length; 4761 var result = Array(n); 4762 var _g = 0; 4763 var _g1 = n; 4764 while(_g < _g1) { 4765 var i = _g++; 4766 result[i] = clos(i,values[i]); 4767 } 4768 return result; 4769}; 4770Native.iteri = function(values,clos) { 4771 var i = 0; 4772 var _g = 0; 4773 while(_g < values.length) { 4774 var v = values[_g]; 4775 ++_g; 4776 clos(i,v); 4777 ++i; 4778 } 4779}; 4780Native.iteriUntil = function(values,clos) { 4781 var i = 0; 4782 var _g = 0; 4783 while(_g < values.length) { 4784 var v = values[_g]; 4785 ++_g; 4786 if(clos(i,v)) { 4787 return i; 4788 } 4789 ++i; 4790 } 4791 return i; 4792}; 4793Native.fold = function(values,init,fn) { 4794 var _g = 0; 4795 while(_g < values.length) { 4796 var v = values[_g]; 4797 ++_g; 4798 init = fn(init,v); 4799 } 4800 return init; 4801}; 4802Native.foldi = function(values,init,fn) { 4803 var i = 0; 4804 var _g = 0; 4805 while(_g < values.length) { 4806 var v = values[_g]; 4807 ++_g; 4808 init = fn(i,init,v); 4809 ++i; 4810 } 4811 return init; 4812}; 4813Native.filter = function(values,clos) { 4814 var result = []; 4815 var _g = 0; 4816 while(_g < values.length) { 4817 var v = values[_g]; 4818 ++_g; 4819 if(clos(v)) { 4820 result.push(v); 4821 } 4822 } 4823 return result; 4824}; 4825Native.filtermapi = function(values,clos) { 4826 var result = []; 4827 var n = values.length; 4828 var _g = 0; 4829 var _g1 = n; 4830 while(_g < _g1) { 4831 var i = _g++; 4832 var v = values[i]; 4833 var maybe = clos(i,v); 4834 var fields = Reflect.fields(maybe); 4835 if(fields.length == 2) { 4836 var _g2 = 0; 4837 while(_g2 < fields.length) { 4838 var f = fields[_g2]; 4839 ++_g2; 4840 if(f != "_id") { 4841 var val = Reflect.field(maybe,f); 4842 result.push(val); 4843 } 4844 } 4845 } 4846 } 4847 return result; 4848}; 4849Native.mapiM = function(values,clos) { 4850 var result = []; 4851 var n = values.length; 4852 var _g = 0; 4853 var _g1 = n; 4854 while(_g < _g1) { 4855 var i = _g++; 4856 var v = values[i]; 4857 var maybe = clos(i,v); 4858 var fields = Reflect.fields(maybe); 4859 if(fields.length == 2) { 4860 var _g2 = 0; 4861 while(_g2 < fields.length) { 4862 var f = fields[_g2]; 4863 ++_g2; 4864 if(f != "_id") { 4865 var val = Reflect.field(maybe,f); 4866 result.push(val); 4867 } 4868 } 4869 } else { 4870 return maybe; 4871 } 4872 } 4873 return HaxeRuntime.makeStructValue("Some",[result],HaxeRuntime.makeStructValue("IllegalStruct",[],null)); 4874}; 4875Native.random = function() { 4876 return Math.random(); 4877}; 4878Native.makeUuid = function() { 4879 return Crypto.randomUUID(); 4880}; 4881Native.deleteNative = function(clip) { 4882 if(clip != null && !clip.destroyed) { 4883 if(clip.destroy != null) { 4884 clip.destroy({ children : true, texture : true, baseTexture : true}); 4885 } 4886 if(clip.parent != null && clip.parent.removeChild != null) { 4887 clip.parent.removeChild(clip); 4888 } 4889 if(!Platform.isIE && clip.nativeWidget != null) { 4890 clip.nativeWidget.style.display = "none"; 4891 } 4892 4893 if (typeof RenderSupport !== 'undefined' && (clip.nativeWidget != null || clip.accessWidget != null)) { 4894 RenderSupport.once('drawframe', function() { 4895 DisplayObjectHelper.deleteNativeWidget(clip); 4896 }); 4897 } 4898 ; 4899 clip.destroyed = true; 4900 } 4901}; 4902Native.timestamp = function() { 4903 return NativeTime.timestamp(); 4904}; 4905Native.getLocalTimezoneId = function() { 4906 return new Intl.DateTimeFormat().resolvedOptions().timeZone; 4907}; 4908Native.getTimezoneTimeString = function(utcStamp,timezoneId,language) { 4909 var date = new Date(utcStamp); 4910 var tzName = "short"; 4911 if(timezoneId == "") { 4912 timezoneId = "UTC"; 4913 } 4914 var tz = timezoneId; 4915 return date.toLocaleString(language,{ timeZone : tz, timeZoneName : tzName}); 4916}; 4917Native.getTimezoneOffset = function(utcStamp,timezoneId) { 4918 if(timezoneId == "") { 4919 return 0; 4920 } 4921 var tz = timezoneId; 4922 var stamp; 4923 try {
4924 var timeString = new Date(utcStamp).toLocaleString("en-us",{ timeZone : tz}); 4925 stamp = new Date(timeString).getTime(); 4926 } catch( _g ) { 4927 haxe_NativeStackTrace.lastError = _g; 4928 return 0; 4929 } 4930 var localOffset = new Date(utcStamp).getTimezoneOffset(); 4931 return Math.round(Math.round((stamp - utcStamp) / 600) / 100 - localOffset) * 60 * 1000; 4932}; 4933Native.getCurrentDate = function() { 4934 var date = new Date(); 4935 return HaxeRuntime.makeStructValue("Date",[date.getFullYear(),date.getMonth() + 1,date.getDate()],HaxeRuntime.makeStructValue("IllegalStruct",[],null)); 4936}; 4937Native.defer = function(cb) { 4938 var fn = function() { 4939 var t0 = NativeTime.timestamp(); 4940 while(NativeTime.timestamp() - t0 < Native.deferTolerance && Native.DeferQueue.length > 0) { 4941 var f = Native.DeferQueue.shift(); 4942 f(); 4943 } 4944 if(Native.DeferQueue.length > 0) { 4945 setTimeout(fn, 42); 4946 } else { 4947 Native.deferActive = false; 4948 } 4949 }; 4950 if(Native.deferActive) { 4951 Native.DeferQueue.push(cb); 4952 } else { 4953 Native.deferActive = true; 4954 Native.DeferQueue.push(cb); 4955 setTimeout(fn, 0); 4956 } 4957}; 4958Native.setInterval = function(ms,cb) { 4959 var fn = function() { 4960 try { 4961 cb(); 4962 } catch( _g ) { 4963 haxe_NativeStackTrace.lastError = _g; 4964 var e = haxe_Exception.caught(_g).unwrap(); 4965 var stackAsString = "n/a"; 4966 var actualStack = Assert.callStackToString(haxe_CallStack.callStack()); 4967 var crashInfo = Std.string(e) + "\nStack at timer creation:\n" + stackAsString + "\nStack:\n" + actualStack; 4968 Native.println("FATAL ERROR: timer callback: " + crashInfo); 4969 Assert.printStack(e); 4970 Native.callFlowCrashHandlers("[Timer Handler]: " + crashInfo); 4971 } 4972 }; 4973 var t = setInterval(fn, ms); 4974 return function() { 4975 clearInterval(t); 4976 }; 4977}; 4978Native.interruptibleTimer = function(ms,cb) { 4979 var fn = function() { 4980 try { 4981 cb(); 4982 } catch( _g ) { 4983 haxe_NativeStackTrace.lastError = _g; 4984 var e = haxe_Exception.caught(_g).unwrap(); 4985 var stackAsString = "n/a"; 4986 var actualStack = Assert.callStackToString(haxe_CallStack.callStack()); 4987 var crashInfo = Std.string(e) + "\nStack at timer creation:\n" + stackAsString + "\nStack:\n" + actualStack; 4988 Native.println("FATAL ERROR: timer callback: " + crashInfo); 4989 Assert.printStack(e); 4990 Native.callFlowCrashHandlers("[Timer Handler]: " + crashInfo); 4991 } 4992 }; 4993 if(ms == 0) { 4994 var alive = true; 4995 Native.defer(function() { 4996 if(alive) { 4997 fn(); 4998 } 4999 }); 5000 return function() { 5001 alive = false; 5002 }; 5003 } 5004 var t = setTimeout(fn, ms); 5005 return function() { 5006 clearTimeout(t); 5007 }; 5008}; 5009Native.timer = function(ms,cb) { 5010 Native.interruptibleTimer(ms,cb); 5011}; 5012Native.sin = function(a) { 5013 return Math.sin(a); 5014}; 5015Native.asin = function(a) { 5016 return Math.asin(a); 5017}; 5018Native.acos = function(a) { 5019 return Math.acos(a); 5020}; 5021Native.atan = function(a) { 5022 return Math.atan(a); 5023}; 5024Native.atan2 = function(a,b) { 5025 return Math.atan2(a,b); 5026}; 5027Native.exp = function(a) { 5028 return Math.exp(a); 5029}; 5030Native.log = function(a) { 5031 return Math.log(a); 5032}; 5033Native.generate = function(from,to,fn) { 5034 var n = to - from; 5035 if(n <= 0) { 5036 return Array(0); 5037 } 5038 var result = Array(n); 5039 var _g = 0; 5040 var _g1 = n; 5041 while(_g < _g1) { 5042 var i = _g++; 5043 result[i] = fn(i + from); 5044 } 5045 return result; 5046}; 5047Native.enumFromTo = function(from,to) { 5048 var n = to - from + 1; 5049 if(n <= 0) { 5050 return Array(0); 5051 } 5052 var result = Array(n); 5053 var _g = 0; 5054 var _g1 = n; 5055 while(_g < _g1) { 5056 var i = _g++; 5057 result[i] = i + from; 5058 } 5059 return result; 5060}; 5061Native.getAllUrlParameters = function() { 5062 var parameters_h = Object.create(null); 5063 var paramString = window.location.search.substring(1); 5064 var params = paramString.split("&"); 5065 var _g = 0; 5066 while(_g < params.length) { 5067 var keyvalue = params[_g]; 5068 ++_g; 5069 var pair = keyvalue.split("="); 5070 var value = pair.length > 1 ? decodeURIComponent(pair[1].split("+").join(" ")) : ""; 5071 parameters_h[pair[0]] = value; 5072 } 5073 var i = 0; 5074 var result = []; 5075 var h = parameters_h; 5076 var key_h = h; 5077 var key_keys = Object.keys(h); 5078 var key_length = key_keys.length; 5079 var key_current = 0; 5080 while(key_current < key_length) { 5081 var key = key_keys[key_current++]; 5082 var keyvalue = []; 5083 keyvalue[0] = key; 5084 keyvalue[1] = parameters_h[key]; 5085 result[i] = keyvalue; 5086 ++i; 5087 } 5088 if (typeof predefinedBundleParams != 'undefined') {result = mergePredefinedParams(result, predefinedBundleParams);} 5089 return result; 5090}; 5091Native.getUrlParameter = function(name) { 5092 var value = ""; 5093 value = Util.getParameter(name); 5094 if(value != null) { 5095 return value; 5096 } else { 5097 return ""; 5098 } 5099}; 5100Native.isTouchScreen = function() { 5101 if(!Platform.isMobile) { 5102 return (('ontouchstart' in window) || (window.DocumentTouch && document instanceof DocumentTouch) || window.matchMedia('(pointer: coarse)').matches); 5103 } else { 5104 return true; 5105 } 5106}; 5107Native.getTargetName = function() { 5108 return "js,jslibrary"; 5109}; 5110Native.isIE = function() { 5111 return window.navigator.userAgent.indexOf("MSIE") >= 0; 5112}; 5113Native.setKeyValue = function(k,v) {
5114 return Native.setKeyValueJS(k,v,false); 5115}; 5116Native.getKeyValue = function(key,def) { 5117 return Native.getKeyValueJS(key,def,false); 5118}; 5119Native.removeKeyValue = function(key) { 5120 var useMask = StringTools.endsWith(key,"*"); 5121 var mask = ""; 5122 if(useMask) { 5123 mask = HxOverrides.substr(key,0,key.length - 1); 5124 } 5125 Native.removeKeyValueJS(key,false); 5126}; 5127Native.removeAllKeyValues = function() { 5128 Native.removeAllKeyValuesJS(false); 5129}; 5130Native.getKeysList = function() { 5131 return Native.getKeysListJS(false); 5132}; 5133Native.setSessionKeyValue = function(k,v) { 5134 return Native.setKeyValueJS(k,v,true); 5135}; 5136Native.getSessionKeyValue = function(key,def) { 5137 return Native.getKeyValueJS(key,def,true); 5138}; 5139Native.removeSessionKeyValue = function(key) { 5140 Native.removeKeyValueJS(key,true); 5141}; 5142Native.setKeyValueJS = function(k,v,session) { 5143 try { 5144 var storage = session ? sessionStorage : localStorage; 5145 if(Native.isIE()) { 5146 var tmp = encodeURIComponent(v); 5147 storage.setItem(k,tmp); 5148 } else { 5149 storage.setItem(k,v); 5150 } 5151 return true; 5152 } catch( _g ) { 5153 haxe_NativeStackTrace.lastError = _g; 5154 var e = haxe_Exception.caught(_g).unwrap(); 5155 Errors.report("Cannot set value for key \"" + k + "\": " + Std.string(e)); 5156 return false; 5157 } 5158}; 5159Native.getKeyValueJS = function(key,def,session) { 5160 try { 5161 var storage = session ? sessionStorage : localStorage; 5162 var value = storage.getItem(key); 5163 if(null == value) { 5164 return def; 5165 } 5166 if(Native.isIE()) { 5167 return decodeURIComponent(value.split("+").join(" ")); 5168 } else { 5169 return value; 5170 } 5171 } catch( _g ) { 5172 haxe_NativeStackTrace.lastError = _g; 5173 var e = haxe_Exception.caught(_g).unwrap(); 5174 Errors.report("Cannot get value for key \"" + key + "\": " + Std.string(e)); 5175 return def; 5176 } 5177}; 5178Native.removeKeyValueJS = function(key,session) { 5179 var useMask = StringTools.endsWith(key,"*"); 5180 var mask = ""; 5181 if(useMask) { 5182 mask = HxOverrides.substr(key,0,key.length - 1); 5183 } 5184 try { 5185 var storage = session ? sessionStorage : localStorage; 5186 if(storage.length == 0) { 5187 return; 5188 } 5189 if(useMask) { 5190 var nextKey; 5191 var _g = 0; 5192 var _g1 = storage.length; 5193 while(_g < _g1) { 5194 var i = _g++; 5195 nextKey = storage.key(i); 5196 if(StringTools.startsWith(nextKey,mask)) { 5197 storage.removeItem(nextKey); 5198 } 5199 } 5200 } else { 5201 storage.removeItem(key); 5202 } 5203 } catch( _g ) { 5204 haxe_NativeStackTrace.lastError = _g; 5205 var e = haxe_Exception.caught(_g).unwrap(); 5206 Errors.report("Cannot remove key \"" + key + "\": " + Std.string(e)); 5207 } 5208}; 5209Native.removeAllKeyValuesJS = function(session) { 5210 try { 5211 var storage = session ? sessionStorage : localStorage; 5212 storage.clear(); 5213 } catch( _g ) { 5214 haxe_NativeStackTrace.lastError = _g; 5215 var e = haxe_Exception.caught(_g).unwrap(); 5216 Errors.report("Cannot clear storage: " + Std.string(e)); 5217 } 5218}; 5219Native.getKeysListJS = function(session) { 5220 try { 5221 var storage = session ? sessionStorage : localStorage; 5222 return Object.keys(storage); 5223 } catch( _g ) { 5224 haxe_NativeStackTrace.lastError = _g; 5225 var e = haxe_Exception.caught(_g).unwrap(); 5226 Errors.report("Cannot get keys list: " + Std.string(e)); 5227 return []; 5228 } 5229}; 5230Native.clearTrace = function() { 5231}; 5232Native.printCallstack = function() { 5233 console.trace(); 5234}; 5235Native.captureCallstack = function() { 5236 return null; 5237}; 5238Native.callstack2string = function(c) { 5239 return ""; 5240}; 5241Native.captureStringCallstack = function() { 5242 return StringTools.replace(StringTools.replace(new Error().stack," at ",""),"Error\n",""); 5243}; 5244Native.captureCallstackItem = function(index) { 5245 return null; 5246}; 5247Native.impersonateCallstackItem = function(item,index) { 5248}; 5249Native.impersonateCallstackFn = function(fn,index) { 5250}; 5251Native.impersonateCallstackNone = function(index) { 5252}; 5253Native.failWithError = function(e) { 5254 throw haxe_Exception.thrown("Runtime failure: " + e); 5255}; 5256Native.makeStructValue = function(name,args,default_value) { 5257 return HaxeRuntime.makeStructValue(name,args,default_value); 5258}; 5259Native.extractStructArguments = function(value) { 5260 return HaxeRuntime.extractStructArguments(value); 5261}; 5262Native.quit = function(c) { 5263 window.open("","_top").close(); 5264}; 5265Native.getFileContent = function(file) { 5266 return ""; 5267}; 5268Native.getFileContentBinary = function(file) { 5269 throw haxe_Exception.thrown("Not implemented for this target: getFileContentBinary"); 5270}; 5271Native.setFileContent = function(file,content) { 5272 Errors.print("setFileContent '" + file + "' does not work in this target. Use the C++ runner"); 5273 return false;
5274}; 5275Native.setFileContentUTF16 = function(file,content) { 5276 return false; 5277}; 5278Native.setFileContentBinaryConvertToUTF8 = function(file,content) { 5279 return Native.setFileContentBinaryCommon(file,content,true); 5280}; 5281Native.setFileContentBinary = function(file,content) { 5282 return Native.setFileContentBinaryCommon(file,content,false); 5283}; 5284Native.setFileContentBinaryCommon = function(file,content,convertToUTF8) { 5285 try { 5286 var a = window.document.createElement("a"); 5287 a.download = file; 5288 window.document.body.appendChild(a); 5289 if(convertToUTF8 || Util.getParameter("save_file_utf8") == "1") { 5290 var fileBlob = new Blob([content],{ type : "application/octet-stream"}); 5291 var url = URL.createObjectURL(fileBlob); 5292 a.href = url; 5293 a.click(); 5294 Native.defer(function() { 5295 URL.revokeObjectURL(url); 5296 }); 5297 } else { 5298 if(content.startsWith(String.fromCodePoint(65279))) { 5299 content = content.substr(1); 5300 } 5301 var base64data = window.btoa(content); 5302 a.href = "data:application/octet-stream;base64," + base64data; 5303 a.click(); 5304 } 5305 Native.defer(function() { 5306 window.document.body.removeChild(a); 5307 }); 5308 return true; 5309 } catch( _g ) { 5310 haxe_NativeStackTrace.lastError = _g; 5311 if(convertToUTF8) { 5312 return false; 5313 } else { 5314 return Native.setFileContentBinaryCommon(file,content,true); 5315 } 5316 } 5317}; 5318Native.setFileContentBytes = function(file,content) { 5319 return Native.setFileContentBinary(file,content); 5320}; 5321Native.startProcess = function(command,args,cwd,stdIn,onExit) { 5322 return false; 5323}; 5324Native.runProcess = function(command,args,cwd,onstdout,onstderr,onExit) { 5325 return false; 5326}; 5327Native.startDetachedProcess = function(command,args,cwd) { 5328 return false; 5329}; 5330Native.writeProcessStdin = function(process,arg) { 5331 return false; 5332}; 5333Native.killProcess = function(process) { 5334 return false; 5335}; 5336Native.fromCharCode = function(c) { 5337 return String.fromCodePoint(c); 5338}; 5339Native.utc2local = function(stamp) { 5340 return NativeTime.utc2local(stamp); 5341}; 5342Native.local2utc = function(stamp) { 5343 return NativeTime.local2utc(stamp); 5344}; 5345Native.string2time = function(date) { 5346 return NativeTime.string2time(date); 5347}; 5348Native.dayOfWeek = function(year,month,day) { 5349 return NativeTime.dayOfWeek(year,month,day); 5350}; 5351Native.time2string = function(date) { 5352 return NativeTime.time2string(date); 5353}; 5354Native.getUrl = function(u,t) { 5355 Native.getUrlBasic(u,t); 5356}; 5357Native.getUrlAutoclose = function(u,t,delay) { 5358 Native.getUrlBasic(u,t,delay); 5359}; 5360Native.getUrlBasic = function(u,t,autoCloseDelay) { 5361 if(autoCloseDelay == null) { 5362 autoCloseDelay = -1; 5363 } 5364 try { 5365 var needsRef = autoCloseDelay >= 0; 5366 var features = t == "_blank" && !needsRef ? "noopener" : ""; 5367 var openedWindow = window.open(u,t,features); 5368 if(needsRef && openedWindow != null) { 5369 openedWindow.addEventListener("pageshow",function() { 5370 Native.timer(autoCloseDelay,function() { 5371 openedWindow.close(); 5372 }); 5373 }); 5374 } 5375 } catch( _g ) { 5376 haxe_NativeStackTrace.lastError = _g; 5377 var e = haxe_Exception.caught(_g).unwrap(); 5378 if(e != null && e.number != -2147467259) { 5379 throw haxe_Exception.thrown(e); 5380 } 5381 } 5382}; 5383Native.getUrl2 = function(u,t) { 5384 try { 5385 if(t == "_blank") { 5386 window.open(u,t,"noopener"); 5387 return true; 5388 } 5389 return window.open(u,t) != null; 5390 } catch( _g ) { 5391 haxe_NativeStackTrace.lastError = _g; 5392 var e = haxe_Exception.caught(_g).unwrap(); 5393 if(e != null && e.number != -2147467259) { 5394 throw haxe_Exception.thrown(e); 5395 } else { 5396 Errors.report(e); 5397 } 5398 return false; 5399 } 5400}; 5401Native.openBlankWindow = function() { 5402 try { 5403 var w = window.open("about:blank","_blank"); 5404 if(w == null) { 5405 return 0; 5406 } 5407 var id = Native.openedWindowsNextId++; 5408 Native.openedWindows.h[id] = w; 5409 return id; 5410 } catch( _g ) { 5411 haxe_NativeStackTrace.lastError = _g; 5412 var e = haxe_Exception.caught(_g).unwrap(); 5413 if(e != null && e.number != -2147467259) { 5414 throw haxe_Exception.thrown(e); 5415 } 5416 return 0; 5417 } 5418}; 5419Native.setWindowUrlById = function(id,url) { 5420 try { 5421 var w = Native.openedWindows.h[id]; 5422 if(w != null && !w.closed) { 5423 w.location.href = url; 5424 Native.openedWindows.remove(id); 5425 return true; 5426 } else { 5427 Native.openedWindows.remove(id); 5428 window.open(url,"_blank","noopener"); 5429 return false;
5430 } 5431 } catch( _g ) { 5432 haxe_NativeStackTrace.lastError = _g; 5433 var e = haxe_Exception.caught(_g).unwrap(); 5434 if(e != null && e.number != -2147467259) { 5435 throw haxe_Exception.thrown(e); 5436 } 5437 return false; 5438 } 5439}; 5440Native.closeWindowById = function(id) { 5441 try { 5442 var w = Native.openedWindows.h[id]; 5443 if(w != null && !w.closed) { 5444 w.close(); 5445 } 5446 Native.openedWindows.remove(id); 5447 } catch( _g ) { 5448 haxe_NativeStackTrace.lastError = _g; 5449 var e = haxe_Exception.caught(_g).unwrap(); 5450 if(e != null && e.number != -2147467259) { 5451 throw haxe_Exception.thrown(e); 5452 } 5453 } 5454}; 5455Native.getCharCodeAt = function(s,i) { 5456 return HxOverrides.cca(s,i); 5457}; 5458Native.loaderUrl = function() { 5459 return window.location.href; 5460}; 5461Native.number2double = function(n) { 5462 return n; 5463}; 5464Native.stringbytes2double = function(s) { 5465 return Native.stringToDouble(s); 5466}; 5467Native.stringbytes2int = function(s) { 5468 return HxOverrides.cca(s,0) | HxOverrides.cca(s,1) << 16; 5469}; 5470Native.initBinarySerialization = function() { 5471 if(typeof(ArrayBuffer) == "undefined" || typeof(Float64Array) == "undefined") { 5472 var binaryParser = new js_BinaryParser(false,false); 5473 Native.doubleToString = function(value) { 5474 return Native.packDoubleBytes(binaryParser.fromDouble(value)); 5475 }; 5476 Native.stringToDouble = function(str) { 5477 return binaryParser.toDouble(Native.unpackDoubleBytes(str)); 5478 }; 5479 } else { 5480 var arrayBuffer = new ArrayBuffer(16); 5481 var uint16Array = new Uint16Array(arrayBuffer); 5482 var float64Array = new Float64Array(arrayBuffer); 5483 Native.doubleToString = function(value) { 5484 float64Array[0] = value; 5485 var ret_b = ""; 5486 ret_b += String.fromCodePoint(uint16Array[0]); 5487 ret_b += String.fromCodePoint(uint16Array[1]); 5488 ret_b += String.fromCodePoint(uint16Array[2]); 5489 ret_b += String.fromCodePoint(uint16Array[3]); 5490 return ret_b; 5491 }; 5492 Native.stringToDouble = function(str) { 5493 uint16Array[0] = HxOverrides.cca(str,0); 5494 uint16Array[1] = HxOverrides.cca(str,1); 5495 uint16Array[2] = HxOverrides.cca(str,2); 5496 uint16Array[3] = HxOverrides.cca(str,3); 5497 return float64Array[0]; 5498 }; 5499 } 5500}; 5501Native.packDoubleBytes = function(s) { 5502 var ret_b = ""; 5503 var _g = 0; 5504 var _g1 = s.length / 2; 5505 while(_g < _g1) { 5506 var i = _g++; 5507 var c = HxOverrides.cca(s,i * 2) | HxOverrides.cca(s,i * 2 + 1) << 8; 5508 ret_b += String.fromCodePoint(c); 5509 } 5510 return ret_b; 5511}; 5512Native.unpackDoubleBytes = function(s) { 5513 var ret_b = ""; 5514 var _g = 0; 5515 var _g1 = s.length; 5516 while(_g < _g1) { 5517 var i = _g++; 5518 var c = HxOverrides.cca(s,i) & 255; 5519 ret_b += String.fromCodePoint(c); 5520 var c1 = HxOverrides.cca(s,i) >> 8; 5521 ret_b += String.fromCodePoint(c1); 5522 } 5523 return ret_b; 5524}; 5525Native.writeBinaryInt32 = function(value,buf) { 5526 buf.b += String.fromCodePoint((value & 65535)); 5527 buf.b += String.fromCodePoint((value >> 16)); 5528}; 5529Native.writeInt = function(value,buf) { 5530 if((value & -32768) != 0) { 5531 buf.b += String.fromCodePoint(65525); 5532 buf.b += String.fromCodePoint((value & 65535)); 5533 buf.b += String.fromCodePoint((value >> 16)); 5534 } else { 5535 buf.b += String.fromCodePoint(value); 5536 } 5537}; 5538Native.writeStructDefs = function(buf) { 5539 Native.writeArrayLength(Native.structDefs.length,buf); 5540 var _g = 0; 5541 var _g1 = Native.structDefs; 5542 while(_g < _g1.length) { 5543 var struct_def = _g1[_g]; 5544 ++_g; 5545 buf.b += String.fromCodePoint(65528); 5546 buf.b += String.fromCodePoint(2); 5547 buf.b += String.fromCodePoint(struct_def[0]); 5548 buf.b += String.fromCodePoint(65530); 5549 var c = struct_def[1].length; 5550 buf.b += String.fromCodePoint(c); 5551 var s = struct_def[1]; 5552 var len = null; 5553 buf.b += len == null ? HxOverrides.substr(s,0,null) : HxOverrides.substr(s,0,len); 5554 } 5555}; 5556Native.writeArrayLength = function(arr_len,buf) { 5557 if(arr_len == 0) { 5558 buf.b += String.fromCodePoint(65527); 5559 } else if(arr_len > 65535) { 5560 buf.b += String.fromCodePoint(65529); 5561 buf.b += String.fromCodePoint((arr_len & 65535)); 5562 buf.b += String.fromCodePoint((arr_len >> 16)); 5563 } else { 5564 buf.b += String.fromCodePoint(65528); 5565 buf.b += String.fromCodePoint(arr_len); 5566 } 5567}; 5568Native.writeBinaryValue = function(value,buf) { 5569 var _g = HaxeRuntime.typeOf(value); 5570 switch(_g._hx_index) { 5571 case 0: 5572 buf.b += String.fromCodePoint(65535); 5573 break; 5574 case 1: 5575 buf.b += String.fromCodePoint((value ? 65534 : 65533)); 5576 break; 5577 case 3: 5578 buf.b += String.fromCodePoint(65532); 5579 var s = Native.doubleToString(value); 5580 var len = null; 5581 buf.b += len == null ? HxOverrides.substr(s,0,null) : HxOverrides.substr(s,0,len); 5582 break; 5583 case 4: 5584 var str_len = value.length; 5585 if(value.length > 65535) { 5586 buf.b += String.fromCodePoint(65531); 5587 buf.b += String.fromCodePoint((str_len & 65535)); 5588 buf.b += String.fromCodePoint((str_len >> 16)); 5589 } else { 5590 buf.b += String.fromCodePoint(65530); 5591 buf.b += String.fromCodePoint(str_len); 5592 } 5593 var s = value; 5594 var len = null; 5595 buf.b += len == null ? HxOverrides.substr(s,0,null) : HxOverrides.substr(s,0,len); 5596 break; 5597 case 5: 5598 var t = _g.type; 5599 var arr_len = value.length;
5600 Native.writeArrayLength(arr_len,buf); 5601 var _g1 = 0; 5602 var _g2 = arr_len; 5603 while(_g1 < _g2) { 5604 var i = _g1++; 5605 Native.writeBinaryValue(value[i],buf); 5606 } 5607 break; 5608 case 6: 5609 var n = _g.name; 5610 var struct_id = value._id; 5611 var struct_fields = HaxeRuntime._structargs_.h[struct_id]; 5612 var field_types = HaxeRuntime._structargtypes_.h[struct_id]; 5613 var fields_count = struct_fields.length; 5614 var struct_idx = 0; 5615 if(Native.structIdxs.h.hasOwnProperty(struct_id)) { 5616 struct_idx = Native.structIdxs.h[struct_id]; 5617 } else { 5618 struct_idx = Native.structDefs.length; 5619 Native.structIdxs.h[struct_id] = struct_idx; 5620 Native.structDefs.push([fields_count,HaxeRuntime._structnames_.h[struct_id]]); 5621 } 5622 buf.b += String.fromCodePoint(65524); 5623 buf.b += String.fromCodePoint(struct_idx); 5624 var _g1 = 0; 5625 var _g2 = fields_count; 5626 while(_g1 < _g2) { 5627 var i = _g1++; 5628 var field = Reflect.field(value,struct_fields[i]); 5629 if(field_types[i] == RuntimeType.RTInt) { 5630 var value1 = field; 5631 if((value1 & -32768) != 0) { 5632 buf.b += String.fromCodePoint(65525); 5633 buf.b += String.fromCodePoint((value1 & 65535)); 5634 buf.b += String.fromCodePoint((value1 >> 16)); 5635 } else { 5636 buf.b += String.fromCodePoint(value1); 5637 } 5638 } else { 5639 Native.writeBinaryValue(field,buf); 5640 } 5641 } 5642 break; 5643 case 7: 5644 var t = _g.type; 5645 buf.b += String.fromCodePoint(65526); 5646 Native.writeBinaryValue(value.__v,buf); 5647 break; 5648 default: 5649 throw haxe_Exception.thrown("Cannot serialize " + Std.string(value)); 5650 } 5651}; 5652Native.toBinary = function(value) { 5653 var buf = new StringBuf(); 5654 Native.structIdxs = new haxe_ds_IntMap(); 5655 Native.structDefs = []; 5656 Native.writeBinaryValue(value,buf); 5657 var str = buf.b; 5658 var struct_defs_buf = new StringBuf(); 5659 Native.writeStructDefs(struct_defs_buf); 5660 var code = str.length + 2 & 65535; 5661 var ret = String.fromCodePoint(code); 5662 var code = str.length + 2 >> 16; 5663 var ret1 = ret + String.fromCodePoint(code) + str + struct_defs_buf.b; 5664 return ret1; 5665}; 5666Native.fromBinary = function(string,defvalue,fixups) { 5667 if(js_Boot.getClass(string) == JSBinflowBuffer) { 5668 return string.deserialise(defvalue,fixups); 5669 } else { 5670 return string; 5671 } 5672}; 5673Native.getTotalMemoryUsed = function() { 5674 return 0.0; 5675}; 5676Native.detectDedicatedGPU = function() { 5677 try { 5678 var canvas = window.document.createElement("canvas"); 5679 var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); 5680 if(gl == null) { 5681 return false; 5682 } 5683 var debugInfo = gl.getExtension("WEBGL_debug_renderer_info"); 5684 var vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); 5685 var renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); 5686 if(!(renderer.toLowerCase().indexOf("nvidia") >= 0 || renderer.toLowerCase().indexOf("ati") >= 0)) { 5687 return renderer.toLowerCase().indexOf("radeon") >= 0; 5688 } else { 5689 return true; 5690 } 5691 } catch( _g ) { 5692 haxe_NativeStackTrace.lastError = _g; 5693 return false; 5694 } 5695}; 5696Native.domCompleteTiming = function() { 5697 try { 5698 return window.performance.timing.domComplete - window.performance.timing.domLoading; 5699 } catch( _g ) { 5700 haxe_NativeStackTrace.lastError = _g; 5701 return -1; 5702 } 5703}; 5704Native.estimateCPUSpeed = function() { 5705 5706 var _speedconstant = 1.15600e-8; 5707 var d = new Date(); 5708 var amount = 150000000; 5709 var estprocessor = 1.7; 5710 for (var i = amount; i > 0; i--) {} 5711 var newd = new Date(); 5712 di = (newd.getTime() - d.getTime()) / 1000; 5713 spd = ((_speedconstant * amount) / di); 5714 return Math.round(spd * 1000) / 1000; 5715 ; 5716 return -1; 5717}; 5718Native.getDeviceMemory = function() { 5719 try { 5720 return window.navigator.deviceMemory || -1; 5721 } catch( _g ) { 5722 haxe_NativeStackTrace.lastError = _g; 5723 return -1; 5724 } 5725}; 5726Native.getDevicePlatform = function() { 5727 try { 5728 return window.navigator.platform || ''; 5729 } catch( _g ) { 5730 haxe_NativeStackTrace.lastError = _g; 5731 return -1; 5732 } 5733}; 5734Native.addCrashHandler = function(cb) { 5735 Native.FlowCrashHandlers.push(cb); 5736 return function() { 5737 HxOverrides.remove(Native.FlowCrashHandlers,cb); 5738 }; 5739}; 5740Native.callFlowCrashHandlers = function(msg) { 5741 msg += "Call stack: " + Assert.callStackToString(haxe_CallStack.exceptionStack()); 5742 var _g = 0; 5743 var _g1 = Native.FlowCrashHandlers.slice(0,Native.FlowCrashHandlers.length); 5744 while(_g < _g1.length) { 5745 var hdlr = _g1[_g]; 5746 ++_g; 5747 hdlr(msg); 5748 } 5749}; 5750Native.addPlatformEventListener = function(event,cb) { 5751 if(event == "online" || event == "offline") { 5752 var w = window; 5753 if(w.addEventListener != null) { 5754 w.addEventListener(event,cb,false); 5755 return function() { 5756 var w = window; 5757 if(w.removeEventListener != null) { 5758 w.removeEventListener(event,cb); 5759 } 5760 }; 5761 } 5762 } else if(event == "suspend") { 5763 window.addEventListener("blur",cb); 5764 window.addEventListener("pagehide",cb); 5765 return function() { 5766 window.removeEventListener("blur",cb); 5767 window.removeEventListener("pagehide",cb); 5768 }; 5769 } else if(event == "resume") { 5770 window.addEventListener("focus",cb); 5771 window.addEventListener("pageshow",cb); 5772 return function() { 5773 window.removeEventListener("focus",cb); 5774 window.removeEventListener("pageshow",cb); 5775 }; 5776 } else if(event == "active") { 5777 var timeoutActiveId = -1; 5778 var setTimeoutActiveFn = function() { 5779 }; 5780 var activeCalled = false;
5781 setTimeoutActiveFn = function() { 5782 var timePassedActive = new Date().getTime() - Native.LastUserAction; 5783 if(timePassedActive >= Native.IdleLimit) { 5784 timeoutActiveId = -1; 5785 activeCalled = false; 5786 } else { 5787 timeoutActiveId = setTimeout(setTimeoutActiveFn, Native.IdleLimit - timePassedActive); 5788 if(!activeCalled) { 5789 activeCalled = true; 5790 cb(); 5791 } 5792 } 5793 }; 5794 var mouseMoveActiveFn = function() { 5795 Native.LastUserAction = new Date().getTime(); 5796 if(timeoutActiveId == -1) { 5797 setTimeoutActiveFn(); 5798 } 5799 }; 5800 window.addEventListener("pointermove",mouseMoveActiveFn); 5801 window.addEventListener("videoplaying",mouseMoveActiveFn); 5802 window.addEventListener("focus",mouseMoveActiveFn); 5803 window.addEventListener("blur",mouseMoveActiveFn); 5804 window.addEventListener("click",mouseMoveActiveFn); 5805 window.addEventListener("touchstart",mouseMoveActiveFn); 5806 mouseMoveActiveFn(); 5807 return function() { 5808 clearTimeout(timeoutActiveId); 5809 window.removeEventListener("pointermove",mouseMoveActiveFn); 5810 window.removeEventListener("videoplaying",mouseMoveActiveFn); 5811 window.removeEventListener("focus",mouseMoveActiveFn); 5812 window.removeEventListener("blur",mouseMoveActiveFn); 5813 window.removeEventListener("click",mouseMoveActiveFn); 5814 window.removeEventListener("touchstart",mouseMoveActiveFn); 5815 }; 5816 } else if(event == "idle") { 5817 var timeoutIdleId = -1; 5818 var setTimeoutIdleFn = function() { 5819 }; 5820 var idleCalled = false; 5821 setTimeoutIdleFn = function() { 5822 var timePassedIdle = new Date().getTime() - Native.LastUserAction; 5823 if(timePassedIdle >= Native.IdleLimit) { 5824 timeoutIdleId = -1; 5825 if(!idleCalled) { 5826 idleCalled = true; 5827 cb(); 5828 } 5829 } else { 5830 timeoutIdleId = setTimeout(setTimeoutIdleFn, Native.IdleLimit - timePassedIdle); 5831 idleCalled = false; 5832 } 5833 }; 5834 var mouseMoveIdleFn = function() { 5835 Native.LastUserAction = new Date().getTime(); 5836 if(timeoutIdleId == -1) { 5837 setTimeoutIdleFn(); 5838 } 5839 }; 5840 mouseMoveIdleFn(); 5841 window.addEventListener("pointermove",mouseMoveIdleFn); 5842 window.addEventListener("videoplaying",mouseMoveIdleFn); 5843 window.addEventListener("focus",mouseMoveIdleFn); 5844 window.addEventListener("blur",mouseMoveIdleFn); 5845 window.addEventListener("click",mouseMoveIdleFn); 5846 window.addEventListener("touchstart",mouseMoveIdleFn); 5847 return function() { 5848 clearTimeout(timeoutIdleId); 5849 window.removeEventListener("pointermove",mouseMoveIdleFn); 5850 window.removeEventListener("videoplaying",mouseMoveIdleFn); 5851 window.removeEventListener("focus",mouseMoveIdleFn); 5852 window.removeEventListener("blur",mouseMoveIdleFn); 5853 window.removeEventListener("click",mouseMoveIdleFn); 5854 window.removeEventListener("touchstart",mouseMoveIdleFn); 5855 }; 5856 } 5857 if(!Object.prototype.hasOwnProperty.call(Native.PlatformEventListeners.h,event)) { 5858 var this1 = Native.PlatformEventListeners; 5859 var value = []; 5860 this1.h[event] = value; 5861 } 5862 Native.PlatformEventListeners.h[event].push(cb); 5863 return function() { 5864 HxOverrides.remove(Native.PlatformEventListeners.h[event],cb); 5865 }; 5866}; 5867Native.setUserIdleLimit = function(ms) { 5868 Native.IdleLimit = ms; 5869}; 5870Native.notifyPlatformEvent = function(event) { 5871 var cancelled = false; 5872 if(Object.prototype.hasOwnProperty.call(Native.PlatformEventListeners.h,event)) { 5873 var _g = 0; 5874 var _g1 = Native.PlatformEventListeners.h[event]; 5875 while(_g < _g1.length) { 5876 var cb = _g1[_g]; 5877 ++_g; 5878 if(cb()) { 5879 cancelled = true; 5880 } 5881 } 5882 } 5883 return cancelled; 5884}; 5885Native.addCameraPhotoEventListener = function(cb) { 5886 return function() { 5887 }; 5888}; 5889Native.addCameraVideoEventListener = function(cb) { 5890 return function() { 5891 }; 5892}; 5893Native.md5 = function(content) { 5894 return JsMd5.encode(content); 5895}; 5896Native.getCharAt = function(s,i) { 5897 return s.charAt(i); 5898}; 5899Native.object2JsonStructsCompacting = function(o,sDict,jsDict,nDict) { 5900 5901 if (Array.isArray(o)) { 5902 var n = o.length; 5903 var a1 = Array(n); 5904 for (var i=0; i<n; i++) { 5905 a1[i] = Native.object2JsonStructs(o[i], sDict, jsDict, nDict); 5906 } 5907 var obj = { _id : Native.sidJsonArray }; 5908 obj[Native.sidJsonArrayVal] = a1; 5909 return obj; 5910 } else { 5911 var t = typeof o; 5912 switch (t) { 5913 case 'string': 5914 if (o === '') return Native.jsonStringEmpty; 5915 var obj = jsDict[o]; 5916 if (obj == undefined) { 5917 var s = sDict[o]; 5918 if (s === undefined) { 5919 s = o;
5920 sDict[o] = s; 5921 } 5922 obj = { _id : Native.sidJsonString }; 5923 obj[Native.sidJsonStringVal] = s; 5924 jsDict[o] = obj; 5925 } 5926 return obj; 5927 case 'number': 5928 if (o === 0.0) return Native.jsonDoubleZero; 5929 var obj = nDict[o]; 5930 if (obj === undefined) { 5931 obj = { _id : Native.sidJsonDouble }; 5932 obj[Native.sidJsonDoubleVal] = o; 5933 nDict[o] = obj; 5934 } 5935 return obj; 5936 case 'boolean': return o ? Native.jsonBoolTrue : Native.jsonBoolFalse; 5937 default: 5938 if(o == null) { 5939 return Native.jsonNull; 5940 } else { 5941 var mappedFields = []; 5942 for(var f in o) { 5943 var a2 = Native.object2JsonStructs(o[f], sDict, jsDict, nDict); 5944 var obj = { _id : Native.sidPair }; 5945 var cf = sDict[f]; 5946 if (cf === undefined) { 5947 cf = f; 5948 sDict[f] = cf; 5949 } 5950 obj[Native.sidPairFirst] = cf; 5951 obj[Native.sidPairSecond] = a2; 5952 mappedFields.push(obj); 5953 } 5954 var obj = { _id : Native.sidJsonObject}; 5955 obj[Native.sidJsonObjectFields] = mappedFields; 5956 return obj; 5957 } 5958 } 5959 } 5960 return ""; 5961}; 5962Native.object2JsonStructsCompacting_FF = function(o,sDict,jsDict,nDict) { 5963 5964 if (Array.isArray(o)) { 5965 var n = o.length; 5966 var a1 = Array(n); 5967 for (var i=0; i<n; i++) { 5968 a1[i] = Native.object2JsonStructs_FF(o[i], sDict, jsDict, nDict); 5969 } 5970 var obj = { _id : Native.sidJsonArray }; 5971 obj[Native.sidJsonArrayVal] = a1; 5972 return obj; 5973 } else { 5974 var t = typeof o; 5975 switch (t) { 5976 case 'string': 5977 if (o === '') return Native.jsonStringEmpty; 5978 var obj = jsDict[o]; 5979 if (obj == undefined) { 5980 var s = sDict[o]; 5981 if (s === undefined) { 5982 s = o;
5983 sDict[o] = s; 5984 } 5985 obj = { _id : Native.sidJsonString }; 5986 obj[Native.sidJsonStringVal] = s; 5987 jsDict[o] = obj; 5988 } 5989 return obj; 5990 case 'number': 5991 if (o === 0.0) return Native.jsonDoubleZero; 5992 var obj = nDict[o]; 5993 if (obj === undefined) { 5994 obj = { _id : Native.sidJsonDouble }; 5995 obj[Native.sidJsonDoubleVal] = o; 5996 nDict[o] = obj; 5997 } 5998 return obj; 5999 case 'boolean': return o ? Native.jsonBoolTrue : Native.jsonBoolFalse; 6000 default: 6001 if(o == null) { 6002 return Native.jsonNull; 6003 } else { 6004 var mappedFields = Object.getOwnPropertyNames(o); 6005 for(var i=0; i< mappedFields.length; i++) { 6006 var f = mappedFields[i]; 6007 var cf = sDict[f]; 6008 if (cf === undefined) { 6009 cf = f; 6010 sDict[f] = cf; 6011 } 6012 6013 var a2 = Native.object2JsonStructs_FF(o[f], sDict, jsDict, nDict); 6014 var obj = { _id : Native.sidPair }; 6015 obj[Native.sidPairFirst] = cf; 6016 obj[Native.sidPairSecond] = a2; 6017 mappedFields[i] = obj; 6018 } 6019 var obj = { _id : Native.sidJsonObject}; 6020 obj[Native.sidJsonObjectFields] = mappedFields; 6021 return obj; 6022 } 6023 } 6024 } 6025 return ""; 6026}; 6027Native.object2JsonStructs = function(o) { 6028 6029 if (Array.isArray(o)) { 6030 var a1 = Native.map(o,Native.object2JsonStructs); 6031 var obj = { _id : Native.sidJsonArray }; 6032 obj[Native.sidJsonArrayVal] = a1; 6033 return obj; 6034 } else { 6035 var t = typeof o; 6036 switch (t) { 6037 case 'string': 6038 var obj = { _id : Native.sidJsonString }; 6039 obj[Native.sidJsonStringVal] = o; 6040 return obj; 6041 case 'number': 6042 var obj = { _id : Native.sidJsonDouble }; 6043 obj[Native.sidJsonDoubleVal] = o; 6044 return obj; 6045 case 'boolean': return o ? Native.jsonBoolTrue : Native.jsonBoolFalse; 6046 default: 6047 if(o == null) { 6048 return Native.jsonNull; 6049 } else { 6050 var mappedFields = []; 6051 for(var f in o) { 6052 var a2 = Native.object2JsonStructs(o[f]); 6053 var obj = { _id : Native.sidPair }; 6054 obj[Native.sidPairFirst] = f; 6055 obj[Native.sidPairSecond] = a2; 6056 mappedFields.push(obj); 6057 } 6058 var obj = { _id : Native.sidJsonObject}; 6059 obj[Native.sidJsonObjectFields] = mappedFields; 6060 return obj; 6061 } 6062 } 6063 } 6064 return ""; 6065}; 6066Native.object2JsonStructs_FF = function(o) { 6067 6068 if (Array.isArray(o)) { 6069 var a1 = Native.map(o,Native.object2JsonStructs_FF); 6070 var obj = { _id : Native.sidJsonArray}; 6071 obj[Native.sidJsonArrayVal] = a1; 6072 return obj; 6073 } else { 6074 var t = typeof o; 6075 switch (t) { 6076 case 'string': 6077 var obj = { _id : Native.sidJsonString }; 6078 obj[Native.sidJsonStringVal] = o; 6079 return obj; 6080 case 'number': 6081 var obj = { _id : Native.sidJsonDouble }; 6082 obj[Native.sidJsonDoubleVal] = o; 6083 return obj; 6084 case 'boolean': return o ? Native.jsonBoolTrue : Native.jsonBoolFalse; 6085 default: 6086 if(o == null) { 6087 return Native.jsonNull; 6088 } else { 6089 var mappedFields = Object.getOwnPropertyNames(o); 6090 for(var i=0; i< mappedFields.length; i++) { 6091 var f = mappedFields[i]; 6092 var a2 = Native.object2JsonStructs_FF(o[f]); 6093 var obj = { _id : Native.sidPair }; 6094 obj[Native.sidPairFirst] = f; 6095 obj[Native.sidPairSecond] = a2; 6096 mappedFields[i] = obj; 6097 } 6098 var obj = { _id : Native.sidJsonObject}; 6099 obj[Native.sidJsonObjectFields] = mappedFields; 6100 return obj; 6101 } 6102 } 6103 } 6104 return ""; 6105}; 6106Native.ensureJsonParserInitialized = function() { 6107 if(Native.parseJsonFirstCall) { 6108 Native.sidJsonArray = HaxeRuntime._structids_.h["JsonArray"]; 6109 Native.sidJsonArrayVal = HaxeRuntime._structargs_.h[Native.sidJsonArray][0]; 6110 Native.sidJsonString = HaxeRuntime._structids_.h["JsonString"]; 6111 Native.sidJsonStringVal = HaxeRuntime._structargs_.h[Native.sidJsonString][0]; 6112 Native.sidJsonDouble = HaxeRuntime._structids_.h["JsonDouble"]; 6113 Native.sidJsonDoubleVal = HaxeRuntime._structargs_.h[Native.sidJsonDouble][0]; 6114 var sid = HaxeRuntime._structids_.h["JsonBool"]; 6115 var o = { _id : sid}; 6116 o[HaxeRuntime._structargs_.h[sid][0]] = true; 6117 Native.jsonBoolTrue = o; 6118 var sid = HaxeRuntime._structids_.h["JsonBool"]; 6119 var o = { _id : sid}; 6120 o[HaxeRuntime._structargs_.h[sid][0]] = false;
6121 Native.jsonBoolFalse = o; 6122 Native.sidPair = HaxeRuntime._structids_.h["Pair"]; 6123 Native.sidPairFirst = HaxeRuntime._structargs_.h[Native.sidPair][0]; 6124 Native.sidPairSecond = HaxeRuntime._structargs_.h[Native.sidPair][1]; 6125 Native.sidJsonObject = HaxeRuntime._structids_.h["JsonObject"]; 6126 Native.sidJsonObjectFields = HaxeRuntime._structargs_.h[Native.sidJsonObject][0]; 6127 Native.jsonNull = HaxeRuntime.makeStructValue("JsonNull",[],null); 6128 Native.jsonDoubleZero = HaxeRuntime.makeStructValue("JsonDouble",[0.0],null); 6129 Native.jsonStringEmpty = HaxeRuntime.makeStructValue("JsonString",[""],null); 6130 Native.parseJsonFirstCall = false; 6131 } 6132}; 6133Native.parseJson = function(json) { 6134 if(Native.parseJsonFirstCall) { 6135 Native.sidJsonArray = HaxeRuntime._structids_.h["JsonArray"]; 6136 Native.sidJsonArrayVal = HaxeRuntime._structargs_.h[Native.sidJsonArray][0]; 6137 Native.sidJsonString = HaxeRuntime._structids_.h["JsonString"]; 6138 Native.sidJsonStringVal = HaxeRuntime._structargs_.h[Native.sidJsonString][0]; 6139 Native.sidJsonDouble = HaxeRuntime._structids_.h["JsonDouble"]; 6140 Native.sidJsonDoubleVal = HaxeRuntime._structargs_.h[Native.sidJsonDouble][0]; 6141 var sid = HaxeRuntime._structids_.h["JsonBool"]; 6142 var o = { _id : sid}; 6143 o[HaxeRuntime._structargs_.h[sid][0]] = true; 6144 Native.jsonBoolTrue = o; 6145 var sid = HaxeRuntime._structids_.h["JsonBool"]; 6146 var o = { _id : sid}; 6147 o[HaxeRuntime._structargs_.h[sid][0]] = false; 6148 Native.jsonBoolFalse = o; 6149 Native.sidPair = HaxeRuntime._structids_.h["Pair"]; 6150 Native.sidPairFirst = HaxeRuntime._structargs_.h[Native.sidPair][0]; 6151 Native.sidPairSecond = HaxeRuntime._structargs_.h[Native.sidPair][1]; 6152 Native.sidJsonObject = HaxeRuntime._structids_.h["JsonObject"]; 6153 Native.sidJsonObjectFields = HaxeRuntime._structargs_.h[Native.sidJsonObject][0]; 6154 Native.jsonNull = HaxeRuntime.makeStructValue("JsonNull",[],null); 6155 Native.jsonDoubleZero = HaxeRuntime.makeStructValue("JsonDouble",[0.0],null); 6156 Native.jsonStringEmpty = HaxeRuntime.makeStructValue("JsonString",[""],null); 6157 Native.parseJsonFirstCall = false; 6158 } 6159 if(json == "") { 6160 return Native.jsonDoubleZero; 6161 } 6162 6163 try { 6164 if (Platform.isIOS && json.length > 1024) { 6165 // on IOS memory restriction is very tight so we try to not create duplicate strings if possible 6166 // it might have advantages for quite long parsed string only 6167 return Platform.isFirefox ? 6168 Native.object2JsonStructsCompacting_FF(JSON.parse(json), {}, {}, {}) : 6169 Native.object2JsonStructsCompacting(JSON.parse(json), {}, {}, {}); 6170 } else { 6171 return Platform.isFirefox ? 6172 Native.object2JsonStructs_FF(JSON.parse(json)) : 6173 Native.object2JsonStructs(JSON.parse(json)); 6174 } 6175 } catch (e) { 6176 return Native.jsonDoubleZero; 6177 } 6178 ; 6179 return Native.jsonDoubleZero; 6180}; 6181Native.parseJsonObject = function(obj) { 6182 if(Native.parseJsonFirstCall) { 6183 Native.sidJsonArray = HaxeRuntime._structids_.h["JsonArray"]; 6184 Native.sidJsonArrayVal = HaxeRuntime._structargs_.h[Native.sidJsonArray][0]; 6185 Native.sidJsonString = HaxeRuntime._structids_.h["JsonString"]; 6186 Native.sidJsonStringVal = HaxeRuntime._structargs_.h[Native.sidJsonString][0]; 6187 Native.sidJsonDouble = HaxeRuntime._structids_.h["JsonDouble"]; 6188 Native.sidJsonDoubleVal = HaxeRuntime._structargs_.h[Native.sidJsonDouble][0]; 6189 var sid = HaxeRuntime._structids_.h["JsonBool"]; 6190 var o = { _id : sid}; 6191 o[HaxeRuntime._structargs_.h[sid][0]] = true; 6192 Native.jsonBoolTrue = o; 6193 var sid = HaxeRuntime._structids_.h["JsonBool"]; 6194 var o = { _id : sid}; 6195 o[HaxeRuntime._structargs_.h[sid][0]] = false; 6196 Native.jsonBoolFalse = o; 6197 Native.sidPair = HaxeRuntime._structids_.h["Pair"]; 6198 Native.sidPairFirst = HaxeRuntime._structargs_.h[Native.sidPair][0]; 6199 Native.sidPairSecond = HaxeRuntime._structargs_.h[Native.sidPair][1]; 6200 Native.sidJsonObject = HaxeRuntime._structids_.h["JsonObject"]; 6201 Native.sidJsonObjectFields = HaxeRuntime._structargs_.h[Native.sidJsonObject][0]; 6202 Native.jsonNull = HaxeRuntime.makeStructValue("JsonNull",[],null); 6203 Native.jsonDoubleZero = HaxeRuntime.makeStructValue("JsonDouble",[0.0],null); 6204 Native.jsonStringEmpty = HaxeRuntime.makeStructValue("JsonString",[""],null); 6205 Native.parseJsonFirstCall = false;
6206 } 6207 if(obj == null) { 6208 return Native.jsonNull; 6209 } 6210 6211 try { 6212 return Platform.isFirefox ? 6213 Native.object2JsonStructs_FF(obj) : 6214 Native.object2JsonStructs(obj); 6215 } catch (e) { 6216 return Native.jsonNull; 6217 } 6218 ; 6219 return Native.jsonNull; 6220}; 6221Native.concurrentAsync = function(fine,tasks,cb) { 6222 6223var fns = tasks.map(function(c, i, a) { 6224 var v = function v (callback) { 6225 var r = c.call(); 6226 callback(null, r); 6227 } 6228 return v; 6229}); 6230 6231async.parallel(fns, function(err, results) { cb(results) }); 6232}; 6233Native.preloadStaticResource = function(href,as) { 6234 var tag = window.document.createElement("link"); 6235 tag.rel = "preload"; 6236 tag.href = href; 6237 tag.as = as; 6238 window.document.head.appendChild(tag); 6239}; 6240Native.isLeapYear = function(year) { 6241 if((year & 3) == 0) { 6242 if(year % 100 == 0) { 6243 return year % 400 == 0; 6244 } else { 6245 return true; 6246 } 6247 } else { 6248 return false; 6249 } 6250}; 6251Native.getDaysInMonth = function(month,year) { 6252 if(month == 2 && ((year & 3) == 0 && (year % 100 != 0 || year % 400 == 0))) { 6253 return 29; 6254 } 6255 return Native.daysInMonth[month]; 6256}; 6257Native.db2time = function(s) { 6258 if(Native.nullTime == null) { 6259 var timeSId = HaxeRuntime._structids_.h["Time"]; 6260 Native.makeTime = HaxeRuntime._structconstruct_.h[timeSId]; 6261 Native.nullTime = Native.makeTime(0,0,0,0,0,0); 6262 } 6263 if(s == null) { 6264 return Native.nullTime; 6265 } 6266 var len = s.length; 6267 var pos = 0; 6268 var nextCode = null; 6269 var readNum = function() { 6270 var v = 0; 6271 var any = false; 6272 var c = null; 6273 nextCode = null; 6274 while(pos < len) { 6275 c = HxOverrides.cca(s,pos); 6276 pos += 1; 6277 if(!(c >= 48 && c <= 57)) { 6278 nextCode = c; 6279 break; 6280 } 6281 any = true; 6282 v = v * 10 + (c - 48); 6283 } 6284 if(any) { 6285 return v; 6286 } else { 6287 return null; 6288 } 6289 }; 6290 var year = readNum(); 6291 if(year == null || year < 1000 || year > 9999) { 6292 return Native.nullTime; 6293 } 6294 if(pos >= len || nextCode != 45) { 6295 return Native.nullTime; 6296 } 6297 var month = readNum(); 6298 if(month == null || month < 1 || month > 12) { 6299 return Native.nullTime; 6300 } 6301 if(nextCode != 45) { 6302 return Native.nullTime; 6303 } 6304 var day = readNum(); 6305 if(day == null || day < 1) { 6306 return Native.nullTime; 6307 } 6308 var maxDays = month == 2 && ((year & 3) == 0 && (year % 100 != 0 || year % 400 == 0)) ? 29 : Native.daysInMonth[month]; 6309 if(day > maxDays) { 6310 return Native.nullTime; 6311 } 6312 if(pos >= len && nextCode == null) { 6313 return Native.makeTime(year,month,day,0,0,0); 6314 } 6315 if(nextCode != 32 && nextCode != 84) { 6316 return Native.nullTime; 6317 } 6318 var hour = readNum(); 6319 if(hour == null) { 6320 return Native.nullTime; 6321 } 6322 if(pos >= len || nextCode != 58) { 6323 return Native.nullTime; 6324 } 6325 var min = readNum(); 6326 if(min == null) { 6327 return Native.nullTime; 6328 } 6329 if(pos >= len || nextCode != 58) { 6330 return Native.nullTime; 6331 } 6332 var sec = readNum(); 6333 if(sec == null) { 6334 return Native.nullTime; 6335 } 6336 if(hour < 0 || hour >= 24) { 6337 return Native.nullTime; 6338 } 6339 if(min < 0 || min >= 60) { 6340 return Native.nullTime; 6341 } 6342 if(sec < 0 || sec >= 60) { 6343 return Native.nullTime; 6344 } 6345 if(nextCode == 45 || nextCode == 58) { 6346 return Native.nullTime; 6347 } 6348 return Native.makeTime(year,month,day,hour,min,sec); 6349}; 6350var NativeTime = function() { }; 6351NativeTime.__name__ = true; 6352NativeTime.timestamp = function() { 6353 var t = new Date().getTime(); 6354 return t; 6355}; 6356NativeTime.utc2local = function(stamp) { 6357 var date = new Date(stamp); 6358 var offset = date.getTimezoneOffset() * 60000.; 6359 return stamp - offset; 6360}; 6361NativeTime.local2utc = function(stamp) { 6362 var date = new Date(stamp); 6363 var offset = date.getTimezoneOffset() * 60000.; 6364 date = new Date(date.getTime() + offset); 6365 offset = date.getTimezoneOffset() * 60000.; 6366 return stamp + offset; 6367}; 6368NativeTime.getTimeOffset = function() { 6369 var now = new Date(); 6370 now = new Date(now.getFullYear(),now.getMonth(),now.getDate(),0,0,0); 6371 return now.getTime() - 86400000. * Math.round(now.getTime() / 24 / 3600 / 1000); 6372}; 6373NativeTime.string2time = function(date) { 6374 return HxOverrides.strDate(date).getTime(); 6375}; 6376NativeTime.time2string = function(date) { 6377 return HxOverrides.dateStr(new Date(date)); 6378}; 6379NativeTime.dayOfWeek = function(year,month,day) { 6380 var d = new Date(year,month - 1,day,0,0,0); 6381 return (d.getDay() + 6) % 7; 6382}; 6383var Reflect = function() { }; 6384Reflect.__name__ = true; 6385Reflect.field = function(o,field) { 6386 try { 6387 return o[field]; 6388 } catch( _g ) { 6389 haxe_NativeStackTrace.lastError = _g; 6390 return null; 6391 } 6392}; 6393Reflect.fields = function(o) { 6394 var a = []; 6395 if(o != null) { 6396 var hasOwnProperty = Object.prototype.hasOwnProperty; 6397 for( var f in o ) { 6398 if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) { 6399 a.push(f); 6400 } 6401 } 6402 } 6403 return a; 6404}; 6405Reflect.isFunction = function(f) { 6406 if(typeof(f) == "function") { 6407 return !(f.__name__ || f.__ename__); 6408 } else { 6409 return false;
6410 } 6411}; 6412Reflect.isObject = function(v) { 6413 if(v == null) { 6414 return false; 6415 } 6416 var t = typeof(v); 6417 if(!(t == "string" || t == "object" && v.__enum__ == null)) { 6418 if(t == "function") { 6419 return (v.__name__ || v.__ename__) != null; 6420 } else { 6421 return false; 6422 } 6423 } else { 6424 return true; 6425 } 6426}; 6427var Std = function() { }; 6428Std.__name__ = true; 6429Std.string = function(s) { 6430 return js_Boot.__string_rec(s,""); 6431}; 6432Std.parseInt = function(x) { 6433 var v = parseInt(x); 6434 if(isNaN(v)) { 6435 return null; 6436 } 6437 return v; 6438}; 6439var StringTools = function() { }; 6440StringTools.__name__ = true; 6441StringTools.startsWith = function(s,start) { 6442 if(s.length >= start.length) { 6443 return s.lastIndexOf(start,0) == 0; 6444 } else { 6445 return false; 6446 } 6447}; 6448StringTools.endsWith = function(s,end) { 6449 var elen = end.length; 6450 var slen = s.length; 6451 if(slen >= elen) { 6452 return s.indexOf(end,slen - elen) == slen - elen; 6453 } else { 6454 return false; 6455 } 6456}; 6457StringTools.isSpace = function(s,pos) { 6458 var c = HxOverrides.cca(s,pos); 6459 if(!(c > 8 && c < 14)) { 6460 return c == 32; 6461 } else { 6462 return true; 6463 } 6464}; 6465StringTools.ltrim = function(s) { 6466 var l = s.length; 6467 var r = 0; 6468 while(r < l && StringTools.isSpace(s,r)) ++r; 6469 if(r > 0) { 6470 return HxOverrides.substr(s,r,l - r); 6471 } else { 6472 return s; 6473 } 6474}; 6475StringTools.rtrim = function(s) { 6476 var l = s.length; 6477 var r = 0; 6478 while(r < l && StringTools.isSpace(s,l - r - 1)) ++r; 6479 if(r > 0) { 6480 return HxOverrides.substr(s,0,l - r); 6481 } else { 6482 return s; 6483 } 6484}; 6485StringTools.trim = function(s) { 6486 return StringTools.ltrim(StringTools.rtrim(s)); 6487}; 6488StringTools.replace = function(s,sub,by) { 6489 return s.split(sub).join(by); 6490}; 6491var haxe_StackItem = $hxEnums["haxe.StackItem"] = { __ename__:true,__constructs__:null 6492 ,CFunction: {_hx_name:"CFunction",_hx_index:0,__enum__:"haxe.StackItem",toString:$estr} 6493 ,Module: ($_=function(m) { return {_hx_index:1,m:m,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="Module",$_.__params__ = ["m"],$_) 6494 ,FilePos: ($_=function(s,file,line,column) { return {_hx_index:2,s:s,file:file,line:line,column:column,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="FilePos",$_.__params__ = ["s","file","line","column"],$_) 6495 ,Method: ($_=function(classname,method) { return {_hx_index:3,classname:classname,method:method,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="Method",$_.__params__ = ["classname","method"],$_) 6496 ,LocalFunction: ($_=function(v) { return {_hx_index:4,v:v,__enum__:"haxe.StackItem",toString:$estr}; },$_._hx_name="LocalFunction",$_.__params__ = ["v"],$_) 6497}; 6498haxe_StackItem.__constructs__ = [haxe_StackItem.CFunction,haxe_StackItem.Module,haxe_StackItem.FilePos,haxe_StackItem.Method,haxe_StackItem.LocalFunction]; 6499var haxe_CallStack = {}; 6500haxe_CallStack.callStack = function() { 6501 return haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.callStack()); 6502}; 6503haxe_CallStack.exceptionStack = function(fullStack) { 6504 if(fullStack == null) { 6505 fullStack = false; 6506 } 6507 var eStack = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.exceptionStack()); 6508 return fullStack ? eStack : haxe_CallStack.subtract(eStack,haxe_CallStack.callStack()); 6509}; 6510haxe_CallStack.toString = function(stack) { 6511 var b = new StringBuf(); 6512 var _g = 0; 6513 var _g1 = stack; 6514 while(_g < _g1.length) { 6515 var s = _g1[_g]; 6516 ++_g; 6517 b.b += "\nCalled from "; 6518 haxe_CallStack.itemToString(b,s); 6519 } 6520 return b.b; 6521}; 6522haxe_CallStack.subtract = function(this1,stack) { 6523 var startIndex = -1; 6524 var i = -1; 6525 while(++i < this1.length) { 6526 var _g = 0; 6527 var _g1 = stack.length; 6528 while(_g < _g1) { 6529 var j = _g++; 6530 if(haxe_CallStack.equalItems(this1[i],stack[j])) { 6531 if(startIndex < 0) { 6532 startIndex = i; 6533 } 6534 ++i; 6535 if(i >= this1.length) { 6536 break; 6537 } 6538 } else { 6539 startIndex = -1; 6540 } 6541 } 6542 if(startIndex >= 0) { 6543 break; 6544 } 6545 } 6546 if(startIndex >= 0) { 6547 return this1.slice(0,startIndex); 6548 } else { 6549 return this1; 6550 } 6551}; 6552haxe_CallStack.equalItems = function(item1,item2) { 6553 if(item1 == null) { 6554 if(item2 == null) { 6555 return true; 6556 } else { 6557 return false; 6558 } 6559 } else { 6560 switch(item1._hx_index) { 6561 case 0: 6562 if(item2 == null) { 6563 return false; 6564 } else if(item2._hx_index == 0) { 6565 return true; 6566 } else { 6567 return false;
6568 } 6569 break; 6570 case 1: 6571 if(item2 == null) { 6572 return false; 6573 } else if(item2._hx_index == 1) { 6574 var m2 = item2.m; 6575 var m1 = item1.m; 6576 return m1 == m2; 6577 } else { 6578 return false; 6579 } 6580 break; 6581 case 2: 6582 if(item2 == null) { 6583 return false; 6584 } else if(item2._hx_index == 2) { 6585 var item21 = item2.s; 6586 var file2 = item2.file; 6587 var line2 = item2.line; 6588 var col2 = item2.column; 6589 var col1 = item1.column; 6590 var line1 = item1.line; 6591 var file1 = item1.file; 6592 var item11 = item1.s; 6593 if(file1 == file2 && line1 == line2 && col1 == col2) { 6594 return haxe_CallStack.equalItems(item11,item21); 6595 } else { 6596 return false; 6597 } 6598 } else { 6599 return false; 6600 } 6601 break; 6602 case 3: 6603 if(item2 == null) { 6604 return false; 6605 } else if(item2._hx_index == 3) { 6606 var class2 = item2.classname; 6607 var method2 = item2.method; 6608 var method1 = item1.method; 6609 var class1 = item1.classname; 6610 if(class1 == class2) { 6611 return method1 == method2; 6612 } else { 6613 return false; 6614 } 6615 } else { 6616 return false; 6617 } 6618 break; 6619 case 4: 6620 if(item2 == null) { 6621 return false; 6622 } else if(item2._hx_index == 4) { 6623 var v2 = item2.v; 6624 var v1 = item1.v; 6625 return v1 == v2; 6626 } else { 6627 return false; 6628 } 6629 break; 6630 } 6631 } 6632}; 6633haxe_CallStack.itemToString = function(b,s) { 6634 switch(s._hx_index) { 6635 case 0: 6636 b.b += "a C function"; 6637 break; 6638 case 1: 6639 var m = s.m; 6640 b.b += "module "; 6641 b.b += m == null ? "null" : "" + m; 6642 break; 6643 case 2: 6644 var s1 = s.s; 6645 var file = s.file; 6646 var line = s.line; 6647 var col = s.column; 6648 if(s1 != null) { 6649 haxe_CallStack.itemToString(b,s1); 6650 b.b += " ("; 6651 } 6652 b.b += file == null ? "null" : "" + file; 6653 b.b += " line "; 6654 b.b += line == null ? "null" : "" + line; 6655 if(col != null) { 6656 b.b += " column "; 6657 b.b += col == null ? "null" : "" + col; 6658 } 6659 if(s1 != null) { 6660 b.b += ")"; 6661 } 6662 break; 6663 case 3: 6664 var cname = s.classname; 6665 var meth = s.method; 6666 b.b += Std.string(cname == null ? "<unknown>" : cname); 6667 b.b += "."; 6668 b.b += meth == null ? "null" : "" + meth; 6669 break; 6670 case 4: 6671 var n = s.v; 6672 b.b += "local function #"; 6673 b.b += n == null ? "null" : "" + n; 6674 break; 6675 } 6676}; 6677var haxe_Exception = function(message,previous,native) { 6678 Error.call(this,message); 6679 this.message = message; 6680 this.__previousException = previous; 6681 this.__nativeException = native != null ? native : this; 6682 this.__skipStack = 0; 6683 var old = Error.prepareStackTrace; 6684 Error.prepareStackTrace = function(e) { return e.stack; } 6685 if(((native) instanceof Error)) { 6686 this.stack = native.stack; 6687 } else { 6688 var e = null; 6689 if(Error.captureStackTrace) { 6690 Error.captureStackTrace(this,haxe_Exception); 6691 e = this; 6692 } else { 6693 e = new Error(); 6694 if(typeof(e.stack) == "undefined") { 6695 try { throw e; } catch(_) {} 6696 this.__skipStack++; 6697 } 6698 } 6699 this.stack = e.stack; 6700 } 6701 Error.prepareStackTrace = old; 6702}; 6703haxe_Exception.__name__ = true; 6704haxe_Exception.caught = function(value) { 6705 if(((value) instanceof haxe_Exception)) { 6706 return value; 6707 } else if(((value) instanceof Error)) { 6708 return new haxe_Exception(value.message,null,value); 6709 } else { 6710 return new haxe_ValueException(value,null,value); 6711 } 6712}; 6713haxe_Exception.thrown = function(value) { 6714 if(((value) instanceof haxe_Exception)) { 6715 return value.get_native(); 6716 } else if(((value) instanceof Error)) { 6717 return value; 6718 } else { 6719 var e = new haxe_ValueException(value); 6720 e.__skipStack++; 6721 return e; 6722 } 6723}; 6724haxe_Exception.__super__ = Error; 6725haxe_Exception.prototype = $extend(Error.prototype,{ 6726 unwrap: function() { 6727 return this.__nativeException; 6728 } 6729 ,__shiftStack: function() { 6730 this.__skipStack++; 6731 } 6732 ,get_native: function() { 6733 return this.__nativeException; 6734 } 6735 ,get_stack: function() { 6736 var _g = this.__exceptionStack; 6737 if(_g == null) { 6738 var value = haxe_NativeStackTrace.toHaxe(haxe_NativeStackTrace.normalize(this.stack),this.__skipStack); 6739 this.setProperty("__exceptionStack",value); 6740 return value; 6741 } else { 6742 var s = _g; 6743 return s; 6744 } 6745 } 6746 ,setProperty: function(name,value) { 6747 try { 6748 Object.defineProperty(this,name,{ value : value}); 6749 } catch( _g ) { 6750 this[name] = value; 6751 } 6752 } 6753 ,__class__: haxe_Exception 6754}); 6755var haxe_NativeStackTrace = function() { }; 6756haxe_NativeStackTrace.__name__ = true; 6757haxe_NativeStackTrace.saveStack = function(e) { 6758 haxe_NativeStackTrace.lastError = e; 6759}; 6760haxe_NativeStackTrace.callStack = function() { 6761 var e = new Error(""); 6762 var stack = haxe_NativeStackTrace.tryHaxeStack(e); 6763 if(typeof(stack) == "undefined") { 6764 try { 6765 throw e; 6766 } catch( _g ) { 6767 } 6768 stack = e.stack; 6769 } 6770 return haxe_NativeStackTrace.normalize(stack,2); 6771}; 6772haxe_NativeStackTrace.exceptionStack = function() { 6773 return haxe_NativeStackTrace.normalize(haxe_NativeStackTrace.tryHaxeStack(haxe_NativeStackTrace.lastError)); 6774}; 6775haxe_NativeStackTrace.toHaxe = function(s,skip) { 6776 if(skip == null) { 6777 skip = 0; 6778 } 6779 if(s == null) { 6780 return []; 6781 } else if(typeof(s) == "string") { 6782 var stack = s.split("\n"); 6783 if(stack[0] == "Error") { 6784 stack.shift(); 6785 } 6786 var m = []; 6787 var _g = 0; 6788 var _g1 = stack.length; 6789 while(_g < _g1) { 6790 var i = _g++; 6791 if(skip > i) { 6792 continue; 6793 } 6794 var line = stack[i]; 6795 var matched = line.match(/^ at ([$A-Za-z0-9_. ]+) \(([^)]+):([0-9]+):([0-9]+)\)$/); 6796 if(matched != null) { 6797 var path = matched[1].split("."); 6798 if(path[0] == "$hxClasses") { 6799 path.shift(); 6800 } 6801 var meth = path.pop(); 6802 var file = matched[2]; 6803 var line1 = Std.parseInt(matched[3]); 6804 var column = Std.parseInt(matched[4]); 6805 m.push(haxe_StackItem.FilePos(meth == "Anonymous function" ? haxe_StackItem.LocalFunction() : meth == "Global code" ? null : haxe_StackItem.Method(path.join("."),meth),file,line1,column)); 6806 } else { 6807 m.push(haxe_StackItem.Module(StringTools.trim(line))); 6808 } 6809 } 6810 return m; 6811 } else if(skip > 0 && Array.isArray(s)) { 6812 return s.slice(skip); 6813 } else { 6814 return s; 6815 } 6816}; 6817haxe_NativeStackTrace.tryHaxeStack = function(e) { 6818 if(e == null) { 6819 return []; 6820 } 6821 var oldValue = Error.prepareStackTrace; 6822 Error.prepareStackTrace = haxe_NativeStackTrace.prepareHxStackTrace; 6823 var stack = e.stack; 6824 Error.prepareStackTrace = oldValue; 6825 return stack; 6826}; 6827haxe_NativeStackTrace.prepareHxStackTrace = function(e,callsites) { 6828 var stack = []; 6829 var _g = 0; 6830 while(_g < callsites.length) { 6831 var site = callsites[_g]; 6832 ++_g; 6833 if(haxe_NativeStackTrace.wrapCallSite != null) { 6834 site = haxe_NativeStackTrace.wrapCallSite(site); 6835 } 6836 var method = null; 6837 var fullName = site.getFunctionName(); 6838 if(fullName != null) { 6839 var idx = fullName.lastIndexOf("."); 6840 if(idx >= 0) { 6841 var className = fullName.substring(0,idx); 6842 var methodName = fullName.substring(idx + 1); 6843 method = haxe_StackItem.Method(className,methodName); 6844 } else { 6845 method = haxe_StackItem.Method(null,fullName); 6846 } 6847 } 6848 var fileName = site.getFileName(); 6849 var fileAddr = fileName == null ? -1 : fileName.indexOf("file:"); 6850 if(haxe_NativeStackTrace.wrapCallSite != null && fileAddr > 0) { 6851 fileName = fileName.substring(fileAddr + 6); 6852 } 6853 stack.push(haxe_StackItem.FilePos(method,fileName,site.getLineNumber(),site.getColumnNumber())); 6854 } 6855 return stack; 6856}; 6857haxe_NativeStackTrace.normalize = function(stack,skipItems) { 6858 if(skipItems == null) { 6859 skipItems = 0; 6860 } 6861 if(Array.isArray(stack) && skipItems > 0) { 6862 return stack.slice(skipItems); 6863 } else if(typeof(stack) == "string") { 6864 switch(stack.substring(0,6)) { 6865 case "Error\n":case "Error:": 6866 ++skipItems; 6867 break; 6868 default: 6869 } 6870 return haxe_NativeStackTrace.skipLines(stack,skipItems); 6871 } else { 6872 return stack; 6873 } 6874}; 6875haxe_NativeStackTrace.skipLines = function(stack,skip,pos) { 6876 if(pos == null) { 6877 pos = 0; 6878 } 6879 if(skip > 0) { 6880 pos = stack.indexOf("\n",pos); 6881 if(pos < 0) { 6882 return ""; 6883 } else { 6884 return haxe_NativeStackTrace.skipLines(stack,--skip,pos + 1); 6885 } 6886 } else { 6887 return stack.substring(pos); 6888 } 6889}; 6890var haxe_ValueException = function(value,previous,native) { 6891 haxe_Exception.call(this,String(value),previous,native); 6892 this.value = value; 6893 this.__skipStack++; 6894}; 6895haxe_ValueException.__name__ = true; 6896haxe_ValueException.__super__ = haxe_Exception; 6897haxe_ValueException.prototype = $extend(haxe_Exception.prototype,{ 6898 unwrap: function() { 6899 return this.value; 6900 } 6901 ,__class__: haxe_ValueException 6902}); 6903var haxe_io_Bytes = function(data) { 6904 this.length = data.byteLength; 6905 this.b = new Uint8Array(data); 6906 this.b.bufferValue = data; 6907 data.hxBytes = this; 6908 data.bytes = this.b; 6909}; 6910haxe_io_Bytes.__name__ = true; 6911haxe_io_Bytes.ofString = function(s,encoding) { 6912 if(encoding == haxe_io_Encoding.RawNative) { 6913 var buf = new Uint8Array(s.length << 1); 6914 var _g = 0; 6915 var _g1 = s.length; 6916 while(_g < _g1) { 6917 var i = _g++;
6918 var c = s.charCodeAt(i); 6919 buf[i << 1] = c & 255; 6920 buf[i << 1 | 1] = c >> 8; 6921 } 6922 return new haxe_io_Bytes(buf.buffer); 6923 } 6924 var a = []; 6925 var i = 0; 6926 while(i < s.length) { 6927 var c = s.charCodeAt(i++); 6928 if(55296 <= c && c <= 56319) { 6929 c = c - 55232 << 10 | s.charCodeAt(i++) & 1023; 6930 } 6931 if(c <= 127) { 6932 a.push(c); 6933 } else if(c <= 2047) { 6934 a.push(192 | c >> 6); 6935 a.push(128 | c & 63); 6936 } else if(c <= 65535) { 6937 a.push(224 | c >> 12); 6938 a.push(128 | c >> 6 & 63); 6939 a.push(128 | c & 63); 6940 } else { 6941 a.push(240 | c >> 18); 6942 a.push(128 | c >> 12 & 63); 6943 a.push(128 | c >> 6 & 63); 6944 a.push(128 | c & 63); 6945 } 6946 } 6947 return new haxe_io_Bytes(new Uint8Array(a).buffer); 6948}; 6949haxe_io_Bytes.prototype = { 6950 __class__: haxe_io_Bytes 6951}; 6952var haxe_io_Encoding = $hxEnums["haxe.io.Encoding"] = { __ename__:true,__constructs__:null 6953 ,UTF8: {_hx_name:"UTF8",_hx_index:0,__enum__:"haxe.io.Encoding",toString:$estr} 6954 ,RawNative: {_hx_name:"RawNative",_hx_index:1,__enum__:"haxe.io.Encoding",toString:$estr} 6955}; 6956haxe_io_Encoding.__constructs__ = [haxe_io_Encoding.UTF8,haxe_io_Encoding.RawNative]; 6957var haxe_iterators_ArrayIterator = function(array) { 6958 this.current = 0; 6959 this.array = array; 6960}; 6961haxe_iterators_ArrayIterator.__name__ = true; 6962haxe_iterators_ArrayIterator.prototype = { 6963 hasNext: function() { 6964 return this.current < this.array.length; 6965 } 6966 ,next: function() { 6967 return this.array[this.current++]; 6968 } 6969 ,__class__: haxe_iterators_ArrayIterator 6970}; 6971var js_BinaryBuffer = function(bigEndian,buffer) { 6972 this.bigEndian = bigEndian; 6973 this.buffer = []; 6974 this.setBuffer(buffer); 6975}; 6976js_BinaryBuffer.__name__ = true; 6977js_BinaryBuffer.prototype = { 6978 readBits: function(start,length) { 6979 //shl fix: Henri Torgemane ~1996 (compressed by Jonas Raoni) 6980 function shl(a, b){ 6981 for(++b; --b; a = ((a %= 0x7fffffff + 1) & 0x40000000) == 0x40000000 ? a * 2 : (a - 0x40000000) * 2 + 0x7fffffff + 1); 6982 return a; 6983 } 6984 if(start < 0 || length <= 0) 6985 return 0; 6986 this.checkBuffer(start + length); 6987 for(var offsetLeft, offsetRight = start % 8, curByte = this.buffer.length - (start >> 3) - 1, 6988 lastByte = this.buffer.length + (-(start + length) >> 3), diff = curByte - lastByte, 6989 sum = ((this.buffer[ curByte ] >> offsetRight) & ((1 << (diff ? 8 - offsetRight : length)) - 1)) 6990 + (diff && (offsetLeft = (start + length) % 8) ? (this.buffer[ lastByte++ ] & ((1 << offsetLeft) - 1)) 6991 << (diff-- << 3) - offsetRight : 0); diff; sum += shl(this.buffer[ lastByte++ ], (diff-- << 3) - offsetRight) 6992 ); 6993 return sum; 6994 ; 6995 } 6996 ,setBuffer: function(data) { 6997 if(data){ 6998 for(var l, i = l = data.length, b = this.buffer = new Array(l); i; b[l - i] = data.charCodeAt(--i)); 6999 this.bigEndian && b.reverse(); 7000 } 7001 } 7002 ,hasNeededBits: function(neededBits) { 7003 return this.buffer.length >= -(-neededBits >> 3); 7004 } 7005 ,checkBuffer: function(neededBits) { 7006 if(!this.hasNeededBits(neededBits)) { 7007 throw new Error("checkBuffer::missing bytes"); 7008 } 7009 } 7010 ,__class__: js_BinaryBuffer 7011}; 7012var js_Boot = function() { }; 7013js_Boot.__name__ = true; 7014js_Boot.getClass = function(o) { 7015 if(o == null) { 7016 return null; 7017 } else if(((o) instanceof Array)) { 7018 return Array; 7019 } else { 7020 var cl = o.__class__; 7021 if(cl != null) { 7022 return cl; 7023 } 7024 var name = js_Boot.__nativeClassName(o); 7025 if(name != null) { 7026 return js_Boot.__resolveNativeClass(name); 7027 } 7028 return null; 7029 } 7030}; 7031js_Boot.__string_rec = function(o,s) { 7032 if(o == null) { 7033 return "null"; 7034 } 7035 if(s.length >= 5) { 7036 return "<...>"; 7037 } 7038 var t = typeof(o); 7039 if(t == "function" && (o.__name__ || o.__ename__)) { 7040 t = "object"; 7041 } 7042 switch(t) { 7043 case "function": 7044 return "<function>"; 7045 case "object": 7046 if(o.__enum__) { 7047 var e = $hxEnums[o.__enum__]; 7048 var con = e.__constructs__[o._hx_index]; 7049 var n = con._hx_name; 7050 if(con.__params__) { 7051 s = s + "\t"; 7052 return n + "(" + ((function($this) { 7053 var $r; 7054 var _g = []; 7055 { 7056 var _g1 = 0; 7057 var _g2 = con.__params__; 7058 while(true) { 7059 if(!(_g1 < _g2.length)) { 7060 break; 7061 } 7062 var p = _g2[_g1]; 7063 _g1 = _g1 + 1; 7064 _g.push(js_Boot.__string_rec(o[p],s)); 7065 } 7066 } 7067 $r = _g; 7068 return $r; 7069 }(this))).join(",") + ")"; 7070 } else { 7071 return n; 7072 } 7073 } 7074 if(((o) instanceof Array)) { 7075 var str = "["; 7076 s += "\t"; 7077 var _g = 0; 7078 var _g1 = o.length; 7079 while(_g < _g1) { 7080 var i = _g++; 7081 str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s); 7082 } 7083 str += "]"; 7084 return str; 7085 } 7086 var tostr; 7087 try { 7088 tostr = o.toString; 7089 } catch( _g ) { 7090 haxe_NativeStackTrace.lastError = _g; 7091 return "???"; 7092 } 7093 if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") { 7094 var s2 = o.toString(); 7095 if(s2 != "[object Object]") { 7096 return s2; 7097 } 7098 } 7099 var str = "{\n"; 7100 s += "\t"; 7101 var hasp = o.hasOwnProperty != null; 7102 var k = null; 7103 for( k in o ) { 7104 if(hasp && !o.hasOwnProperty(k)) { 7105 continue; 7106 } 7107 if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") { 7108 continue; 7109 } 7110 if(str.length != 2) { 7111 str += ", \n"; 7112 } 7113 str += s + k + " : " + js_Boot.__string_rec(o[k],s); 7114 } 7115 s = s.substring(1); 7116 str += "\n" + s + "}"; 7117 return str; 7118 case "string": 7119 return o; 7120 default: 7121 return String(o); 7122 } 7123}; 7124js_Boot.__nativeClassName = function(o) { 7125 var name = js_Boot.__toStr.call(o).slice(8,-1); 7126 if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") { 7127 return null; 7128 } 7129 return name; 7130}; 7131js_Boot.__resolveNativeClass = function(name) { 7132 return $global[name]; 7133}; 7134function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $global.$haxeUID++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = m.bind(o); o.hx__closures__[m.__id__] = f; } return f; } 7135$global.$haxeUID |= 0; 7136if(typeof(performance) != "undefined" ? typeof(performance.now) == "function" : false) { 7137 HxOverrides.now = performance.now.bind(performance); 7138} 7139Native.initBinarySerialization(); 7140if( String.fromCodePoint == null ) String.fromCodePoint = function(c) { return c < 0x10000 ? String.fromCharCode(c) : String.fromCharCode((c>>10)+0xD7C0)+String.fromCharCode((c&0x3FF)+0xDC00); } 7141Object.defineProperty(String.prototype,"__class__",{ value : String, enumerable : false, writable : true}); 7142String.__name__ = true; 7143Array.__name__ = true; 7144Date.prototype.__class__ = Date; 7145Date.__name__ = "Date"; 7146js_Boot.__toStr = ({ }).toString; 7147HaxeRuntime._structconstruct_ = new haxe_ds_IntMap(); 7148HaxeRuntime.regexCharsToReplaceForString = /[\\\"\n\t]/g; 7149HaxeRuntime.regexCharsToReplaceForJson = /[\\\"\n\t\x00-\x08\x0B-\x1F]/g; 7150FlowJsProgram.globals__ = (function($this) { 7151 var $r; 7152 HaxeRuntime._structnames_ = new haxe_ds_IntMap(); 7153 HaxeRuntime._structids_ = new haxe_ds_StringMap(); 7154 HaxeRuntime._structargs_ = new haxe_ds_IntMap(); 7155 $r = HaxeRuntime._structargtypes_ = new haxe_ds_IntMap(); 7156 return $r; 7157}(this)); 7158JSBinflowBuffer.DoubleSwapBuffer = new DataView(new ArrayBuffer(8)); 7159Md5.inst = new Md5(); 7160Util.filesCache = new haxe_ds_StringMap(); 7161Util.filesHashCache = new haxe_ds_StringMap(); 7162Platform.isChrome = new EReg("chrome|crios","i").match(window.navigator.userAgent); 7163Platform.isSafari = new EReg("safari","i").match(window.navigator.userAgent) ? !Platform.isChrome : false;
7164Platform.isIE = new EReg("MSIE|Trident","i").match(window.navigator.userAgent); 7165Platform.isEdge = new EReg("Edge","i").match(window.navigator.userAgent); 7166Platform.isFirefox = new EReg("firefox","i").match(window.navigator.userAgent); 7167Platform.isSamsung = new EReg("samsungbrowser","i").match(window.navigator.userAgent); 7168Platform.isIEMobile = new EReg("iemobile","i").match(window.navigator.userAgent); 7169Platform.isAndroid = new EReg("android","i").match(window.navigator.userAgent); 7170Platform.isIOS = !(new EReg("ipad|iphone|ipod","i").match(window.navigator.userAgent) || HaxeRuntime.typeof(navigator.standalone) != "undefined" && window.navigator.standalone) ? window.navigator.platform == "MacIntel" && window.navigator.maxTouchPoints > 1 ? !window.MSStream : false : true; 7171Platform.isMobile = !(new EReg("webOS|BlackBerry|Windows Phone","i").match(window.navigator.userAgent) || Platform.isIEMobile || Platform.isAndroid) ? Platform.isIOS : true; 7172Platform.isRetinaDisplay = Platform.getIsRetinaDisplay(); 7173Platform.isHighDensityDisplay = !Platform.isRetinaDisplay ? Platform.getIsHighDensityDisplay() : true; 7174Platform.isWKWebView = Platform.isIOS ? window.webkit ? window.webkit.messageHandlers : false : false; 7175Platform.isMacintosh = new EReg("Mac","i").match(window.navigator.platform); 7176Platform.isWindows = new EReg("Win","i").match(window.navigator.platform); 7177Platform.isLinux = new EReg("Linux","i").match(window.navigator.platform); 7178Platform.isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches; 7179Platform.isMouseSupported = window.matchMedia("(any-pointer: fine)").matches; 7180Platform.browserMajorVersion = function() { 7181 var version = window.navigator.userAgent.match(/version\/(\d+)/i); 7182 return version && version.length > 1 ? parseInt(version[1]) || 0 : 0; 7183 }(); 7184Platform.SupportsVideoTexture = !Platform.isIEMobile; 7185Platform.AccessiblityAllowed = Util.getParameter("accessenabled") != "1" ? Platform.isFirefox || Platform.isChrome || Platform.isSafari ? !Platform.isEdge : false : true; 7186Native.isNew = Util.getParameter("new") == "1"; 7187Native.complainedMissingExternal = false; 7188Native.clipboardData = ""; 7189Native.clipboardDataHtml = ""; 7190Native.useConcatForPush = !Platform.isChrome ? Platform.isSafari : true; 7191Native.DeferQueue = []; 7192Native.deferTolerance = 250; 7193Native.deferActive = false; 7194Native.openedWindows = new haxe_ds_IntMap(); 7195Native.openedWindowsNextId = 1; 7196Native.FlowCrashHandlers = []; 7197Native.PlatformEventListeners = new haxe_ds_StringMap(); 7198Native.LastUserAction = -1; 7199Native.IdleLimit = 60000.; 7200Native.parseJsonFirstCall = true; 7201Native.daysInMonth = [0,31,28,31,30,31,30,31,31,30,31,30,31]; 7202 7203(function() { 7204var S = HaxeRuntime.initStruct; 7205var i=RuntimeType.RTArray(RuntimeType.RTInt);var h=RuntimeType.RTArray(RuntimeType.RTString);var g=RuntimeType.RTArray(RuntimeType.RTUnknown);var e=RuntimeType.RTBool;var b=RuntimeType.RTDouble;var a=RuntimeType.RTInt;var f=RuntimeType.RTRefTo(RuntimeType.RTUnknown);var c=RuntimeType.RTString;var d=RuntimeType.RTUnknown;S(0,"SAxisX",[],[]);st_0={_id:0};S(1,"SAxisY",[],[]);st_1={_id:1};S(2,"SSize",["J","K","L","M"],[a,a,a,a]);S(3,"SWidthHeight",["N","O"],[b,b]);S(4,"KeyValue",["P","Q"],[c,c]);S(5,"Pair",["R","S"],[d,d]);S(6,"Quadruple",["R","S","T","U"],[d,d,d,d]);S(7,"Triple",["R","S","T"],[d,d,d]);S(8,"IllegalStruct",[],[]);st_8={_id:8};S(9,"None",[],[]);st_9={_id:9};S(10,"Some",["Q"],[d]);S(11,"Cons",["head","tail"],[d,d]);S(12,"EmptyList",[],[]);st_12={_id:12};S(13,"DEnd",[],[]);st_13={_id:13};S(14,"DLink",["X","Y","Z","a0"],[d,d,d,e]);S(15,"DList",["R","b0"],[d,d]);S(16,"OWASP",["c0"],[a]);S(17,"VerboseOutput",["d0"],[d]);S(18,"SameStartLength",["e0","f0","g0","h0"],[a,a,a,e]);S(19,"Size2D",["i0","j0"],[a,a]);S(20,"EmptyPopResult",[],[]);st_20={_id:20};S(21,"PopResult",["g0","X","k0"],[d,d,d]);S(22,"TreeEmpty",[],[]);st_22={_id:22};S(23,"TreeNode",["P","Q","l0","m0","n0"],[d,d,d,d,a]);S(24,"ConstBehaviour",["o0"],[d]);S(25,"DebuggedSubscriber",["p0","d0","q0","r0","s0"],[d,d,d,d,d]);S(26,"Disposable",["Q","t0"],[d,d]);S(27,"DynamicBehaviour",["Q","u0"],[f,d]);S(28,"WidthHeight",["N","O"],[b,b]);S(29,"Promise",["v0"],[d]);S(30,"PopSetResult",["Q","k0"],[d,d]);S(31,"Set",["w0"],[d]);S(32,"Factor",["x0","y0"],[b,b]);S(33,"Point",["x0","y0"],[b,b]);S(34,"PositionScale",["z0","A0"],[d,d]);S(35,"Rect",["B0","C0","D0","E0"],[b,b,b,b]);S(36,"V2",["x0","y0"],[b,b]);S(37,"V2Circle",["F0","G0"],[d,b]);S(38,"SAll",[],[]);st_38={_id:38};S(39,"SAutoHeight",[],[]);st_39={_id:39};S(40,"SAutoWidth",[],[]);st_40={_id:40};S(41,"SBlock",["H0","I0"],[g,g]);S(42,"SBlockHtml",["J0","K0"],[h,c]);S(43,"SBlockMetrics",["L0","M0","N0","O0","P0","Q0","R0","S0","K0"],[c,d,d,e,d,c,c,d,c]);S(44,"SBlocks",["T0"],[g]);S(45,"SBorder",["l0","U0","m0","V0","W0"],[a,a,a,a,d]);S(46,"SBreakpointLandscapeW",["N"],[a]);S(47,"SBreakpointW",["N"],[a]);S(48,"SBreakpointWindowWH",["N","O"],[a,a]);S(49,"SCol",[],[]);st_49={_id:49};S(50,"SCols",["X0","I0"],[g,g]);S(51,"SDontKeepAspectRatio",[],[]);st_51={_id:51};S(52,"SDrop",[],[]);st_52={_id:52};S(53,"SExportFormat",["Y0"],[c]);S(54,"SFill",[],[]);st_54={_id:54};S(55,"SFixed",["M0"],[a]);S(56,"SFixedPosition",[],[]);st_56={_id:56};S(57,"SFrame",["Z0","I0"],[d,g]);S(58,"SGroup",["a1","I0"],[g,g]);S(59,"SLayoutName",["b1"],[c]);S(60,"SLine",[],[]);st_60={_id:60};S(61,"SLines",["c1","I0"],[g,g]);S(62,"SMaxHeight",["O"],[a]);S(63,"SMaxWidth",["N"],[a]);S(64,"SOverflowX",["d1"],[c]);S(65,"SOverflowY",["d1"],[c]);S(66,"SOverlap",[],[]);st_66={_id:66};S(67,"SPageContent",["e1","f1","K0"],[c,c,c]);S(68,"SPageLayout",["W0","I0"],[d,g]);S(69,"SPageOutput",["g1","T0","h1","i1","M0","j1","k1"],[g,d,d,d,d,a,c]);S(70,"SPanel",["b1","l1","m1","n1","d1"],[c,b,b,d,d]);S(71,"SPanelMetrics",["L0","M0","N0","o1","p1"],[c,d,d,d,e]);S(72,"SPanelOutput",["q1","T0","r1"],[d,d,g]);
7205S(73,"SSameSizeGroup",["s1"],[c]);S(74,"SScroll",[],[]);st_74={_id:74};S(75,"SStack",[],[]);st_75={_id:75};S(76,"SSubSizes",["t1","H0"],[d,g]);S(77,"SSubStructure",["t1","W0","I0"],[d,d,g]);S(78,"SUnlimitedHeight",[],[]);st_78={_id:78};S(79,"SUnlimitedWidth",[],[]);st_79={_id:79};S(80,"SViewportBasedSize",["N","O","u1","v1"],[b,b,a,a]);S(81,"SWrap",[],[]);st_81={_id:81};S(82,"SZIndex",["P0"],[a]);S(83,"JsonArray",["Q"],[g]);S(84,"JsonBool",["X"],[e]);S(85,"JsonDouble",["Q"],[b]);S(86,"JsonFieldIgnoreCase",[],[]);st_86={_id:86};S(87,"JsonFieldTreatAsPath",["w1"],[c]);S(88,"JsonNull",[],[]);st_88={_id:88};S(89,"JsonObject",["x1"],[g]);S(90,"JsonParseResult",["Q","y1","z1"],[d,a,a]);S(91,"JsonString",["A1"],[c]);S(92,"ParsingAcc",["B1","C1","D1","E1"],[d,a,a,a]);S(93,"BluePrintCondition",["F1","G1","H1"],[c,c,a]);S(94,"BluePrintElse",["G1","H1"],[c,a]);S(95,"BluePrintLines",["c1"],[d]);S(96,"BlueReplacement",["C1","I1","Q"],[a,a,c]);S(97,"SBlockTemplate",["b1","J1","J0","K0"],[c,d,h,c]);S(98,"SHtmlTemplate",["L0","M0","J0","K0"],[c,d,h,c]);S(99,"DeserializeOptionFailProc",["K1"],[d]);S(100,"DeserializeOptionFixups",["L1"],[d]);S(101,"DeserializeOptionFixupsEx",["L1"],[d]);S(102,"DeserializeOptionRootArray",["M1","N1"],[d,d]);S(103,"DeserializeOptionThrowErrors",["O1"],[e]);S(104,"SChoice",["P1","M0","Q1"],[d,d,i]);S(105,"SCombination",["H0"],[g]);S(106,"SLayoutResult",["R1","g1"],[d,d]);S(107,"SLayoutState",["S1","T1"],[f,c]);S(108,"SPanelLayout",["U1","H0","V1","Q1","p1"],[d,g,g,i,e]);}()); 7206var t=true;var f=false;function CR_(v){this.__v=v}var CMP = HaxeRuntime.compareByValue; 7207var CME = HaxeRuntime.compareEqual; 7208var $0=c$2(0,0,0,0);var $1=c$3(0,0);$2=Native.genericCompare||function(_0,_1){if((CMP(_0,_1)<0)){return -1;}else{if(CME(_0,_1)){return 0;}else{return 1;}}};function $3(_0,_1){return $2(_1,_0);}function $4(_0){return (function(_1,_2){return $2(_0(_1),_0(_2));});}function $5(_0){return (function(_1,_2){return $3(_0(_1),_0(_2));});}function $6(_0){return _0.R;}function $7(_0){return _0.S;}function $8(_0,_1){return _1(_0.R,_0.S);}function $9(_0,_1){return _1(_0.R,_0.S,_0.T,_0.U);}function $a(_0,_1){return _1(_0.R,_0.S,_0.T);}$b=Native.isSameStructType;$c=Native.makeStructValue;$d=Native.toString;function $e(_0){return _0;}function $f(_0){return $d($e(_0));}function $g(_0,_1){if((_0)._id==9){return _1;}else{var _2=_0.Q;return _2;}}function $h(_0,_1,_2){if((_0)._id==9){return _2();}else{var _3=_0.Q;return _1(_3);}}function $i(_0,_1,_2){if((_0)._id==9){return _2;}else{var _3=_0.Q;return _1(_3);}}function $j(_0){if((_0)._id==9){return t;}else{return f;}}function $k(_0){if((_0)._id==9){return f;}else{return t;}}function $l(_0,_1){if((_0)._id==9){return null;}else{var _2=_0.Q;return _1(_2);}}function $m(_0,_1){if((_0)._id==9){return st_9;}else{var _2=_0.Q;return c$a(_1(_2));}}var $n=new CR_((function(_0,_1){return _1(_0);}));$o=Native.list2array;$p=Native.list2string;$q=Native.tailList||function(_0){if((_0)._id==12){return _0;}else{var _1=_0.tail;return _1;}};function $r(_0,_1){T:while(!0){if((_0)._id==12){return _1;}else{var _2=_0.head,_3=_0.tail,a_=_3;var b_=c$b(_2,_1);_0=a_;_1=b_;continue T}}}function $s(_0,_1,_2){T:while(!0){if((_0)._id==12){return _2;}else{var _3=_0.head,_4=_0.tail,a_=_4;var b_=c$b(_1(_3),_2);_0=a_;_2=b_;continue T}}}function $t(_0,_1){T:while(!0){if((_0)._id==12){return f;}else{var _2=_0.head,_3=_0.tail;if(_1(_2)){return t;}else{_0=_3;continue T}}}}function $u(_0,_1,_2){T:while(!0){if((_0)._id==12){return _1;}else{var _3=_0.head,_4=_0.tail,a_=_4;var b_=_2(_1,_3);_0=a_;_1=b_;continue T}}}function $v(_0,_1,_2){T:while(!0){if((_0)._id==12){return _1;}else{var _3=_0.head,_4=_0.tail,a_=_4;var b_=_2(_0,_1,_3);_0=a_;_1=b_;continue T}}}function $w(){return st_12;}function $x(_0){return c$b(_0,st_12);}function $y(_0,_1){T:while(!0){if((_0)._id==12){return _1;}else{var _2=_0.head,_3=_0.tail,a_=_3;var b_=c$b(_2,_1);_0=a_;_1=b_;continue T}}}function $z(_0,_1){return $t(_0,(function(_2){return CME(_2,_1);}));}function $A(_0){return $y(_0,$w());}function $B(_0,_1){if((_1)._id==12){return _0;}else{return $r($A(_0),_1);}}function $C(_0,_1){return $A($s(_0,_1,st_12));}$D=Native.concat;$E=Native.elemIndex||function(_0,_1,_2){var _3=$K(_0,(function(_4,_5){return CME(_5,_1);}));if(_3===$L(_0)){return _2;}else{return _3;}};$F=Native.enumFromTo;$G=Native.filter;$H=Native.find||function(_0,_1){var _2=$K(_0,(function(_3,_4){return _1(_4);}));if(_2===$L(_0)){return st_9;}else{return c$a(_0[_2]);}};$I=Native.fold;$J=Native.foldi;$K=Native.iteriUntil;$L=Native.length__;$M=Native.map;$N=Native.mapi;$O=Native.replace;$P=Native.subrange;function $Q(_0){return $I(_0,st_12,(function(_1,_2){return c$b(_2,_1);}));}function $R(_0,_1){return $O(_0,$L(_0),_1);}function $S(_0,_1,_2){if($L(_0)<$L(_2)){return $D($D(_0,_1),_2);}else{return $D(_0,$D(_1,_2));}}function $T(_0,_1){if($L(_0)>0){return _0[0];}else{return _1;}}function $U(_0,_1,_2,_3){T:while(!0){if(_0<=_1){var a_=((_0+1)|0);var b_=_3(_2,_0);_0=a_;_2=b_;continue T}else{return _2;}}}function $V(_0){return $P(_0,1,(($L(_0)-1)|0));}function $W(_0,_1){return $E(_0,_1,-1)!==-1;}function $X(_0,_1,_2){if(_2<=3){if(_2===1){return _0[_1];}else{if(_2===2){return $D(_0[_1],_0[((_1+1)|0)]);}else{if(_2===3){return $S(_0[_1],_0[((_1+1)|0)],_0[((_1+2)|0)]);}else{return [];}}}}else{var _3=((_2/2)|0);return $D($X(_0,_1,_3),$X(_0,((_1+_3)|0),((_2-_3)|0)));}}function $Y(_0,_1,_2){return $g($H(_0,_1),_2);}function $Z(_0){return $X(_0,0,$L(_0));}function $00(_0,_1){return $Z($M(_0,_1));}$10=Native.extractStruct||function(_0,_1){return $I(_0,_1,(function(_2,_3){if($b(_2,_3)){var _4=$e(_3);return _4;}else{return _2;}}));};function $20(_0,_1){return $G(_0,(function(_2){return $b(_1,_2);}));}function $30(_0,_1){return $D($G(_0,(function(_2){return !$b(_2,_1);})),[_1]);}function $40(){return c$f(st_13,st_13);}var $50=new CR_(t);var $60=new CR_([]);function $70(){return $10($60.__v,c$g(0)).c0>0;}function $80(){return $10($60.__v,c$h((function(){return t;}))).d0();}function $90(){return ((!$70())&&$80())&&$50.__v;}function $a0(_0,_1,_2){T:while(!0){if(_1(_0)){_0=_2(_0);continue T}else{return _0;}}}$b0=Native.hostCall;$c0=Native.fast_max||function(_0,_1){if((CMP(_0,_1)>0)){return _0;}else{return _1;}};$d0=Native.println;function $e0(_0){return $f(_0);}function $f0(_0,_1,_2){T:while(!0){if(_0>=_1){return _1;}else{if(_2(_0)){return _0;}else{_0=((_0+1)|0);continue T}}}}function $g0(_0){return _0;}var $h0=new CR_(t);function $i0(_0,_1){if((CMP(_0,_1)<=0)){return _0;}else{return _1;}}function $j0(_0,_1){return null;}function $k0(_0){if($90()){return $d0(_0);}else{return null;}}function $l0(_0,_1){return $J(_0,c$5([],0),(function(_2,_3,_4){return c$5($D(_3.R,[$N(_4,(function(_5,_6){return _1(_2,_5,((_3.S+_5)|0),_6);}))]),((_3.S+$L(_4))|0));})).R;}function $m0(_0,_1){T:while(!0){if((_0)._id==23){var _2=_0.P,_3=_0.Q,_4=_0.l0,_5=_0.m0,_6=$2(_1,_2);if(_6<0){_0=_4;continue T}else{if(_6===0){return c$a(_3);}else{_0=_5;continue T}}}else{return st_9;}}}$n0=Native.fast_setTree||function(_0,_1,_2){if((_0)._id==23){var _3=_0.P,_4=_0.Q,_5=_0.l0,_6=_0.m0,_7=_0.n0,_8=$2(_1,_3);if(_8<0){return $G0(_3,_4,$n0(_5,_1,_2),_6);}else{if(_8===0){return c$n(_3,_2,_5,_6,_7);}else{return $G0(_3,_4,_5,$n0(_6,_1,_2));}}}else{return c$n(_1,_2,st_22,st_22,1);}};function $o0(_0,_1){if((_0)._id==22){return st_9;}else{var _2=_0.P,_3=_0.Q,_4=_0.l0,_5=_0.m0;return $h($o0(_4,_1),(function(_6){return c$a(_6);}),(function(){return $h(_1(_2,_3),(function(_7){return c$a(_7);}),(function(){return $o0(_5,_1);}));}));}}function $p0(_0,_1,_2){T:while(!0){if((_0)._id==22){return _1;}else{var _3=_0.P,_4=_0.Q,_5=_0.l0,_6=_0.m0,_7=$p0(_5,_1,_2),_8=_2(_3,_4,_7),a_=_6;var b_=_8;_0=a_;_1=b_;continue T}}}function $q0(_0){return _0._id===22;}function $r0(){return st_22;}function $s0(_0,_1){return c$n(_0,_1,st_22,st_22,1);}function $t0(_0,_1){if((_0)._id==22){return st_22;}else{var _2=_0.P,_3=_0.Q,_4=_0.l0,_5=_0.m0,_6=_0.n0;
7208return c$n(_2,_1(_3),$t0(_4,_1),$t0(_5,_1),_6);}}function $u0(_0,_1){if((_0)._id==22){return st_22;}else{var _2=_0.P,_3=_0.Q,_4=_0.l0,_5=_0.m0,_6=_0.n0;return c$n(_2,_1(_2,_3),$u0(_4,_1),$u0(_5,_1),_6);}}function $v0(_0){if((_0)._id==22){return 0;}else{var _1=_0.l0,_2=_0.m0;return ((((1+$v0(_1))|0)+$v0(_2))|0);}}function $w0(_0){if((_0)._id==22){return 0;}else{var _1=_0.n0;return _1;}}function $x0(_0,_1){return $k($m0(_0,_1));}function $y0(_0){return $p0(_0,$w(),(function(_$0,_1,_2){return c$b(_1,_2);}));}function $z0(_0,_1,_2){return $g($m0(_0,_1),_2);}function $A0(_0,_1,_2,_3){return c$n(_0,_1,_2,_3,(($c0($w0(_2),$w0(_3))+1)|0));}function $B0(_0){return $o($y0(_0));}function $C0(_0){if((_0)._id==22){return st_20;}else{var _1=_0.P,_2=_0.Q,_3=_0.l0,_4=_0.m0;if((_4)._id==22){return c$l(_1,_2,_3);}else{var _5=$C0(_4);if((_5)._id==20){return _5;}else{var _6=_5.g0,_7=_5.X,_8=_5.k0;return c$l(_6,_7,$A0(_1,_2,_3,_8));}}}}function $D0(_0){if((_0)._id==22){return _0;}else{var _1=_0.P,_2=_0.Q,_3=_0.l0,_4=_0.m0;if((_4)._id==22){return _0;}else{var _5=_4.P,_6=_4.Q,_7=_4.l0,_8=_4.m0;return $A0(_5,_6,$A0(_1,_2,_3,_7),_8);}}}function $E0(_0){if((_0)._id==22){return _0;}else{var _1=_0.P,_2=_0.Q,_3=_0.l0,_4=_0.m0;if((_3)._id==22){return _0;}else{var _5=_3.P,_6=_3.Q,_7=_3.l0,_8=_3.m0;return $A0(_5,_6,_7,$A0(_1,_2,_8,_4));}}}function $F0(_0,_1){if((_0)._id==22){return _1;}else{if((_1)._id==22){return _0;}else{var _2=$C0(_0);if((_2)._id==20){return _0;}else{var _3=_2.g0,_4=_2.X,_5=_2.k0;return $A0(_3,_4,_5,_1);}}}}function $G0(_0,_1,_2,_3){var _4=$w0(_2),_5=$w0(_3),_6=((_4-_5)|0),_7=c$n(_0,_1,_2,_3,(($c0(_4,_5)+1)|0));if((_6===-1||_6===0)||_6===1){return _7;}else{if(_6<0){if((_3)._id==22){return _7;}else{var _8=_3.l0,_9=_3.m0;return $D0(($w0(_8)<$w0(_9)?_7:$A0(_0,_1,_2,$E0(_3))));}}else{if((_2)._id==22){return _7;}else{var _a=_2.l0,_b=_2.m0;return $E0(($w0(_a)<$w0(_b)?$A0(_0,_1,$D0(_2),_3):_7));}}}}function $H0(_0,_1){if((_0)._id==23){var _2=_0.P,_3=_0.Q,_4=_0.l0,_5=_0.m0,_6=$2(_1,_2);if(_6<0){return $A0(_2,_3,$H0(_4,_1),_5);}else{if(_6===0){return $F0(_4,_5);}else{return $A0(_2,_3,_4,$H0(_5,_1));}}}else{return _0;}}function $I0(_0,_1,_2){T:while(!0){if((_0)._id==22){return _1;}else{var _3=_0.P,_4=_0.Q,_5=_0.l0,_6=_0.m0,_7=$I0(_5,_1,_2),_8=(_2(_3,_4)?$n0(_7,_3,_4):_7),a_=_6;var b_=_8;_0=a_;_1=b_;continue T}}}function $J0(_0,_1){if(!$q0(_0)){return $p0(_1,_0,(function(_2,_3,_4){return $n0(_4,_2,_3);}));}else{return _1;}}function $K0(_0,_1,_2){return $p0(_1,_0,(function(_3,_4,_5){var _6=$i($m0(_5,_3),(function(_7){return _2(_3,_4,_7);}),_4);return $n0(_5,_3,_6);}));}function $L0(_0,_1){return $I0(_0,$r0(),_1);}var $M0=new CR_(st_9);var $N0=new CR_($e("no category"));var $O0=new CR_($e(""));var $P0=new CR_([]);var $Q0=new CR_(f);var $R0=new CR_($j0);var $S0=new CR_(50);var $T0=new CR_(f);var $U0=new CR_(300);var $V0=c$r(new CR_(0),$40());var $W0=c$r(new CR_($r0()),$40());var $X0=new CR_([]);var $Y0=c$r(new CR_(0),$40());var $Z0=new CR_($N0.__v);var $01=new CR_($Q0.__v);var $11=new CR_($O0.__v);$21=Native.cloneString||function(_0){return _0;};$31=Native.d2s||function(_0){return Std.string(_0);};$41=Native.fromCharCode;$51=Native.getCharAt||function(_0,_1){return $e1(_0,_1,1);};$61=Native.getCharCodeAt;$71=Native.i2s||function(_0){return Std.string(_0);};$81=Native.startsWith||function(_0,_1){var _2=$d1(_1);if(_2>$d1(_0)){return f;}else{return $e1(_0,0,_2)===_1;}};$91=Native.strIndexOf;$a1=Native.strRangeIndexOf||function(_0,_1,_2,_3){var _4=$91($e1(_0,_2,((_3-_2)|0)),_1);if(_4<0){return _4;}else{return ((_2+_4)|0);}};$b1=Native.strReplace||function(_0,_1,_2){if(_1===""){return _0;}else{if($d1(_0)>500){return $p($x1(_0,0,_1,_2,$w(),f));}else{return $j1("",_0,_1,_2,f);}}};$c1=Native.strSplit||function(_0,_1){if(_1===""){return [_0];}else{return $o($y1(_0,_1,0,$w()));}};$d1=Native.strlen;$e1=Native.substring;$f1=Native.toLowerCase;$g1=Native.toStringForJson||function(_0){var _1=(function(_2){if(_2<10){return $41(((48+_2)|0));}else{return $41(((((97+_2)|0)-10)|0));}}),_3=$v1(_0,$x("\""),(function(_4,_5){return c$b((_5<32?(_5===8?"\\b":(_5===9?"\\t":(_5===10?"\\n":(_5===12?"\\f":(_5<=16?("\\u000"+_1(_5)):("\\u001"+_1(((_5-16)|0)))))))):(_5===34?"\\\"":(_5===92?"\\\\":$41(_5)))),_4);}));return $p(c$b("\"",_3));};$h1=Native.trunc||function(_0){return (_0)|0;};function $i1(_0){var _1=$L(_0);if(_1===0){return "";}else{if(_1===1){return _0[0];}else{if(_1<35){return $I(_0,"",(function(_2,_3){return (_2+_3);}));}else{return $p($Q(_0));}}}}function $j1(_0,_1,_2,_3,_4){T:while(!0){var _5=$91((_4?$f1(_1):_1),_2);if(_5>=0){var _6=$d1(_1),_7=$d1(_2),a_=((_0+$e1(_1,0,_5))+_3);var b_=$e1(_1,((_5+_7)|0),((((_6-_5)|0)-_7)|0));_0=a_;_1=b_;continue T}else{return (_0+_1);}}}function $k1(_0){return $d1(_0)===1&&(_0>="0"&&_0<="9");}function $l1(_0){T:while(!0){var _1=$d1(_0);if(_1===0){return _0;}else{var _2=$61(_0,0);if(_2===32||_2===160){_0=$e1(_0,1,((_1-1)|0));continue T}else{return _0;}}}}function $m1(_0){T:while(!0){var _1=$d1(_0);if(_1===0){return _0;}else{var _2=$61(_0,((_1-1)|0));if(_2===32||_2===160){_0=$e1(_0,0,((_1-1)|0));continue T}else{return _0;}}}}function $n1(_0){return $f1(_0)==="true"||_0==="1";}function $o1(_0,_1){return $91(_0,_1)>=0;}function $p1(_0,_1){if(_0.length===0){return "";}else{if($L(_0)===1){return _0[0];}else{return $p($J(_0,$w(),(function(_2,_3,_4){if(_2===0){return c$b(_4,_3);}else{return c$b(_4,c$b(_1,_3));}})));}}}function $q1(_0,_1){var _2=$91(_0,_1);if(_2===-1){return -1;}else{var _3=$d1(_0),_4=$d1(_1);if(_4===0){return 0;}else{var _5=$f0(0,((((_3-_4)|0)+1)|0),(function(_6){return $e1(_0,((((_3-_4)|0)-_6)|0),_4)===_1;}));return ((((_3-_4)|0)-_5)|0);}}}function $r1(_0,_1){return $e1(_0,0,_1);}function $s1(_0,_1,_2){T:while(!0){if(_1<=0){return _2;}else{if(_1===1){return (_2+_0);}else{if(((_1%2)|0)===0){var a_=(_0+_0);var b_=((_1/2)|0);_0=a_;_1=b_;continue T}else{var a_=((_1-1)|0);var b_=(_2+_0);_1=a_;_2=b_;continue T}}}}}function $t1(_0,_1){var _2=$d1(_0);if(_1>=_2){return "";}else{return $e1(_0,_1,((_2-_1)|0));}}function $u1(_0,_1,_2){return $e1(_0,_1,((_2-_1)|0));}function $v1(_0,_1,_2){return $U(0,(($d1(_0)-1)|0),_1,(function(_3,_4){return _2(_3,$61(_0,_4));}));}function $w1(_0,_1,_2){return $U(0,(($d1(_0)-1)|0),_1,(function(_3,_4){return _2(_4,_3,$61(_0,_4));}));}function $x1(_0,_1,_2,_3,_4,_5){T:while(!0){var _6=$d1(_0);if(_1<_6){var _7=$a1((_5?$f1(_0):_0),_2,_1,_6);if(_7>=0){var _8=$e1(_0,_1,((_7-_1)|0)),_9=c$b(_3,c$b(_8,_4)),a_=((_7+$d1(_2))|0);var b_=_9;_1=a_;_4=b_;continue T}else{return c$b($t1(_0,_1),_4);}}else{return _4;}}}function $y1(_0,_1,_2,_3){T:while(!0){var _4=$d1(_0),_5=$a1(_0,_1,_2,_4);if(_5<0){return c$b($e1(_0,_2,_4),_3);}else{var _6=$e1(_0,_2,((_5-_2)|0)),_7=$d1(_1),a_=((_5+_7)|0);var b_=c$b(_6,_3);_2=a_;_3=b_;continue T}}}function $z1(_0,_1){if(_1===""){return _0;}else{var _2=$d1(_0),_3=$f0(0,_2,(function(_4){return $91(_1,(_0[_4]||""))===-1;}));if(_3===0){return _0;}else{return $t1(_0,_3);}}}function $A1(_0,_1,_2){if(_1===""){return [];}else{var _3=new CR_(st_12),_4=$d1(_1),_5=((_2&&$d1(_0)>_4)?(function(){var _6=$61(_1,0);var _7=$w1(_1,st_9,(function(_8,_9,_a){if((($j(_9)&&_a===_6)&&_8>0)&&$81(_1,$e1(_1,_8,((_4-_8)|0)))){return c$a(_8);}else{return _9;}}));return $g(_7,_4);}()):_4);$a0(0,(function(_8){return _8<$d1(_0);}),(function(_8){var _b=$a1(_0,_1,_8,$d1(_0));if(_b<0){return 0x7FFFFFFF;}else{_3.__v=c$b(_b,_3.__v);return ((_b+_5)|0);}}));return $o(_3.__v);}}function $B1(_0){return $v1(_0,0,(function(_1,_2){var _3=(function(_4){return ((HaxeRuntime.mul_32(_1,16)+((_2-_4)|0))|0);});if(48<=_2&&_2<=57){return _3(48);}else{if(65<=_2&&_2<=70){return _3(55);}else{if(97<=_2&&_2<=102){return _3(87);}else{return _1;}}}}));}function $C1(_0,_1){var _2=$d1(_0),_3=$f0(0,_2,(function(_4){var _5=(_0[((_2-((_4+1)|0))|0)]||"");return $91(_1,_5)===-1;}));if(_3===0){return _0;}else{return $r1(_0,((_2-_3)|0));}}function $D1(_0,_1){return $s1(_0,_1,"");}function $E1(_0,_1,_2){var _3=$91(_0,_1);if(_3===-1){return _2;}else{return $t1(_0,((_3+$d1(_1))|0));}}function $F1(_0,_1,_2){var _3=$91(_0,_1);if(_3===-1){return _2;}else{return $r1(_0,_3);}}function $G1(_0){return $m1($l1(_0));}function $H1(_0,_1){return $A1(_0,_1,f);}function $I1(_0,_1,_2,_3){var _4=$E1(_0,_1,_3);if(_4===_3){return _3;}else{return $F1(_4,_2,_3);}}function $J1(_0,_1){return $C1($z1(_0,_1),_1);}function $K1(_0,_1){return $x0(_0.w0,_1);}function $L1(_0,_1){return c$v($n0(_0.w0,_1,t));}function $M1(){return c$v($r0());}$N1=Native.exp;$O1=Native.i2d||function(_0){return _0;};$P1=Native.log;function $Q1(_0){if(_0<0){return -_0;}else{return _0;}}function $R1(_0){if(_0){return 1;}else{return 0;}}var $S1=0.000000000001;var $T1=0.0000000001;var $U1=17976931348623145000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;function $V1(_0){return $I(_0,0,(function(_1,_2){return (_1+_2);}));}function $W1(_0){return ((_0%2)|0)===0;}function $X1(_0){if(48<=_0&&_0<=57){return ((_0-48)|0);}else{return -1;}}function $Y1(_0){if(_0<0){return -(_0)|0;}else{return _0;}}var $Z1=0x7FFFFFFF;function $02(_0){return (_0===(2*_0)&&_0!==0)||_0!==_0;}
7208function $12(_0){if($L(_0)===0){return st_9;}else{return c$a($I(_0,_0[0],$c0));}}function $22(_0,_1,_2){if(_1===0){return 1;}else{var _3=$22(_0,((_1/2)|0),_2);if(((_1%2)|0)===0){return (_3*_3);}else{if(_2){return ((_0*_3)*_3);}else{return ((_3*_3)*_0);}}}}function $32(_0){return $I(_0,0,(function(_1,_2){return ((_1+_2)|0);}));}var $42=-$U1;function $52(_0,_1,_2){var _3=$Q1(_0),_4=$Q1(_1),_5=(_4>_3?($Q1((_1-_0))/_4):(_3!==0?($Q1((_0-_1))/_3):_4));return _5<=_2;}function $62(_0){return $h1((_0>=0?_0:((-_0-$O1($h1(-_0)))>0?(_0-1):_0)));}function $72(_0){return $Q1((_0%1));}function $82(_0){return !$W1(_0);}function $92(_0,_1){if(_0===0){if(_1<=0){return st_9;}else{return c$a(0);}}else{if(_1===0){return c$a(1);}else{if(_1>0){return c$a($22(_0,_1,t));}else{return c$a((1/$22(_0,(-(_1)|0),f)));}}}}function $a2(_0,_1,_2,_3){T:while(!0){if(_1<_2){var _4=$61(_0,_1),_5=$X1(_4);if(_5!==-1){var a_=((_1+1)|0);var b_=((HaxeRuntime.mul_32(10,_3)+_5)|0);_1=a_;_3=b_;continue T}else{return _3;}}else{return _3;}}}function $b2(_0,_1,_2,_3){if(_0===_1||$Q1((_0-_1))<_3){return t;}else{return $52(_0,_1,_2);}}function $c2(_0){return $62((_0+0.5));}function $d2(_0){var _1=$62(_0);if($O1(_1)===_0){return c$a(_1);}else{return st_9;}}function $e2(_0,_1){return $h($d2(_1),(function(_2){return $92(_0,_2);}),(function(){if(_0<0){var _3=(1/_1),_4=$h1(_3);if($O1(_4)===_3&&(($Y1(_4)%2)|0)===1){return c$a(($N1((_1*$P1($Q1(_0))))*(-1)));}else{return st_9;}}else{if(_0===0&&_1>0){return c$a(0);}else{if(_0===0&&_1<=0){return st_9;}else{return c$a($N1((_1*$P1(_0))));}}}}));}function $f2(_0,_1){return $b2(_0,_1,$T1,$S1);}function $g2(_0,_1){return $h($e2(_0,_1),$g0,(function(){return ($N1((_1*$P1($Q1(_0))))*((_0<0&&(($62($Q1(_1))%2)|0)===1)?(-1):1));}));}function $h2(_0,_1,_2,_3){if(_1<_2){var _4=$61(_0,_1),_5=_4===45,_6=_4===43,_7=$a2(_0,((_1+$R1((_5||_6)))|0),_2,0);if(_5){return (_3*$g2(10,$O1((-(_7)|0))));}else{return (_3*$g2(10,$O1(_7)));}}else{return _3;}}function $i2(_0,_1,_2,_3,_4){if(_1<_2){var _5=$61(_0,_1),_6=$X1(_5);if(_6!==-1){var _7=$i2(_0,((_1+1)|0),_2,((_3*10)+$O1(_6)),(_4*10));return c$5(_7.R,_7.S);}else{if(_5===69||_5===101){return c$5($h2(_0,((_1+1)|0),_2,(_3/_4)),1);}else{return c$5(_3,_4);}}}else{return c$5(_3,_4);}}function $j2(_0,_1,_2,_3,_4){T:while(!0){if(_1<_2){var _5=$61(_0,_1),_6=$X1(_5);if(_6!==-1){var a_=((_1+1)|0);var b_=((10*_3)+$O1(_6));_1=a_;_3=b_;continue T}else{if(_5===46){var _7=$i2(_0,((_1+1)|0),_2,_3,10),_8=(10*_7.R);if($02(_8)){return ((_7.R/_7.S)*10);}else{return (_8/_7.S);}}else{if(_5===69||_5===101){return $h2(_0,((_1+1)|0),_2,_3);}else{if($f2(_4,$42)){return _3;}else{return _4;}}}}}else{return _3;}}}function $k2(_0){var _1=$d1(_0);if(_1===0){return 0;}else{var _2=$61(_0,0)===45;if(_2){return -$j2(_0,1,_1,0,$42);}else{return $j2(_0,0,_1,0,$42);}}}function $l2(_0,_1,_2,_3){T:while(!0){var _4=$d1(_0),_5=(_2>_3?$a1(_0,"\"",_2,_4):_3),_6=$a1(_0,"\\",_2,_5);if(_6!==-1&&_6<_5){var _7=$e1(_0,_2,((_6-_2)|0)),_8=$61(_0,((_6+1)|0));if(_8===34){var a_=c$b("\"",c$b(_7,_1));var b_=((_6+2)|0);var c_=_5;_1=a_;_2=b_;_3=c_;continue T}else{if(_8===92){var a_=c$b("\\",c$b(_7,_1));var b_=((_6+2)|0);var c_=_5;_1=a_;_2=b_;_3=c_;continue T}else{if(_8===110){var a_=c$b("\n",c$b(_7,_1));var b_=((_6+2)|0);var c_=_5;_1=a_;_2=b_;_3=c_;continue T}else{if(_8===117){var _9=$e1(_0,((_6+2)|0),4),_a=$B1(_9),a_=c$b($41(_a),c$b(_7,_1));var b_=((_6+6)|0);var c_=_5;_1=a_;_2=b_;_3=c_;continue T}else{if(_8===120){var _9=$e1(_0,((_6+2)|0),2),_a=$B1(_9),a_=c$b($41(_a),c$b(_7,_1));var b_=((_6+4)|0);var c_=_5;_1=a_;_2=b_;_3=c_;continue T}else{var _b=(_8===116?"\t":(_8===114?"\r":$41(_8))),a_=c$b(_b,c$b(_7,_1));var b_=((_6+2)|0);var c_=_5;_1=a_;_2=b_;_3=c_;continue T}}}}}}else{if(_5===-1){return c$5(c$b((_2>=_4?"":$e1(_0,_2,((_4-_2)|0))),_1),_4);}else{return c$5(c$b($e1(_0,_2,((_5-_2)|0)),_1),((_5+1)|0));}}}}function $m2(_0,_1){var _2=$l2(_0,$w(),_1,-1);return c$5($21($p(_2.R)),_2.S);}function $n2(_0,_1){return $m2(_0,_1);}function $o2(_0,_1){if($e1(_0,_1,2)==="\"\""){return c$5("",((_1+2)|0));}else{if($61(_0,_1)===34){return $m2(_0,((_1+1)|0));}else{return $m2(_0,_1);}}}function $p2(_0){var _1=$L(_0);if(_1===0){return [];}else{if(_1===1){return $M(_0[0],(function(_2){return [_2];}));}else{var _3=$p2($P(_0,1,((_1-1)|0)));return $I(_0[0],[],(function(_4,_5){var _6=[_5];return $D(_4,$M(_3,(function(_7){return $D(_6,_7);})));}));}}}function $q2(_0,_1,_2,_3,_4){T:while(!0){if(_1>=$L(_0)){return c$5(_3,_4);}else{var _5=_0[_1],_6=_2(_5),a_=((_1+1)|0);var b_=(_6?c$b(_5,_3):_3);var c_=(_6?_4:c$b(_5,_4));_1=a_;_3=b_;_4=c_;continue T}}}function $r2(_0,_1,_2,_3,_4,_5){T:while(!0){var _6=$L(_0),_7=$L(_1);if(_3>=_6){if(_4>=_7){return $o(_5);}else{var a_=((_4+1)|0);var b_=c$b(_1[_4],_5);_4=a_;_5=b_;continue T}}else{if(_4>=_7||_2(_0[_3],_1[_4])<=0){var a_=((_3+1)|0);var b_=c$b(_0[_3],_5);_3=a_;_5=b_;continue T}else{var a_=((_4+1)|0);var b_=c$b(_1[_4],_5);_4=a_;_5=b_;continue T}}}}function $s2(_0,_1){if($L(_0)<50){return $I(_0,c$5([],[]),(function(_2,_3){var _4=_1(_3);if($W(_2.S,_4)){return _2;}else{return c$5($R(_2.R,_3),$R(_2.S,_4));}})).R;}else{return $o($6($I(_0,c$5($w(),$M1()),(function(_5,_3){var _2=_5.R,_6=_5.S,_4=_1(_3);if($K1(_6,_4)){return _5;}else{return c$5(c$b(_3,_2),$L1(_6,_4));}}))));}}function $t2(_0,_1){var _2=$L(_0);if(_2<=1){return _0;}else{if(_2===2){if(_1(_0[0],_0[1])<=0){return _0;}else{return [_0[1],_0[0]];}}else{var _3=((_2/2)|0),_4=$P(_0,0,_3),_5=$P(_0,_3,((_2-_3)|0));return $r2($t2(_4,_1),$t2(_5,_1),_1,0,0,st_12);}}}function $u2(_0,_1){var _2=$q2(_0,0,_1,$w(),$w());return c$5($o(_2.R),$o(_2.S));}function $v2(_0){return $s2(_0,$g0);}function $w2(_0,_1,_2){var _3=(_2?$4:$5);return $t2(_0,_3(_1));}var $x2=c$70([],$r0(),$1,$1,$1,0,"");var $y2=c$x((-1),(-1));function $z2(_0){switch((_0)._id){case 41:{var _1=_0.I0;return $10(_1,c$G([],"")).K0;}break;case 54:{return "";}break;case 55:{return "";}break;}}function $A2(_0,_1){var _2=(function(_3){var _4=$O1($10(_0.I0,c$10(-1)).N),_5=$O1($10(_0.I0,c$00(-1)).O);return c$3(((_4>
72080&&_4<_3.N)?_4:_3.N),((_5>0&&_5<_3.O)?_5:_3.O));});return c$5(_2(_1),_2(_1));}function $B2(_0){return _0.N>_0.O;}var $C2=c$90("",$1,$y2,$1,f);function $D2(_0,_1,_2){switch((_0)._id){case 47:{var _3=_0.N;return _3>0&&_1.N>=$O1(_3);}break;case 48:{var _3=_0.N,_4=_0.O;return ((_3>0&&_4>0)&&_2.N>=$O1(_3))&&_2.O>=$O1(_4);}break;case 46:{var _3=_0.N;return (_3>0&&_1.N>=$O1(_3))&&$B2(_1);}break;}}var $E2=c$a0($C2,$r0(),[]);function $F2(_0,_1,_2){return $I(_0.I0,_0.H0,(function(_3,_4){switch((_4)._id){case 76:{var _5=_4.t1,_6=_4.H0;if($D2(_5,_1,_2)){return _6;}else{return _3;}}break;case 80:{var _7=_4.N,_8=_4.O,_9=_4.u1,_a=_4.v1,_b=$c0((($c2((_2.N*(_7/100)))-_9)|0),0),_c=$c0((($c2((_2.O*(_8/100)))-_a)|0),0);return $R(_3,c$2(_b,_b,_c,_c));}break;default:{return _3;}break;}}));}function $G2(_0,_1,_2){return $J(_0.I0,c$7(_0.W0,0,$10(_0.I0,c$X("")).b1),(function(_3,_4,_5){if((_5)._id==77){var _6=_5.t1,_7=_5.W0,_8=_5.I0;if($D2(_6,_1,_2)){return c$7(_7,((_3+1)|0),$10(_8,c$X("")).b1);}else{return _4;}}else{return _4;}}));}function $H2(_0,_1){return $u0(_0,(function(_2,_3){return $M(_3,(function(_4){return _1(_2,_4);}));}));}function $I2(_0){var _1=$c2($V1(_0)),_2=$M(_0,$h1),_3=((_1-$32(_2))|0),_4=$M(_0,$72),_5=$w2($F(0,(($L(_4)-1)|0)),(function(_6){return _4[_6];}),f);return $I(_5,c$5(_2,_3),(function(_7,_8){if(_7.S>0){return c$5($O(_7.R,_8,((_2[_8]+1)|0)),((_7.S-1)|0));}else{return _7;}})).R;}function $J2(_0,_1){if(($L(_1)===0||$L(_0)<=_1[0])||_1[0]<0){return [_0];}else{return $D([$P(_0,0,_1[0])],$J2($P(_0,_1[0],(($L(_0)-_1[0])|0)),$V(_1)));}}function $K2(_0,_1,_2){return $J(_0,c$7(0,0,[]),(function(_3,_4,_5){var _6=_2(_5),_7=((_4.R+_6)|0);if(_7>_1){return c$7(_6,1,(_4.S>0?$D(_4.T,[_4.S]):_4.T));}else{return c$7(_7,((_4.S+1)|0),_4.T);}})).T;}function $L2(_0){return $M($I2(_0),$O1);}function $M2(_0,_1){return $J2($F(0,(($L(_0)-1)|0)),_1);}function $N2(_0,_1){return c$x((_0.x0+_1.x0),(_0.y0+_1.y0));}function $O2(_0,_1,_2,_3){return $J(_0,c$5(_1,_2),(function(_4,_5,_6){return _3(_4,_5.R,_5.S,_6);}));}var $P2=new CR_($r0());$Q2=Native.parseJson||function(_0){return $63(_0);};function $R2(_0,_1,_2,_3){var _4=(_2?$f1(_1):_1);return $Y(_0,(function(_5){var _6=(_2?$f1(_5.R):_5.R);return _6===_4;}),c$5(_4,_3)).S;}function $S2(_0,_1){if((_0)._id==83){var _2=_0.Q;return _2;}else{return _1;}}function $T2(_0,_1){if((_0)._id==89){var _2=_0.x1;return _2;}else{return _1;}}function $U2(_0){switch((_0)._id){case 91:{var _1=_0.A1;return c$a(_1);}break;case 85:{var _2=_0.Q;return c$a($31(_2));}break;case 84:{var _3=_0.X;return c$a($e0(_3));}break;default:{return st_9;}break;}}function $V2(_0){switch((_0)._id){case 88:{return "null";}break;case 84:{var _1=_0.X;return $e0(_1);}break;case 85:{var _2=_0.Q;return $31(_2);}break;case 91:{var _3=_0.A1;return $g1(_3);}break;case 83:{var _4=_0.Q;return (("["+$p1($M(_4,$V2),","))+"]");}break;case 89:{var _5=_0.x1;return (("{"+$p1($M(_5,(function(_6){return (($g1(_6.R)+":")+$V2(_6.S));})),","))+"}");}break;}}function $W2(_0,_1,_2){var _3=$f0(_2,_1,(function(_4){var _5=$61(_0,_4);return !((((((48<=_5&&_5<=57)||_5===46)||_5===45)||_5===101)||_5===69)||_5===43);}));return c$5(c$n0($k2($e1(_0,_2,((_3-_2)|0)))),_3);}function $X2(_0,_1,_2,_3){T:while(!0){if(_2>=_1){return c$5(-1,_2);}else{var _4=$61(_0,_2);if($41(_4)===_3){var _5=$X2(_0,_1,((_2+1)|0)," ");return c$5(_2,_5.S);}else{if(((_4===32||_4===9)||_4===10)||_4===13){_2=((_2+1)|0);continue T}else{return c$5(-1,_2);}}}}}function $Y2(_0,_1,_2){var _3=$T2(_0,[c$5(_1,_2)]);return $R2(_3,_1,f,_2);}function $Z2(_0,_1){var _2=$T2(_0,[]);return $m($H(_2,(function(_3){return _3.R===_1;})),$7);}function $03(_0,_1){return $g($U2(_0),_1);}function $13(_0,_1){var _2=$Z2(_0,_1);if((_2)._id==9){return [];}else{var _3=_2.Q;return $S2(_3,[]);}}function $23(_0,_1,_2){return $03($Y2(_0,_1,c$t0(_2)),_2);}function $33(_0,_1,_2){T:while(!0){var _3=$61(_0,_2);if(((_3===32||_3===9)||_3===10)||_3===13){_2=((_2+1)|0);continue T}else{if(_3===91){return $43(_0,_1,((_2+1)|0),$w());}else{if(_3===123){return $53(_0,_1,((_2+1)|0),$w());}else{if(_3===34){var _4=$n2(_0,((_2+1)|0));return c$u0(c$t0(_4.R),((_2+1)|0),_4.S,_4.S);}else{if(_3===110&&$e1(_0,_2,4)==="null"){return c$u0(st_88,_2,((_2+4)|0),((_2+4)|0));}else{if(_3===116&&$e1(_0,_2,4)==="true"){return c$u0(c$m0(t),_2,((_2+4)|0),((_2+4)|0));}else{if(_3===102&&$e1(_0,_2,5)==="false"){return c$u0(c$m0(f),_2,((_2+5)|0),((_2+5)|0));}else{var _4=$W2(_0,_1,_2);
7208return c$u0(_4.R,_2,_4.S,_4.S);}}}}}}}}}function $43(_0,_1,_2,_3){T:while(!0){var _4=$X2(_0,_1,_2," ").S,_5=(function(){var s$;if(_3._id==12){s$=c$5(_4,_4)}else{s$=(function(){var _$0=_3.tail;return $X2(_0,_1,_2,",");}())}return s$;}());if($61(_0,_4)===93||$61(_0,_5.S)===93){return c$u0(c$l0($o(_3)),_2,((_4+1)|0),((_4+1)|0));}else{if(_5.S>=_1||_5.R<0){return c$u0(c$l0($o(_3)),_2,_2,_4);}else{var _6=$33(_0,_1,_5.S);if(_6.C1===_6.D1){return c$u0(c$l0($o(_3)),_2,_2,_6.D1);}else{var a_=_6.D1;var b_=c$b(_6.B1,_3);_2=a_;_3=b_;continue T}}}}}function $53(_0,_1,_2,_3){T:while(!0){var _4=$X2(_0,_1,_2," ").S,_5=(function(){var s$;if(_3._id==12){s$=c$5(_4,_4)}else{s$=(function(){var _$0=_3.tail;return $X2(_0,_1,_2,",");}())}return s$;}()),_6=$61(_0,_5.S);if($61(_0,_4)===125){return c$u0(c$r0($o(_3)),_2,((_4+1)|0),((_4+1)|0));}else{if(_5.S>=_1||_5.R<0){return c$u0(c$r0($o(_3)),_2,_2,_4);}else{var _7=(_6===34?(function(){var _8=$n2(_0,((_5.S+1)|0));if(_8.S===((_5.S+1)|0)){return c$5("",((_5.S+1)|0));}else{return _8;}}()):c$5("",((_5.S+1)|0))),_9=$X2(_0,_1,_7.S,":"),_a=$33(_0,_1,_9.S),_b=c$b(c$5(_7.R,_a.B1),_3);if((_7.S===((_5.S+1)|0)||_9.R<0)||_a.C1===_a.D1){return c$u0(c$r0($o(_b)),_2,_2,_a.D1);}else{var a_=_a.D1;var b_=_b;_2=a_;_3=b_;continue T}}}}}function $63(_0){var _1=$33(_0,$d1(_0),0);if(_1.C1===_1.D1){return c$n0(0);}else{return _1.B1;}}function $73(_0,_1){return c$3((_0.N+_1.N),(_0.O+_1.O));}function $83(_0,_1,_2){var _3=$O1(_0.J),_4=$O1(_0.K),_5=$O1(_0.L),_6=$O1(_0.M),_7=(_4<=_3?1:$c0((($i0(_1.N,_4)-_3)/(_4-_3)),0)),_8=(_6<=_5?1:$c0((($i0(_1.O,_6)-_5)/(_6-_5)),0)),_9=$i0(_7,_8),_a=(_2?_9:_7),_b=(_2?_9:_8);return c$2(_0.J,((_0.J+$c2(((_4-_3)*_a)))|0),_0.L,((_0.L+$c2(((_6-_5)*_b)))|0));}function $93(_0,_1){return c$3($c0(_0.N,_1.N),$c0(_0.O,_1.O));}function $a3(_0,_1){if((_1)._id==0){return _0.N;}else{return _0.O;}}function $b3(_0){return HaxeRuntime.mul_32(_0.K,_0.M);}function $c3(_0,_1){if((_1)._id==0){return _0.K;}else{return _0.M;}}function $d3(_0){return HaxeRuntime.mul_32(_0.J,_0.L);}function $e3(_0,_1){if((_1)._id==0){return _0.J;}else{return _0.L;}}function $f3(_0){return $I(_0,c$2($Z1,0,$Z1,0),(function(_1,_2){return c$2($i0(_1.J,_2.J),$c0(_1.K,_2.K),$i0(_1.L,_2.L),$c0(_1.M,_2.M));}));}function $g3(_0){if(_0.length===0){return st_9;}else{var _1=$I(_0,c$2(0,$Z1,0,$Z1),(function(_2,_3){return c$2($c0(_2.J,_3.J),$i0(_2.K,_3.K),$c0(_2.L,_3.L),$i0(_2.M,_3.M));}));if(_1.K>=_1.J&&_1.M>=_1.L){return c$a(_1);}else{return st_9;}}}function $h3(_0,_1){if((_1)._id==0){return c$2(_0,_0,0,0);}else{return c$2(0,0,_0,_0);}}function $i3(_0,_1,_2){if((_2)._id==0){return c$3(_0,_1);}else{return c$3(_1,_0);}}function $j3(_0){return $I(_0,c$3(0,0),(function(_1,_2){return c$3($c0(_1.N,_2.N),$c0(_1.O,_2.O));}));}function $k3(_0,_1){return c$3($c0((_0.N-_1.N),0),$c0((_0.O-_1.O),0));}
7208function $l3(_0){if((_0)._id==0){return st_1;}else{return st_0;}}function $m3(_0){return c$3($O1(_0.J),$O1(_0.L));}function $n3(_0,_1,_2){return c$3((_0.N*_1),(_0.O*_2));}function $o3(_0,_1,_2){if((_2)._id==0){return c$3(_1,_0.O);}else{return c$3(_0.N,_1);}}function $p3(_0){return c$3($O1(_0.K),$O1(_0.M));}function $q3(_0,_1){if((_1)._id==0){return $I(_0,c$3(0,0),(function(_2,_3){return c$3((_2.N+_3.N),$c0(_2.O,_3.O));}));}else{return $I(_0,c$3(0,0),(function(_2,_3){return c$3($c0(_2.N,_3.N),(_2.O+_3.O));}));}}function $r3(_0,_1){if((_1)._id==0){return $I(_0,c$2(0,0,0,0),(function(_2,_3){return c$2(((_2.J+_3.J)|0),((_2.K+_3.K)|0),$c0(_2.L,_3.L),$c0(_2.M,_3.M));}));}else{return $I(_0,c$2(0,0,0,0),(function(_2,_3){return c$2($c0(_2.J,_3.J),$c0(_2.K,_3.K),((_2.L+_3.L)|0),((_2.M+_3.M)|0));}));}}function $s3(_0){return $I(_0,c$2(0,0,0,0),(function(_1,_2){return c$2($c0(_1.J,_2.J),$c0(_1.K,_2.K),$c0(_1.L,_2.L),$c0(_1.M,_2.M));}));}function $t3(_0,_1){return $K2(_0,$h1(_1),(function(_2){return _2.J;}));}function $u3(_0,_1){var _2=$4($b3)(_0,_1);if(_2!==0){return _2;}else{var _3=$4($d3)(_0,_1);if(_3!==0){return _3;}else{var _4=$4((function(_5){return _5.K;}))(_0,_1);if(_4!==0){return _4;}else{return $4((function(_5){return _5.J;}))(_0,_1);}}}}function $v3(_0,_1){return $O1($c3(_0,_1));}
7208function $w3(_0,_1){return $O1($e3(_0,_1));}function $x3(_0,_1){if($b3(_0)<=$b3(_1)){return _0;}else{return _1;}}function $y3(_0){return $r3(_0,st_0);}function $z3(_0){return $r3(_0,st_1);}function $A3(_0,_1,_2,_3){var _4=$M(_0,(function(_5){return $i0($O1((($c3(_5,_3)-$e3(_5,_3))|0)),_1);})),_6=$V1(_4);return $N(_0,(function(_7,_8){return ($w3(_8,_3)+((_2>0&&_6>0)?(_2*(_4[_7]/_6)):0));}));}function $B3(_0){return $z3($M(_0,$y3));}var $C3=["nl0","nl1","nl2","nl3"];function $D3(_0){return $D1("\t",_0);}function $E3(_0){var _1=$z1(_0," \t"),_2=$r1(_0,(($d1(_0)-$d1(_1))|0));return $d1($b1(_2," ",""));}function $F3(_0){return $z1(_0," \t")==="";}function $G3(_0,_1){var _2=$D1("\n",_1),_3=$c1(_0,(("%nl"+$71(_1))+"%")),_4=$L(_3),_5=$N(_3,(function(_6,_7){var _8=(_6===0?_7:$z1(_7,"\n"));if(_6===((_4-1)|0)){return _8;}else{return $C1(_8,"\n\t ");}}));return $p1(_5,_2);}function $H3(_0,_1){T:while(!0){if($F3(_0)){return "";}else{if(_1<0&&$81(_0,"\t")){var a_=$e1(_0,1,(($d1(_0)-1)|0));var b_=((_1+1)|0);_0=a_;_1=b_;continue T}else{return ($D3(_1)+_0);}}}}function $I3(_0,_1){var _2=$r1(_0,_1),_3=$q1(_2,"\n"),_4=(_3===-1?_2:$e1(_2,((_3+1)|0),((((_1-_3)|0)-1)|0)));return $E3(_4);}function $J3(_0){return $I([0,1,2,3],_0,(function(_1,_2){return $G3(_1,_2);}));}function $K3(_0,_1){T:while(!0){if($F3(_0)){return "";}else{if(_1<=0){return _0;}else{var _2=(_0[0]||"");if(_2===" "){_0=$t1(_0,1);continue T}else{if(_2==="\t"){var a_=$t1(_0,1);var b_=((_1-1)|0);_0=a_;_1=b_;continue T}else{return _0;}}}}}}function $L3(_0,_1,_2){return $8($O2(_0,$w(),$w(),(function(_3,_4,_5,_6){var _7=$G1($I1(_6,"% if "," %",""));if(_7!==""){return c$5(c$b(c$v0(_7,_6,_3),c$b(c$x0(_5),_4)),$w());}else{if($o1(_6,"% else %")){return c$5(c$b(c$w0(_6,_3),c$b(c$x0(_5),_4)),$w());}else{if($o1(_6,"% endif %")){return $9($v(c$b(c$x0(_5),_4),c$6(f,f,$w(),c$7($w(),"",$w())),(function(_8,_9,_a){return $9(_9,(function(_b,_c,_d,_e){if(_b){return _9;}else{switch((_a)._id){case 93:{var _f=_a.F1,_g=_a.G1,_h=_a.H1,_i=$81(_f,"!"),_j=$z1(_f,"!"),_k=$m0(_1,_j),_l=$m(_k,(function(_m){var _n=$n1(_m);if(_i){return !_n;}else{return _n;}}));return $a(_e,(function(_o,_p,_q){var _r=$h(_l,(function(_n){var _s=(_n?_o:_q),_t=$u(_s,_g,(function(_u,_v){if(_v!==""){return _v;}else{return _u;}})),_w=(($E3(_g)-$E3(_t))|0);if(_w===0){return _s;}else{if(_w<0){return $C(_s,(function(_v){return $K3(_v,(-(_w)|0));}));}else{return $C(_s,(function(_v){return $H3(_v,_w);}));}}}),(function(){(_2?$k0(((("Blueprint error: condition `"+_f)+"` can't be resolved, line: ")+$71(((_h+1)|0)))):null);var _x=(_p===""?_o:c$b(_p,_o));return $B($B(c$b(_6,_q),_x),$x(_g));}));return c$6(t,t,c$b(c$x0(_r),$q(_8)),_e);}));}break;case 94:{var _y=_a.G1,_z=_a.H1;return $a(_e,(function(_o,_p,_q){if(_p===""){return c$6(f,t,_d,c$7($w(),_y,_o));}else{$k0(((("Blueprint error: double ELSE statement, lines: "+$71(((_z+1)|0)))+", ")+$71(((_3+1)|0))));var _A=$B($B(c$b(_6,_q),c$b(_p,_o)),$x(_y));return c$6(t,t,c$b(c$x0(_A),$q(_8)),_e);}}));}break;case 95:{var _r=_a.c1,_B=$a(_e,(function(_o,_p,_q){return c$7($B(_o,_r),_p,_q);}));return c$6(f,_c,_d,_B);}break;}}}));})),(function(_C,_$0,_d,_$1){((!_C)?$k0(("Blueprint error: ENDIF statement without IF, line: "+$71(((_3+1)|0)))):null);return c$5(_d,$w());}));}else{return c$5(_4,c$b(_6,_5));}}}})),(function(_D,_E){return $o($I($o(c$b(c$x0(_E),_D)),$w(),(function(_9,_a){switch((_a)._id){case 93:{var _6=_a.G1,_3=_a.H1;$k0(((("Blueprint error: IF statement is not closed, line: "+$71(((_3+1)|0)))+", text: ")+_6));return c$b(_6,_9);}break;case 94:{var _6=_a.G1,_3=_a.H1;$k0(((("Blueprint error: ELSE statement is not closed, line: "+$71(((_3+1)|0)))+", text: ")+_6));return c$b(_6,_9);}break;case 95:{var _r=_a.c1;return $B(_r,_9);}break;}})));}));}function $M3(_0,_1){var _2=$p0(_1,[],(function(_3,_4,_5){var _6=$H1(_0,(("%"+_3)+"%")),_7=$c1(_4,"\n");return $I(_6,_5,(function(_8,_9){var _a=($L(_7)>1?(function(){var _b=$I3(_0,_9);var _c=$D3(_b);return $p1($N(_7,(function(_d,_e){if(_d===0){return _e;}else{return (_c+_e);}})),"\n");}()):_4);return $R(_8,c$y0(_9,((((_9+$d1(_3))|0)+2)|0),_a));}));})),_f=$t2(_2,(function(_g,_h){return $3(_g.C1,_h.C1);})),_i=$I(_f,_0,(function(_5,_h){var _j=$r1(_5,_h.C1),_k=$t1(_5,_h.I1);return ((_j+_h.Q)+_k);}));
7208return $p1($M($c1(_i,"\n"),(function(_l){if($F3(_l)){return "";}else{return _l;}})),"\n");}function $N3(_0){if(_0.length===0){return [];}else{var _1=$Y(_0,(function(_2){return _2!=="";}),""),_3=$E3(_1);return $M(_0,(function(_2){return $K3(_2,_3);}));}}function $O3(_0){if(_0===""){return [];}else{var _1=$c1(_0,"\n");if(_1.length===0){return [];}else{var _2=($J1(_1[0],"\t ")===""?$V(_1):_1);return $N3(_2);}}}function $P3(_0,_1,_2,_3){var _4=(function(_5,_6){var _7=$O3(_5),_8=$L3(_7,_6,_2),_9=$p1(_8,"\n");return $M3(_9,_6);}),_6=$J(_1,$r0(),(function(_a,_b,_c){if($82(_a)){var _d=_1[((_a-1)|0)];($W($C3,_c)?$k0((("Blueprint error: parameter name '"+_d)+"' is reserved")):null);var _e=($o1(_c,"%")?_4(_c,_b):_c);return $n0(_b,_d,_e);}else{return _b;}})),_f=_4(_0,_6);if(_3){return $J3(_f);}else{return _f;}}function $Q3(_0,_1){return $P3(_0,_1,t,t);}function $R3(_0,_1,_2){var _3=$I(_1,t,(function(_4,_5){return _4&&$Y2(_2,_5,st_88)._id!==88;}));if(_3){return $Q3(_0,$I(_1,[],(function(_4,_5){return $D(_4,[_5,$23(_2,_5,"")]);})));}else{return "";}}function $S3(_0,_1,_2,_3,_4){var _5=((_0>0||_2>0)?c$O($S((_0>0?[c$T(_0)]:[]),[_4],(_2>0?[c$T(_2)]:[])),[]):_4);if(_1>0||_3>0){return c$Z($S((_1>0?[c$T(_1)]:[]),[_5],(_3>0?[c$T(_3)]:[])),[]);}else{return _5;}}function $T3(_0,_1,_2){var _3=$d1(_0),_4=$f0(_1,_3,(function(_5){var _6=(_0[_5]||"");return !(("0"<=_6&&_6<="9")||_6===".");}));if(_4>_1){var _7=$u1(_0,_1,_4),_8=$k2(_7),_9=(_2?-_8:_8),_a=(_0[_4]||"");if(_a==="e"||_a==="E"){var _b=((_4+1)|0),_c=(_0[_b]||""),_d=_c==="-",_e=_c==="+",_f=((_d||_e)?((_b+1)|0):_b),_g=$f0(_f,_3,(function(_5){var _6=(_0[_5]||"");return !("0"<=_6&&_6<="9");}));if(_g>_f){var _h=((_d?(-1):1)*$k2($u1(_0,_f,_g))),_i=(_9*$N1(($P1(10)*_h))),_j=($e1(_0,_g,2)===".0"?((_g+2)|0):_g);return c$7($e(_i),_j,"");}else{return c$7($e(st_8),_b,"Invalid scientific format");}}else{var _i=($91(_7,".")===-1?(function(){var _5=$62(_9);if($O1(_5)===_9){return $e(_5);}else{return $e(_9);}}()):$e(_9));return c$7(_i,_4,"");}}else{return c$7($e(st_8),_4,"Not a number");}}function $U3(_0,_1){T:while(!0){if($d1(_0)>=_1){var _2=(_0[_1]||"");if((_2===" "||_2==="\n")||_2==="\t"){_1=((_1+1)|0);continue T}else{return _1;}}else{return _1;}}}function $V3(_0,_1){return $W3(_0,$r0(),_1);}function $W3(_0,_1,_2){if(_0===""){return _2;}else{var _3=$Z3(_0,0,[c$C0(_1)]);if(_3.T!==""){$k0((((((_3.T+" at character ")+$71(_3.S))+", got: \"")+$e1(_0,_3.S,80))+"\""));return _2;}else{return _3.R;}}}function $X3(_0,_1,_2){var _3=$Y3(_0,"]",_2,c$7($w(),((_1+1)|0),""));return c$7($o(_3.R),_3.S,_3.T);}function $Y3(_0,_1,_2,_3){T:while(!0){var _4=_3.S;if((_0[_4]||"")===_1){return c$7(_3.R,((_4+1)|0),"");}else{var _5=$Z3(_0,_4,_2);if(_5.T!==""){return c$7(_3.R,_5.S,_5.T);}else{var _6=$U3(_0,_5.S),_7=(_0[_6]||"");if(_7===_1){return c$7(c$b(_5.R,_3.R),((_6+1)|0),_5.T);}else{if(_7===","){_3=c$7(c$b(_5.R,_3.R),((_6+1)|0),_5.T);continue T}else{var _8=$e1(_0,_4,((((_6-_4)|0)+1)|0)),_9=$d1(_0),_a=("Expected , or "+_1);
7208$l($10(_2,c$B0(st_9)).K1,(function(_b){return _b(_0,_6,_a);}));return c$7(_3.R,_6,_a);}}}}}}function $Z3(_0,_1,_2){T:while(!0){var _3=$d1(_0);if(_1>=_3){return c$7($e(st_9),_1,"");}else{var _4=(_0[_1]||"");if((_4===" "||_4==="\n")||_4==="\t"){_1=((_1+1)|0);continue T}else{if($k1(_4)){return $T3(_0,_1,f);}else{if(_4==="\""){var _5=$o2(_0,_1);return c$7($e(_5.R),_5.S,"");}else{if(_4==="f"&&$e1(_0,_1,5)==="false"){return c$7($e(f),((_1+5)|0),"");}else{if(_4==="t"&&$e1(_0,_1,4)==="true"){return c$7($e(t),((_1+4)|0),"");}else{if(_4==="-"){return $T3(_0,((_1+1)|0),t);}else{if(_4==="["){return $X3(_0,_1,_2);}else{if(_4==="{"&&$e1(_0,_1,2)==="{}"){return c$7($e(st_9),((_1+2)|0),"");}else{if($e1(_0,_1,4)==="ref "){var _6=$Z3(_0,((_1+4)|0),_2);return c$7($e(new CR_(_6.R)),_6.S,_6.T);}else{var _6=$04(_0,_1,_2);if((_6.T===""&&(_6.R)._id===8)&&$10(_2,c$F0(f)).O1){return c$7(_6.R,_6.S,"Illegal struct deserialized.");}else{return _6;}}}}}}}}}}}}}function $04(_0,_1,_2){var _3=$a1(_0,"(",_1,$d1(_0));if(_3===-1){var _4="Expected (";$l($10(_2,c$B0(st_9)).K1,(function(_5){return _5(_0,_1,_4);}));return c$7($e(st_8),_1,_4);}else{var _6=$10(_2,c$F0(f)).O1,_7=$C1($u1(_0,_1,_3)," \n\t"),_8=$Y3(_0,")",_2,c$7($w(),((_3+1)|0),""));if(_8.T!==""){return c$7($e(st_8),_8.S,_8.T);}else{if(_6&&$z(_8.R,st_8)){return c$7($e(st_8),_8.S,"Struct member is IllegalStruct");}else{var _9=$I(_2,st_9,(function(_a,_b){switch((_b)._id){case 100:{var _c=_b.L1,_d=$m0(_c,_7);if((_d)._id==10){var _e=_d.Q;return c$a((function(_f){var _g=_e(_f),_h=((_6&&_g._id===8)?(("Fixup for \""+_7)+"\" error."):"");return c$7(_g,_8.S,_h);}));}else{return st_9;}}break;case 101:{var _c=_b.L1,_i=$m0(_c,_7);if((_i)._id==10){var _e=_i.Q;return c$a((function(_f){var _g=_e(_2,_f),_h=((_6&&_g._id===8)?(("Fixup for \""+_7)+"\" error."):"");return c$7(_g,_8.S,_h);}));}else{return st_9;}}break;default:{return _a;}break;}}));if((_9)._id==10){var _e=_9.Q;return _e($o(_8.R));}else{var _j=$c(_7,$o(_8.R),st_8);if(_j._id===8){$k0(((("Error: Could not make struct "+_7)+" when deserializing: ")+$e1(_0,_1,100)));if(_6){return c$7(_j,_8.S,("Could not make struct "+_7));}else{return c$7(_j,_8.S,"");}}else{return c$7(_j,_8.S,"");}}}}}}function $14(_0,_1,_2,_3){if(_2>0){var _4=($a3(_1,_3)-$v3(_0,_3));if(_4>0){return (_4/_2);}else{return 0;}}else{return 0;}}function $24(_0,_1){if($L(_1)===0){return [_0];}else{return $M(_1,(function(_2){return c$H0($D(_0.H0,_2.H0));}));}}function $34(_0,_1,_2,_3){T:while(!0){switch((_0)._id){case 61:{var _4=_0.c1;return $I(_4,0,(function(_5,_6){return (_5+$34(_6,_1,_2,st_1));}));}break;case 50:{var _7=_0.X0;return $I(_7,0,(function(_5,_8){return (_5+$34(_8,_1,_2,st_0));}));}break;case 58:{var _9=_0.a1;return $I(_9,0,(function(_5,_a){return (_5+$34(_a,_1,_2,_3));}));}break;case 57:{var _b=_0.Z0;_0=_b;continue T}break;case 45:{return 0;}break;case 54:{if($b(_2,_3)){return 1;}else{return 0;}}break;case 55:{return 0;}break;case 70:{var _c=_0.b1,_d=_0.n1,_e=$z0(_1,_c,c$I([]));if(_e.T0.length===0){return 0;}else{switch((_d)._id){case 60:{if((_2)._id==0){return 0;}else{return $I(_e.T0,0,(function(_5,_f){return (_5+(function(){var s$;if(_f._id==54){s$=1}else{s$=0}return s$;}()));}));}}break;case 49:{if((_2)._id==0){return $I(_e.T0,0,(function(_5,_f){return (_5+(function(){var s$;if(_f._id==54){s$=1}else{s$=0}return s$;}()));}));}else{return 0;}}break;case 81:{if((_2)._id==0){return $I(_e.T0,0,(function(_5,_f){return (_5+(function(){var s$;if(_f._id==54){s$=1}else{s$=0}return s$;}()));}));}else{return 0;}}break;case 75:{return 0;}break;}}}break;}}}var $44=c$K0($0,[],[],[],f);function $54(_0){switch((_0)._id){case 41:{var _1=_0.I0;return $G1($10(_1,c$b0("")).s1);}break;case 54:{return "";}break;case 55:{return "";}break;}}function $64(_0,_1,_2){var _3=$c0(_1.N,$O1(_0.R1.K)),_4=$c0(_1.O,$O1(_0.R1.M));return c$x((_3<_2.N?((_2.N-_3)/2):0),(_4<_2.O?((_2.O-_4)/2):0));}function $74(_0,_1){switch((_0)._id){case 41:{var _2=_0.H0,_3=_0.I0;if(_2.length===0){return c$F([$0],[]);}else{return c$F(_2,_3);}}break;case 54:{return c$F([$0],[]);}break;case 55:{var _4=_0.M0;switch((_1)._id){case 60:{return c$F([$h3(_4,st_1)],[]);}break;case 49:{return c$F([$h3(_4,st_0)],[]);}break;case 81:{return c$F([$h3(_4,st_0)],[]);}break;case 75:{return c$F([$h3(_4,st_1)],[]);}break;}}break;}}function $84(_0){return $M(_0,(function(_1){switch((_1)._id){case 41:{var _2=_1.I0;return _2;}break;case 54:{return [];}break;case 55:{return [];}break;}}));}function $94(_0,_1){return c$3(($W(_1,st_79)?$O1($Z1):_0.N),($W(_1,st_78)?$O1($Z1):_0.O));}function $a4(_0){switch((_0)._id){case 61:{var _1=_0.I0;return _1;}break;case 50:{var _1=_0.I0;return _1;}break;case 58:{var _1=_0.I0;return _1;}break;case 57:{var _1=_0.I0;return _1;}break;case 45:{return [];}break;case 54:{return [];}break;case 55:{return [];}break;case 70:{return [];}break;}}function $b4(_0,_1,_2){if(_2==="v2"){return ((("sblock_"+$b1(_0," ","$"))+"_")+$71(_1));}else{return ((_0+"_block_")+$71(_1));}}
7208function $c4(_0,_1){return $I(_1,_0,(function(_2,_3){switch((_3)._id){case 56:{return $30(_2,st_56);}break;case 82:{var _4=_3.P0;return $30(_2,c$k0(_4));}break;case 64:{return _2;}break;case 65:{return _2;}break;case 74:{return _2;}break;case 66:{return _2;}break;case 78:{return _2;}break;case 79:{return _2;}break;}}));}function $d4(_0,_1,_2){if(_2==="v2"){return (("spanel_"+(_1?"sscroll_":""))+$b1(_0," ","$"));}else{return ((_0+"_panel")+(_1?"_scroll":""));}}function $e4(_0,_1,_2){if(_2==="v2"){return (("sstruct_"+(_1?"sscroll_":""))+$p1($M(_0,$71),"_"));}else{return (("sstruct_"+$p1($M(_0,$71),"_"))+(_1?"_panel_scroll":""));}}function $f4(_0,_1){T:while(!0){switch((_0)._id){case 61:{var _2=_0.c1,_3=_0.I0;return c$Z($M(_2,(function(_4){return $f4(_4,($W(_3,st_74)?c$a(st_1):_1));})),(($W(_3,st_74)&&CME(_1,c$a(st_1)))?$G(_3,(function(_4){return !$b(_4,st_74);})):_3));}break;case 50:{var _2=_0.X0,_3=_0.I0;return c$O($M(_2,(function(_4){return $f4(_4,($W(_3,st_74)?c$a(st_0):_1));})),(($W(_3,st_74)&&CME(_1,c$a(st_0)))?$G(_3,(function(_4){return !$b(_4,st_74);})):_3));}break;case 58:{var _2=_0.a1,_3=_0.I0;return c$W($M(_2,(function(_4){return $f4(_4,_1);})),$G(_3,(function(_4){return !$b(_4,st_74);})));}break;case 57:{var _5=_0.Z0;_0=_5;continue T}break;case 45:{var _6=_0.l0,_7=_0.U0,_8=_0.m0,_9=_0.V0,_a=_0.W0;return $S3(_6,_7,_8,_9,$f4(_a,_1));}break;case 54:{return _0;}break;case 55:{return _0;}break;case 70:{var _b=_0.b1,_c=_0.l1,_d=_0.m1,_e=_0.n1,_f=_0.d1;if($b(_f,st_74)){if(($b(_e,st_60)&&CME(_1,c$a(st_1)))||($b(_e,st_49)&&CME(_1,c$a(st_0)))){return c$80(_b,_c,_d,_e,st_38);}else{return _0;}}else{return _0;}}break;}}}function $g4(_0){T:while(!0){switch((_0)._id){case 61:{var _1=_0.c1;return $I(_1,[],(function(_2,_3){return $D(_2,$g4(_3));}));}break;case 50:{var _4=_0.X0;return $I(_4,[],(function(_2,_5){return $D(_2,$g4(_5));}));}break;case 58:{var _6=_0.a1;return $I(_6,[],(function(_2,_7){return $D(_2,$g4(_7));}));}break;case 57:{var _8=_0.Z0;_0=_8;continue T}break;case 45:{var _7=_0.W0;_0=_7;continue T}break;case 54:{return [];}break;case 55:{return [];}break;case 70:{var _9=_0.b1;return [_9];}break;}}}function $h4(_0,_1,_2){switch((_1)._id){case 60:{return $z3(_0);}break;case 49:{return $y3(_0);}break;case 81:{return $B3($J2(_0,_2));}break;case 75:{return $s3(_0);}break;}}function $i4(_0,_1,_2){return c$H(_0.L0,_0.M0,c$x((_0.N0.x0+_1),(_0.N0.y0+_2)),_0.O0,_0.P0,_0.Q0,_0.R0,_0.S0,_0.K0);}function $j4(_0,_1,_2){return c$90(_0.L0,_0.M0,c$x((_0.N0.x0+_1),(_0.N0.y0+_2)),_0.o1,_0.p1);}function $k4(_0,_1,_2){return $t0(_0,(function(_3){return c$I($M(_3.T0,(function(_4){switch((_4)._id){case 41:{var _5=_4.I0;return c$F($t2($F2(_4,_1,_2),$u3),_5);}break;case 54:{return _4;}break;case 55:{return _4;}break;}})));}));}function $l4(_0){var _1=$g4(_0);if($L(_1)===$L($v2(_1))){return "";}else{return "Structure contains duplicate panel names.";}}function $m4(_0,_1,_2,_3,_4){var _5=$q3(_2,_4),_6=($a3(_3,_4)-$a3(_5,_4));if(_6>0){var _7=$M(_0,(function(_8){return $34(_8,_1,_4,_4);})),_9=$V1(_7);if(_9>0){var _a=(_6/_9);return $N(_2,(function(_b,_c){return $o3(_c,($a3(_c,_4)+(_7[_b]*_a)),_4);}));}else{return _2;}}else{return _2;}}function $n4(_0,_1,_2,_3,_4,_5){T:while(!0){var _6=(function(){var s$;if(_5._id==81){s$=$t3(_2[_3].H0,_4.N)}else{s$=[]}return s$;}()),_7=$h4(_2[_3].H0,_5,_6);if(_3>=(($L(_2)-1)|0)||(_7.J<=$h1(_4.N)&&_7.L<=$h1(_4.O))){return c$G0(_2[_3],_7,_6);}else{_3=((_3+1)|0);continue T}}}function $o4(_0,_1){var _2=$54(_1);if(_2!==""){var _3=$m0(_0.S1.__v,_2);if((_3)._id==10){var _4=_3.Q;return _4.S;}else{return st_9;}}else{return st_9;}}function $p4(_0,_1){var _2=$L0($p0(_0,$r0(),(function(_$0,_3,_4){return $I(_3.T0,_4,(function(_5,_6){switch((_6)._id){case 41:{var _7=_6.H0,_8=$54(_6);if(_8!==""){var _9=(function(){var _a=$m0(_5,_8);if((_a)._id==10){var _b=_a.Q;return $I($M($p2([_7,_b.R]),$g3),[],(function(_c,_d){if((_d)._id==10){var _e=_d.Q;return $R(_c,_e);}else{return _c;}}));}else{return _7;}}());return $n0(_5,_8,c$5(_9,st_9));}else{return _5;}}break;case 54:{return _5;}break;case 55:{return _5;}break;}}));})),(function(_$1,_9){return _9.R.length!==0;}));return c$J0(new CR_(_2),$10(_1,c$R("v1")).Y0);}function $q4(_0){var _1=(function(_2){return $W($a4(_2),st_66);});switch((_0)._id){case 61:{var _3=_0.c1,_4=_0.I0,_5=$u2(_3,_1);if(_5.R.length===0){return c$Z($M(_3,$q4),_4);}else{return c$W($D([c$Z($M(_5.S,$q4),[])],$M(_5.R,$q4)),_4);}}break;case 50:{var _3=_0.X0,_4=_0.I0,_5=$u2(_3,_1);if(_5.R.length===0){return c$O($M(_3,$q4),_4);}else{return c$W($D([c$O($M(_5.S,$q4),[])],$M(_5.R,$q4)),_4);}}break;case 58:{var _3=_0.a1,_4=_0.I0,_5=$u2(_3,_1);return c$W($M($D(_5.S,_5.R),$q4),_4);}break;case 57:{var _6=_0.Z0,_4=_0.I0;return c$V($q4(_6),_4);}break;case 45:{var _7=_0.l0,_8=_0.U0,_9=_0.m0,_a=_0.V0,_b=_0.W0;return c$J(_7,_8,_9,_a,$q4(_b));}break;case 54:{return _0;}break;case 55:{return _0;}break;case 70:{return _0;}break;}}function $r4(_0,_1,_2,_3){T:while(!0){switch((_0)._id){case 61:{var _4=_0.c1;return $z3($M(_4,(function(_5){return $r4(_5,_1,_2,st_1);})));}break;case 50:{var _6=_0.X0;return $y3($M(_6,(function(_7){return $r4(_7,_1,_2,st_0);})));}break;case 58:{var _8=_0.a1;return $s3($M(_8,(function(_9){return $r4(_9,_1,_2,_3);})));}break;case 57:{var _a=_0.Z0;_0=_a;continue T}break;case 45:{return $0;}break;case 54:{return $0;}break;case 55:{var _b=_0.M0;return $h3(_b,_3);}break;case 70:{var _c=_0.b1;return $z0(_2,_c,$44).U1;}break;}}}
7208function $s4(_0,_1){return $c4($c4([],_1),_0);}function $t4(_0,_1,_2,_3){T:while(!0){switch((_0)._id){case 61:{var _4=_0.c1,_5=_0.I0;return $q3($M(_4,(function(_6){return $t4(_6,_1,st_1,($W(_5,st_74)?c$a(st_1):_3));})),st_1);}break;case 50:{var _7=_0.X0,_5=_0.I0;return $q3($M(_7,(function(_8){return $t4(_8,_1,st_0,($W(_5,st_74)?c$a(st_0):_3));})),st_0);}break;case 58:{var _9=_0.a1;return $j3($M(_9,(function(_a){return $t4(_a,_1,_2,_3);})));}break;case 57:{var _b=_0.Z0;_0=_b;continue T}break;case 45:{return $1;}break;case 54:{return $1;}break;case 55:{var _c=_0.M0;if($k(_3)){return $p3($h3(_c,_2));}else{return $1;}}break;case 70:{var _d=_0.b1,_e=$z0(_1,_d,$44);if(_e.p1||$k(_3)){return $p3(_e.U1);}else{return $1;}}break;}}}function $u4(_0,_1,_2){var _3=$54(_1);if(_3!==""){var _4=$m0(_0.S1.__v,_3);if((_4)._id==10){var _5=_4.Q,_6=_5.S;if((_6)._id==10){return _0;}else{return c$J0(new CR_($n0(_0.S1.__v,_3,c$5(_5.R,c$a(_2)))),_0.T1);}}else{return _0;}}else{return _0;}}function $v4(_0,_1,_2,_3,_4,_5,_6){if(_2.K>$h1(_4.N)||_2.M>$h1(_4.O)){var _7=$84(_1),_8=$M(_1,(function(_9){return $o4(_0,_9);})),_a=(function(){var s$;switch(_5._id){case 60:{s$=(function(){var _b=(_4.O-$O1(_2.L));var _c=$L2($A3(_3,_4.O,_b,st_1));return $N(_3,(function(_d,_e){return $g(_8[_d],$83(_e,c$3(_4.N,_c[_d]),(!$W(_7[_d],st_51))));}));}());break;}case 49:{s$=(function(){var _f=(_4.N-$O1(_2.J));var _g=$L2($A3(_3,_4.N,_f,st_0));return $N(_3,(function(_d,_e){return $g(_8[_d],$83(_e,c$3(_g[_d],_4.O),(!$W(_7[_d],st_51))));}));}());break;}case 81:{s$=(function(){var _h=$J2(_3,_6);var _i=$J2(_8,_6),_j=$M(_h,(function(_k){return (_4.N-$O1($y3(_k).J));})),_b=(_4.O-$O1(_2.L)),_g=$N(_h,(function(_d,_k){return $L2($A3(_k,_4.N,_j[_d],st_0));})),_l=$M(_h,$s3),_c=$L2($A3(_l,_4.O,_b,st_1));return $Z($l0(_h,(function(_d,_m,_n,_e){return $g(_i[_d][_m],$83(_e,c$3(_g[_d][_m],_c[_d]),(!$W(_7[_n],st_51))));})));}());break;}case 75:{s$=(function(){var _b=(_4.O-$O1(_2.L));var _f=(_4.N-$O1(_2.J));return $N(_3,(function(_d,_e){var _o=$T($L2($A3(_3,_4.O,_b,st_1)),0),_p=$T($L2($A3(_3,_4.N,_f,st_0)),0);return $g(_8[_d],$83(_e,c$3(_p,_o),(!$W(_7[_d],st_51))));}));}());break;}}return s$;}()),_q=$M(_1,$54),_r=$J(_q,$r0(),(function(_d,_s,_t){if(_t===""||(!$x0(_0.S1.__v,_t))){return _s;}else{return $K0(_s,$s0(_t,_a[_d]),(function(_$0,_u,_v){return $x3(_u,_v);}));}}));return $N(_a,(function(_d,_w){return $g($m0(_r,_q[_d]),_w);}));}else{return _3;}}function $w4(_0,_1,_2,_3,_4,_5){var _6=$q3(_2,_4),_7=$k3(_6,_3);if(_7.N>0||_7.O>0){var _8=$M(_0,(function(_9){return $t4(_9,_1,_4,st_9);})),_a=$I(_8,$1,(function(_b,_c){return $73(_b,_c);}));if(_a.N>0||_a.O>0){return $N(_2,(function(_d,_c){return $k3(_c,$n3(_7,(_a.N>0?(_8[_d].N/_a.N):1),(_a.O>0?(_8[_d].O/_a.O):1)));}));}else{return _2;}}else{return _2;}}function $x4(_0,_1,_2){var _3=$74(_1,_2).H0,_4=$M(_3,(function(_5){return c$5(_5,_0);})),_6=$54(_1);if(_6!==""){var _7=$m0(_0.S1.__v,_6);if((_7)._id==10){var _8=_7.Q,_9=_8.S;if((_9)._id==10){var _a=_9.Q;return [c$5(_a,_0)];}else{return $M(_8.R,(function(_5){return c$5(_5,$u4(_0,_1,_5));}));}}else{return _4;}}else{return _4;}}function $y4(_0){return $f4($q4(_0),st_9);}function $z4(_0,_1,_2){return $J(_1,_0,(function(_3,_4,_5){return $u4(_4,_5,_2[_3]);}));}function $A4(_0,_1,_2){if($L(_1)===0){return [];}else{var _3=$x4(_0,_1[0],_2);return $I(_3,[],(function(_4,_5){var _6=_5.R,_7=_5.S,_8=$A4(_7,$V(_1),_2);return $D($24(c$H0([_6]),_8),_4);}));}}function $B4(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9){T:while(!0){switch((_1)._id){case 61:{var _a=_1.c1,_b=_1.I0,_c=$s4(_b,_9),_d=($W(_b,st_74)?c$a(st_1):_8),_e=$M(_a,(function(_f){return $p3($r4(_f,_2,_3,st_1));})),_g=(function(_h){return $m4(_a,_2,_h,_6,st_1);})(_e),_i=$q3(_g,st_1),_j=(function(_h){return $w4(_a,_3,_h,_7,st_1,_d);})(_g),_k=$q3(_j,st_1),_l=$c0(_6.N,_k.N),_m=$i0(_7.N,_l),_n=$J(_a,c$5([],0),(function(_o,_p,_q){var _r=_j[_o].O,_s=(_o===(($L(_a)-1)|0)?$c0((_7.O-_p.S),0):$i0($c0((_7.O-_p.S),0),_r));return c$5($D(_p.R,$B4(_0,_q,_2,_3,$R(_4,_o),c$x(_5.x0,(_5.y0+_p.S)),c$3(_l,_r),c$3(_m,_s),_d,_c).R),(_p.S+_r));}));return c$5(($W(_b,st_74)?(function(){var _t=$93(c$3(_k.N,_i.O),_7);var _u=$I(_n.R,c$a0(c$90("",_t,_5,_7,t),$r0(),[]),(function(_p,_v){if(_v.q1.p1){return c$a0(_p.q1,_p.T0,$R(_p.r1,c$a0($j4(_v.q1,-_p.q1.N0.x0,-_p.q1.N0.y0),_v.T0,_v.r1)));}else{return c$a0(_p.q1,$J0(_p.T0,$H2(_v.T0,(function(_$0,_w){return $i4(_w,(_v.q1.N0.x0-_p.q1.N0.x0),(_v.q1.N0.y0-_p.q1.N0.y0));}))),$D(_p.r1,$M(_v.r1,(function(_x){return c$a0($j4(_x.q1,(_v.q1.N0.x0-_p.q1.N0.x0),(_v.q1.N0.x0-_p.q1.N0.y0)),_x.T0,_x.r1);}))));}}));return [c$a0(c$90($e4(_4,t,_0.T1),_u.q1.M0,_u.q1.N0,_u.q1.o1,_u.q1.p1),_u.T0,_u.r1)];}()):_n.R),c$3(_l,_n.S));}break;case 50:{var _y=_1.X0,_b=_1.I0,_c=$s4(_b,_9),_d=($W(_b,st_74)?c$a(st_0):_8),_e=$M(_y,(function(_x){return $p3($r4(_x,_2,_3,st_0));})),_g=(function(_h){return $m4(_y,_2,_h,_6,st_0);})(_e),_i=$q3(_g,st_0),_j=(function(_h){return $w4(_y,_3,_h,_7,st_0,_d);})(_g),_k=$q3(_j,st_0),_z=$c0(_6.O,_k.O),_A=$i0(_7.O,_z),_n=$J(_y,c$5([],0),(function(_o,_p,_B){var _C=_j[_o].N,_D=(_o===(($L(_y
7208)-1)|0)?$c0((_7.N-_p.S),0):$i0($c0((_7.N-_p.S),0),_C));return c$5($D(_p.R,$B4(_0,_B,_2,_3,$R(_4,_o),c$x((_5.x0+_p.S),_5.y0),c$3(_C,_z),c$3(_D,_A),_d,_c).R),(_p.S+_C));}));return c$5(($W(_b,st_74)?(function(){var _t=$93(c$3(_i.N,_k.O),_7);var _u=$I(_n.R,c$a0(c$90("",_t,_5,_7,t),$r0(),[]),(function(_p,_v){if(_v.q1.p1){return c$a0(_p.q1,_p.T0,$R(_p.r1,c$a0($j4(_v.q1,-_p.q1.N0.x0,-_p.q1.N0.y0),_v.T0,_v.r1)));}else{return c$a0(_p.q1,$J0(_p.T0,$H2(_v.T0,(function(_$1,_w){return $i4(_w,(_v.q1.N0.x0-_p.q1.N0.x0),(_v.q1.N0.y0-_p.q1.N0.y0));}))),$D(_p.r1,$M(_v.r1,(function(_x){return c$a0($j4(_x.q1,(_v.q1.N0.x0-_p.q1.N0.x0),(_v.q1.N0.x0-_p.q1.N0.y0)),_x.T0,_x.r1);}))));}}));return [c$a0(c$90($e4(_4,t,_0.T1),_u.q1.M0,_u.q1.N0,_u.q1.o1,_u.q1.p1),_u.T0,_u.r1)];}()):_n.R),c$3(_n.S,_z));}break;case 58:{var _E=_1.a1,_b=_1.I0,_c=$s4(_b,_9),_F=$N(_E,(function(_o,_G){var _H=$W($a4(_G),st_66),_I=(_H?_7:_6);return $B4(_0,_G,_2,_3,$R(_4,_o),_5,_I,_7,_8,_c);}));return c$5($00(_F,(function(_n){return _n.R;})),$j3($M(_F,(function(_n){return _n.S;}))));}break;case 57:{var _J=_1.Z0,_b=_1.I0,_c=$s4(_b,_9),a_=_J;var b_=$R(_4,0);var c_=_c;_1=a_;_4=b_;_9=c_;continue T}break;case 45:{return c$5([],$1);}break;case 54:{return c$5([],$1);}break;case 55:{return c$5([],$1);}break;case 70:{var _K=_1.b1,_L=_1.l1,_M=_1.m1,_N=_1.n1,_O=$z0(_2,_K,c$I([]));if(_O.T0.length===0){return c$5([$E2],$1);}else{var _P=$z0(_3,_K,$44),_Q=(function(){var s$;switch(_N._id){case 60:{s$=st_1;break;}case 49:{s$=st_0;break;}case 81:{s$=st_0;break;}case 75:{s$=st_1;break;}}return s$;}()),_R=$34(_1,_2,_Q,_Q),_S=$14(_P.U1,_6,_R,_Q),_T=(function(){var _U=(function(){var s$;switch(_N._id){case 60:{s$=$J(_O.T0,c$7([],0,0),(function(_o,_p,_V){return c$7($R(_p.R,c$x(0,_p.T)),$c0(_p.S,$O1(_P.H0[_o].K)),(_p.T+($b(_V,st_54)?_S:$O1(_P.H0[_o].M))));}));break;}case 49:{s$=$J(_O.T0,c$7([],0,0),(function(_o,_p,_V){return c$7($R(_p.R,c$x(_p.S,0)),(_p.S+($b(_V,st_54)?_S:$O1(_P.H0[_o].K))),$c0(_p.T,$O1(_P.H0[_o].M)));}));break;}case 81:{s$=(function(){var _W=$M2(_P.H0,_P.Q1);return $I(_W,c$7([],0,0),(function(_X,_Y){var _Z=$I(_Y,c$7([],0,0),(function(_00,_10){return c$7($R(_00.R,c$x(_00.S,_X.T)),(_00.S+($b(_O.T0[_10],st_54)?_S:$O1(_P.H0[_10].K))),$c0(_00.T,$O1(_P.H0[_10].M)));}));return c$7($D(_X.R,(_M===0?_Z.R:$N(_Y,(function(_20,_10){return c$x(_Z.R[_20].x0,(_Z.R[_20].y0+(_M*(_Z.T-$O1(_P.H0[_10].M)))));})))),$c0(_X.S,_Z.S),(_X.T+_Z.T));}));}());break;}case 75:{s$=c$7($M(_O.T0,(function(_w){return c$x(0,0);})),0,0);break;}}return s$;}());if(_L===0&&_M===0){return _U;}else{return c$7($N(_U.R,(function(_o,_30){switch((_N)._id){case 60:{return c$x((_L*(_U.S-$O1(_P.H0[_o].K))),_30.y0);}break;case 49:{return c$x(_30.x0,(_M*(_U.T-$O1(_P.H0[_o].M))));}break;case 81:{return _30;}break;case 75:{return c$x((_L*(_U.S-$O1(_P.H0[_o].K))),(_M*(_U.T-$O1(_P.H0[_o].M))));}break;}})),_U.S,_U.T);}}()),_40=$J(_O.T0,[],(function(_o,_p,_V){switch((_V)._id){case 41:{var _b=_V.I0,_50=($20(_b,c$k0(0)).length!==0?c$a($10(_b,c$k0(0)).P0):($20(_9,c$k0(0)).length!==0?c$a($10(_9,c$k0(0)).P0):st_9));return $R(_p,c$H($b4(_K,_o,_0.T1),c$3($O1(_P.H0[_o].K),$O1(_P.H0[_o].M)),_T.R[_o],$W(_9,st_56),_50,$10(_b,c$20("")).d1,$10(_b,c$30("")).d1,_P.V1[_o],$z2(_V)));}break;case 54:{return _p;}break;case 55:{return _p;}break;}})),_60=_P.p1,_t=c$3(_T.S,_T.T),_70=c$90($d4(_K,_60,_0.T1),_t,_5,_7,_60);return c$5([c$a0(_70,$s0(_K,_40),[])],_t);}}break;}}}function $C4(_0,_1,_2,_3,_4,_5){T:while(!0){switch((_1)._id){case 61:{var _6=_1.c1,_7=_1.I0,_8=$z3($M(_6,(function(_9){return $C4(_0,_9,_2,_3,st_1,($W(_7,st_74)?c$a(st_1):_5));})));if($W(_7,st_74)){return c$2(_8.J,_8.K,0,$i0(_8.M,$h1(_3.O)));}else{return _8;}}break;case 50:{var _a=_1.X0,_7=_1.I0,_8=$y3($M(_a,(function(_b){return $C4(_0,_b,_2,_3,st_0,($W(_7,st_74)?c$a(st_0):_5));})));if($W(_7,st_74)){return c$2(0,$i0(_8.K,$h1(_3.N)),_8.L,_8.M);}else{return _8;}}break;case 58:{var _c=_1.a1,_7=_1.I0;return $s3($M(_c,(function(_b){return $C4(_0,_b,_2,_3,_4,($W(_7,st_74)?c$a(_4):_5));})));}break;case 57:{var _d=_1.Z0;_1=_d;continue T}break;case 45:{return $0;}break;case 54:{return $0;}break;case 55:{var _e=_1.M0;return $h3(_e,_4);}break;case 70:{var _f=_1.b1,_g=_1.n1,_h=_1.d1,_i=$z0(_2,_f,c$I([]));if(_i.T0.length===0){return $0;}else{var _j=$M(_i.T0,(function(_k){var _l=$M($x4(_0,_k,_g),(function(_m){return _m.R;}));return $f3(_l);})),_n=$b(_h,st_74),_8=(function(){var s$;if(_g._id==81){s$=$f3($D([$y3(_j)],[$z3(_j)]))}else{s$=$h4(_j,_g,[])}return s$;}());if(_n&&$b(_g,st_60)){return c$2(_8.J,_8.K,0,$i0(_8.M,$h1(_3.O)));}else{if(_n&&$b(_g,st_49)){return c$2(0,$i0(_8.K,$h1(_3.N)),_8.L,_8.M);}else{return _8;}}}}break;}}}function $D4(_0,_1,_2){var _3=$A2(_0,_2),_4=_3.R,_5=_3.S,_6=$G2(_0,_2,_5),_7=$y4(_6.R),_8=$k4(_1,_4,_5),_9=$p4(_8,_0.I0),_a=$l4(_7);if(_a===""){var _b=$F4(_9,_7,_8,_4,st_0,st_9),_c=$64(_b,_4,_2),_d=$B4(_9,_7,_8,_b.g1,[_6.S],_c,_5,_5,st_9,[]);return c$5(c$70(_d.R,_8,_4,_5,_d.S,_6.S,_6.T),"");}else{return c$5(c$70([],_8,_4,_5,$1,_6.S,_6.T),_a);}}function $E4(_0,_1,_2,_3,_4,_5){if(_1.length===0){return [];}else{var _6=$M(_1,(function(_7){return $C4(_0,_7,_2,_3,_4,_5);})),_8=$M(_6,$m3),_9=$a3(_3,_4),_a=$c0((_9-$V1($M(_8,(function(_b){return $a3(_b,_4);})))),0),_c=$A3(_6,_9,_a,_4)[0],_d=$c0(($a3(_3,_4)-$v3($r3($V(_6),_4),_4)),0),_e=$l3(_4),_f=$c0($a3(_3,_e),$g($12($M(_8,(function(_b){return $a3(_b,_e);}))),0)),_g=$i3($i0($c0(_c,_d),_9),_f,_4),_h=$F4(_0,_1[0],_2,_g,_4,_5),_i=$i3($c0((_9-$v3(_h.R1,_4)),0),_f,_4),_j=$E4(_0,$V(_1),_2,_i,_4,_5);return $D([_h],_j);}}
7208function $F4(_0,_1,_2,_3,_4,_5){T:while(!0){switch((_1)._id){case 61:{var _6=_1.c1,_7=_1.I0,_8=$94(_3,_7),_9=$E4(_0,_6,_2,_8,st_1,($W(_7,st_74)?c$a(st_1):_5));return c$I0($z3($M(_9,(function(_a){return _a.R1;}))),$I(_9,$r0(),(function(_b,_a){return $J0(_b,_a.g1);})));}break;case 50:{var _c=_1.X0,_7=_1.I0,_8=$94(_3,_7),_9=$E4(_0,_c,_2,_8,st_0,($W(_7,st_74)?c$a(st_0):_5));return c$I0($y3($M(_9,(function(_a){return _a.R1;}))),$I(_9,$r0(),(function(_b,_a){return $J0(_b,_a.g1);})));}break;case 58:{var _d=_1.a1,_7=_1.I0,_8=$94(_3,_7),_9=$M(_d,(function(_e){return $F4(_0,_e,_2,_8,_4,_5);}));return c$I0($s3($M(_9,(function(_a){return _a.R1;}))),$I(_9,$r0(),(function(_b,_a){return $J0(_b,_a.g1);})));}break;case 57:{var _f=_1.Z0,_7=_1.I0,_8=$94(_3,_7),a_=_f;var b_=_8;_1=a_;_3=b_;continue T}break;case 45:{return c$I0($0,$r0());}break;case 54:{return c$I0($0,$r0());}break;case 55:{var _g=_1.M0;return c$I0($h3(_g,_4),$r0());}break;case 70:{var _h=_1.b1,_i=_1.n1,_j=_1.d1,_k=$z0(_2,_h,c$I([]));if(_k.T0.length===0){return c$I0($0,$s0(_h,$44));}else{var _l=$A4(_0,_k.T0,_i),_m=$b(_j,st_74),_n=(((_m&&$b(_i,st_60))||CME(_5,
7208c$a(st_1)))?c$3(_3.N,$O1($Z1)):(((_m&&$b(_i,st_49))||CME(_5,c$a(st_0)))?c$3($O1($Z1),_3.O):_3)),_o=$n4(_0,_k.T0,_l,0,_n,_i),_p=$v4(_0,_k.T0,_o.M0,_o.P1.H0,_n,_i,_o.Q1);_0.S1.__v=$z4(_0,_k.T0,_p).S1.__v;var _q=$h4(_p,_i,_o.Q1);return c$I0(_q,$s0(_h,c$K0(_q,_p,_o.P1.H0,_o.Q1,_m)));}}break;}}}var $G4=new CR_($r0());var $H4=new CR_($r0());function $I4(_0){var _1=(function(_2,_3){return (function(_4){return $b1(_4,_3,_2);});});return _1("&","&")(_1("<"+"","<")(_1(">",">")(_1("\"",""")(_1("'","'")(_0)))));}var $J4=new CR_($r0());var $K4=new CR_($r0());var $L4=new CR_($x2);function $M4(_0,_1){var _2=(function(_3,_4){var _5=_3.L0,_6=(_3.O0?"fixed":"absolute"),_7=(_4.x0+_3.N0.x0),_8=(_4.y0+_3.N0.y0),_9=_3.M0.N,_a=_3.M0.O,_b=(function(){var _c=_3.P0;if((_c)._id==10){var _d=_c.Q;return $f(_d);}else{return "";}}()),_e=_3.K0,_f=_3.Q0,_g=_3.R0;return c$r0([c$5("id",c$t0(_5)),c$5("position",c$t0(_6)),c$5("x",c$n0(_7)),c$5("y",c$n0(_8)),c$5("w",c$n0(_9)),c$5("h",c$n0(_a)),c$5("zIndex",c$t0(_b)),c$5("html",c$t0(_e)),c$5("overflowX",c$t0(_f)),c$5("overflowY",c$t0(_g))]);}),_h=(function(_i){var _d=$23(_i,"zIndex",""),_j=$23(_i,"overflowX",""),_k=$23(_i,"overflowY","");return $Q3("<"+"div id=\"%id%\" style=\"position: %position%; left: %x%; top: %y%; width: %w%; height:%h%;%zindex%%overflowX%%overflowY%\">%html%<"+"/div>",["id",$23(_i,"id",""),"position",$23(_i,"position",""),"x",($23(_i,"x","")+"px"),"y",($23(_i,"y","")+"px"),"w",($23(_i,"w","")+"px"),"h",($23(_i,"h","")+"px"),"zIndex",($d1(_d)>0?((" z-index: "+_d)+";"):""),"overflowX",($d1(_j)>0?((" overflow-x: "+_j)+";"):""),"overflowY",($d1(_k)>0?((" overflow-y: "+_k)+";"):""),"html",$23(_i,"html","")]);});if(_0.q1.p1){var _l=$i1($M($Z($B0(_0.T0)),(function(_3){var _m=(_3.O0?$N2(_1,_0.q1.N0):c$x(0,0));return _h(_2(_3,_m));}))),_n=$i1($00(_0.r1,(function(_o){return $M($M4(_o,_0.q1.N0),_h);}))),_j=((_0.q1.M0.N-_0.q1.o1.N)>1?"auto":"hidden"),_k=((_0.q1.M0.O-_0.q1.o1.O)>1?"auto":"hidden");return [c$r0([c$5("id",c$t0(_0.q1.L0)),c$5("position",c$t0("absolute")),c$5("x",c$n0(_0.q1.N0.x0)),c$5("y",c$n0(_0.q1.N0.y0)),c$5("w",c$n0(_0.q1.o1.N)),c$5("h",c$n0(_0.q1.o1.O)),c$5("overflowX",c$t0(_j)),c$5("overflowY",c$t0(_k)),c$5("html",c$t0((_l+_n)))])];}else{return $D($M($Z($B0(_0.T0)),(function(_3){return _2(_3,_0.q1.N0);})),$00(_0.r1,(function(_p){return $M4(_p,_0.q1.N0);})));}}function $N4(_0,_1){var _2=(function(_3,_4){var _5=_3.L0,_6=(_3.O0?"fixed":"absolute"),_7=(_4.x0+_3.N0.x0),_8=(_4.y0+_3.N0.y0),_9=_3.M0.N,_a=_3.M0.O,_b=(function(){var _c=_3.P0;if((_c)._id==10){var _d=_c.Q;return $f(_d);}else{return "";}}());return c$r0([c$5("id",c$t0(_5)),c$5("position",c$t0(_6)),c$5("x",c$n0(_7)),c$5("y",c$n0(_8)),c$5("w",c$n0(_9)),c$5("h",c$n0(_a)),c$5("zIndex",c$t0(_b))]);});if(_0.q1.p1){var _e=$M($Z($B0(_0.T0)),(function(_3){var _f=(_3.O0?$N2(_1,_0.q1.N0):c$x(0,0));return _2(_3,_f);})),_g=$00(_0.r1,(function(_h){return $N4(_h,_0.q1.N0);})),_i=((_0.q1.M0.N-_0.q1.o1.N)>1?"auto":"hidden"),_j=((_0.q1.M0.O-_0.q1.o1.O)>1?"auto":"hidden");return [c$r0([c$5("id",c$t0(_0.q1.L0)),c$5("scrollable",c$t0("true")),c$5("position",c$t0("absolute")),c$5("x",c$n0(_0.q1.N0.x0)),c$5("y",c$n0(_0.q1.N0.y0)),c$5("w",c$n0(_0.q1.o1.N)),c$5("h",c$n0(_0.q1.o1.O)),c$5("overflowX",c$t0(_i)),c$5("overflowY",c$t0(_j)),c$5("children",c$l0($D(_e,_g)))])];}else{return $D($M($Z($B0(_0.T0)),(function(_3){return _2(_3,_0.q1.N0);})),$00(_0.r1,(function(_h){return $N4(_h,_0.q1.N0);})));}}function $O4(){var _0=$L4.__v.h1;return [$62(_0.N),$62(_0.O)];}var getLayoutAreaSize = $O4;function $P4(){return $L4.__v.j1===0;}var isMobileLayout = $P4;function $Q4(_0,_1,_2){if(_2==="v2"){return $N4(_0,_1);}else{return $M4(_0,_1);}}function $R4(_0,_1,_2){return $J4.__v=$n0($J4.__v,_0,c$3(_1,_2));}var setBlockSize = $R4;function $S4(_0,_1){if(_1!==""){return $K4.__v=$n0($K4.__v,_0,_1);}else{return $K4.__v=$H0($K4.__v,_0);}}var setExpandableBlockContent = $S4;function $T4(_0){return $L4.__v=_0;}function $U4(_0,_1,_2,_3,_4){var _5=(function(_6,_7,_8){var _9=$D4(_6,_7,_8);$T4(_9.R);if(_9.S===""){var _a=$v0($K4.__v)>0||$k($o0(_7,(function(_b,_c){return $H(_c.T0,(function(_d){switch((_d)._id){case 41:{var _e=_d.I0;return $W(_e,st_39);}break;case 54:{return f;}break;case 55:{return f;}break;}}));}))),_f=$k($o0(_7,(function(_b,_c){return $H(_c.T0,(function(_d){switch((_d)._id){case 41:{var _e=_d.I0;return $W(_e,st_40);}break;case 54:{return f;}break;case 55:{return f;}break;}}));})));if((_a||_f)||($J4.__v)._id!==22){var _g=_9.R.g1,_h=$u0(_9.R.T0,(function(_b,_c){var _i=$z0($Y(_g,(function(_j){return $x0(_j.T0,_b);}),$E2).T0,_b,[]);if(_i.length!==0){return c$I($J(_c.T0,c$5([],0),(function(_k,_l,_d){switch((_d)._id){case 41:{var _e=_d.I0,_m=_i[_l.S],_n=$z0($K4.__v,_m.L0,_m.K0),_o=$W(_e,st_39),_p=$W(_e,st_40),_q=!$W(_e,st_51),_r=$x0($K4.__v,_m.L0),_s=$x0($J4.__v,_m.L0),_t=(_s?(function(){var _u=$z0($J4.__v,_m.L0,c$3(0,0));$J4.__v=$H0($J4.__v,_m.L0);return c$2($h1(_u.N),$h1(_u.N),$h1(_u.O),$h1(_u.O));}()):(((_r||_o)||_p)?(function(){var _v=$h1(_m.M0.N);var _w=$h1(_m.M0.O),_x=(_p?$c0($b0("_getBlockWidth",[$e(_m.L0),_m.M0.N,_m.M0.O,_n]),_m.S0.J):_v),_y=((_r||_o)?$c0($b0("_getBlockHeight",[$e(_m.L0),_m.M0.N,_m.M0.O,_n]),_m.S0.L):_w);return c$2(_x,_x,_y,_y);}()):c$2(((_q||_f)?_m.S0.J:$h1(_m.M0.N)),((_q||_f)?_m.S0.K:$h1(_m.M0.N)),((_q||_a)?_m.S0.L:$h1(_m.M0.O)),((_q||_a)?_m.S0.M:$h1(_m.M0.O))))),_z=$10(_e,c$G([],""));return c$5($R(_l.R,c$F([_t],(function(_A){return $30(_A,c$G(_z.J0,_n));})((function(_A){return $30(_A,c$e0(c$L(-1),[]));})(_e)))),((_l.S+1)|0));}break;case 54:{return c$5($R(_l.R,_d),_l.S);}break;case 55:{return c$5($R(_l.R,_d),_l.S);}break;}})).R);}else{return _c;}}));return $D4(_6,_h,_8);}else{return _9;}}else{return _9;}}),_B=(function(_C){var _D=$10(_C.I0,c$R("v1")).Y0,_E=$T2($Q2(_3),[]),_F=$Q2(_4),_G=$I(_E,$r0(),(function(_l,_H){var _I=_H.R,_7=$S2(_H.S,[]),_c=$I(_7,[],(function(_J,_K){var _d=$23(_K,"block",""),_L=$I4($23(_K,"html","")),_M=$M($13(_K,"vars"),(function(_N
7208){return $03(_N,"");})),_O=$V3(_d,st_8);if(!$b(_O,st_8)){if(_L===""){return $R(_J,_O);}else{var _P=$R3(_L,_M,_F);if(_P!==""){var _e=$R(_O.I0,c$G([],_P));return $R(_J,c$F(_O.H0,_e));}else{return _J;}}}else{return _J;}}));return $n0(_l,_I,c$I(_c));})),_Q=_5(_C,_G,c$3($O1(_0),$O1(_1))),_R=_Q.S;if(_R===""){return $V2(c$l0($I(_Q.R.g1,[],(function(_l,_j){if((_j.T0)._id!==22){return $D(_l,$Q4(_j,c$x(0,0),_D));}else{return _l;}}))));}else{$k0(("Layout error: "+_R));return $V2(c$l0([]));}}),_C=$V3(_2,st_8);if($b(_C,st_8)){return "";}else{return _B(_C);}}var layoutEngine = $U4;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.