Guest User

dogio.win decode

a guest
Jul 10th, 2017
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 445.77 KB | None | 0 0
  1. !function(module) {
  2. /**
  3. * @param {number} i
  4. * @return {?}
  5. */
  6. function t(i) {
  7. if (args[i]) {
  8. return args[i].exports;
  9. }
  10. var m = args[i] = {
  11. i : i,
  12. l : false,
  13. exports : {}
  14. };
  15. return module[i].call(m.exports, m, m.exports, t), m.l = true, m.exports;
  16. }
  17. var args = {};
  18. return t.m = module, t.c = args, t.i = function(b) {
  19. return b;
  20. }, t.d = function(ctx, d, f) {
  21. if (!t.o(ctx, d)) {
  22. Object.defineProperty(ctx, d, {
  23. configurable : false,
  24. enumerable : true,
  25. get : f
  26. });
  27. }
  28. }, t.n = function(c) {
  29. /** @type {function (): ?} */
  30. var error = c && c.__esModule ? function() {
  31. return c.default;
  32. } : function() {
  33. return c;
  34. };
  35. return t.d(error, "a", error), error;
  36. }, t.o = function(action, a) {
  37. return Object.prototype.hasOwnProperty.call(action, a);
  38. }, t.p = "", t(t.s = 59);
  39. }([function(module, dataAndEvents) {
  40. module.exports = React;
  41. }, function(module, dataAndEvents) {
  42. module.exports = mobxReact;
  43. }, function(module, dataAndEvents) {
  44. module.exports = mobx;
  45. }, function(dataAndEvents, ctx, require) {
  46. /**
  47. * @param {?} dataAndEvents
  48. * @param {Function} callback
  49. * @return {undefined}
  50. */
  51. function exec(dataAndEvents, callback) {
  52. if (!(dataAndEvents instanceof callback)) {
  53. throw new TypeError("Cannot call a class as a function");
  54. }
  55. }
  56. Object.defineProperty(ctx, "__esModule", {
  57. value : true
  58. });
  59. ctx.BufferWriter = ctx.BufferReader = void 0;
  60. var transitionDone = function() {
  61. /**
  62. * @param {Function} proto
  63. * @param {Array} name
  64. * @return {undefined}
  65. */
  66. function defineProperty(proto, name) {
  67. /** @type {number} */
  68. var i = 0;
  69. for (;i < name.length;i++) {
  70. var desc = name[i];
  71. desc.enumerable = desc.enumerable || false;
  72. /** @type {boolean} */
  73. desc.configurable = true;
  74. if ("value" in desc) {
  75. /** @type {boolean} */
  76. desc.writable = true;
  77. }
  78. Object.defineProperty(proto, desc.key, desc);
  79. }
  80. }
  81. return function(context, name, tag) {
  82. return name && defineProperty(context.prototype, name), tag && defineProperty(context, tag), context;
  83. };
  84. }();
  85. var Block = require(11);
  86. ctx.BufferReader = function() {
  87. /**
  88. * @param {?} buffer
  89. * @return {undefined}
  90. */
  91. function next(buffer) {
  92. exec(this, next);
  93. /** @type {number} */
  94. this.offset = 0;
  95. /** @type {DataView} */
  96. this.view = new DataView(buffer);
  97. this.textDecoder = new TextDecoder;
  98. }
  99. return transitionDone(next, [{
  100. key : "readBytes",
  101. /**
  102. * @param {number} object
  103. * @return {?}
  104. */
  105. value : function(object) {
  106. /** @type {ArrayBuffer} */
  107. var buffer = new ArrayBuffer(object);
  108. return(new Uint8Array(buffer)).set(new Uint8Array(this.view.buffer, this.offset, object)), this.offset += object, buffer;
  109. }
  110. }, {
  111. key : "readUint8",
  112. /**
  113. * @return {?}
  114. */
  115. value : function() {
  116. var array = this.view.getUint8(this.offset);
  117. return this.offset += 1, array;
  118. }
  119. }, {
  120. key : "readInt8",
  121. /**
  122. * @return {?}
  123. */
  124. value : function() {
  125. var array = this.view.getInt8(this.offset);
  126. return this.offset += 1, array;
  127. }
  128. }, {
  129. key : "readUint16",
  130. /**
  131. * @return {?}
  132. */
  133. value : function() {
  134. var array = this.view.getUint16(this.offset, true);
  135. return this.offset += 2, array;
  136. }
  137. }, {
  138. key : "readInt16",
  139. /**
  140. * @return {?}
  141. */
  142. value : function() {
  143. var array = this.view.getInt16(this.offset, true);
  144. return this.offset += 2, array;
  145. }
  146. }, {
  147. key : "readUint32",
  148. /**
  149. * @return {?}
  150. */
  151. value : function() {
  152. var array = this.view.getUint32(this.offset, true);
  153. return this.offset += 4, array;
  154. }
  155. }, {
  156. key : "readInt32",
  157. /**
  158. * @return {?}
  159. */
  160. value : function() {
  161. var array = this.view.getInt32(this.offset, true);
  162. return this.offset += 4, array;
  163. }
  164. }, {
  165. key : "readFloat32",
  166. /**
  167. * @return {?}
  168. */
  169. value : function() {
  170. var array = this.view.getFloat32(this.offset, true);
  171. return this.offset += 4, array;
  172. }
  173. }, {
  174. key : "readFloat64",
  175. /**
  176. * @return {?}
  177. */
  178. value : function() {
  179. var array = this.view.getFloat64(this.offset, true);
  180. return this.offset += 8, array;
  181. }
  182. }, {
  183. key : "readString",
  184. /**
  185. * @return {?}
  186. */
  187. value : function() {
  188. var offset = this.offset;
  189. for (;0 != this.readUint8();) {
  190. }
  191. return this.textDecoder.decode(new Uint8Array(this.view.buffer, offset, this.offset - offset - 1));
  192. }
  193. }, {
  194. key : "skipString8",
  195. /**
  196. * @return {undefined}
  197. */
  198. value : function() {
  199. for (;0 != this.readUint8();) {
  200. }
  201. }
  202. }, {
  203. key : "readString8",
  204. /**
  205. * @return {?}
  206. */
  207. value : function() {
  208. /** @type {string} */
  209. var d = "";
  210. var lo = void 0;
  211. for (;0 != (lo = this.readUint8());) {
  212. d += String.fromCharCode(lo);
  213. }
  214. return d;
  215. }
  216. }, {
  217. key : "skipString16",
  218. /**
  219. * @return {undefined}
  220. */
  221. value : function() {
  222. for (;0 != this.readUint16();) {
  223. }
  224. }
  225. }, {
  226. key : "readString16",
  227. /**
  228. * @return {?}
  229. */
  230. value : function() {
  231. /** @type {string} */
  232. var d = "";
  233. var lo = void 0;
  234. for (;0 != (lo = this.readUint16());) {
  235. d += String.fromCharCode(lo);
  236. }
  237. return d;
  238. }
  239. }, {
  240. key : "readStringLen16",
  241. /**
  242. * @return {?}
  243. */
  244. value : function() {
  245. /** @type {string} */
  246. var d = "";
  247. var readUint16 = this.readUint16();
  248. for (;readUint16 > 0;readUint16--) {
  249. d += String.fromCharCode(this.readUint16());
  250. }
  251. return d;
  252. }
  253. }, {
  254. key : "readColor",
  255. /**
  256. * @return {?}
  257. */
  258. value : function() {
  259. return(0, Block.colorToHex)(this.readUint8(), this.readUint8(), this.readUint8());
  260. }
  261. }]), next;
  262. }();
  263. ctx.BufferWriter = function() {
  264. /**
  265. * @return {undefined}
  266. */
  267. function restoreScript() {
  268. exec(this, restoreScript);
  269. /** @type {Array} */
  270. this.bytes = [];
  271. /** @type {DataView} */
  272. this.view = new DataView(new ArrayBuffer(8));
  273. this.textEncoder = new TextEncoder;
  274. }
  275. return transitionDone(restoreScript, [{
  276. key : "reset",
  277. /**
  278. * @return {undefined}
  279. */
  280. value : function() {
  281. /** @type {number} */
  282. this.bytes.length = 0;
  283. }
  284. }, {
  285. key : "writeBytes",
  286. /**
  287. * @param {number} object
  288. * @return {undefined}
  289. */
  290. value : function(object) {
  291. Array.prototype.push.apply(this.bytes, new Uint8Array(object));
  292. }
  293. }, {
  294. key : "writeUint8",
  295. /**
  296. * @param {number} object
  297. * @return {undefined}
  298. */
  299. value : function(object) {
  300. this.view.setUint8(0, object);
  301. this.moveTemp(1);
  302. }
  303. }, {
  304. key : "writeInt8",
  305. /**
  306. * @param {number} object
  307. * @return {undefined}
  308. */
  309. value : function(object) {
  310. this.view.setInt8(0, object);
  311. this.moveTemp(1);
  312. }
  313. }, {
  314. key : "writeUint16",
  315. /**
  316. * @param {number} object
  317. * @return {undefined}
  318. */
  319. value : function(object) {
  320. this.view.setUint16(0, object, true);
  321. this.moveTemp(2);
  322. }
  323. }, {
  324. key : "writeInt16",
  325. /**
  326. * @param {number} object
  327. * @return {undefined}
  328. */
  329. value : function(object) {
  330. this.view.setInt16(0, object, true);
  331. this.moveTemp(2);
  332. }
  333. }, {
  334. key : "writeUint32",
  335. /**
  336. * @param {number} object
  337. * @return {undefined}
  338. */
  339. value : function(object) {
  340. this.view.setUint32(0, object, true);
  341. this.moveTemp(4);
  342. }
  343. }, {
  344. key : "writeInt32",
  345. /**
  346. * @param {number} object
  347. * @return {undefined}
  348. */
  349. value : function(object) {
  350. this.view.setInt32(0, object, true);
  351. this.moveTemp(4);
  352. }
  353. }, {
  354. key : "writeFloat32",
  355. /**
  356. * @param {number} object
  357. * @return {undefined}
  358. */
  359. value : function(object) {
  360. this.view.setFloat32(0, object, true);
  361. this.moveTemp(4);
  362. }
  363. }, {
  364. key : "writeFloat64",
  365. /**
  366. * @param {number} object
  367. * @return {undefined}
  368. */
  369. value : function(object) {
  370. this.view.setFloat64(0, object, true);
  371. this.moveTemp(8);
  372. }
  373. }, {
  374. key : "writeString",
  375. /**
  376. * @param {number} object
  377. * @return {undefined}
  378. */
  379. value : function(object) {
  380. Array.prototype.push.apply(this.bytes, this.textEncoder.encode(object));
  381. this.bytes.push(0);
  382. }
  383. }, {
  384. key : "writeString8",
  385. /**
  386. * @param {number} object
  387. * @return {undefined}
  388. */
  389. value : function(object) {
  390. /** @type {number} */
  391. var idx = 0;
  392. for (;idx < object.length;idx++) {
  393. this.writeUint8(object.charCodeAt(idx));
  394. }
  395. this.writeUint8(0);
  396. }
  397. }, {
  398. key : "writeString16",
  399. /**
  400. * @param {number} object
  401. * @return {undefined}
  402. */
  403. value : function(object) {
  404. /** @type {number} */
  405. var idx = 0;
  406. for (;idx < object.length;idx++) {
  407. this.writeUint16(object.charCodeAt(idx));
  408. }
  409. this.writeUint16(0);
  410. }
  411. }, {
  412. key : "writeStringLen16",
  413. /**
  414. * @param {number} object
  415. * @return {undefined}
  416. */
  417. value : function(object) {
  418. this.writeUint16(object.length);
  419. /** @type {number} */
  420. var idx = 0;
  421. for (;idx < object.length;idx++) {
  422. this.writeUint16(object.charCodeAt(idx));
  423. }
  424. }
  425. }, {
  426. key : "moveTemp",
  427. /**
  428. * @param {number} object
  429. * @return {undefined}
  430. */
  431. value : function(object) {
  432. /** @type {number} */
  433. var i = 0;
  434. for (;i < object;i++) {
  435. this.bytes.push(this.view.getUint8(i));
  436. }
  437. }
  438. }, {
  439. key : "build",
  440. /**
  441. * @return {?}
  442. */
  443. value : function() {
  444. return(new Uint8Array(this.bytes)).buffer;
  445. }
  446. }]), restoreScript;
  447. }();
  448. }, function(dataAndEvents, attributes, require) {
  449. /**
  450. * @param {string} context
  451. * @return {?}
  452. */
  453. function getAll(context) {
  454. return context && context.__esModule ? context : {
  455. default : context
  456. };
  457. }
  458. /**
  459. * @param {string} contentHTML
  460. * @return {undefined}
  461. */
  462. function initialize(contentHTML) {
  463. var map = require(26);
  464. Object.assign(opt_attributes, {
  465. init : null,
  466. getServers : map.localGetServers,
  467. normalizeNames : map.localNormalizeNames,
  468. Client : map.LocalClient,
  469. MultiboxClient : map.LocalMultiboxClient,
  470. SpectateClient : map.LocalSpectateClient
  471. });
  472. Object.assign(attributes, map);
  473. if (opt_attributes.init) {
  474. opt_attributes.init();
  475. }
  476. }
  477. Object.defineProperty(attributes, "__esModule", {
  478. value : true
  479. });
  480. var clone = require(7);
  481. Object.defineProperty(attributes, "Client", {
  482. enumerable : true,
  483. /**
  484. * @return {?}
  485. */
  486. get : function() {
  487. return getAll(clone).default;
  488. }
  489. });
  490. /** @type {function (string): undefined} */
  491. attributes.init = initialize;
  492. var opt_attributes = attributes.clients = {};
  493. initialize(window.location.hostname);
  494. }, function(module, dataAndEvents) {
  495. module.exports = ReactTabs;
  496. }, function(dataAndEvents, object, deepDataAndEvents) {
  497. /**
  498. * @param {?} dataAndEvents
  499. * @param {Function} seed
  500. * @return {undefined}
  501. */
  502. function posProcess(dataAndEvents, seed) {
  503. if (!(dataAndEvents instanceof seed)) {
  504. throw new TypeError("Cannot call a class as a function");
  505. }
  506. }
  507. Object.defineProperty(object, "__esModule", {
  508. value : true
  509. });
  510. var makeArray = function() {
  511. /**
  512. * @param {Function} object
  513. * @param {Array} d
  514. * @return {undefined}
  515. */
  516. function defineProperty(object, d) {
  517. /** @type {number} */
  518. var i = 0;
  519. for (;i < d.length;i++) {
  520. var desc = d[i];
  521. desc.enumerable = desc.enumerable || false;
  522. /** @type {boolean} */
  523. desc.configurable = true;
  524. if ("value" in desc) {
  525. /** @type {boolean} */
  526. desc.writable = true;
  527. }
  528. Object.defineProperty(object, desc.key, desc);
  529. }
  530. }
  531. return function(x, current, a) {
  532. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  533. };
  534. }();
  535. var self = function() {
  536. /**
  537. * @return {undefined}
  538. */
  539. function set() {
  540. posProcess(this, set);
  541. /** @type {number} */
  542. this.type = -1;
  543. /** @type {number} */
  544. this.x = 0;
  545. /** @type {number} */
  546. this.x_ = 0;
  547. /** @type {number} */
  548. this.y = 0;
  549. /** @type {number} */
  550. this.y_ = 0;
  551. /** @type {number} */
  552. this.size = 0;
  553. /** @type {number} */
  554. this.size_ = 0;
  555. /** @type {number} */
  556. this.steps = 0;
  557. }
  558. return makeArray(set, [{
  559. key : "setX",
  560. /**
  561. * @param {number} object
  562. * @return {undefined}
  563. */
  564. value : function(object) {
  565. /** @type {number} */
  566. this.x_ = object;
  567. /** @type {number} */
  568. this.x = object;
  569. }
  570. }, {
  571. key : "setY",
  572. /**
  573. * @param {number} object
  574. * @return {undefined}
  575. */
  576. value : function(object) {
  577. /** @type {number} */
  578. this.y_ = object;
  579. /** @type {number} */
  580. this.y = object;
  581. }
  582. }, {
  583. key : "setSize",
  584. /**
  585. * @param {number} object
  586. * @return {undefined}
  587. */
  588. value : function(object) {
  589. /** @type {number} */
  590. this.size_ = object;
  591. /** @type {number} */
  592. this.size = object;
  593. }
  594. }, {
  595. key : "getMass",
  596. /**
  597. * @return {?}
  598. */
  599. value : function() {
  600. return this.size * this.size / 100 >> 0;
  601. }
  602. }, {
  603. key : "getRealMass",
  604. /**
  605. * @return {?}
  606. */
  607. value : function() {
  608. return this.size_ * this.size_ / 100 >> 0;
  609. }
  610. }, {
  611. key : "animate",
  612. /**
  613. * @param {number} object
  614. * @return {undefined}
  615. */
  616. value : function(object) {
  617. if (this.steps > 0) {
  618. this.x += (this.x_ - this.x) * object;
  619. this.y += (this.y_ - this.y) * object;
  620. this.size += (this.size_ - this.size) * object;
  621. this.steps--;
  622. }
  623. }
  624. }]), set;
  625. }();
  626. object.default = self;
  627. Object.assign(self.prototype, {
  628. color : null,
  629. pId : -1,
  630. team : "",
  631. name : "",
  632. skin : "",
  633. img : null,
  634. nameColor : "#fff"
  635. });
  636. }, function(dataAndEvents, object, require) {
  637. /**
  638. * @param {?} dataAndEvents
  639. * @param {Function} init
  640. * @return {undefined}
  641. */
  642. function animate(dataAndEvents, init) {
  643. if (!(dataAndEvents instanceof init)) {
  644. throw new TypeError("Cannot call a class as a function");
  645. }
  646. }
  647. Object.defineProperty(object, "__esModule", {
  648. value : true
  649. });
  650. object.default = void 0;
  651. var make = function() {
  652. /**
  653. * @param {Function} proto
  654. * @param {?} name
  655. * @return {undefined}
  656. */
  657. function defineProperty(proto, name) {
  658. /** @type {number} */
  659. var i = 0;
  660. for (;i < name.length;i++) {
  661. var desc = name[i];
  662. desc.enumerable = desc.enumerable || false;
  663. /** @type {boolean} */
  664. desc.configurable = true;
  665. if ("value" in desc) {
  666. /** @type {boolean} */
  667. desc.writable = true;
  668. }
  669. Object.defineProperty(proto, desc.key, desc);
  670. }
  671. }
  672. return function(context, name, tag) {
  673. return name && defineProperty(context.prototype, name), tag && defineProperty(context, tag), context;
  674. };
  675. }();
  676. var Block = require(3);
  677. var Type = function() {
  678. /**
  679. * @param {string} server
  680. * @param {?} theGame
  681. * @return {undefined}
  682. */
  683. function init(server, theGame) {
  684. animate(this, init);
  685. /** @type {number} */
  686. this.reconnectTries = 0;
  687. /** @type {null} */
  688. this.socket = null;
  689. /** @type {string} */
  690. this.server = server;
  691. this.game = theGame;
  692. this.writer = new Block.BufferWriter;
  693. /** @type {Array} */
  694. this.timers = [];
  695. /** @type {number} */
  696. this.pId = -1;
  697. /** @type {string} */
  698. this.team = "";
  699. /** @type {string} */
  700. this.name = "";
  701. /** @type {string} */
  702. this.skin = "";
  703. /** @type {boolean} */
  704. this.spectating = false;
  705. /** @type {boolean} */
  706. this.wPress = false;
  707. /** @type {number} */
  708. this.lineSplit = 0;
  709. /** @type {null} */
  710. this.border = null;
  711. /** @type {number} */
  712. this.centerX = 0;
  713. /** @type {number} */
  714. this.centerY = 0;
  715. /** @type {number} */
  716. this.centerX_ = 0;
  717. /** @type {number} */
  718. this.centerY_ = 0;
  719. /** @type {number} */
  720. this.centerSteps = 30;
  721. /** @type {number} */
  722. this.scaleBase = 0;
  723. this.bucket = new Map;
  724. this.ownCells = new Map;
  725. /** @type {Array} */
  726. this.party = [];
  727. this.partyIds = new Map;
  728. /** @type {number} */
  729. this.pingedTime = 0;
  730. }
  731. return make(init, [{
  732. key : "normalizeName",
  733. /**
  734. * @param {number} object
  735. * @return {?}
  736. */
  737. value : function(object) {
  738. return object || "An unnamed cell";
  739. }
  740. }, {
  741. key : "animate",
  742. /**
  743. * @param {number} object
  744. * @return {undefined}
  745. */
  746. value : function(object) {
  747. if (this.centerSteps > 0) {
  748. this.centerX += (this.centerX_ - this.centerX) * object;
  749. this.centerY += (this.centerY_ - this.centerY) * object;
  750. }
  751. this.centerSteps--;
  752. }
  753. }, {
  754. key : "connect",
  755. /**
  756. * @return {undefined}
  757. */
  758. value : function() {
  759. var self = this;
  760. if (this.isConnected()) {
  761. if (this.spectating) {
  762. this.sendSpectate();
  763. } else {
  764. this.sendPlay();
  765. }
  766. } else {
  767. if (this.server) {
  768. this.socket = this.game.recorder.createSocket(this);
  769. /** @type {string} */
  770. this.socket.binaryType = "arraybuffer";
  771. this.socket.onopen = this.onConnect.bind(this);
  772. this.socket.onmessage = this.onMessage.bind(this);
  773. /**
  774. * @return {undefined}
  775. */
  776. this.socket.onclose = function() {
  777. /** @type {boolean} */
  778. var callback2 = true;
  779. /** @type {boolean} */
  780. var n = false;
  781. var bulk = void 0;
  782. try {
  783. var right;
  784. var tree = self.timers[Symbol.iterator]();
  785. for (;!(callback2 = (right = tree.next()).done);callback2 = true) {
  786. var b = right.value;
  787. clearInterval(b);
  788. }
  789. } catch (fn) {
  790. /** @type {boolean} */
  791. n = true;
  792. bulk = fn;
  793. } finally {
  794. try {
  795. if (!callback2) {
  796. if (tree.return) {
  797. tree.return();
  798. }
  799. }
  800. } finally {
  801. if (n) {
  802. throw bulk;
  803. }
  804. }
  805. }
  806. /** @type {number} */
  807. self.timers.length = 0;
  808. self.bucket.clear();
  809. self.ownCells.clear();
  810. /** @type {number} */
  811. self.party.length = 0;
  812. self.partyIds.clear();
  813. self.game.onDisconnect(self);
  814. setTimeout(self.connect.bind(self), 1E3 * Math.min(Math.pow(2, self.reconnectTries++), 60));
  815. };
  816. /**
  817. * @return {?}
  818. */
  819. this.socket.onerror = function() {
  820. return self.game.onConnectError();
  821. };
  822. }
  823. }
  824. }
  825. }, {
  826. key : "disconnect",
  827. /**
  828. * @return {undefined}
  829. */
  830. value : function() {
  831. /** @type {null} */
  832. this.server = null;
  833. if (this.socket) {
  834. this.socket.close();
  835. }
  836. }
  837. }, {
  838. key : "isConnected",
  839. /**
  840. * @return {?}
  841. */
  842. value : function() {
  843. return this.socket && this.socket.readyState == WebSocket.OPEN;
  844. }
  845. }, {
  846. key : "onConnect",
  847. /**
  848. * @return {undefined}
  849. */
  850. value : function() {
  851. /** @type {number} */
  852. this.reconnectTries = 0;
  853. this.sendConnectionStart();
  854. this.sendPing();
  855. this.timers.push(setInterval(this.sendPing.bind(this), 3E4));
  856. this.connect();
  857. }
  858. }, {
  859. key : "play",
  860. /**
  861. * @param {number} object
  862. * @param {number} expectedNumberOfNonCommentArgs
  863. * @param {?} event
  864. * @return {undefined}
  865. */
  866. value : function(object, expectedNumberOfNonCommentArgs, event) {
  867. /** @type {boolean} */
  868. this.spectating = false;
  869. /** @type {number} */
  870. this.team = object;
  871. /** @type {number} */
  872. this.name = expectedNumberOfNonCommentArgs;
  873. this.skin = event;
  874. this.connect();
  875. }
  876. }, {
  877. key : "spectate",
  878. /**
  879. * @param {number} object
  880. * @param {number} expectedNumberOfNonCommentArgs
  881. * @param {number} event
  882. * @return {undefined}
  883. */
  884. value : function(object, expectedNumberOfNonCommentArgs, event) {
  885. /** @type {boolean} */
  886. this.spectating = true;
  887. /** @type {number} */
  888. this.team = object;
  889. /** @type {number} */
  890. this.name = expectedNumberOfNonCommentArgs;
  891. /** @type {number} */
  892. this.skin = event;
  893. this.connect();
  894. }
  895. }, {
  896. key : "sendPacket",
  897. /**
  898. * @param {number} object
  899. * @return {undefined}
  900. */
  901. value : function(object) {
  902. if (this.isConnected()) {
  903. this.socket.send(object);
  904. }
  905. }
  906. }, {
  907. key : "sendConnectionStart",
  908. /**
  909. * @return {undefined}
  910. */
  911. value : function() {
  912. }
  913. }, {
  914. key : "sendPlay",
  915. /**
  916. * @return {undefined}
  917. */
  918. value : function() {
  919. }
  920. }, {
  921. key : "sendSpectate",
  922. /**
  923. * @return {undefined}
  924. */
  925. value : function() {
  926. }
  927. }, {
  928. key : "sendPing",
  929. /**
  930. * @return {undefined}
  931. */
  932. value : function() {
  933. /** @type {number} */
  934. this.pingedTime = Date.now();
  935. }
  936. }, {
  937. key : "sendSpace",
  938. /**
  939. * @return {undefined}
  940. */
  941. value : function() {
  942. }
  943. }, {
  944. key : "sendW",
  945. /**
  946. * @return {undefined}
  947. */
  948. value : function() {
  949. }
  950. }, {
  951. key : "sendTab",
  952. /**
  953. * @return {undefined}
  954. */
  955. value : function() {
  956. }
  957. }, {
  958. key : "sendAutoChase",
  959. /**
  960. * @return {undefined}
  961. */
  962. value : function() {
  963. }
  964. }, {
  965. key : "sendMouse",
  966. /**
  967. * @param {number} object
  968. * @param {number} expectedNumberOfNonCommentArgs
  969. * @return {undefined}
  970. */
  971. value : function(object, expectedNumberOfNonCommentArgs) {
  972. }
  973. }, {
  974. key : "sendChat",
  975. /**
  976. * @param {number} object
  977. * @param {number} expectedNumberOfNonCommentArgs
  978. * @return {undefined}
  979. */
  980. value : function(object, expectedNumberOfNonCommentArgs) {
  981. }
  982. }, {
  983. key : "sendInviteResponse",
  984. /**
  985. * @param {number} object
  986. * @return {undefined}
  987. */
  988. value : function(object) {
  989. }
  990. }, {
  991. key : "sendPartyAction",
  992. /**
  993. * @param {number} object
  994. * @param {number} expectedNumberOfNonCommentArgs
  995. * @return {undefined}
  996. */
  997. value : function(object, expectedNumberOfNonCommentArgs) {
  998. }
  999. }, {
  1000. key : "sendWhisper",
  1001. /**
  1002. * @param {number} object
  1003. * @param {number} expectedNumberOfNonCommentArgs
  1004. * @return {undefined}
  1005. */
  1006. value : function(object, expectedNumberOfNonCommentArgs) {
  1007. }
  1008. }, {
  1009. key : "onMessage",
  1010. /**
  1011. * @param {number} object
  1012. * @return {undefined}
  1013. */
  1014. value : function(object) {
  1015. }
  1016. }, {
  1017. key : "handleUpdate",
  1018. /**
  1019. * @param {number} object
  1020. * @return {undefined}
  1021. */
  1022. value : function(object) {
  1023. }
  1024. }, {
  1025. key : "onSendMessage",
  1026. /**
  1027. * @param {number} object
  1028. * @return {undefined}
  1029. */
  1030. value : function(object) {
  1031. }
  1032. }]), init;
  1033. }();
  1034. object.default = Type;
  1035. /** @type {number} */
  1036. Type.prototype.actionTicks = 0;
  1037. }, function(dataAndEvents, object, deepDataAndEvents) {
  1038. /**
  1039. * @param {number} results
  1040. * @return {?}
  1041. */
  1042. function makeArray(results) {
  1043. if (Array.isArray(results)) {
  1044. /** @type {number} */
  1045. var i = 0;
  1046. /** @type {Array} */
  1047. var result = Array(results.length);
  1048. for (;i < results.length;i++) {
  1049. result[i] = results[i];
  1050. }
  1051. return result;
  1052. }
  1053. return Array.from(results);
  1054. }
  1055. /**
  1056. * @param {?} dataAndEvents
  1057. * @param {Function} init
  1058. * @return {undefined}
  1059. */
  1060. function animate(dataAndEvents, init) {
  1061. if (!(dataAndEvents instanceof init)) {
  1062. throw new TypeError("Cannot call a class as a function");
  1063. }
  1064. }
  1065. Object.defineProperty(object, "__esModule", {
  1066. value : true
  1067. });
  1068. var fn = function() {
  1069. /**
  1070. * @param {Arguments} object
  1071. * @param {number} deepDataAndEvents
  1072. * @return {?}
  1073. */
  1074. function clone(object, deepDataAndEvents) {
  1075. /** @type {Array} */
  1076. var res = [];
  1077. /** @type {boolean} */
  1078. var callback2 = true;
  1079. /** @type {boolean} */
  1080. var i = false;
  1081. var bulk = void 0;
  1082. try {
  1083. var next;
  1084. var self = object[Symbol.iterator]();
  1085. for (;!(callback2 = (next = self.next()).done) && (res.push(next.value), !deepDataAndEvents || res.length !== deepDataAndEvents);callback2 = true) {
  1086. }
  1087. } catch (fn) {
  1088. /** @type {boolean} */
  1089. i = true;
  1090. bulk = fn;
  1091. } finally {
  1092. try {
  1093. if (!callback2) {
  1094. if (self.return) {
  1095. self.return();
  1096. }
  1097. }
  1098. } finally {
  1099. if (i) {
  1100. throw bulk;
  1101. }
  1102. }
  1103. }
  1104. return res;
  1105. }
  1106. return function(which, deepDataAndEvents) {
  1107. if (Array.isArray(which)) {
  1108. return which;
  1109. }
  1110. if (Symbol.iterator in Object(which)) {
  1111. return clone(which, deepDataAndEvents);
  1112. }
  1113. throw new TypeError("Invalid attempt to destructure non-iterable instance");
  1114. };
  1115. }();
  1116. var make = function() {
  1117. /**
  1118. * @param {Function} object
  1119. * @param {?} d
  1120. * @return {undefined}
  1121. */
  1122. function defineProperty(object, d) {
  1123. /** @type {number} */
  1124. var i = 0;
  1125. for (;i < d.length;i++) {
  1126. var desc = d[i];
  1127. desc.enumerable = desc.enumerable || false;
  1128. /** @type {boolean} */
  1129. desc.configurable = true;
  1130. if ("value" in desc) {
  1131. /** @type {boolean} */
  1132. desc.writable = true;
  1133. }
  1134. Object.defineProperty(object, desc.key, desc);
  1135. }
  1136. }
  1137. return function(x, current, a) {
  1138. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  1139. };
  1140. }();
  1141. var self = function() {
  1142. /**
  1143. * @param {?} theGame
  1144. * @return {undefined}
  1145. */
  1146. function init(theGame) {
  1147. animate(this, init);
  1148. this.game = theGame;
  1149. /** @type {number} */
  1150. this.score = 0;
  1151. /** @type {number} */
  1152. this.partyScore = 0;
  1153. /** @type {number} */
  1154. this.tsMass = 0;
  1155. /** @type {number} */
  1156. this.cellNum = 0;
  1157. this.cells = new Map;
  1158. this.masses = new Map;
  1159. }
  1160. return make(init, [{
  1161. key : "update",
  1162. /**
  1163. * @return {undefined}
  1164. */
  1165. value : function() {
  1166. var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];
  1167. this.updateCells();
  1168. this.updateCellNum();
  1169. this.updateMass();
  1170. this.updateScore();
  1171. this.updatePartyScore();
  1172. if (e) {
  1173. this.updateTS();
  1174. }
  1175. }
  1176. }, {
  1177. key : "updateCells",
  1178. /**
  1179. * @return {undefined}
  1180. */
  1181. value : function() {
  1182. this.cells.clear();
  1183. /** @type {boolean} */
  1184. var callback2 = true;
  1185. /** @type {boolean} */
  1186. var t = false;
  1187. var bulk = void 0;
  1188. try {
  1189. var tok;
  1190. var self = this.game.clients[Symbol.iterator]();
  1191. for (;!(callback2 = (tok = self.next()).done);callback2 = true) {
  1192. var obj = tok.value;
  1193. this.cells.set(obj, [].concat(makeArray(obj.ownCells.values())));
  1194. }
  1195. } catch (fn) {
  1196. /** @type {boolean} */
  1197. t = true;
  1198. bulk = fn;
  1199. } finally {
  1200. try {
  1201. if (!callback2) {
  1202. if (self.return) {
  1203. self.return();
  1204. }
  1205. }
  1206. } finally {
  1207. if (t) {
  1208. throw bulk;
  1209. }
  1210. }
  1211. }
  1212. }
  1213. }, {
  1214. key : "updateCellNum",
  1215. /**
  1216. * @return {undefined}
  1217. */
  1218. value : function() {
  1219. this.cellNum = this.game.activeClient ? this.game.activeClient.ownCells.size : 0;
  1220. }
  1221. }, {
  1222. key : "updateMass",
  1223. /**
  1224. * @return {undefined}
  1225. */
  1226. value : function() {
  1227. this.masses.clear();
  1228. /** @type {boolean} */
  1229. var callback2 = true;
  1230. /** @type {boolean} */
  1231. var t = false;
  1232. var _clockseq = void 0;
  1233. try {
  1234. var self;
  1235. var tree = this.cells.entries()[Symbol.iterator]();
  1236. for (;!(callback2 = (self = tree.next()).done);callback2 = true) {
  1237. var matched = fn(self.value, 2);
  1238. var cacheKey = matched[0];
  1239. var params = matched[1];
  1240. this.masses.set(cacheKey, params.reduce(function(deepDataAndEvents, dataAndEvents) {
  1241. return deepDataAndEvents + dataAndEvents.getRealMass();
  1242. }, 0));
  1243. }
  1244. } catch (clockseq) {
  1245. /** @type {boolean} */
  1246. t = true;
  1247. _clockseq = clockseq;
  1248. } finally {
  1249. try {
  1250. if (!callback2) {
  1251. if (tree.return) {
  1252. tree.return();
  1253. }
  1254. }
  1255. } finally {
  1256. if (t) {
  1257. throw _clockseq;
  1258. }
  1259. }
  1260. }
  1261. }
  1262. }, {
  1263. key : "updateScore",
  1264. /**
  1265. * @return {undefined}
  1266. */
  1267. value : function() {
  1268. /** @type {boolean} */
  1269. var callback2 = true;
  1270. /** @type {boolean} */
  1271. var t = false;
  1272. var bulk = void 0;
  1273. try {
  1274. var options;
  1275. var self = this.masses.values()[Symbol.iterator]();
  1276. for (;!(callback2 = (options = self.next()).done);callback2 = true) {
  1277. var which = options.value;
  1278. /** @type {number} */
  1279. this.score = Math.max(which, this.score);
  1280. }
  1281. } catch (fn) {
  1282. /** @type {boolean} */
  1283. t = true;
  1284. bulk = fn;
  1285. } finally {
  1286. try {
  1287. if (!callback2) {
  1288. if (self.return) {
  1289. self.return();
  1290. }
  1291. }
  1292. } finally {
  1293. if (t) {
  1294. throw bulk;
  1295. }
  1296. }
  1297. }
  1298. }
  1299. }, {
  1300. key : "updatePartyScore",
  1301. /**
  1302. * @return {undefined}
  1303. */
  1304. value : function() {
  1305. /** @type {number} */
  1306. this.partyScore = Math.max(this.game.party.reduce(function(sum, e) {
  1307. return sum + e.mass;
  1308. }, 0) || 0, this.partyScore);
  1309. }
  1310. }, {
  1311. key : "updateTS",
  1312. /**
  1313. * @return {undefined}
  1314. */
  1315. value : function() {
  1316. return;
  1317. }
  1318. }]), init;
  1319. }();
  1320. object.default = self;
  1321. /** @type {Array} */
  1322. self.rolling = ["score", "partyScore"];
  1323. }, function(dataAndEvents, object, deepDataAndEvents) {
  1324. /**
  1325. * @param {?} value
  1326. * @return {undefined}
  1327. */
  1328. function set(value) {
  1329. /** @type {Element} */
  1330. var element = document.createElement("textarea");
  1331. element.value = value;
  1332. document.body.appendChild(element);
  1333. element.select();
  1334. document.execCommand("copy");
  1335. document.body.removeChild(element);
  1336. }
  1337. Object.defineProperty(object, "__esModule", {
  1338. value : true
  1339. });
  1340. /** @type {function (?): undefined} */
  1341. object.default = set;
  1342. }, function(dataAndEvents, object, deepDataAndEvents) {
  1343. /**
  1344. * @param {number} dataAndEvents
  1345. * @param {number} to
  1346. * @param {number} deepDataAndEvents
  1347. * @param {number} from
  1348. * @param {number} events
  1349. * @param {number} keepData
  1350. * @return {?}
  1351. */
  1352. function clone(dataAndEvents, to, deepDataAndEvents, from, events, keepData) {
  1353. /** @type {number} */
  1354. var x0 = events - deepDataAndEvents;
  1355. /** @type {number} */
  1356. var x1 = keepData - from;
  1357. /** @type {number} */
  1358. var Vd = x0 * x0 + x1 * x1;
  1359. if (0 == Vd) {
  1360. return[deepDataAndEvents, from];
  1361. }
  1362. /** @type {number} */
  1363. var z2 = dataAndEvents - deepDataAndEvents;
  1364. /** @type {number} */
  1365. var change = to - from;
  1366. /** @type {number} */
  1367. var t = (z2 * x0 + change * x1) / Vd;
  1368. return t < 0 ? [deepDataAndEvents, from] : t > 1 ? [events, keepData] : [deepDataAndEvents + t * x0, from + t * x1];
  1369. }
  1370. /**
  1371. * @param {number} start
  1372. * @param {number} min
  1373. * @param {number} end
  1374. * @param {number} value
  1375. * @param {number} max
  1376. * @return {?}
  1377. */
  1378. function random(start, min, end, value, max) {
  1379. return end > max ? (value = (value - min) / (end - start) * (max - start) + min, end = max) : end < -max && (value = (value - min) / (end - start) * (-max - start) + min, end = -max), value > max ? (end = (end - start) / (value - min) * (max - min) + start, value = max) : value < -max && (end = (end - start) / (value - min) * (-max - min) + start, value = -max), [end, value];
  1380. }
  1381. Object.defineProperty(object, "__esModule", {
  1382. value : true
  1383. });
  1384. /** @type {function (number, number, number, number, number, number): ?} */
  1385. object.projPtToSeg = clone;
  1386. /** @type {function (number, number, number, number, number): ?} */
  1387. object.clipSegBound = random;
  1388. }, function(dataAndEvents, ctx, deepDataAndEvents) {
  1389. /**
  1390. * @param {number} event
  1391. * @return {?}
  1392. */
  1393. function s(event) {
  1394. /** @type {string} */
  1395. var node = "0123456789abcdef";
  1396. return node[event >> 4 & 15] + node[15 & event];
  1397. }
  1398. /**
  1399. * @param {number} el
  1400. * @param {number} c
  1401. * @param {number} key
  1402. * @return {?}
  1403. */
  1404. function color(el, c, key) {
  1405. return "#" + s(el) + s(c) + s(key);
  1406. }
  1407. /**
  1408. * @param {string} template
  1409. * @return {?}
  1410. */
  1411. function parse(template) {
  1412. return[parseInt(template.substr(1, 2), 16), parseInt(template.substr(3, 2), 16), parseInt(template.substr(5, 2), 16)];
  1413. }
  1414. Object.defineProperty(ctx, "__esModule", {
  1415. value : true
  1416. });
  1417. /** @type {function (number): ?} */
  1418. ctx.byteToHex = s;
  1419. /** @type {function (number, number, number): ?} */
  1420. ctx.colorToHex = color;
  1421. /** @type {function (string): ?} */
  1422. ctx.hexToColor = parse;
  1423. }, function(module, dataAndEvents) {
  1424. module.exports = ReactDOM;
  1425. }, function(module, dataAndEvents) {
  1426. module.exports = classNames;
  1427. }, function(value, dataAndEvents) {
  1428. value.exports = window["rc-slider"];
  1429. }, function(module, dataAndEvents, deepDataAndEvents) {
  1430. module.exports = {
  1431. css : ["https://unpkg.com/emoji-mart@0.4.3/css/emoji-mart.css", "https://unpkg.com/font-awesome@4.7.0/css/font-awesome.min.css", "https://unpkg.com/normalize.css@5.0.0/normalize.css", "https://unpkg.com/rc-color-picker@1.1.3/dist/rc-color-picker.min.css", "https://unpkg.com/rc-slider@5.4.3/dist/rc-slider.min.css"],
  1432. js : ["https://unpkg.com/classnames@2.2.5", "https://unpkg.com/crc-32@1.0.1", "https://unpkg.com/dexie@1.5.1/dist/dexie.min.js", "https://unpkg.com/pako@1.0.4/dist/pako.min.js", "https://unpkg.com/react@15.4.2/dist/react.min.js", "https://unpkg.com/react-dom@15.4.2/dist/react-dom.min.js", "https://unpkg.com/mobx@3.1.0/lib/mobx.umd.min.js", "https://unpkg.com/mobx-react@4.1.0/index.min.js", "https://unpkg.com/emoji-mart@0.4.3/dist/emoji-mart.min.js", "https://unpkg.com/rc-color-picker@1.1.3/dist/rc-color-picker.min.js",
  1433. "https://unpkg.com/rc-slider@5.4.3/dist/rc-slider.min.js", "https://unpkg.com/react-contextmenu@2.2.1/dist/react-contextmenu.js", "https://unpkg.com/react-infinite@0.10.0/dist/react-infinite.min.js", "https://unpkg.com/react-reorder@2.1.0", "https://unpkg.com/react-tabs@0.8.2/dist/react-tabs.min.js"],
  1434. test : ["https://unpkg.com/chai@4.0.0-canary.1/chai.js", "https://unpkg.com/fake-indexeddb@1.0.11/dist/fakeIndexedDB.js", "https://unpkg.com/mock-socket@6.0.4/dist/mock-socket.js", "https://unpkg.com/sinon@2.0.0-pre.5/pkg/sinon.js"]
  1435. };
  1436. }, function(dataAndEvents, obj, $) {
  1437. /**
  1438. * @param {Function} type
  1439. * @return {?}
  1440. */
  1441. function require(type) {
  1442. return type && type.__esModule ? type : {
  1443. /** @type {Function} */
  1444. default : type
  1445. };
  1446. }
  1447. /**
  1448. * @param {number} results
  1449. * @return {?}
  1450. */
  1451. function makeArray(results) {
  1452. if (Array.isArray(results)) {
  1453. /** @type {number} */
  1454. var i = 0;
  1455. /** @type {Array} */
  1456. var result = Array(results.length);
  1457. for (;i < results.length;i++) {
  1458. result[i] = results[i];
  1459. }
  1460. return result;
  1461. }
  1462. return Array.from(results);
  1463. }
  1464. /**
  1465. * @param {Function} matcherFunction
  1466. * @return {?}
  1467. */
  1468. function compose(matcherFunction) {
  1469. return function() {
  1470. var a = matcherFunction.apply(this, arguments);
  1471. return new Promise(function(isNumber, fire) {
  1472. /**
  1473. * @param {string} action
  1474. * @param {?} elem
  1475. * @return {?}
  1476. */
  1477. function next(action, elem) {
  1478. try {
  1479. var q = a[action](elem);
  1480. var val = q.value;
  1481. } catch (memory) {
  1482. return void fire(memory);
  1483. }
  1484. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  1485. next("next", arg);
  1486. }, function(arg) {
  1487. next("throw", arg);
  1488. });
  1489. }
  1490. return next("next");
  1491. });
  1492. };
  1493. }
  1494. /**
  1495. * @param {?} dataAndEvents
  1496. * @param {Function} init
  1497. * @return {undefined}
  1498. */
  1499. function animate(dataAndEvents, init) {
  1500. if (!(dataAndEvents instanceof init)) {
  1501. throw new TypeError("Cannot call a class as a function");
  1502. }
  1503. }
  1504. /**
  1505. * @param {string} dataAndEvents
  1506. * @param {?} deepDataAndEvents
  1507. * @return {?}
  1508. */
  1509. function clone(dataAndEvents, deepDataAndEvents) {
  1510. if (!dataAndEvents) {
  1511. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  1512. }
  1513. return!deepDataAndEvents || "object" != typeof deepDataAndEvents && "function" != typeof deepDataAndEvents ? dataAndEvents : deepDataAndEvents;
  1514. }
  1515. /**
  1516. * @param {Object} fn
  1517. * @param {Object} extend
  1518. * @return {undefined}
  1519. */
  1520. function create(fn, extend) {
  1521. if ("function" != typeof extend && null !== extend) {
  1522. throw new TypeError("Super expression must either be null or a function, not " + typeof extend);
  1523. }
  1524. /** @type {Object} */
  1525. fn.prototype = Object.create(extend && extend.prototype, {
  1526. constructor : {
  1527. value : fn,
  1528. enumerable : false,
  1529. writable : true,
  1530. configurable : true
  1531. }
  1532. });
  1533. if (extend) {
  1534. if (Object.setPrototypeOf) {
  1535. Object.setPrototypeOf(fn, extend);
  1536. } else {
  1537. /** @type {Object} */
  1538. fn.__proto__ = extend;
  1539. }
  1540. }
  1541. }
  1542. Object.defineProperty(obj, "__esModule", {
  1543. value : true
  1544. });
  1545. obj.default = void 0;
  1546. var declare = Object.assign || function(opt_attributes) {
  1547. /** @type {number} */
  1548. var i = 1;
  1549. for (;i < arguments.length;i++) {
  1550. var iterable = arguments[i];
  1551. var key;
  1552. for (key in iterable) {
  1553. if (Object.prototype.hasOwnProperty.call(iterable, key)) {
  1554. opt_attributes[key] = iterable[key];
  1555. }
  1556. }
  1557. }
  1558. return opt_attributes;
  1559. };
  1560. var traverse = function() {
  1561. /**
  1562. * @param {Arguments} object
  1563. * @param {number} deepDataAndEvents
  1564. * @return {?}
  1565. */
  1566. function clone(object, deepDataAndEvents) {
  1567. /** @type {Array} */
  1568. var res = [];
  1569. /** @type {boolean} */
  1570. var callback2 = true;
  1571. /** @type {boolean} */
  1572. var i = false;
  1573. var bulk = void 0;
  1574. try {
  1575. var next;
  1576. var self = object[Symbol.iterator]();
  1577. for (;!(callback2 = (next = self.next()).done) && (res.push(next.value), !deepDataAndEvents || res.length !== deepDataAndEvents);callback2 = true) {
  1578. }
  1579. } catch (fn) {
  1580. /** @type {boolean} */
  1581. i = true;
  1582. bulk = fn;
  1583. } finally {
  1584. try {
  1585. if (!callback2) {
  1586. if (self.return) {
  1587. self.return();
  1588. }
  1589. }
  1590. } finally {
  1591. if (i) {
  1592. throw bulk;
  1593. }
  1594. }
  1595. }
  1596. return res;
  1597. }
  1598. return function(which, deepDataAndEvents) {
  1599. if (Array.isArray(which)) {
  1600. return which;
  1601. }
  1602. if (Symbol.iterator in Object(which)) {
  1603. return clone(which, deepDataAndEvents);
  1604. }
  1605. throw new TypeError("Invalid attempt to destructure non-iterable instance");
  1606. };
  1607. }();
  1608. var make = function() {
  1609. /**
  1610. * @param {Function} object
  1611. * @param {Array} d
  1612. * @return {undefined}
  1613. */
  1614. function defineProperty(object, d) {
  1615. /** @type {number} */
  1616. var i = 0;
  1617. for (;i < d.length;i++) {
  1618. var desc = d[i];
  1619. desc.enumerable = desc.enumerable || false;
  1620. /** @type {boolean} */
  1621. desc.configurable = true;
  1622. if ("value" in desc) {
  1623. /** @type {boolean} */
  1624. desc.writable = true;
  1625. }
  1626. Object.defineProperty(object, desc.key, desc);
  1627. }
  1628. }
  1629. return function(x, current, a) {
  1630. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  1631. };
  1632. }();
  1633. var env = $(12);
  1634. var features = require(env);
  1635. var outer = $(2);
  1636. var p = $(28);
  1637. var property = require(p);
  1638. var type = $(30);
  1639. var attr = require(type);
  1640. var file = $(8);
  1641. var options = require(file);
  1642. var n = $(42);
  1643. var c = require(n);
  1644. var session = $(4);
  1645. var module = $(29);
  1646. var value = function(options) {
  1647. /**
  1648. * @return {?}
  1649. */
  1650. function init() {
  1651. var self;
  1652. animate(this, init);
  1653. self = clone(this, (init.__proto__ || Object.getPrototypeOf(init)).call(this));
  1654. /** @type {null} */
  1655. self.activeClient = self.passiveClient = self.spectateClient = null;
  1656. /** @type {Array} */
  1657. self.clients = [];
  1658. self.recorder = new module.Recorder(self);
  1659. self.skins = new attr.default(session.clients.normalizeNames);
  1660. var s = features.default.render((self = this, React.createElement(c.default, {
  1661. recorder : this.recorder,
  1662. skins : this.skins,
  1663. onPlay : this.onPlay.bind(this),
  1664. onSpectate : this.onSpectate.bind(this),
  1665. findCell : this.findCell.bind(this),
  1666. /**
  1667. * @return {?}
  1668. */
  1669. getClient : function() {
  1670. return self.activeClient;
  1671. }
  1672. })), document.body);
  1673. return self.ui = s.refs.provider.props, (0, outer.observe)(self.ui.options, self.updateClients.bind(self)), self.chat = s.refs.chat.wrappedInstance, self.canvas = s.refs.canvas, self.ctx = self.canvas.getContext("2d"), self.sorted = [], self.isSorted = true, self.border = null, self.scaleBase = 1, self.scale = 1, self.scale_ = 1, self.mouseZoom = 1, self.offsetX = 0, self.offsetY = 0, self.mouseRawX = 0, self.mouseRawY = 0, self.tsInd = false, self.pIds = [], self.leaderboards = new Map, self.party =
  1674. [], self.partyIds = new Set, self.stats = new options.default(self), self.nameCache = new Map, self.nameCacheUpdate = Date.now(), self.prevTime = Date.now(), self.fpsDelta = 0, self.fpsCounter = 0, window.requestAnimationFrame(self.tick.bind(self)), self;
  1675. }
  1676. return create(init, options), make(init, [{
  1677. key : "updateServer",
  1678. value : function() {
  1679. /**
  1680. * @return {?}
  1681. */
  1682. function view() {
  1683. return matcherFunction.apply(this, arguments);
  1684. }
  1685. var matcherFunction = compose(regeneratorRuntime.mark(function init() {
  1686. return regeneratorRuntime.wrap(function(current) {
  1687. for (;;) {
  1688. switch(current.prev = current.next) {
  1689. case 0:
  1690. if (!this.recorder.reader) {
  1691. /** @type {number} */
  1692. current.next = 5;
  1693. break;
  1694. }
  1695. return current.next = 3, this.recorder.stop();
  1696. case 3:
  1697. this.onDisconnect();
  1698. /** @type {string} */
  1699. this.ui.recordings.state = "";
  1700. case 5:
  1701. if (this.ui.servers.selected != this.ui.servers.current) {
  1702. this.stats = new options.default(this);
  1703. this.updateClients();
  1704. this.ui.servers.current = this.ui.servers.selected;
  1705. }
  1706. ;
  1707. case 6:
  1708. ;
  1709. case "end":
  1710. return current.stop();
  1711. }
  1712. }
  1713. }, init, this);
  1714. }));
  1715. return view;
  1716. }()
  1717. }, {
  1718. key : "updateClients",
  1719. /**
  1720. * @return {undefined}
  1721. */
  1722. value : function() {
  1723. if (!this.recorder.reader) {
  1724. var data = void 0;
  1725. /** @type {boolean} */
  1726. var callback2 = true;
  1727. /** @type {boolean} */
  1728. var n = false;
  1729. var bulk = void 0;
  1730. try {
  1731. var _ref;
  1732. var self = this.ui.servers.servers[Symbol.iterator]();
  1733. for (;!(callback2 = (_ref = self.next()).done);callback2 = true) {
  1734. var message = _ref.value;
  1735. if (message.name == this.ui.servers.selected) {
  1736. data = message.address;
  1737. }
  1738. }
  1739. } catch (fn) {
  1740. /** @type {boolean} */
  1741. n = true;
  1742. bulk = fn;
  1743. } finally {
  1744. try {
  1745. if (!callback2) {
  1746. if (self.return) {
  1747. self.return();
  1748. }
  1749. }
  1750. } finally {
  1751. if (n) {
  1752. throw bulk;
  1753. }
  1754. }
  1755. }
  1756. /** @type {Array} */
  1757. var dst = this.activeClient == this.clients[0] ? ["activeClient", "passiveClient"] : ["passiveClient", "activeClient"];
  1758. var destination = traverse(dst, 2);
  1759. var currValue = destination[0];
  1760. var destinationDom = destination[1];
  1761. /** @type {Array} */
  1762. var codeSegments = [[null, currValue, session.clients.Client], ["enableMultibox", destinationDom, session.clients.MultiboxClient]].concat(makeArray([]));
  1763. /** @type {number} */
  1764. var i = 0;
  1765. for (;i < codeSegments.length;i++) {
  1766. var args = traverse(codeSegments[i], 3);
  1767. var next = args[0];
  1768. var id = args[1];
  1769. var type = args[2];
  1770. var g = !next || this.ui.options[next];
  1771. if (!!this[id]) {
  1772. if (!(g && this.ui.servers.selected == this.ui.servers.current)) {
  1773. this[id].disconnect();
  1774. }
  1775. }
  1776. if (!!g) {
  1777. if (!(this[id] && this.ui.servers.selected == this.ui.servers.current)) {
  1778. this[id] = new type(data, this);
  1779. }
  1780. }
  1781. if (!g) {
  1782. /** @type {null} */
  1783. this[id] = null;
  1784. }
  1785. }
  1786. if (null == this.activeClient) {
  1787. /** @type {Array} */
  1788. var activeClient = [this.passiveClient, this.activeClient];
  1789. this.activeClient = activeClient[0];
  1790. this.passiveClient = activeClient[1];
  1791. }
  1792. /** @type {Array.<?>} */
  1793. this.clients = [this.activeClient, this.passiveClient, this.spectateClient].filter(function(argument) {
  1794. return argument;
  1795. });
  1796. this.recorder.updateClients();
  1797. }
  1798. }
  1799. }, {
  1800. key : "updatePIds",
  1801. /**
  1802. * @return {undefined}
  1803. */
  1804. value : function() {
  1805. this.pIds = this.clients.map(function(dataAndEvents) {
  1806. return dataAndEvents.pId;
  1807. }).filter(function(dataAndEvents) {
  1808. return dataAndEvents != -1;
  1809. });
  1810. this.ui.stats.pId = this.pIds.join(",");
  1811. }
  1812. }, {
  1813. key : "findCell",
  1814. /**
  1815. * @param {number} object
  1816. * @param {number} expectedNumberOfNonCommentArgs
  1817. * @return {?}
  1818. */
  1819. value : function(object, expectedNumberOfNonCommentArgs) {
  1820. /** @type {number} */
  1821. var offsetX = object / this.scale - this.offsetX;
  1822. /** @type {number} */
  1823. var numChars = expectedNumberOfNonCommentArgs / this.scale - this.offsetY;
  1824. /** @type {boolean} */
  1825. var callback2 = true;
  1826. /** @type {boolean} */
  1827. var a = false;
  1828. var bulk = void 0;
  1829. try {
  1830. var elm;
  1831. var self = this.sorted[Symbol.iterator]();
  1832. for (;!(callback2 = (elm = self.next()).done);callback2 = true) {
  1833. var p = elm.value;
  1834. if (p.x - p.size <= offsetX && (offsetX <= p.x + p.size && (p.y - p.size <= numChars && numChars <= p.y + p.size))) {
  1835. return p;
  1836. }
  1837. }
  1838. } catch (fn) {
  1839. /** @type {boolean} */
  1840. a = true;
  1841. bulk = fn;
  1842. } finally {
  1843. try {
  1844. if (!callback2) {
  1845. if (self.return) {
  1846. self.return();
  1847. }
  1848. }
  1849. } finally {
  1850. if (a) {
  1851. throw bulk;
  1852. }
  1853. }
  1854. }
  1855. }
  1856. }, {
  1857. key : "sortCells",
  1858. /**
  1859. * @param {number} object
  1860. * @return {undefined}
  1861. */
  1862. value : function(object) {
  1863. /** @type {Array} */
  1864. this.sorted = [];
  1865. /** @type {number} */
  1866. var offsetX = -this.offsetX;
  1867. /** @type {number} */
  1868. var index = -this.offsetY;
  1869. /** @type {number} */
  1870. var r = this.canvas.width / this.scale - this.offsetX;
  1871. /** @type {number} */
  1872. var stringLength = this.canvas.height / this.scale - this.offsetY;
  1873. var a = void 0;
  1874. if (this.ui.options.hideFood) {
  1875. /** @type {boolean} */
  1876. a = true;
  1877. } else {
  1878. if (this.ui.options.autoHideFood) {
  1879. /** @type {boolean} */
  1880. a = true;
  1881. /** @type {boolean} */
  1882. var callback2 = true;
  1883. /** @type {boolean} */
  1884. var o = false;
  1885. var _clockseq = void 0;
  1886. try {
  1887. var elem;
  1888. var self = this.stats.masses.values()[Symbol.iterator]();
  1889. for (;!(callback2 = (elem = self.next()).done);callback2 = true) {
  1890. var parent = elem.value;
  1891. if (parent / 1E3 < this.ui.options.autoHideFoodVal) {
  1892. /** @type {boolean} */
  1893. a = false;
  1894. }
  1895. }
  1896. } catch (clockseq) {
  1897. /** @type {boolean} */
  1898. o = true;
  1899. _clockseq = clockseq;
  1900. } finally {
  1901. try {
  1902. if (!callback2) {
  1903. if (self.return) {
  1904. self.return();
  1905. }
  1906. }
  1907. } finally {
  1908. if (o) {
  1909. throw _clockseq;
  1910. }
  1911. }
  1912. }
  1913. }
  1914. }
  1915. /** @type {number} */
  1916. var c = 0;
  1917. for (;c < this.clients.length;c++) {
  1918. /** @type {boolean} */
  1919. var _ref1 = true;
  1920. /** @type {boolean} */
  1921. var m = false;
  1922. var bulk = void 0;
  1923. try {
  1924. var _ref;
  1925. var tree = this.clients[c].bucket.entries()[Symbol.iterator]();
  1926. e: for (;!(_ref1 = (_ref = tree.next()).done);_ref1 = true) {
  1927. var resultItems = traverse(_ref.value, 2);
  1928. var result = resultItems[0];
  1929. var view = resultItems[1];
  1930. if (0 != view.type || !a) {
  1931. if (offsetX < view.x + view.size && (r > view.x - view.size && (index < view.y + view.size && stringLength > view.y - view.size))) {
  1932. /** @type {number} */
  1933. var i = 0;
  1934. for (;i < c;i++) {
  1935. if (this.clients[i].bucket.has(result)) {
  1936. view.animate(object);
  1937. continue e;
  1938. }
  1939. }
  1940. this.sorted.push(view);
  1941. } else {
  1942. view.animate(object);
  1943. }
  1944. }
  1945. }
  1946. } catch (fn) {
  1947. /** @type {boolean} */
  1948. m = true;
  1949. bulk = fn;
  1950. } finally {
  1951. try {
  1952. if (!_ref1) {
  1953. if (tree.return) {
  1954. tree.return();
  1955. }
  1956. }
  1957. } finally {
  1958. if (m) {
  1959. throw bulk;
  1960. }
  1961. }
  1962. }
  1963. }
  1964. this.sorted.sort(function(b, a) {
  1965. return a.size - b.size;
  1966. });
  1967. this.stats.update();
  1968. Object.assign(this.ui.stats, this.stats);
  1969. /** @type {boolean} */
  1970. this.isSorted = true;
  1971. }
  1972. }, {
  1973. key : "getNameCache",
  1974. /**
  1975. * @param {number} object
  1976. * @return {?}
  1977. */
  1978. value : function(object) {
  1979. if (!this.nameCache.has(object.team + object.name + object.nameColor)) {
  1980. /** @type {Element} */
  1981. var acanvas = document.createElement("canvas");
  1982. var ctx = acanvas.getContext("2d");
  1983. /** @type {number} */
  1984. var tY = 100;
  1985. /** @type {string} */
  1986. var labelFont = "bold " + tY + "px Verdana";
  1987. /** @type {string} */
  1988. ctx.font = labelFont;
  1989. acanvas.width = ctx.measureText(object.team + object.name).width + 4;
  1990. /** @type {number} */
  1991. acanvas.height = 1.35 * tY >> 0;
  1992. /** @type {string} */
  1993. ctx.font = labelFont;
  1994. if (this.ui.options.textOutlines) {
  1995. /** @type {number} */
  1996. ctx.lineWidth = 0.1 * tY >> 0;
  1997. /** @type {string} */
  1998. ctx.strokeStyle = "#000";
  1999. ctx.strokeText(object.team + object.name, 2, tY);
  2000. }
  2001. ctx.fillStyle = object.nameColor;
  2002. ctx.fillText(object.team + object.name, 2, tY);
  2003. this.nameCache.set(object.team + object.name + object.nameColor, acanvas);
  2004. }
  2005. return this.nameCache.get(object.team + object.name + object.nameColor);
  2006. }
  2007. }, {
  2008. key : "drawSize",
  2009. /**
  2010. * @param {number} object
  2011. * @return {undefined}
  2012. */
  2013. value : function(object) {
  2014. var t = arguments.length > 1 && (void 0 !== arguments[1] && arguments[1]);
  2015. var ctx = this.ctx;
  2016. var secs = "" + object.getMass();
  2017. /** @type {number} */
  2018. var i = 0.25 * object.size >> 0;
  2019. /** @type {string} */
  2020. ctx.font = "bold " + i + "px Verdana";
  2021. ctx.fillStyle = object.nameColor;
  2022. /** @type {string} */
  2023. ctx.textBaseline = "middle";
  2024. /** @type {string} */
  2025. ctx.textAlign = "center";
  2026. var ty = object.y;
  2027. if (t) {
  2028. ty += 1.2 * i >> 0;
  2029. }
  2030. if (this.ui.options.textOutlines) {
  2031. /** @type {number} */
  2032. ctx.lineWidth = 0.1 * i >> 0;
  2033. /** @type {string} */
  2034. ctx.strokeStyle = "#000";
  2035. ctx.strokeText(secs, object.x, ty);
  2036. }
  2037. ctx.fillText(secs, object.x, ty);
  2038. }
  2039. }, {
  2040. key : "drawEject",
  2041. /**
  2042. * @param {number} object
  2043. * @return {undefined}
  2044. */
  2045. value : function(object) {
  2046. var context = this.ctx;
  2047. context.beginPath();
  2048. context.arc(object.x, object.y, object.size, 0, 2 * Math.PI);
  2049. context.fillStyle = object.color;
  2050. context.fill();
  2051. }
  2052. }, {
  2053. key : "drawVirus",
  2054. /**
  2055. * @param {number} object
  2056. * @param {number} expectedNumberOfNonCommentArgs
  2057. * @return {undefined}
  2058. */
  2059. value : function(object, expectedNumberOfNonCommentArgs) {
  2060. var ctx = this.ctx;
  2061. ctx.beginPath();
  2062. ctx.arc(object.x, object.y, object.size, 0, 2 * Math.PI);
  2063. /** @type {number} */
  2064. ctx.fillStyle = expectedNumberOfNonCommentArgs;
  2065. /** @type {number} */
  2066. ctx.globalAlpha = 0.5;
  2067. ctx.fill();
  2068. /** @type {number} */
  2069. ctx.lineWidth = 15;
  2070. /** @type {number} */
  2071. ctx.strokeStyle = expectedNumberOfNonCommentArgs;
  2072. /** @type {number} */
  2073. ctx.globalAlpha = 1;
  2074. ctx.stroke();
  2075. if (!this.ui.options.autoHideText || object.size * this.scale >= this.ui.options.autoHideTextVal) {
  2076. if (!this.ui.options.hideMass) {
  2077. this.drawSize(object);
  2078. }
  2079. }
  2080. }
  2081. }, {
  2082. key : "drawPlayer",
  2083. /**
  2084. * @param {number} object
  2085. * @return {undefined}
  2086. */
  2087. value : function(object) {
  2088. var a = this.pIds.includes(object.pId);
  2089. var b = !a && this.partyIds.has(object.pId);
  2090. if (a) {
  2091. object.nameColor = this.ui.options.selfNameColor.color;
  2092. } else {
  2093. if (b) {
  2094. object.nameColor = this.ui.options.friendNameColor.color;
  2095. } else {
  2096. if (!object.nameColor) {
  2097. object.nameColor = this.ui.options.enemyNameColor.color;
  2098. }
  2099. }
  2100. }
  2101. /** @type {boolean} */
  2102. var r = false;
  2103. if (!this.ui.options.hideSkins) {
  2104. if (!(this.ui.options.hideEnemySkins && (!a && !b))) {
  2105. if (!(this.tsInd && (a || b))) {
  2106. if (null == object.img) {
  2107. object.img = this.skins.download(object.team, object.name, a ? this.activeClient.skin : object.skin);
  2108. }
  2109. /** @type {boolean} */
  2110. r = 0 != object.img && null != object.img;
  2111. }
  2112. }
  2113. }
  2114. var ctx = this.ctx;
  2115. /** @type {number} */
  2116. ctx.globalAlpha = this.ui.options.transCells ? 0.5 : 1;
  2117. ctx.beginPath();
  2118. ctx.arc(object.x, object.y, object.size, 0, 2 * Math.PI, false);
  2119. var col = void 0;
  2120. if (col = this.tsInd && (a || b) ? object.getMass() >= this.stats.tsMass ? "#0f0" : "#f00" : a ? this.ui.options.selfColor.color : object.color, ctx.fillStyle = col, ctx.fill(), r && (ctx.save(), ctx.clip(), ctx.drawImage(object.img, object.x - object.size, object.y - object.size, 2 * object.size, 2 * object.size), ctx.restore()), !this.ui.options.autoHideText || object.size * this.scale >= this.ui.options.autoHideTextVal) {
  2121. if (!this.ui.options.hideNames) {
  2122. var map = this.getNameCache(object);
  2123. /** @type {number} */
  2124. var original = 0.0025 * object.size;
  2125. /** @type {number} */
  2126. var width = map.width * original;
  2127. /** @type {number} */
  2128. var height = map.height * original;
  2129. ctx.drawImage(map, object.x - width / 2, object.y - height / 2, width, height);
  2130. }
  2131. if (!this.ui.options.hideMass) {
  2132. this.drawSize(object, true);
  2133. }
  2134. }
  2135. if (this.passiveClient) {
  2136. if (object.pId == this.passiveClient.pId) {
  2137. /** @type {number} */
  2138. ctx.globalAlpha = 0.5;
  2139. /** @type {string} */
  2140. ctx.fillStyle = "#888";
  2141. ctx.fill();
  2142. }
  2143. }
  2144. /** @type {number} */
  2145. ctx.globalAlpha = 1;
  2146. }
  2147. }, {
  2148. key : "drawBorders",
  2149. /**
  2150. * @return {undefined}
  2151. */
  2152. value : function() {
  2153. var canvas = this.border;
  2154. if (canvas) {
  2155. var context = this.ctx;
  2156. /** @type {number} */
  2157. context.lineWidth = 20;
  2158. context.strokeStyle = this.ui.options.borderColor.color;
  2159. context.strokeRect(canvas.minx + this.offsetX >> 0, canvas.miny + this.offsetY >> 0, canvas.width, canvas.height);
  2160. }
  2161. }
  2162. }, {
  2163. key : "tick",
  2164. /**
  2165. * @return {undefined}
  2166. */
  2167. value : function() {
  2168. /** @type {number} */
  2169. var time = Date.now();
  2170. /** @type {number} */
  2171. var timePassed = time - this.prevTime;
  2172. /** @type {number} */
  2173. this.prevTime = time;
  2174. /** @type {number} */
  2175. var animation = Math.min(this.ui.options.animate ? timePassed / this.ui.options.animateSpeed : 1, 1);
  2176. this.fpsDelta += timePassed;
  2177. if (!this.isSorted) {
  2178. this.sortCells(animation);
  2179. }
  2180. /** @type {boolean} */
  2181. var callback2 = true;
  2182. /** @type {boolean} */
  2183. var i = false;
  2184. var _clockseq = void 0;
  2185. try {
  2186. var token;
  2187. var tree = this.sorted[Symbol.iterator]();
  2188. for (;!(callback2 = (token = tree.next()).done);callback2 = true) {
  2189. var element = token.value;
  2190. element.animate(animation);
  2191. }
  2192. } catch (clockseq) {
  2193. /** @type {boolean} */
  2194. i = true;
  2195. _clockseq = clockseq;
  2196. } finally {
  2197. try {
  2198. if (!callback2) {
  2199. if (tree.return) {
  2200. tree.return();
  2201. }
  2202. }
  2203. } finally {
  2204. if (i) {
  2205. throw _clockseq;
  2206. }
  2207. }
  2208. }
  2209. var offsetX = void 0;
  2210. var offsetY = void 0;
  2211. /** @type {number} */
  2212. var sum = 0;
  2213. /** @type {number} */
  2214. var val = 0;
  2215. /** @type {number} */
  2216. var len = 0;
  2217. /** @type {number} */
  2218. var which = 1 / 0;
  2219. /** @type {number} */
  2220. var variables = 1 / 0;
  2221. /** @type {number} */
  2222. var elems = 0;
  2223. /** @type {number} */
  2224. var scripts = 0;
  2225. /** @type {boolean} */
  2226. var _ref1 = true;
  2227. /** @type {boolean} */
  2228. var w = false;
  2229. var type = void 0;
  2230. try {
  2231. var x;
  2232. var cell = this.clients[Symbol.iterator]();
  2233. for (;!(_ref1 = (x = cell.next()).done);_ref1 = true) {
  2234. var self = x.value;
  2235. /** @type {number} */
  2236. var bytes = 0;
  2237. /** @type {number} */
  2238. var y = 0;
  2239. /** @type {boolean} */
  2240. var foundHelper = true;
  2241. /** @type {boolean} */
  2242. var O = false;
  2243. var error = void 0;
  2244. try {
  2245. var res;
  2246. var c = self.ownCells.values()[Symbol.iterator]();
  2247. for (;!(foundHelper = (res = c.next()).done);foundHelper = true) {
  2248. var data = res.value;
  2249. bytes += data.x;
  2250. y += data.y;
  2251. /** @type {number} */
  2252. which = Math.min(which, data.x - data.size);
  2253. /** @type {number} */
  2254. variables = Math.min(variables, data.y - data.size);
  2255. /** @type {number} */
  2256. elems = Math.max(elems, data.x + data.size);
  2257. /** @type {number} */
  2258. scripts = Math.max(scripts, data.y + data.size);
  2259. }
  2260. } catch (err) {
  2261. /** @type {boolean} */
  2262. O = true;
  2263. error = err;
  2264. } finally {
  2265. try {
  2266. if (!foundHelper) {
  2267. if (c.return) {
  2268. c.return();
  2269. }
  2270. }
  2271. } finally {
  2272. if (O) {
  2273. throw error;
  2274. }
  2275. }
  2276. }
  2277. if (self.spectating) {
  2278. self.animate(animation);
  2279. } else {
  2280. if (self.ownCells.size > 0) {
  2281. /** @type {number} */
  2282. self.centerX = bytes / self.ownCells.size;
  2283. /** @type {number} */
  2284. self.centerY = y / self.ownCells.size;
  2285. /** @type {number} */
  2286. self.centerSteps = 0;
  2287. sum += self.centerX;
  2288. val += self.centerY;
  2289. len++;
  2290. }
  2291. }
  2292. }
  2293. } catch (fx) {
  2294. /** @type {boolean} */
  2295. w = true;
  2296. type = fx;
  2297. } finally {
  2298. try {
  2299. if (!_ref1) {
  2300. if (cell.return) {
  2301. cell.return();
  2302. }
  2303. }
  2304. } finally {
  2305. if (w) {
  2306. throw type;
  2307. }
  2308. }
  2309. }
  2310. /** @type {Array} */
  2311. var syntax = len > 0 ? [sum / len, val / len] : this.activeClient ? [this.activeClient.centerX, this.activeClient.centerY] : [0, 0];
  2312. var _ref = traverse(syntax, 2);
  2313. offsetX = _ref[0];
  2314. offsetY = _ref[1];
  2315. /** @type {number} */
  2316. var M = 0.25;
  2317. if (!this.ui.options.disableAutoZoom && this.border) {
  2318. /** @type {number} */
  2319. var thetaC = Math.max((elems - which) / this.border.width, (scripts - variables) / this.border.height);
  2320. /** @type {number} */
  2321. M = 0.03 * Math.pow(thetaC, -0.2);
  2322. }
  2323. /** @type {number} */
  2324. this.scale_ = M * Math.max(this.canvas.width / 1920, this.canvas.height / 1080) * this.mouseZoom;
  2325. this.scale += (this.scale_ - this.scale) * Math.min(timePassed / 200, 1);
  2326. /** @type {number} */
  2327. this.offsetX = this.canvas.width / 2 / this.scale - offsetX;
  2328. /** @type {number} */
  2329. this.offsetY = this.canvas.height / 2 / this.scale - offsetY;
  2330. var ctx = this.ctx;
  2331. ctx.save();
  2332. ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
  2333. ctx.fillStyle = this.ui.options.gameBgColor.color;
  2334. ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);
  2335. ctx.scale(this.scale, this.scale);
  2336. if (this.ui.options.showBorders) {
  2337. this.drawBorders();
  2338. }
  2339. ctx.translate(this.offsetX, this.offsetY);
  2340. /** @type {number} */
  2341. var key = this.sorted.length - 1;
  2342. ctx.beginPath();
  2343. for (;key >= 0;key--) {
  2344. var p = this.sorted[key];
  2345. if (0 != p.type) {
  2346. break;
  2347. }
  2348. ctx.moveTo(p.x, p.y);
  2349. ctx.arc(p.x, p.y, p.size, 0, 2 * Math.PI);
  2350. }
  2351. ctx.fillStyle = this.ui.options.foodColor.color;
  2352. ctx.fill();
  2353. /** @type {number} */
  2354. var options = key;
  2355. for (;key >= 0;key--) {
  2356. var dummy = this.sorted[key];
  2357. switch(dummy.type) {
  2358. case 1:
  2359. this.drawEject(dummy);
  2360. break;
  2361. case 2:
  2362. this.drawPlayer(dummy);
  2363. break;
  2364. case 3:
  2365. this.drawVirus(dummy, this.ui.options.virusColor.color);
  2366. break;
  2367. case 4:
  2368. this.drawVirus(dummy, this.ui.options.motherColor.color);
  2369. }
  2370. }
  2371. if (this.ui.options.smallInd) {
  2372. ctx.beginPath();
  2373. /** @type {number} */
  2374. key = options;
  2375. for (;key >= 0;key--) {
  2376. var curr = this.sorted[key];
  2377. if (2 == curr.type && ((this.pIds.includes(curr.pId) || this.partyIds.has(curr.pId)) && curr.size * this.scale <= this.ui.options.smallIndVal)) {
  2378. /** @type {number} */
  2379. var dx = 1 / Math.max(this.scale, 0.05);
  2380. /** @type {number} */
  2381. var topY = curr.y - curr.size;
  2382. ctx.moveTo(curr.x - 10 * dx, topY - 15 * dx);
  2383. ctx.lineTo(curr.x + 10 * dx, topY - 15 * dx);
  2384. ctx.lineTo(curr.x, topY - 5 * dx);
  2385. }
  2386. }
  2387. ctx.fillStyle = this.ui.options.smallIndColor.color;
  2388. ctx.fill();
  2389. }
  2390. if (ctx.restore(), this.prevTime - this.nameCacheUpdate >= 6E5 && (this.nameCache.clear(), this.nameCacheUpdate = this.prevTime), !this.ui.options.hideMinimap && this.border) {
  2391. /** @type {number} */
  2392. var mass = Math.min(timePassed / 900, 1);
  2393. /** @type {Array} */
  2394. var rectData = [this.border.width, this.border.height];
  2395. var width = rectData[0];
  2396. var height = rectData[1];
  2397. /** @type {Array} */
  2398. var values = [];
  2399. /** @type {boolean} */
  2400. var afterAnimationCallback = true;
  2401. /** @type {boolean} */
  2402. var Z = false;
  2403. var text = void 0;
  2404. try {
  2405. var pair;
  2406. var stream = this.clients[Symbol.iterator]();
  2407. for (;!(afterAnimationCallback = (pair = stream.next()).done);afterAnimationCallback = true) {
  2408. var user = pair.value;
  2409. if (user.ownCells.size > 0 || user.spectating && (user != this.spectateClient || !user.party.some(function(guard) {
  2410. return guard.n;
  2411. }))) {
  2412. values.push({
  2413. pId : user.pId,
  2414. name : user.name,
  2415. x : user.centerX / width,
  2416. y : user.centerY / height,
  2417. size : Math.sqrt(100 * this.stats.masses.get(user)) / ((width + height) / 2),
  2418. color : user == this.spectateClient ? this.ui.options.specMapColor.color : this.ui.options.selfMapColor.color
  2419. });
  2420. }
  2421. /** @type {boolean} */
  2422. var done = true;
  2423. /** @type {boolean} */
  2424. var re = false;
  2425. var bulk = void 0;
  2426. try {
  2427. var tok;
  2428. var result = user.party[Symbol.iterator]();
  2429. for (;!(done = (tok = result.next()).done);done = true) {
  2430. var obj = tok.value;
  2431. if (!this.pIds.includes(obj.pId)) {
  2432. if (!(null == obj.x)) {
  2433. if (!(null == obj.y)) {
  2434. if (user != this.spectateClient) {
  2435. obj.x += (obj.x_ - obj.x) * mass;
  2436. obj.y += (obj.y_ - obj.y) * mass;
  2437. obj.mass += (obj.mass_ - obj.mass) * mass;
  2438. }
  2439. if (user != this.spectateClient || obj.n) {
  2440. values.push({
  2441. pId : obj.pId,
  2442. name : obj.name,
  2443. x : obj.x / width,
  2444. y : obj.y / height,
  2445. size : Math.sqrt(100 * obj.mass) / ((width + height) / 2),
  2446. color : user == this.spectateClient ? this.ui.options.enemyMapColor.color : obj.color || this.ui.options.friendMapColor.color
  2447. });
  2448. }
  2449. }
  2450. }
  2451. }
  2452. }
  2453. } catch (fn) {
  2454. /** @type {boolean} */
  2455. re = true;
  2456. bulk = fn;
  2457. } finally {
  2458. try {
  2459. if (!done) {
  2460. if (result.return) {
  2461. result.return();
  2462. }
  2463. }
  2464. } finally {
  2465. if (re) {
  2466. throw bulk;
  2467. }
  2468. }
  2469. }
  2470. }
  2471. } catch (textAlt) {
  2472. /** @type {boolean} */
  2473. Z = true;
  2474. text = textAlt;
  2475. } finally {
  2476. try {
  2477. if (!afterAnimationCallback) {
  2478. if (stream.return) {
  2479. stream.return();
  2480. }
  2481. }
  2482. } finally {
  2483. if (Z) {
  2484. throw text;
  2485. }
  2486. }
  2487. }
  2488. values.sort(function(b, a) {
  2489. return a.size - b.size;
  2490. });
  2491. /** @type {Array} */
  2492. this.ui.minimap.value = values;
  2493. }
  2494. if (this.ui.main.hideMain) {
  2495. if (this.activeClient) {
  2496. if (time >= this.tsTime) {
  2497. this.activeClient.sendMouse(this.mouseRawX / this.scale - this.offsetX, this.mouseRawY / this.scale - this.offsetY);
  2498. this.activeClient.sendW();
  2499. }
  2500. }
  2501. }
  2502. this.fpsCounter++;
  2503. if (this.fpsDelta >= 1E3) {
  2504. this.ui.stats.fps = this.fpsCounter;
  2505. /** @type {number} */
  2506. this.fpsDelta = 0;
  2507. /** @type {number} */
  2508. this.fpsCounter = 0;
  2509. if (this.activeClient) {
  2510. Object.assign(this.ui.minimap, {
  2511. x : this.activeClient.centerX,
  2512. y : this.activeClient.centerY
  2513. });
  2514. }
  2515. }
  2516. window.requestAnimationFrame(this.tick.bind(this));
  2517. }
  2518. }, {
  2519. key : "onPlay",
  2520. value : function() {
  2521. /**
  2522. * @return {?}
  2523. */
  2524. function view() {
  2525. return matcherFunction.apply(this, arguments);
  2526. }
  2527. var matcherFunction = compose(regeneratorRuntime.mark(function init() {
  2528. var callback2;
  2529. var n;
  2530. var t0;
  2531. var tree;
  2532. var _ref;
  2533. var a;
  2534. return regeneratorRuntime.wrap(function(self) {
  2535. for (;;) {
  2536. switch(self.prev = self.next) {
  2537. case 0:
  2538. return self.next = 2, this.updateServer();
  2539. case 2:
  2540. /** @type {boolean} */
  2541. callback2 = true;
  2542. /** @type {boolean} */
  2543. n = false;
  2544. t0 = void 0;
  2545. /** @type {number} */
  2546. self.prev = 5;
  2547. tree = this.clients[Symbol.iterator]();
  2548. for (;!(callback2 = (_ref = tree.next()).done);callback2 = true) {
  2549. a = _ref.value;
  2550. a.play(this.ui.skins.selected.team, this.ui.skins.selected.name, this.ui.skins.selected.skin);
  2551. }
  2552. /** @type {number} */
  2553. self.next = 13;
  2554. break;
  2555. case 9:
  2556. /** @type {number} */
  2557. self.prev = 9;
  2558. self.t0 = self.catch(5);
  2559. /** @type {boolean} */
  2560. n = true;
  2561. t0 = self.t0;
  2562. case 13:
  2563. /** @type {number} */
  2564. self.prev = 13;
  2565. /** @type {number} */
  2566. self.prev = 14;
  2567. if (!callback2) {
  2568. if (tree.return) {
  2569. tree.return();
  2570. }
  2571. }
  2572. ;
  2573. case 16:
  2574. if (self.prev = 16, !n) {
  2575. /** @type {number} */
  2576. self.next = 19;
  2577. break;
  2578. }
  2579. throw t0;;
  2580. case 19:
  2581. return self.finish(16);
  2582. case 20:
  2583. return self.finish(13);
  2584. case 21:
  2585. /** @type {boolean} */
  2586. this.ui.main.hideMain = true;
  2587. case 22:
  2588. ;
  2589. case "end":
  2590. return self.stop();
  2591. }
  2592. }
  2593. }, init, this, [[5, 9, 13, 21], [14, , 16, 20]]);
  2594. }));
  2595. return view;
  2596. }()
  2597. }, {
  2598. key : "onSpectate",
  2599. value : function() {
  2600. /**
  2601. * @return {?}
  2602. */
  2603. function view() {
  2604. return matcherFunction.apply(this, arguments);
  2605. }
  2606. var matcherFunction = compose(regeneratorRuntime.mark(function end() {
  2607. var callback2;
  2608. var n;
  2609. var t0;
  2610. var tree;
  2611. var exception;
  2612. var line;
  2613. return regeneratorRuntime.wrap(function(self) {
  2614. for (;;) {
  2615. switch(self.prev = self.next) {
  2616. case 0:
  2617. return self.next = 2, this.updateServer();
  2618. case 2:
  2619. /** @type {boolean} */
  2620. callback2 = true;
  2621. /** @type {boolean} */
  2622. n = false;
  2623. t0 = void 0;
  2624. /** @type {number} */
  2625. self.prev = 5;
  2626. tree = this.clients[Symbol.iterator]();
  2627. for (;!(callback2 = (exception = tree.next()).done);callback2 = true) {
  2628. line = exception.value;
  2629. line.spectate(this.ui.skins.selected.team, this.ui.skins.selected.name, this.ui.skins.selected.skin);
  2630. }
  2631. /** @type {number} */
  2632. self.next = 13;
  2633. break;
  2634. case 9:
  2635. /** @type {number} */
  2636. self.prev = 9;
  2637. self.t0 = self.catch(5);
  2638. /** @type {boolean} */
  2639. n = true;
  2640. t0 = self.t0;
  2641. case 13:
  2642. /** @type {number} */
  2643. self.prev = 13;
  2644. /** @type {number} */
  2645. self.prev = 14;
  2646. if (!callback2) {
  2647. if (tree.return) {
  2648. tree.return();
  2649. }
  2650. }
  2651. ;
  2652. case 16:
  2653. if (self.prev = 16, !n) {
  2654. /** @type {number} */
  2655. self.next = 19;
  2656. break;
  2657. }
  2658. throw t0;;
  2659. case 19:
  2660. return self.finish(16);
  2661. case 20:
  2662. return self.finish(13);
  2663. case 21:
  2664. /** @type {boolean} */
  2665. this.ui.main.hideMain = true;
  2666. case 22:
  2667. ;
  2668. case "end":
  2669. return self.stop();
  2670. }
  2671. }
  2672. }, end, this, [[5, 9, 13, 21], [14, , 16, 20]]);
  2673. }));
  2674. return view;
  2675. }()
  2676. }, {
  2677. key : "onDie",
  2678. /**
  2679. * @param {number} object
  2680. * @return {undefined}
  2681. */
  2682. value : function(object) {
  2683. if (this.ui.options.autoRespawn) {
  2684. object.play(this.ui.skins.selected.team, this.ui.skins.selected.name, this.ui.skins.selected.skin);
  2685. } else {
  2686. if (this.clients.every(function(b) {
  2687. return 0 == b.ownCells.size;
  2688. })) {
  2689. /** @type {boolean} */
  2690. this.ui.main.hideMain = false;
  2691. }
  2692. }
  2693. }
  2694. }, {
  2695. key : "onConnectError",
  2696. /**
  2697. * @return {undefined}
  2698. */
  2699. value : function() {
  2700. this.chat.system("Error connecting to server... Retrying.");
  2701. }
  2702. }, {
  2703. key : "onDisconnect",
  2704. /**
  2705. * @param {number} object
  2706. * @return {undefined}
  2707. */
  2708. value : function(object) {
  2709. this.updatePIds();
  2710. this.onUpdate();
  2711. this.onPartyUpdate();
  2712. this.onLeaderboard(object, []);
  2713. }
  2714. }, {
  2715. key : "onUpdate",
  2716. /**
  2717. * @return {undefined}
  2718. */
  2719. value : function() {
  2720. /** @type {boolean} */
  2721. this.isSorted = false;
  2722. }
  2723. }, {
  2724. key : "onBorder",
  2725. /**
  2726. * @return {undefined}
  2727. */
  2728. value : function() {
  2729. var ext = this.activeClient.border;
  2730. this.border = declare({}, ext, {
  2731. width : ext.maxx - ext.minx,
  2732. height : ext.maxy - ext.miny
  2733. });
  2734. }
  2735. }, {
  2736. key : "onPId",
  2737. /**
  2738. * @return {undefined}
  2739. */
  2740. value : function() {
  2741. this.updatePIds();
  2742. }
  2743. }, {
  2744. key : "onLeaderboard",
  2745. /**
  2746. * @param {number} object
  2747. * @param {number} expectedNumberOfNonCommentArgs
  2748. * @return {undefined}
  2749. */
  2750. value : function(object, expectedNumberOfNonCommentArgs) {
  2751. this.leaderboards.set(object, expectedNumberOfNonCommentArgs);
  2752. /** @type {Array} */
  2753. var data = [];
  2754. var self = new Map;
  2755. /** @type {boolean} */
  2756. var callback2 = true;
  2757. /** @type {boolean} */
  2758. var a = false;
  2759. var _clockseq = void 0;
  2760. try {
  2761. var _ref;
  2762. var tree = this.leaderboards.values()[Symbol.iterator]();
  2763. for (;!(callback2 = (_ref = tree.next()).done);callback2 = true) {
  2764. var color = _ref.value;
  2765. /** @type {boolean} */
  2766. var _ref1 = true;
  2767. /** @type {boolean} */
  2768. var f = false;
  2769. var bulk = void 0;
  2770. try {
  2771. var node;
  2772. var cell = color[Symbol.iterator]();
  2773. for (;!(_ref1 = (node = cell.next()).done);_ref1 = true) {
  2774. var ret = node.value;
  2775. self.set(ret.pos, ret);
  2776. }
  2777. } catch (fn) {
  2778. /** @type {boolean} */
  2779. f = true;
  2780. bulk = fn;
  2781. } finally {
  2782. try {
  2783. if (!_ref1) {
  2784. if (cell.return) {
  2785. cell.return();
  2786. }
  2787. }
  2788. } finally {
  2789. if (f) {
  2790. throw bulk;
  2791. }
  2792. }
  2793. }
  2794. }
  2795. } catch (clockseq) {
  2796. /** @type {boolean} */
  2797. a = true;
  2798. _clockseq = clockseq;
  2799. } finally {
  2800. try {
  2801. if (!callback2) {
  2802. if (tree.return) {
  2803. tree.return();
  2804. }
  2805. }
  2806. } finally {
  2807. if (a) {
  2808. throw _clockseq;
  2809. }
  2810. }
  2811. }
  2812. /** @type {boolean} */
  2813. var foundHelper = true;
  2814. /** @type {boolean} */
  2815. var v = false;
  2816. var text = void 0;
  2817. try {
  2818. var desc;
  2819. var c = self.values()[Symbol.iterator]();
  2820. for (;!(foundHelper = (desc = c.next()).done);foundHelper = true) {
  2821. var message = desc.value;
  2822. var value = message.color;
  2823. if (this.pIds.includes(message.pId)) {
  2824. value = this.ui.options.selfLbColor.color;
  2825. } else {
  2826. if (this.partyIds.has(message.pId)) {
  2827. value = this.ui.options.friendLbColor.color;
  2828. } else {
  2829. if (!value) {
  2830. value = this.ui.options.enemyLbColor.color;
  2831. }
  2832. }
  2833. }
  2834. data.push({
  2835. pos : message.pos,
  2836. pId : message.pId,
  2837. name : message.name,
  2838. color : value
  2839. });
  2840. }
  2841. } catch (textAlt) {
  2842. /** @type {boolean} */
  2843. v = true;
  2844. text = textAlt;
  2845. } finally {
  2846. try {
  2847. if (!foundHelper) {
  2848. if (c.return) {
  2849. c.return();
  2850. }
  2851. }
  2852. } finally {
  2853. if (v) {
  2854. throw text;
  2855. }
  2856. }
  2857. }
  2858. data.sort(function(a, b) {
  2859. return a.pos - b.pos;
  2860. });
  2861. /** @type {Array} */
  2862. this.ui.main.leaderboard = data;
  2863. /** @type {Array} */
  2864. var configList = [];
  2865. /** @type {boolean} */
  2866. var afterAnimationCallback = true;
  2867. /** @type {boolean} */
  2868. var _ = false;
  2869. var error = void 0;
  2870. try {
  2871. var q;
  2872. var stream = data[Symbol.iterator]();
  2873. for (;!(afterAnimationCallback = (q = stream.next()).done);afterAnimationCallback = true) {
  2874. var l = q.value;
  2875. if (!this.pIds.includes(l.pId) && (!this.partyIds.has(l.pId) && (configList.push(l.pId), 3 == configList.length))) {
  2876. break;
  2877. }
  2878. }
  2879. } catch (err) {
  2880. /** @type {boolean} */
  2881. _ = true;
  2882. error = err;
  2883. } finally {
  2884. try {
  2885. if (!afterAnimationCallback) {
  2886. if (stream.return) {
  2887. stream.return();
  2888. }
  2889. }
  2890. } finally {
  2891. if (_) {
  2892. throw error;
  2893. }
  2894. }
  2895. }
  2896. if (this.spectateClient) {
  2897. this.spectateClient.chase(configList, expectedNumberOfNonCommentArgs);
  2898. }
  2899. }
  2900. }, {
  2901. key : "onTeamLeaderboard",
  2902. /**
  2903. * @param {number} object
  2904. * @return {undefined}
  2905. */
  2906. value : function(object) {
  2907. /** @type {number} */
  2908. this.ui.main.teamLeaderboard = object;
  2909. }
  2910. }, {
  2911. key : "onPing",
  2912. /**
  2913. * @param {number} object
  2914. * @return {undefined}
  2915. */
  2916. value : function(object) {
  2917. var old = this.ui.options.uiFgColor.color;
  2918. if (this.ui.options.coloredPing) {
  2919. /** @type {Array} */
  2920. var iterator = [[0, "#0f0"], [100, "#ff0"], [150, "#f60"], [200, "#f00"]];
  2921. /** @type {boolean} */
  2922. var callback2 = true;
  2923. /** @type {boolean} */
  2924. var i = false;
  2925. var bulk = void 0;
  2926. try {
  2927. var _ref;
  2928. var self = iterator[Symbol.iterator]();
  2929. for (;!(callback2 = (_ref = self.next()).done);callback2 = true) {
  2930. var args = traverse(_ref.value, 2);
  2931. var pageY = args[0];
  2932. var expr = args[1];
  2933. if (object < pageY) {
  2934. break;
  2935. }
  2936. old = expr;
  2937. }
  2938. } catch (fn) {
  2939. /** @type {boolean} */
  2940. i = true;
  2941. bulk = fn;
  2942. } finally {
  2943. try {
  2944. if (!callback2) {
  2945. if (self.return) {
  2946. self.return();
  2947. }
  2948. }
  2949. } finally {
  2950. if (i) {
  2951. throw bulk;
  2952. }
  2953. }
  2954. }
  2955. }
  2956. Object.assign(this.ui.stats, {
  2957. ping : object,
  2958. pingColor : old
  2959. });
  2960. }
  2961. }, {
  2962. key : "onChat",
  2963. /**
  2964. * @param {number} which
  2965. * @param {number} expectedNumberOfNonCommentArgs
  2966. * @param {number} arg
  2967. * @param {string} triggerRoute
  2968. * @param {string} f
  2969. * @param {string} deepDataAndEvents
  2970. * @param {?} until
  2971. * @return {undefined}
  2972. */
  2973. value : function(which, expectedNumberOfNonCommentArgs, arg, triggerRoute, f, deepDataAndEvents, until) {
  2974. this.chat.chat(which, expectedNumberOfNonCommentArgs, arg, triggerRoute, f, deepDataAndEvents, until, this.partyIds.has(arg));
  2975. }
  2976. }, {
  2977. key : "onWhisper",
  2978. /**
  2979. * @return {undefined}
  2980. */
  2981. value : function() {
  2982. var newArgs;
  2983. (newArgs = this.chat).whisper.apply(newArgs, arguments);
  2984. }
  2985. }, {
  2986. key : "onSystem",
  2987. /**
  2988. * @return {undefined}
  2989. */
  2990. value : function() {
  2991. var newArgs;
  2992. (newArgs = this.chat).system.apply(newArgs, arguments);
  2993. }
  2994. }, {
  2995. key : "onInvite",
  2996. /**
  2997. * @param {number} object
  2998. * @param {number} expectedNumberOfNonCommentArgs
  2999. * @return {undefined}
  3000. */
  3001. value : function(object, expectedNumberOfNonCommentArgs) {
  3002. this.ui.chat.invites.push({
  3003. client : object,
  3004. name : expectedNumberOfNonCommentArgs
  3005. });
  3006. }
  3007. }, {
  3008. key : "onPartyUpdate",
  3009. /**
  3010. * @return {undefined}
  3011. */
  3012. value : function() {
  3013. /** @type {Array} */
  3014. this.party = [];
  3015. this.partyIds.clear();
  3016. /** @type {boolean} */
  3017. var callback2 = true;
  3018. /** @type {boolean} */
  3019. var t = false;
  3020. var _clockseq = void 0;
  3021. try {
  3022. var _ref;
  3023. var self = this.clients[Symbol.iterator]();
  3024. for (;!(callback2 = (_ref = self.next()).done);callback2 = true) {
  3025. var color = _ref.value;
  3026. if (color != this.spectateClient) {
  3027. /** @type {boolean} */
  3028. var _ref1 = true;
  3029. /** @type {boolean} */
  3030. var o = false;
  3031. var bulk = void 0;
  3032. try {
  3033. var elem;
  3034. var tree = color.party[Symbol.iterator]();
  3035. for (;!(_ref1 = (elem = tree.next()).done);_ref1 = true) {
  3036. var options = elem.value;
  3037. if (!this.partyIds.has(options.pId)) {
  3038. var lc = void 0;
  3039. lc = this.pIds.includes(options.pId) ? this.ui.options.selfPartyColor.color : options.leader ? this.ui.options.leaderPartyColor.color : this.ui.options.friendPartyColor.color;
  3040. this.party.push({
  3041. name : options.name,
  3042. mass : options.mass_,
  3043. color : lc
  3044. });
  3045. this.partyIds.add(options.pId);
  3046. }
  3047. }
  3048. } catch (fn) {
  3049. /** @type {boolean} */
  3050. o = true;
  3051. bulk = fn;
  3052. } finally {
  3053. try {
  3054. if (!_ref1) {
  3055. if (tree.return) {
  3056. tree.return();
  3057. }
  3058. }
  3059. } finally {
  3060. if (o) {
  3061. throw bulk;
  3062. }
  3063. }
  3064. }
  3065. }
  3066. }
  3067. } catch (clockseq) {
  3068. /** @type {boolean} */
  3069. t = true;
  3070. _clockseq = clockseq;
  3071. } finally {
  3072. try {
  3073. if (!callback2) {
  3074. if (self.return) {
  3075. self.return();
  3076. }
  3077. }
  3078. } finally {
  3079. if (t) {
  3080. throw _clockseq;
  3081. }
  3082. }
  3083. }
  3084. /** @type {Array} */
  3085. this.ui.main.party = this.party;
  3086. }
  3087. }]), init;
  3088. }(property.default);
  3089. obj.default = value;
  3090. }, function(module, dataAndEvents) {
  3091. module.exports = head;
  3092. }, function(module, dataAndEvents) {
  3093. var scope;
  3094. scope = function() {
  3095. return this;
  3096. }();
  3097. try {
  3098. scope = scope || (Function("return this")() || (0, eval)("this"));
  3099. } catch (e) {
  3100. if ("object" == typeof window) {
  3101. /** @type {Window} */
  3102. scope = window;
  3103. }
  3104. }
  3105. module.exports = scope;
  3106. }, function(dataAndEvents, o, deepDataAndEvents) {
  3107. /**
  3108. * @param {string} object
  3109. * @return {?}
  3110. */
  3111. function toString(object) {
  3112. var len = object.length;
  3113. if (len % 4 > 0) {
  3114. throw new Error("Invalid string. Length must be a multiple of 4");
  3115. }
  3116. return "=" === object[len - 2] ? 2 : "=" === object[len - 1] ? 1 : 0;
  3117. }
  3118. /**
  3119. * @param {string} str
  3120. * @return {?}
  3121. */
  3122. function repeat(str) {
  3123. return 3 * str.length / 4 - toString(str);
  3124. }
  3125. /**
  3126. * @param {string} str
  3127. * @return {?}
  3128. */
  3129. function e(str) {
  3130. var i;
  3131. var j;
  3132. var padLength;
  3133. var a;
  3134. var template;
  3135. var res;
  3136. var iTop = str.length;
  3137. template = toString(str);
  3138. res = new MarkerArray(3 * iTop / 4 - template);
  3139. padLength = template > 0 ? iTop - 4 : iTop;
  3140. /** @type {number} */
  3141. var resLength = 0;
  3142. /** @type {number} */
  3143. i = 0;
  3144. /** @type {number} */
  3145. j = 0;
  3146. for (;i < padLength;i += 4, j += 3) {
  3147. /** @type {number} */
  3148. a = index[str.charCodeAt(i)] << 18 | index[str.charCodeAt(i + 1)] << 12 | index[str.charCodeAt(i + 2)] << 6 | index[str.charCodeAt(i + 3)];
  3149. /** @type {number} */
  3150. res[resLength++] = a >> 16 & 255;
  3151. /** @type {number} */
  3152. res[resLength++] = a >> 8 & 255;
  3153. /** @type {number} */
  3154. res[resLength++] = 255 & a;
  3155. }
  3156. return 2 === template ? (a = index[str.charCodeAt(i)] << 2 | index[str.charCodeAt(i + 1)] >> 4, res[resLength++] = 255 & a) : 1 === template && (a = index[str.charCodeAt(i)] << 10 | index[str.charCodeAt(i + 1)] << 4 | index[str.charCodeAt(i + 2)] >> 2, res[resLength++] = a >> 8 & 255, res[resLength++] = 255 & a), res;
  3157. }
  3158. /**
  3159. * @param {number} xs
  3160. * @return {?}
  3161. */
  3162. function map(xs) {
  3163. return match[xs >> 18 & 63] + match[xs >> 12 & 63] + match[xs >> 6 & 63] + match[63 & xs];
  3164. }
  3165. /**
  3166. * @param {Array} c
  3167. * @param {number} start
  3168. * @param {number} x
  3169. * @return {?}
  3170. */
  3171. function join(c, start, x) {
  3172. var paths;
  3173. /** @type {Array} */
  3174. var rulesets = [];
  3175. /** @type {number} */
  3176. var i = start;
  3177. for (;i < x;i += 3) {
  3178. paths = (c[i] << 16) + (c[i + 1] << 8) + c[i + 2];
  3179. rulesets.push(map(paths));
  3180. }
  3181. return rulesets.join("");
  3182. }
  3183. /**
  3184. * @param {Array} expr
  3185. * @return {?}
  3186. */
  3187. function next(expr) {
  3188. var coef;
  3189. var len = expr.length;
  3190. /** @type {number} */
  3191. var remainderLength = len % 3;
  3192. /** @type {string} */
  3193. var later = "";
  3194. /** @type {Array} */
  3195. var arr = [];
  3196. /** @type {number} */
  3197. var incr = 16383;
  3198. /** @type {number} */
  3199. var i = 0;
  3200. /** @type {number} */
  3201. var length = len - remainderLength;
  3202. for (;i < length;i += incr) {
  3203. arr.push(join(expr, i, i + incr > length ? length : i + incr));
  3204. }
  3205. return 1 === remainderLength ? (coef = expr[len - 1], later += match[coef >> 2], later += match[coef << 4 & 63], later += "==") : 2 === remainderLength && (coef = (expr[len - 2] << 8) + expr[len - 1], later += match[coef >> 10], later += match[coef >> 4 & 63], later += match[coef << 2 & 63], later += "="), arr.push(later), arr.join("");
  3206. }
  3207. /** @type {function (string): ?} */
  3208. o.byteLength = repeat;
  3209. /** @type {function (string): ?} */
  3210. o.toByteArray = e;
  3211. /** @type {function (Array): ?} */
  3212. o.fromByteArray = next;
  3213. /** @type {Array} */
  3214. var match = [];
  3215. /** @type {Array} */
  3216. var index = [];
  3217. /** @type {Function} */
  3218. var MarkerArray = "undefined" != typeof Uint8Array ? Uint8Array : Array;
  3219. /** @type {string} */
  3220. var a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  3221. /** @type {number} */
  3222. var i = 0;
  3223. /** @type {number} */
  3224. var aLength = a.length;
  3225. for (;i < aLength;++i) {
  3226. match[i] = a[i];
  3227. /** @type {number} */
  3228. index[a.charCodeAt(i)] = i;
  3229. }
  3230. /** @type {number} */
  3231. index["-".charCodeAt(0)] = 62;
  3232. /** @type {number} */
  3233. index["_".charCodeAt(0)] = 63;
  3234. }, function(dataAndEvents, el, require) {
  3235. (function(dataAndEvents) {
  3236. /**
  3237. * @return {?}
  3238. */
  3239. function parse() {
  3240. try {
  3241. /** @type {Uint8Array} */
  3242. var data = new Uint8Array(1);
  3243. return data.__proto__ = {
  3244. __proto__ : Uint8Array.prototype,
  3245. /**
  3246. * @return {?}
  3247. */
  3248. foo : function() {
  3249. return 42;
  3250. }
  3251. }, 42 === data.foo() && ("function" == typeof data.subarray && 0 === data.subarray(1, 1).byteLength);
  3252. } catch (e) {
  3253. return false;
  3254. }
  3255. }
  3256. /**
  3257. * @return {?}
  3258. */
  3259. function trim() {
  3260. return self.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
  3261. }
  3262. /**
  3263. * @param {Object} obj
  3264. * @param {number} result
  3265. * @return {?}
  3266. */
  3267. function log(obj, result) {
  3268. if (trim() < result) {
  3269. throw new RangeError("Invalid typed array length");
  3270. }
  3271. return self.TYPED_ARRAY_SUPPORT ? (obj = new Uint8Array(result), obj.__proto__ = self.prototype) : (null === obj && (obj = new self(result)), obj.length = result), obj;
  3272. }
  3273. /**
  3274. * @param {number} value
  3275. * @param {number} err
  3276. * @param {string} cb
  3277. * @return {?}
  3278. */
  3279. function self(value, err, cb) {
  3280. if (!(self.TYPED_ARRAY_SUPPORT || this instanceof self)) {
  3281. return new self(value, err, cb);
  3282. }
  3283. if ("number" == typeof value) {
  3284. if ("string" == typeof err) {
  3285. throw new Error("If encoding is specified then the first argument must be a string");
  3286. }
  3287. return fn(this, value);
  3288. }
  3289. return copy(this, value, err, cb);
  3290. }
  3291. /**
  3292. * @param {string} obj
  3293. * @param {Object} a
  3294. * @param {number} cb
  3295. * @param {?} offset
  3296. * @return {?}
  3297. */
  3298. function copy(obj, a, cb, offset) {
  3299. if ("number" == typeof a) {
  3300. throw new TypeError('"value" argument must not be a number');
  3301. }
  3302. return "undefined" != typeof ArrayBuffer && a instanceof ArrayBuffer ? get(obj, a, cb, offset) : "string" == typeof a ? push(obj, a, cb) : write(obj, a);
  3303. }
  3304. /**
  3305. * @param {number} b
  3306. * @return {undefined}
  3307. */
  3308. function concat(b) {
  3309. if ("number" != typeof b) {
  3310. throw new TypeError('"size" argument must be a number');
  3311. }
  3312. if (b < 0) {
  3313. throw new RangeError('"size" argument must not be negative');
  3314. }
  3315. }
  3316. /**
  3317. * @param {Object} e
  3318. * @param {number} elem
  3319. * @param {number} context
  3320. * @param {number} value
  3321. * @return {?}
  3322. */
  3323. function click(e, elem, context, value) {
  3324. return concat(elem), elem <= 0 ? log(e, elem) : void 0 !== context ? "string" == typeof value ? log(e, elem).fill(context, value) : log(e, elem).fill(context) : log(e, elem);
  3325. }
  3326. /**
  3327. * @param {Object} b
  3328. * @param {number} key
  3329. * @return {?}
  3330. */
  3331. function fn(b, key) {
  3332. if (concat(key), b = log(b, key < 0 ? 0 : 0 | equal(key)), !self.TYPED_ARRAY_SUPPORT) {
  3333. /** @type {number} */
  3334. var i = 0;
  3335. for (;i < key;++i) {
  3336. /** @type {number} */
  3337. b[i] = 0;
  3338. }
  3339. }
  3340. return b;
  3341. }
  3342. /**
  3343. * @param {Object} s
  3344. * @param {string} data
  3345. * @param {string} encoding
  3346. * @return {?}
  3347. */
  3348. function push(s, data, encoding) {
  3349. if ("string" == typeof encoding && "" !== encoding || (encoding = "utf8"), !self.isEncoding(encoding)) {
  3350. throw new TypeError('"encoding" must be a valid string encoding');
  3351. }
  3352. /** @type {number} */
  3353. var expectationResult = 0 | decode(data, encoding);
  3354. s = log(s, expectationResult);
  3355. var pos = s.write(data, encoding);
  3356. return pos !== expectationResult && (s = s.slice(0, pos)), s;
  3357. }
  3358. /**
  3359. * @param {Object} data
  3360. * @param {Array} collection
  3361. * @return {?}
  3362. */
  3363. function callback(data, collection) {
  3364. /** @type {number} */
  3365. var len = collection.length < 0 ? 0 : 0 | equal(collection.length);
  3366. data = log(data, len);
  3367. /** @type {number} */
  3368. var i = 0;
  3369. for (;i < len;i += 1) {
  3370. /** @type {number} */
  3371. data[i] = 255 & collection[i];
  3372. }
  3373. return data;
  3374. }
  3375. /**
  3376. * @param {string} obj
  3377. * @param {string} data
  3378. * @param {number} offset
  3379. * @param {number} count
  3380. * @return {?}
  3381. */
  3382. function get(obj, data, offset, count) {
  3383. if (data.byteLength, offset < 0 || data.byteLength < offset) {
  3384. throw new RangeError("'offset' is out of bounds");
  3385. }
  3386. if (data.byteLength < offset + (count || 0)) {
  3387. throw new RangeError("'length' is out of bounds");
  3388. }
  3389. return data = void 0 === offset && void 0 === count ? new Uint8Array(data) : void 0 === count ? new Uint8Array(data, offset) : new Uint8Array(data, offset, count), self.TYPED_ARRAY_SUPPORT ? (obj = data, obj.__proto__ = self.prototype) : obj = callback(obj, data), obj;
  3390. }
  3391. /**
  3392. * @param {string} data
  3393. * @param {Object} object
  3394. * @return {?}
  3395. */
  3396. function write(data, object) {
  3397. if (self.isBuffer(object)) {
  3398. /** @type {number} */
  3399. var len = 0 | equal(object.length);
  3400. return data = log(data, len), 0 === data.length ? data : (object.copy(data, 0, 0, len), data);
  3401. }
  3402. if (object) {
  3403. if ("undefined" != typeof ArrayBuffer && object.buffer instanceof ArrayBuffer || "length" in object) {
  3404. return "number" != typeof object.length || assert(object.length) ? log(data, 0) : callback(data, object);
  3405. }
  3406. if ("Buffer" === object.type && extend(object.data)) {
  3407. return callback(data, object.data);
  3408. }
  3409. }
  3410. throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.");
  3411. }
  3412. /**
  3413. * @param {number} b
  3414. * @return {?}
  3415. */
  3416. function equal(b) {
  3417. if (b >= trim()) {
  3418. throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + trim().toString(16) + " bytes");
  3419. }
  3420. return 0 | b;
  3421. }
  3422. /**
  3423. * @param {number} failing_message
  3424. * @return {?}
  3425. */
  3426. function report(failing_message) {
  3427. return+failing_message != failing_message && (failing_message = 0), self.alloc(+failing_message);
  3428. }
  3429. /**
  3430. * @param {string} data
  3431. * @param {string} encoding
  3432. * @return {?}
  3433. */
  3434. function decode(data, encoding) {
  3435. if (self.isBuffer(data)) {
  3436. return data.length;
  3437. }
  3438. if ("undefined" != typeof ArrayBuffer && ("function" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(data) || data instanceof ArrayBuffer))) {
  3439. return data.byteLength;
  3440. }
  3441. if ("string" != typeof data) {
  3442. /** @type {string} */
  3443. data = "" + data;
  3444. }
  3445. var pending = data.length;
  3446. if (0 === pending) {
  3447. return 0;
  3448. }
  3449. /** @type {boolean} */
  3450. var r = false;
  3451. for (;;) {
  3452. switch(encoding) {
  3453. case "ascii":
  3454. ;
  3455. case "latin1":
  3456. ;
  3457. case "binary":
  3458. return pending;
  3459. case "utf8":
  3460. ;
  3461. case "utf-8":
  3462. ;
  3463. case void 0:
  3464. return read(data).length;
  3465. case "ucs2":
  3466. ;
  3467. case "ucs-2":
  3468. ;
  3469. case "utf16le":
  3470. ;
  3471. case "utf-16le":
  3472. return 2 * pending;
  3473. case "hex":
  3474. return pending >>> 1;
  3475. case "base64":
  3476. return unescape(data).length;
  3477. default:
  3478. if (r) {
  3479. return read(data).length;
  3480. }
  3481. /** @type {string} */
  3482. encoding = ("" + encoding).toLowerCase();
  3483. /** @type {boolean} */
  3484. r = true;
  3485. }
  3486. }
  3487. }
  3488. /**
  3489. * @param {string} encoding
  3490. * @param {number} next
  3491. * @param {number} callback
  3492. * @return {?}
  3493. */
  3494. function query(encoding, next, callback) {
  3495. /** @type {boolean} */
  3496. var r = false;
  3497. if ((void 0 === next || next < 0) && (next = 0), next > this.length) {
  3498. return "";
  3499. }
  3500. if ((void 0 === callback || callback > this.length) && (callback = this.length), callback <= 0) {
  3501. return "";
  3502. }
  3503. if (callback >>>= 0, next >>>= 0, callback <= next) {
  3504. return "";
  3505. }
  3506. if (!encoding) {
  3507. /** @type {string} */
  3508. encoding = "utf8";
  3509. }
  3510. for (;;) {
  3511. switch(encoding) {
  3512. case "hex":
  3513. return find(this, next, callback);
  3514. case "utf8":
  3515. ;
  3516. case "utf-8":
  3517. return slice(this, next, callback);
  3518. case "ascii":
  3519. return prepare(this, next, callback);
  3520. case "latin1":
  3521. ;
  3522. case "binary":
  3523. return update(this, next, callback);
  3524. case "base64":
  3525. return exec(this, next, callback);
  3526. case "ucs2":
  3527. ;
  3528. case "ucs-2":
  3529. ;
  3530. case "utf16le":
  3531. ;
  3532. case "utf-16le":
  3533. return func(this, next, callback);
  3534. default:
  3535. if (r) {
  3536. throw new TypeError("Unknown encoding: " + encoding);
  3537. }
  3538. /** @type {string} */
  3539. encoding = (encoding + "").toLowerCase();
  3540. /** @type {boolean} */
  3541. r = true;
  3542. }
  3543. }
  3544. }
  3545. /**
  3546. * @param {Array} obj
  3547. * @param {number} attr
  3548. * @param {number} key
  3549. * @return {undefined}
  3550. */
  3551. function buildParams(obj, attr, key) {
  3552. var val = obj[attr];
  3553. obj[attr] = obj[key];
  3554. obj[key] = val;
  3555. }
  3556. /**
  3557. * @param {string} array
  3558. * @param {number} value
  3559. * @param {number} index
  3560. * @param {number} key
  3561. * @param {boolean} recurring
  3562. * @return {?}
  3563. */
  3564. function _find(array, value, index, key, recurring) {
  3565. if (0 === array.length) {
  3566. return-1;
  3567. }
  3568. if ("string" == typeof index ? (key = index, index = 0) : index > 2147483647 ? index = 2147483647 : index < -2147483648 && (index = -2147483648), index = +index, isNaN(index) && (index = recurring ? 0 : array.length - 1), index < 0 && (index = array.length + index), index >= array.length) {
  3569. if (recurring) {
  3570. return-1;
  3571. }
  3572. /** @type {number} */
  3573. index = array.length - 1;
  3574. } else {
  3575. if (index < 0) {
  3576. if (!recurring) {
  3577. return-1;
  3578. }
  3579. /** @type {number} */
  3580. index = 0;
  3581. }
  3582. }
  3583. if ("string" == typeof value && (value = self.from(value, key)), self.isBuffer(value)) {
  3584. return 0 === value.length ? -1 : iterator(array, value, index, key, recurring);
  3585. }
  3586. if ("number" == typeof value) {
  3587. return value &= 255, self.TYPED_ARRAY_SUPPORT && "function" == typeof Uint8Array.prototype.indexOf ? recurring ? Uint8Array.prototype.indexOf.call(array, value, index) : Uint8Array.prototype.lastIndexOf.call(array, value, index) : iterator(array, [value], index, key, recurring);
  3588. }
  3589. throw new TypeError("val must be string, number or Buffer");
  3590. }
  3591. /**
  3592. * @param {string} type
  3593. * @param {?} value
  3594. * @param {number} i
  3595. * @param {string} obj
  3596. * @param {boolean} recurring
  3597. * @return {?}
  3598. */
  3599. function iterator(type, value, i, obj, recurring) {
  3600. /**
  3601. * @param {Object} obj
  3602. * @param {number} value
  3603. * @return {?}
  3604. */
  3605. function iterator(obj, value) {
  3606. return 1 === power ? obj[value] : obj.readUInt16BE(value * power);
  3607. }
  3608. /** @type {number} */
  3609. var power = 1;
  3610. var length = type.length;
  3611. var j = value.length;
  3612. if (void 0 !== obj && (obj = String(obj).toLowerCase(), "ucs2" === obj || ("ucs-2" === obj || ("utf16le" === obj || "utf-16le" === obj)))) {
  3613. if (type.length < 2 || value.length < 2) {
  3614. return-1;
  3615. }
  3616. /** @type {number} */
  3617. power = 2;
  3618. length /= 2;
  3619. j /= 2;
  3620. i /= 2;
  3621. }
  3622. var a;
  3623. if (recurring) {
  3624. /** @type {number} */
  3625. var b = -1;
  3626. /** @type {number} */
  3627. a = i;
  3628. for (;a < length;a++) {
  3629. if (iterator(type, a) === iterator(value, b === -1 ? 0 : a - b)) {
  3630. if (b === -1 && (b = a), a - b + 1 === j) {
  3631. return b * power;
  3632. }
  3633. } else {
  3634. if (b !== -1) {
  3635. a -= a - b;
  3636. }
  3637. /** @type {number} */
  3638. b = -1;
  3639. }
  3640. }
  3641. } else {
  3642. if (i + j > length) {
  3643. /** @type {number} */
  3644. i = length - j;
  3645. }
  3646. /** @type {number} */
  3647. a = i;
  3648. for (;a >= 0;a--) {
  3649. /** @type {boolean} */
  3650. var f = true;
  3651. /** @type {number} */
  3652. var x = 0;
  3653. for (;x < j;x++) {
  3654. if (iterator(type, a + x) !== iterator(value, x)) {
  3655. /** @type {boolean} */
  3656. f = false;
  3657. break;
  3658. }
  3659. }
  3660. if (f) {
  3661. return a;
  3662. }
  3663. }
  3664. }
  3665. return-1;
  3666. }
  3667. /**
  3668. * @param {(Array|number)} buffer
  3669. * @param {string} context
  3670. * @param {number} offset
  3671. * @param {number} value
  3672. * @return {?}
  3673. */
  3674. function format(buffer, context, offset, value) {
  3675. /** @type {number} */
  3676. offset = Number(offset) || 0;
  3677. /** @type {number} */
  3678. var maxValue = buffer.length - offset;
  3679. if (value) {
  3680. /** @type {number} */
  3681. value = Number(value);
  3682. if (value > maxValue) {
  3683. /** @type {number} */
  3684. value = maxValue;
  3685. }
  3686. } else {
  3687. /** @type {number} */
  3688. value = maxValue;
  3689. }
  3690. var j = context.length;
  3691. if (j % 2 !== 0) {
  3692. throw new TypeError("Invalid hex string");
  3693. }
  3694. if (value > j / 2) {
  3695. /** @type {number} */
  3696. value = j / 2;
  3697. }
  3698. /** @type {number} */
  3699. var i = 0;
  3700. for (;i < value;++i) {
  3701. /** @type {number} */
  3702. var num2 = parseInt(context.substr(2 * i, 2), 16);
  3703. if (isNaN(num2)) {
  3704. return i;
  3705. }
  3706. /** @type {number} */
  3707. buffer[offset + i] = num2;
  3708. }
  3709. return i;
  3710. }
  3711. /**
  3712. * @param {?} p
  3713. * @param {string} data
  3714. * @param {number} offset
  3715. * @param {number} length
  3716. * @return {?}
  3717. */
  3718. function locateSeq(p, data, offset, length) {
  3719. return indexOf(read(data, p.length - offset), p, offset, length);
  3720. }
  3721. /**
  3722. * @param {?} x
  3723. * @param {string} elements
  3724. * @param {number} offset
  3725. * @param {number} length
  3726. * @return {?}
  3727. */
  3728. function splice(x, elements, offset, length) {
  3729. return indexOf(MAP(elements), x, offset, length);
  3730. }
  3731. /**
  3732. * @param {?} num
  3733. * @param {string} buffer
  3734. * @param {number} offset
  3735. * @param {number} length
  3736. * @return {?}
  3737. */
  3738. function put(num, buffer, offset, length) {
  3739. return splice(num, buffer, offset, length);
  3740. }
  3741. /**
  3742. * @param {?} callback
  3743. * @param {string} code
  3744. * @param {number} offset
  3745. * @param {number} length
  3746. * @return {?}
  3747. */
  3748. function writeAll(callback, code, offset, length) {
  3749. return indexOf(unescape(code), callback, offset, length);
  3750. }
  3751. /**
  3752. * @param {?} p
  3753. * @param {string} data
  3754. * @param {number} offset
  3755. * @param {number} buffer
  3756. * @return {?}
  3757. */
  3758. function isSeq(p, data, offset, buffer) {
  3759. return indexOf(clone(data, p.length - offset), p, offset, buffer);
  3760. }
  3761. /**
  3762. * @param {Array} str
  3763. * @param {number} start
  3764. * @param {?} i
  3765. * @return {?}
  3766. */
  3767. function exec(str, start, i) {
  3768. return 0 === start && i === str.length ? _.fromByteArray(str) : _.fromByteArray(str.slice(start, i));
  3769. }
  3770. /**
  3771. * @param {Arguments} start
  3772. * @param {number} a
  3773. * @param {number} expectedNumberOfNonCommentArgs
  3774. * @return {?}
  3775. */
  3776. function slice(start, a, expectedNumberOfNonCommentArgs) {
  3777. /** @type {number} */
  3778. expectedNumberOfNonCommentArgs = Math.min(start.length, expectedNumberOfNonCommentArgs);
  3779. /** @type {Array} */
  3780. var typePattern = [];
  3781. /** @type {number} */
  3782. var y = a;
  3783. for (;y < expectedNumberOfNonCommentArgs;) {
  3784. var current = start[y];
  3785. /** @type {null} */
  3786. var copies = null;
  3787. /** @type {number} */
  3788. var h = current > 239 ? 4 : current > 223 ? 3 : current > 191 ? 2 : 1;
  3789. if (y + h <= expectedNumberOfNonCommentArgs) {
  3790. var y0;
  3791. var x0;
  3792. var l;
  3793. var cc;
  3794. switch(h) {
  3795. case 1:
  3796. if (current < 128) {
  3797. copies = current;
  3798. }
  3799. break;
  3800. case 2:
  3801. y0 = start[y + 1];
  3802. if (128 === (192 & y0)) {
  3803. /** @type {number} */
  3804. cc = (31 & current) << 6 | 63 & y0;
  3805. if (cc > 127) {
  3806. /** @type {number} */
  3807. copies = cc;
  3808. }
  3809. }
  3810. break;
  3811. case 3:
  3812. y0 = start[y + 1];
  3813. x0 = start[y + 2];
  3814. if (128 === (192 & y0)) {
  3815. if (128 === (192 & x0)) {
  3816. /** @type {number} */
  3817. cc = (15 & current) << 12 | (63 & y0) << 6 | 63 & x0;
  3818. if (cc > 2047) {
  3819. if (cc < 55296 || cc > 57343) {
  3820. /** @type {number} */
  3821. copies = cc;
  3822. }
  3823. }
  3824. }
  3825. }
  3826. break;
  3827. case 4:
  3828. y0 = start[y + 1];
  3829. x0 = start[y + 2];
  3830. l = start[y + 3];
  3831. if (128 === (192 & y0)) {
  3832. if (128 === (192 & x0)) {
  3833. if (128 === (192 & l)) {
  3834. /** @type {number} */
  3835. cc = (15 & current) << 18 | (63 & y0) << 12 | (63 & x0) << 6 | 63 & l;
  3836. if (cc > 65535) {
  3837. if (cc < 1114112) {
  3838. /** @type {number} */
  3839. copies = cc;
  3840. }
  3841. }
  3842. }
  3843. }
  3844. }
  3845. ;
  3846. }
  3847. }
  3848. if (null === copies) {
  3849. /** @type {number} */
  3850. copies = 65533;
  3851. /** @type {number} */
  3852. h = 1;
  3853. } else {
  3854. if (copies > 65535) {
  3855. copies -= 65536;
  3856. typePattern.push(copies >>> 10 & 1023 | 55296);
  3857. /** @type {number} */
  3858. copies = 56320 | 1023 & copies;
  3859. }
  3860. }
  3861. typePattern.push(copies);
  3862. y += h;
  3863. }
  3864. return call(typePattern);
  3865. }
  3866. /**
  3867. * @param {string} args
  3868. * @return {?}
  3869. */
  3870. function call(args) {
  3871. var l = args.length;
  3872. if (l <= length) {
  3873. return String.fromCharCode.apply(String, args);
  3874. }
  3875. /** @type {string} */
  3876. var str = "";
  3877. /** @type {number} */
  3878. var i = 0;
  3879. for (;i < l;) {
  3880. str += String.fromCharCode.apply(String, args.slice(i, i += length));
  3881. }
  3882. return str;
  3883. }
  3884. /**
  3885. * @param {Arguments} to
  3886. * @param {number} start
  3887. * @param {number} expectedNumberOfNonCommentArgs
  3888. * @return {?}
  3889. */
  3890. function prepare(to, start, expectedNumberOfNonCommentArgs) {
  3891. /** @type {string} */
  3892. var newEvents = "";
  3893. /** @type {number} */
  3894. expectedNumberOfNonCommentArgs = Math.min(to.length, expectedNumberOfNonCommentArgs);
  3895. /** @type {number} */
  3896. var i = start;
  3897. for (;i < expectedNumberOfNonCommentArgs;++i) {
  3898. newEvents += String.fromCharCode(127 & to[i]);
  3899. }
  3900. return newEvents;
  3901. }
  3902. /**
  3903. * @param {Arguments} block
  3904. * @param {number} from
  3905. * @param {number} expectedNumberOfNonCommentArgs
  3906. * @return {?}
  3907. */
  3908. function update(block, from, expectedNumberOfNonCommentArgs) {
  3909. /** @type {string} */
  3910. var _result = "";
  3911. /** @type {number} */
  3912. expectedNumberOfNonCommentArgs = Math.min(block.length, expectedNumberOfNonCommentArgs);
  3913. /** @type {number} */
  3914. var i = from;
  3915. for (;i < expectedNumberOfNonCommentArgs;++i) {
  3916. _result += String.fromCharCode(block[i]);
  3917. }
  3918. return _result;
  3919. }
  3920. /**
  3921. * @param {Arguments} array
  3922. * @param {number} start
  3923. * @param {?} value
  3924. * @return {?}
  3925. */
  3926. function find(array, start, value) {
  3927. var high = array.length;
  3928. if (!start || start < 0) {
  3929. /** @type {number} */
  3930. start = 0;
  3931. }
  3932. if (!value || (value < 0 || value > high)) {
  3933. value = high;
  3934. }
  3935. /** @type {string} */
  3936. var results = "";
  3937. /** @type {number} */
  3938. var i = start;
  3939. for (;i < value;++i) {
  3940. results += predicate(array[i]);
  3941. }
  3942. return results;
  3943. }
  3944. /**
  3945. * @param {Object} t
  3946. * @param {number} i
  3947. * @param {number} n
  3948. * @return {?}
  3949. */
  3950. function func(t, i, n) {
  3951. var chunks = t.slice(i, n);
  3952. /** @type {string} */
  3953. var cnt = "";
  3954. /** @type {number} */
  3955. var chunkIndex = 0;
  3956. for (;chunkIndex < chunks.length;chunkIndex += 2) {
  3957. cnt += String.fromCharCode(chunks[chunkIndex] + 256 * chunks[chunkIndex + 1]);
  3958. }
  3959. return cnt;
  3960. }
  3961. /**
  3962. * @param {number} keepData
  3963. * @param {number} expectedNumberOfNonCommentArgs
  3964. * @param {?} name
  3965. * @return {undefined}
  3966. */
  3967. function make_name(keepData, expectedNumberOfNonCommentArgs, name) {
  3968. if (keepData % 1 !== 0 || keepData < 0) {
  3969. throw new RangeError("offset is not uint");
  3970. }
  3971. if (keepData + expectedNumberOfNonCommentArgs > name) {
  3972. throw new RangeError("Trying to access beyond buffer length");
  3973. }
  3974. }
  3975. /**
  3976. * @param {string} e
  3977. * @param {number} arg2
  3978. * @param {number} opts
  3979. * @param {number} expectedNumberOfNonCommentArgs
  3980. * @param {number} opt_attributes
  3981. * @param {number} outstandingDataSize
  3982. * @return {undefined}
  3983. */
  3984. function extractStacktrace(e, arg2, opts, expectedNumberOfNonCommentArgs, opt_attributes, outstandingDataSize) {
  3985. if (!self.isBuffer(e)) {
  3986. throw new TypeError('"buffer" argument must be a Buffer instance');
  3987. }
  3988. if (arg2 > opt_attributes || arg2 < outstandingDataSize) {
  3989. throw new RangeError('"value" argument is out of bounds');
  3990. }
  3991. if (opts + expectedNumberOfNonCommentArgs > e.length) {
  3992. throw new RangeError("Index out of range");
  3993. }
  3994. }
  3995. /**
  3996. * @param {Array} text
  3997. * @param {number} arg2
  3998. * @param {number} x
  3999. * @param {boolean} recurring
  4000. * @return {undefined}
  4001. */
  4002. function debug(text, arg2, x, recurring) {
  4003. if (arg2 < 0) {
  4004. arg2 = 65535 + arg2 + 1;
  4005. }
  4006. /** @type {number} */
  4007. var i = 0;
  4008. /** @type {number} */
  4009. var padLength = Math.min(text.length - x, 2);
  4010. for (;i < padLength;++i) {
  4011. /** @type {number} */
  4012. text[x + i] = (arg2 & 255 << 8 * (recurring ? i : 1 - i)) >>> 8 * (recurring ? i : 1 - i);
  4013. }
  4014. }
  4015. /**
  4016. * @param {Array} items
  4017. * @param {number} arg2
  4018. * @param {number} from
  4019. * @param {boolean} recurring
  4020. * @return {undefined}
  4021. */
  4022. function reset(items, arg2, from, recurring) {
  4023. if (arg2 < 0) {
  4024. arg2 = 4294967295 + arg2 + 1;
  4025. }
  4026. /** @type {number} */
  4027. var i = 0;
  4028. /** @type {number} */
  4029. var padLength = Math.min(items.length - from, 4);
  4030. for (;i < padLength;++i) {
  4031. /** @type {number} */
  4032. items[from + i] = arg2 >>> 8 * (recurring ? i : 3 - i) & 255;
  4033. }
  4034. }
  4035. /**
  4036. * @param {string} buffer
  4037. * @param {number} event
  4038. * @param {number} length
  4039. * @param {number} i
  4040. * @param {number} opt_attributes
  4041. * @param {number} opt_interval
  4042. * @return {undefined}
  4043. */
  4044. function next(buffer, event, length, i, opt_attributes, opt_interval) {
  4045. if (length + i > buffer.length) {
  4046. throw new RangeError("Index out of range");
  4047. }
  4048. if (length < 0) {
  4049. throw new RangeError("Index out of range");
  4050. }
  4051. }
  4052. /**
  4053. * @param {string} name
  4054. * @param {number} buffer
  4055. * @param {number} length
  4056. * @param {boolean} data
  4057. * @param {(Object|boolean|number|string)} deepDataAndEvents
  4058. * @return {?}
  4059. */
  4060. function ondata(name, buffer, length, data, deepDataAndEvents) {
  4061. return deepDataAndEvents || next(name, buffer, length, 4, 3.4028234663852886E38, -3.4028234663852886E38), client.write(name, buffer, length, data, 23, 4), length + 4;
  4062. }
  4063. /**
  4064. * @param {string} name
  4065. * @param {number} arg
  4066. * @param {number} extra
  4067. * @param {boolean} data
  4068. * @param {(Object|boolean|number|string)} deepDataAndEvents
  4069. * @return {?}
  4070. */
  4071. function trigger(name, arg, extra, data, deepDataAndEvents) {
  4072. return deepDataAndEvents || next(name, arg, extra, 8, 1.7976931348623157E308, -1.7976931348623157E308), client.write(name, arg, extra, data, 52, 8), extra + 8;
  4073. }
  4074. /**
  4075. * @param {string} string
  4076. * @return {?}
  4077. */
  4078. function replacer(string) {
  4079. if (string = strip(string).replace(r20, ""), string.length < 2) {
  4080. return "";
  4081. }
  4082. for (;string.length % 4 !== 0;) {
  4083. string += "=";
  4084. }
  4085. return string;
  4086. }
  4087. /**
  4088. * @param {string} string
  4089. * @return {?}
  4090. */
  4091. function strip(string) {
  4092. return string.trim ? string.trim() : string.replace(/^\s+|\s+$/g, "");
  4093. }
  4094. /**
  4095. * @param {number} code
  4096. * @return {?}
  4097. */
  4098. function predicate(code) {
  4099. return code < 16 ? "0" + code.toString(16) : code.toString(16);
  4100. }
  4101. /**
  4102. * @param {string} bytes
  4103. * @param {number} fileName
  4104. * @return {?}
  4105. */
  4106. function read(bytes, fileName) {
  4107. fileName = fileName || 1 / 0;
  4108. var c;
  4109. var n = bytes.length;
  4110. /** @type {null} */
  4111. var quote = null;
  4112. /** @type {Array} */
  4113. var _results = [];
  4114. /** @type {number} */
  4115. var i = 0;
  4116. for (;i < n;++i) {
  4117. if (c = bytes.charCodeAt(i), c > 55295 && c < 57344) {
  4118. if (!quote) {
  4119. if (c > 56319) {
  4120. if ((fileName -= 3) > -1) {
  4121. _results.push(239, 191, 189);
  4122. }
  4123. continue;
  4124. }
  4125. if (i + 1 === n) {
  4126. if ((fileName -= 3) > -1) {
  4127. _results.push(239, 191, 189);
  4128. }
  4129. continue;
  4130. }
  4131. quote = c;
  4132. continue;
  4133. }
  4134. if (c < 56320) {
  4135. if ((fileName -= 3) > -1) {
  4136. _results.push(239, 191, 189);
  4137. }
  4138. quote = c;
  4139. continue;
  4140. }
  4141. /** @type {number} */
  4142. c = (quote - 55296 << 10 | c - 56320) + 65536;
  4143. } else {
  4144. if (quote) {
  4145. if ((fileName -= 3) > -1) {
  4146. _results.push(239, 191, 189);
  4147. }
  4148. }
  4149. }
  4150. if (quote = null, c < 128) {
  4151. if ((fileName -= 1) < 0) {
  4152. break;
  4153. }
  4154. _results.push(c);
  4155. } else {
  4156. if (c < 2048) {
  4157. if ((fileName -= 2) < 0) {
  4158. break;
  4159. }
  4160. _results.push(c >> 6 | 192, 63 & c | 128);
  4161. } else {
  4162. if (c < 65536) {
  4163. if ((fileName -= 3) < 0) {
  4164. break;
  4165. }
  4166. _results.push(c >> 12 | 224, c >> 6 & 63 | 128, 63 & c | 128);
  4167. } else {
  4168. if (!(c < 1114112)) {
  4169. throw new Error("Invalid code point");
  4170. }
  4171. if ((fileName -= 4) < 0) {
  4172. break;
  4173. }
  4174. _results.push(c >> 18 | 240, c >> 12 & 63 | 128, c >> 6 & 63 | 128, 63 & c | 128);
  4175. }
  4176. }
  4177. }
  4178. }
  4179. return _results;
  4180. }
  4181. /**
  4182. * @param {string} a
  4183. * @return {?}
  4184. */
  4185. function MAP(a) {
  4186. /** @type {Array} */
  4187. var ret = [];
  4188. /** @type {number} */
  4189. var i = 0;
  4190. for (;i < a.length;++i) {
  4191. ret.push(255 & a.charCodeAt(i));
  4192. }
  4193. return ret;
  4194. }
  4195. /**
  4196. * @param {string} buffer
  4197. * @param {number} dataAndEvents
  4198. * @return {?}
  4199. */
  4200. function clone(buffer, dataAndEvents) {
  4201. var x;
  4202. var copies;
  4203. var h;
  4204. /** @type {Array} */
  4205. var out = [];
  4206. /** @type {number} */
  4207. var j = 0;
  4208. for (;j < buffer.length && !((dataAndEvents -= 2) < 0);++j) {
  4209. x = buffer.charCodeAt(j);
  4210. /** @type {number} */
  4211. copies = x >> 8;
  4212. /** @type {number} */
  4213. h = x % 256;
  4214. out.push(h);
  4215. out.push(copies);
  4216. }
  4217. return out;
  4218. }
  4219. /**
  4220. * @param {string} string
  4221. * @return {?}
  4222. */
  4223. function unescape(string) {
  4224. return _.toByteArray(replacer(string));
  4225. }
  4226. /**
  4227. * @param {Array} arr
  4228. * @param {?} list
  4229. * @param {number} offset
  4230. * @param {number} start
  4231. * @return {?}
  4232. */
  4233. function indexOf(arr, list, offset, start) {
  4234. /** @type {number} */
  4235. var i = 0;
  4236. for (;i < start && !(i + offset >= list.length || i >= arr.length);++i) {
  4237. list[i + offset] = arr[i];
  4238. }
  4239. return i;
  4240. }
  4241. /**
  4242. * @param {?} guard
  4243. * @return {?}
  4244. */
  4245. function assert(guard) {
  4246. return guard !== guard;
  4247. }
  4248. var _ = require(19);
  4249. var client = require(21);
  4250. var extend = require(22);
  4251. /** @type {function (number, number, string): ?} */
  4252. el.Buffer = self;
  4253. /** @type {function (number): ?} */
  4254. el.SlowBuffer = report;
  4255. /** @type {number} */
  4256. el.INSPECT_MAX_BYTES = 50;
  4257. self.TYPED_ARRAY_SUPPORT = void 0 !== dataAndEvents.TYPED_ARRAY_SUPPORT ? dataAndEvents.TYPED_ARRAY_SUPPORT : parse();
  4258. el.kMaxLength = trim();
  4259. /** @type {number} */
  4260. self.poolSize = 8192;
  4261. /**
  4262. * @param {Object} obj
  4263. * @return {?}
  4264. */
  4265. self._augment = function(obj) {
  4266. return obj.__proto__ = self.prototype, obj;
  4267. };
  4268. /**
  4269. * @param {number} target
  4270. * @param {number} key
  4271. * @param {?} sz
  4272. * @return {?}
  4273. */
  4274. self.from = function(target, key, sz) {
  4275. return copy(null, target, key, sz);
  4276. };
  4277. if (self.TYPED_ARRAY_SUPPORT) {
  4278. self.prototype.__proto__ = Uint8Array.prototype;
  4279. /** @type {function (new:Uint8Array, (Array.<number>|ArrayBuffer|ArrayBufferView|null|number), number=, number=): ?} */
  4280. self.__proto__ = Uint8Array;
  4281. if ("undefined" != typeof Symbol) {
  4282. if (Symbol.species) {
  4283. if (self[Symbol.species] === self) {
  4284. Object.defineProperty(self, Symbol.species, {
  4285. value : null,
  4286. configurable : true
  4287. });
  4288. }
  4289. }
  4290. }
  4291. }
  4292. /**
  4293. * @param {number} obj
  4294. * @param {number} parent
  4295. * @param {number} isXML
  4296. * @return {?}
  4297. */
  4298. self.alloc = function(obj, parent, isXML) {
  4299. return click(null, obj, parent, isXML);
  4300. };
  4301. /**
  4302. * @param {number} key
  4303. * @return {?}
  4304. */
  4305. self.allocUnsafe = function(key) {
  4306. return fn(null, key);
  4307. };
  4308. /**
  4309. * @param {number} key
  4310. * @return {?}
  4311. */
  4312. self.allocUnsafeSlow = function(key) {
  4313. return fn(null, key);
  4314. };
  4315. /**
  4316. * @param {?} actual
  4317. * @return {?}
  4318. */
  4319. self.isBuffer = function(actual) {
  4320. return!(null == actual || !actual._isBuffer);
  4321. };
  4322. /**
  4323. * @param {?} actual
  4324. * @param {?} expected
  4325. * @return {?}
  4326. */
  4327. self.compare = function(actual, expected) {
  4328. if (!self.isBuffer(actual) || !self.isBuffer(expected)) {
  4329. throw new TypeError("Arguments must be Buffers");
  4330. }
  4331. if (actual === expected) {
  4332. return 0;
  4333. }
  4334. var which = actual.length;
  4335. var expectedNumberOfNonCommentArgs = expected.length;
  4336. /** @type {number} */
  4337. var i = 0;
  4338. /** @type {number} */
  4339. var padLength = Math.min(which, expectedNumberOfNonCommentArgs);
  4340. for (;i < padLength;++i) {
  4341. if (actual[i] !== expected[i]) {
  4342. which = actual[i];
  4343. expectedNumberOfNonCommentArgs = expected[i];
  4344. break;
  4345. }
  4346. }
  4347. return which < expectedNumberOfNonCommentArgs ? -1 : expectedNumberOfNonCommentArgs < which ? 1 : 0;
  4348. };
  4349. /**
  4350. * @param {(number|string)} str
  4351. * @return {?}
  4352. */
  4353. self.isEncoding = function(str) {
  4354. switch(String(str).toLowerCase()) {
  4355. case "hex":
  4356. ;
  4357. case "utf8":
  4358. ;
  4359. case "utf-8":
  4360. ;
  4361. case "ascii":
  4362. ;
  4363. case "latin1":
  4364. ;
  4365. case "binary":
  4366. ;
  4367. case "base64":
  4368. ;
  4369. case "ucs2":
  4370. ;
  4371. case "ucs-2":
  4372. ;
  4373. case "utf16le":
  4374. ;
  4375. case "utf-16le":
  4376. return true;
  4377. default:
  4378. return false;
  4379. }
  4380. };
  4381. /**
  4382. * @param {?} s
  4383. * @param {number} length
  4384. * @return {?}
  4385. */
  4386. self.concat = function(s, length) {
  4387. if (!extend(s)) {
  4388. throw new TypeError('"list" argument must be an Array of Buffers');
  4389. }
  4390. if (0 === s.length) {
  4391. return self.alloc(0);
  4392. }
  4393. var i;
  4394. if (void 0 === length) {
  4395. /** @type {number} */
  4396. length = 0;
  4397. /** @type {number} */
  4398. i = 0;
  4399. for (;i < s.length;++i) {
  4400. length += s[i].length;
  4401. }
  4402. }
  4403. var result = self.allocUnsafe(length);
  4404. /** @type {number} */
  4405. var mbOff = 0;
  4406. /** @type {number} */
  4407. i = 0;
  4408. for (;i < s.length;++i) {
  4409. var b = s[i];
  4410. if (!self.isBuffer(b)) {
  4411. throw new TypeError('"list" argument must be an Array of Buffers');
  4412. }
  4413. b.copy(result, mbOff);
  4414. mbOff += b.length;
  4415. }
  4416. return result;
  4417. };
  4418. /** @type {function (string, string): ?} */
  4419. self.byteLength = decode;
  4420. /** @type {boolean} */
  4421. self.prototype._isBuffer = true;
  4422. /**
  4423. * @return {?}
  4424. */
  4425. self.prototype.swap16 = function() {
  4426. var l = this.length;
  4427. if (l % 2 !== 0) {
  4428. throw new RangeError("Buffer size must be a multiple of 16-bits");
  4429. }
  4430. /** @type {number} */
  4431. var v = 0;
  4432. for (;v < l;v += 2) {
  4433. buildParams(this, v, v + 1);
  4434. }
  4435. return this;
  4436. };
  4437. /**
  4438. * @return {?}
  4439. */
  4440. self.prototype.swap32 = function() {
  4441. var l = this.length;
  4442. if (l % 4 !== 0) {
  4443. throw new RangeError("Buffer size must be a multiple of 32-bits");
  4444. }
  4445. /** @type {number} */
  4446. var v = 0;
  4447. for (;v < l;v += 4) {
  4448. buildParams(this, v, v + 3);
  4449. buildParams(this, v + 1, v + 2);
  4450. }
  4451. return this;
  4452. };
  4453. /**
  4454. * @return {?}
  4455. */
  4456. self.prototype.swap64 = function() {
  4457. var l = this.length;
  4458. if (l % 8 !== 0) {
  4459. throw new RangeError("Buffer size must be a multiple of 64-bits");
  4460. }
  4461. /** @type {number} */
  4462. var v = 0;
  4463. for (;v < l;v += 8) {
  4464. buildParams(this, v, v + 7);
  4465. buildParams(this, v + 1, v + 6);
  4466. buildParams(this, v + 2, v + 5);
  4467. buildParams(this, v + 3, v + 4);
  4468. }
  4469. return this;
  4470. };
  4471. /**
  4472. * @return {?}
  4473. */
  4474. self.prototype.toString = function() {
  4475. /** @type {number} */
  4476. var length = 0 | this.length;
  4477. return 0 === length ? "" : 0 === arguments.length ? slice(this, 0, length) : query.apply(this, arguments);
  4478. };
  4479. /**
  4480. * @param {?} b
  4481. * @return {?}
  4482. */
  4483. self.prototype.equals = function(b) {
  4484. if (!self.isBuffer(b)) {
  4485. throw new TypeError("Argument must be a Buffer");
  4486. }
  4487. return this === b || 0 === self.compare(this, b);
  4488. };
  4489. /**
  4490. * @return {?}
  4491. */
  4492. self.prototype.inspect = function() {
  4493. /** @type {string} */
  4494. var optsData = "";
  4495. var max = el.INSPECT_MAX_BYTES;
  4496. return this.length > 0 && (optsData = this.toString("hex", 0, max).match(/.{2}/g).join(" "), this.length > max && (optsData += " ... ")), "<Buffer " + optsData + ">";
  4497. };
  4498. /**
  4499. * @param {Array} b
  4500. * @param {number} start
  4501. * @param {number} end
  4502. * @param {number} index
  4503. * @param {number} length
  4504. * @return {?}
  4505. */
  4506. self.prototype.compare = function(b, start, end, index, length) {
  4507. if (!self.isBuffer(b)) {
  4508. throw new TypeError("Argument must be a Buffer");
  4509. }
  4510. if (void 0 === start && (start = 0), void 0 === end && (end = b ? b.length : 0), void 0 === index && (index = 0), void 0 === length && (length = this.length), start < 0 || (end > b.length || (index < 0 || length > this.length))) {
  4511. throw new RangeError("out of range index");
  4512. }
  4513. if (index >= length && start >= end) {
  4514. return 0;
  4515. }
  4516. if (index >= length) {
  4517. return-1;
  4518. }
  4519. if (start >= end) {
  4520. return 1;
  4521. }
  4522. if (start >>>= 0, end >>>= 0, index >>>= 0, length >>>= 0, this === b) {
  4523. return 0;
  4524. }
  4525. /** @type {number} */
  4526. var which = length - index;
  4527. /** @type {number} */
  4528. var expectedNumberOfNonCommentArgs = end - start;
  4529. /** @type {number} */
  4530. var padLength = Math.min(which, expectedNumberOfNonCommentArgs);
  4531. var bytes = this.slice(index, length);
  4532. var context = b.slice(start, end);
  4533. /** @type {number} */
  4534. var i = 0;
  4535. for (;i < padLength;++i) {
  4536. if (bytes[i] !== context[i]) {
  4537. which = bytes[i];
  4538. expectedNumberOfNonCommentArgs = context[i];
  4539. break;
  4540. }
  4541. }
  4542. return which < expectedNumberOfNonCommentArgs ? -1 : expectedNumberOfNonCommentArgs < which ? 1 : 0;
  4543. };
  4544. /**
  4545. * @param {?} data
  4546. * @param {number} from
  4547. * @param {number} object
  4548. * @return {?}
  4549. */
  4550. self.prototype.includes = function(data, from, object) {
  4551. return this.indexOf(data, from, object) !== -1;
  4552. };
  4553. /**
  4554. * @param {?} item
  4555. * @param {number} from
  4556. * @param {number} collection
  4557. * @return {?}
  4558. */
  4559. self.prototype.indexOf = function(item, from, collection) {
  4560. return _find(this, item, from, collection, true);
  4561. };
  4562. /**
  4563. * @param {number} haystack
  4564. * @param {number} from
  4565. * @param {number} subKey
  4566. * @return {?}
  4567. */
  4568. self.prototype.lastIndexOf = function(haystack, from, subKey) {
  4569. return _find(this, haystack, from, subKey, false);
  4570. };
  4571. /**
  4572. * @param {string} buffer
  4573. * @param {number} offset
  4574. * @param {number} length
  4575. * @param {number} encoding
  4576. * @return {?}
  4577. */
  4578. self.prototype.write = function(buffer, offset, length, encoding) {
  4579. if (void 0 === offset) {
  4580. /** @type {string} */
  4581. encoding = "utf8";
  4582. length = this.length;
  4583. /** @type {number} */
  4584. offset = 0;
  4585. } else {
  4586. if (void 0 === length && "string" == typeof offset) {
  4587. /** @type {number} */
  4588. encoding = offset;
  4589. length = this.length;
  4590. /** @type {number} */
  4591. offset = 0;
  4592. } else {
  4593. if (!isFinite(offset)) {
  4594. throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
  4595. }
  4596. offset |= 0;
  4597. if (isFinite(length)) {
  4598. length |= 0;
  4599. if (void 0 === encoding) {
  4600. /** @type {string} */
  4601. encoding = "utf8";
  4602. }
  4603. } else {
  4604. /** @type {number} */
  4605. encoding = length;
  4606. length = void 0;
  4607. }
  4608. }
  4609. }
  4610. /** @type {number} */
  4611. var remaining = this.length - offset;
  4612. if ((void 0 === length || length > remaining) && (length = remaining), buffer.length > 0 && (length < 0 || offset < 0) || offset > this.length) {
  4613. throw new RangeError("Attempt to write outside buffer bounds");
  4614. }
  4615. if (!encoding) {
  4616. /** @type {string} */
  4617. encoding = "utf8";
  4618. }
  4619. /** @type {boolean} */
  4620. var a = false;
  4621. for (;;) {
  4622. switch(encoding) {
  4623. case "hex":
  4624. return format(this, buffer, offset, length);
  4625. case "utf8":
  4626. ;
  4627. case "utf-8":
  4628. return locateSeq(this, buffer, offset, length);
  4629. case "ascii":
  4630. return splice(this, buffer, offset, length);
  4631. case "latin1":
  4632. ;
  4633. case "binary":
  4634. return put(this, buffer, offset, length);
  4635. case "base64":
  4636. return writeAll(this, buffer, offset, length);
  4637. case "ucs2":
  4638. ;
  4639. case "ucs-2":
  4640. ;
  4641. case "utf16le":
  4642. ;
  4643. case "utf-16le":
  4644. return isSeq(this, buffer, offset, length);
  4645. default:
  4646. if (a) {
  4647. throw new TypeError("Unknown encoding: " + encoding);
  4648. }
  4649. /** @type {string} */
  4650. encoding = ("" + encoding).toLowerCase();
  4651. /** @type {boolean} */
  4652. a = true;
  4653. }
  4654. }
  4655. };
  4656. /**
  4657. * @return {?}
  4658. */
  4659. self.prototype.toJSON = function() {
  4660. return{
  4661. type : "Buffer",
  4662. data : Array.prototype.slice.call(this._arr || this, 0)
  4663. };
  4664. };
  4665. /** @type {number} */
  4666. var length = 4096;
  4667. /**
  4668. * @param {number} start
  4669. * @param {number} end
  4670. * @return {?}
  4671. */
  4672. self.prototype.slice = function(start, end) {
  4673. var len = this.length;
  4674. /** @type {number} */
  4675. start = ~~start;
  4676. end = void 0 === end ? len : ~~end;
  4677. if (start < 0) {
  4678. start += len;
  4679. if (start < 0) {
  4680. /** @type {number} */
  4681. start = 0;
  4682. }
  4683. } else {
  4684. if (start > len) {
  4685. start = len;
  4686. }
  4687. }
  4688. if (end < 0) {
  4689. end += len;
  4690. if (end < 0) {
  4691. /** @type {number} */
  4692. end = 0;
  4693. }
  4694. } else {
  4695. if (end > len) {
  4696. end = len;
  4697. }
  4698. }
  4699. if (end < start) {
  4700. /** @type {number} */
  4701. end = start;
  4702. }
  4703. var ret;
  4704. if (self.TYPED_ARRAY_SUPPORT) {
  4705. ret = this.subarray(start, end);
  4706. ret.__proto__ = self.prototype;
  4707. } else {
  4708. /** @type {number} */
  4709. var duration = end - start;
  4710. ret = new self(duration, void 0);
  4711. /** @type {number} */
  4712. var i = 0;
  4713. for (;i < duration;++i) {
  4714. ret[i] = this[i + start];
  4715. }
  4716. }
  4717. return ret;
  4718. };
  4719. /**
  4720. * @param {number} key
  4721. * @param {number} expectedNumberOfNonCommentArgs
  4722. * @param {?} dataAndEvents
  4723. * @return {?}
  4724. */
  4725. self.prototype.readUIntLE = function(key, expectedNumberOfNonCommentArgs, dataAndEvents) {
  4726. key |= 0;
  4727. expectedNumberOfNonCommentArgs |= 0;
  4728. if (!dataAndEvents) {
  4729. make_name(key, expectedNumberOfNonCommentArgs, this.length);
  4730. }
  4731. var value = this[key];
  4732. /** @type {number} */
  4733. var base = 1;
  4734. /** @type {number} */
  4735. var separator2 = 0;
  4736. for (;++separator2 < expectedNumberOfNonCommentArgs && (base *= 256);) {
  4737. value += this[key + separator2] * base;
  4738. }
  4739. return value;
  4740. };
  4741. /**
  4742. * @param {number} name
  4743. * @param {number} expectedNumberOfNonCommentArgs
  4744. * @param {?} dataAndEvents
  4745. * @return {?}
  4746. */
  4747. self.prototype.readUIntBE = function(name, expectedNumberOfNonCommentArgs, dataAndEvents) {
  4748. name |= 0;
  4749. expectedNumberOfNonCommentArgs |= 0;
  4750. if (!dataAndEvents) {
  4751. make_name(name, expectedNumberOfNonCommentArgs, this.length);
  4752. }
  4753. var value = this[name + --expectedNumberOfNonCommentArgs];
  4754. /** @type {number} */
  4755. var base = 1;
  4756. for (;expectedNumberOfNonCommentArgs > 0 && (base *= 256);) {
  4757. value += this[name + --expectedNumberOfNonCommentArgs] * base;
  4758. }
  4759. return value;
  4760. };
  4761. /**
  4762. * @param {number} name
  4763. * @param {undefined} usePrototypeKeys
  4764. * @return {?}
  4765. */
  4766. self.prototype.readUInt8 = function(name, usePrototypeKeys) {
  4767. return usePrototypeKeys || make_name(name, 1, this.length), this[name];
  4768. };
  4769. /**
  4770. * @param {number} name
  4771. * @param {undefined} usePrototypeKeys
  4772. * @return {?}
  4773. */
  4774. self.prototype.readUInt16LE = function(name, usePrototypeKeys) {
  4775. return usePrototypeKeys || make_name(name, 2, this.length), this[name] | this[name + 1] << 8;
  4776. };
  4777. /**
  4778. * @param {number} name
  4779. * @param {undefined} usePrototypeKeys
  4780. * @return {?}
  4781. */
  4782. self.prototype.readUInt16BE = function(name, usePrototypeKeys) {
  4783. return usePrototypeKeys || make_name(name, 2, this.length), this[name] << 8 | this[name + 1];
  4784. };
  4785. /**
  4786. * @param {number} name
  4787. * @param {undefined} usePrototypeKeys
  4788. * @return {?}
  4789. */
  4790. self.prototype.readUInt32LE = function(name, usePrototypeKeys) {
  4791. return usePrototypeKeys || make_name(name, 4, this.length), (this[name] | this[name + 1] << 8 | this[name + 2] << 16) + 16777216 * this[name + 3];
  4792. };
  4793. /**
  4794. * @param {number} name
  4795. * @param {undefined} usePrototypeKeys
  4796. * @return {?}
  4797. */
  4798. self.prototype.readUInt32BE = function(name, usePrototypeKeys) {
  4799. return usePrototypeKeys || make_name(name, 4, this.length), 16777216 * this[name] + (this[name + 1] << 16 | this[name + 2] << 8 | this[name + 3]);
  4800. };
  4801. /**
  4802. * @param {number} key
  4803. * @param {number} pow
  4804. * @param {?} dataAndEvents
  4805. * @return {?}
  4806. */
  4807. self.prototype.readIntLE = function(key, pow, dataAndEvents) {
  4808. key |= 0;
  4809. pow |= 0;
  4810. if (!dataAndEvents) {
  4811. make_name(key, pow, this.length);
  4812. }
  4813. var value = this[key];
  4814. /** @type {number} */
  4815. var base = 1;
  4816. /** @type {number} */
  4817. var separator2 = 0;
  4818. for (;++separator2 < pow && (base *= 256);) {
  4819. value += this[key + separator2] * base;
  4820. }
  4821. return base *= 128, value >= base && (value -= Math.pow(2, 8 * pow)), value;
  4822. };
  4823. /**
  4824. * @param {number} name
  4825. * @param {number} pos
  4826. * @param {?} dataAndEvents
  4827. * @return {?}
  4828. */
  4829. self.prototype.readIntBE = function(name, pos, dataAndEvents) {
  4830. name |= 0;
  4831. pos |= 0;
  4832. if (!dataAndEvents) {
  4833. make_name(name, pos, this.length);
  4834. }
  4835. /** @type {number} */
  4836. var savedPos4 = pos;
  4837. /** @type {number} */
  4838. var base = 1;
  4839. var value = this[name + --savedPos4];
  4840. for (;savedPos4 > 0 && (base *= 256);) {
  4841. value += this[name + --savedPos4] * base;
  4842. }
  4843. return base *= 128, value >= base && (value -= Math.pow(2, 8 * pos)), value;
  4844. };
  4845. /**
  4846. * @param {number} name
  4847. * @param {undefined} usePrototypeKeys
  4848. * @return {?}
  4849. */
  4850. self.prototype.readInt8 = function(name, usePrototypeKeys) {
  4851. return usePrototypeKeys || make_name(name, 1, this.length), 128 & this[name] ? (255 - this[name] + 1) * -1 : this[name];
  4852. };
  4853. /**
  4854. * @param {number} name
  4855. * @param {?} noAssert
  4856. * @return {?}
  4857. */
  4858. self.prototype.readInt16LE = function(name, noAssert) {
  4859. if (!noAssert) {
  4860. make_name(name, 2, this.length);
  4861. }
  4862. /** @type {number} */
  4863. var unsigned = this[name] | this[name + 1] << 8;
  4864. return 32768 & unsigned ? 4294901760 | unsigned : unsigned;
  4865. };
  4866. /**
  4867. * @param {number} name
  4868. * @param {?} noAssert
  4869. * @return {?}
  4870. */
  4871. self.prototype.readInt16BE = function(name, noAssert) {
  4872. if (!noAssert) {
  4873. make_name(name, 2, this.length);
  4874. }
  4875. /** @type {number} */
  4876. var unsigned = this[name + 1] | this[name] << 8;
  4877. return 32768 & unsigned ? 4294901760 | unsigned : unsigned;
  4878. };
  4879. /**
  4880. * @param {number} name
  4881. * @param {undefined} usePrototypeKeys
  4882. * @return {?}
  4883. */
  4884. self.prototype.readInt32LE = function(name, usePrototypeKeys) {
  4885. return usePrototypeKeys || make_name(name, 4, this.length), this[name] | this[name + 1] << 8 | this[name + 2] << 16 | this[name + 3] << 24;
  4886. };
  4887. /**
  4888. * @param {number} name
  4889. * @param {undefined} usePrototypeKeys
  4890. * @return {?}
  4891. */
  4892. self.prototype.readInt32BE = function(name, usePrototypeKeys) {
  4893. return usePrototypeKeys || make_name(name, 4, this.length), this[name] << 24 | this[name + 1] << 16 | this[name + 2] << 8 | this[name + 3];
  4894. };
  4895. /**
  4896. * @param {number} name
  4897. * @param {undefined} usePrototypeKeys
  4898. * @return {?}
  4899. */
  4900. self.prototype.readFloatLE = function(name, usePrototypeKeys) {
  4901. return usePrototypeKeys || make_name(name, 4, this.length), client.read(this, name, true, 23, 4);
  4902. };
  4903. /**
  4904. * @param {number} name
  4905. * @param {undefined} usePrototypeKeys
  4906. * @return {?}
  4907. */
  4908. self.prototype.readFloatBE = function(name, usePrototypeKeys) {
  4909. return usePrototypeKeys || make_name(name, 4, this.length), client.read(this, name, false, 23, 4);
  4910. };
  4911. /**
  4912. * @param {number} name
  4913. * @param {undefined} usePrototypeKeys
  4914. * @return {?}
  4915. */
  4916. self.prototype.readDoubleLE = function(name, usePrototypeKeys) {
  4917. return usePrototypeKeys || make_name(name, 8, this.length), client.read(this, name, true, 52, 8);
  4918. };
  4919. /**
  4920. * @param {number} name
  4921. * @param {undefined} usePrototypeKeys
  4922. * @return {?}
  4923. */
  4924. self.prototype.readDoubleBE = function(name, usePrototypeKeys) {
  4925. return usePrototypeKeys || make_name(name, 8, this.length), client.read(this, name, false, 52, 8);
  4926. };
  4927. /**
  4928. * @param {number} offset
  4929. * @param {number} type
  4930. * @param {number} t
  4931. * @param {?} dataAndEvents
  4932. * @return {?}
  4933. */
  4934. self.prototype.writeUIntLE = function(offset, type, t, dataAndEvents) {
  4935. if (offset = +offset, type |= 0, t |= 0, !dataAndEvents) {
  4936. /** @type {number} */
  4937. var attributes = Math.pow(2, 8 * t) - 1;
  4938. extractStacktrace(this, offset, type, t, attributes, 0);
  4939. }
  4940. /** @type {number} */
  4941. var cellWidth = 1;
  4942. /** @type {number} */
  4943. var queueHooks = 0;
  4944. /** @type {number} */
  4945. this[type] = 255 & offset;
  4946. for (;++queueHooks < t && (cellWidth *= 256);) {
  4947. /** @type {number} */
  4948. this[type + queueHooks] = offset / cellWidth & 255;
  4949. }
  4950. return type + t;
  4951. };
  4952. /**
  4953. * @param {number} offset
  4954. * @param {number} init
  4955. * @param {number} n
  4956. * @param {?} dataAndEvents
  4957. * @return {?}
  4958. */
  4959. self.prototype.writeUIntBE = function(offset, init, n, dataAndEvents) {
  4960. if (offset = +offset, init |= 0, n |= 0, !dataAndEvents) {
  4961. /** @type {number} */
  4962. var attributes = Math.pow(2, 8 * n) - 1;
  4963. extractStacktrace(this, offset, init, n, attributes, 0);
  4964. }
  4965. /** @type {number} */
  4966. var cond = n - 1;
  4967. /** @type {number} */
  4968. var cellWidth = 1;
  4969. /** @type {number} */
  4970. this[init + cond] = 255 & offset;
  4971. for (;--cond >= 0 && (cellWidth *= 256);) {
  4972. /** @type {number} */
  4973. this[init + cond] = offset / cellWidth & 255;
  4974. }
  4975. return init + n;
  4976. };
  4977. /**
  4978. * @param {number} offset
  4979. * @param {number} opts
  4980. * @param {undefined} noAssert
  4981. * @return {?}
  4982. */
  4983. self.prototype.writeUInt8 = function(offset, opts, noAssert) {
  4984. return offset = +offset, opts |= 0, noAssert || extractStacktrace(this, offset, opts, 1, 255, 0), self.TYPED_ARRAY_SUPPORT || (offset = Math.floor(offset)), this[opts] = 255 & offset, opts + 1;
  4985. };
  4986. /**
  4987. * @param {number} offset
  4988. * @param {number} opts
  4989. * @param {undefined} noAssert
  4990. * @return {?}
  4991. */
  4992. self.prototype.writeUInt16LE = function(offset, opts, noAssert) {
  4993. return offset = +offset, opts |= 0, noAssert || extractStacktrace(this, offset, opts, 2, 65535, 0), self.TYPED_ARRAY_SUPPORT ? (this[opts] = 255 & offset, this[opts + 1] = offset >>> 8) : debug(this, offset, opts, true), opts + 2;
  4994. };
  4995. /**
  4996. * @param {number} offset
  4997. * @param {number} opts
  4998. * @param {undefined} value
  4999. * @return {?}
  5000. */
  5001. self.prototype.writeUInt16BE = function(offset, opts, value) {
  5002. return offset = +offset, opts |= 0, value || extractStacktrace(this, offset, opts, 2, 65535, 0), self.TYPED_ARRAY_SUPPORT ? (this[opts] = offset >>> 8, this[opts + 1] = 255 & offset) : debug(this, offset, opts, false), opts + 2;
  5003. };
  5004. /**
  5005. * @param {number} offset
  5006. * @param {number} opts
  5007. * @param {undefined} noAssert
  5008. * @return {?}
  5009. */
  5010. self.prototype.writeUInt32LE = function(offset, opts, noAssert) {
  5011. return offset = +offset, opts |= 0, noAssert || extractStacktrace(this, offset, opts, 4, 4294967295, 0), self.TYPED_ARRAY_SUPPORT ? (this[opts + 3] = offset >>> 24, this[opts + 2] = offset >>> 16, this[opts + 1] = offset >>> 8, this[opts] = 255 & offset) : reset(this, offset, opts, true), opts + 4;
  5012. };
  5013. /**
  5014. * @param {number} offset
  5015. * @param {number} opts
  5016. * @param {undefined} value
  5017. * @return {?}
  5018. */
  5019. self.prototype.writeUInt32BE = function(offset, opts, value) {
  5020. return offset = +offset, opts |= 0, value || extractStacktrace(this, offset, opts, 4, 4294967295, 0), self.TYPED_ARRAY_SUPPORT ? (this[opts] = offset >>> 24, this[opts + 1] = offset >>> 16, this[opts + 2] = offset >>> 8, this[opts + 3] = 255 & offset) : reset(this, offset, opts, false), opts + 4;
  5021. };
  5022. /**
  5023. * @param {number} offset
  5024. * @param {number} type
  5025. * @param {number} expectedNumberOfNonCommentArgs
  5026. * @param {?} dataAndEvents
  5027. * @return {?}
  5028. */
  5029. self.prototype.writeIntLE = function(offset, type, expectedNumberOfNonCommentArgs, dataAndEvents) {
  5030. if (offset = +offset, type |= 0, !dataAndEvents) {
  5031. /** @type {number} */
  5032. var i = Math.pow(2, 8 * expectedNumberOfNonCommentArgs - 1);
  5033. extractStacktrace(this, offset, type, expectedNumberOfNonCommentArgs, i - 1, -i);
  5034. }
  5035. /** @type {number} */
  5036. var queueHooks = 0;
  5037. /** @type {number} */
  5038. var cellWidth = 1;
  5039. /** @type {number} */
  5040. var o = 0;
  5041. /** @type {number} */
  5042. this[type] = 255 & offset;
  5043. for (;++queueHooks < expectedNumberOfNonCommentArgs && (cellWidth *= 256);) {
  5044. if (offset < 0) {
  5045. if (0 === o) {
  5046. if (0 !== this[type + queueHooks - 1]) {
  5047. /** @type {number} */
  5048. o = 1;
  5049. }
  5050. }
  5051. }
  5052. /** @type {number} */
  5053. this[type + queueHooks] = (offset / cellWidth >> 0) - o & 255;
  5054. }
  5055. return type + expectedNumberOfNonCommentArgs;
  5056. };
  5057. /**
  5058. * @param {number} offset
  5059. * @param {number} init
  5060. * @param {number} expectedNumberOfNonCommentArgs
  5061. * @param {?} dataAndEvents
  5062. * @return {?}
  5063. */
  5064. self.prototype.writeIntBE = function(offset, init, expectedNumberOfNonCommentArgs, dataAndEvents) {
  5065. if (offset = +offset, init |= 0, !dataAndEvents) {
  5066. /** @type {number} */
  5067. var i = Math.pow(2, 8 * expectedNumberOfNonCommentArgs - 1);
  5068. extractStacktrace(this, offset, init, expectedNumberOfNonCommentArgs, i - 1, -i);
  5069. }
  5070. /** @type {number} */
  5071. var cond = expectedNumberOfNonCommentArgs - 1;
  5072. /** @type {number} */
  5073. var cellWidth = 1;
  5074. /** @type {number} */
  5075. var o = 0;
  5076. /** @type {number} */
  5077. this[init + cond] = 255 & offset;
  5078. for (;--cond >= 0 && (cellWidth *= 256);) {
  5079. if (offset < 0) {
  5080. if (0 === o) {
  5081. if (0 !== this[init + cond + 1]) {
  5082. /** @type {number} */
  5083. o = 1;
  5084. }
  5085. }
  5086. }
  5087. /** @type {number} */
  5088. this[init + cond] = (offset / cellWidth >> 0) - o & 255;
  5089. }
  5090. return init + expectedNumberOfNonCommentArgs;
  5091. };
  5092. /**
  5093. * @param {number} offset
  5094. * @param {number} data
  5095. * @param {undefined} noAssert
  5096. * @return {?}
  5097. */
  5098. self.prototype.writeInt8 = function(offset, data, noAssert) {
  5099. return offset = +offset, data |= 0, noAssert || extractStacktrace(this, offset, data, 1, 127, -128), self.TYPED_ARRAY_SUPPORT || (offset = Math.floor(offset)), offset < 0 && (offset = 255 + offset + 1), this[data] = 255 & offset, data + 1;
  5100. };
  5101. /**
  5102. * @param {number} offset
  5103. * @param {number} data
  5104. * @param {undefined} noAssert
  5105. * @return {?}
  5106. */
  5107. self.prototype.writeInt16LE = function(offset, data, noAssert) {
  5108. return offset = +offset, data |= 0, noAssert || extractStacktrace(this, offset, data, 2, 32767, -32768), self.TYPED_ARRAY_SUPPORT ? (this[data] = 255 & offset, this[data + 1] = offset >>> 8) : debug(this, offset, data, true), data + 2;
  5109. };
  5110. /**
  5111. * @param {number} offset
  5112. * @param {number} data
  5113. * @param {undefined} noAssert
  5114. * @return {?}
  5115. */
  5116. self.prototype.writeInt16BE = function(offset, data, noAssert) {
  5117. return offset = +offset, data |= 0, noAssert || extractStacktrace(this, offset, data, 2, 32767, -32768), self.TYPED_ARRAY_SUPPORT ? (this[data] = offset >>> 8, this[data + 1] = 255 & offset) : debug(this, offset, data, false), data + 2;
  5118. };
  5119. /**
  5120. * @param {number} offset
  5121. * @param {number} opts
  5122. * @param {undefined} noAssert
  5123. * @return {?}
  5124. */
  5125. self.prototype.writeInt32LE = function(offset, opts, noAssert) {
  5126. return offset = +offset, opts |= 0, noAssert || extractStacktrace(this, offset, opts, 4, 2147483647, -2147483648), self.TYPED_ARRAY_SUPPORT ? (this[opts] = 255 & offset, this[opts + 1] = offset >>> 8, this[opts + 2] = offset >>> 16, this[opts + 3] = offset >>> 24) : reset(this, offset, opts, true), opts + 4;
  5127. };
  5128. /**
  5129. * @param {number} offset
  5130. * @param {number} opts
  5131. * @param {undefined} noAssert
  5132. * @return {?}
  5133. */
  5134. self.prototype.writeInt32BE = function(offset, opts, noAssert) {
  5135. return offset = +offset, opts |= 0, noAssert || extractStacktrace(this, offset, opts, 4, 2147483647, -2147483648), offset < 0 && (offset = 4294967295 + offset + 1), self.TYPED_ARRAY_SUPPORT ? (this[opts] = offset >>> 24, this[opts + 1] = offset >>> 16, this[opts + 2] = offset >>> 8, this[opts + 3] = 255 & offset) : reset(this, offset, opts, false), opts + 4;
  5136. };
  5137. /**
  5138. * @param {number} url
  5139. * @param {number} extra
  5140. * @param {string} deepDataAndEvents
  5141. * @return {?}
  5142. */
  5143. self.prototype.writeFloatLE = function(url, extra, deepDataAndEvents) {
  5144. return ondata(this, url, extra, true, deepDataAndEvents);
  5145. };
  5146. /**
  5147. * @param {number} url
  5148. * @param {number} extra
  5149. * @param {string} deepDataAndEvents
  5150. * @return {?}
  5151. */
  5152. self.prototype.writeFloatBE = function(url, extra, deepDataAndEvents) {
  5153. return ondata(this, url, extra, false, deepDataAndEvents);
  5154. };
  5155. /**
  5156. * @param {number} until
  5157. * @param {number} event
  5158. * @param {string} deepDataAndEvents
  5159. * @return {?}
  5160. */
  5161. self.prototype.writeDoubleLE = function(until, event, deepDataAndEvents) {
  5162. return trigger(this, until, event, true, deepDataAndEvents);
  5163. };
  5164. /**
  5165. * @param {number} until
  5166. * @param {number} event
  5167. * @param {string} deepDataAndEvents
  5168. * @return {?}
  5169. */
  5170. self.prototype.writeDoubleBE = function(until, event, deepDataAndEvents) {
  5171. return trigger(this, until, event, false, deepDataAndEvents);
  5172. };
  5173. /**
  5174. * @param {string} data
  5175. * @param {number} offset
  5176. * @param {number} start
  5177. * @param {number} end
  5178. * @return {?}
  5179. */
  5180. self.prototype.copy = function(data, offset, start, end) {
  5181. if (start || (start = 0), end || (0 === end || (end = this.length)), offset >= data.length && (offset = data.length), offset || (offset = 0), end > 0 && (end < start && (end = start)), end === start) {
  5182. return 0;
  5183. }
  5184. if (0 === data.length || 0 === this.length) {
  5185. return 0;
  5186. }
  5187. if (offset < 0) {
  5188. throw new RangeError("targetStart out of bounds");
  5189. }
  5190. if (start < 0 || start >= this.length) {
  5191. throw new RangeError("sourceStart out of bounds");
  5192. }
  5193. if (end < 0) {
  5194. throw new RangeError("sourceEnd out of bounds");
  5195. }
  5196. if (end > this.length) {
  5197. end = this.length;
  5198. }
  5199. if (data.length - offset < end - start) {
  5200. end = data.length - offset + start;
  5201. }
  5202. var i;
  5203. /** @type {number} */
  5204. var len = end - start;
  5205. if (this === data && (start < offset && offset < end)) {
  5206. /** @type {number} */
  5207. i = len - 1;
  5208. for (;i >= 0;--i) {
  5209. data[i + offset] = this[i + start];
  5210. }
  5211. } else {
  5212. if (len < 1E3 || !self.TYPED_ARRAY_SUPPORT) {
  5213. /** @type {number} */
  5214. i = 0;
  5215. for (;i < len;++i) {
  5216. data[i + offset] = this[i + start];
  5217. }
  5218. } else {
  5219. Uint8Array.prototype.set.call(data, this.subarray(start, start + len), offset);
  5220. }
  5221. }
  5222. return len;
  5223. };
  5224. /**
  5225. * @param {number} value
  5226. * @param {number} n
  5227. * @param {number} i
  5228. * @param {number} val
  5229. * @return {?}
  5230. */
  5231. self.prototype.fill = function(value, n, i, val) {
  5232. if ("string" == typeof value) {
  5233. if ("string" == typeof n ? (val = n, n = 0, i = this.length) : "string" == typeof i && (val = i, i = this.length), 1 === value.length) {
  5234. /** @type {number} */
  5235. var config = value.charCodeAt(0);
  5236. if (config < 256) {
  5237. /** @type {number} */
  5238. value = config;
  5239. }
  5240. }
  5241. if (void 0 !== val && "string" != typeof val) {
  5242. throw new TypeError("encoding must be a string");
  5243. }
  5244. if ("string" == typeof val && !self.isEncoding(val)) {
  5245. throw new TypeError("Unknown encoding: " + val);
  5246. }
  5247. } else {
  5248. if ("number" == typeof value) {
  5249. value &= 255;
  5250. }
  5251. }
  5252. if (n < 0 || (this.length < n || this.length < i)) {
  5253. throw new RangeError("Out of range index");
  5254. }
  5255. if (i <= n) {
  5256. return this;
  5257. }
  5258. n >>>= 0;
  5259. i = void 0 === i ? this.length : i >>> 0;
  5260. if (!value) {
  5261. /** @type {number} */
  5262. value = 0;
  5263. }
  5264. var pos;
  5265. if ("number" == typeof value) {
  5266. /** @type {number} */
  5267. pos = n;
  5268. for (;pos < i;++pos) {
  5269. /** @type {number} */
  5270. this[pos] = value;
  5271. }
  5272. } else {
  5273. var arr = self.isBuffer(value) ? value : read((new self(value, val)).toString());
  5274. var len = arr.length;
  5275. /** @type {number} */
  5276. pos = 0;
  5277. for (;pos < i - n;++pos) {
  5278. this[pos + n] = arr[pos % len];
  5279. }
  5280. }
  5281. return this;
  5282. };
  5283. /** @type {RegExp} */
  5284. var r20 = /[^+\/0-9A-Za-z-_]/g;
  5285. }).call(el, require(18));
  5286. }, function(dataAndEvents, gridStore) {
  5287. /**
  5288. * @param {?} a
  5289. * @param {number} keepData
  5290. * @param {boolean} recurring
  5291. * @param {number} length
  5292. * @param {number} opt_attributes
  5293. * @return {?}
  5294. */
  5295. gridStore.read = function(a, keepData, recurring, length, opt_attributes) {
  5296. var value;
  5297. var m;
  5298. /** @type {number} */
  5299. var numSpaces = 8 * opt_attributes - length - 1;
  5300. /** @type {number} */
  5301. var radio = (1 << numSpaces) - 1;
  5302. /** @type {number} */
  5303. var increment = radio >> 1;
  5304. /** @type {number} */
  5305. var pos = -7;
  5306. /** @type {number} */
  5307. var i = recurring ? opt_attributes - 1 : 0;
  5308. /** @type {number} */
  5309. var d = recurring ? -1 : 1;
  5310. var data = a[keepData + i];
  5311. i += d;
  5312. /** @type {number} */
  5313. value = data & (1 << -pos) - 1;
  5314. data >>= -pos;
  5315. pos += numSpaces;
  5316. for (;pos > 0;value = 256 * value + a[keepData + i], i += d, pos -= 8) {
  5317. }
  5318. /** @type {number} */
  5319. m = value & (1 << -pos) - 1;
  5320. value >>= -pos;
  5321. pos += length;
  5322. for (;pos > 0;m = 256 * m + a[keepData + i], i += d, pos -= 8) {
  5323. }
  5324. if (0 === value) {
  5325. /** @type {number} */
  5326. value = 1 - increment;
  5327. } else {
  5328. if (value === radio) {
  5329. return m ? NaN : (data ? -1 : 1) * (1 / 0);
  5330. }
  5331. m += Math.pow(2, length);
  5332. value -= increment;
  5333. }
  5334. return(data ? -1 : 1) * m * Math.pow(2, value - length);
  5335. };
  5336. /**
  5337. * @param {string} object
  5338. * @param {number} value
  5339. * @param {number} length
  5340. * @param {boolean} content
  5341. * @param {number} bits
  5342. * @param {number} opt_attributes
  5343. * @return {undefined}
  5344. */
  5345. gridStore.write = function(object, value, length, content, bits, opt_attributes) {
  5346. var e;
  5347. var charCode;
  5348. var c;
  5349. /** @type {number} */
  5350. var bitsSeen = 8 * opt_attributes - bits - 1;
  5351. /** @type {number} */
  5352. var eMax = (1 << bitsSeen) - 1;
  5353. /** @type {number} */
  5354. var eBias = eMax >> 1;
  5355. /** @type {number} */
  5356. var rt = 23 === bits ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
  5357. /** @type {number} */
  5358. var from = content ? 0 : opt_attributes - 1;
  5359. /** @type {number} */
  5360. var len = content ? 1 : -1;
  5361. /** @type {number} */
  5362. var m = value < 0 || 0 === value && 1 / value < 0 ? 1 : 0;
  5363. /** @type {number} */
  5364. value = Math.abs(value);
  5365. if (isNaN(value) || value === 1 / 0) {
  5366. /** @type {number} */
  5367. charCode = isNaN(value) ? 1 : 0;
  5368. /** @type {number} */
  5369. e = eMax;
  5370. } else {
  5371. /** @type {number} */
  5372. e = Math.floor(Math.log(value) / Math.LN2);
  5373. if (value * (c = Math.pow(2, -e)) < 1) {
  5374. e--;
  5375. c *= 2;
  5376. }
  5377. value += e + eBias >= 1 ? rt / c : rt * Math.pow(2, 1 - eBias);
  5378. if (value * c >= 2) {
  5379. e++;
  5380. c /= 2;
  5381. }
  5382. if (e + eBias >= eMax) {
  5383. /** @type {number} */
  5384. charCode = 0;
  5385. /** @type {number} */
  5386. e = eMax;
  5387. } else {
  5388. if (e + eBias >= 1) {
  5389. /** @type {number} */
  5390. charCode = (value * c - 1) * Math.pow(2, bits);
  5391. e += eBias;
  5392. } else {
  5393. /** @type {number} */
  5394. charCode = value * Math.pow(2, eBias - 1) * Math.pow(2, bits);
  5395. /** @type {number} */
  5396. e = 0;
  5397. }
  5398. }
  5399. }
  5400. for (;bits >= 8;object[length + from] = 255 & charCode, from += len, charCode /= 256, bits -= 8) {
  5401. }
  5402. /** @type {number} */
  5403. e = e << bits | charCode;
  5404. bitsSeen += bits;
  5405. for (;bitsSeen > 0;object[length + from] = 255 & e, from += len, e /= 256, bitsSeen -= 8) {
  5406. }
  5407. object[length + from - len] |= 128 * m;
  5408. };
  5409. }, function(module, dataAndEvents) {
  5410. /** @type {function (this:*): string} */
  5411. var ostring = {}.toString;
  5412. /** @type {function (*): boolean} */
  5413. module.exports = Array.isArray || function(callback) {
  5414. return "[object Array]" == ostring.call(callback);
  5415. };
  5416. }, function(module, dataAndEvents, deepDataAndEvents) {
  5417. /**
  5418. * @param {?} obj
  5419. * @param {string} name
  5420. * @return {?}
  5421. */
  5422. function hasOwn(obj, name) {
  5423. return Object.prototype.hasOwnProperty.call(obj, name);
  5424. }
  5425. /**
  5426. * @param {number} arr
  5427. * @param {string} str
  5428. * @param {string} object
  5429. * @param {Object} options
  5430. * @return {?}
  5431. */
  5432. module.exports = function(arr, str, object, options) {
  5433. str = str || "&";
  5434. object = object || "=";
  5435. var obj = {};
  5436. if ("string" != typeof arr || 0 === arr.length) {
  5437. return obj;
  5438. }
  5439. /** @type {RegExp} */
  5440. var r20 = /\+/g;
  5441. /** @type {Array.<string>} */
  5442. arr = arr.split(str);
  5443. /** @type {number} */
  5444. var len = 1E3;
  5445. if (options) {
  5446. if ("number" == typeof options.maxKeys) {
  5447. /** @type {number} */
  5448. len = options.maxKeys;
  5449. }
  5450. }
  5451. /** @type {number} */
  5452. var e = arr.length;
  5453. if (len > 0) {
  5454. if (e > len) {
  5455. /** @type {number} */
  5456. e = len;
  5457. }
  5458. }
  5459. /** @type {number} */
  5460. var i = 0;
  5461. for (;i < e;++i) {
  5462. var value;
  5463. var separator;
  5464. var key;
  5465. var val;
  5466. /** @type {string} */
  5467. var part = arr[i].replace(r20, "%20");
  5468. /** @type {number} */
  5469. var index = part.indexOf(object);
  5470. if (index >= 0) {
  5471. /** @type {string} */
  5472. value = part.substr(0, index);
  5473. /** @type {string} */
  5474. separator = part.substr(index + 1);
  5475. } else {
  5476. /** @type {string} */
  5477. value = part;
  5478. /** @type {string} */
  5479. separator = "";
  5480. }
  5481. /** @type {string} */
  5482. key = decodeURIComponent(value);
  5483. /** @type {string} */
  5484. val = decodeURIComponent(separator);
  5485. if (hasOwn(obj, key)) {
  5486. if (inspect(obj[key])) {
  5487. obj[key].push(val);
  5488. } else {
  5489. /** @type {Array} */
  5490. obj[key] = [obj[key], val];
  5491. }
  5492. } else {
  5493. /** @type {string} */
  5494. obj[key] = val;
  5495. }
  5496. }
  5497. return obj;
  5498. };
  5499. /** @type {function (*): boolean} */
  5500. var inspect = Array.isArray || function(callback) {
  5501. return "[object Array]" === Object.prototype.toString.call(callback);
  5502. };
  5503. }, function(module, dataAndEvents, deepDataAndEvents) {
  5504. /**
  5505. * @param {Array} array
  5506. * @param {Function} fn
  5507. * @return {?}
  5508. */
  5509. function walk(array, fn) {
  5510. if (array.map) {
  5511. return array.map(fn);
  5512. }
  5513. /** @type {Array} */
  5514. var ret = [];
  5515. /** @type {number} */
  5516. var i = 0;
  5517. for (;i < array.length;i++) {
  5518. ret.push(fn(array[i], i));
  5519. }
  5520. return ret;
  5521. }
  5522. /**
  5523. * @param {number} v
  5524. * @return {?}
  5525. */
  5526. var stringify = function(v) {
  5527. switch(typeof v) {
  5528. case "string":
  5529. return v;
  5530. case "boolean":
  5531. return v ? "true" : "false";
  5532. case "number":
  5533. return isFinite(v) ? v : "";
  5534. default:
  5535. return "";
  5536. }
  5537. };
  5538. /**
  5539. * @param {number} obj
  5540. * @param {string} sep
  5541. * @param {string} eq
  5542. * @param {number} key
  5543. * @return {?}
  5544. */
  5545. module.exports = function(obj, sep, eq, key) {
  5546. return sep = sep || "&", eq = eq || "=", null === obj && (obj = void 0), "object" == typeof obj ? walk(getActual(obj), function(key) {
  5547. var ks = encodeURIComponent(stringify(key)) + eq;
  5548. return visit(obj[key]) ? walk(obj[key], function(v) {
  5549. return ks + encodeURIComponent(stringify(v));
  5550. }).join(sep) : ks + encodeURIComponent(stringify(obj[key]));
  5551. }).join(sep) : key ? encodeURIComponent(stringify(key)) + eq + encodeURIComponent(stringify(obj)) : "";
  5552. };
  5553. /** @type {function (*): boolean} */
  5554. var visit = Array.isArray || function(callback) {
  5555. return "[object Array]" === Object.prototype.toString.call(callback);
  5556. };
  5557. /** @type {function (Object): Array.<string>} */
  5558. var getActual = Object.keys || function(ctor) {
  5559. /** @type {Array} */
  5560. var eventPath = [];
  5561. var cur;
  5562. for (cur in ctor) {
  5563. if (Object.prototype.hasOwnProperty.call(ctor, cur)) {
  5564. eventPath.push(cur);
  5565. }
  5566. }
  5567. return eventPath;
  5568. };
  5569. }, function(dataAndEvents, exports, require) {
  5570. exports.decode = exports.parse = require(23);
  5571. exports.encode = exports.stringify = require(24);
  5572. }, function(dataAndEvents, ctx, $) {
  5573. /**
  5574. * @param {string} value
  5575. * @return {?}
  5576. */
  5577. function parseInt(value) {
  5578. return value && value.__esModule ? value : {
  5579. default : value
  5580. };
  5581. }
  5582. /**
  5583. * @param {?} dataAndEvents
  5584. * @param {Function} actual
  5585. * @return {undefined}
  5586. */
  5587. function test(dataAndEvents, actual) {
  5588. if (!(dataAndEvents instanceof actual)) {
  5589. throw new TypeError("Cannot call a class as a function");
  5590. }
  5591. }
  5592. /**
  5593. * @param {string} dataAndEvents
  5594. * @param {?} fn
  5595. * @return {?}
  5596. */
  5597. function error(dataAndEvents, fn) {
  5598. if (!dataAndEvents) {
  5599. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  5600. }
  5601. return!fn || "object" != typeof fn && "function" != typeof fn ? dataAndEvents : fn;
  5602. }
  5603. /**
  5604. * @param {Object} self
  5605. * @param {Object} b
  5606. * @return {undefined}
  5607. */
  5608. function wrap(self, b) {
  5609. if ("function" != typeof b && null !== b) {
  5610. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  5611. }
  5612. /** @type {Object} */
  5613. self.prototype = Object.create(b && b.prototype, {
  5614. constructor : {
  5615. value : self,
  5616. enumerable : false,
  5617. writable : true,
  5618. configurable : true
  5619. }
  5620. });
  5621. if (b) {
  5622. if (Object.setPrototypeOf) {
  5623. Object.setPrototypeOf(self, b);
  5624. } else {
  5625. /** @type {Object} */
  5626. self.__proto__ = b;
  5627. }
  5628. }
  5629. }
  5630. /**
  5631. * @param {Function} matcherFunction
  5632. * @return {?}
  5633. */
  5634. function cb(matcherFunction) {
  5635. return function() {
  5636. var a = matcherFunction.apply(this, arguments);
  5637. return new Promise(function(isNumber, fire) {
  5638. /**
  5639. * @param {string} action
  5640. * @param {?} elem
  5641. * @return {?}
  5642. */
  5643. function next(action, elem) {
  5644. try {
  5645. var q = a[action](elem);
  5646. var val = q.value;
  5647. } catch (memory) {
  5648. return void fire(memory);
  5649. }
  5650. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  5651. next("next", arg);
  5652. }, function(arg) {
  5653. next("throw", arg);
  5654. });
  5655. }
  5656. return next("next");
  5657. });
  5658. };
  5659. }
  5660. /**
  5661. * @param {?} cb
  5662. * @return {undefined}
  5663. */
  5664. function end(cb) {
  5665. !function() {
  5666. /**
  5667. * @return {?}
  5668. */
  5669. function later() {
  5670. return matcherFunction.apply(this, arguments);
  5671. }
  5672. var matcherFunction = cb(regeneratorRuntime.mark(function end() {
  5673. var results;
  5674. return regeneratorRuntime.wrap(function(current) {
  5675. for (;;) {
  5676. switch(current.prev = current.next) {
  5677. case 0:
  5678. return setTimeout(later, 6E4), results = [{
  5679. name : "Asia1",
  5680. region : "All",
  5681. address : "45.76.179.209:444",
  5682. players : "?",
  5683. gamemode : "?",
  5684. ping : null
  5685. }, {
  5686. name : "Aus1",
  5687. region : "All",
  5688. address : "45.32.188.82:444",
  5689. players : "?",
  5690. gamemode : "?",
  5691. ping : null
  5692. }], current.next = 5, Promise.all(results.map(function(options) {
  5693. return cb(regeneratorRuntime.mark(function end() {
  5694. var padding;
  5695. return regeneratorRuntime.wrap(function(self) {
  5696. for (;;) {
  5697. switch(self.prev = self.next) {
  5698. case 0:
  5699. return self.prev = 0, self.t0 = Object, self.t1 = options, self.next = 5, (0, val.default)({
  5700. url : "http://" + options.address + "/info",
  5701. type : "json",
  5702. method : "GET"
  5703. });
  5704. case 5:
  5705. return self.t2 = self.sent.response, self.t0.assign.call(self.t0, self.t1, self.t2), padding = Date.now(), self.prev = 8, self.next = 11, (0, val.default)({
  5706. url : "http://" + options.address + "/ping",
  5707. method : "GET"
  5708. });
  5709. case 11:
  5710. /** @type {number} */
  5711. self.next = 15;
  5712. break;
  5713. case 13:
  5714. /** @type {number} */
  5715. self.prev = 13;
  5716. self.t3 = self.catch(8);
  5717. case 15:
  5718. /** @type {number} */
  5719. options.ping = Date.now() - padding;
  5720. /** @type {number} */
  5721. self.next = 20;
  5722. break;
  5723. case 18:
  5724. /** @type {number} */
  5725. self.prev = 18;
  5726. self.t4 = self.catch(0);
  5727. case 20:
  5728. ;
  5729. case "end":
  5730. return self.stop();
  5731. }
  5732. }
  5733. }, end, this, [[0, 18], [8, 13]]);
  5734. }))();
  5735. }));
  5736. case 5:
  5737. cb(results);
  5738. case 6:
  5739. ;
  5740. case "end":
  5741. return current.stop();
  5742. }
  5743. }
  5744. }, end, this);
  5745. }));
  5746. return later;
  5747. }()();
  5748. }
  5749. Object.defineProperty(ctx, "__esModule", {
  5750. value : true
  5751. });
  5752. ctx.LocalSpectateClient = ctx.LocalMultiboxClient = ctx.LocalClient = ctx.localNormalizeNames = void 0;
  5753. var isUndefined = function() {
  5754. /**
  5755. * @param {Arguments} object
  5756. * @param {number} deepDataAndEvents
  5757. * @return {?}
  5758. */
  5759. function clone(object, deepDataAndEvents) {
  5760. /** @type {Array} */
  5761. var res = [];
  5762. /** @type {boolean} */
  5763. var callback2 = true;
  5764. /** @type {boolean} */
  5765. var i = false;
  5766. var bulk = void 0;
  5767. try {
  5768. var next;
  5769. var self = object[Symbol.iterator]();
  5770. for (;!(callback2 = (next = self.next()).done) && (res.push(next.value), !deepDataAndEvents || res.length !== deepDataAndEvents);callback2 = true) {
  5771. }
  5772. } catch (fn) {
  5773. /** @type {boolean} */
  5774. i = true;
  5775. bulk = fn;
  5776. } finally {
  5777. try {
  5778. if (!callback2) {
  5779. if (self.return) {
  5780. self.return();
  5781. }
  5782. }
  5783. } finally {
  5784. if (i) {
  5785. throw bulk;
  5786. }
  5787. }
  5788. }
  5789. return res;
  5790. }
  5791. return function(which, deepDataAndEvents) {
  5792. if (Array.isArray(which)) {
  5793. return which;
  5794. }
  5795. if (Symbol.iterator in Object(which)) {
  5796. return clone(which, deepDataAndEvents);
  5797. }
  5798. throw new TypeError("Invalid attempt to destructure non-iterable instance");
  5799. };
  5800. }();
  5801. var isClassOf = function() {
  5802. /**
  5803. * @param {Function} proto
  5804. * @param {Array} name
  5805. * @return {undefined}
  5806. */
  5807. function defineProperty(proto, name) {
  5808. /** @type {number} */
  5809. var i = 0;
  5810. for (;i < name.length;i++) {
  5811. var desc = name[i];
  5812. desc.enumerable = desc.enumerable || false;
  5813. /** @type {boolean} */
  5814. desc.configurable = true;
  5815. if ("value" in desc) {
  5816. /** @type {boolean} */
  5817. desc.writable = true;
  5818. }
  5819. Object.defineProperty(proto, desc.key, desc);
  5820. }
  5821. }
  5822. return function(context, name, tag) {
  5823. return name && defineProperty(context.prototype, name), tag && defineProperty(context, tag), context;
  5824. };
  5825. }();
  5826. /**
  5827. * @param {(Object|string)} obj
  5828. * @param {string} prop
  5829. * @param {?} elems
  5830. * @return {?}
  5831. */
  5832. var modifier = function get(obj, prop, elems) {
  5833. if (null === obj) {
  5834. obj = Function.prototype;
  5835. }
  5836. /** @type {(ObjectPropertyDescriptor|undefined)} */
  5837. var desc = Object.getOwnPropertyDescriptor(obj, prop);
  5838. if (void 0 === desc) {
  5839. /** @type {(Object|null)} */
  5840. var keys = Object.getPrototypeOf(obj);
  5841. return null === keys ? void 0 : get(keys, prop, elems);
  5842. }
  5843. if ("value" in desc) {
  5844. return desc.value;
  5845. }
  5846. /** @type {(function (): ?|undefined)} */
  5847. var fn = desc.get;
  5848. if (void 0 !== fn) {
  5849. return fn.call(elems);
  5850. }
  5851. };
  5852. ctx.localNormalizeNames = function() {
  5853. var matcherFunction = cb(regeneratorRuntime.mark(function end(data, chunk, encoding) {
  5854. return regeneratorRuntime.wrap(function(self) {
  5855. for (;;) {
  5856. switch(self.prev = self.next) {
  5857. case 0:
  5858. if (!((data + chunk).length > 20)) {
  5859. /** @type {number} */
  5860. self.next = 2;
  5861. break;
  5862. }
  5863. return self.abrupt("return", null);
  5864. case 2:
  5865. return self.abrupt("return", {
  5866. team : data,
  5867. name : chunk,
  5868. skin : encoding
  5869. });
  5870. case 3:
  5871. ;
  5872. case "end":
  5873. return self.stop();
  5874. }
  5875. }
  5876. }, end, this);
  5877. }));
  5878. return function(dataAndEvents, deepDataAndEvents, ignoreMethodDoesntExist) {
  5879. return matcherFunction.apply(this, arguments);
  5880. };
  5881. }();
  5882. /** @type {function (?): undefined} */
  5883. ctx.localGetServers = end;
  5884. var actual = $(50);
  5885. var val = parseInt(actual);
  5886. var min = $(6);
  5887. var out = parseInt(min);
  5888. var text = $(7);
  5889. var code = parseInt(text);
  5890. var header = $(27);
  5891. var value = parseInt(header);
  5892. var that = $(3);
  5893. var emptyJ = $(10);
  5894. var camelKey = ctx.LocalClient = function(_super) {
  5895. /**
  5896. * @param {?} map
  5897. * @param {?} list
  5898. * @return {?}
  5899. */
  5900. function object(map, list) {
  5901. test(this, object);
  5902. var game = error(this, (object.__proto__ || Object.getPrototypeOf(object)).call(this, map, list));
  5903. return game.players = new Map, game;
  5904. }
  5905. return wrap(object, _super), isClassOf(object, [{
  5906. key : "sendConnectionStart",
  5907. /**
  5908. * @return {undefined}
  5909. */
  5910. value : function() {
  5911. this.writer.reset();
  5912. this.writer.writeUint8(255);
  5913. this.writer.writeString("");
  5914. this.sendPacket(this.writer.build());
  5915. }
  5916. }, {
  5917. key : "sendPlay",
  5918. /**
  5919. * @return {undefined}
  5920. */
  5921. value : function() {
  5922. this.writer.reset();
  5923. this.writer.writeUint8(0);
  5924. this.writer.writeString("" + this.team + this.name);
  5925. this.writer.writeString(this.skin);
  5926. this.sendPacket(this.writer.build());
  5927. }
  5928. }, {
  5929. key : "sendSpectate",
  5930. /**
  5931. * @return {undefined}
  5932. */
  5933. value : function() {
  5934. this.writer.reset();
  5935. this.writer.writeUint8(1);
  5936. this.sendPacket(this.writer.build());
  5937. }
  5938. }, {
  5939. key : "sendPing",
  5940. /**
  5941. * @return {undefined}
  5942. */
  5943. value : function() {
  5944. modifier(object.prototype.__proto__ || Object.getPrototypeOf(object.prototype), "sendPing", this).call(this);
  5945. this.writer.reset();
  5946. this.writer.writeUint8(71);
  5947. this.sendPacket(this.writer.build());
  5948. }
  5949. }, {
  5950. key : "sendSpace",
  5951. /**
  5952. * @return {undefined}
  5953. */
  5954. value : function() {
  5955. this.writer.reset();
  5956. this.writer.writeUint8(17);
  5957. this.sendPacket(this.writer.build());
  5958. }
  5959. }, {
  5960. key : "sendW",
  5961. /**
  5962. * @return {undefined}
  5963. */
  5964. value : function() {
  5965. if (this.wPress) {
  5966. this.writer.reset();
  5967. this.writer.writeUint8(21);
  5968. this.sendPacket(this.writer.build());
  5969. }
  5970. }
  5971. }, {
  5972. key : "sendAutoChase",
  5973. /**
  5974. * @return {undefined}
  5975. */
  5976. value : function() {
  5977. this.writer.reset();
  5978. this.writer.writeUint8(18);
  5979. this.sendPacket(this.writer.build());
  5980. }
  5981. }, {
  5982. key : "sendMouse",
  5983. /**
  5984. * @param {number} object
  5985. * @param {number} expectedNumberOfNonCommentArgs
  5986. * @return {undefined}
  5987. */
  5988. value : function(object, expectedNumberOfNonCommentArgs) {
  5989. switch(this.writer.reset(), this.writer.writeUint8(16), this.lineSplit) {
  5990. case 1:
  5991. /** @type {Array} */
  5992. var objects = [this.centerX, this.centerY];
  5993. object = objects[0];
  5994. expectedNumberOfNonCommentArgs = objects[1];
  5995. break;
  5996. case 2:
  5997. /** @type {Array} */
  5998. var newValue = [this.centerX, this.centerY + 10];
  5999. object = newValue[0];
  6000. expectedNumberOfNonCommentArgs = newValue[1];
  6001. }
  6002. var suiteView = (0, emptyJ.clipSegBound)(this.centerX, this.centerY, object, expectedNumberOfNonCommentArgs, 32767);
  6003. var addedObjects = isUndefined(suiteView, 2);
  6004. object = addedObjects[0];
  6005. expectedNumberOfNonCommentArgs = addedObjects[1];
  6006. this.writer.writeInt16(object);
  6007. this.writer.writeInt16(expectedNumberOfNonCommentArgs);
  6008. this.sendPacket(this.writer.build());
  6009. }
  6010. }, {
  6011. key : "sendChat",
  6012. /**
  6013. * @param {number} object
  6014. * @param {number} expectedNumberOfNonCommentArgs
  6015. * @return {undefined}
  6016. */
  6017. value : function(object, expectedNumberOfNonCommentArgs) {
  6018. this.writer.reset();
  6019. this.writer.writeUint8(72);
  6020. this.writer.writeUint8(expectedNumberOfNonCommentArgs);
  6021. this.writer.writeString(object);
  6022. this.sendPacket(this.writer.build());
  6023. }
  6024. }, {
  6025. key : "sendInviteResponse",
  6026. /**
  6027. * @param {number} object
  6028. * @return {undefined}
  6029. */
  6030. value : function(object) {
  6031. this.writer.reset();
  6032. this.writer.writeUint8(41);
  6033. this.writer.writeUint8(object ? 1 : 0);
  6034. this.sendPacket(this.writer.build());
  6035. }
  6036. }, {
  6037. key : "sendPartyAction",
  6038. /**
  6039. * @param {number} object
  6040. * @param {number} expectedNumberOfNonCommentArgs
  6041. * @return {undefined}
  6042. */
  6043. value : function(object, expectedNumberOfNonCommentArgs) {
  6044. this.writer.reset();
  6045. this.writer.writeUint8(40);
  6046. this.writer.writeUint8(object);
  6047. this.writer.writeUint32(expectedNumberOfNonCommentArgs);
  6048. this.sendPacket(this.writer.build());
  6049. }
  6050. }, {
  6051. key : "sendWhisper",
  6052. /**
  6053. * @param {number} object
  6054. * @param {number} expectedNumberOfNonCommentArgs
  6055. * @return {undefined}
  6056. */
  6057. value : function(object, expectedNumberOfNonCommentArgs) {
  6058. this.writer.reset();
  6059. this.writer.writeUint8(73);
  6060. this.writer.writeUint32(object);
  6061. this.writer.writeString(expectedNumberOfNonCommentArgs);
  6062. this.sendPacket(this.writer.build());
  6063. }
  6064. }, {
  6065. key : "onMessage",
  6066. /**
  6067. * @param {number} object
  6068. * @return {undefined}
  6069. */
  6070. value : function(object) {
  6071. var r20 = new that.BufferReader(object.data);
  6072. var n = r20.readUint8();
  6073. switch(n) {
  6074. case 4:
  6075. this.handleUpdate(r20);
  6076. break;
  6077. case 10:
  6078. this.handlePosition(r20);
  6079. break;
  6080. case 40:
  6081. this.handleInvite(r20);
  6082. break;
  6083. case 41:
  6084. this.handlePartyInfo(r20);
  6085. break;
  6086. case 42:
  6087. this.handlePartyData(r20);
  6088. break;
  6089. case 43:
  6090. this.handlePlayerAdd(r20);
  6091. break;
  6092. case 44:
  6093. this.handlePlayerDelete(r20);
  6094. break;
  6095. case 49:
  6096. this.handleLeaderboard(r20);
  6097. break;
  6098. case 50:
  6099. this.handleLeaderboardCustom(r20);
  6100. break;
  6101. case 64:
  6102. this.handleClientData(r20);
  6103. break;
  6104. case 70:
  6105. this.handleSystem(r20);
  6106. break;
  6107. case 71:
  6108. this.handlePing();
  6109. break;
  6110. case 72:
  6111. this.handleChat(r20);
  6112. break;
  6113. case 73:
  6114. this.handleWhisper(r20);
  6115. }
  6116. }
  6117. }, {
  6118. key : "handleUpdate",
  6119. /**
  6120. * @param {number} object
  6121. * @return {undefined}
  6122. */
  6123. value : function(object) {
  6124. for (;;) {
  6125. var cacheKey = object.readUint32();
  6126. if (0 == cacheKey) {
  6127. break;
  6128. }
  6129. var attributes = this.bucket.get(cacheKey);
  6130. if (null == attributes) {
  6131. switch(attributes = new out.default, attributes.type = object.readUint8(), attributes.setX(object.readInt16()), attributes.setY(object.readInt16()), attributes.type) {
  6132. case 0:
  6133. attributes.setSize(22);
  6134. break;
  6135. case 1:
  6136. attributes.setSize(object.readUint16());
  6137. attributes.color = object.readColor();
  6138. break;
  6139. case 2:
  6140. attributes.setSize(object.readUint16());
  6141. attributes.pId = object.readUint16();
  6142. Object.assign(attributes, this.players.get(attributes.pId));
  6143. if (attributes.pId == this.pId) {
  6144. this.ownCells.set(cacheKey, attributes);
  6145. }
  6146. break;
  6147. case 3:
  6148. ;
  6149. case 4:
  6150. attributes.setSize(object.readUint16());
  6151. }
  6152. this.bucket.set(cacheKey, attributes);
  6153. } else {
  6154. attributes.x_ = object.readInt16();
  6155. attributes.y_ = object.readInt16();
  6156. if (0 != attributes.type) {
  6157. attributes.size_ = object.readUint16();
  6158. }
  6159. /** @type {number} */
  6160. attributes.steps = 30;
  6161. }
  6162. }
  6163. var r = object.readUint32();
  6164. for (;r > 0;r--) {
  6165. var which = object.readUint32();
  6166. var ch = this.bucket.get(which);
  6167. this.bucket.delete(which);
  6168. if (ch.pId == this.pId) {
  6169. this.ownCells.delete(which);
  6170. if (0 == this.ownCells.size) {
  6171. this.game.onDie(this);
  6172. }
  6173. }
  6174. }
  6175. this.game.onUpdate();
  6176. }
  6177. }, {
  6178. key : "handlePosition",
  6179. /**
  6180. * @param {number} object
  6181. * @return {undefined}
  6182. */
  6183. value : function(object) {
  6184. this.centerX_ = object.readFloat32();
  6185. this.centerY_ = object.readFloat32();
  6186. /** @type {number} */
  6187. this.centerSteps = 30;
  6188. }
  6189. }, {
  6190. key : "handleClientData",
  6191. /**
  6192. * @param {number} object
  6193. * @return {undefined}
  6194. */
  6195. value : function(object) {
  6196. this.pId = object.readUint16();
  6197. this.game.onPId();
  6198. object.offset++;
  6199. this.border = {
  6200. minx : object.readUint16(),
  6201. miny : object.readUint16(),
  6202. maxx : object.readUint16(),
  6203. maxy : object.readUint16()
  6204. };
  6205. this.game.onBorder();
  6206. }
  6207. }, {
  6208. key : "handleLeaderboard",
  6209. /**
  6210. * @param {number} object
  6211. * @return {undefined}
  6212. */
  6213. value : function(object) {
  6214. /** @type {Array} */
  6215. var data = [];
  6216. var len = object.readUint8();
  6217. var start = object.readInt16();
  6218. /** @type {number} */
  6219. var i = 0;
  6220. for (;i < len;i++) {
  6221. data.push({
  6222. pos : i,
  6223. pId : object.readUint16(),
  6224. name : this.normalizeName(object.readString())
  6225. });
  6226. }
  6227. if (start >= len) {
  6228. if (start != -1) {
  6229. data.push({
  6230. pos : start,
  6231. pId : this.pId,
  6232. name : this.normalizeName(this.name)
  6233. });
  6234. }
  6235. }
  6236. this.game.onLeaderboard(this, data);
  6237. }
  6238. }, {
  6239. key : "handleLeaderboardCustom",
  6240. /**
  6241. * @param {number} object
  6242. * @return {undefined}
  6243. */
  6244. value : function(object) {
  6245. /** @type {Array} */
  6246. var result = [];
  6247. var padLength = object.readUint8();
  6248. /** @type {number} */
  6249. var i = 0;
  6250. for (;i < padLength;i++) {
  6251. result.push({
  6252. pos : i,
  6253. name : object.readString()
  6254. });
  6255. }
  6256. this.game.onLeaderboard(this, result);
  6257. }
  6258. }, {
  6259. key : "handlePing",
  6260. /**
  6261. * @return {undefined}
  6262. */
  6263. value : function() {
  6264. this.game.onPing(Date.now() - this.pingedTime);
  6265. }
  6266. }, {
  6267. key : "handleChat",
  6268. /**
  6269. * @param {number} object
  6270. * @return {undefined}
  6271. */
  6272. value : function(object) {
  6273. var msg = ["", "Party", "Admin"][object.readUint8()];
  6274. var id = [""][object.readUint8()];
  6275. if (id) {
  6276. /** @type {string} */
  6277. msg = msg + " - " + id;
  6278. }
  6279. var dmg = object.readUint16();
  6280. var r20 = this.normalizeName(object.readString());
  6281. var restoreScript = object.readColor();
  6282. var rreturn = object.readString();
  6283. this.game.onChat(msg, null, dmg, r20, restoreScript, rreturn, "#fff");
  6284. }
  6285. }, {
  6286. key : "handleWhisper",
  6287. /**
  6288. * @param {number} object
  6289. * @return {undefined}
  6290. */
  6291. value : function(object) {
  6292. var t = object.readUint8();
  6293. var id = this.pId;
  6294. var data = this.normalizeName(this.name);
  6295. var x = this.players.get(id) ? this.players.get(id).color : "#999";
  6296. var value = object.readUint16();
  6297. var method = this.normalizeName(object.readString());
  6298. var msg = object.readColor();
  6299. var r20 = object.readString();
  6300. if (!t) {
  6301. /** @type {Array} */
  6302. var args = [value, method, msg, id, data, x];
  6303. id = args[0];
  6304. data = args[1];
  6305. x = args[2];
  6306. value = args[3];
  6307. method = args[4];
  6308. msg = args[5];
  6309. }
  6310. this.game.onWhisper(id, data, x, value, method, msg, r20);
  6311. }
  6312. }, {
  6313. key : "handleSystem",
  6314. /**
  6315. * @param {number} object
  6316. * @return {undefined}
  6317. */
  6318. value : function(object) {
  6319. this.game.onSystem(object.readString());
  6320. }
  6321. }, {
  6322. key : "handleInvite",
  6323. /**
  6324. * @param {number} object
  6325. * @return {undefined}
  6326. */
  6327. value : function(object) {
  6328. this.game.onInvite(this, this.normalizeName(object.readString()));
  6329. }
  6330. }, {
  6331. key : "handlePartyInfo",
  6332. /**
  6333. * @param {number} object
  6334. * @return {undefined}
  6335. */
  6336. value : function(object) {
  6337. var map = new Map;
  6338. /** @type {Array} */
  6339. var meta = [];
  6340. var r = object.readUint16();
  6341. for (;r > 0;r--) {
  6342. /** @type {boolean} */
  6343. var source = 1 == object.readUint8();
  6344. var x = object.readUint16();
  6345. var details = this.partyIds.has(x) ? this.party[this.partyIds.get(x)] : {
  6346. pId : x,
  6347. x : null,
  6348. x_ : null,
  6349. y : null,
  6350. y_ : null,
  6351. mass : null,
  6352. mass_ : null
  6353. };
  6354. /** @type {boolean} */
  6355. details.leader = source;
  6356. details.name = this.normalizeName(object.readString());
  6357. map.set(x, meta.length);
  6358. meta.push(details);
  6359. }
  6360. this.partyIds = map;
  6361. /** @type {Array} */
  6362. this.party = meta;
  6363. this.game.onPartyUpdate();
  6364. }
  6365. }, {
  6366. key : "handlePartyData",
  6367. /**
  6368. * @param {number} object
  6369. * @return {undefined}
  6370. */
  6371. value : function(object) {
  6372. var pos = object.readUint16();
  6373. if (pos == this.party.length) {
  6374. /** @type {boolean} */
  6375. var callback2 = true;
  6376. /** @type {boolean} */
  6377. var r = false;
  6378. var bulk = void 0;
  6379. try {
  6380. var right;
  6381. var self = this.party[Symbol.iterator]();
  6382. for (;!(callback2 = (right = self.next()).done);callback2 = true) {
  6383. var b = right.value;
  6384. b.x_ = object.readUint32();
  6385. b.y_ = object.readUint32();
  6386. b.mass_ = object.readUint32();
  6387. if (0 == b.mass_) {
  6388. /** @type {null} */
  6389. b.x = null;
  6390. /** @type {null} */
  6391. b.y = null;
  6392. } else {
  6393. if (null == b.x) {
  6394. if (null == b.y) {
  6395. b.x = b.x_;
  6396. b.y = b.y_;
  6397. b.mass = b.mass_;
  6398. }
  6399. }
  6400. }
  6401. }
  6402. } catch (fn) {
  6403. /** @type {boolean} */
  6404. r = true;
  6405. bulk = fn;
  6406. } finally {
  6407. try {
  6408. if (!callback2) {
  6409. if (self.return) {
  6410. self.return();
  6411. }
  6412. }
  6413. } finally {
  6414. if (r) {
  6415. throw bulk;
  6416. }
  6417. }
  6418. }
  6419. this.game.onPartyUpdate();
  6420. }
  6421. }
  6422. }, {
  6423. key : "handlePlayerAdd",
  6424. /**
  6425. * @param {number} object
  6426. * @return {undefined}
  6427. */
  6428. value : function(object) {
  6429. var t = object.readUint16();
  6430. for (;t > 0;t--) {
  6431. this.players.set(object.readUint16(), {
  6432. name : object.readString(),
  6433. skin : object.readString(),
  6434. color : object.readColor()
  6435. });
  6436. }
  6437. }
  6438. }, {
  6439. key : "handlePlayerDelete",
  6440. /**
  6441. * @param {number} object
  6442. * @return {undefined}
  6443. */
  6444. value : function(object) {
  6445. var t = object.readUint16();
  6446. for (;t > 0;t--) {
  6447. this.players.delete(object.readUint16());
  6448. }
  6449. }
  6450. }, {
  6451. key : "onSendMessage",
  6452. /**
  6453. * @param {number} object
  6454. * @return {undefined}
  6455. */
  6456. value : function(object) {
  6457. var stream = new that.BufferReader(object);
  6458. var n = stream.readUint8();
  6459. switch(n) {
  6460. case 0:
  6461. this.play("", stream.readString(), stream.readString());
  6462. break;
  6463. case 1:
  6464. this.spectate("", "", "");
  6465. break;
  6466. case 16:
  6467. this.mouseX = stream.readInt16();
  6468. this.mouseY = stream.readInt16();
  6469. break;
  6470. case 71:
  6471. this.sendPing();
  6472. }
  6473. }
  6474. }]), object;
  6475. }(code.default);
  6476. ctx.LocalMultiboxClient = function(key) {
  6477. /**
  6478. * @return {?}
  6479. */
  6480. function value() {
  6481. return test(this, value), error(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  6482. }
  6483. return wrap(value, key), isClassOf(value, [{
  6484. key : "sendPing",
  6485. /**
  6486. * @return {undefined}
  6487. */
  6488. value : function() {
  6489. }
  6490. }, {
  6491. key : "onMessage",
  6492. /**
  6493. * @param {number} object
  6494. * @return {undefined}
  6495. */
  6496. value : function(object) {
  6497. var r20 = new that.BufferReader(object.data);
  6498. var n = r20.readUint8();
  6499. switch(n) {
  6500. case 4:
  6501. this.handleUpdate(r20);
  6502. break;
  6503. case 10:
  6504. this.handlePosition(r20);
  6505. break;
  6506. case 40:
  6507. this.handleInvite(r20);
  6508. break;
  6509. case 41:
  6510. this.handlePartyInfo(r20);
  6511. break;
  6512. case 42:
  6513. this.handlePartyData(r20);
  6514. break;
  6515. case 43:
  6516. this.handlePlayerAdd(r20);
  6517. break;
  6518. case 44:
  6519. this.handlePlayerDelete(r20);
  6520. break;
  6521. case 49:
  6522. this.handleLeaderboard(r20);
  6523. break;
  6524. case 64:
  6525. this.handleClientData(r20);
  6526. }
  6527. }
  6528. }]), value;
  6529. }(camelKey);
  6530. ctx.LocalSpectateClient = function(_super) {
  6531. /**
  6532. * @return {?}
  6533. */
  6534. function value() {
  6535. return test(this, value), error(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  6536. }
  6537. return wrap(value, _super), isClassOf(value, [{
  6538. key : "onMessage",
  6539. /**
  6540. * @param {number} object
  6541. * @return {undefined}
  6542. */
  6543. value : function(object) {
  6544. var r20 = new that.BufferReader(object.data);
  6545. var n = r20.readUint8();
  6546. switch(n) {
  6547. case 4:
  6548. this.handleUpdate(r20);
  6549. break;
  6550. case 10:
  6551. this.handlePosition(r20);
  6552. break;
  6553. case 43:
  6554. this.handlePlayerAdd(r20);
  6555. break;
  6556. case 44:
  6557. this.handlePlayerDelete(r20);
  6558. break;
  6559. case 64:
  6560. this.handleClientData(r20);
  6561. }
  6562. }
  6563. }]), value;
  6564. }((0, value.default)(camelKey));
  6565. }, function(dataAndEvents, object, $sanitize) {
  6566. /**
  6567. * @param {?} object
  6568. * @return {?}
  6569. */
  6570. function seal(object) {
  6571. return object;
  6572. }
  6573. Object.defineProperty(object, "__esModule", {
  6574. value : true
  6575. });
  6576. (function() {
  6577. /**
  6578. * @param {Arguments} object
  6579. * @param {number} deepDataAndEvents
  6580. * @return {?}
  6581. */
  6582. function clone(object, deepDataAndEvents) {
  6583. /** @type {Array} */
  6584. var res = [];
  6585. /** @type {boolean} */
  6586. var callback2 = true;
  6587. /** @type {boolean} */
  6588. var i = false;
  6589. var bulk = void 0;
  6590. try {
  6591. var next;
  6592. var self = object[Symbol.iterator]();
  6593. for (;!(callback2 = (next = self.next()).done) && (res.push(next.value), !deepDataAndEvents || res.length !== deepDataAndEvents);callback2 = true) {
  6594. }
  6595. } catch (fn) {
  6596. /** @type {boolean} */
  6597. i = true;
  6598. bulk = fn;
  6599. } finally {
  6600. try {
  6601. if (!callback2) {
  6602. if (self.return) {
  6603. self.return();
  6604. }
  6605. }
  6606. } finally {
  6607. if (i) {
  6608. throw bulk;
  6609. }
  6610. }
  6611. }
  6612. return res;
  6613. }
  6614. return function(which, deepDataAndEvents) {
  6615. if (Array.isArray(which)) {
  6616. return which;
  6617. }
  6618. if (Symbol.iterator in Object(which)) {
  6619. return clone(which, deepDataAndEvents);
  6620. }
  6621. throw new TypeError("Invalid attempt to destructure non-iterable instance");
  6622. };
  6623. })();
  6624. (function() {
  6625. /**
  6626. * @param {Function} object
  6627. * @param {Array} d
  6628. * @return {undefined}
  6629. */
  6630. function defineProperty(object, d) {
  6631. /** @type {number} */
  6632. var i = 0;
  6633. for (;i < d.length;i++) {
  6634. var desc = d[i];
  6635. desc.enumerable = desc.enumerable || false;
  6636. /** @type {boolean} */
  6637. desc.configurable = true;
  6638. if ("value" in desc) {
  6639. /** @type {boolean} */
  6640. desc.writable = true;
  6641. }
  6642. Object.defineProperty(object, desc.key, desc);
  6643. }
  6644. }
  6645. return function(x, current, a) {
  6646. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  6647. };
  6648. })();
  6649. /** @type {function (?): ?} */
  6650. object.default = seal;
  6651. $sanitize(10);
  6652. }, function(dataAndEvents, obj, deepDataAndEvents) {
  6653. /**
  6654. * @param {?} dataAndEvents
  6655. * @param {Function} bind
  6656. * @return {undefined}
  6657. */
  6658. function forEach(dataAndEvents, bind) {
  6659. if (!(dataAndEvents instanceof bind)) {
  6660. throw new TypeError("Cannot call a class as a function");
  6661. }
  6662. }
  6663. Object.defineProperty(obj, "__esModule", {
  6664. value : true
  6665. });
  6666. var deprecate = function() {
  6667. /**
  6668. * @param {Function} object
  6669. * @param {Array} d
  6670. * @return {undefined}
  6671. */
  6672. function defineProperty(object, d) {
  6673. /** @type {number} */
  6674. var i = 0;
  6675. for (;i < d.length;i++) {
  6676. var desc = d[i];
  6677. desc.enumerable = desc.enumerable || false;
  6678. /** @type {boolean} */
  6679. desc.configurable = true;
  6680. if ("value" in desc) {
  6681. /** @type {boolean} */
  6682. desc.writable = true;
  6683. }
  6684. Object.defineProperty(object, desc.key, desc);
  6685. }
  6686. }
  6687. return function(x, current, a) {
  6688. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  6689. };
  6690. }();
  6691. var value = function() {
  6692. /**
  6693. * @return {undefined}
  6694. */
  6695. function bind() {
  6696. forEach(this, bind);
  6697. /** @type {number} */
  6698. this.tsTime = 0;
  6699. this.keyDown = new Set;
  6700. window.addEventListener("mousemove", this.handleMouseMove.bind(this));
  6701. window.addEventListener("wheel", this.handleWheel.bind(this));
  6702. window.addEventListener("mousedown", this.handleMouseDown.bind(this));
  6703. window.addEventListener("mouseup", this.handleMouseUp.bind(this));
  6704. window.addEventListener("keydown", this.handleKeyDown.bind(this));
  6705. window.addEventListener("keyup", this.handleKeyUp.bind(this));
  6706. }
  6707. return deprecate(bind, [{
  6708. key : "split",
  6709. /**
  6710. * @param {number} object
  6711. * @return {undefined}
  6712. */
  6713. value : function(object) {
  6714. var b = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
  6715. /** @type {number} */
  6716. var c = 0;
  6717. for (;c < object;c++) {
  6718. setTimeout(this.activeClient.sendSpace.bind(this.activeClient), b + c * this.activeClient.actionTicks);
  6719. }
  6720. }
  6721. }, {
  6722. key : "handleMouseMove",
  6723. /**
  6724. * @param {number} object
  6725. * @return {undefined}
  6726. */
  6727. value : function(object) {
  6728. this.mouseRawX = object.clientX;
  6729. this.mouseRawY = object.clientY;
  6730. }
  6731. }, {
  6732. key : "handleWheel",
  6733. /**
  6734. * @param {number} object
  6735. * @return {undefined}
  6736. */
  6737. value : function(object) {
  6738. if (object.target == this.canvas) {
  6739. if (this.ui.main.hideMain) {
  6740. this.mouseZoom *= object.deltaY < 0 ? 1.1 : 0.9;
  6741. }
  6742. }
  6743. }
  6744. }, {
  6745. key : "handleActionDown",
  6746. /**
  6747. * @param {number} object
  6748. * @return {?}
  6749. */
  6750. value : function(object) {
  6751. if ("Escape" == object) {
  6752. return void(this.ui.main.hideMain = !this.ui.main.hideMain);
  6753. }
  6754. if (this.activeClient) {
  6755. var value = this.ui.keysInv.get(object);
  6756. if (value) {
  6757. /** @type {number} */
  6758. var r20 = Math.max(this.tsTime - Date.now(), 0);
  6759. /** @type {boolean} */
  6760. var callback2 = true;
  6761. /** @type {boolean} */
  6762. var i = false;
  6763. var bulk = void 0;
  6764. try {
  6765. var _ref;
  6766. var self = value[Symbol.iterator]();
  6767. for (;!(callback2 = (_ref = self.next()).done);callback2 = true) {
  6768. var color = _ref.value;
  6769. switch(color) {
  6770. case "feed":
  6771. /** @type {boolean} */
  6772. this.activeClient.wPress = true;
  6773. break;
  6774. case "split":
  6775. this.split(1, r20);
  6776. break;
  6777. case "doubleSplit":
  6778. this.split(2, r20);
  6779. break;
  6780. case "tripleSplit":
  6781. this.split(3, r20);
  6782. break;
  6783. case "quadSplit":
  6784. this.split(4, r20);
  6785. /** @type {boolean} */
  6786. this.tsInd = false;
  6787. break;
  6788. case "spectateTop":
  6789. if (this.activeClient.spectating) {
  6790. this.activeClient.sendAutoChase();
  6791. }
  6792. break;
  6793. case "indTs":
  6794. /** @type {boolean} */
  6795. this.tsInd = false;
  6796. break;
  6797. case "multiboxSwitch":
  6798. if (this.passiveClient) {
  6799. /** @type {boolean} */
  6800. this.activeClient.wPress = false;
  6801. /** @type {number} */
  6802. this.activeClient.lineSplit = 0;
  6803. this.activeClient.sendTab();
  6804. /** @type {Array} */
  6805. var activeClient = [this.passiveClient, this.activeClient];
  6806. this.activeClient = activeClient[0];
  6807. this.passiveClient = activeClient[1];
  6808. if (0 == this.activeClient.ownCells.size) {
  6809. this.activeClient.play(this.activeClient.team, this.activeClient.name, this.activeClient.skin, this.currentServer);
  6810. }
  6811. this.recorder.updateClients();
  6812. }
  6813. break;
  6814. case "multiboxTs":
  6815. break;
  6816. case "horzLine":
  6817. /** @type {number} */
  6818. this.activeClient.lineSplit = 1;
  6819. break;
  6820. case "vertLine":
  6821. /** @type {number} */
  6822. this.activeClient.lineSplit = 2;
  6823. }
  6824. }
  6825. } catch (fn) {
  6826. /** @type {boolean} */
  6827. i = true;
  6828. bulk = fn;
  6829. } finally {
  6830. try {
  6831. if (!callback2) {
  6832. if (self.return) {
  6833. self.return();
  6834. }
  6835. }
  6836. } finally {
  6837. if (i) {
  6838. throw bulk;
  6839. }
  6840. }
  6841. }
  6842. return true;
  6843. }
  6844. }
  6845. }
  6846. }, {
  6847. key : "handleActionUp",
  6848. /**
  6849. * @param {number} object
  6850. * @return {?}
  6851. */
  6852. value : function(object) {
  6853. if (this.activeClient) {
  6854. var value = this.ui.keysInv.get(object);
  6855. if (value) {
  6856. /** @type {boolean} */
  6857. var callback2 = true;
  6858. /** @type {boolean} */
  6859. var r = false;
  6860. var bulk = void 0;
  6861. try {
  6862. var _ref;
  6863. var self = value[Symbol.iterator]();
  6864. for (;!(callback2 = (_ref = self.next()).done);callback2 = true) {
  6865. var color = _ref.value;
  6866. switch(color) {
  6867. case "feed":
  6868. /** @type {boolean} */
  6869. this.activeClient.wPress = false;
  6870. break;
  6871. case "horzLine":
  6872. ;
  6873. case "vertLine":
  6874. /** @type {number} */
  6875. this.activeClient.lineSplit = 0;
  6876. }
  6877. }
  6878. } catch (fn) {
  6879. /** @type {boolean} */
  6880. r = true;
  6881. bulk = fn;
  6882. } finally {
  6883. try {
  6884. if (!callback2) {
  6885. if (self.return) {
  6886. self.return();
  6887. }
  6888. }
  6889. } finally {
  6890. if (r) {
  6891. throw bulk;
  6892. }
  6893. }
  6894. }
  6895. return true;
  6896. }
  6897. }
  6898. }
  6899. }, {
  6900. key : "handleKeyDown",
  6901. /**
  6902. * @param {number} object
  6903. * @return {undefined}
  6904. */
  6905. value : function(object) {
  6906. var result = 1 == object.key.length ? object.key.toLowerCase() : object.key;
  6907. if (!this.keyDown.has(result)) {
  6908. this.keyDown.add(result);
  6909. if (!("INPUT" == document.activeElement.tagName)) {
  6910. if (!object.ctrlKey) {
  6911. if (!object.altKey) {
  6912. if (!!this.handleActionDown(result)) {
  6913. object.preventDefault();
  6914. }
  6915. }
  6916. }
  6917. }
  6918. }
  6919. }
  6920. }, {
  6921. key : "handleKeyUp",
  6922. /**
  6923. * @param {number} object
  6924. * @return {undefined}
  6925. */
  6926. value : function(object) {
  6927. var which = 1 == object.key.length ? object.key.toLowerCase() : object.key;
  6928. this.keyDown.delete(which);
  6929. if (!("INPUT" == document.activeElement.tagName)) {
  6930. if (!object.ctrlKey) {
  6931. if (!object.altKey) {
  6932. if (!!this.handleActionUp(which)) {
  6933. object.preventDefault();
  6934. }
  6935. }
  6936. }
  6937. }
  6938. }
  6939. }, {
  6940. key : "handleMouseDown",
  6941. /**
  6942. * @param {number} object
  6943. * @return {undefined}
  6944. */
  6945. value : function(object) {
  6946. if (object.target == this.canvas) {
  6947. if (this.handleActionDown(object.button)) {
  6948. object.preventDefault();
  6949. }
  6950. }
  6951. }
  6952. }, {
  6953. key : "handleMouseUp",
  6954. /**
  6955. * @param {number} object
  6956. * @return {undefined}
  6957. */
  6958. value : function(object) {
  6959. if (object.target == this.canvas) {
  6960. if (this.handleActionUp(object.button)) {
  6961. object.preventDefault();
  6962. }
  6963. }
  6964. }
  6965. }]), bind;
  6966. }();
  6967. obj.default = value;
  6968. }, function(dataAndEvents, ctx, require) {
  6969. /**
  6970. * @param {Function} target
  6971. * @return {?}
  6972. */
  6973. function extend(target) {
  6974. if (target && target.__esModule) {
  6975. return target;
  6976. }
  6977. var obj = {};
  6978. if (null != target) {
  6979. var key;
  6980. for (key in target) {
  6981. if (Object.prototype.hasOwnProperty.call(target, key)) {
  6982. obj[key] = target[key];
  6983. }
  6984. }
  6985. }
  6986. return obj.default = target, obj;
  6987. }
  6988. /**
  6989. * @param {string} type
  6990. * @return {?}
  6991. */
  6992. function create(type) {
  6993. return type && type.__esModule ? type : {
  6994. default : type
  6995. };
  6996. }
  6997. /**
  6998. * @param {number} results
  6999. * @return {?}
  7000. */
  7001. function makeArray(results) {
  7002. if (Array.isArray(results)) {
  7003. /** @type {number} */
  7004. var i = 0;
  7005. /** @type {Array} */
  7006. var result = Array(results.length);
  7007. for (;i < results.length;i++) {
  7008. result[i] = results[i];
  7009. }
  7010. return result;
  7011. }
  7012. return Array.from(results);
  7013. }
  7014. /**
  7015. * @param {Function} matcherFunction
  7016. * @return {?}
  7017. */
  7018. function proxy(matcherFunction) {
  7019. return function() {
  7020. var a = matcherFunction.apply(this, arguments);
  7021. return new Promise(function(isNumber, fire) {
  7022. /**
  7023. * @param {string} action
  7024. * @param {?} elem
  7025. * @return {?}
  7026. */
  7027. function next(action, elem) {
  7028. try {
  7029. var q = a[action](elem);
  7030. var val = q.value;
  7031. } catch (memory) {
  7032. return void fire(memory);
  7033. }
  7034. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  7035. next("next", arg);
  7036. }, function(arg) {
  7037. next("throw", arg);
  7038. });
  7039. }
  7040. return next("next");
  7041. });
  7042. };
  7043. }
  7044. /**
  7045. * @param {?} dataAndEvents
  7046. * @param {Function} init
  7047. * @return {undefined}
  7048. */
  7049. function supr(dataAndEvents, init) {
  7050. if (!(dataAndEvents instanceof init)) {
  7051. throw new TypeError("Cannot call a class as a function");
  7052. }
  7053. }
  7054. Object.defineProperty(ctx, "__esModule", {
  7055. value : true
  7056. });
  7057. ctx.PlaybackSocket = ctx.RecordSocket = ctx.Recorder = ctx.InflateReader = ctx.DeflateWriter = void 0;
  7058. /** @type {function (?): ?} */
  7059. var objectToString = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(edge) {
  7060. return typeof edge;
  7061. } : function(arg) {
  7062. return arg && ("function" == typeof Symbol && (arg.constructor === Symbol && arg !== Symbol.prototype)) ? "symbol" : typeof arg;
  7063. };
  7064. var callback = Object.assign || function(opt_attributes) {
  7065. /** @type {number} */
  7066. var i = 1;
  7067. for (;i < arguments.length;i++) {
  7068. var iterable = arguments[i];
  7069. var key;
  7070. for (key in iterable) {
  7071. if (Object.prototype.hasOwnProperty.call(iterable, key)) {
  7072. opt_attributes[key] = iterable[key];
  7073. }
  7074. }
  7075. }
  7076. return opt_attributes;
  7077. };
  7078. var walk = function() {
  7079. /**
  7080. * @param {Function} object
  7081. * @param {Array} d
  7082. * @return {undefined}
  7083. */
  7084. function defineProperty(object, d) {
  7085. /** @type {number} */
  7086. var i = 0;
  7087. for (;i < d.length;i++) {
  7088. var desc = d[i];
  7089. desc.enumerable = desc.enumerable || false;
  7090. /** @type {boolean} */
  7091. desc.configurable = true;
  7092. if ("value" in desc) {
  7093. /** @type {boolean} */
  7094. desc.writable = true;
  7095. }
  7096. Object.defineProperty(object, desc.key, desc);
  7097. }
  7098. }
  7099. return function(x, current, a) {
  7100. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  7101. };
  7102. }();
  7103. var selector = require(52);
  7104. var elem = create(selector);
  7105. var lang = require(57);
  7106. var map = require(4);
  7107. var values = extend(map);
  7108. var helper = require(6);
  7109. var Handlebars = create(helper);
  7110. var html = require(8);
  7111. var dom = create(html);
  7112. var definitions = require(3);
  7113. var files = ctx.DeflateWriter = function() {
  7114. /**
  7115. * @param {string} table
  7116. * @param {string} bridgeName
  7117. * @return {undefined}
  7118. */
  7119. function init(table, bridgeName) {
  7120. var cacheSize = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 10485760;
  7121. supr(this, init);
  7122. /** @type {string} */
  7123. this.table = table;
  7124. /** @type {string} */
  7125. this.name = bridgeName;
  7126. /** @type {Blob} */
  7127. this.blob = new Blob;
  7128. this.cacheSize = cacheSize;
  7129. /** @type {number} */
  7130. this.curSize = 0;
  7131. this.deflate = new lang.Deflate({
  7132. level : 9
  7133. });
  7134. }
  7135. return walk(init, [{
  7136. key : "flush",
  7137. value : function() {
  7138. /**
  7139. * @return {?}
  7140. */
  7141. function view() {
  7142. return matcherFunction.apply(this, arguments);
  7143. }
  7144. var matcherFunction = proxy(regeneratorRuntime.mark(function initialize() {
  7145. return regeneratorRuntime.wrap(function(current) {
  7146. for (;;) {
  7147. switch(current.prev = current.next) {
  7148. case 0:
  7149. return this.deflate.push(new Uint8Array([]), lang.Z_FINISH), this.blob = new Blob([this.blob, this.deflate.result]), current.next = 4, this.table.put({
  7150. name : this.name,
  7151. data : this.blob
  7152. });
  7153. case 4:
  7154. /** @type {number} */
  7155. this.curSize = 0;
  7156. this.deflate = new lang.Deflate({
  7157. level : 9
  7158. });
  7159. case 6:
  7160. ;
  7161. case "end":
  7162. return current.stop();
  7163. }
  7164. }
  7165. }, initialize, this);
  7166. }));
  7167. return view;
  7168. }()
  7169. }, {
  7170. key : "write",
  7171. value : function() {
  7172. /**
  7173. * @param {?} event
  7174. * @return {?}
  7175. */
  7176. function f2(event) {
  7177. return matcherFunction.apply(this, arguments);
  7178. }
  7179. var matcherFunction = proxy(regeneratorRuntime.mark(function end(data) {
  7180. return regeneratorRuntime.wrap(function(current) {
  7181. for (;;) {
  7182. switch(current.prev = current.next) {
  7183. case 0:
  7184. if (this.deflate.push(data), this.curSize += data.byteLength, !(this.curSize >= this.cacheSize)) {
  7185. /** @type {number} */
  7186. current.next = 5;
  7187. break;
  7188. }
  7189. return current.next = 5, this.flush();
  7190. case 5:
  7191. ;
  7192. case "end":
  7193. return current.stop();
  7194. }
  7195. }
  7196. }, end, this);
  7197. }));
  7198. return f2;
  7199. }()
  7200. }]), init;
  7201. }();
  7202. var Tree = ctx.InflateReader = function() {
  7203. /**
  7204. * @param {Node} buf
  7205. * @param {?} prefix
  7206. * @return {undefined}
  7207. */
  7208. function init(buf, prefix) {
  7209. var cacheSize = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 10485760;
  7210. supr(this, init);
  7211. this.entry = buf.get(prefix);
  7212. this.cacheSize = cacheSize;
  7213. /** @type {number} */
  7214. this.offset = 0;
  7215. /** @type {FileReader} */
  7216. this.reader = new FileReader;
  7217. this.inflate = new lang.Inflate;
  7218. }
  7219. return walk(init, [{
  7220. key : "seek",
  7221. /**
  7222. * @param {number} object
  7223. * @return {undefined}
  7224. */
  7225. value : function(object) {
  7226. /** @type {number} */
  7227. this.offset = object;
  7228. }
  7229. }, {
  7230. key : "read",
  7231. value : function() {
  7232. /**
  7233. * @return {?}
  7234. */
  7235. function view() {
  7236. return matcherFunction.apply(this, arguments);
  7237. }
  7238. var matcherFunction = proxy(regeneratorRuntime.mark(function next() {
  7239. var file;
  7240. var body;
  7241. var obj = this;
  7242. return regeneratorRuntime.wrap(function(self) {
  7243. for (;;) {
  7244. switch(self.prev = self.next) {
  7245. case 0:
  7246. return self.next = 2, this.entry;
  7247. case 2:
  7248. file = self.sent.data;
  7249. case 3:
  7250. if (this.inflate.ended || this.offset == file.size) {
  7251. /** @type {number} */
  7252. self.next = 11;
  7253. break;
  7254. }
  7255. return this.reader.readAsArrayBuffer(file.slice(this.offset, this.offset + this.cacheSize)), self.next = 7, new Promise(function(i) {
  7256. return obj.reader.onload = i;
  7257. });
  7258. case 7:
  7259. this.inflate.push(this.reader.result);
  7260. /** @type {number} */
  7261. this.offset = Math.min(file.size, this.offset + this.cacheSize);
  7262. /** @type {number} */
  7263. self.next = 3;
  7264. break;
  7265. case 11:
  7266. return body = (this.inflate.result || new Uint8Array).buffer, this.offset -= this.inflate.strm.avail_in, this.inflate = new lang.Inflate, self.abrupt("return", body);
  7267. case 15:
  7268. ;
  7269. case "end":
  7270. return self.stop();
  7271. }
  7272. }
  7273. }, next, this);
  7274. }));
  7275. return view;
  7276. }()
  7277. }]), init;
  7278. }();
  7279. var Node = (ctx.Recorder = function() {
  7280. /**
  7281. * @param {?} theGame
  7282. * @param {string} allBindingsAccessor
  7283. * @return {undefined}
  7284. */
  7285. function init(theGame, allBindingsAccessor) {
  7286. var server = this;
  7287. supr(this, init);
  7288. this.game = theGame;
  7289. this.db = new elem.default("recordings", allBindingsAccessor);
  7290. this.db.version(1).stores({
  7291. files : "name",
  7292. indexes : "++, *name"
  7293. });
  7294. this.bufferWriter = new definitions.BufferWriter;
  7295. /** @type {null} */
  7296. this.reader = this.writer = this.playbackEnd = this.recordEnd = null;
  7297. this.prevClientIds = new Map;
  7298. this.clientIds = new Map;
  7299. this.idClients = new Map;
  7300. /** @type {Object} */
  7301. this.stubGame = Object.create(this.game);
  7302. this.stubGame.leaderboards = new Map;
  7303. this.stubGame.ui = {
  7304. options : {
  7305. uiFgColor : {},
  7306. selfLbColor : {},
  7307. friendLbColor : {},
  7308. enemyLbColor : {},
  7309. selfPartyColor : {},
  7310. friendPartyColor : {},
  7311. leaderPartyColor : {}
  7312. },
  7313. stats : {},
  7314. chat : {
  7315. invites : []
  7316. },
  7317. main : {}
  7318. };
  7319. this.stubGame.chat = new Proxy({}, {
  7320. /**
  7321. * @return {?}
  7322. */
  7323. get : function() {
  7324. return function() {
  7325. };
  7326. }
  7327. });
  7328. /**
  7329. * @return {?}
  7330. */
  7331. this.stubGame.onUpdate = function() {
  7332. return server.stubGame.stats.update(false);
  7333. };
  7334. }
  7335. return walk(init, [{
  7336. key : "record",
  7337. /**
  7338. * @param {number} object
  7339. * @return {undefined}
  7340. */
  7341. value : function(object) {
  7342. var self = this;
  7343. this.recordEnd = proxy(regeneratorRuntime.mark(function end() {
  7344. return regeneratorRuntime.wrap(function(item) {
  7345. for (;;) {
  7346. switch(item.prev = item.next) {
  7347. case 0:
  7348. if (item.t0 = self.recordEnd, !item.t0) {
  7349. /** @type {number} */
  7350. item.next = 4;
  7351. break;
  7352. }
  7353. return item.next = 4, self.recordEnd;
  7354. case 4:
  7355. return self.bufferWriter.reset(), self.bufferWriter.writeFloat64(Date.now()), self.bufferWriter.writeBytes(object), item.next = 9, self.writer.write(self.bufferWriter.build());
  7356. case 9:
  7357. ;
  7358. case "end":
  7359. return item.stop();
  7360. }
  7361. }
  7362. }, end, self);
  7363. }))();
  7364. }
  7365. }, {
  7366. key : "stringifyClients",
  7367. /**
  7368. * @return {?}
  7369. */
  7370. value : function() {
  7371. var db = this;
  7372. return JSON.stringify([this.game.activeClient, this.game.passiveClient, this.game.spectateClient], function(dataAndEvents, result) {
  7373. return result instanceof map.Client ? (result = callback({
  7374. id : db.clientIds.get(result)
  7375. }, !db.prevClientIds.has(result) && callback({}, result, {
  7376. __class__ : result.constructor.name,
  7377. ownCells : [].concat(makeArray(result.ownCells.keys()))
  7378. })), delete result.socket && (delete result.game && delete result.writer)) : result instanceof Handlebars.default ? (result = callback({}, result, {
  7379. __class__ : result.constructor.name
  7380. }), delete result.img) : result instanceof Map && (result = {
  7381. __class__ : result.constructor.name,
  7382. entries : [].concat(makeArray(result.entries()))
  7383. }), result;
  7384. });
  7385. }
  7386. }, {
  7387. key : "objectifyStats",
  7388. /**
  7389. * @param {number} object
  7390. * @return {?}
  7391. */
  7392. value : function(object) {
  7393. var internalValues = {};
  7394. /** @type {boolean} */
  7395. var callback2 = true;
  7396. /** @type {boolean} */
  7397. var r = false;
  7398. var bulk = void 0;
  7399. try {
  7400. var _ref;
  7401. var self = dom.default[object][Symbol.iterator]();
  7402. for (;!(callback2 = (_ref = self.next()).done);callback2 = true) {
  7403. var key = _ref.value;
  7404. internalValues[key] = this.game.stats[key];
  7405. }
  7406. } catch (fn) {
  7407. /** @type {boolean} */
  7408. r = true;
  7409. bulk = fn;
  7410. } finally {
  7411. try {
  7412. if (!callback2) {
  7413. if (self.return) {
  7414. self.return();
  7415. }
  7416. }
  7417. } finally {
  7418. if (r) {
  7419. throw bulk;
  7420. }
  7421. }
  7422. }
  7423. return internalValues;
  7424. }
  7425. }, {
  7426. key : "recordClients",
  7427. /**
  7428. * @return {undefined}
  7429. */
  7430. value : function() {
  7431. this.bufferWriter.reset();
  7432. this.bufferWriter.writeUint8(0);
  7433. this.bufferWriter.writeString(this.stringifyClients());
  7434. this.record(this.bufferWriter.build());
  7435. }
  7436. }, {
  7437. key : "updateClients",
  7438. /**
  7439. * @return {undefined}
  7440. */
  7441. value : function() {
  7442. var data_priv = new Map;
  7443. /** @type {boolean} */
  7444. var callback2 = true;
  7445. /** @type {boolean} */
  7446. var n = false;
  7447. var bulk = void 0;
  7448. try {
  7449. var target;
  7450. var self = this.game.clients[Symbol.iterator]();
  7451. for (;!(callback2 = (target = self.next()).done);callback2 = true) {
  7452. var node = target.value;
  7453. var pdataCur = this.clientIds.get(node) || 1;
  7454. if (!this.clientIds.has(node)) {
  7455. for (;[].concat(makeArray(this.clientIds.values()), makeArray(data_priv.values())).includes(pdataCur);) {
  7456. pdataCur++;
  7457. }
  7458. }
  7459. data_priv.set(node, pdataCur);
  7460. }
  7461. } catch (fn) {
  7462. /** @type {boolean} */
  7463. n = true;
  7464. bulk = fn;
  7465. } finally {
  7466. try {
  7467. if (!callback2) {
  7468. if (self.return) {
  7469. self.return();
  7470. }
  7471. }
  7472. } finally {
  7473. if (n) {
  7474. throw bulk;
  7475. }
  7476. }
  7477. }
  7478. /** @type {Array} */
  7479. var clientIds = [this.clientIds, data_priv];
  7480. this.prevClientIds = clientIds[0];
  7481. this.clientIds = clientIds[1];
  7482. if (this.writer) {
  7483. this.recordClients();
  7484. }
  7485. }
  7486. }, {
  7487. key : "startRecord",
  7488. value : function() {
  7489. /**
  7490. * @return {?}
  7491. */
  7492. function view() {
  7493. return matcherFunction.apply(this, arguments);
  7494. }
  7495. var matcherFunction = proxy(regeneratorRuntime.mark(function formatPattern() {
  7496. var date;
  7497. return regeneratorRuntime.wrap(function(current) {
  7498. for (;;) {
  7499. switch(current.prev = current.next) {
  7500. case 0:
  7501. return current.next = 2, this.stop();
  7502. case 2:
  7503. /** @type {Date} */
  7504. date = new Date;
  7505. this.writer = new files(this.db.files, date.getFullYear() + "-" + (("0" + (date.getMonth() + 1)).substr(-2) + "-") + (("0" + date.getDate()).substr(-2) + ".") + (("0" + date.getHours()).substr(-2) + "-") + (("0" + date.getMinutes()).substr(-2) + "-") + (("0" + date.getSeconds()).substr(-2) + ".bin"));
  7506. this.updateClients();
  7507. case 5:
  7508. ;
  7509. case "end":
  7510. return current.stop();
  7511. }
  7512. }
  7513. }, formatPattern, this);
  7514. }));
  7515. return view;
  7516. }()
  7517. }, {
  7518. key : "parseClients",
  7519. /**
  7520. * @param {number} object
  7521. * @return {?}
  7522. */
  7523. value : function(object) {
  7524. var options = this;
  7525. return JSON.parse(object, function(dataAndEvents, e) {
  7526. if (!e || "object" != ("undefined" == typeof e ? "undefined" : objectToString(e))) {
  7527. return e;
  7528. }
  7529. if (options.idClients.has(e.id)) {
  7530. return options.idClients.get(e.id);
  7531. }
  7532. var value = values[e.__class__];
  7533. return value ? (delete e.__class__, e = Object.assign(new value(e.type), callback({}, e, {
  7534. game : options.game,
  7535. ownCells : new Map(e.ownCells.map(function(storageKey) {
  7536. return[storageKey, e.bucket.get(storageKey)];
  7537. }))
  7538. }))) : "Cell" == e.__class__ ? (delete e.__class__, e = Object.assign(new Handlebars.default(e.type), e)) : "Map" == e.__class__ && (e = new Map(e.entries)), e;
  7539. });
  7540. }
  7541. }, {
  7542. key : "playbackClients",
  7543. /**
  7544. * @param {number} object
  7545. * @return {undefined}
  7546. */
  7547. value : function(object) {
  7548. var game = new Map;
  7549. var map = new Map;
  7550. /** @type {Array} */
  7551. var $cookies = ["activeClient", "passiveClient", "spectateClient"];
  7552. /** @type {Array} */
  7553. this.game.clients = [];
  7554. /** @type {number} */
  7555. var key = 0;
  7556. for (;key < 3;key++) {
  7557. if (object[key]) {
  7558. object[key].connect();
  7559. this.game[$cookies[key]] = object[key];
  7560. this.game.clients.push(object[key]);
  7561. game.set(object[key], object[key].id);
  7562. map.set(object[key].id, object[key]);
  7563. } else {
  7564. /** @type {null} */
  7565. this.game[$cookies[key]] = null;
  7566. }
  7567. }
  7568. if (this.game.activeClient) {
  7569. if (this.game.activeClient.border) {
  7570. this.game.onBorder();
  7571. }
  7572. if (this.game.activeClient.pId != -1) {
  7573. this.game.onPId();
  7574. }
  7575. }
  7576. this.clientIds = game;
  7577. this.idClients = map;
  7578. }
  7579. }, {
  7580. key : "playback",
  7581. value : regeneratorRuntime.mark(function end(buffer) {
  7582. var stream;
  7583. var target;
  7584. var self;
  7585. var onComplete;
  7586. return regeneratorRuntime.wrap(function(item) {
  7587. for (;;) {
  7588. switch(item.prev = item.next) {
  7589. case 0:
  7590. stream = new definitions.BufferReader(buffer);
  7591. case 1:
  7592. if (!(stream.offset < buffer.byteLength)) {
  7593. /** @type {number} */
  7594. item.next = 28;
  7595. break;
  7596. }
  7597. return item.next = 4, stream.readFloat64();
  7598. case 4:
  7599. if (target = stream.readUint8(), 0 != target) {
  7600. /** @type {number} */
  7601. item.next = 9;
  7602. break;
  7603. }
  7604. this.playbackClients(this.parseClients(stream.readString()));
  7605. /** @type {number} */
  7606. item.next = 26;
  7607. break;
  7608. case 9:
  7609. self = this.idClients.get(stream.readUint8());
  7610. onComplete = void 0;
  7611. if (!(2 != target && 5 != target)) {
  7612. onComplete = stream.readBytes(stream.readUint16());
  7613. }
  7614. if (!(7 != target && 8 != target)) {
  7615. onComplete = stream.readString();
  7616. }
  7617. item.t0 = target;
  7618. /** @type {number} */
  7619. item.next = 1 === item.t0 ? 16 : 4 === item.t0 ? 16 : 3 === item.t0 ? 18 : 2 === item.t0 ? 20 : 7 === item.t0 ? 20 : 5 === item.t0 ? 22 : 8 === item.t0 ? 22 : 6 === item.t0 ? 24 : 26;
  7620. break;
  7621. case 16:
  7622. return self.socket.playback(target), item.abrupt("break", 26);
  7623. case 18:
  7624. return self && self.socket.playback(target), item.abrupt("break", 26);
  7625. case 20:
  7626. return self.socket.playback(target, onComplete), item.abrupt("break", 26);
  7627. case 22:
  7628. return self.onSendMessage(onComplete), item.abrupt("break", 26);
  7629. case 24:
  7630. return self.disconnect(), item.abrupt("break", 26);
  7631. case 26:
  7632. /** @type {number} */
  7633. item.next = 1;
  7634. break;
  7635. case 28:
  7636. ;
  7637. case "end":
  7638. return item.stop();
  7639. }
  7640. }
  7641. }, end, this);
  7642. })
  7643. }, {
  7644. key : "startIndex",
  7645. value : function() {
  7646. /**
  7647. * @param {?} event
  7648. * @return {?}
  7649. */
  7650. function f2(event) {
  7651. return matcherFunction.apply(this, arguments);
  7652. }
  7653. var matcherFunction = proxy(regeneratorRuntime.mark(function init(id) {
  7654. var self = this;
  7655. return regeneratorRuntime.wrap(function(current) {
  7656. for (;;) {
  7657. switch(current.prev = current.next) {
  7658. case 0:
  7659. return current.next = 2, this.stop();
  7660. case 2:
  7661. return this.reader = new Tree(this.db.files, id), this.playbackEnd = proxy(regeneratorRuntime.mark(function init() {
  7662. var offset;
  7663. var retValue;
  7664. var game;
  7665. var input;
  7666. var callback2;
  7667. var l;
  7668. var t0;
  7669. var tree;
  7670. var node;
  7671. return regeneratorRuntime.wrap(function(stream) {
  7672. for (;;) {
  7673. switch(stream.prev = stream.next) {
  7674. case 0:
  7675. return stream.next = 2, self.db.indexes.where("name").equals(id).count();
  7676. case 2:
  7677. if (!stream.sent) {
  7678. /** @type {number} */
  7679. stream.next = 4;
  7680. break;
  7681. }
  7682. return stream.abrupt("return");
  7683. case 4:
  7684. offset = self.reader.offset;
  7685. /** @type {number} */
  7686. retValue = 0;
  7687. game = self.game;
  7688. self.game = self.stubGame;
  7689. self.game.stats = new dom.default(self.game);
  7690. self.playbackClients([null, null, null]);
  7691. case 8:
  7692. return stream.next = 11, self.reader.read();
  7693. case 11:
  7694. if (input = stream.sent, input.byteLength) {
  7695. /** @type {number} */
  7696. stream.next = 14;
  7697. break;
  7698. }
  7699. return stream.abrupt("break", 39);
  7700. case 14:
  7701. return retValue = self.playback(input).next().value, stream.next = 17, self.db.indexes.add({
  7702. name : id,
  7703. offset : offset,
  7704. time : retValue,
  7705. clients : self.stringifyClients(),
  7706. stats : self.objectifyStats("rolling")
  7707. });
  7708. case 17:
  7709. offset = self.reader.offset;
  7710. /** @type {boolean} */
  7711. callback2 = true;
  7712. /** @type {boolean} */
  7713. l = false;
  7714. t0 = void 0;
  7715. /** @type {number} */
  7716. stream.prev = 21;
  7717. tree = self.playback(input)[Symbol.iterator]();
  7718. for (;!(callback2 = (node = tree.next()).done);callback2 = true) {
  7719. retValue = node.value;
  7720. }
  7721. /** @type {number} */
  7722. stream.next = 29;
  7723. break;
  7724. case 25:
  7725. /** @type {number} */
  7726. stream.prev = 25;
  7727. stream.t0 = stream.catch(21);
  7728. /** @type {boolean} */
  7729. l = true;
  7730. t0 = stream.t0;
  7731. case 29:
  7732. /** @type {number} */
  7733. stream.prev = 29;
  7734. /** @type {number} */
  7735. stream.prev = 30;
  7736. if (!callback2) {
  7737. if (tree.return) {
  7738. tree.return();
  7739. }
  7740. }
  7741. ;
  7742. case 32:
  7743. if (stream.prev = 32, !l) {
  7744. /** @type {number} */
  7745. stream.next = 35;
  7746. break;
  7747. }
  7748. throw t0;;
  7749. case 35:
  7750. return stream.finish(32);
  7751. case 36:
  7752. return stream.finish(29);
  7753. case 37:
  7754. /** @type {number} */
  7755. stream.next = 8;
  7756. break;
  7757. case 39:
  7758. return stream.next = 41, self.db.indexes.add({
  7759. name : id,
  7760. offset : offset,
  7761. time : retValue
  7762. });
  7763. case 41:
  7764. self.game = game;
  7765. case 42:
  7766. ;
  7767. case "end":
  7768. return stream.stop();
  7769. }
  7770. }
  7771. }, init, self, [[21, 25, 29, 37], [30, , 32, 36]]);
  7772. }))(), current.next = 6, this.playbackEnd;
  7773. case 6:
  7774. /** @type {null} */
  7775. this.playbackEnd = null;
  7776. case 7:
  7777. ;
  7778. case "end":
  7779. return current.stop();
  7780. }
  7781. }
  7782. }, init, this);
  7783. }));
  7784. return f2;
  7785. }()
  7786. }, {
  7787. key : "startPlayback",
  7788. value : function() {
  7789. /**
  7790. * @param {?} vec0
  7791. * @param {?} proxyObj
  7792. * @param {?} models
  7793. * @return {?}
  7794. */
  7795. function add(vec0, proxyObj, models) {
  7796. return matcherFunction.apply(this, arguments);
  7797. }
  7798. var matcherFunction = proxy(regeneratorRuntime.mark(function next(body, d, cb) {
  7799. var start;
  7800. var iterator;
  7801. var s;
  7802. var msg;
  7803. var callback2;
  7804. var c;
  7805. var is;
  7806. var tree;
  7807. var _ref;
  7808. var data;
  7809. var _ref1;
  7810. var y;
  7811. var l;
  7812. var dirname;
  7813. var cell;
  7814. var elem;
  7815. var e;
  7816. var that = this;
  7817. return regeneratorRuntime.wrap(function(self) {
  7818. for (;;) {
  7819. switch(self.prev = self.next) {
  7820. case 0:
  7821. return self.next = 2, this.startIndex(body);
  7822. case 2:
  7823. if (this.reader) {
  7824. /** @type {number} */
  7825. self.next = 4;
  7826. break;
  7827. }
  7828. return self.abrupt("return");
  7829. case 4:
  7830. return self.next = 6, this.db.indexes.where("name").equals(body).and(function(e) {
  7831. var t = e.time;
  7832. return t < d;
  7833. }).count();
  7834. case 6:
  7835. return start = self.sent, self.next = 9, this.db.indexes.where("name").equals(body).sortBy("offset");
  7836. case 9:
  7837. /** @type {number} */
  7838. self.t0 = Math.max(start - 1, 0);
  7839. /** @type {number} */
  7840. self.t1 = -1;
  7841. iterator = self.sent.slice(self.t0, self.t1);
  7842. s = void 0;
  7843. msg = this.game;
  7844. this.game = this.stubGame;
  7845. this.game.stats = new dom.default(this.game);
  7846. /** @type {boolean} */
  7847. callback2 = true;
  7848. /** @type {boolean} */
  7849. c = false;
  7850. is = void 0;
  7851. /** @type {number} */
  7852. self.prev = 18;
  7853. tree = iterator[Symbol.iterator]();
  7854. case 20:
  7855. if (callback2 = (_ref = tree.next()).done) {
  7856. /** @type {number} */
  7857. self.next = 63;
  7858. break;
  7859. }
  7860. return data = _ref.value, this.game != msg && (this.reader.seek(data.offset), this.playbackClients(this.parseClients(data.clients)), Object.assign(this.game.stats, data.stats)), _ref1 = true, y = false, l = void 0, self.prev = 26, dirname = regeneratorRuntime.mark(function end() {
  7861. var e;
  7862. var callback2;
  7863. var a;
  7864. var t0;
  7865. var tree;
  7866. var parsed;
  7867. var port;
  7868. var _ref1;
  7869. var h;
  7870. var is;
  7871. var cell;
  7872. var _ref;
  7873. var data;
  7874. var foundHelper;
  7875. var g;
  7876. var t1;
  7877. var c;
  7878. var ui;
  7879. var prev;
  7880. var k;
  7881. var backoff;
  7882. return regeneratorRuntime.wrap(function(self) {
  7883. for (;;) {
  7884. switch(self.prev = self.next) {
  7885. case 0:
  7886. if (e = elem.value, !(e < d)) {
  7887. /** @type {number} */
  7888. self.next = 3;
  7889. break;
  7890. }
  7891. return self.abrupt("return", "continue");
  7892. case 3:
  7893. if (that.game == msg) {
  7894. /** @type {number} */
  7895. self.next = 72;
  7896. break;
  7897. }
  7898. /** @type {boolean} */
  7899. callback2 = true;
  7900. /** @type {boolean} */
  7901. a = false;
  7902. t0 = void 0;
  7903. /** @type {number} */
  7904. self.prev = 7;
  7905. tree = msg.clients[Symbol.iterator]();
  7906. for (;!(callback2 = (parsed = tree.next()).done);callback2 = true) {
  7907. port = parsed.value;
  7908. port.disconnect();
  7909. }
  7910. /** @type {number} */
  7911. self.next = 15;
  7912. break;
  7913. case 11:
  7914. /** @type {number} */
  7915. self.prev = 11;
  7916. self.t0 = self.catch(7);
  7917. /** @type {boolean} */
  7918. a = true;
  7919. t0 = self.t0;
  7920. case 15:
  7921. /** @type {number} */
  7922. self.prev = 15;
  7923. /** @type {number} */
  7924. self.prev = 16;
  7925. if (!callback2) {
  7926. if (tree.return) {
  7927. tree.return();
  7928. }
  7929. }
  7930. ;
  7931. case 18:
  7932. if (self.prev = 18, !a) {
  7933. /** @type {number} */
  7934. self.next = 21;
  7935. break;
  7936. }
  7937. throw t0;;
  7938. case 21:
  7939. return self.finish(18);
  7940. case 22:
  7941. return self.finish(15);
  7942. case 23:
  7943. /** @type {boolean} */
  7944. _ref1 = true;
  7945. /** @type {boolean} */
  7946. h = false;
  7947. is = void 0;
  7948. /** @type {number} */
  7949. self.prev = 26;
  7950. cell = that.game.clients[Symbol.iterator]();
  7951. case 28:
  7952. if (_ref1 = (_ref = cell.next()).done) {
  7953. /** @type {number} */
  7954. self.next = 54;
  7955. break;
  7956. }
  7957. data = _ref.value;
  7958. data.game = msg;
  7959. data.animate(1);
  7960. /** @type {boolean} */
  7961. foundHelper = true;
  7962. /** @type {boolean} */
  7963. g = false;
  7964. t1 = void 0;
  7965. /** @type {number} */
  7966. self.prev = 35;
  7967. c = data.bucket.values()[Symbol.iterator]();
  7968. for (;!(foundHelper = (ui = c.next()).done);foundHelper = true) {
  7969. prev = ui.value;
  7970. prev.animate(1);
  7971. }
  7972. /** @type {number} */
  7973. self.next = 43;
  7974. break;
  7975. case 39:
  7976. /** @type {number} */
  7977. self.prev = 39;
  7978. self.t1 = self.catch(35);
  7979. /** @type {boolean} */
  7980. g = true;
  7981. t1 = self.t1;
  7982. case 43:
  7983. /** @type {number} */
  7984. self.prev = 43;
  7985. /** @type {number} */
  7986. self.prev = 44;
  7987. if (!foundHelper) {
  7988. if (c.return) {
  7989. c.return();
  7990. }
  7991. }
  7992. ;
  7993. case 46:
  7994. if (self.prev = 46, !g) {
  7995. /** @type {number} */
  7996. self.next = 49;
  7997. break;
  7998. }
  7999. throw t1;;
  8000. case 49:
  8001. return self.finish(46);
  8002. case 50:
  8003. return self.finish(43);
  8004. case 51:
  8005. /** @type {boolean} */
  8006. _ref1 = true;
  8007. /** @type {number} */
  8008. self.next = 28;
  8009. break;
  8010. case 54:
  8011. /** @type {number} */
  8012. self.next = 60;
  8013. break;
  8014. case 56:
  8015. /** @type {number} */
  8016. self.prev = 56;
  8017. self.t2 = self.catch(26);
  8018. /** @type {boolean} */
  8019. h = true;
  8020. is = self.t2;
  8021. case 60:
  8022. /** @type {number} */
  8023. self.prev = 60;
  8024. /** @type {number} */
  8025. self.prev = 61;
  8026. if (!_ref1) {
  8027. if (cell.return) {
  8028. cell.return();
  8029. }
  8030. }
  8031. ;
  8032. case 63:
  8033. if (self.prev = 63, !h) {
  8034. /** @type {number} */
  8035. self.next = 66;
  8036. break;
  8037. }
  8038. throw is;;
  8039. case 66:
  8040. return self.finish(63);
  8041. case 67:
  8042. return self.finish(60);
  8043. case 68:
  8044. that.game.stats.game = msg;
  8045. for (k in that.game) {
  8046. if ("ui" != k) {
  8047. if ("chat" != k) {
  8048. if ("onUpdate" != k) {
  8049. msg[k] = that.game[k];
  8050. }
  8051. }
  8052. }
  8053. }
  8054. that.game = msg;
  8055. /** @type {number} */
  8056. s = Date.now();
  8057. case 72:
  8058. if (backoff = e - d - (Date.now() - s), !(backoff > 0)) {
  8059. /** @type {number} */
  8060. self.next = 76;
  8061. break;
  8062. }
  8063. return self.next = 76, new Promise(function(fnc) {
  8064. return setTimeout(fnc, backoff);
  8065. });
  8066. case 76:
  8067. if (cb && cb(e), that.reader) {
  8068. /** @type {number} */
  8069. self.next = 79;
  8070. break;
  8071. }
  8072. return self.abrupt("return", {
  8073. v : void 0
  8074. });
  8075. case 79:
  8076. ;
  8077. case "end":
  8078. return self.stop();
  8079. }
  8080. }
  8081. }, end, that, [[7, 11, 15, 23], [16, , 18, 22], [26, 56, 60, 68], [35, 39, 43, 51], [44, , 46, 50], [61, , 63, 67]]);
  8082. }), self.t2 = this, self.next = 31, this.reader.read();
  8083. case 31:
  8084. self.t3 = self.sent;
  8085. self.t4 = Symbol.iterator;
  8086. cell = self.t2.playback.call(self.t2, self.t3)[self.t4]();
  8087. case 34:
  8088. if (_ref1 = (elem = cell.next()).done) {
  8089. /** @type {number} */
  8090. self.next = 46;
  8091. break;
  8092. }
  8093. return self.delegateYield(dirname(), "t5", 36);
  8094. case 36:
  8095. e = self.t5;
  8096. self.t6 = e;
  8097. /** @type {number} */
  8098. self.next = "continue" === self.t6 ? 40 : 41;
  8099. break;
  8100. case 40:
  8101. return self.abrupt("continue", 43);
  8102. case 41:
  8103. if ("object" !== ("undefined" == typeof e ? "undefined" : objectToString(e))) {
  8104. /** @type {number} */
  8105. self.next = 43;
  8106. break;
  8107. }
  8108. return self.abrupt("return", e.v);
  8109. case 43:
  8110. /** @type {boolean} */
  8111. _ref1 = true;
  8112. /** @type {number} */
  8113. self.next = 34;
  8114. break;
  8115. case 46:
  8116. /** @type {number} */
  8117. self.next = 52;
  8118. break;
  8119. case 48:
  8120. /** @type {number} */
  8121. self.prev = 48;
  8122. self.t7 = self.catch(26);
  8123. /** @type {boolean} */
  8124. y = true;
  8125. l = self.t7;
  8126. case 52:
  8127. /** @type {number} */
  8128. self.prev = 52;
  8129. /** @type {number} */
  8130. self.prev = 53;
  8131. if (!_ref1) {
  8132. if (cell.return) {
  8133. cell.return();
  8134. }
  8135. }
  8136. ;
  8137. case 55:
  8138. if (self.prev = 55, !y) {
  8139. /** @type {number} */
  8140. self.next = 58;
  8141. break;
  8142. }
  8143. throw l;;
  8144. case 58:
  8145. return self.finish(55);
  8146. case 59:
  8147. return self.finish(52);
  8148. case 60:
  8149. /** @type {boolean} */
  8150. callback2 = true;
  8151. /** @type {number} */
  8152. self.next = 20;
  8153. break;
  8154. case 63:
  8155. /** @type {number} */
  8156. self.next = 69;
  8157. break;
  8158. case 65:
  8159. /** @type {number} */
  8160. self.prev = 65;
  8161. self.t8 = self.catch(18);
  8162. /** @type {boolean} */
  8163. c = true;
  8164. is = self.t8;
  8165. case 69:
  8166. /** @type {number} */
  8167. self.prev = 69;
  8168. /** @type {number} */
  8169. self.prev = 70;
  8170. if (!callback2) {
  8171. if (tree.return) {
  8172. tree.return();
  8173. }
  8174. }
  8175. ;
  8176. case 72:
  8177. if (self.prev = 72, !c) {
  8178. /** @type {number} */
  8179. self.next = 75;
  8180. break;
  8181. }
  8182. throw is;;
  8183. case 75:
  8184. return self.finish(72);
  8185. case 76:
  8186. return self.finish(69);
  8187. case 77:
  8188. ;
  8189. case "end":
  8190. return self.stop();
  8191. }
  8192. }
  8193. }, next, this, [[18, 65, 69, 77], [26, 48, 52, 60], [53, , 55, 59], [70, , 72, 76]]);
  8194. }));
  8195. return add;
  8196. }()
  8197. }, {
  8198. key : "add",
  8199. value : function() {
  8200. /**
  8201. * @param {?} vec0
  8202. * @param {?} proxyObj
  8203. * @return {?}
  8204. */
  8205. function add(vec0, proxyObj) {
  8206. return matcherFunction.apply(this, arguments);
  8207. }
  8208. var matcherFunction = proxy(regeneratorRuntime.mark(function init(module, task) {
  8209. var cacheKey;
  8210. var name;
  8211. return regeneratorRuntime.wrap(function(self) {
  8212. for (;;) {
  8213. switch(self.prev = self.next) {
  8214. case 0:
  8215. return self.next = 2, this.db.files.get(module);
  8216. case 2:
  8217. if (!self.sent) {
  8218. /** @type {number} */
  8219. self.next = 14;
  8220. break;
  8221. }
  8222. cacheKey = void 0;
  8223. /** @type {number} */
  8224. name = 1;
  8225. case 5:
  8226. return cacheKey = module + "." + name, self.next = 8, this.db.files.get(cacheKey);
  8227. case 8:
  8228. if (self.sent) {
  8229. /** @type {number} */
  8230. self.next = 10;
  8231. break;
  8232. }
  8233. return self.abrupt("break", 13);
  8234. case 10:
  8235. name++;
  8236. /** @type {number} */
  8237. self.next = 5;
  8238. break;
  8239. case 13:
  8240. module = cacheKey;
  8241. case 14:
  8242. return self.next = 16, this.db.files.add({
  8243. name : module,
  8244. data : task
  8245. });
  8246. case 16:
  8247. ;
  8248. case "end":
  8249. return self.stop();
  8250. }
  8251. }
  8252. }, init, this);
  8253. }));
  8254. return add;
  8255. }()
  8256. }, {
  8257. key : "delete",
  8258. value : function() {
  8259. /**
  8260. * @param {?} event
  8261. * @return {?}
  8262. */
  8263. function f2(event) {
  8264. return matcherFunction.apply(this, arguments);
  8265. }
  8266. var matcherFunction = proxy(regeneratorRuntime.mark(function end(which) {
  8267. return regeneratorRuntime.wrap(function(current) {
  8268. for (;;) {
  8269. switch(current.prev = current.next) {
  8270. case 0:
  8271. return current.next = 2, this.stop();
  8272. case 2:
  8273. return current.next = 4, this.db.files.delete(which);
  8274. case 4:
  8275. return current.next = 6, this.db.indexes.where("name").equals(which).delete();
  8276. case 6:
  8277. ;
  8278. case "end":
  8279. return current.stop();
  8280. }
  8281. }
  8282. }, end, this);
  8283. }));
  8284. return f2;
  8285. }()
  8286. }, {
  8287. key : "stop",
  8288. value : function() {
  8289. /**
  8290. * @return {?}
  8291. */
  8292. function view() {
  8293. return matcherFunction.apply(this, arguments);
  8294. }
  8295. var matcherFunction = proxy(regeneratorRuntime.mark(function end() {
  8296. return regeneratorRuntime.wrap(function(current) {
  8297. for (;;) {
  8298. switch(current.prev = current.next) {
  8299. case 0:
  8300. if (!this.reader) {
  8301. /** @type {number} */
  8302. current.next = 8;
  8303. break;
  8304. }
  8305. if (current.t0 = this.playbackEnd, !current.t0) {
  8306. /** @type {number} */
  8307. current.next = 5;
  8308. break;
  8309. }
  8310. return current.next = 5, this.playbackEnd;
  8311. case 5:
  8312. /** @type {null} */
  8313. this.reader = null;
  8314. /** @type {number} */
  8315. current.next = 16;
  8316. break;
  8317. case 8:
  8318. if (!this.writer) {
  8319. /** @type {number} */
  8320. current.next = 16;
  8321. break;
  8322. }
  8323. if (current.t1 = this.recordEnd, !current.t1) {
  8324. /** @type {number} */
  8325. current.next = 13;
  8326. break;
  8327. }
  8328. return current.next = 13, this.recordEnd;
  8329. case 13:
  8330. return current.next = 15, this.writer.flush();
  8331. case 15:
  8332. /** @type {null} */
  8333. this.writer = null;
  8334. case 16:
  8335. this.prevClientIds.clear();
  8336. this.clientIds.clear();
  8337. this.idClients.clear();
  8338. case 19:
  8339. ;
  8340. case "end":
  8341. return current.stop();
  8342. }
  8343. }
  8344. }, end, this);
  8345. }));
  8346. return view;
  8347. }()
  8348. }, {
  8349. key : "createSocket",
  8350. /**
  8351. * @param {number} object
  8352. * @return {?}
  8353. */
  8354. value : function(object) {
  8355. var listener = this.reader ? new Vector : new Node(object, object.server, this);
  8356. return listener;
  8357. }
  8358. }]), init;
  8359. }(), ctx.RecordSocket = function() {
  8360. /**
  8361. * @param {Object} client
  8362. * @param {string} allBindingsAccessor
  8363. * @param {Object} depMaps
  8364. * @return {undefined}
  8365. */
  8366. function init(client, allBindingsAccessor, depMaps) {
  8367. var self = this;
  8368. supr(this, init);
  8369. /** @type {Object} */
  8370. this.client = client;
  8371. /** @type {Object} */
  8372. this.recorder = depMaps;
  8373. this.bufferWriter = new definitions.BufferWriter;
  8374. /** @type {WebSocket} */
  8375. this.socket = new WebSocket("ws://" + allBindingsAccessor);
  8376. /** @type {string} */
  8377. this.socket.binaryType = "arraybuffer";
  8378. /** @type {null} */
  8379. this.onopen = null;
  8380. /** @type {null} */
  8381. this.onmessage = null;
  8382. /** @type {null} */
  8383. this.onclose = null;
  8384. /** @type {null} */
  8385. this.onerror = null;
  8386. /**
  8387. * @return {undefined}
  8388. */
  8389. this.socket.onopen = function() {
  8390. if (self.recorder.writer) {
  8391. self.record(1);
  8392. }
  8393. if (self.onopen) {
  8394. self.onopen();
  8395. }
  8396. };
  8397. /**
  8398. * @param {Event} msg
  8399. * @return {undefined}
  8400. */
  8401. this.socket.onmessage = function(msg) {
  8402. if (self.recorder.writer) {
  8403. self.record(msg.data instanceof ArrayBuffer ? 2 : 7, msg.data);
  8404. }
  8405. if (self.onmessage) {
  8406. self.onmessage(msg);
  8407. }
  8408. };
  8409. /**
  8410. * @return {undefined}
  8411. */
  8412. this.socket.onclose = function() {
  8413. if (self.recorder.writer) {
  8414. self.record(3);
  8415. }
  8416. if (self.onclose) {
  8417. self.onclose();
  8418. }
  8419. };
  8420. /**
  8421. * @return {undefined}
  8422. */
  8423. this.socket.onerror = function() {
  8424. if (self.recorder.writer) {
  8425. self.record(4);
  8426. }
  8427. if (self.onerror) {
  8428. self.onerror();
  8429. }
  8430. };
  8431. }
  8432. return walk(init, [{
  8433. key : "record",
  8434. /**
  8435. * @param {number} object
  8436. * @param {number} expectedNumberOfNonCommentArgs
  8437. * @return {undefined}
  8438. */
  8439. value : function(object, expectedNumberOfNonCommentArgs) {
  8440. this.bufferWriter.reset();
  8441. this.bufferWriter.writeUint8(object);
  8442. this.bufferWriter.writeUint8(this.recorder.clientIds.get(this.client));
  8443. if (expectedNumberOfNonCommentArgs) {
  8444. if (expectedNumberOfNonCommentArgs instanceof ArrayBuffer) {
  8445. this.bufferWriter.writeUint16(expectedNumberOfNonCommentArgs.byteLength);
  8446. this.bufferWriter.writeBytes(expectedNumberOfNonCommentArgs);
  8447. } else {
  8448. this.bufferWriter.writeString(expectedNumberOfNonCommentArgs);
  8449. }
  8450. }
  8451. this.recorder.record(this.bufferWriter.build());
  8452. }
  8453. }, {
  8454. key : "send",
  8455. /**
  8456. * @param {number} object
  8457. * @return {undefined}
  8458. */
  8459. value : function(object) {
  8460. if (this.recorder.writer) {
  8461. this.record(object instanceof ArrayBuffer ? 5 : 8, object);
  8462. }
  8463. this.socket.send(object);
  8464. }
  8465. }, {
  8466. key : "close",
  8467. /**
  8468. * @return {undefined}
  8469. */
  8470. value : function() {
  8471. if (this.recorder.writer) {
  8472. this.record(6);
  8473. }
  8474. this.socket.close();
  8475. }
  8476. }, {
  8477. key : "readyState",
  8478. /**
  8479. * @return {?}
  8480. */
  8481. get : function() {
  8482. return this.socket.readyState;
  8483. }
  8484. }]), init;
  8485. }());
  8486. var Vector = ctx.PlaybackSocket = function() {
  8487. /**
  8488. * @return {undefined}
  8489. */
  8490. function init() {
  8491. supr(this, init);
  8492. /** @type {null} */
  8493. this.onopen = null;
  8494. /** @type {null} */
  8495. this.onmessage = null;
  8496. /** @type {null} */
  8497. this.onclose = null;
  8498. /** @type {null} */
  8499. this.onerror = null;
  8500. }
  8501. return walk(init, [{
  8502. key : "playback",
  8503. /**
  8504. * @param {number} object
  8505. * @param {number} expectedNumberOfNonCommentArgs
  8506. * @return {undefined}
  8507. */
  8508. value : function(object, expectedNumberOfNonCommentArgs) {
  8509. switch(object) {
  8510. case 1:
  8511. if (this.onopen) {
  8512. this.onopen();
  8513. }
  8514. break;
  8515. case 2:
  8516. ;
  8517. case 7:
  8518. if (this.onmessage) {
  8519. this.onmessage({
  8520. data : expectedNumberOfNonCommentArgs
  8521. });
  8522. }
  8523. break;
  8524. case 3:
  8525. if (this.onclose) {
  8526. this.onclose();
  8527. }
  8528. break;
  8529. case 4:
  8530. if (this.onerror) {
  8531. this.onerror();
  8532. }
  8533. ;
  8534. }
  8535. }
  8536. }, {
  8537. key : "close",
  8538. /**
  8539. * @return {undefined}
  8540. */
  8541. value : function() {
  8542. }
  8543. }]), init;
  8544. }();
  8545. }, function(dataAndEvents, obj, deepDataAndEvents) {
  8546. /**
  8547. * @param {Function} matcherFunction
  8548. * @return {?}
  8549. */
  8550. function proxy(matcherFunction) {
  8551. return function() {
  8552. var a = matcherFunction.apply(this, arguments);
  8553. return new Promise(function(isNumber, fire) {
  8554. /**
  8555. * @param {string} action
  8556. * @param {?} elem
  8557. * @return {?}
  8558. */
  8559. function next(action, elem) {
  8560. try {
  8561. var q = a[action](elem);
  8562. var val = q.value;
  8563. } catch (memory) {
  8564. return void fire(memory);
  8565. }
  8566. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  8567. next("next", arg);
  8568. }, function(arg) {
  8569. next("throw", arg);
  8570. });
  8571. }
  8572. return next("next");
  8573. });
  8574. };
  8575. }
  8576. /**
  8577. * @param {?} dataAndEvents
  8578. * @param {Function} object
  8579. * @return {undefined}
  8580. */
  8581. function stub(dataAndEvents, object) {
  8582. if (!(dataAndEvents instanceof object)) {
  8583. throw new TypeError("Cannot call a class as a function");
  8584. }
  8585. }
  8586. Object.defineProperty(obj, "__esModule", {
  8587. value : true
  8588. });
  8589. /** @type {function (?): ?} */
  8590. var cb = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(edge) {
  8591. return typeof edge;
  8592. } : function(a) {
  8593. return a && ("function" == typeof Symbol && (a.constructor === Symbol && a !== Symbol.prototype)) ? "symbol" : typeof a;
  8594. };
  8595. var onErrorFnPrev = function() {
  8596. /**
  8597. * @param {Function} object
  8598. * @param {?} d
  8599. * @return {undefined}
  8600. */
  8601. function defineProperty(object, d) {
  8602. /** @type {number} */
  8603. var i = 0;
  8604. for (;i < d.length;i++) {
  8605. var desc = d[i];
  8606. desc.enumerable = desc.enumerable || false;
  8607. /** @type {boolean} */
  8608. desc.configurable = true;
  8609. if ("value" in desc) {
  8610. /** @type {boolean} */
  8611. desc.writable = true;
  8612. }
  8613. Object.defineProperty(object, desc.key, desc);
  8614. }
  8615. }
  8616. return function(x, current, a) {
  8617. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  8618. };
  8619. }();
  8620. var value = function() {
  8621. /**
  8622. * @param {string} f
  8623. * @return {undefined}
  8624. */
  8625. function error(f) {
  8626. stub(this, error);
  8627. /** @type {string} */
  8628. this.normalize = f;
  8629. this.cache = new Map;
  8630. }
  8631. return onErrorFnPrev(error, [{
  8632. key : "download",
  8633. /**
  8634. * @param {number} object
  8635. * @param {number} expectedNumberOfNonCommentArgs
  8636. * @param {(Object|number)} target
  8637. * @return {?}
  8638. */
  8639. value : function(object, expectedNumberOfNonCommentArgs, target) {
  8640. var doc = this;
  8641. var cacheKey = object + "," + expectedNumberOfNonCommentArgs + "," + target;
  8642. var cached = this.cache.get(cacheKey);
  8643. return void 0 !== cached ? cached : (proxy(regeneratorRuntime.mark(function end() {
  8644. var codeSegments;
  8645. var i;
  8646. var value;
  8647. var e;
  8648. return regeneratorRuntime.wrap(function(self) {
  8649. for (;;) {
  8650. switch(self.prev = self.next) {
  8651. case 0:
  8652. return doc.cache.set(cacheKey, null), self.next = 3, doc.normalize(object, expectedNumberOfNonCommentArgs, target);
  8653. case 3:
  8654. if (target = self.sent.skin) {
  8655. /** @type {number} */
  8656. self.next = 7;
  8657. break;
  8658. }
  8659. return doc.cache.set(cacheKey, false), self.abrupt("return");
  8660. case 7:
  8661. /** @type {Array} */
  8662. codeSegments = ["Anonymous", null];
  8663. /** @type {number} */
  8664. i = 0;
  8665. case 9:
  8666. if (!(i < codeSegments.length)) {
  8667. /** @type {number} */
  8668. self.next = 23;
  8669. break;
  8670. }
  8671. return value = codeSegments[i], self.prev = 11, self.delegateYield(regeneratorRuntime.mark(function end() {
  8672. var image;
  8673. return regeneratorRuntime.wrap(function(self) {
  8674. for (;;) {
  8675. switch(self.prev = self.next) {
  8676. case 0:
  8677. return image = new Image, image.crossOrigin = value, image.src = target, self.next = 5, new Promise(function(handleComplete, handleError) {
  8678. /** @type {Function} */
  8679. image.onload = handleComplete;
  8680. /** @type {Function} */
  8681. image.onerror = handleError;
  8682. });
  8683. case 5:
  8684. if (self.t0 = doc.cache, self.t1 = cacheKey, !value) {
  8685. /** @type {number} */
  8686. self.next = 13;
  8687. break;
  8688. }
  8689. return self.next = 10, createImageBitmap(image);
  8690. case 10:
  8691. self.t2 = self.sent;
  8692. /** @type {number} */
  8693. self.next = 14;
  8694. break;
  8695. case 13:
  8696. self.t2 = image;
  8697. case 14:
  8698. return self.t3 = self.t2, self.t0.set.call(self.t0, self.t1, self.t3), self.abrupt("return", {
  8699. v : void 0
  8700. });
  8701. case 17:
  8702. ;
  8703. case "end":
  8704. return self.stop();
  8705. }
  8706. }
  8707. }, end, doc);
  8708. })(), "t0", 13);
  8709. case 13:
  8710. if (e = self.t0, "object" !== ("undefined" == typeof e ? "undefined" : cb(e))) {
  8711. /** @type {number} */
  8712. self.next = 16;
  8713. break;
  8714. }
  8715. return self.abrupt("return", e.v);
  8716. case 16:
  8717. /** @type {number} */
  8718. self.next = 20;
  8719. break;
  8720. case 18:
  8721. /** @type {number} */
  8722. self.prev = 18;
  8723. self.t1 = self.catch(11);
  8724. case 20:
  8725. i++;
  8726. /** @type {number} */
  8727. self.next = 9;
  8728. break;
  8729. case 23:
  8730. doc.cache.set(cacheKey, false);
  8731. case 24:
  8732. ;
  8733. case "end":
  8734. return self.stop();
  8735. }
  8736. }
  8737. }, end, doc, [[11, 18]]);
  8738. }))(), null);
  8739. }
  8740. }]), error;
  8741. }();
  8742. obj.default = value;
  8743. }, function(dataAndEvents, object, require) {
  8744. /**
  8745. * @param {Function} value
  8746. * @return {?}
  8747. */
  8748. function $(value) {
  8749. return value && value.__esModule ? value : {
  8750. /** @type {Function} */
  8751. default : value
  8752. };
  8753. }
  8754. /**
  8755. * @param {?} dataAndEvents
  8756. * @param {Function} putativeSpy
  8757. * @return {undefined}
  8758. */
  8759. function comparator(dataAndEvents, putativeSpy) {
  8760. if (!(dataAndEvents instanceof putativeSpy)) {
  8761. throw new TypeError("Cannot call a class as a function");
  8762. }
  8763. }
  8764. /**
  8765. * @param {string} dataAndEvents
  8766. * @param {?} fn
  8767. * @return {?}
  8768. */
  8769. function apply(dataAndEvents, fn) {
  8770. if (!dataAndEvents) {
  8771. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  8772. }
  8773. return!fn || "object" != typeof fn && "function" != typeof fn ? dataAndEvents : fn;
  8774. }
  8775. /**
  8776. * @param {Function} value
  8777. * @param {Object} b
  8778. * @return {undefined}
  8779. */
  8780. function wrap(value, b) {
  8781. if ("function" != typeof b && null !== b) {
  8782. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  8783. }
  8784. /** @type {Object} */
  8785. value.prototype = Object.create(b && b.prototype, {
  8786. constructor : {
  8787. /** @type {Function} */
  8788. value : value,
  8789. enumerable : false,
  8790. writable : true,
  8791. configurable : true
  8792. }
  8793. });
  8794. if (b) {
  8795. if (Object.setPrototypeOf) {
  8796. Object.setPrototypeOf(value, b);
  8797. } else {
  8798. /** @type {Object} */
  8799. value.__proto__ = b;
  8800. }
  8801. }
  8802. }
  8803. Object.defineProperty(object, "__esModule", {
  8804. value : true
  8805. });
  8806. object.default = void 0;
  8807. var name;
  8808. var fn;
  8809. var scope;
  8810. var callback = Object.assign || function(opt_attributes) {
  8811. /** @type {number} */
  8812. var i = 1;
  8813. for (;i < arguments.length;i++) {
  8814. var iterable = arguments[i];
  8815. var key;
  8816. for (key in iterable) {
  8817. if (Object.prototype.hasOwnProperty.call(iterable, key)) {
  8818. opt_attributes[key] = iterable[key];
  8819. }
  8820. }
  8821. }
  8822. return opt_attributes;
  8823. };
  8824. var lookupIterator = function() {
  8825. /**
  8826. * @param {Function} object
  8827. * @param {Array} d
  8828. * @return {undefined}
  8829. */
  8830. function defineProperty(object, d) {
  8831. /** @type {number} */
  8832. var i = 0;
  8833. for (;i < d.length;i++) {
  8834. var desc = d[i];
  8835. desc.enumerable = desc.enumerable || false;
  8836. /** @type {boolean} */
  8837. desc.configurable = true;
  8838. if ("value" in desc) {
  8839. /** @type {boolean} */
  8840. desc.writable = true;
  8841. }
  8842. Object.defineProperty(object, desc.key, desc);
  8843. }
  8844. }
  8845. return function(x, current, a) {
  8846. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  8847. };
  8848. }();
  8849. var comment = require(46);
  8850. var item = $(comment);
  8851. var json = require(54);
  8852. var obj = $(json);
  8853. var nodes = require(0);
  8854. var node = $(nodes);
  8855. var selector = require(12);
  8856. var out = $(selector);
  8857. var config = require(47);
  8858. var opt = $(config);
  8859. var Menu = require(55);
  8860. var defaults = require(53);
  8861. var Block = require(2);
  8862. var element = require(1);
  8863. var type = (0, element.observer)(name = function(_super) {
  8864. /**
  8865. * @param {?} obj
  8866. * @return {?}
  8867. */
  8868. function value(obj) {
  8869. comparator(this, value);
  8870. var self = apply(this, (value.__proto__ || Object.getPrototypeOf(value)).call(this, obj));
  8871. return(0, Block.extendObservable)(self.props.value, {
  8872. pId : 0,
  8873. name : "",
  8874. color : "#fff"
  8875. }), window.addEventListener("contextmenu", function(evt) {
  8876. evt.preventDefault();
  8877. var p = obj.findCell(evt.clientX, evt.clientY);
  8878. if (null != p) {
  8879. if (0 != p.pId) {
  8880. self.refs.menu.handleShow({
  8881. detail : {
  8882. id : "invite",
  8883. position : {
  8884. x : evt.clientX,
  8885. y : evt.clientY
  8886. },
  8887. target : {
  8888. dataset : {
  8889. pid : p.pId,
  8890. name : p.name,
  8891. color : p.color
  8892. }
  8893. }
  8894. }
  8895. });
  8896. }
  8897. }
  8898. }), self;
  8899. }
  8900. return wrap(value, _super), lookupIterator(value, [{
  8901. key : "handleShow",
  8902. /**
  8903. * @param {number} object
  8904. * @return {undefined}
  8905. */
  8906. value : function(object) {
  8907. var o = object.detail.target.dataset;
  8908. Object.assign(this.props.value, {
  8909. pId : parseInt(o.pid),
  8910. name : o.name || "An unnamed cell",
  8911. color : o.color
  8912. });
  8913. }
  8914. }, {
  8915. key : "handleInvite",
  8916. /**
  8917. * @return {undefined}
  8918. */
  8919. value : function() {
  8920. this.props.getClient().sendPartyAction(0, this.props.value.pId);
  8921. }
  8922. }, {
  8923. key : "handleWhisper",
  8924. /**
  8925. * @return {undefined}
  8926. */
  8927. value : function() {
  8928. this.props.onChat("/w " + this.props.value.pId + " " + this.props.chat);
  8929. }
  8930. }, {
  8931. key : "render",
  8932. /**
  8933. * @return {?}
  8934. */
  8935. value : function() {
  8936. return node.default.createElement(Menu.ContextMenu, {
  8937. ref : "menu",
  8938. id : "invite",
  8939. onShow : this.handleShow.bind(this)
  8940. }, node.default.createElement(Menu.MenuItem, {
  8941. disabled : "true"
  8942. }, node.default.createElement("span", {
  8943. className : "name",
  8944. style : {
  8945. color : this.props.value.color
  8946. }
  8947. }, this.props.value.name)), node.default.createElement(Menu.MenuItem, {
  8948. onClick : this.handleInvite.bind(this)
  8949. }, node.default.createElement("span", null, "Invite")), node.default.createElement(Menu.MenuItem, {
  8950. onClick : this.handleWhisper.bind(this)
  8951. }, node.default.createElement("span", null, "Whisper")));
  8952. }
  8953. }]), value;
  8954. }(node.default.PureComponent)) || name;
  8955. var tagToInsert = function(_super) {
  8956. /**
  8957. * @return {?}
  8958. */
  8959. function value() {
  8960. return comparator(this, value), apply(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  8961. }
  8962. return wrap(value, _super), lookupIterator(value, [{
  8963. key : "render",
  8964. /**
  8965. * @return {?}
  8966. */
  8967. value : function() {
  8968. return null != this.props.name ? node.default.createElement("div", {
  8969. className : "popup-container"
  8970. }, node.default.createElement("div", {
  8971. className : "popup ui-panel"
  8972. }, node.default.createElement("div", {
  8973. className : "popup-title"
  8974. }, node.default.createElement("span", null, "Party Invite")), node.default.createElement("div", {
  8975. className : "popup-text"
  8976. }, node.default.createElement("span", {
  8977. className : "name"
  8978. }, this.props.name), " has invited you to a party."), node.default.createElement("div", {
  8979. className : "popup-input"
  8980. }, node.default.createElement("button", {
  8981. className : "btn",
  8982. onClick : this.props.onResponse.bind(this, true)
  8983. }, "Accept"), node.default.createElement("button", {
  8984. className : "btn",
  8985. onClick : this.props.onResponse.bind(this, false)
  8986. }, "Decline")))) : null;
  8987. }
  8988. }]), value;
  8989. }(node.default.PureComponent);
  8990. var fieldsString = function(_super) {
  8991. /**
  8992. * @return {?}
  8993. */
  8994. function value() {
  8995. return comparator(this, value), apply(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  8996. }
  8997. return wrap(value, _super), lookupIterator(value, [{
  8998. key : "render",
  8999. /**
  9000. * @return {?}
  9001. */
  9002. value : function() {
  9003. return node.default.createElement("span", {
  9004. className : "date"
  9005. }, ("0" + this.props.date.getHours()).substr(-2), ":", ("0" + this.props.date.getMinutes()).substr(-2), "\u00a0");
  9006. }
  9007. }]), value;
  9008. }(node.default.PureComponent);
  9009. var createElement = function(_super) {
  9010. /**
  9011. * @return {?}
  9012. */
  9013. function value() {
  9014. return comparator(this, value), apply(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  9015. }
  9016. return wrap(value, _super), lookupIterator(value, [{
  9017. key : "render",
  9018. /**
  9019. * @return {?}
  9020. */
  9021. value : function() {
  9022. var context = this.props;
  9023. var j = context.pId;
  9024. var prefix = context.name;
  9025. var color = context.color;
  9026. return node.default.createElement(Menu.ContextMenuTrigger, {
  9027. id : "invite",
  9028. attributes : {
  9029. "data-pid" : j,
  9030. "data-name" : prefix,
  9031. "data-color" : color
  9032. }
  9033. }, node.default.createElement("span", {
  9034. className : "name",
  9035. style : {
  9036. color : color
  9037. }
  9038. }, prefix));
  9039. }
  9040. }]), value;
  9041. }(node.default.PureComponent);
  9042. var nodeStr = function(_super) {
  9043. /**
  9044. * @return {?}
  9045. */
  9046. function value() {
  9047. return comparator(this, value), apply(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  9048. }
  9049. return wrap(value, _super), lookupIterator(value, [{
  9050. key : "render",
  9051. /**
  9052. * @return {?}
  9053. */
  9054. value : function() {
  9055. /** @type {number} */
  9056. var e = 41;
  9057. var file = this.props;
  9058. var scripts = file.set;
  9059. var size = file.size;
  9060. var settings = file.sheetSize;
  9061. var bShow = file.native;
  9062. var root = file.forceSize;
  9063. var val = file.backgroundImageFn;
  9064. var filters = this.getData();
  9065. var length = filters.unified;
  9066. if (!length) {
  9067. return null;
  9068. }
  9069. var gstyle = bShow ? callback({
  9070. fontSize : size
  9071. }, root && {
  9072. display : "inline-block",
  9073. width : size,
  9074. height : size
  9075. }) : {
  9076. width : size,
  9077. height : size,
  9078. display : "inline-block",
  9079. backgroundImage : "url(" + val(scripts, settings) + ")",
  9080. backgroundSize : 100 * e + "%",
  9081. backgroundPosition : this.getPosition()
  9082. };
  9083. return node.default.createElement("img", {
  9084. alt : this.props.alt,
  9085. onClick : this.handleClick.bind(this),
  9086. onMouseEnter : this.handleOver.bind(this),
  9087. onMouseLeave : this.handleLeave.bind(this),
  9088. className : "emoji-mart-emoji",
  9089. style : gstyle
  9090. });
  9091. }
  9092. }]), value;
  9093. }(defaults.Emoji);
  9094. var Vector = function() {
  9095. /**
  9096. * @return {undefined}
  9097. */
  9098. function value() {
  9099. comparator(this, value);
  9100. this.special = {
  9101. "-_-" : ":expressionless:",
  9102. ":(" : ":slightly_frowning_face:",
  9103. ":)" : ":slightly_smiling_face:",
  9104. ":/" : ":confused:",
  9105. ":'(" : ":cry:",
  9106. ":d" : ":grinning:",
  9107. ":o" : ":open_mouth:",
  9108. ":p" : ":stuck_out_tongue:",
  9109. ":|" : ":neutral_face:",
  9110. ";)" : ":wink:",
  9111. ";-;" : ":sob:",
  9112. ";_;" : ":sob:",
  9113. "<3" : ":heart:",
  9114. ">:(" : ":angry:",
  9115. "d:" : ":anguished:",
  9116. xd : ":laughing:",
  9117. xo : ":dizzy_face:"
  9118. };
  9119. /** @type {string} */
  9120. var optsData = "";
  9121. var nType;
  9122. for (nType in this.special) {
  9123. if (/^\w/.test(nType)) {
  9124. optsData += "\\b";
  9125. }
  9126. optsData += (0, item.default)(nType);
  9127. optsData += "(?=\\s|$)";
  9128. optsData += "|";
  9129. }
  9130. optsData += ":\\S+?:";
  9131. /** @type {RegExp} */
  9132. this.regex = new RegExp("(" + optsData + ")", "i");
  9133. }
  9134. return lookupIterator(value, [{
  9135. key : "convert",
  9136. /**
  9137. * @param {number} object
  9138. * @return {?}
  9139. */
  9140. value : function(object) {
  9141. var sym = this;
  9142. return object.split(this.regex).map(function(text) {
  9143. /** @type {(Function|string)} */
  9144. var raw = text;
  9145. return raw.toLowerCase() in sym.special && (raw = sym.special[raw.toLowerCase()]), raw = raw.match(/^:(\S+?):$/), raw ? node.default.createElement(nodeStr, {
  9146. emoji : raw[1],
  9147. alt : text,
  9148. size : "20",
  9149. set : "twitter",
  9150. sheetSize : "32"
  9151. }) : text;
  9152. });
  9153. }
  9154. }]), value;
  9155. }();
  9156. var prototype = (fn = (0, element.inject)("chat", "options", "messagesInv"), fn(scope = (0, element.observer)(scope = function(_super) {
  9157. /**
  9158. * @param {?} newVal
  9159. * @return {?}
  9160. */
  9161. function value(newVal) {
  9162. comparator(this, value);
  9163. var self = apply(this, (value.__proto__ || Object.getPrototypeOf(value)).call(this, newVal));
  9164. return(0, Block.extendObservable)(self.props.chat, {
  9165. messages : [],
  9166. input : "",
  9167. emoji : false,
  9168. invites : [],
  9169. inviteMenu : {}
  9170. }), self.inviteMsgs = ["\u9019\u5f88\u6709\u8da3", "\u65e5\u51fa\u4f1a\u8bae", "\u83b7\u5f97\u53ef\u7528\u6027", "\u76ae\u5e26\u4e8b\u4ef6", "\u9884\u89c8\u767e\u5206\u6bd4"], self.emojify = new Vector, window.addEventListener("click", function() {
  9171. return self.props.chat.emoji = false;
  9172. }), window.addEventListener("mousedown", self.handleMouseDown.bind(self)), window.addEventListener("keydown", self.handleKeyDown.bind(self)), window.addEventListener("keyup", self.handleKeyUp.bind(self)), self;
  9173. }
  9174. return wrap(value, _super), lookupIterator(value, [{
  9175. key : "add",
  9176. /**
  9177. * @param {number} object
  9178. * @return {undefined}
  9179. */
  9180. value : function(object) {
  9181. var bodyHeight = out.default.render(object, this.refs.msgHeight).offsetHeight;
  9182. this.props.chat.messages.push({
  9183. msg : object,
  9184. height : bodyHeight
  9185. });
  9186. }
  9187. }, {
  9188. key : "system",
  9189. /**
  9190. * @param {number} object
  9191. * @return {undefined}
  9192. */
  9193. value : function(object) {
  9194. this.add(node.default.createElement("div", {
  9195. className : "msg",
  9196. key : this.props.chat.messages.length
  9197. }, node.default.createElement(fieldsString, {
  9198. date : new Date
  9199. }), node.default.createElement("span", {
  9200. className : "context"
  9201. }, "[System]\u00a0"), node.default.createElement("span", {
  9202. className : "system"
  9203. }, this.emojify.convert(object))));
  9204. }
  9205. }, {
  9206. key : "chat",
  9207. /**
  9208. * @param {number} object
  9209. * @param {number} expectedNumberOfNonCommentArgs
  9210. * @param {string} event
  9211. * @param {string} method
  9212. * @param {?} c
  9213. * @param {string} deepDataAndEvents
  9214. * @param {?} str
  9215. * @return {undefined}
  9216. */
  9217. value : function(object, expectedNumberOfNonCommentArgs, event, method, c, deepDataAndEvents, str) {
  9218. var o = arguments.length > 7 && (void 0 !== arguments[7] && arguments[7]);
  9219. if (this.inviteMsgs.includes(deepDataAndEvents)) {
  9220. /** @type {string} */
  9221. deepDataAndEvents = "Could you please invite me?";
  9222. /** @type {boolean} */
  9223. o = true;
  9224. }
  9225. if (o) {
  9226. if (!this.props.options.hideChatNotify) {
  9227. this.refs.notify.info("", node.default.createElement("span", null, method, ": ", this.emojify.convert(deepDataAndEvents)), 15E3);
  9228. }
  9229. }
  9230. this.add(node.default.createElement("div", {
  9231. className : "msg",
  9232. key : this.props.chat.messages.length
  9233. }, node.default.createElement(fieldsString, {
  9234. date : new Date
  9235. }), object && node.default.createElement("span", {
  9236. className : "context",
  9237. style : {
  9238. color : expectedNumberOfNonCommentArgs
  9239. }
  9240. }, "[", object, "]\u00a0"), node.default.createElement(createElement, {
  9241. pId : event,
  9242. name : method,
  9243. color : c
  9244. }), node.default.createElement("span", {
  9245. className : "colon"
  9246. }, ":\u00a0"), node.default.createElement("span", {
  9247. style : {
  9248. color : str
  9249. }
  9250. }, this.emojify.convert(deepDataAndEvents))));
  9251. }
  9252. }, {
  9253. key : "whisper",
  9254. /**
  9255. * @param {number} object
  9256. * @param {number} expectedNumberOfNonCommentArgs
  9257. * @param {?} str
  9258. * @param {string} triggerRoute
  9259. * @param {string} file
  9260. * @param {string} deepDataAndEvents
  9261. * @param {?} until
  9262. * @return {undefined}
  9263. */
  9264. value : function(object, expectedNumberOfNonCommentArgs, str, triggerRoute, file, deepDataAndEvents, until) {
  9265. if (!this.props.options.hideChatNotify) {
  9266. this.refs.notify.info("", node.default.createElement("span", null, expectedNumberOfNonCommentArgs, " > ", file, ": ", this.emojify.convert(until)), 15E3);
  9267. }
  9268. this.add(node.default.createElement("div", {
  9269. className : "msg",
  9270. key : this.props.chat.messages.length
  9271. }, node.default.createElement(fieldsString, {
  9272. date : new Date
  9273. }), node.default.createElement(createElement, {
  9274. pId : object,
  9275. name : expectedNumberOfNonCommentArgs,
  9276. color : str
  9277. }), node.default.createElement("span", null, "\u00a0>\u00a0"), node.default.createElement(createElement, {
  9278. pId : triggerRoute,
  9279. name : file,
  9280. color : deepDataAndEvents
  9281. }), node.default.createElement("span", null, ":\u00a0"), node.default.createElement("span", null, this.emojify.convert(until))));
  9282. }
  9283. }, {
  9284. key : "handleInviteResponse",
  9285. /**
  9286. * @param {number} object
  9287. * @param {number} expectedNumberOfNonCommentArgs
  9288. * @return {undefined}
  9289. */
  9290. value : function(object, expectedNumberOfNonCommentArgs) {
  9291. object.sendInviteResponse(expectedNumberOfNonCommentArgs);
  9292. this.props.chat.invites.pop();
  9293. }
  9294. }, {
  9295. key : "parsePId",
  9296. /**
  9297. * @param {number} object
  9298. * @return {?}
  9299. */
  9300. value : function(object) {
  9301. /** @type {number} */
  9302. var value = parseInt(object);
  9303. return isNaN(value) ? this.system("Invalid player id.") : value;
  9304. }
  9305. }, {
  9306. key : "parseCommand",
  9307. /**
  9308. * @param {number} object
  9309. * @return {undefined}
  9310. */
  9311. value : function(object) {
  9312. var a = object.split(" ");
  9313. var next = a[0];
  9314. switch(this.props.chat.input = "", next) {
  9315. case "/whisper":
  9316. ;
  9317. case "/w":
  9318. var r20 = this.parsePId(a[1]);
  9319. if (r20) {
  9320. object = object.substr(a[0].length + a[1].length + 2);
  9321. this.props.getClient().sendWhisper(r20, object);
  9322. /** @type {string} */
  9323. this.props.chat.input = "/w " + r20 + " ";
  9324. }
  9325. break;
  9326. case "/reply":
  9327. ;
  9328. case "/r":
  9329. object = object.substr(a[0].length + 1);
  9330. this.props.getClient().sendWhisper(0, object);
  9331. /** @type {string} */
  9332. this.props.chat.input = "/r ";
  9333. break;
  9334. case "/party":
  9335. ;
  9336. case "/p":
  9337. object = object.substr(a[0].length + 1);
  9338. this.props.getClient().sendChat(object, 1);
  9339. /** @type {string} */
  9340. this.props.chat.input = "/p ";
  9341. break;
  9342. case "/invite":
  9343. ;
  9344. case "/i":
  9345. var restoreScript = this.parsePId(a[1]);
  9346. if (restoreScript) {
  9347. this.props.getClient().sendPartyAction(0, restoreScript);
  9348. }
  9349. break;
  9350. case "/leave":
  9351. this.props.getClient().sendPartyAction(3, 0);
  9352. /** @type {string} */
  9353. this.props.chat.input = "";
  9354. break;
  9355. case "/promote":
  9356. var rreturn = this.parsePId(a[1]);
  9357. if (rreturn) {
  9358. this.props.getClient().sendPartyAction(2, rreturn);
  9359. }
  9360. break;
  9361. case "/kick":
  9362. var udataCur = this.parsePId(a[1]);
  9363. if (udataCur) {
  9364. this.props.getClient().sendPartyAction(1, udataCur);
  9365. }
  9366. break;
  9367. default:
  9368. this.system("Invalid command!");
  9369. }
  9370. }
  9371. }, {
  9372. key : "sendChat",
  9373. /**
  9374. * @param {number} object
  9375. * @return {undefined}
  9376. */
  9377. value : function(object) {
  9378. if (0 != object.length) {
  9379. if (object.startsWith("/")) {
  9380. this.parseCommand(object);
  9381. } else {
  9382. this.props.getClient().sendChat(object, 0);
  9383. /** @type {string} */
  9384. this.props.chat.input = "";
  9385. }
  9386. }
  9387. }
  9388. }, {
  9389. key : "handleChange",
  9390. /**
  9391. * @param {number} object
  9392. * @return {undefined}
  9393. */
  9394. value : function(object) {
  9395. this.props.chat.input = object.target.value;
  9396. }
  9397. }, {
  9398. key : "handleActionDown",
  9399. /**
  9400. * @param {number} object
  9401. * @return {undefined}
  9402. */
  9403. value : function(object) {
  9404. var value = this.props.messagesInv.get(object);
  9405. if (value) {
  9406. this.sendChat("/p " + value);
  9407. }
  9408. }
  9409. }, {
  9410. key : "handleMouseDown",
  9411. /**
  9412. * @param {number} object
  9413. * @return {undefined}
  9414. */
  9415. value : function(object) {
  9416. this.handleActionDown(object.button);
  9417. }
  9418. }, {
  9419. key : "handleKeyDown",
  9420. /**
  9421. * @param {number} object
  9422. * @return {undefined}
  9423. */
  9424. value : function(object) {
  9425. if ("INPUT" != document.activeElement.tagName && (!object.ctrlKey && !object.altKey)) {
  9426. var r20 = 1 == object.key.length ? object.key.toLowerCase() : object.key;
  9427. this.handleActionDown(r20);
  9428. }
  9429. }
  9430. }, {
  9431. key : "handleKeyUp",
  9432. /**
  9433. * @param {number} object
  9434. * @return {undefined}
  9435. */
  9436. value : function(object) {
  9437. var Enter = 1 == object.key.length ? object.key.toLowerCase() : object.key;
  9438. if ("Enter" == Enter) {
  9439. if (object.target == this.refs.input) {
  9440. this.sendChat(this.props.chat.input);
  9441. this.refs.input.blur();
  9442. } else {
  9443. this.refs.input.focus();
  9444. }
  9445. object.stopPropagation();
  9446. }
  9447. }
  9448. }, {
  9449. key : "render",
  9450. /**
  9451. * @return {?}
  9452. */
  9453. value : function() {
  9454. var scope;
  9455. var stops = this;
  9456. return scope = this, node.default.createElement("div", {
  9457. className : "chat-container"
  9458. }, node.default.createElement("div", {
  9459. className : "chat-notify-container"
  9460. }, node.default.createElement(opt.default, {
  9461. ref : "notify"
  9462. }), node.default.createElement("div", {
  9463. className : "chat ui-panel",
  9464. style : {
  9465. display : this.props.options.hideChat ? "none" : ""
  9466. }
  9467. }, node.default.createElement(obj.default, {
  9468. containerHeight : 220,
  9469. displayBottomUpwards : "displayBottomUpwards",
  9470. elementHeight : this.props.chat.messages.map(function(q) {
  9471. var l = q.height;
  9472. return l;
  9473. })
  9474. }, this.props.chat.messages.map(function(err) {
  9475. var msg = err.msg;
  9476. return msg;
  9477. })), node.default.createElement("div", {
  9478. className : "chat-input"
  9479. }, node.default.createElement("input", {
  9480. ref : "input",
  9481. autocomplete : "off",
  9482. value : this.props.chat.input,
  9483. onChange : this.handleChange.bind(this),
  9484. onKeyUp : this.handleKeyUp.bind(this)
  9485. }), node.default.createElement("img", {
  9486. className : "emoji-input",
  9487. src : "//unpkg.com/twemoji@2.2.5/2/svg/1f603.svg",
  9488. /**
  9489. * @param {Object} event
  9490. * @return {undefined}
  9491. */
  9492. onClick : function(event) {
  9493. /** @type {boolean} */
  9494. scope.props.chat.emoji = !scope.props.chat.emoji;
  9495. event.stopPropagation();
  9496. }
  9497. }), this.props.chat.emoji && (scope = this, node.default.createElement("div", {
  9498. className : "emoji-picker",
  9499. /**
  9500. * @param {Object} event
  9501. * @return {?}
  9502. */
  9503. onClick : function(event) {
  9504. return event.stopPropagation();
  9505. }
  9506. }, node.default.createElement(defaults.Picker, {
  9507. set : "twitter",
  9508. sheetSize : "32",
  9509. /**
  9510. * @param {Object} options
  9511. * @return {undefined}
  9512. */
  9513. onClick : function(options) {
  9514. /** @type {boolean} */
  9515. scope.props.chat.emoji = false;
  9516. scope.props.chat.input += options.colons;
  9517. scope.refs.input.focus();
  9518. }
  9519. }))))), node.default.createElement("div", {
  9520. className : "chat msg-height",
  9521. ref : "msgHeight"
  9522. })), node.default.createElement(type, {
  9523. value : this.props.chat.inviteMenu,
  9524. chat : this.props.chat.input,
  9525. getClient : this.props.getClient,
  9526. findCell : this.props.findCell,
  9527. /**
  9528. * @param {string} s
  9529. * @return {undefined}
  9530. */
  9531. onChat : function(s) {
  9532. /** @type {string} */
  9533. scope.props.chat.input = s;
  9534. scope.refs.input.focus();
  9535. }
  9536. }), this.props.chat.invites.map(function(player) {
  9537. var client = player.client;
  9538. var name = player.name;
  9539. return node.default.createElement(tagToInsert, {
  9540. name : name,
  9541. onResponse : stops.handleInviteResponse.bind(stops, client)
  9542. });
  9543. }));
  9544. }
  9545. }]), value;
  9546. }(node.default.PureComponent)) || scope) || scope);
  9547. object.default = prototype;
  9548. }, function(dataAndEvents, obj, valueAccessor) {
  9549. /**
  9550. * @param {string} options
  9551. * @return {?}
  9552. */
  9553. function defaults(options) {
  9554. return options && options.__esModule ? options : {
  9555. default : options
  9556. };
  9557. }
  9558. /**
  9559. * @param {Object} obj
  9560. * @param {?} name
  9561. * @param {string} value
  9562. * @return {?}
  9563. */
  9564. function prop(obj, name, value) {
  9565. return name in obj ? Object.defineProperty(obj, name, {
  9566. value : value,
  9567. enumerable : true,
  9568. configurable : true,
  9569. writable : true
  9570. }) : obj[name] = value, obj;
  9571. }
  9572. /**
  9573. * @param {number} results
  9574. * @return {?}
  9575. */
  9576. function makeArray(results) {
  9577. if (Array.isArray(results)) {
  9578. /** @type {number} */
  9579. var i = 0;
  9580. /** @type {Array} */
  9581. var result = Array(results.length);
  9582. for (;i < results.length;i++) {
  9583. result[i] = results[i];
  9584. }
  9585. return result;
  9586. }
  9587. return Array.from(results);
  9588. }
  9589. /**
  9590. * @param {?} dataAndEvents
  9591. * @param {Function} fun
  9592. * @return {undefined}
  9593. */
  9594. function bind(dataAndEvents, fun) {
  9595. if (!(dataAndEvents instanceof fun)) {
  9596. throw new TypeError("Cannot call a class as a function");
  9597. }
  9598. }
  9599. /**
  9600. * @param {string} dataAndEvents
  9601. * @param {?} obj
  9602. * @return {?}
  9603. */
  9604. function isRegExp(dataAndEvents, obj) {
  9605. if (!dataAndEvents) {
  9606. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  9607. }
  9608. return!obj || "object" != typeof obj && "function" != typeof obj ? dataAndEvents : obj;
  9609. }
  9610. /**
  9611. * @param {Object} self
  9612. * @param {Object} b
  9613. * @return {undefined}
  9614. */
  9615. function f(self, b) {
  9616. if ("function" != typeof b && null !== b) {
  9617. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  9618. }
  9619. /** @type {Object} */
  9620. self.prototype = Object.create(b && b.prototype, {
  9621. constructor : {
  9622. value : self,
  9623. enumerable : false,
  9624. writable : true,
  9625. configurable : true
  9626. }
  9627. });
  9628. if (b) {
  9629. if (Object.setPrototypeOf) {
  9630. Object.setPrototypeOf(self, b);
  9631. } else {
  9632. /** @type {Object} */
  9633. self.__proto__ = b;
  9634. }
  9635. }
  9636. }
  9637. Object.defineProperty(obj, "__esModule", {
  9638. value : true
  9639. });
  9640. obj.default = void 0;
  9641. var ok;
  9642. var x;
  9643. var iterator = function() {
  9644. /**
  9645. * @param {Arguments} object
  9646. * @param {number} deepDataAndEvents
  9647. * @return {?}
  9648. */
  9649. function clone(object, deepDataAndEvents) {
  9650. /** @type {Array} */
  9651. var res = [];
  9652. /** @type {boolean} */
  9653. var callback2 = true;
  9654. /** @type {boolean} */
  9655. var i = false;
  9656. var bulk = void 0;
  9657. try {
  9658. var next;
  9659. var self = object[Symbol.iterator]();
  9660. for (;!(callback2 = (next = self.next()).done) && (res.push(next.value), !deepDataAndEvents || res.length !== deepDataAndEvents);callback2 = true) {
  9661. }
  9662. } catch (fn) {
  9663. /** @type {boolean} */
  9664. i = true;
  9665. bulk = fn;
  9666. } finally {
  9667. try {
  9668. if (!callback2) {
  9669. if (self.return) {
  9670. self.return();
  9671. }
  9672. }
  9673. } finally {
  9674. if (i) {
  9675. throw bulk;
  9676. }
  9677. }
  9678. }
  9679. return res;
  9680. }
  9681. return function(which, deepDataAndEvents) {
  9682. if (Array.isArray(which)) {
  9683. return which;
  9684. }
  9685. if (Symbol.iterator in Object(which)) {
  9686. return clone(which, deepDataAndEvents);
  9687. }
  9688. throw new TypeError("Invalid attempt to destructure non-iterable instance");
  9689. };
  9690. }();
  9691. var b = function() {
  9692. /**
  9693. * @param {Function} object
  9694. * @param {Array} d
  9695. * @return {undefined}
  9696. */
  9697. function defineProperty(object, d) {
  9698. /** @type {number} */
  9699. var i = 0;
  9700. for (;i < d.length;i++) {
  9701. var desc = d[i];
  9702. desc.enumerable = desc.enumerable || false;
  9703. /** @type {boolean} */
  9704. desc.configurable = true;
  9705. if ("value" in desc) {
  9706. /** @type {boolean} */
  9707. desc.writable = true;
  9708. }
  9709. Object.defineProperty(object, desc.key, desc);
  9710. }
  9711. }
  9712. return function(x, current, a) {
  9713. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  9714. };
  9715. }();
  9716. var options = valueAccessor(0);
  9717. var opts = defaults(options);
  9718. var value = valueAccessor(2);
  9719. var properties = valueAccessor(1);
  9720. var tagToInsert = function(v2) {
  9721. /**
  9722. * @return {?}
  9723. */
  9724. function self() {
  9725. return bind(this, self), isRegExp(this, (self.__proto__ || Object.getPrototypeOf(self)).apply(this, arguments));
  9726. }
  9727. return f(self, v2), b(self, [{
  9728. key : "handleMouseDown",
  9729. /**
  9730. * @param {number} object
  9731. * @return {undefined}
  9732. */
  9733. value : function(object) {
  9734. if (document.activeElement == this.refs.ref) {
  9735. this.props.onChange(object.button);
  9736. this.refs.ref.blur();
  9737. object.stopPropagation();
  9738. object.preventDefault();
  9739. }
  9740. }
  9741. }, {
  9742. key : "handleKeyDown",
  9743. /**
  9744. * @param {number} object
  9745. * @return {undefined}
  9746. */
  9747. value : function(object) {
  9748. if (document.activeElement == this.refs.ref) {
  9749. this.props.onChange("Escape" == object.key ? null : 1 == object.key.length ? object.key.toLowerCase() : object.key);
  9750. this.refs.ref.blur();
  9751. object.stopPropagation();
  9752. object.preventDefault();
  9753. }
  9754. }
  9755. }, {
  9756. key : "stringifyKey",
  9757. /**
  9758. * @param {number} object
  9759. * @return {?}
  9760. */
  9761. value : function(object) {
  9762. return "number" == typeof object ? ["Left click", "Middle click", "Right click"][object] : " " == object ? "Space" : object;
  9763. }
  9764. }, {
  9765. key : "render",
  9766. /**
  9767. * @return {?}
  9768. */
  9769. value : function() {
  9770. return opts.default.createElement("div", {
  9771. className : "key-picker",
  9772. ref : "ref",
  9773. tabIndex : "1",
  9774. onMouseDown : this.handleMouseDown.bind(this),
  9775. onKeyDown : this.handleKeyDown.bind(this)
  9776. }, this.stringifyKey(this.props.value));
  9777. }
  9778. }]), self;
  9779. }(opts.default.PureComponent);
  9780. var id = (ok = (0, properties.inject)("keys", "messages", "keysInv", "messagesInv"), ok(x = (0, properties.observer)(x = function(v2) {
  9781. /**
  9782. * @param {?} err
  9783. * @return {?}
  9784. */
  9785. function self(err) {
  9786. bind(this, self);
  9787. var that = isRegExp(this, (self.__proto__ || Object.getPrototypeOf(self)).call(this, err));
  9788. /** @type {Array} */
  9789. that.keys = [["Feed", "feed", "w"], ["Split", "split", " "], ["Double split", "doubleSplit", "q"], ["Triple split", "tripleSplit", null], ["Quad split", "quadSplit", "Shift"], ["Spectate top", "spectateTop", "q"]].concat(makeArray([]), [["Multibox switch", "multiboxSwitch", "Tab"]], makeArray([]), [["Horizontal linesplit", "horzLine", "["], ["Veritical linesplit", "vertLine", "]"], ["Hide food", "hideFood", "f"], ["Hide skins", "hideSkins", "g"], ["Hide enemy skins", "hideEnemySkins", "v"],
  9790. ["Hide names", "hideNames", "n"], ["Hide chat", "hideChat", "x"], ["Change color", "changeColor", "m"]]);
  9791. /** @type {Array} */
  9792. var noArgs = [["1", "Tricksplit!"], ["2", "Fake tricksplit!"], ["3", "We need to run!"], ["4", "Split into me!"], ["5", "Need backup!"], ["6", "Enemy spotted!"], ["7", "Split on them!"], ["8", "Lol"], ["9", "#_#"], ["0", "My bad. Sorry for that"]];
  9793. /** @type {boolean} */
  9794. var callback2 = true;
  9795. /** @type {boolean} */
  9796. var u = false;
  9797. var bulk = void 0;
  9798. try {
  9799. var x;
  9800. var tree = that.keys[Symbol.iterator]();
  9801. for (;!(callback2 = (x = tree.next()).done);callback2 = true) {
  9802. var key = iterator(x.value, 3);
  9803. var rvar = (key[0], key[1]);
  9804. var udataCur = key[2];
  9805. (0, value.extendObservable)(that.props.keys, prop({}, rvar, udataCur));
  9806. }
  9807. } catch (fn) {
  9808. /** @type {boolean} */
  9809. u = true;
  9810. bulk = fn;
  9811. } finally {
  9812. try {
  9813. if (!callback2) {
  9814. if (tree.return) {
  9815. tree.return();
  9816. }
  9817. }
  9818. } finally {
  9819. if (u) {
  9820. throw bulk;
  9821. }
  9822. }
  9823. }
  9824. return Object.assign(that.props.keys, JSON.parse(window.localStorage.getItem("keys") || "{}")), Array.prototype.push.apply(that.props.messages, JSON.parse(window.localStorage.getItem("messages") || "null") || noArgs), (0, value.observe)(that.props.keys, that.updateKeyInv.bind(that)), (0, value.observe)(that.props.messages, that.updateMsgInv.bind(that)), that.updateKeyInv(), that.updateMsgInv(), window.addEventListener("beforeunload", function() {
  9825. window.localStorage.setItem("keys", JSON.stringify(that.props.keys));
  9826. window.localStorage.setItem("messages", JSON.stringify(that.props.messages));
  9827. }), that;
  9828. }
  9829. return f(self, v2), b(self, [{
  9830. key : "updateKeyInv",
  9831. /**
  9832. * @return {undefined}
  9833. */
  9834. value : function() {
  9835. this.props.keysInv.clear();
  9836. var _key;
  9837. for (_key in this.props.keys) {
  9838. var key = this.props.keys[_key];
  9839. if (!this.props.keysInv.has(key)) {
  9840. this.props.keysInv.set(key, []);
  9841. }
  9842. this.props.keysInv.get(key).push(_key);
  9843. }
  9844. }
  9845. }, {
  9846. key : "updateMsgInv",
  9847. /**
  9848. * @return {undefined}
  9849. */
  9850. value : function() {
  9851. this.props.messagesInv.clear();
  9852. /** @type {boolean} */
  9853. var callback2 = true;
  9854. /** @type {boolean} */
  9855. var t = false;
  9856. var bulk = void 0;
  9857. try {
  9858. var x;
  9859. var self = this.props.messages[Symbol.iterator]();
  9860. for (;!(callback2 = (x = self.next()).done);callback2 = true) {
  9861. var key = iterator(x.value, 2);
  9862. var cacheKey = key[0];
  9863. var pdataOld = key[1];
  9864. this.props.messagesInv.set(cacheKey, pdataOld);
  9865. }
  9866. } catch (fn) {
  9867. /** @type {boolean} */
  9868. t = true;
  9869. bulk = fn;
  9870. } finally {
  9871. try {
  9872. if (!callback2) {
  9873. if (self.return) {
  9874. self.return();
  9875. }
  9876. }
  9877. } finally {
  9878. if (t) {
  9879. throw bulk;
  9880. }
  9881. }
  9882. }
  9883. }
  9884. }, {
  9885. key : "render",
  9886. /**
  9887. * @return {?}
  9888. */
  9889. value : function() {
  9890. var self = this;
  9891. return opts.default.createElement("div", {
  9892. className : "keys"
  9893. }, self.keys.map(function(keys) {
  9894. return opts.default.createElement("div", {
  9895. className : "key"
  9896. }, opts.default.createElement(tagToInsert, {
  9897. value : self.props.keys[keys[1]],
  9898. /**
  9899. * @param {string} thumb
  9900. * @return {?}
  9901. */
  9902. onChange : function(thumb) {
  9903. return self.props.keys[keys[1]] = thumb;
  9904. }
  9905. }), opts.default.createElement("span", null, keys[0]));
  9906. }), self.props.messages.map(function(valueHash, key) {
  9907. return opts.default.createElement("div", {
  9908. className : "key"
  9909. }, opts.default.createElement(tagToInsert, {
  9910. value : valueHash[0],
  9911. /**
  9912. * @param {?} v
  9913. * @return {?}
  9914. */
  9915. onChange : function(v) {
  9916. return self.props.messages[key] = [v, valueHash[1]];
  9917. }
  9918. }), opts.default.createElement("input", {
  9919. value : valueHash[1],
  9920. /**
  9921. * @param {Event} evt
  9922. * @return {?}
  9923. */
  9924. onChange : function(evt) {
  9925. return self.props.messages[key] = [valueHash[0], evt.target.value];
  9926. }
  9927. }));
  9928. }));
  9929. }
  9930. }]), self;
  9931. }(opts.default.PureComponent)) || x) || x);
  9932. obj.default = id;
  9933. }, function(dataAndEvents, object, require) {
  9934. /**
  9935. * @param {Function} type
  9936. * @return {?}
  9937. */
  9938. function getOptions(type) {
  9939. return type && type.__esModule ? type : {
  9940. /** @type {Function} */
  9941. default : type
  9942. };
  9943. }
  9944. /**
  9945. * @param {?} dataAndEvents
  9946. * @param {Function} right
  9947. * @return {undefined}
  9948. */
  9949. function fn(dataAndEvents, right) {
  9950. if (!(dataAndEvents instanceof right)) {
  9951. throw new TypeError("Cannot call a class as a function");
  9952. }
  9953. }
  9954. /**
  9955. * @param {string} dataAndEvents
  9956. * @param {?} deepDataAndEvents
  9957. * @return {?}
  9958. */
  9959. function clone(dataAndEvents, deepDataAndEvents) {
  9960. if (!dataAndEvents) {
  9961. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  9962. }
  9963. return!deepDataAndEvents || "object" != typeof deepDataAndEvents && "function" != typeof deepDataAndEvents ? dataAndEvents : deepDataAndEvents;
  9964. }
  9965. /**
  9966. * @param {Object} m
  9967. * @param {Object} b
  9968. * @return {undefined}
  9969. */
  9970. function create(m, b) {
  9971. if ("function" != typeof b && null !== b) {
  9972. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  9973. }
  9974. /** @type {Object} */
  9975. m.prototype = Object.create(b && b.prototype, {
  9976. constructor : {
  9977. value : m,
  9978. enumerable : false,
  9979. writable : true,
  9980. configurable : true
  9981. }
  9982. });
  9983. if (b) {
  9984. if (Object.setPrototypeOf) {
  9985. Object.setPrototypeOf(m, b);
  9986. } else {
  9987. /** @type {Object} */
  9988. m.__proto__ = b;
  9989. }
  9990. }
  9991. }
  9992. Object.defineProperty(object, "__esModule", {
  9993. value : true
  9994. });
  9995. object.default = void 0;
  9996. var throttledUpdate;
  9997. var dep;
  9998. var lookupIterator = function() {
  9999. /**
  10000. * @param {Function} object
  10001. * @param {Array} d
  10002. * @return {undefined}
  10003. */
  10004. function defineProperty(object, d) {
  10005. /** @type {number} */
  10006. var i = 0;
  10007. for (;i < d.length;i++) {
  10008. var desc = d[i];
  10009. desc.enumerable = desc.enumerable || false;
  10010. /** @type {boolean} */
  10011. desc.configurable = true;
  10012. if ("value" in desc) {
  10013. /** @type {boolean} */
  10014. desc.writable = true;
  10015. }
  10016. Object.defineProperty(object, desc.key, desc);
  10017. }
  10018. }
  10019. return function(x, current, a) {
  10020. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  10021. };
  10022. }();
  10023. var helper = require(0);
  10024. var opts = getOptions(helper);
  10025. var element = require(1);
  10026. var file = require(9);
  10027. var obj = getOptions(file);
  10028. var prototype = (throttledUpdate = (0, element.inject)("main"), throttledUpdate(dep = (0, element.observer)(dep = function(properties) {
  10029. /**
  10030. * @return {?}
  10031. */
  10032. function value() {
  10033. return fn(this, value), clone(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  10034. }
  10035. return create(value, properties), lookupIterator(value, [{
  10036. key : "handleClick",
  10037. /**
  10038. * @return {undefined}
  10039. */
  10040. value : function() {
  10041. (0, obj.default)(this.refs.contents.textContent);
  10042. }
  10043. }, {
  10044. key : "render",
  10045. /**
  10046. * @return {?}
  10047. */
  10048. value : function() {
  10049. return opts.default.createElement("div", {
  10050. className : "leaderboard ui-panel",
  10051. ref : "contents",
  10052. onClick : this.handleClick.bind(this)
  10053. }, opts.default.createElement("div", {
  10054. className : "leaderboard-title"
  10055. }, "Leaderboard"), opts.default.createElement("div", {
  10056. className : "leaderboard-contents"
  10057. }, this.props.main.leaderboard.map(function(p, dataAndEvents) {
  10058. return opts.default.createElement("div", {
  10059. style : {
  10060. color : p.color
  10061. }
  10062. }, p.pos + 1, ". ", p.name, " ", "\n");
  10063. })), this.props.main.leaderboard.length > 0 && (this.props.main.teamLeaderboard.length > 0 && opts.default.createElement("div", {
  10064. className : "leaderboard-separator"
  10065. })), opts.default.createElement("div", {
  10066. className : "leaderboard-contents"
  10067. }, this.props.main.teamLeaderboard.map(function(p, dataAndEvents) {
  10068. return opts.default.createElement("div", {
  10069. style : {
  10070. color : p.color
  10071. }
  10072. }, p.pos + 1, ". ", p.name, " ", "\n");
  10073. })));
  10074. }
  10075. }]), value;
  10076. }(opts.default.PureComponent)) || dep) || dep);
  10077. object.default = prototype;
  10078. }, function(dataAndEvents, object, require) {
  10079. /**
  10080. * @param {string} type
  10081. * @return {?}
  10082. */
  10083. function $(type) {
  10084. return type && type.__esModule ? type : {
  10085. default : type
  10086. };
  10087. }
  10088. /**
  10089. * @param {?} dataAndEvents
  10090. * @param {Function} right
  10091. * @return {undefined}
  10092. */
  10093. function fn(dataAndEvents, right) {
  10094. if (!(dataAndEvents instanceof right)) {
  10095. throw new TypeError("Cannot call a class as a function");
  10096. }
  10097. }
  10098. /**
  10099. * @param {string} dataAndEvents
  10100. * @param {?} object
  10101. * @return {?}
  10102. */
  10103. function traverse(dataAndEvents, object) {
  10104. if (!dataAndEvents) {
  10105. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  10106. }
  10107. return!object || "object" != typeof object && "function" != typeof object ? dataAndEvents : object;
  10108. }
  10109. /**
  10110. * @param {Object} x
  10111. * @param {Object} b
  10112. * @return {undefined}
  10113. */
  10114. function create(x, b) {
  10115. if ("function" != typeof b && null !== b) {
  10116. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  10117. }
  10118. /** @type {Object} */
  10119. x.prototype = Object.create(b && b.prototype, {
  10120. constructor : {
  10121. value : x,
  10122. enumerable : false,
  10123. writable : true,
  10124. configurable : true
  10125. }
  10126. });
  10127. if (b) {
  10128. if (Object.setPrototypeOf) {
  10129. Object.setPrototypeOf(x, b);
  10130. } else {
  10131. /** @type {Object} */
  10132. x.__proto__ = b;
  10133. }
  10134. }
  10135. }
  10136. Object.defineProperty(object, "__esModule", {
  10137. value : true
  10138. });
  10139. object.default = void 0;
  10140. var throttledUpdate;
  10141. var dep;
  10142. var lookupIterator = function() {
  10143. /**
  10144. * @param {Function} object
  10145. * @param {?} d
  10146. * @return {undefined}
  10147. */
  10148. function defineProperty(object, d) {
  10149. /** @type {number} */
  10150. var i = 0;
  10151. for (;i < d.length;i++) {
  10152. var desc = d[i];
  10153. desc.enumerable = desc.enumerable || false;
  10154. /** @type {boolean} */
  10155. desc.configurable = true;
  10156. if ("value" in desc) {
  10157. /** @type {boolean} */
  10158. desc.writable = true;
  10159. }
  10160. Object.defineProperty(object, desc.key, desc);
  10161. }
  10162. }
  10163. return function(x, current, a) {
  10164. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  10165. };
  10166. }();
  10167. var header = require(0);
  10168. var opts = $(header);
  10169. var element = require(1);
  10170. var Tab = require(5);
  10171. var nodes = require(32);
  10172. var node = $(nodes);
  10173. var json = require(36);
  10174. var obj = $(json);
  10175. var helper = require(38);
  10176. var option = ($(helper), require(39));
  10177. var opt = $(option);
  10178. var children = require(40);
  10179. var c = $(children);
  10180. var tagToInsert = function(properties) {
  10181. /**
  10182. * @return {?}
  10183. */
  10184. function value() {
  10185. return fn(this, value), traverse(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  10186. }
  10187. return create(value, properties), lookupIterator(value, [{
  10188. key : "handleKeyUp",
  10189. /**
  10190. * @param {number} object
  10191. * @return {undefined}
  10192. */
  10193. value : function(object) {
  10194. if ("Enter" == object.key) {
  10195. this.props.onPlay();
  10196. }
  10197. }
  10198. }, {
  10199. key : "render",
  10200. /**
  10201. * @return {?}
  10202. */
  10203. value : function() {
  10204. return opts.default.createElement("div", {
  10205. className : "main-left",
  10206. onKeyUp : this.handleKeyUp.bind(this)
  10207. }, opts.default.createElement(c.default, {
  10208. skinsLoader : this.props.skinsLoader
  10209. }), opts.default.createElement("div", {
  10210. className : "main-input"
  10211. }, opts.default.createElement("button", {
  10212. className : "btn",
  10213. onClick : this.props.onPlay
  10214. }, "Play"), opts.default.createElement("button", {
  10215. className : "btn",
  10216. onClick : this.props.onSpectate
  10217. }, "Spectate")));
  10218. }
  10219. }]), value;
  10220. }(opts.default.PureComponent);
  10221. var fieldsString = function(properties) {
  10222. /**
  10223. * @return {?}
  10224. */
  10225. function value() {
  10226. return fn(this, value), traverse(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  10227. }
  10228. return create(value, properties), lookupIterator(value, [{
  10229. key : "render",
  10230. /**
  10231. * @return {?}
  10232. */
  10233. value : function() {
  10234. return opts.default.createElement("div", {
  10235. className : "main-right"
  10236. }, opts.default.createElement(Tab.Tabs, {
  10237. forceRenderTabPanel : "forceRenderTabPanel"
  10238. }, opts.default.createElement(Tab.TabList, null, opts.default.createElement(Tab.Tab, null, opts.default.createElement("i", {
  10239. className : "fa fa-list"
  10240. })), opts.default.createElement(Tab.Tab, null, opts.default.createElement("i", {
  10241. className : "fa fa-cog"
  10242. })), opts.default.createElement(Tab.Tab, null, opts.default.createElement("i", {
  10243. className : "fa fa-keyboard-o"
  10244. })), false, opts.default.createElement("li", null)), opts.default.createElement(Tab.TabPanel, null, opts.default.createElement(opt.default, null)), opts.default.createElement(Tab.TabPanel, null, opts.default.createElement(obj.default, null)), opts.default.createElement(Tab.TabPanel, null, opts.default.createElement(node.default, null)), false), opts.default.createElement("div", {
  10245. className : "social"
  10246. }, opts.default.createElement("a", {
  10247. href : "https://discord.gg/NDCyFuH",
  10248. target : "_blank"
  10249. }, opts.default.createElement("img", {
  10250. src : "https://discordapp.com/assets/2c21aeda16de354ba5334551a883b481.png"
  10251. }))));
  10252. }
  10253. }]), value;
  10254. }(opts.default.PureComponent);
  10255. var prototype = (throttledUpdate = (0, element.inject)("main"), throttledUpdate(dep = (0, element.observer)(dep = function(properties) {
  10256. /**
  10257. * @return {?}
  10258. */
  10259. function value() {
  10260. return fn(this, value), traverse(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  10261. }
  10262. return create(value, properties), lookupIterator(value, [{
  10263. key : "render",
  10264. /**
  10265. * @return {?}
  10266. */
  10267. value : function() {
  10268. return opts.default.createElement("div", {
  10269. className : "main ui-panel",
  10270. style : {
  10271. display : this.props.main.hideMain ? "none" : ""
  10272. }
  10273. }, opts.default.createElement(tagToInsert, {
  10274. skinsLoader : this.props.skinsLoader,
  10275. onPlay : this.props.onPlay,
  10276. onSpectate : this.props.onSpectate
  10277. }), opts.default.createElement(fieldsString, {
  10278. recorder : this.props.recorder
  10279. }));
  10280. }
  10281. }]), value;
  10282. }(opts.default.PureComponent)) || dep) || dep);
  10283. object.default = prototype;
  10284. }, function(dataAndEvents, obj, require) {
  10285. /**
  10286. * @param {string} options
  10287. * @return {?}
  10288. */
  10289. function defaults(options) {
  10290. return options && options.__esModule ? options : {
  10291. default : options
  10292. };
  10293. }
  10294. /**
  10295. * @param {?} dataAndEvents
  10296. * @param {Function} right
  10297. * @return {undefined}
  10298. */
  10299. function fn(dataAndEvents, right) {
  10300. if (!(dataAndEvents instanceof right)) {
  10301. throw new TypeError("Cannot call a class as a function");
  10302. }
  10303. }
  10304. /**
  10305. * @param {string} dataAndEvents
  10306. * @param {?} deepDataAndEvents
  10307. * @return {?}
  10308. */
  10309. function clone(dataAndEvents, deepDataAndEvents) {
  10310. if (!dataAndEvents) {
  10311. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  10312. }
  10313. return!deepDataAndEvents || "object" != typeof deepDataAndEvents && "function" != typeof deepDataAndEvents ? dataAndEvents : deepDataAndEvents;
  10314. }
  10315. /**
  10316. * @param {Object} klass
  10317. * @param {Object} extend
  10318. * @return {undefined}
  10319. */
  10320. function create(klass, extend) {
  10321. if ("function" != typeof extend && null !== extend) {
  10322. throw new TypeError("Super expression must either be null or a function, not " + typeof extend);
  10323. }
  10324. /** @type {Object} */
  10325. klass.prototype = Object.create(extend && extend.prototype, {
  10326. constructor : {
  10327. value : klass,
  10328. enumerable : false,
  10329. writable : true,
  10330. configurable : true
  10331. }
  10332. });
  10333. if (extend) {
  10334. if (Object.setPrototypeOf) {
  10335. Object.setPrototypeOf(klass, extend);
  10336. } else {
  10337. /** @type {Object} */
  10338. klass.__proto__ = extend;
  10339. }
  10340. }
  10341. }
  10342. Object.defineProperty(obj, "__esModule", {
  10343. value : true
  10344. });
  10345. obj.default = void 0;
  10346. var model;
  10347. var dep;
  10348. var lookupIterator = function() {
  10349. /**
  10350. * @param {Function} object
  10351. * @param {?} d
  10352. * @return {undefined}
  10353. */
  10354. function defineProperty(object, d) {
  10355. /** @type {number} */
  10356. var i = 0;
  10357. for (;i < d.length;i++) {
  10358. var desc = d[i];
  10359. desc.enumerable = desc.enumerable || false;
  10360. /** @type {boolean} */
  10361. desc.configurable = true;
  10362. if ("value" in desc) {
  10363. /** @type {boolean} */
  10364. desc.writable = true;
  10365. }
  10366. Object.defineProperty(object, desc.key, desc);
  10367. }
  10368. }
  10369. return function(x, current, a) {
  10370. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  10371. };
  10372. }();
  10373. var options = require(0);
  10374. var opts = defaults(options);
  10375. var dom = require(2);
  10376. var element = require(1);
  10377. var value = (model = (0, element.inject)("minimap", "options"), model(dep = (0, element.observer)(dep = function(options) {
  10378. /**
  10379. * @param {?} newVal
  10380. * @return {?}
  10381. */
  10382. function value(newVal) {
  10383. fn(this, value);
  10384. var self = clone(this, (value.__proto__ || Object.getPrototypeOf(value)).call(this, newVal));
  10385. return(0, dom.extendObservable)(self.props.minimap, {
  10386. value : [],
  10387. x : 0,
  10388. y : 0
  10389. }), (0, dom.observe)(self.props.minimap, "value", self.renderCanvas.bind(self)), self;
  10390. }
  10391. return create(value, options), lookupIterator(value, [{
  10392. key : "renderCanvas",
  10393. /**
  10394. * @return {undefined}
  10395. */
  10396. value : function() {
  10397. if (this.refs.canvas) {
  10398. var ctx = this.refs.canvas.getContext("2d");
  10399. ctx.clearRect(0, 0, this.refs.canvas.width, this.refs.canvas.height);
  10400. /** @type {string} */
  10401. ctx.font = "12px Calibri";
  10402. /** @type {boolean} */
  10403. var callback2 = true;
  10404. /** @type {boolean} */
  10405. var n = false;
  10406. var bulk = void 0;
  10407. try {
  10408. var target;
  10409. var self = this.props.minimap.value[Symbol.iterator]();
  10410. for (;!(callback2 = (target = self.next()).done);callback2 = true) {
  10411. var node = target.value;
  10412. /** @type {number} */
  10413. var x = 250 * node.x;
  10414. /** @type {number} */
  10415. var y = 250 * node.y;
  10416. /** @type {number} */
  10417. var radius = Math.max(250 * node.size, 4);
  10418. ctx.beginPath();
  10419. ctx.arc(x, y, radius, 0, 2 * Math.PI, false);
  10420. ctx.fillStyle = node.color;
  10421. ctx.fill();
  10422. /** @type {number} */
  10423. var halfBar = ctx.measureText(node.name).width / 2;
  10424. /** @type {number} */
  10425. var left = x - halfBar;
  10426. /** @type {number} */
  10427. var posY = y - radius;
  10428. ctx.fillText(node.name, left, posY);
  10429. }
  10430. } catch (fn) {
  10431. /** @type {boolean} */
  10432. n = true;
  10433. bulk = fn;
  10434. } finally {
  10435. try {
  10436. if (!callback2) {
  10437. if (self.return) {
  10438. self.return();
  10439. }
  10440. }
  10441. } finally {
  10442. if (n) {
  10443. throw bulk;
  10444. }
  10445. }
  10446. }
  10447. }
  10448. }
  10449. }, {
  10450. key : "render",
  10451. /**
  10452. * @return {?}
  10453. */
  10454. value : function() {
  10455. return this.props.options.hideMinimap ? null : opts.default.createElement("div", {
  10456. className : "minimap ui-panel"
  10457. }, null, opts.default.createElement("canvas", {
  10458. ref : "canvas",
  10459. width : "250",
  10460. height : "250"
  10461. }));
  10462. }
  10463. }]), value;
  10464. }(opts.default.PureComponent)) || dep) || dep);
  10465. obj.default = value;
  10466. }, function(dataAndEvents, object, $) {
  10467. /**
  10468. * @param {string} type
  10469. * @return {?}
  10470. */
  10471. function getOptions(type) {
  10472. return type && type.__esModule ? type : {
  10473. default : type
  10474. };
  10475. }
  10476. /**
  10477. * @param {Object} obj
  10478. * @param {?} key
  10479. * @param {string} value
  10480. * @return {?}
  10481. */
  10482. function set(obj, key, value) {
  10483. return key in obj ? Object.defineProperty(obj, key, {
  10484. value : value,
  10485. enumerable : true,
  10486. configurable : true,
  10487. writable : true
  10488. }) : obj[key] = value, obj;
  10489. }
  10490. /**
  10491. * @param {number} results
  10492. * @return {?}
  10493. */
  10494. function makeArray(results) {
  10495. if (Array.isArray(results)) {
  10496. /** @type {number} */
  10497. var i = 0;
  10498. /** @type {Array} */
  10499. var result = Array(results.length);
  10500. for (;i < results.length;i++) {
  10501. result[i] = results[i];
  10502. }
  10503. return result;
  10504. }
  10505. return Array.from(results);
  10506. }
  10507. /**
  10508. * @param {?} dataAndEvents
  10509. * @param {Function} init
  10510. * @return {undefined}
  10511. */
  10512. function animate(dataAndEvents, init) {
  10513. if (!(dataAndEvents instanceof init)) {
  10514. throw new TypeError("Cannot call a class as a function");
  10515. }
  10516. }
  10517. /**
  10518. * @param {string} dataAndEvents
  10519. * @param {?} deepDataAndEvents
  10520. * @return {?}
  10521. */
  10522. function clone(dataAndEvents, deepDataAndEvents) {
  10523. if (!dataAndEvents) {
  10524. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  10525. }
  10526. return!deepDataAndEvents || "object" != typeof deepDataAndEvents && "function" != typeof deepDataAndEvents ? dataAndEvents : deepDataAndEvents;
  10527. }
  10528. /**
  10529. * @param {Object} fn
  10530. * @param {Object} extend
  10531. * @return {undefined}
  10532. */
  10533. function create(fn, extend) {
  10534. if ("function" != typeof extend && null !== extend) {
  10535. throw new TypeError("Super expression must either be null or a function, not " + typeof extend);
  10536. }
  10537. /** @type {Object} */
  10538. fn.prototype = Object.create(extend && extend.prototype, {
  10539. constructor : {
  10540. value : fn,
  10541. enumerable : false,
  10542. writable : true,
  10543. configurable : true
  10544. }
  10545. });
  10546. if (extend) {
  10547. if (Object.setPrototypeOf) {
  10548. Object.setPrototypeOf(fn, extend);
  10549. } else {
  10550. /** @type {Object} */
  10551. fn.__proto__ = extend;
  10552. }
  10553. }
  10554. }
  10555. Object.defineProperty(object, "__esModule", {
  10556. value : true
  10557. });
  10558. object.default = void 0;
  10559. var js;
  10560. var dep;
  10561. var when = function() {
  10562. /**
  10563. * @param {Arguments} object
  10564. * @param {number} deepDataAndEvents
  10565. * @return {?}
  10566. */
  10567. function clone(object, deepDataAndEvents) {
  10568. /** @type {Array} */
  10569. var res = [];
  10570. /** @type {boolean} */
  10571. var callback2 = true;
  10572. /** @type {boolean} */
  10573. var i = false;
  10574. var bulk = void 0;
  10575. try {
  10576. var next;
  10577. var self = object[Symbol.iterator]();
  10578. for (;!(callback2 = (next = self.next()).done) && (res.push(next.value), !deepDataAndEvents || res.length !== deepDataAndEvents);callback2 = true) {
  10579. }
  10580. } catch (fn) {
  10581. /** @type {boolean} */
  10582. i = true;
  10583. bulk = fn;
  10584. } finally {
  10585. try {
  10586. if (!callback2) {
  10587. if (self.return) {
  10588. self.return();
  10589. }
  10590. }
  10591. } finally {
  10592. if (i) {
  10593. throw bulk;
  10594. }
  10595. }
  10596. }
  10597. return res;
  10598. }
  10599. return function(which, deepDataAndEvents) {
  10600. if (Array.isArray(which)) {
  10601. return which;
  10602. }
  10603. if (Symbol.iterator in Object(which)) {
  10604. return clone(which, deepDataAndEvents);
  10605. }
  10606. throw new TypeError("Invalid attempt to destructure non-iterable instance");
  10607. };
  10608. }();
  10609. var make = function() {
  10610. /**
  10611. * @param {Function} object
  10612. * @param {?} d
  10613. * @return {undefined}
  10614. */
  10615. function defineProperty(object, d) {
  10616. /** @type {number} */
  10617. var i = 0;
  10618. for (;i < d.length;i++) {
  10619. var desc = d[i];
  10620. desc.enumerable = desc.enumerable || false;
  10621. /** @type {boolean} */
  10622. desc.configurable = true;
  10623. if ("value" in desc) {
  10624. /** @type {boolean} */
  10625. desc.writable = true;
  10626. }
  10627. Object.defineProperty(object, desc.key, desc);
  10628. }
  10629. }
  10630. return function(x, current, a) {
  10631. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  10632. };
  10633. }();
  10634. var file = $(58);
  10635. var obj = getOptions(file);
  10636. var li = $(0);
  10637. var opts = getOptions(li);
  10638. var option = $(14);
  10639. var opt = getOptions(option);
  10640. var outer = $(2);
  10641. var self = $(1);
  10642. var property = $(11);
  10643. var prototype = (js = (0, self.inject)("options", "keysInv"), js(dep = (0, self.observer)(dep = function(options) {
  10644. /**
  10645. * @param {?} reporter
  10646. * @return {?}
  10647. */
  10648. function init(reporter) {
  10649. animate(this, init);
  10650. var self = clone(this, (init.__proto__ || Object.getPrototypeOf(init)).call(this, reporter));
  10651. /** @type {Array} */
  10652. self.colors = [["Interface foreground color", "uiFgColor", {
  10653. color : "#ffffff",
  10654. alpha : 100
  10655. }], ["Interface background color", "uiBgColor", {
  10656. color : "#4a4a4a",
  10657. alpha : 80
  10658. }], ["Game background color", "gameBgColor", {
  10659. color : "#e3e3e3",
  10660. alpha : 100
  10661. }], ["Border color", "borderColor", {
  10662. color : "#1aa900",
  10663. alpha : 100
  10664. }], ["Food color", "foodColor", {
  10665. color : "#27ff00",
  10666. alpha : 100
  10667. }], ["Virus color", "virusColor", {
  10668. color : "#0f8c00",
  10669. alpha : 100
  10670. }], ["Mother cell color", "motherColor", {
  10671. color : "#ff1700",
  10672. alpha : 100
  10673. }], ["Self color", "selfColor", {
  10674. color : "#00cf00",
  10675. alpha : 100
  10676. }], ["Self name color", "selfNameColor", {
  10677. color : "#ffffff",
  10678. alpha : 100
  10679. }], ["Friend name color", "friendNameColor", {
  10680. color : "#008000",
  10681. alpha : 100
  10682. }], ["Enemy name color", "enemyNameColor", {
  10683. color : "#ffffff",
  10684. alpha : 100
  10685. }], ["Self party color", "selfPartyColor", {
  10686. color : "#00e300",
  10687. alpha : 100
  10688. }], ["Friend party color", "friendPartyColor", {
  10689. color : "#ffffff",
  10690. alpha : 100
  10691. }], ["Leader party color", "leaderPartyColor", {
  10692. color : "#00ffff",
  10693. alpha : 100
  10694. }], ["Self leaderboard color", "selfLbColor", {
  10695. color : "#ffaaaa",
  10696. alpha : 100
  10697. }], ["Friend leaderboard color", "friendLbColor", {
  10698. color : "#ffff00",
  10699. alpha : 100
  10700. }], ["Enemy leaderboard color", "enemyLbColor", {
  10701. color : "#ffffff",
  10702. alpha : 100
  10703. }], ["Self minimap color", "selfMapColor", {
  10704. color : "#10ff10",
  10705. alpha : 100
  10706. }], ["Friend minimap color", "friendMapColor", {
  10707. color : "#ff1010",
  10708. alpha : 100
  10709. }]].concat(makeArray([]), makeArray([]), [["Small cell indicator color", "smallIndColor", {
  10710. color : "#999999",
  10711. alpha : 100
  10712. }], ["Notify foreground color", "notifyFgColor", {
  10713. color : "#ffffff",
  10714. alpha : 100
  10715. }], ["Notify background color", "notifyBgColor", {
  10716. color : "#1aa900",
  10717. alpha : 100
  10718. }]]);
  10719. /** @type {Array} */
  10720. self.checkboxes = [["Enable multibox", "enableMultibox", false]].concat(makeArray([]), [["Hide food", "hideFood", false], ["Hide skins", "hideSkins", false], ["Hide enemy skins", "hideEnemySkins", true], ["Hide names", "hideNames", false], ["Hide mass", "hideMass", false], ["Text outlines", "textOutlines", false], ["Transparent cells", "transCells", false], ["Auto respawn", "autoRespawn", false], ["Disable auto zoom", "disableAutoZoom", true], ["Show borders", "showBorders", true], ["Colored ping",
  10721. "coloredPing", true], ["Hide chat", "hideChat", false], ["Hide chat notifications", "hideChatNotify", false], ["Hide minimap", "hideMinimap", false]], makeArray([]));
  10722. /** @type {Array} */
  10723. self.sliders = [["Animate", "animate", true, "animateSpeed", 90, 300, function(n) {
  10724. return n + "ms";
  10725. }], ["Auto hide text: cell size", "autoHideText", true, "autoHideTextVal", 30, 100, function(topOffset) {
  10726. return topOffset + "px";
  10727. }], ["Auto hide food: self mass", "autoHideFood", false, "autoHideFoodVal", 10, 100, function(memo) {
  10728. return memo + "k";
  10729. }], ["Small cell indicator: cell size", "smallInd", true, "smallIndVal", 10, 100, function(topOffset) {
  10730. return topOffset + "px";
  10731. }]];
  10732. /** @type {boolean} */
  10733. var callback2 = true;
  10734. /** @type {boolean} */
  10735. var l = false;
  10736. var bulk = void 0;
  10737. try {
  10738. var _ref;
  10739. var tree = self.colors[Symbol.iterator]();
  10740. for (;!(callback2 = (_ref = tree.next()).done);callback2 = true) {
  10741. var p = when(_ref.value, 3);
  10742. var camelKey = (p[0], p[1]);
  10743. var value = p[2];
  10744. (0, outer.extendObservable)(self.props.options, set({}, camelKey, value));
  10745. }
  10746. } catch (fn) {
  10747. /** @type {boolean} */
  10748. l = true;
  10749. bulk = fn;
  10750. } finally {
  10751. try {
  10752. if (!callback2) {
  10753. if (tree.return) {
  10754. tree.return();
  10755. }
  10756. }
  10757. } finally {
  10758. if (l) {
  10759. throw bulk;
  10760. }
  10761. }
  10762. }
  10763. /** @type {boolean} */
  10764. var _ref1 = true;
  10765. /** @type {boolean} */
  10766. var v = false;
  10767. var _clockseq = void 0;
  10768. try {
  10769. var setting;
  10770. var cell = self.checkboxes[Symbol.iterator]();
  10771. for (;!(_ref1 = (setting = cell.next()).done);_ref1 = true) {
  10772. var _ref3 = when(setting.value, 3);
  10773. camelKey = (_ref3[0], _ref3[1]);
  10774. value = _ref3[2];
  10775. (0, outer.extendObservable)(self.props.options, set({}, camelKey, value));
  10776. }
  10777. } catch (clockseq) {
  10778. /** @type {boolean} */
  10779. v = true;
  10780. _clockseq = clockseq;
  10781. } finally {
  10782. try {
  10783. if (!_ref1) {
  10784. if (cell.return) {
  10785. cell.return();
  10786. }
  10787. }
  10788. } finally {
  10789. if (v) {
  10790. throw _clockseq;
  10791. }
  10792. }
  10793. }
  10794. /** @type {boolean} */
  10795. var foundHelper = true;
  10796. /** @type {boolean} */
  10797. var _ = false;
  10798. var text = void 0;
  10799. try {
  10800. var d;
  10801. var c = self.sliders[Symbol.iterator]();
  10802. for (;!(foundHelper = (d = c.next()).done);foundHelper = true) {
  10803. var iteratee = when(d.value, 3);
  10804. camelKey = (iteratee[0], iteratee[1]);
  10805. value = iteratee[2];
  10806. (0, outer.extendObservable)(self.props.options, set({}, camelKey, value));
  10807. }
  10808. } catch (textAlt) {
  10809. /** @type {boolean} */
  10810. _ = true;
  10811. text = textAlt;
  10812. } finally {
  10813. try {
  10814. if (!foundHelper) {
  10815. if (c.return) {
  10816. c.return();
  10817. }
  10818. }
  10819. } finally {
  10820. if (_) {
  10821. throw text;
  10822. }
  10823. }
  10824. }
  10825. /** @type {boolean} */
  10826. var afterAnimationCallback = true;
  10827. /** @type {boolean} */
  10828. var j = false;
  10829. var type = void 0;
  10830. try {
  10831. var result;
  10832. var stream = self.sliders[Symbol.iterator]();
  10833. for (;!(afterAnimationCallback = (result = stream.next()).done);afterAnimationCallback = true) {
  10834. var suiteView;
  10835. var changes = when(result.value, 5);
  10836. camelKey = (changes[0], changes[1]);
  10837. value = changes[2];
  10838. var key = changes[3];
  10839. var val = changes[4];
  10840. (0, outer.extendObservable)(self.props.options, (suiteView = {}, set(suiteView, camelKey, value), set(suiteView, key, val), suiteView));
  10841. }
  10842. } catch (fx) {
  10843. /** @type {boolean} */
  10844. j = true;
  10845. type = fx;
  10846. } finally {
  10847. try {
  10848. if (!afterAnimationCallback) {
  10849. if (stream.return) {
  10850. stream.return();
  10851. }
  10852. }
  10853. } finally {
  10854. if (j) {
  10855. throw type;
  10856. }
  10857. }
  10858. }
  10859. /** @type {Array} */
  10860. var iterator = [["uiFgColor", ".ui-panel", "color"], ["uiBgColor", ".ui-panel", "backgroundColor"], ["notifyFgColor", ".chat-notify-container .notify-item", "color"], ["notifyBgColor", ".chat-notify-container .notify-item", "backgroundColor"]];
  10861. /** @type {boolean} */
  10862. var done = true;
  10863. /** @type {boolean} */
  10864. var Y = false;
  10865. var error = void 0;
  10866. try {
  10867. var actual;
  10868. /**
  10869. * @return {undefined}
  10870. */
  10871. var setup = function() {
  10872. var result = when(actual.value, 3);
  10873. var tail = result[0];
  10874. var id = result[1];
  10875. var vendorProp = result[2];
  10876. /** @type {boolean} */
  10877. var callback2 = true;
  10878. /** @type {boolean} */
  10879. var s = false;
  10880. var _clockseq = void 0;
  10881. try {
  10882. var left;
  10883. var self = document.styleSheets[Symbol.iterator]();
  10884. for (;!(callback2 = (left = self.next()).done);callback2 = true) {
  10885. var a = left.value;
  10886. if (!a.href) {
  10887. /** @type {boolean} */
  10888. var _ref1 = true;
  10889. /** @type {boolean} */
  10890. var h = false;
  10891. var bulk = void 0;
  10892. try {
  10893. var token;
  10894. /**
  10895. * @return {undefined}
  10896. */
  10897. var init = function() {
  10898. var element = token.value;
  10899. if (element.selectorText == id) {
  10900. (0, outer.observe)(self.props.options, tail, function(event) {
  10901. var value = event.newValue;
  10902. var r = (0, property.hexToColor)(value.color);
  10903. /** @type {string} */
  10904. element.style[vendorProp] = "rgba(" + r[0] + ", " + r[1] + ", " + r[2] + ", " + value.alpha / 100 + ")";
  10905. }, true);
  10906. }
  10907. };
  10908. var tree = a.cssRules[Symbol.iterator]();
  10909. for (;!(_ref1 = (token = tree.next()).done);_ref1 = true) {
  10910. init();
  10911. }
  10912. } catch (fn) {
  10913. /** @type {boolean} */
  10914. h = true;
  10915. bulk = fn;
  10916. } finally {
  10917. try {
  10918. if (!_ref1) {
  10919. if (tree.return) {
  10920. tree.return();
  10921. }
  10922. }
  10923. } finally {
  10924. if (h) {
  10925. throw bulk;
  10926. }
  10927. }
  10928. }
  10929. }
  10930. }
  10931. } catch (clockseq) {
  10932. /** @type {boolean} */
  10933. s = true;
  10934. _clockseq = clockseq;
  10935. } finally {
  10936. try {
  10937. if (!callback2) {
  10938. if (self.return) {
  10939. self.return();
  10940. }
  10941. }
  10942. } finally {
  10943. if (s) {
  10944. throw _clockseq;
  10945. }
  10946. }
  10947. }
  10948. };
  10949. var i = iterator[Symbol.iterator]();
  10950. for (;!(done = (actual = i.next()).done);done = true) {
  10951. setup();
  10952. }
  10953. } catch (err) {
  10954. /** @type {boolean} */
  10955. Y = true;
  10956. error = err;
  10957. } finally {
  10958. try {
  10959. if (!done) {
  10960. if (i.return) {
  10961. i.return();
  10962. }
  10963. }
  10964. } finally {
  10965. if (Y) {
  10966. throw error;
  10967. }
  10968. }
  10969. }
  10970. return Object.assign(self.props.options, JSON.parse(window.localStorage.getItem("options") || "{}")), window.addEventListener("beforeunload", function() {
  10971. return window.localStorage.setItem("options", JSON.stringify(self.props.options));
  10972. }), window.addEventListener("keydown", self.handleKeyDown.bind(self)), self;
  10973. }
  10974. return create(init, options), make(init, [{
  10975. key : "handleKeyDown",
  10976. /**
  10977. * @param {number} object
  10978. * @return {undefined}
  10979. */
  10980. value : function(object) {
  10981. if ("INPUT" != document.activeElement.tagName && (!object.ctrlKey && !object.altKey)) {
  10982. var cacheKey = 1 == object.key.length ? object.key.toLowerCase() : object.key;
  10983. var cached = this.props.keysInv.get(cacheKey);
  10984. if (cached) {
  10985. /** @type {boolean} */
  10986. var callback2 = true;
  10987. /** @type {boolean} */
  10988. var i = false;
  10989. var bulk = void 0;
  10990. try {
  10991. var _ref;
  10992. var self = cached[Symbol.iterator]();
  10993. for (;!(callback2 = (_ref = self.next()).done);callback2 = true) {
  10994. var color = _ref.value;
  10995. switch(color) {
  10996. case "hideFood":
  10997. /** @type {boolean} */
  10998. this.props.options.hideFood = !this.props.options.hideFood;
  10999. break;
  11000. case "hideSkins":
  11001. /** @type {boolean} */
  11002. this.props.options.hideSkins = !this.props.options.hideSkins;
  11003. break;
  11004. case "hideEnemySkins":
  11005. /** @type {boolean} */
  11006. this.props.options.hideEnemySkins = !this.props.options.hideEnemySkins;
  11007. break;
  11008. case "hideNames":
  11009. /** @type {boolean} */
  11010. this.props.options.hideNames = !this.props.options.hideNames;
  11011. break;
  11012. case "hideChat":
  11013. /** @type {boolean} */
  11014. this.props.options.hideChat = !this.props.options.hideChat;
  11015. break;
  11016. case "changeColor":
  11017. /** @type {Array} */
  11018. var value = [255, 7, 256 * Math.random() >> 0];
  11019. value.sort(function() {
  11020. return 0.5 - Math.random();
  11021. });
  11022. this.props.options.selfColor = {
  11023. color : property.colorToHex.apply(void 0, value),
  11024. alpha : 100
  11025. };
  11026. }
  11027. }
  11028. } catch (fn) {
  11029. /** @type {boolean} */
  11030. i = true;
  11031. bulk = fn;
  11032. } finally {
  11033. try {
  11034. if (!callback2) {
  11035. if (self.return) {
  11036. self.return();
  11037. }
  11038. }
  11039. } finally {
  11040. if (i) {
  11041. throw bulk;
  11042. }
  11043. }
  11044. }
  11045. }
  11046. }
  11047. }
  11048. }, {
  11049. key : "render",
  11050. /**
  11051. * @return {?}
  11052. */
  11053. value : function() {
  11054. var self = this;
  11055. return opts.default.createElement("div", {
  11056. className : "options"
  11057. }, self.colors.map(function(pair) {
  11058. return opts.default.createElement("div", {
  11059. className : "option"
  11060. }, opts.default.createElement(obj.default, {
  11061. color : self.props.options[pair[1]].color,
  11062. alpha : self.props.options[pair[1]].alpha,
  11063. /**
  11064. * @param {string} thumb
  11065. * @return {?}
  11066. */
  11067. onChange : function(thumb) {
  11068. return self.props.options[pair[1]] = thumb;
  11069. }
  11070. }), opts.default.createElement("span", null, pair[0]));
  11071. }), self.checkboxes.map(function(pair) {
  11072. return opts.default.createElement("div", {
  11073. className : "option"
  11074. }, opts.default.createElement("input", {
  11075. type : "checkbox",
  11076. checked : self.props.options[pair[1]],
  11077. /**
  11078. * @param {Event} e
  11079. * @return {?}
  11080. */
  11081. onChange : function(e) {
  11082. return self.props.options[pair[1]] = e.target.checked;
  11083. }
  11084. }), opts.default.createElement("span", null, pair[0]));
  11085. }), self.sliders.map(function(pair) {
  11086. return opts.default.createElement("div", {
  11087. className : "option"
  11088. }, opts.default.createElement("input", {
  11089. type : "checkbox",
  11090. checked : self.props.options[pair[1]],
  11091. /**
  11092. * @param {Event} e
  11093. * @return {?}
  11094. */
  11095. onChange : function(e) {
  11096. return self.props.options[pair[1]] = e.target.checked;
  11097. }
  11098. }), opts.default.createElement("span", null, pair[0]), opts.default.createElement(opt.default, {
  11099. defaultValue : self.props.options[pair[3]],
  11100. max : pair[5],
  11101. tipFormatter : pair[6],
  11102. /**
  11103. * @param {string} thumb
  11104. * @return {?}
  11105. */
  11106. onChange : function(thumb) {
  11107. return self.props.options[pair[3]] = thumb;
  11108. }
  11109. }));
  11110. }));
  11111. }
  11112. }]), init;
  11113. }(opts.default.PureComponent)) || dep) || dep);
  11114. object.default = prototype;
  11115. }, function(dataAndEvents, object, require) {
  11116. /**
  11117. * @param {string} type
  11118. * @return {?}
  11119. */
  11120. function getOptions(type) {
  11121. return type && type.__esModule ? type : {
  11122. default : type
  11123. };
  11124. }
  11125. /**
  11126. * @param {?} dataAndEvents
  11127. * @param {Function} right
  11128. * @return {undefined}
  11129. */
  11130. function fn(dataAndEvents, right) {
  11131. if (!(dataAndEvents instanceof right)) {
  11132. throw new TypeError("Cannot call a class as a function");
  11133. }
  11134. }
  11135. /**
  11136. * @param {string} dataAndEvents
  11137. * @param {?} deepDataAndEvents
  11138. * @return {?}
  11139. */
  11140. function clone(dataAndEvents, deepDataAndEvents) {
  11141. if (!dataAndEvents) {
  11142. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  11143. }
  11144. return!deepDataAndEvents || "object" != typeof deepDataAndEvents && "function" != typeof deepDataAndEvents ? dataAndEvents : deepDataAndEvents;
  11145. }
  11146. /**
  11147. * @param {Object} m
  11148. * @param {Object} b
  11149. * @return {undefined}
  11150. */
  11151. function create(m, b) {
  11152. if ("function" != typeof b && null !== b) {
  11153. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  11154. }
  11155. /** @type {Object} */
  11156. m.prototype = Object.create(b && b.prototype, {
  11157. constructor : {
  11158. value : m,
  11159. enumerable : false,
  11160. writable : true,
  11161. configurable : true
  11162. }
  11163. });
  11164. if (b) {
  11165. if (Object.setPrototypeOf) {
  11166. Object.setPrototypeOf(m, b);
  11167. } else {
  11168. /** @type {Object} */
  11169. m.__proto__ = b;
  11170. }
  11171. }
  11172. }
  11173. Object.defineProperty(object, "__esModule", {
  11174. value : true
  11175. });
  11176. object.default = void 0;
  11177. var throttledUpdate;
  11178. var dep;
  11179. var lookupIterator = function() {
  11180. /**
  11181. * @param {Function} object
  11182. * @param {Array} d
  11183. * @return {undefined}
  11184. */
  11185. function defineProperty(object, d) {
  11186. /** @type {number} */
  11187. var i = 0;
  11188. for (;i < d.length;i++) {
  11189. var desc = d[i];
  11190. desc.enumerable = desc.enumerable || false;
  11191. /** @type {boolean} */
  11192. desc.configurable = true;
  11193. if ("value" in desc) {
  11194. /** @type {boolean} */
  11195. desc.writable = true;
  11196. }
  11197. Object.defineProperty(object, desc.key, desc);
  11198. }
  11199. }
  11200. return function(x, current, a) {
  11201. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  11202. };
  11203. }();
  11204. var helper = require(0);
  11205. var opts = getOptions(helper);
  11206. var element = require(1);
  11207. var file = require(9);
  11208. var obj = getOptions(file);
  11209. var prototype = (throttledUpdate = (0, element.inject)("main"), throttledUpdate(dep = (0, element.observer)(dep = function(properties) {
  11210. /**
  11211. * @return {?}
  11212. */
  11213. function value() {
  11214. return fn(this, value), clone(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  11215. }
  11216. return create(value, properties), lookupIterator(value, [{
  11217. key : "handleClick",
  11218. /**
  11219. * @return {undefined}
  11220. */
  11221. value : function() {
  11222. (0, obj.default)(this.refs.contents.textContent);
  11223. }
  11224. }, {
  11225. key : "render",
  11226. /**
  11227. * @return {?}
  11228. */
  11229. value : function() {
  11230. return this.props.main.party.length ? opts.default.createElement("div", {
  11231. className : "party ui-panel",
  11232. onClick : this.handleClick.bind(this)
  11233. }, opts.default.createElement("table", {
  11234. className : "party-contents",
  11235. ref : "contents"
  11236. }, opts.default.createElement("tbody", null, this.props.main.party.map(function(d, dataAndEvents) {
  11237. return opts.default.createElement("tr", {
  11238. style : {
  11239. color : d.color
  11240. }
  11241. }, opts.default.createElement("td", null, dataAndEvents + 1, ". ", d.name, "\u00a0"), opts.default.createElement("td", null, d.mass, " ", "\n"));
  11242. }), opts.default.createElement("tr", {
  11243. className : "party-summary"
  11244. }, opts.default.createElement("td", null, "-\u00a0"), opts.default.createElement("td", null, this.props.main.party.reduce(function(sum, e) {
  11245. return sum + e.mass;
  11246. }, 0), " ", "\n"))))) : null;
  11247. }
  11248. }]), value;
  11249. }(opts.default.PureComponent)) || dep) || dep);
  11250. object.default = prototype;
  11251. }, function(dataAndEvents, object, require) {
  11252. /**
  11253. * @param {string} url
  11254. * @return {?}
  11255. */
  11256. function parse(url) {
  11257. return url && url.__esModule ? url : {
  11258. default : url
  11259. };
  11260. }
  11261. /**
  11262. * @param {Function} matcherFunction
  11263. * @return {?}
  11264. */
  11265. function compose(matcherFunction) {
  11266. return function() {
  11267. var a = matcherFunction.apply(this, arguments);
  11268. return new Promise(function(isNumber, fire) {
  11269. /**
  11270. * @param {string} action
  11271. * @param {?} elem
  11272. * @return {?}
  11273. */
  11274. function next(action, elem) {
  11275. try {
  11276. var q = a[action](elem);
  11277. var val = q.value;
  11278. } catch (memory) {
  11279. return void fire(memory);
  11280. }
  11281. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  11282. next("next", arg);
  11283. }, function(arg) {
  11284. next("throw", arg);
  11285. });
  11286. }
  11287. return next("next");
  11288. });
  11289. };
  11290. }
  11291. /**
  11292. * @param {?} dataAndEvents
  11293. * @param {Function} right
  11294. * @return {undefined}
  11295. */
  11296. function fn(dataAndEvents, right) {
  11297. if (!(dataAndEvents instanceof right)) {
  11298. throw new TypeError("Cannot call a class as a function");
  11299. }
  11300. }
  11301. /**
  11302. * @param {string} dataAndEvents
  11303. * @param {?} object
  11304. * @return {?}
  11305. */
  11306. function traverse(dataAndEvents, object) {
  11307. if (!dataAndEvents) {
  11308. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  11309. }
  11310. return!object || "object" != typeof object && "function" != typeof object ? dataAndEvents : object;
  11311. }
  11312. /**
  11313. * @param {Object} self
  11314. * @param {Object} b
  11315. * @return {undefined}
  11316. */
  11317. function wrap(self, b) {
  11318. if ("function" != typeof b && null !== b) {
  11319. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  11320. }
  11321. /** @type {Object} */
  11322. self.prototype = Object.create(b && b.prototype, {
  11323. constructor : {
  11324. value : self,
  11325. enumerable : false,
  11326. writable : true,
  11327. configurable : true
  11328. }
  11329. });
  11330. if (b) {
  11331. if (Object.setPrototypeOf) {
  11332. Object.setPrototypeOf(self, b);
  11333. } else {
  11334. /** @type {Object} */
  11335. self.__proto__ = b;
  11336. }
  11337. }
  11338. }
  11339. /**
  11340. * @param {number} bytes
  11341. * @return {?}
  11342. */
  11343. function prettySize(bytes) {
  11344. /** @type {Array} */
  11345. var sizes = ["Bytes", "KB", "MB", "GB", "TB"];
  11346. /** @type {number} */
  11347. var i = Math.floor(Math.log(bytes) / Math.log(1024));
  11348. return(Math.round(bytes / Math.pow(1024, i) * 100) / 100).toFixed(2) + " " + sizes[i];
  11349. }
  11350. /**
  11351. * @param {number} year
  11352. * @return {?}
  11353. */
  11354. function formatDate(year) {
  11355. /** @type {Date} */
  11356. var d = new Date(year);
  11357. return Math.trunc(year / 60 / 60 / 1E3) + ":" + (("0" + d.getMinutes()).slice(-2) + ":") + (("0" + d.getSeconds()).slice(-2) + ":") + ("" + ("00" + d.getMilliseconds()).slice(-3));
  11358. }
  11359. Object.defineProperty(object, "__esModule", {
  11360. value : true
  11361. });
  11362. object.default = void 0;
  11363. var throttledUpdate;
  11364. var dep;
  11365. var lookupIterator = function() {
  11366. /**
  11367. * @param {Function} object
  11368. * @param {?} d
  11369. * @return {undefined}
  11370. */
  11371. function defineProperty(object, d) {
  11372. /** @type {number} */
  11373. var i = 0;
  11374. for (;i < d.length;i++) {
  11375. var desc = d[i];
  11376. desc.enumerable = desc.enumerable || false;
  11377. /** @type {boolean} */
  11378. desc.configurable = true;
  11379. if ("value" in desc) {
  11380. /** @type {boolean} */
  11381. desc.writable = true;
  11382. }
  11383. Object.defineProperty(object, desc.key, desc);
  11384. }
  11385. }
  11386. return function(x, current, a) {
  11387. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  11388. };
  11389. }();
  11390. var dom = require(13);
  11391. var value = parse(dom);
  11392. var url = require(0);
  11393. var opts = parse(url);
  11394. var uri = require(14);
  11395. var obj = parse(uri);
  11396. var Block = require(2);
  11397. var element = require(1);
  11398. var src = require(43);
  11399. var out = parse(src);
  11400. var tagToInsert = function(_super) {
  11401. /**
  11402. * @return {?}
  11403. */
  11404. function value() {
  11405. return fn(this, value), traverse(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  11406. }
  11407. return wrap(value, _super), lookupIterator(value, [{
  11408. key : "render",
  11409. /**
  11410. * @return {?}
  11411. */
  11412. value : function() {
  11413. var scope;
  11414. return this.props.show ? (scope = this, opts.default.createElement("div", {
  11415. className : "popup-container"
  11416. }, opts.default.createElement("div", {
  11417. className : "popup ui-panel"
  11418. }, opts.default.createElement("div", {
  11419. className : "popup-title"
  11420. }, opts.default.createElement("span", null, "Import Files")), opts.default.createElement("div", {
  11421. className : "popup-text"
  11422. }, opts.default.createElement("input", {
  11423. ref : "input",
  11424. type : "file",
  11425. multiple : "multiple"
  11426. })), opts.default.createElement("div", {
  11427. className : "popup-input"
  11428. }, opts.default.createElement("button", {
  11429. className : "btn",
  11430. /**
  11431. * @return {?}
  11432. */
  11433. onClick : function() {
  11434. return scope.props.onResponse(scope.refs.input.files);
  11435. }
  11436. }, "OK"), opts.default.createElement("button", {
  11437. className : "btn",
  11438. /**
  11439. * @return {?}
  11440. */
  11441. onClick : function() {
  11442. return scope.props.onResponse([]);
  11443. }
  11444. }, "Cancel"))))) : null;
  11445. }
  11446. }]), value;
  11447. }(opts.default.PureComponent);
  11448. var fieldsString = function(_super) {
  11449. /**
  11450. * @return {?}
  11451. */
  11452. function value() {
  11453. return fn(this, value), traverse(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  11454. }
  11455. return wrap(value, _super), lookupIterator(value, [{
  11456. key : "render",
  11457. /**
  11458. * @return {?}
  11459. */
  11460. value : function() {
  11461. var me;
  11462. return null != this.props.name ? (me = this, opts.default.createElement("div", {
  11463. className : "popup-container"
  11464. }, opts.default.createElement("div", {
  11465. className : "popup ui-panel"
  11466. }, opts.default.createElement("div", {
  11467. className : "popup-title"
  11468. }, opts.default.createElement("span", null, "Delete File")), opts.default.createElement("div", {
  11469. className : "popup-text"
  11470. }, "Are you sure you want to delete ", opts.default.createElement("span", {
  11471. className : "name"
  11472. }, this.props.name), "?"), opts.default.createElement("div", {
  11473. className : "popup-input"
  11474. }, opts.default.createElement("button", {
  11475. className : "btn",
  11476. /**
  11477. * @return {?}
  11478. */
  11479. onClick : function() {
  11480. return me.props.onResponse(true);
  11481. }
  11482. }, "Yes"), opts.default.createElement("button", {
  11483. className : "btn",
  11484. /**
  11485. * @return {?}
  11486. */
  11487. onClick : function() {
  11488. return me.props.onResponse(false);
  11489. }
  11490. }, "No"))))) : null;
  11491. }
  11492. }]), value;
  11493. }(opts.default.PureComponent);
  11494. var prototype = (throttledUpdate = (0, element.inject)("recordings"), throttledUpdate(dep = (0, element.observer)(dep = function(_super) {
  11495. /**
  11496. * @param {?} newVal
  11497. * @return {?}
  11498. */
  11499. function value(newVal) {
  11500. fn(this, value);
  11501. var me = traverse(this, (value.__proto__ || Object.getPrototypeOf(value)).call(this, newVal));
  11502. return(0, Block.extendObservable)(me.props.recordings, {
  11503. state : "",
  11504. time : 0,
  11505. minTime : 0,
  11506. maxTime : 0,
  11507. selected : null,
  11508. upload : false,
  11509. delete : null,
  11510. recordings : []
  11511. }), me.load(), me;
  11512. }
  11513. return wrap(value, _super), lookupIterator(value, [{
  11514. key : "load",
  11515. value : function() {
  11516. /**
  11517. * @return {?}
  11518. */
  11519. function view() {
  11520. return matcherFunction.apply(this, arguments);
  11521. }
  11522. var matcherFunction = compose(regeneratorRuntime.mark(function next() {
  11523. var callback2;
  11524. var n;
  11525. var t1;
  11526. var tree;
  11527. var elem;
  11528. var e;
  11529. var is;
  11530. return regeneratorRuntime.wrap(function(self) {
  11531. for (;;) {
  11532. switch(self.prev = self.next) {
  11533. case 0:
  11534. return this.props.recordings.state = "busy", this.props.recordings.recordings = [], callback2 = true, n = false, t1 = void 0, self.prev = 5, self.next = 8, this.props.recorder.db.files.toArray();
  11535. case 8:
  11536. self.t0 = Symbol.iterator;
  11537. tree = self.sent[self.t0]();
  11538. case 10:
  11539. if (callback2 = (elem = tree.next()).done) {
  11540. /** @type {number} */
  11541. self.next = 21;
  11542. break;
  11543. }
  11544. return e = elem.value, self.next = 14, this.props.recorder.startIndex(e.name);
  11545. case 14:
  11546. return self.next = 16, this.props.recorder.db.indexes.where("name").equals(e.name).sortBy("offset");
  11547. case 16:
  11548. is = self.sent;
  11549. this.props.recordings.recordings.push({
  11550. name : e.name,
  11551. data : e.data,
  11552. duration : is[is.length - 1].time - is[0].time
  11553. });
  11554. case 18:
  11555. /** @type {boolean} */
  11556. callback2 = true;
  11557. /** @type {number} */
  11558. self.next = 10;
  11559. break;
  11560. case 21:
  11561. /** @type {number} */
  11562. self.next = 27;
  11563. break;
  11564. case 23:
  11565. /** @type {number} */
  11566. self.prev = 23;
  11567. self.t1 = self.catch(5);
  11568. /** @type {boolean} */
  11569. n = true;
  11570. t1 = self.t1;
  11571. case 27:
  11572. /** @type {number} */
  11573. self.prev = 27;
  11574. /** @type {number} */
  11575. self.prev = 28;
  11576. if (!callback2) {
  11577. if (tree.return) {
  11578. tree.return();
  11579. }
  11580. }
  11581. ;
  11582. case 30:
  11583. if (self.prev = 30, !n) {
  11584. /** @type {number} */
  11585. self.next = 33;
  11586. break;
  11587. }
  11588. throw t1;;
  11589. case 33:
  11590. return self.finish(30);
  11591. case 34:
  11592. return self.finish(27);
  11593. case 35:
  11594. /** @type {string} */
  11595. this.props.recordings.state = "";
  11596. case 36:
  11597. ;
  11598. case "end":
  11599. return self.stop();
  11600. }
  11601. }
  11602. }, next, this, [[5, 23, 27, 35], [28, , 30, 34]]);
  11603. }));
  11604. return view;
  11605. }()
  11606. }, {
  11607. key : "stop",
  11608. value : function() {
  11609. /**
  11610. * @return {?}
  11611. */
  11612. function view() {
  11613. return matcherFunction.apply(this, arguments);
  11614. }
  11615. var matcherFunction = compose(regeneratorRuntime.mark(function initialize() {
  11616. var busy;
  11617. return regeneratorRuntime.wrap(function(current) {
  11618. for (;;) {
  11619. switch(current.prev = current.next) {
  11620. case 0:
  11621. return this.props.recordings.state = "busy", busy = !!this.props.recorder.writer, current.next = 4, this.props.recorder.stop();
  11622. case 4:
  11623. if (!busy) {
  11624. /** @type {number} */
  11625. current.next = 7;
  11626. break;
  11627. }
  11628. return current.next = 7, this.load();
  11629. case 7:
  11630. /** @type {string} */
  11631. this.props.recordings.state = "";
  11632. case 8:
  11633. ;
  11634. case "end":
  11635. return current.stop();
  11636. }
  11637. }
  11638. }, initialize, this);
  11639. }));
  11640. return view;
  11641. }()
  11642. }, {
  11643. key : "handleRecord",
  11644. /**
  11645. * @return {undefined}
  11646. */
  11647. value : function() {
  11648. /** @type {string} */
  11649. this.props.recordings.state = "record";
  11650. this.props.recorder.startRecord();
  11651. }
  11652. }, {
  11653. key : "handlePlayback",
  11654. value : function() {
  11655. /**
  11656. * @return {?}
  11657. */
  11658. function view() {
  11659. return matcherFunction.apply(this, arguments);
  11660. }
  11661. var matcherFunction = compose(regeneratorRuntime.mark(function end() {
  11662. var me = this;
  11663. return regeneratorRuntime.wrap(function(current) {
  11664. for (;;) {
  11665. switch(current.prev = current.next) {
  11666. case 0:
  11667. return this.props.recordings.state = "playback", current.next = 3, this.props.recorder.startPlayback(this.props.recordings.selected, this.props.recordings.time, function(time) {
  11668. if (time - me.props.recordings.time > 200) {
  11669. /** @type {number} */
  11670. me.props.recordings.time = time;
  11671. }
  11672. });
  11673. case 3:
  11674. /** @type {string} */
  11675. this.props.recordings.state = "";
  11676. case 4:
  11677. ;
  11678. case "end":
  11679. return current.stop();
  11680. }
  11681. }
  11682. }, end, this);
  11683. }));
  11684. return view;
  11685. }()
  11686. }, {
  11687. key : "handleSelect",
  11688. value : function() {
  11689. /**
  11690. * @param {?} event
  11691. * @return {?}
  11692. */
  11693. function f2(event) {
  11694. return matcherFunction.apply(this, arguments);
  11695. }
  11696. var matcherFunction = compose(regeneratorRuntime.mark(function end(index) {
  11697. var is;
  11698. return regeneratorRuntime.wrap(function(self) {
  11699. for (;;) {
  11700. switch(self.prev = self.next) {
  11701. case 0:
  11702. return self.next = 2, this.stop();
  11703. case 2:
  11704. return this.props.recordings.selected = index, self.next = 5, this.props.recorder.db.indexes.where("name").equals(this.props.recordings.selected).sortBy("offset");
  11705. case 5:
  11706. is = self.sent;
  11707. this.props.recordings.time = is[0].time;
  11708. this.props.recordings.minTime = is[0].time;
  11709. this.props.recordings.maxTime = is[is.length - 1].time;
  11710. case 9:
  11711. ;
  11712. case "end":
  11713. return self.stop();
  11714. }
  11715. }
  11716. }, end, this);
  11717. }));
  11718. return f2;
  11719. }()
  11720. }, {
  11721. key : "handleUpload",
  11722. value : function() {
  11723. /**
  11724. * @param {?} event
  11725. * @return {?}
  11726. */
  11727. function f2(event) {
  11728. return matcherFunction.apply(this, arguments);
  11729. }
  11730. var matcherFunction = compose(regeneratorRuntime.mark(function initialize(contentHTML) {
  11731. var callback2;
  11732. var r;
  11733. var t0;
  11734. var tree;
  11735. var valueElm;
  11736. var value;
  11737. return regeneratorRuntime.wrap(function(self) {
  11738. for (;;) {
  11739. switch(self.prev = self.next) {
  11740. case 0:
  11741. /** @type {boolean} */
  11742. callback2 = true;
  11743. /** @type {boolean} */
  11744. r = false;
  11745. t0 = void 0;
  11746. /** @type {number} */
  11747. self.prev = 3;
  11748. tree = contentHTML[Symbol.iterator]();
  11749. case 5:
  11750. if (callback2 = (valueElm = tree.next()).done) {
  11751. /** @type {number} */
  11752. self.next = 14;
  11753. break;
  11754. }
  11755. return value = valueElm.value, self.next = 9, this.props.recorder.add(value.name, value);
  11756. case 9:
  11757. return self.next = 11, this.load();
  11758. case 11:
  11759. /** @type {boolean} */
  11760. callback2 = true;
  11761. /** @type {number} */
  11762. self.next = 5;
  11763. break;
  11764. case 14:
  11765. /** @type {number} */
  11766. self.next = 20;
  11767. break;
  11768. case 16:
  11769. /** @type {number} */
  11770. self.prev = 16;
  11771. self.t0 = self.catch(3);
  11772. /** @type {boolean} */
  11773. r = true;
  11774. t0 = self.t0;
  11775. case 20:
  11776. /** @type {number} */
  11777. self.prev = 20;
  11778. /** @type {number} */
  11779. self.prev = 21;
  11780. if (!callback2) {
  11781. if (tree.return) {
  11782. tree.return();
  11783. }
  11784. }
  11785. ;
  11786. case 23:
  11787. if (self.prev = 23, !r) {
  11788. /** @type {number} */
  11789. self.next = 26;
  11790. break;
  11791. }
  11792. throw t0;;
  11793. case 26:
  11794. return self.finish(23);
  11795. case 27:
  11796. return self.finish(20);
  11797. case 28:
  11798. /** @type {boolean} */
  11799. this.props.recordings.upload = false;
  11800. case 29:
  11801. ;
  11802. case "end":
  11803. return self.stop();
  11804. }
  11805. }
  11806. }, initialize, this, [[3, 16, 20, 28], [21, , 23, 27]]);
  11807. }));
  11808. return f2;
  11809. }()
  11810. }, {
  11811. key : "handleDelete",
  11812. value : function() {
  11813. /**
  11814. * @param {?} event
  11815. * @return {?}
  11816. */
  11817. function f2(event) {
  11818. return matcherFunction.apply(this, arguments);
  11819. }
  11820. var matcherFunction = compose(regeneratorRuntime.mark(function initialize(contentHTML) {
  11821. return regeneratorRuntime.wrap(function(current) {
  11822. for (;;) {
  11823. switch(current.prev = current.next) {
  11824. case 0:
  11825. if (!contentHTML) {
  11826. /** @type {number} */
  11827. current.next = 5;
  11828. break;
  11829. }
  11830. return current.next = 3, this.props.recorder.delete(this.props.recordings.delete);
  11831. case 3:
  11832. return current.next = 5, this.load();
  11833. case 5:
  11834. /** @type {null} */
  11835. this.props.recordings.delete = null;
  11836. this.refs.tbody.focus();
  11837. case 7:
  11838. ;
  11839. case "end":
  11840. return current.stop();
  11841. }
  11842. }
  11843. }, initialize, this);
  11844. }));
  11845. return f2;
  11846. }()
  11847. }, {
  11848. key : "handleKeyDown",
  11849. value : function() {
  11850. /**
  11851. * @param {?} event
  11852. * @return {?}
  11853. */
  11854. function f2(event) {
  11855. return matcherFunction.apply(this, arguments);
  11856. }
  11857. var matcherFunction = compose(regeneratorRuntime.mark(function end(index) {
  11858. return regeneratorRuntime.wrap(function(current) {
  11859. for (;;) {
  11860. switch(current.prev = current.next) {
  11861. case 0:
  11862. if ("Delete" == index.key) {
  11863. this.props.recordings.delete = this.props.recordings.selected;
  11864. }
  11865. ;
  11866. case 1:
  11867. ;
  11868. case "end":
  11869. return current.stop();
  11870. }
  11871. }
  11872. }, end, this);
  11873. }));
  11874. return f2;
  11875. }()
  11876. }, {
  11877. key : "render",
  11878. /**
  11879. * @return {?}
  11880. */
  11881. value : function() {
  11882. var me;
  11883. var self = this;
  11884. return me = this, opts.default.createElement("div", {
  11885. className : "recordings"
  11886. }, opts.default.createElement("div", {
  11887. className : "player"
  11888. }, opts.default.createElement("div", {
  11889. className : (0, value.default)("record", {
  11890. inactive : ["playback", "busy"].includes(self.props.recordings.state)
  11891. })
  11892. }, "record" != self.props.recordings.state && opts.default.createElement("i", {
  11893. className : "fa fa-circle",
  11894. onClick : self.handleRecord.bind(self)
  11895. }), "record" == self.props.recordings.state && opts.default.createElement("i", {
  11896. className : "fa fa-stop",
  11897. onClick : self.stop.bind(self)
  11898. })), opts.default.createElement("div", {
  11899. className : (0, value.default)("playback", {
  11900. inactive : ["record", "busy"].includes(self.props.recordings.state) || !this.props.recordings.selected
  11901. })
  11902. }, "playback" != self.props.recordings.state && opts.default.createElement("i", {
  11903. className : "fa fa-play",
  11904. onClick : self.handlePlayback.bind(self)
  11905. }), "playback" == self.props.recordings.state && opts.default.createElement("i", {
  11906. className : "fa fa-pause",
  11907. onClick : self.stop.bind(self)
  11908. }), opts.default.createElement(obj.default, {
  11909. value : self.props.recordings.time,
  11910. min : self.props.recordings.minTime,
  11911. max : self.props.recordings.maxTime,
  11912. /**
  11913. * @return {?}
  11914. */
  11915. tipFormatter : function() {
  11916. return formatDate(me.props.recordings.time - me.props.recordings.minTime);
  11917. },
  11918. /**
  11919. * @param {?} time
  11920. * @return {?}
  11921. */
  11922. onChange : function(time) {
  11923. return self.props.recordings.time = time;
  11924. }
  11925. }))), opts.default.createElement("table", {
  11926. className : "picker-table"
  11927. }, opts.default.createElement("thead", null, opts.default.createElement("tr", null, opts.default.createElement("th", {
  11928. className : "recordings-table-name"
  11929. }, opts.default.createElement("span", null, "Name")), opts.default.createElement("th", {
  11930. className : "recordings-table-size"
  11931. }, opts.default.createElement("span", null, "Size")), opts.default.createElement("th", {
  11932. className : "recordings-table-duration"
  11933. }, opts.default.createElement("span", null, "Duration")), opts.default.createElement("th", {
  11934. className : "recordings-table-download"
  11935. }, opts.default.createElement("i", {
  11936. className : "fa fa-download",
  11937. /**
  11938. * @return {?}
  11939. */
  11940. onClick : function() {
  11941. return(0, out.default)(self.props.recordings.recordings);
  11942. }
  11943. })), opts.default.createElement("th", {
  11944. className : "recordings-table-upload"
  11945. }, opts.default.createElement("i", {
  11946. className : "fa fa-upload",
  11947. /**
  11948. * @return {?}
  11949. */
  11950. onClick : function() {
  11951. return self.props.recordings.upload = true;
  11952. }
  11953. })))), opts.default.createElement("tbody", {
  11954. ref : "tbody",
  11955. tabIndex : "0",
  11956. onKeyDown : self.handleKeyDown.bind(self)
  11957. }, self.props.recordings.recordings.map(function(event) {
  11958. return opts.default.createElement("tr", {
  11959. className : (0, value.default)({
  11960. "picker-selected" : self.props.recordings.selected == event.name
  11961. }),
  11962. /**
  11963. * @return {?}
  11964. */
  11965. onMouseDown : function() {
  11966. return self.handleSelect(event.name);
  11967. }
  11968. }, opts.default.createElement("td", {
  11969. className : "recordings-table-name"
  11970. }, event.name), opts.default.createElement("td", {
  11971. className : "recordings-table-size"
  11972. }, prettySize(event.data.size)), opts.default.createElement("td", {
  11973. className : "recordings-table-duration"
  11974. }, formatDate(event.duration).slice(0, -4)), opts.default.createElement("td", {
  11975. className : "recordings-table-download"
  11976. }, opts.default.createElement("a", {
  11977. href : window.URL.createObjectURL(event.data),
  11978. download : event.name
  11979. }, opts.default.createElement("i", {
  11980. className : "fa fa-download"
  11981. }))));
  11982. }))), opts.default.createElement(tagToInsert, {
  11983. show : self.props.recordings.upload,
  11984. onResponse : self.handleUpload.bind(self)
  11985. }), opts.default.createElement(fieldsString, {
  11986. name : self.props.recordings.delete,
  11987. onResponse : self.handleDelete.bind(self)
  11988. }));
  11989. }
  11990. }]), value;
  11991. }(opts.default.PureComponent)) || dep) || dep);
  11992. object.default = prototype;
  11993. }, function(dataAndEvents, object, require) {
  11994. /**
  11995. * @param {string} type
  11996. * @return {?}
  11997. */
  11998. function getOptions(type) {
  11999. return type && type.__esModule ? type : {
  12000. default : type
  12001. };
  12002. }
  12003. /**
  12004. * @param {?} dataAndEvents
  12005. * @param {Function} var_args
  12006. * @return {undefined}
  12007. */
  12008. function callback(dataAndEvents, var_args) {
  12009. if (!(dataAndEvents instanceof var_args)) {
  12010. throw new TypeError("Cannot call a class as a function");
  12011. }
  12012. }
  12013. /**
  12014. * @param {string} dataAndEvents
  12015. * @param {?} b
  12016. * @return {?}
  12017. */
  12018. function func(dataAndEvents, b) {
  12019. if (!dataAndEvents) {
  12020. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  12021. }
  12022. return!b || "object" != typeof b && "function" != typeof b ? dataAndEvents : b;
  12023. }
  12024. /**
  12025. * @param {Object} self
  12026. * @param {Object} b
  12027. * @return {undefined}
  12028. */
  12029. function create(self, b) {
  12030. if ("function" != typeof b && null !== b) {
  12031. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  12032. }
  12033. /** @type {Object} */
  12034. self.prototype = Object.create(b && b.prototype, {
  12035. constructor : {
  12036. value : self,
  12037. enumerable : false,
  12038. writable : true,
  12039. configurable : true
  12040. }
  12041. });
  12042. if (b) {
  12043. if (Object.setPrototypeOf) {
  12044. Object.setPrototypeOf(self, b);
  12045. } else {
  12046. /** @type {Object} */
  12047. self.__proto__ = b;
  12048. }
  12049. }
  12050. }
  12051. Object.defineProperty(object, "__esModule", {
  12052. value : true
  12053. });
  12054. object.default = void 0;
  12055. var throttledUpdate;
  12056. var dep;
  12057. var isRegExp = function() {
  12058. /**
  12059. * @param {Function} object
  12060. * @param {?} d
  12061. * @return {undefined}
  12062. */
  12063. function defineProperty(object, d) {
  12064. /** @type {number} */
  12065. var i = 0;
  12066. for (;i < d.length;i++) {
  12067. var desc = d[i];
  12068. desc.enumerable = desc.enumerable || false;
  12069. /** @type {boolean} */
  12070. desc.configurable = true;
  12071. if ("value" in desc) {
  12072. /** @type {boolean} */
  12073. desc.writable = true;
  12074. }
  12075. Object.defineProperty(object, desc.key, desc);
  12076. }
  12077. }
  12078. return function(x, current, a) {
  12079. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  12080. };
  12081. }();
  12082. var file = require(13);
  12083. var obj = getOptions(file);
  12084. var helper = require(0);
  12085. var opts = getOptions(helper);
  12086. var Block = require(2);
  12087. var element = require(1);
  12088. var Tab = require(5);
  12089. var config = require(4);
  12090. var tagToInsert = function(properties) {
  12091. /**
  12092. * @return {?}
  12093. */
  12094. function value() {
  12095. return callback(this, value), func(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  12096. }
  12097. return create(value, properties), isRegExp(value, [{
  12098. key : "render",
  12099. /**
  12100. * @return {?}
  12101. */
  12102. value : function() {
  12103. var self;
  12104. var e = this;
  12105. return self = this, opts.default.createElement("table", {
  12106. className : "picker-table"
  12107. }, opts.default.createElement("thead", null, opts.default.createElement("tr", null, opts.default.createElement("th", {
  12108. className : "servers-table-name"
  12109. }, opts.default.createElement("span", null, "Name")), opts.default.createElement("th", {
  12110. className : "servers-table-players"
  12111. }, opts.default.createElement("span", null, "Players")), opts.default.createElement("th", {
  12112. className : "servers-table-mode"
  12113. }, opts.default.createElement("span", null, "Gamemode")), opts.default.createElement("th", {
  12114. className : "servers-table-ping"
  12115. }, opts.default.createElement("span", null, "Ping")))), opts.default.createElement("tbody", null, this.props.servers.filter(function(region) {
  12116. return region.region == self.props.region;
  12117. }).map(function(self) {
  12118. return opts.default.createElement("tr", {
  12119. className : (0, obj.default)({
  12120. "picker-current" : e.props.current == self.name,
  12121. "picker-selected" : e.props.selected == self.name
  12122. }),
  12123. onMouseDown : e.props.onSelect.bind(e, self.name)
  12124. }, opts.default.createElement("td", {
  12125. className : "servers-table-name"
  12126. }, self.name), opts.default.createElement("td", {
  12127. className : "servers-table-players"
  12128. }, self.players), opts.default.createElement("td", {
  12129. className : "servers-table-mode"
  12130. }, self.gamemode), opts.default.createElement("td", {
  12131. className : "servers-table-ping"
  12132. }, self.ping ? self.ping + "ms" : "-"));
  12133. })));
  12134. }
  12135. }]), value;
  12136. }(opts.default.PureComponent);
  12137. var prototype = (throttledUpdate = (0, element.inject)("servers"), throttledUpdate(dep = (0, element.observer)(dep = function(properties) {
  12138. /**
  12139. * @param {?} n
  12140. * @return {?}
  12141. */
  12142. function f(n) {
  12143. callback(this, f);
  12144. var me = func(this, (f.__proto__ || Object.getPrototypeOf(f)).call(this, n));
  12145. return(0, Block.extendObservable)(me.props.servers, {
  12146. current : null,
  12147. selected : null,
  12148. servers : [],
  12149. regions : ["All"],
  12150. region : "All"
  12151. }), config.clients.getServers(me.load.bind(me)), window.addEventListener("beforeunload", function() {
  12152. window.localStorage.setItem("server", me.props.servers.selected);
  12153. }), me;
  12154. }
  12155. return create(f, properties), isRegExp(f, [{
  12156. key : "load",
  12157. /**
  12158. * @param {number} object
  12159. * @return {undefined}
  12160. */
  12161. value : function(object) {
  12162. /** @type {number} */
  12163. this.props.servers.servers = object;
  12164. /** @type {Array} */
  12165. var names = [];
  12166. /** @type {boolean} */
  12167. var callback2 = true;
  12168. /** @type {boolean} */
  12169. var r = false;
  12170. var bulk = void 0;
  12171. try {
  12172. var left;
  12173. var self = this.props.servers.servers[Symbol.iterator]();
  12174. for (;!(callback2 = (left = self.next()).done);callback2 = true) {
  12175. var a = left.value;
  12176. if (names.indexOf(a.region) == -1) {
  12177. names.push(a.region);
  12178. }
  12179. }
  12180. } catch (fn) {
  12181. /** @type {boolean} */
  12182. r = true;
  12183. bulk = fn;
  12184. } finally {
  12185. try {
  12186. if (!callback2) {
  12187. if (self.return) {
  12188. self.return();
  12189. }
  12190. }
  12191. } finally {
  12192. if (r) {
  12193. throw bulk;
  12194. }
  12195. }
  12196. }
  12197. /** @type {Array} */
  12198. this.props.servers.regions = names;
  12199. if (null == this.props.servers.selected) {
  12200. this.props.servers.selected = window.localStorage.getItem("server") || object[0].name;
  12201. }
  12202. }
  12203. }, {
  12204. key : "render",
  12205. /**
  12206. * @return {?}
  12207. */
  12208. value : function() {
  12209. var me = this;
  12210. return opts.default.createElement("div", {
  12211. className : "servers"
  12212. }, opts.default.createElement(Tab.Tabs, {
  12213. selectedIndex : me.props.servers.regions.indexOf(me.props.servers.region),
  12214. /**
  12215. * @param {?} index
  12216. * @return {?}
  12217. */
  12218. onSelect : function(index) {
  12219. return me.props.servers.region = index;
  12220. }
  12221. }, opts.default.createElement(Tab.TabList, null, me.props.servers.regions.map(function(dim) {
  12222. return opts.default.createElement(Tab.Tab, null, dim);
  12223. })), me.props.servers.regions.map(function(region) {
  12224. return opts.default.createElement(Tab.TabPanel, null, opts.default.createElement(tagToInsert, {
  12225. current : me.props.servers.current,
  12226. selected : me.props.servers.selected,
  12227. region : region,
  12228. servers : me.props.servers.servers,
  12229. /**
  12230. * @param {number} index
  12231. * @return {?}
  12232. */
  12233. onSelect : function(index) {
  12234. return me.props.servers.selected = index;
  12235. }
  12236. }));
  12237. })));
  12238. }
  12239. }]), f;
  12240. }(opts.default.PureComponent)) || dep) || dep);
  12241. object.default = prototype;
  12242. }, function(dataAndEvents, object, $) {
  12243. /**
  12244. * @param {string} type
  12245. * @return {?}
  12246. */
  12247. function getOptions(type) {
  12248. return type && type.__esModule ? type : {
  12249. default : type
  12250. };
  12251. }
  12252. /**
  12253. * @param {Function} matcherFunction
  12254. * @return {?}
  12255. */
  12256. function compose(matcherFunction) {
  12257. return function() {
  12258. var a = matcherFunction.apply(this, arguments);
  12259. return new Promise(function(isNumber, fire) {
  12260. /**
  12261. * @param {string} action
  12262. * @param {?} elem
  12263. * @return {?}
  12264. */
  12265. function next(action, elem) {
  12266. try {
  12267. var q = a[action](elem);
  12268. var val = q.value;
  12269. } catch (memory) {
  12270. return void fire(memory);
  12271. }
  12272. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  12273. next("next", arg);
  12274. }, function(arg) {
  12275. next("throw", arg);
  12276. });
  12277. }
  12278. return next("next");
  12279. });
  12280. };
  12281. }
  12282. /**
  12283. * @param {?} e
  12284. * @param {Function} arg
  12285. * @return {undefined}
  12286. */
  12287. function fn(e, arg) {
  12288. if (!(e instanceof arg)) {
  12289. throw new TypeError("Cannot call a class as a function");
  12290. }
  12291. }
  12292. /**
  12293. * @param {string} dataAndEvents
  12294. * @param {?} b
  12295. * @return {?}
  12296. */
  12297. function func(dataAndEvents, b) {
  12298. if (!dataAndEvents) {
  12299. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  12300. }
  12301. return!b || "object" != typeof b && "function" != typeof b ? dataAndEvents : b;
  12302. }
  12303. /**
  12304. * @param {Object} options
  12305. * @param {Object} extend
  12306. * @return {undefined}
  12307. */
  12308. function create(options, extend) {
  12309. if ("function" != typeof extend && null !== extend) {
  12310. throw new TypeError("Super expression must either be null or a function, not " + typeof extend);
  12311. }
  12312. /** @type {Object} */
  12313. options.prototype = Object.create(extend && extend.prototype, {
  12314. constructor : {
  12315. value : options,
  12316. enumerable : false,
  12317. writable : true,
  12318. configurable : true
  12319. }
  12320. });
  12321. if (extend) {
  12322. if (Object.setPrototypeOf) {
  12323. Object.setPrototypeOf(options, extend);
  12324. } else {
  12325. /** @type {Object} */
  12326. options.__proto__ = extend;
  12327. }
  12328. }
  12329. }
  12330. Object.defineProperty(object, "__esModule", {
  12331. value : true
  12332. });
  12333. object.default = void 0;
  12334. var js;
  12335. var guess;
  12336. var throttledUpdate;
  12337. var dep;
  12338. var toString = Object.assign || function(opt_attributes) {
  12339. /** @type {number} */
  12340. var i = 1;
  12341. for (;i < arguments.length;i++) {
  12342. var iterable = arguments[i];
  12343. var key;
  12344. for (key in iterable) {
  12345. if (Object.prototype.hasOwnProperty.call(iterable, key)) {
  12346. opt_attributes[key] = iterable[key];
  12347. }
  12348. }
  12349. }
  12350. return opt_attributes;
  12351. };
  12352. var integrate = function() {
  12353. /**
  12354. * @param {Function} object
  12355. * @param {Array} d
  12356. * @return {undefined}
  12357. */
  12358. function defineProperty(object, d) {
  12359. /** @type {number} */
  12360. var i = 0;
  12361. for (;i < d.length;i++) {
  12362. var desc = d[i];
  12363. desc.enumerable = desc.enumerable || false;
  12364. /** @type {boolean} */
  12365. desc.configurable = true;
  12366. if ("value" in desc) {
  12367. /** @type {boolean} */
  12368. desc.writable = true;
  12369. }
  12370. Object.defineProperty(object, desc.key, desc);
  12371. }
  12372. }
  12373. return function(x, current, a) {
  12374. return current && defineProperty(x.prototype, current), a && defineProperty(x, a), x;
  12375. };
  12376. }();
  12377. var li = $(0);
  12378. var opts = getOptions(li);
  12379. var file = $(56);
  12380. var obj = getOptions(file);
  12381. var emptyJ = $(2);
  12382. var self = $(1);
  12383. var tagToInsert = (js = (0, self.inject)("options"), js(guess = (0, self.observer)(guess = function(options) {
  12384. /**
  12385. * @return {?}
  12386. */
  12387. function value() {
  12388. return fn(this, value), func(this, (value.__proto__ || Object.getPrototypeOf(value)).apply(this, arguments));
  12389. }
  12390. return create(value, options), integrate(value, [{
  12391. key : "render",
  12392. /**
  12393. * @return {?}
  12394. */
  12395. value : function() {
  12396. var me = this;
  12397. this.props.sharedProps.skinsLoader.normalize(this.props.item.team, this.props.item.name, this.props.item.skin).then(function(data) {
  12398. return data && (me.props.item.skin = data.skin);
  12399. });
  12400. var style = {
  12401. backgroundColor : this.props.options.selfColor.color
  12402. };
  12403. return opts.default.createElement("div", {
  12404. className : "skin"
  12405. }, opts.default.createElement("img", {
  12406. className : "skin-img",
  12407. src : this.props.item.skin || null,
  12408. style : style
  12409. }), opts.default.createElement("div", {
  12410. className : "skin-reflection"
  12411. }, opts.default.createElement("img", {
  12412. className : "skin-img",
  12413. src : this.props.item.skin || null,
  12414. style : style
  12415. })));
  12416. }
  12417. }]), value;
  12418. }(opts.default.PureComponent)) || guess) || guess);
  12419. var prototype = (throttledUpdate = (0, self.inject)("skins"), throttledUpdate(dep = (0, self.observer)(dep = function(options) {
  12420. /**
  12421. * @param {?} fake
  12422. * @return {?}
  12423. */
  12424. function add(fake) {
  12425. fn(this, add);
  12426. var arr = func(this, (add.__proto__ || Object.getPrototypeOf(add)).call(this, fake));
  12427. var info = {
  12428. team : "",
  12429. name : "",
  12430. skin : "http://i.imgur.com/jUIS2PP.png",
  12431. uuid : Date.now()
  12432. };
  12433. return(0, emptyJ.extendObservable)(arr.props.skins, {
  12434. skins : [info],
  12435. selected : info
  12436. }), Object.assign(arr.props.skins, JSON.parse(localStorage.getItem("skins") || "{}")), arr.props.skins.selected = arr.props.skins.skins[arr.findIndex()], window.addEventListener("beforeunload", function() {
  12437. return window.localStorage.setItem("skins", JSON.stringify(arr.props.skins));
  12438. }), arr;
  12439. }
  12440. return create(add, options), integrate(add, [{
  12441. key : "findIndex",
  12442. /**
  12443. * @return {?}
  12444. */
  12445. value : function() {
  12446. var me = this;
  12447. return this.props.skins.skins.findIndex(function(_) {
  12448. return _.uuid == me.props.skins.selected.uuid;
  12449. });
  12450. }
  12451. }, {
  12452. key : "handleUpdate",
  12453. value : function() {
  12454. /**
  12455. * @param {?} vec0
  12456. * @param {?} proxyObj
  12457. * @return {?}
  12458. */
  12459. function add(vec0, proxyObj) {
  12460. return matcherFunction.apply(this, arguments);
  12461. }
  12462. var matcherFunction = compose(regeneratorRuntime.mark(function end(encoding, options) {
  12463. var str;
  12464. return regeneratorRuntime.wrap(function(self) {
  12465. for (;;) {
  12466. switch(self.prev = self.next) {
  12467. case 0:
  12468. return str = toString({}, this.props.skins.selected), Object.assign(this.props.skins.selected, options), self.t0 = Object, self.t1 = this.props.skins.selected, self.next = 6, this.props.skinsLoader.normalize(this.props.skins.selected.team, this.props.skins.selected.name, this.props.skins.selected.skin);
  12469. case 6:
  12470. if (self.t2 = self.sent, self.t2) {
  12471. /** @type {number} */
  12472. self.next = 9;
  12473. break;
  12474. }
  12475. self.t2 = str;
  12476. case 9:
  12477. self.t3 = self.t2;
  12478. self.t0.assign.call(self.t0, self.t1, self.t3);
  12479. case 11:
  12480. ;
  12481. case "end":
  12482. return self.stop();
  12483. }
  12484. }
  12485. }, end, this);
  12486. }));
  12487. return add;
  12488. }()
  12489. }, {
  12490. key : "handleRemove",
  12491. /**
  12492. * @return {undefined}
  12493. */
  12494. value : function() {
  12495. var index = this.findIndex();
  12496. this.props.skins.skins.splice(index, 1);
  12497. if (!this.props.skins.skins.length) {
  12498. this.props.skins.skins.push({
  12499. team : "",
  12500. name : "",
  12501. skin : "",
  12502. uuid : Date.now()
  12503. });
  12504. }
  12505. this.props.skins.selected = this.props.skins.skins[Math.max(0, index - 1)];
  12506. }
  12507. }, {
  12508. key : "handleAdd",
  12509. /**
  12510. * @return {undefined}
  12511. */
  12512. value : function() {
  12513. this.props.skins.skins.splice(this.findIndex() + 1, 0, {
  12514. team : "",
  12515. name : "",
  12516. skin : "",
  12517. uuid : Date.now()
  12518. });
  12519. this.props.skins.selected = this.props.skins.skins[this.findIndex() + 1];
  12520. }
  12521. }, {
  12522. key : "componentDidUpdate",
  12523. /**
  12524. * @return {undefined}
  12525. */
  12526. value : function() {
  12527. this.refs.skins.querySelector(".skin-list").childNodes[this.findIndex()].scrollIntoView();
  12528. }
  12529. }, {
  12530. key : "render",
  12531. /**
  12532. * @return {?}
  12533. */
  12534. value : function() {
  12535. var $;
  12536. return $ = this, opts.default.createElement("div", {
  12537. className : "skins",
  12538. ref : "skins"
  12539. }, opts.default.createElement("div", {
  12540. className : "skin-selected"
  12541. }, opts.default.createElement("a", {
  12542. className : "skin-rem fa-stack",
  12543. onClick : this.handleRemove.bind(this)
  12544. }, opts.default.createElement("i", {
  12545. className : "fa fa-circle-thin fa-stack-2x"
  12546. }), opts.default.createElement("i", {
  12547. className : "fa fa-minus fa-stack-1x"
  12548. })), opts.default.createElement(tagToInsert, {
  12549. item : this.props.skins.selected,
  12550. sharedProps : this.props
  12551. }), opts.default.createElement("a", {
  12552. className : "skin-add fa-stack",
  12553. onClick : this.handleAdd.bind(this)
  12554. }, opts.default.createElement("i", {
  12555. className : "fa fa-circle-thin fa-stack-2x"
  12556. }), opts.default.createElement("i", {
  12557. className : "fa fa-plus fa-stack-1x"
  12558. }))), opts.default.createElement("div", {
  12559. className : "inputs"
  12560. }, opts.default.createElement("div", {
  12561. className : "team-name"
  12562. }, opts.default.createElement("input", {
  12563. className : "team-input",
  12564. type : "text",
  12565. placeholder : "Team",
  12566. value : this.props.skins.selected.team,
  12567. /**
  12568. * @param {Event} evt
  12569. * @return {?}
  12570. */
  12571. onChange : function(evt) {
  12572. return $.handleUpdate(evt.target, {
  12573. team : evt.target.value
  12574. });
  12575. }
  12576. }), opts.default.createElement("input", {
  12577. className : "name-input",
  12578. type : "text",
  12579. placeholder : "Name",
  12580. value : this.props.skins.selected.name,
  12581. /**
  12582. * @param {Event} evt
  12583. * @return {?}
  12584. */
  12585. onChange : function(evt) {
  12586. return $.handleUpdate(evt.target, {
  12587. name : evt.target.value
  12588. });
  12589. }
  12590. })), opts.default.createElement("input", {
  12591. className : "skin-input",
  12592. type : "text",
  12593. placeholder : "Skin",
  12594. value : this.props.skins.selected.skin,
  12595. /**
  12596. * @param {Event} evt
  12597. * @return {?}
  12598. */
  12599. onChange : function(evt) {
  12600. return $.handleUpdate(evt.target, {
  12601. skin : evt.target.value
  12602. });
  12603. }
  12604. })), opts.default.createElement(obj.default, {
  12605. lock : "vertical",
  12606. holdTime : "200",
  12607. list : this.props.skins.skins,
  12608. listClass : "skin-list",
  12609. itemClass : "skin-item",
  12610. /**
  12611. * @param {?} evt
  12612. * @param {?} selected
  12613. * @return {?}
  12614. */
  12615. itemClicked : function(evt, selected) {
  12616. return $.props.skins.selected = selected;
  12617. },
  12618. itemKey : "uuid",
  12619. template : tagToInsert,
  12620. sharedProps : this.props,
  12621. selected : this.props.skins.selected,
  12622. selectedKey : "uuid"
  12623. }));
  12624. }
  12625. }]), add;
  12626. }(opts.default.PureComponent)) || dep) || dep);
  12627. object.default = prototype;
  12628. }, function(dataAndEvents, obj, require) {
  12629. /**
  12630. * @param {string} options
  12631. * @return {?}
  12632. */
  12633. function defaults(options) {
  12634. return options && options.__esModule ? options : {
  12635. default : options
  12636. };
  12637. }
  12638. /**
  12639. * @param {?} dataAndEvents
  12640. * @param {Function} right
  12641. * @return {undefined}
  12642. */
  12643. function fn(dataAndEvents, right) {
  12644. if (!(dataAndEvents instanceof right)) {
  12645. throw new TypeError("Cannot call a class as a function");
  12646. }
  12647. }
  12648. /**
  12649. * @param {string} dataAndEvents
  12650. * @param {?} deepDataAndEvents
  12651. * @return {?}
  12652. */
  12653. function clone(dataAndEvents, deepDataAndEvents) {
  12654. if (!dataAndEvents) {
  12655. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  12656. }
  12657. return!deepDataAndEvents || "object" != typeof deepDataAndEvents && "function" != typeof deepDataAndEvents ? dataAndEvents : deepDataAndEvents;
  12658. }
  12659. /**
  12660. * @param {Object} klass
  12661. * @param {Object} extend
  12662. * @return {undefined}
  12663. */
  12664. function create(klass, extend) {
  12665. if ("function" != typeof extend && null !== extend) {
  12666. throw new TypeError("Super expression must either be null or a function, not " + typeof extend);
  12667. }
  12668. /** @type {Object} */
  12669. klass.prototype = Object.create(extend && extend.prototype, {
  12670. constructor : {
  12671. value : klass,
  12672. enumerable : false,
  12673. writable : true,
  12674. configurable : true
  12675. }
  12676. });
  12677. if (extend) {
  12678. if (Object.setPrototypeOf) {
  12679. Object.setPrototypeOf(klass, extend);
  12680. } else {
  12681. /** @type {Object} */
  12682. klass.__proto__ = extend;
  12683. }
  12684. }
  12685. }
  12686. Object.defineProperty(obj, "__esModule", {
  12687. value : true
  12688. });
  12689. obj.default = void 0;
  12690. var throttledUpdate;
  12691. var dep;
  12692. var lookupIterator = function() {
  12693. /**
  12694. * @param {Function} object
  12695. * @param {Array} property
  12696. * @return {undefined}
  12697. */
  12698. function defineProperty(object, property) {
  12699. /** @type {number} */
  12700. var i = 0;
  12701. for (;i < property.length;i++) {
  12702. var desc = property[i];
  12703. desc.enumerable = desc.enumerable || false;
  12704. /** @type {boolean} */
  12705. desc.configurable = true;
  12706. if ("value" in desc) {
  12707. /** @type {boolean} */
  12708. desc.writable = true;
  12709. }
  12710. Object.defineProperty(object, desc.key, desc);
  12711. }
  12712. }
  12713. return function(func, name, element) {
  12714. return name && defineProperty(func.prototype, name), element && defineProperty(func, element), func;
  12715. };
  12716. }();
  12717. var options = require(0);
  12718. var opts = defaults(options);
  12719. var Block = require(2);
  12720. var element = require(1);
  12721. var value = (throttledUpdate = (0, element.inject)("stats"), throttledUpdate(dep = (0, element.observer)(dep = function(options) {
  12722. /**
  12723. * @param {?} newVal
  12724. * @return {?}
  12725. */
  12726. function value(newVal) {
  12727. fn(this, value);
  12728. var data = clone(this, (value.__proto__ || Object.getPrototypeOf(value)).call(this, newVal));
  12729. return(0, Block.extendObservable)(data.props.stats, {
  12730. pId : "-",
  12731. fps : 0,
  12732. ping : 0,
  12733. pingColor : null,
  12734. score : 0,
  12735. partyScore : 0,
  12736. cellNum : 0,
  12737. tsMass : 0
  12738. }), data;
  12739. }
  12740. return create(value, options), lookupIterator(value, [{
  12741. key : "render",
  12742. /**
  12743. * @return {?}
  12744. */
  12745. value : function() {
  12746. return opts.default.createElement("div", {
  12747. className : "stats ui-panel"
  12748. }, opts.default.createElement("div", {
  12749. className : "stats-text"
  12750. }, "ID: ", opts.default.createElement("span", null, this.props.stats.pId || "-")), opts.default.createElement("div", {
  12751. className : "stats-text"
  12752. }, "FPS: ", opts.default.createElement("span", null, this.props.stats.fps)), opts.default.createElement("div", {
  12753. className : "stats-text"
  12754. }, "Ping: ", opts.default.createElement("span", {
  12755. style : {
  12756. color : this.props.stats.pingColor
  12757. }
  12758. }, this.props.stats.ping, "ms")), opts.default.createElement("div", {
  12759. className : "stats-text"
  12760. }, "Score: ", opts.default.createElement("span", null, this.props.stats.score)), opts.default.createElement("div", {
  12761. className : "stats-text"
  12762. }, "Party: ", opts.default.createElement("span", null, this.props.stats.partyScore)), opts.default.createElement("div", {
  12763. className : "stats-text"
  12764. }, "Cells: ", opts.default.createElement("span", null, this.props.stats.cellNum, "/16")), false);
  12765. }
  12766. }]), value;
  12767. }(opts.default.PureComponent)) || dep) || dep);
  12768. obj.default = value;
  12769. }, function(dataAndEvents, object, get) {
  12770. /**
  12771. * @param {string} name
  12772. * @return {?}
  12773. */
  12774. function $(name) {
  12775. return name && name.__esModule ? name : {
  12776. default : name
  12777. };
  12778. }
  12779. /**
  12780. * @param {?} obj
  12781. * @param {Function} type
  12782. * @return {undefined}
  12783. */
  12784. function bind(obj, type) {
  12785. if (!(obj instanceof type)) {
  12786. throw new TypeError("Cannot call a class as a function");
  12787. }
  12788. }
  12789. /**
  12790. * @param {string} dataAndEvents
  12791. * @param {?} fn
  12792. * @return {?}
  12793. */
  12794. function apply(dataAndEvents, fn) {
  12795. if (!dataAndEvents) {
  12796. throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  12797. }
  12798. return!fn || "object" != typeof fn && "function" != typeof fn ? dataAndEvents : fn;
  12799. }
  12800. /**
  12801. * @param {Object} x
  12802. * @param {Object} b
  12803. * @return {undefined}
  12804. */
  12805. function f(x, b) {
  12806. if ("function" != typeof b && null !== b) {
  12807. throw new TypeError("Super expression must either be null or a function, not " + typeof b);
  12808. }
  12809. /** @type {Object} */
  12810. x.prototype = Object.create(b && b.prototype, {
  12811. constructor : {
  12812. value : x,
  12813. enumerable : false,
  12814. writable : true,
  12815. configurable : true
  12816. }
  12817. });
  12818. if (b) {
  12819. if (Object.setPrototypeOf) {
  12820. Object.setPrototypeOf(x, b);
  12821. } else {
  12822. /** @type {Object} */
  12823. x.__proto__ = b;
  12824. }
  12825. }
  12826. }
  12827. Object.defineProperty(object, "__esModule", {
  12828. value : true
  12829. });
  12830. object.default = void 0;
  12831. var index;
  12832. var objectToString = function() {
  12833. /**
  12834. * @param {Function} proto
  12835. * @param {Array} name
  12836. * @return {undefined}
  12837. */
  12838. function defineProperty(proto, name) {
  12839. /** @type {number} */
  12840. var i = 0;
  12841. for (;i < name.length;i++) {
  12842. var desc = name[i];
  12843. desc.enumerable = desc.enumerable || false;
  12844. /** @type {boolean} */
  12845. desc.configurable = true;
  12846. if ("value" in desc) {
  12847. /** @type {boolean} */
  12848. desc.writable = true;
  12849. }
  12850. Object.defineProperty(proto, desc.key, desc);
  12851. }
  12852. }
  12853. return function(context, name, tag) {
  12854. return name && defineProperty(context.prototype, name), tag && defineProperty(context, tag), context;
  12855. };
  12856. }();
  12857. var a = get(0);
  12858. var opts = $(a);
  12859. var value = get(2);
  12860. var data = get(1);
  12861. var storage = get(5);
  12862. get(49);
  12863. var res = get(31);
  12864. var obj = $(res);
  12865. var div = get(33);
  12866. var opt = $(div);
  12867. var template = get(34);
  12868. var node = $(template);
  12869. var html = get(35);
  12870. var token = $(html);
  12871. var b = get(37);
  12872. var item = $(b);
  12873. var klass = get(41);
  12874. var c = $(klass);
  12875. var id = (0, data.observer)(index = function(v2) {
  12876. /**
  12877. * @param {?} opts
  12878. * @return {?}
  12879. */
  12880. function d(opts) {
  12881. bind(this, d);
  12882. var Game = apply(this, (d.__proto__ || Object.getPrototypeOf(d)).call(this, opts));
  12883. return storage.Tabs.setUseDefaultStyles(false), window.addEventListener("resize", Game.componentDidMount.bind(Game)), Game;
  12884. }
  12885. return f(d, v2), objectToString(d, [{
  12886. key : "componentDidMount",
  12887. /**
  12888. * @return {undefined}
  12889. */
  12890. value : function() {
  12891. /** @type {number} */
  12892. this.refs.canvas.width = window.innerWidth;
  12893. /** @type {number} */
  12894. this.refs.canvas.height = window.innerHeight;
  12895. }
  12896. }, {
  12897. key : "render",
  12898. /**
  12899. * @return {?}
  12900. */
  12901. value : function() {
  12902. return opts.default.createElement(data.Provider, {
  12903. ref : "provider",
  12904. skins : {},
  12905. servers : {},
  12906. options : (0, value.observable)({
  12907. selfColor : {}
  12908. }),
  12909. keys : {},
  12910. keysInv : new Map,
  12911. messages : (0, value.observable)([]),
  12912. messagesInv : new Map,
  12913. recordings : {},
  12914. stats : {},
  12915. minimap : {},
  12916. chat : {},
  12917. main : (0, value.observable)({
  12918. hideMain : false,
  12919. leaderboard : [],
  12920. teamLeaderboard : [],
  12921. party : []
  12922. })
  12923. }, opts.default.createElement("div", null, opts.default.createElement("canvas", {
  12924. className : "canvas",
  12925. ref : "canvas"
  12926. }), opts.default.createElement(node.default, {
  12927. skinsLoader : this.props.skins,
  12928. recorder : this.props.recorder,
  12929. onPlay : this.props.onPlay,
  12930. onSpectate : this.props.onSpectate
  12931. }), opts.default.createElement("div", {
  12932. className : "stats-party-container"
  12933. }, opts.default.createElement(c.default, null), " ", opts.default.createElement(item.default, null)), opts.default.createElement(opt.default, null), opts.default.createElement(token.default, null), opts.default.createElement(obj.default, {
  12934. ref : "chat",
  12935. getClient : this.props.getClient,
  12936. findCell : this.props.findCell
  12937. })));
  12938. }
  12939. }]), d;
  12940. }(opts.default.PureComponent)) || index;
  12941. object.default = id;
  12942. }, function(dataAndEvents, object, iterator) {
  12943. /**
  12944. * @param {string} value
  12945. * @return {?}
  12946. */
  12947. function lookupIterator(value) {
  12948. return value && value.__esModule ? value : {
  12949. default : value
  12950. };
  12951. }
  12952. /**
  12953. * @param {Function} matcherFunction
  12954. * @return {?}
  12955. */
  12956. function compose(matcherFunction) {
  12957. return function() {
  12958. var a = matcherFunction.apply(this, arguments);
  12959. return new Promise(function(isNumber, fire) {
  12960. /**
  12961. * @param {string} action
  12962. * @param {?} elem
  12963. * @return {?}
  12964. */
  12965. function next(action, elem) {
  12966. try {
  12967. var q = a[action](elem);
  12968. var val = q.value;
  12969. } catch (memory) {
  12970. return void fire(memory);
  12971. }
  12972. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  12973. next("next", arg);
  12974. }, function(arg) {
  12975. next("throw", arg);
  12976. });
  12977. }
  12978. return next("next");
  12979. });
  12980. };
  12981. }
  12982. Object.defineProperty(object, "__esModule", {
  12983. value : true
  12984. });
  12985. var value = iterator(51);
  12986. var obj = lookupIterator(value);
  12987. var key = iterator(3);
  12988. object.default = function() {
  12989. /**
  12990. * @param {?} event
  12991. * @return {?}
  12992. */
  12993. function f2(event) {
  12994. return matcherFunction.apply(this, arguments);
  12995. }
  12996. var matcherFunction = compose(regeneratorRuntime.mark(function test(props) {
  12997. var args;
  12998. var options;
  12999. var part;
  13000. var children;
  13001. var reader;
  13002. var self;
  13003. var callback2;
  13004. var f;
  13005. var t0;
  13006. var tree;
  13007. var _ref;
  13008. var data;
  13009. var arg;
  13010. var step;
  13011. var start;
  13012. var size;
  13013. var i;
  13014. var p;
  13015. var option;
  13016. var child;
  13017. var a;
  13018. return regeneratorRuntime.wrap(function(current) {
  13019. for (;;) {
  13020. switch(current.prev = current.next) {
  13021. case 0:
  13022. /** @type {Array} */
  13023. args = [];
  13024. /** @type {Array} */
  13025. options = [];
  13026. /** @type {number} */
  13027. part = 0;
  13028. /** @type {Array} */
  13029. children = [];
  13030. /** @type {FileReader} */
  13031. reader = new FileReader;
  13032. self = new key.BufferWriter;
  13033. /** @type {boolean} */
  13034. callback2 = true;
  13035. /** @type {boolean} */
  13036. f = false;
  13037. t0 = void 0;
  13038. /** @type {number} */
  13039. current.prev = 6;
  13040. tree = props[Symbol.iterator]();
  13041. case 8:
  13042. if (callback2 = (_ref = tree.next()).done) {
  13043. /** @type {number} */
  13044. current.next = 43;
  13045. break;
  13046. }
  13047. data = _ref.value;
  13048. /** @type {null} */
  13049. arg = null;
  13050. /** @type {number} */
  13051. step = 10485760;
  13052. /** @type {number} */
  13053. start = 0;
  13054. case 13:
  13055. if (!(start < data.data.size)) {
  13056. /** @type {number} */
  13057. current.next = 21;
  13058. break;
  13059. }
  13060. return reader.readAsArrayBuffer(data.data.slice(start, start + step)), current.next = 17, new Promise(function(i) {
  13061. return reader.onload = i;
  13062. });
  13063. case 17:
  13064. arg = obj.default.buf(new Uint8Array(reader.result), arg);
  13065. case 18:
  13066. start += step;
  13067. /** @type {number} */
  13068. current.next = 13;
  13069. break;
  13070. case 21:
  13071. options.push(arg);
  13072. children.push(part);
  13073. self.reset();
  13074. self.writeUint32(67324752);
  13075. self.writeUint16(10);
  13076. self.writeUint16(0);
  13077. self.writeUint16(0);
  13078. self.writeUint16(0);
  13079. self.writeUint16(0);
  13080. self.writeUint32(arg);
  13081. self.writeUint32(data.data.size);
  13082. self.writeUint32(data.data.size);
  13083. self.writeUint16(data.name.length);
  13084. self.writeUint16(0);
  13085. self.writeString(data.name);
  13086. self.bytes.pop();
  13087. args.push(self.build());
  13088. args.push(data.data);
  13089. part += args[args.length - 2].byteLength + args[args.length - 1].size;
  13090. case 40:
  13091. /** @type {boolean} */
  13092. callback2 = true;
  13093. /** @type {number} */
  13094. current.next = 8;
  13095. break;
  13096. case 43:
  13097. /** @type {number} */
  13098. current.next = 49;
  13099. break;
  13100. case 45:
  13101. /** @type {number} */
  13102. current.prev = 45;
  13103. current.t0 = current.catch(6);
  13104. /** @type {boolean} */
  13105. f = true;
  13106. t0 = current.t0;
  13107. case 49:
  13108. /** @type {number} */
  13109. current.prev = 49;
  13110. /** @type {number} */
  13111. current.prev = 50;
  13112. if (!callback2) {
  13113. if (tree.return) {
  13114. tree.return();
  13115. }
  13116. }
  13117. ;
  13118. case 52:
  13119. if (current.prev = 52, !f) {
  13120. /** @type {number} */
  13121. current.next = 55;
  13122. break;
  13123. }
  13124. throw t0;;
  13125. case 55:
  13126. return current.finish(52);
  13127. case 56:
  13128. return current.finish(49);
  13129. case 57:
  13130. /** @type {number} */
  13131. size = 0;
  13132. /** @type {number} */
  13133. i = 0;
  13134. for (;i < props.length;i++) {
  13135. p = props[i];
  13136. option = options[i];
  13137. child = children[i];
  13138. self.reset();
  13139. self.writeUint32(33639248);
  13140. self.writeUint16(10);
  13141. self.writeUint16(10);
  13142. self.writeUint16(0);
  13143. self.writeUint16(0);
  13144. self.writeUint16(0);
  13145. self.writeUint16(0);
  13146. self.writeUint32(option);
  13147. self.writeUint32(p.data.size);
  13148. self.writeUint32(p.data.size);
  13149. self.writeUint16(p.name.length);
  13150. self.writeUint16(0);
  13151. self.writeUint16(0);
  13152. self.writeUint16(0);
  13153. self.writeUint16(0);
  13154. self.writeUint32(32);
  13155. self.writeUint32(child);
  13156. self.writeString(p.name);
  13157. self.bytes.pop();
  13158. args.push(self.build());
  13159. size += args[args.length - 1].byteLength;
  13160. }
  13161. self.reset();
  13162. self.writeUint32(101010256);
  13163. self.writeUint16(0);
  13164. self.writeUint16(0);
  13165. self.writeUint16(props.length);
  13166. self.writeUint16(props.length);
  13167. self.writeUint32(size);
  13168. self.writeUint32(part);
  13169. self.writeUint16(0);
  13170. args.push(self.build());
  13171. /** @type {Element} */
  13172. a = document.createElement("a");
  13173. a.setAttribute("href", window.URL.createObjectURL(new Blob(args)));
  13174. a.setAttribute("download", "recordings.zip");
  13175. document.body.appendChild(a);
  13176. a.click();
  13177. case 74:
  13178. ;
  13179. case "end":
  13180. return current.stop();
  13181. }
  13182. }
  13183. }, test, this, [[6, 45, 49, 57], [50, , 52, 56]]);
  13184. }));
  13185. return f2;
  13186. }();
  13187. }, function(f, matchIndexes, $sanitize) {
  13188. matchIndexes = f.exports = $sanitize(45)(void 0);
  13189. matchIndexes.push([f.i, ':focus{outline:none}body{overflow:hidden;font-size:12px}.ui-panel{border-radius:10px;background-color:rgba(0,0,0,.7);color:#fff}.btn{border:1px solid #fff;color:inherit;background-color:rgba(0,0,0,.4);font-size:20px;line-height:1.5;cursor:pointer;opacity:1}.btn:hover{opacity:.7}.react-tabs{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.react-tabs>ul{padding:0}.react-tabs>ul>li{position:relative;display:inline-block;list-style:none;padding:6px 9px;cursor:pointer}.react-tabs>ul>li[aria-selected=true]{border-radius:5px 5px 0 0}.react-tabs>[role=tabpanel]{-ms-flex:1;flex:1;overflow:auto}.rc-color-picker-panel{background-color:initial}.rc-color-picker-panel .rc-color-picker-panel-inner{background-color:#fff}.rc-slider-tooltip{z-index:2}.picker-table{width:100%;height:100%;background-color:rgba(50,50,50,.8);border-collapse:collapse;text-align:left;display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.picker-table thead{white-space:nowrap}.picker-table tbody{-ms-flex:1;flex:1;overflow-x:hidden;overflow-y:scroll;background-color:hsla(0,0%,39%,.75)}.picker-table tbody tr{cursor:pointer;height:20px;white-space:nowrap}.picker-table tbody .picker-current{background-color:rgba(0,255,255,.4)}.picker-table tbody .picker-selected{background-color:rgba(0,255,255,.8)}.popup-container{position:fixed;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.4)}.popup-container .popup{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);width:320px;padding:10px}.popup-container .popup>*{text-align:center}.popup-container .popup .popup-title{font-size:20px}.popup-container .popup .popup-text{margin:16px auto;font-size:16px;text-align:center}.popup-container .popup .popup-text input{border:1px solid #aaa}.popup-container .popup .popup-input .btn{margin:0 5px;width:60px;font-size:15px}.canvas{position:absolute}.stats-party-container{position:absolute;top:10px;left:10px}.stats-party-container>*{margin:5px 0}.stats-party-container .stats{display:inline-block;font-family:Calibri;font-weight:700;font-size:16px;padding:8px 15px}.stats-party-container .party{font-family:Calibri;padding:5px;font-size:16px;line-height:20px}.stats-party-container .party td{padding:0}.stats-party-container .party td:first-child{padding-right:50px}.stats-party-container .party .party-summary{color:#00a0a0}.leaderboard{position:absolute;top:10px;right:10px;width:190px;font-family:Calibri;padding:4px 0}.leaderboard .leaderboard-title{font-size:18px;font-weight:700;text-align:center}.leaderboard .leaderboard-contents{padding:0 6px;font-size:16px;line-height:20px;white-space:nowrap}.leaderboard .leaderboard-separator{margin:4px 0;border-bottom:1px dashed #fff}.minimap{position:absolute;bottom:10px;right:10px}.minimap .minimap-coordinates{border-bottom:2px solid hsla(0,0%,100%,.2);font-family:Calibri;font-size:16px;font-weight:300;text-align:center}.minimap canvas{display:block}.main{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:750px;height:550px;margin:auto;padding-left:10px;padding-right:10px;display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row}.main .main-left,.main .main-right{width:calc(50% - 20px);margin:10px;display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column}.main .main-left{margin-top:50px}.main .main-left>*{margin:6px 0}.main .main-left .main-input{text-align:center}.main .main-left .main-input .btn{width:calc(50% - 10px);margin:0 5px}.main .main-right>.react-tabs{height:100%}.main .main-right>.react-tabs>ul{display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row}.main .main-right>.react-tabs>ul>li{font-size:20px}.main .main-right>.react-tabs>ul>li[aria-selected=true]{bottom:1px;margin:0 -1px;border:1px solid #aaa;border-bottom:none}.main .main-right>.react-tabs>ul>li:last-child,.main .main-right>.react-tabs>ul>li[aria-selected=false]{border-bottom:1px solid #aaa}.main .main-right>.react-tabs>ul>li:last-child{-ms-flex:1;flex:1;cursor:default}.main .main-right>.react-tabs>[role=tabpanel]{overflow:auto;display:-ms-flexbox;display:flex}.main .main-right .social{position:absolute;top:25px;right:20px}.main .main-right .social img{width:30px;height:30px}.main .main-right .social img:hover{filter:brightness(120%)}.skins>*{margin:8px 0}.skins .skin-img{border-radius:50%;display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.skins .skin-img:not([src]){content:url("data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==")}.skins .skin-selected{display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row}.skins .skin-selected .skin-add,.skins .skin-selected .skin-rem{-ms-flex:1;flex:1;-ms-flex-item-align:end;align-self:flex-end;opacity:.5;font-size:30px;cursor:pointer}.skins .skin-selected .skin-add:hover,.skins .skin-selected .skin-rem:hover{opacity:1}.skins .skin-selected .skin-rem{color:#d00}.skins .skin-selected .skin-add{color:#0d0}.skins .skin-selected .skin .skin-img{width:200px;height:200px}.skins .skin-selected .skin .skin-reflection{display:none}.skins .skin-list{max-width:100%;background:linear-gradient(180deg,rgba(50,50,50,.4) 50%,rgba(50,50,50,.6) 60%);padding:10px 6px 0;text-align:center;white-space:nowrap;overflow-x:scroll;overflow-y:hidden;-webkit-clip-path:inset(0 0);clip-path:inset(0 0)}.skins .skin-list .skin-item{display:inline-block;padding:0 4px;line-height:0}.skins .skin-list .skin-item:not(.selected){opacity:.6}.skins .skin-list .skin-item.placeholder{opacity:0}.skins .skin-list .skin-item .skin .skin-img{width:60px;height:60px}.skins .skin-list .skin-item .skin .skin-reflection{height:20px;overflow:hidden}.skins .skin-list .skin-item .skin .skin-reflection .skin-img{-webkit-mask-image:linear-gradient(0deg,rgba(0,0,0,.5) 0,transparent 25%);mask-image:linear-gradient(0deg,rgba(0,0,0,.5) 0,transparent 25%);transform:scaleY(-1)}.skins .inputs input{border:none;height:25px;color:#000;font-size:15px;text-indent:8px}.skins .inputs input:focus{box-shadow:0 0 8px rgba(0,255,255,.4)}.skins .inputs .team-name{margin-bottom:8px;display:-ms-flexbox;display:flex}.skins .inputs .team-name .team-input{width:90px;margin-right:7px}.skins .inputs .team-name .name-input{-ms-flex:1;flex:1}.skins .inputs .skin-input{width:100%}.servers{font-size:14px}.servers>.react-tabs{height:100%}.servers>.react-tabs>ul{margin:0}.servers>.react-tabs>ul>li[aria-selected=true]{background-color:rgba(50,50,50,.8)}.servers .picker-table .servers-table-name{min-width:100px}.servers .picker-table .servers-table-players{min-width:80px}.servers .picker-table .servers-table-mode{min-width:100px}.servers .picker-table .servers-table-ping{width:100%}.recordings{font-size:14px;-ms-flex-flow:column;flex-flow:column}.recordings,.recordings .player{display:-ms-flexbox;display:flex}.recordings .player{margin-bottom:8px}.recordings .player i{cursor:pointer}.recordings .player .record .fa.fa-circle{color:#c00}.recordings .player .playback{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex}.recordings .player .playback .fa{margin:0 5px}.recordings .player .playback .rc-slider{margin:0 8px}.recordings .player .inactive{pointer-events:none;filter:grayscale(100%) opacity(50%)}.recordings .picker-table .recordings-table-name{min-width:165px}.recordings .picker-table .recordings-table-size{min-width:75px}.recordings .picker-table .recordings-table-duration{min-width:65px}.recordings .picker-table .recordings-table-download{cursor:pointer;width:20px}.recordings .picker-table .recordings-table-download a{color:#fff}.recordings .picker-table .recordings-table-upload{cursor:pointer}.options{width:100%;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content;font-size:14px;background-color:rgba(50,50,50,.8);padding:10px}.options .option .rc-color-picker-wrap,.options .option input{margin-right:3px}.options .option>*{vertical-align:middle}.keys{width:100%;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content;font-size:14px;background-color:rgba(50,50,50,.8);padding:10px}.keys .key{display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row;margin:3px 0}.keys .key .key-picker{margin-right:4px;width:80px;border:1px solid #fff;border-radius:3px;background-color:#005096;text-align:center;vertical-align:middle;cursor:pointer}.keys .key .key-picker:focus{background-color:#00aae6}.keys .key input{-ms-flex:1;flex:1;border:none;color:#fff;background-color:#005096}.keys .key input:focus{background-color:#00aae6}.keys .key>*{height:20px;line-height:20px;vertical-align:middle}.name{font-family:Calibri;font-size:16px;font-weight:700}.react-contextmenu{z-index:4;visibility:hidden;min-width:160px;padding:5px 0;border:1px solid rgba(0,0,0,.15);border-radius:5px;background-color:#fff;background-clip:padding-box;text-align:left}.react-contextmenu.react-contextmenu--visible{visibility:visible}.react-contextmenu .react-contextmenu-item{display:inline-block;width:calc(100% - 20px);padding:3px 10px;font-size:16px;font-weight:400;line-height:1.3;text-align:inherit;text-decoration:none;cursor:pointer}.react-contextmenu .react-contextmenu-item:not(.react-contextmenu-item--disabled).active,.react-contextmenu .react-contextmenu-item:not(.react-contextmenu-item--disabled):hover{border-color:#0275d8;background-color:#0275d8;color:#fff}.chat-notify-container{position:absolute;bottom:10px;left:10px;width:400px}.chat-notify-container .notify-item{margin:0 0 6px;padding:10px;border-radius:3px;background-color:#1aa900;color:#fff;opacity:.8}.chat-notify-container .notify-item:hover{opacity:1;cursor:pointer}.chat-notify-container .notify-item .notify-title{display:none}.chat-notify-container .notify-item .notify-body{display:inline;font-family:Calibri;font-size:14px;font-weight:700;word-wrap:break-word}.chat-notify-container .notify-item .notify-body .emoji-mart-emoji{content:url("data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==");vertical-align:bottom}.chat-notify-container .chat{height:240px;border:2px solid hsla(0,0%,100%,.2);border-radius:0 0 5px 5px;font-family:Open Sans;font-size:14px}.chat-notify-container .chat.msg-height{width:396px;position:fixed;overflow-x:hidden;overflow-y:scroll;visibility:hidden}.chat-notify-container .chat .msg{line-height:20px}.chat-notify-container .chat .msg .context,.chat-notify-container .chat .msg .system{color:#dd0}.chat-notify-container .chat .msg .emoji-mart-emoji{content:url("data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==");vertical-align:bottom}.chat-notify-container .chat .msg div{display:inline-block}.chat-notify-container .chat .chat-input{background-color:#fff;border-radius:0 0 5px 5px}.chat-notify-container .chat .chat-input input{padding:0;width:calc(100% - 20px);height:20px;border:none;border-radius:0 0 0 5px;text-indent:5px}.chat-notify-container .chat .chat-input .emoji-input{width:20px;height:20px;vertical-align:top;cursor:pointer}.chat-notify-container .chat .chat-input .emoji-input:not(:hover){filter:grayscale(100%)}.chat-notify-container .chat .chat-input .emoji-picker{position:fixed;z-index:5;left:414px;bottom:7px}.chat-notify-container .chat .chat-input .emoji-picker .emoji-mart-preview{display:none}',
  13190. ""]);
  13191. }, function(module, next_scope, require) {
  13192. (function(URI) {
  13193. /**
  13194. * @param {(Array|Float32Array)} args
  13195. * @param {number} event
  13196. * @return {?}
  13197. */
  13198. function fn(args, event) {
  13199. var x = args[1] || "";
  13200. var options = args[3];
  13201. if (!options) {
  13202. return x;
  13203. }
  13204. if (event) {
  13205. var app = done(options);
  13206. var sig = options.sources.map(function(dataAndEvents) {
  13207. return "/*# sourceURL=" + options.sourceRoot + dataAndEvents + " */";
  13208. });
  13209. return[x].concat(sig).concat([app]).join("\n");
  13210. }
  13211. return[x].join("\n");
  13212. }
  13213. /**
  13214. * @param {?} what
  13215. * @return {?}
  13216. */
  13217. function done(what) {
  13218. var str = (new URI(JSON.stringify(what))).toString("base64");
  13219. /** @type {string} */
  13220. var msgs = "sourceMappingURL=data:application/json;charset=utf-8;base64," + str;
  13221. return "/*# " + msgs + " */";
  13222. }
  13223. /**
  13224. * @param {number} callback
  13225. * @return {?}
  13226. */
  13227. module.exports = function(callback) {
  13228. /** @type {Array} */
  13229. var data = [];
  13230. return data.toString = function() {
  13231. return this.map(function(next) {
  13232. var actual = fn(next, callback);
  13233. return next[2] ? "@media " + next[2] + "{" + actual + "}" : actual;
  13234. }).join("");
  13235. }, data.i = function(obj, showHidden) {
  13236. if ("string" == typeof obj) {
  13237. /** @type {Array} */
  13238. obj = [[null, obj, ""]];
  13239. }
  13240. var map = {};
  13241. /** @type {number} */
  13242. var i = 0;
  13243. for (;i < this.length;i++) {
  13244. var objUid = this[i][0];
  13245. if ("number" == typeof objUid) {
  13246. /** @type {boolean} */
  13247. map[objUid] = true;
  13248. }
  13249. }
  13250. /** @type {number} */
  13251. i = 0;
  13252. for (;i < obj.length;i++) {
  13253. var seg = obj[i];
  13254. if (!("number" == typeof seg[0] && map[seg[0]])) {
  13255. if (showHidden && !seg[2]) {
  13256. /** @type {Function} */
  13257. seg[2] = showHidden;
  13258. } else {
  13259. if (showHidden) {
  13260. /** @type {string} */
  13261. seg[2] = "(" + seg[2] + ") and (" + showHidden + ")";
  13262. }
  13263. }
  13264. data.push(seg);
  13265. }
  13266. }
  13267. }, data;
  13268. };
  13269. }).call(next_scope, require(20).Buffer);
  13270. }, function(module, dataAndEvents, deepDataAndEvents) {
  13271. /** @type {RegExp} */
  13272. var r20 = /[|\\{}()[\]^$+*?.]/g;
  13273. /**
  13274. * @param {number} callback
  13275. * @return {?}
  13276. */
  13277. module.exports = function(callback) {
  13278. if ("string" != typeof callback) {
  13279. throw new TypeError("Expected a string");
  13280. }
  13281. return callback.replace(r20, "\\$&");
  13282. };
  13283. }, function(module, dataAndEvents, $sanitize) {
  13284. var $ = $sanitize(0);
  13285. var JsDiff = $.createClass({
  13286. displayName : "Notify",
  13287. key : 0,
  13288. /**
  13289. * @return {?}
  13290. */
  13291. getInitialState : function() {
  13292. return{};
  13293. },
  13294. /**
  13295. * @param {string} status
  13296. * @param {string} resp
  13297. * @param {number} opt_attributes
  13298. * @return {undefined}
  13299. */
  13300. success : function(status, resp, opt_attributes) {
  13301. this.addNotify(status, resp, opt_attributes, "success");
  13302. },
  13303. /**
  13304. * @param {string} status
  13305. * @param {string} opt_exception
  13306. * @param {number} opt_attributes
  13307. * @return {undefined}
  13308. */
  13309. error : function(status, opt_exception, opt_attributes) {
  13310. this.addNotify(status, opt_exception, opt_attributes, "error");
  13311. },
  13312. /**
  13313. * @param {string} property
  13314. * @param {string} opt_exception
  13315. * @param {number} opt_attributes
  13316. * @return {undefined}
  13317. */
  13318. info : function(property, opt_exception, opt_attributes) {
  13319. this.addNotify(property, opt_exception, opt_attributes, "info");
  13320. },
  13321. /**
  13322. * @param {string} value
  13323. * @param {string} msg
  13324. * @param {number} opt_attributes
  13325. * @param {string} severity
  13326. * @return {undefined}
  13327. */
  13328. addNotify : function(value, msg, opt_attributes, severity) {
  13329. /** @type {number} */
  13330. var k = this.key++;
  13331. this.state[k] = {
  13332. title : value,
  13333. msg : msg,
  13334. time : opt_attributes,
  13335. theme : severity
  13336. };
  13337. this.setState(this.state);
  13338. this.countToHide(opt_attributes, k);
  13339. },
  13340. /**
  13341. * @param {number} threshold
  13342. * @param {Object} name
  13343. * @return {undefined}
  13344. */
  13345. countToHide : function(threshold, name) {
  13346. var rparentsprev = this;
  13347. setTimeout(function() {
  13348. rparentsprev.hideNotification(name);
  13349. }, threshold);
  13350. },
  13351. /**
  13352. * @param {Object} name
  13353. * @return {undefined}
  13354. */
  13355. hideNotification : function(name) {
  13356. delete this.state[name];
  13357. this.setState(this.state);
  13358. },
  13359. /**
  13360. * @return {?}
  13361. */
  13362. render : function() {
  13363. /** @type {Array.<string>} */
  13364. var value = Object.keys(this.state);
  13365. var obj = this.state;
  13366. var hideNotification = this.hideNotification;
  13367. /** @type {Array.<?>} */
  13368. var dim = value.map(function(i) {
  13369. return $.createElement(elem, {
  13370. id : i,
  13371. key : i,
  13372. theme : obj[i].theme,
  13373. hideNotification : hideNotification,
  13374. title : obj[i].title,
  13375. msg : obj[i].msg
  13376. });
  13377. });
  13378. return $.createElement("div", {
  13379. className : "notify-container"
  13380. }, dim);
  13381. }
  13382. });
  13383. var elem = $.createClass({
  13384. displayName : "Item",
  13385. /**
  13386. * @return {undefined}
  13387. */
  13388. hideNotification : function() {
  13389. this.props.hideNotification(this.props.id);
  13390. },
  13391. /**
  13392. * @return {?}
  13393. */
  13394. render : function() {
  13395. return $.createElement("div", {
  13396. className : "notify-item " + this.props.theme,
  13397. onClick : this.hideNotification
  13398. }, $.createElement("p", {
  13399. className : "notify-title"
  13400. }, this.props.title), $.createElement("p", {
  13401. className : "notify-body"
  13402. }, this.props.msg));
  13403. }
  13404. });
  13405. module.exports = JsDiff;
  13406. }, function(module, dataAndEvents) {
  13407. /**
  13408. * @param {Array} args
  13409. * @param {Object} index
  13410. * @return {undefined}
  13411. */
  13412. function start(args, index) {
  13413. /** @type {number} */
  13414. var idx = 0;
  13415. for (;idx < args.length;idx++) {
  13416. var me = args[idx];
  13417. var data = item[me.id];
  13418. if (data) {
  13419. data.refs++;
  13420. /** @type {number} */
  13421. var i = 0;
  13422. for (;i < data.parts.length;i++) {
  13423. data.parts[i](me.parts[i]);
  13424. }
  13425. for (;i < me.parts.length;i++) {
  13426. data.parts.push(animate(me.parts[i], index));
  13427. }
  13428. } else {
  13429. /** @type {Array} */
  13430. var parts = [];
  13431. /** @type {number} */
  13432. i = 0;
  13433. for (;i < me.parts.length;i++) {
  13434. parts.push(animate(me.parts[i], index));
  13435. }
  13436. item[me.id] = {
  13437. id : me.id,
  13438. refs : 1,
  13439. parts : parts
  13440. };
  13441. }
  13442. }
  13443. }
  13444. /**
  13445. * @param {?} source
  13446. * @return {?}
  13447. */
  13448. function debug(source) {
  13449. /** @type {Array} */
  13450. var disabled = [];
  13451. var parts = {};
  13452. /** @type {number} */
  13453. var i = 0;
  13454. for (;i < source.length;i++) {
  13455. var node = source[i];
  13456. var id = node[0];
  13457. var prop = node[1];
  13458. var q = node[2];
  13459. var rawParams = node[3];
  13460. var params = {
  13461. css : prop,
  13462. media : q,
  13463. sourceMap : rawParams
  13464. };
  13465. if (parts[id]) {
  13466. parts[id].parts.push(params);
  13467. } else {
  13468. disabled.push(parts[id] = {
  13469. id : id,
  13470. parts : [params]
  13471. });
  13472. }
  13473. }
  13474. return disabled;
  13475. }
  13476. /**
  13477. * @param {Object} state
  13478. * @param {Element} element
  13479. * @return {undefined}
  13480. */
  13481. function init(state, element) {
  13482. var head = evaluate();
  13483. var lastLink = elements[elements.length - 1];
  13484. if ("top" === state.insertAt) {
  13485. if (lastLink) {
  13486. if (lastLink.nextSibling) {
  13487. head.insertBefore(element, lastLink.nextSibling);
  13488. } else {
  13489. head.appendChild(element);
  13490. }
  13491. } else {
  13492. head.insertBefore(element, head.firstChild);
  13493. }
  13494. elements.push(element);
  13495. } else {
  13496. if ("bottom" !== state.insertAt) {
  13497. throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
  13498. }
  13499. head.appendChild(element);
  13500. }
  13501. }
  13502. /**
  13503. * @param {Element} el
  13504. * @return {undefined}
  13505. */
  13506. function remove(el) {
  13507. el.parentNode.removeChild(el);
  13508. /** @type {number} */
  13509. var index = elements.indexOf(el);
  13510. if (index >= 0) {
  13511. elements.splice(index, 1);
  13512. }
  13513. }
  13514. /**
  13515. * @param {Object} doc
  13516. * @return {?}
  13517. */
  13518. function render(doc) {
  13519. /** @type {Element} */
  13520. var element = document.createElement("style");
  13521. return element.type = "text/css", init(doc, element), element;
  13522. }
  13523. /**
  13524. * @param {Object} doc
  13525. * @return {?}
  13526. */
  13527. function inject(doc) {
  13528. /** @type {Element} */
  13529. var element = document.createElement("link");
  13530. return element.rel = "stylesheet", init(doc, element), element;
  13531. }
  13532. /**
  13533. * @param {Object} options
  13534. * @param {Object} i
  13535. * @return {?}
  13536. */
  13537. function animate(options, i) {
  13538. var e;
  13539. var transform;
  13540. var fn;
  13541. if (i.singleton) {
  13542. /** @type {number} */
  13543. var args = v++;
  13544. e = result || (result = render(i));
  13545. transform = callback.bind(null, e, args, false);
  13546. fn = callback.bind(null, e, args, true);
  13547. } else {
  13548. if (options.sourceMap && ("function" == typeof URL && ("function" == typeof URL.createObjectURL && ("function" == typeof URL.revokeObjectURL && ("function" == typeof Blob && "function" == typeof btoa))))) {
  13549. e = inject(i);
  13550. transform = compile.bind(null, e);
  13551. /**
  13552. * @return {undefined}
  13553. */
  13554. fn = function() {
  13555. remove(e);
  13556. if (e.href) {
  13557. URL.revokeObjectURL(e.href);
  13558. }
  13559. };
  13560. } else {
  13561. e = render(i);
  13562. transform = create.bind(null, e);
  13563. /**
  13564. * @return {undefined}
  13565. */
  13566. fn = function() {
  13567. remove(e);
  13568. };
  13569. }
  13570. }
  13571. return transform(options), function(data) {
  13572. if (data) {
  13573. if (data.css === options.css && (data.media === options.media && data.sourceMap === options.sourceMap)) {
  13574. return;
  13575. }
  13576. transform(options = data);
  13577. } else {
  13578. fn();
  13579. }
  13580. };
  13581. }
  13582. /**
  13583. * @param {Node} element
  13584. * @param {?} key
  13585. * @param {boolean} success
  13586. * @param {Object} options
  13587. * @return {undefined}
  13588. */
  13589. function callback(element, key, success, options) {
  13590. var message = success ? "" : options.css;
  13591. if (element.styleSheet) {
  13592. element.styleSheet.cssText = emit(key, message);
  13593. } else {
  13594. /** @type {Text} */
  13595. var i = document.createTextNode(message);
  13596. var children = element.childNodes;
  13597. if (children[key]) {
  13598. element.removeChild(children[key]);
  13599. }
  13600. if (children.length) {
  13601. element.insertBefore(i, children[key]);
  13602. } else {
  13603. element.appendChild(i);
  13604. }
  13605. }
  13606. }
  13607. /**
  13608. * @param {Node} element
  13609. * @param {Object} el
  13610. * @return {undefined}
  13611. */
  13612. function create(element, el) {
  13613. var css = el.css;
  13614. var end = el.media;
  13615. if (end && element.setAttribute("media", end), element.styleSheet) {
  13616. element.styleSheet.cssText = css;
  13617. } else {
  13618. for (;element.firstChild;) {
  13619. element.removeChild(element.firstChild);
  13620. }
  13621. element.appendChild(document.createTextNode(css));
  13622. }
  13623. }
  13624. /**
  13625. * @param {StyleSheet} o
  13626. * @param {Object} options
  13627. * @return {undefined}
  13628. */
  13629. function compile(o, options) {
  13630. var json = options.css;
  13631. var files = options.sourceMap;
  13632. if (files) {
  13633. json += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(files)))) + " */";
  13634. }
  13635. /** @type {Blob} */
  13636. var blob = new Blob([json], {
  13637. type : "text/css"
  13638. });
  13639. var url = o.href;
  13640. o.href = URL.createObjectURL(blob);
  13641. if (url) {
  13642. URL.revokeObjectURL(url);
  13643. }
  13644. }
  13645. var item = {};
  13646. /**
  13647. * @param {Function} matcherFunction
  13648. * @return {?}
  13649. */
  13650. var wrapTracking = function(matcherFunction) {
  13651. var returnValue;
  13652. return function() {
  13653. return "undefined" == typeof returnValue && (returnValue = matcherFunction.apply(this, arguments)), returnValue;
  13654. };
  13655. };
  13656. var getActual = wrapTracking(function() {
  13657. return/msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase());
  13658. });
  13659. var evaluate = wrapTracking(function() {
  13660. return document.head || document.getElementsByTagName("head")[0];
  13661. });
  13662. /** @type {null} */
  13663. var result = null;
  13664. /** @type {number} */
  13665. var v = 0;
  13666. /** @type {Array} */
  13667. var elements = [];
  13668. /**
  13669. * @param {number} callback
  13670. * @param {Object} options
  13671. * @return {?}
  13672. */
  13673. module.exports = function(callback, options) {
  13674. if ("undefined" != typeof DEBUG && (DEBUG && "object" != typeof document)) {
  13675. throw new Error("The style-loader cannot be used in a non-browser environment");
  13676. }
  13677. options = options || {};
  13678. if ("undefined" == typeof options.singleton) {
  13679. options.singleton = getActual();
  13680. }
  13681. if ("undefined" == typeof options.insertAt) {
  13682. /** @type {string} */
  13683. options.insertAt = "bottom";
  13684. }
  13685. var a = debug(callback);
  13686. return start(a, options), function(arg) {
  13687. /** @type {Array} */
  13688. var parts = [];
  13689. /** @type {number} */
  13690. var i = 0;
  13691. for (;i < a.length;i++) {
  13692. var next = a[i];
  13693. var part = item[next.id];
  13694. part.refs--;
  13695. parts.push(part);
  13696. }
  13697. if (arg) {
  13698. var typePattern = debug(arg);
  13699. start(typePattern, options);
  13700. }
  13701. /** @type {number} */
  13702. i = 0;
  13703. for (;i < parts.length;i++) {
  13704. part = parts[i];
  13705. if (0 === part.refs) {
  13706. /** @type {number} */
  13707. var j = 0;
  13708. for (;j < part.parts.length;j++) {
  13709. part.parts[j]();
  13710. }
  13711. delete item[part.id];
  13712. }
  13713. }
  13714. };
  13715. };
  13716. var emit = function() {
  13717. /** @type {Array} */
  13718. var files = [];
  13719. return function(name, file) {
  13720. return files[name] = file, files.filter(Boolean).join("\n");
  13721. };
  13722. }();
  13723. }, function(options, dataAndEvents, require) {
  13724. var app = require(44);
  13725. if ("string" == typeof app) {
  13726. /** @type {Array} */
  13727. app = [[options.i, app, ""]];
  13728. }
  13729. require(48)(app, {});
  13730. if (app.locals) {
  13731. options.exports = app.locals;
  13732. }
  13733. }, function(module, dataAndEvents, require) {
  13734. var util = require(25);
  13735. /**
  13736. * @param {number} obj
  13737. * @param {Blob} task
  13738. * @return {?}
  13739. */
  13740. module.exports = function(obj, task) {
  13741. return new Promise(function(_callback, $) {
  13742. /**
  13743. * @return {?}
  13744. */
  13745. function init() {
  13746. switch(obj.type.toLowerCase()) {
  13747. case "form":
  13748. return setup({
  13749. "Content-Type" : "multipart/form-data"
  13750. }), "[object FormData]" === Object.prototype.toString.call(obj.data) ? obj.data : new FormData(obj.data);
  13751. case "url":
  13752. return setup({
  13753. "Content-Type" : "application/x-www-form-urlencoded"
  13754. }), util.stringify(obj.data);
  13755. case "json":
  13756. return setup({
  13757. "Content-Type" : "application/json"
  13758. }), cb(obj.data) ? obj.data : JSON.stringify(obj.data);
  13759. default:
  13760. return obj.data;
  13761. }
  13762. }
  13763. /**
  13764. * @param {?} opt_attributes
  13765. * @return {undefined}
  13766. */
  13767. function setup(opt_attributes) {
  13768. var h;
  13769. for (h in opt_attributes) {
  13770. request.setRequestHeader(h, opt_attributes[h]);
  13771. }
  13772. }
  13773. /**
  13774. * @param {?} res
  13775. * @return {?}
  13776. */
  13777. function cb(res) {
  13778. try {
  13779. return JSON.parse(res), true;
  13780. } catch (e) {
  13781. return false;
  13782. }
  13783. }
  13784. /**
  13785. * @param {(XDomainRequest|XMLHttpRequest)} request
  13786. * @return {?}
  13787. */
  13788. function callback(request) {
  13789. return function() {
  13790. var expectationResult = request.getAllResponseHeaders();
  13791. return next(expectationResult);
  13792. };
  13793. }
  13794. /**
  13795. * @param {string} result
  13796. * @return {?}
  13797. */
  13798. function next(result) {
  13799. var flags = {};
  13800. if (!result) {
  13801. return flags;
  13802. }
  13803. var codeSegments = result.split("\r\n");
  13804. /** @type {number} */
  13805. var i = 0;
  13806. for (;i < codeSegments.length;i++) {
  13807. var part = codeSegments[i];
  13808. var index = part.indexOf(": ");
  13809. if (index > 0) {
  13810. var key = part.substring(0, index);
  13811. var value = part.substring(index + 2);
  13812. flags[key] = value;
  13813. }
  13814. }
  13815. return flags;
  13816. }
  13817. if (!obj || obj + "" != "[object Object]") {
  13818. return void $('No required parameters - "url" and "method".');
  13819. }
  13820. if (!obj.url) {
  13821. return void $('Parameter "url" is required.');
  13822. }
  13823. if (!obj.method) {
  13824. return void $('Parameter "method" is required.');
  13825. }
  13826. /** @type {XMLHttpRequest} */
  13827. var request = new XMLHttpRequest;
  13828. request.open(obj.method, obj.url, true);
  13829. if (obj.data) {
  13830. obj.data = init();
  13831. }
  13832. if (obj.headers) {
  13833. setup(obj.headers);
  13834. }
  13835. /**
  13836. * @return {undefined}
  13837. */
  13838. request.onload = function() {
  13839. if (4 === request.readyState && 200 === request.status) {
  13840. try {
  13841. _callback({
  13842. response : JSON.parse(request.response),
  13843. headers : callback(request),
  13844. data : task
  13845. });
  13846. } catch (e) {
  13847. _callback({
  13848. response : request.response,
  13849. headers : callback(request),
  13850. data : task
  13851. });
  13852. }
  13853. } else {
  13854. $(request);
  13855. }
  13856. };
  13857. /**
  13858. * @return {undefined}
  13859. */
  13860. request.onerror = function() {
  13861. $(request);
  13862. };
  13863. request.send(obj.data);
  13864. });
  13865. };
  13866. }, function(module, dataAndEvents) {
  13867. module.exports = CRC32;
  13868. }, function(module, dataAndEvents) {
  13869. module.exports = Dexie;
  13870. }, function(module, dataAndEvents) {
  13871. module.exports = EmojiMart;
  13872. }, function(module, dataAndEvents) {
  13873. module.exports = Infinite;
  13874. }, function(module, dataAndEvents) {
  13875. module.exports = ReactContextMenu;
  13876. }, function(module, dataAndEvents) {
  13877. module.exports = Reorder;
  13878. }, function(module, dataAndEvents) {
  13879. module.exports = pako;
  13880. }, function(value, dataAndEvents) {
  13881. value.exports = window["rc-color-picker"];
  13882. }, function(dataAndEvents, deepDataAndEvents, require) {
  13883. /**
  13884. * @param {string} options
  13885. * @return {?}
  13886. */
  13887. function defaults(options) {
  13888. return options && options.__esModule ? options : {
  13889. default : options
  13890. };
  13891. }
  13892. /**
  13893. * @param {number} results
  13894. * @return {?}
  13895. */
  13896. function makeArray(results) {
  13897. if (Array.isArray(results)) {
  13898. /** @type {number} */
  13899. var i = 0;
  13900. /** @type {Array} */
  13901. var result = Array(results.length);
  13902. for (;i < results.length;i++) {
  13903. result[i] = results[i];
  13904. }
  13905. return result;
  13906. }
  13907. return Array.from(results);
  13908. }
  13909. /**
  13910. * @param {Function} matcherFunction
  13911. * @return {?}
  13912. */
  13913. function compose(matcherFunction) {
  13914. return function() {
  13915. var a = matcherFunction.apply(this, arguments);
  13916. return new Promise(function(isNumber, fire) {
  13917. /**
  13918. * @param {string} action
  13919. * @param {?} elem
  13920. * @return {?}
  13921. */
  13922. function next(action, elem) {
  13923. try {
  13924. var q = a[action](elem);
  13925. var val = q.value;
  13926. } catch (memory) {
  13927. return void fire(memory);
  13928. }
  13929. return q.done ? void isNumber(val) : Promise.resolve(val).then(function(arg) {
  13930. next("next", arg);
  13931. }, function(arg) {
  13932. next("throw", arg);
  13933. });
  13934. }
  13935. return next("next");
  13936. });
  13937. };
  13938. }
  13939. var throttledUpdate = function() {
  13940. var matcherFunction = compose(regeneratorRuntime.mark(function wrap() {
  13941. return regeneratorRuntime.wrap(function(current) {
  13942. for (;;) {
  13943. switch(current.prev = current.next) {
  13944. case 0:
  13945. self.default.load.apply(self.default, makeArray(opts.default.css).concat(makeArray(opts.default.js), [function() {
  13946. var fn = require(16).default;
  13947. new fn;
  13948. }]));
  13949. case 1:
  13950. ;
  13951. case "end":
  13952. return current.stop();
  13953. }
  13954. }
  13955. }, wrap, this);
  13956. }));
  13957. return function() {
  13958. return matcherFunction.apply(this, arguments);
  13959. };
  13960. }();
  13961. var conf = require(17);
  13962. var self = defaults(conf);
  13963. var options = require(15);
  13964. var opts = defaults(options);
  13965. throttledUpdate();
  13966. }]);
Add Comment
Please, Sign In to add comment