tic-tac-toe-engine
Version:
Business logic of a Tic Tac Toe game.
3 lines • 167 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.starWarsNames=e():t.starWarsNames=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(16),o=i(r),a=n(15),u=i(a),s=function(t,e){var n=(0,o["default"])(t,e),i=(0,u["default"])(n.present);return{store:n.store,actions:i}};e["default"]=s},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(5),o=n(2),a=i(o),u=n(3),s=i(u),c=s["default"].grid,h=(s["default"].gameType,s["default"].gameStatus,s["default"].player,s["default"].session,s["default"].showJoinSessionForm),f=s["default"].submittedSession,l=s["default"].move,d=s["default"].turn,p=s["default"].turnSwitch,g=(s["default"].quit,s["default"].restart),b=s["default"].done;e["default"]={initializeGrid:(0,r.createAction)(a["default"].INITIALIZE_GRID,function(t){return{grid:t}}),initiateMarkGrid:(0,r.createAction)(a["default"].INITIATE_MARK_GRID,function(t){return{move:t}}),markGrid:(0,r.createAction)(a["default"].MARK_GRID,function(t){return{grid:t,move:l,turnSwitch:!0}}),setGameType:(0,r.createAction)(a["default"].SET_GAME_TYPE,function(t){return{gameType:t}}),startLocalGame:(0,r.createAction)(a["default"].START_LOCAL_GAME,function(){return{turnSwitch:!0}}),hostSession:(0,r.createAction)(a["default"].HOST_SESSION,function(t){return{player:"X",gameStatus:"Waiting for player to join game!",session:t}}),showJoinSessionForm:(0,r.createAction)(a["default"].SHOW_JOIN_SESSION_FORM,function(){return{showJoinSessionForm:!0}}),joinSession:(0,r.createAction)(a["default"].JOIN_SESSION,function(t){return{player:"O",submittedSession:f,showJoinSessionForm:h,turnSwitch:!0,session:t}}),wrongSession:(0,r.createAction)(a["default"].WRONG_SESSION,function(){return{submittedSession:f}}),submitSession:(0,r.createAction)(a["default"].SUBMIT_SESSION,function(t){return{submittedSession:t}}),turnSwitch:(0,r.createAction)(a["default"].TURN_SWITCH,function(t,e){return{turn:t,gameStatus:e,turnSwitch:p}}),initiateQuit:(0,r.createAction)(a["default"].INITIATE_QUIT,function(){return{quit:!0}}),initiateRestart:(0,r.createAction)(a["default"].INITIATE_RESTART,function(){return{restart:!0}}),quit:(0,r.createAction)(a["default"].QUIT,function(){return s["default"]}),restart:(0,r.createAction)(a["default"].RESTART,function(){return{move:l,turn:d,restart:g,done:b,grid:c}}),finished:(0,r.createAction)(a["default"].FINISHED,function(t){return{gameStatus:t,done:!0}})}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]={INITIALIZE_GRID:"INITIALIZE_GRID",INITIATE_MARK_GRID:"INITIATE_MARK_GRID",MARK_GRID:"MARK_GRID",SET_GAME_TYPE:"SET_GAME_TYPE",START_LOCAL_GAME:"START_LOCAL_GAME",HOST_SESSION:"HOST_SESSION",SHOW_JOIN_SESSION_FORM:"SHOW_JOIN_SESSION_FORM",JOIN_SESSION:"JOIN_SESSION",WRONG_SESSION:"WRONG_SESSION",SUBMIT_SESSION:"SUBMIT_SESSION",TURN_SWITCH:"TURN_SWITCH",INITIATE_QUIT:"INITIATE_QUIT",INITIATE_RESTART:"INITIATE_RESTART",QUIT:"QUIT",RESTART:"RESTART",FINISHED:"FINISHED"}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e["default"]={grid:{cells:[],cellSets:[],sets:[],finished:!1,winner:!1,movesTaken:0,initialized:!1,size:3},gameType:"",gameStatus:"Please select a game mode!",player:"",session:"",showJoinSessionForm:!1,submittedSession:"",move:-1,turn:"",turnSwitch:!1,quit:!1,restart:!1,done:!1}},function(t,e,n){"use strict";function i(t){return"function"==typeof t}function r(t,e){return function(n,r){if(r.type!==t)return n;var a=o.isError(r)?"throw":"next";i(e)&&(e.next=e["throw"]=e);var u=e[a];return i(u)?u(n,r):n}}e.__esModule=!0,e["default"]=r;var o=n(26);t.exports=e["default"]},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var r=n(23),o=i(r),a=n(4),u=i(a),s=n(24),c=i(s);e.createAction=o["default"],e.handleAction=u["default"],e.handleActions=c["default"]},function(t,e){function n(t){return function(e){return null==e?void 0:e[t]}}function i(t){return o(t)&&g.call(t,"callee")&&(!v.call(t,"callee")||b.call(t)==f)}function r(t){return null!=t&&u(y(t))&&!a(t)}function o(t){return c(t)&&r(t)}function a(t){var e=s(t)?b.call(t):"";return e==l||e==d}function u(t){return"number"==typeof t&&t>-1&&t%1==0&&h>=t}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function c(t){return!!t&&"object"==typeof t}var h=9007199254740991,f="[object Arguments]",l="[object Function]",d="[object GeneratorFunction]",p=Object.prototype,g=p.hasOwnProperty,b=p.toString,v=p.propertyIsEnumerable,y=n("length");t.exports=i},function(t,e){"use strict";function n(){for(var t=arguments.length,e=Array(t),n=0;t>n;n++)e[n]=arguments[n];if(0===e.length)return function(t){return t};var i=function(){var t=e[e.length-1],n=e.slice(0,-1);return{v:function(){return n.reduceRight(function(t,e){return e(t)},t.apply(void 0,arguments))}}}();return"object"==typeof i?i.v:void 0}e.__esModule=!0,e["default"]=n},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e,n){function i(){v===b&&(v=b.slice())}function o(){return g}function u(t){if("function"!=typeof t)throw new Error("Expected listener to be a function.");var e=!0;return i(),v.push(t),function(){if(e){e=!1,i();var n=v.indexOf(t);v.splice(n,1)}}}function h(t){if(!(0,a["default"])(t))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"==typeof t.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(y)throw new Error("Reducers may not dispatch actions.");try{y=!0,g=p(g,t)}finally{y=!1}for(var e=b=v,n=0;n<e.length;n++)e[n]();return t}function f(t){if("function"!=typeof t)throw new Error("Expected the nextReducer to be a function.");p=t,h({type:c.INIT})}function l(){var t,e=u;return t={subscribe:function(t){function n(){t.next&&t.next(o())}if("object"!=typeof t)throw new TypeError("Expected the observer to be an object.");n();var i=e(n);return{unsubscribe:i}}},t[s["default"]]=function(){return this},t}var d;if("function"==typeof e&&"undefined"==typeof n&&(n=e,e=void 0),"undefined"!=typeof n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(r)(t,e)}if("function"!=typeof t)throw new Error("Expected the reducer to be a function.");var p=t,g=e,b=[],v=b,y=!1;return h({type:c.INIT}),d={dispatch:h,subscribe:u,getState:o,replaceReducer:f},d[s["default"]]=l,d}e.__esModule=!0,e.ActionTypes=void 0,e["default"]=r;var o=n(11),a=i(o),u=n(38),s=i(u),c=e.ActionTypes={INIT:"@@redux/INIT"}},function(t,e,n){(function(t){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(){}e.__esModule=!0,e.compose=e.applyMiddleware=e.bindActionCreators=e.combineReducers=e.createStore=void 0;var o=n(8),a=i(o),u=n(34),s=i(u),c=n(33),h=i(c),f=n(32),l=i(f),d=n(7),p=i(d),g=n(10),b=i(g);"production"!==t.env.NODE_ENV&&"string"==typeof r.name&&"isCrushed"!==r.name&&(0,b["default"])("You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) to ensure you have the correct code for your production build."),e.createStore=a["default"],e.combineReducers=s["default"],e.bindActionCreators=h["default"],e.applyMiddleware=l["default"],e.compose=p["default"]}).call(e,n(12))},function(t,e){"use strict";function n(t){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(t);try{throw new Error(t)}catch(e){}}e.__esModule=!0,e["default"]=n},function(t,e,n){function i(t){if(!a(t)||l.call(t)!=u||o(t))return!1;var e=r(t);if(null===e)return!0;var n=h.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==f}var r=n(35),o=n(36),a=n(37),u="[object Object]",s=Object.prototype,c=Function.prototype.toString,h=s.hasOwnProperty,f=c.call(Object),l=s.toString;t.exports=i},function(t,e){function n(){c&&a&&(c=!1,a.length?s=a.concat(s):h=-1,s.length&&i())}function i(){if(!c){var t=setTimeout(n);c=!0;for(var e=s.length;e;){for(a=s,s=[];++h<e;)a&&a[h].run();h=-1,e=s.length}a=null,c=!1,clearTimeout(t)}}function r(t,e){this.fun=t,this.array=e}function o(){}var a,u=t.exports={},s=[],c=!1,h=-1;u.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];s.push(new r(t,e)),1!==s.length||c||setTimeout(i,0)},r.prototype.run=function(){this.fun.apply(null,this.array)},u.title="browser",u.browser=!0,u.env={},u.argv=[],u.version="",u.versions={},u.on=o,u.addListener=o,u.once=o,u.off=o,u.removeListener=o,u.removeAllListeners=o,u.emit=o,u.binding=function(t){throw new Error("process.binding is not supported")},u.cwd=function(){return"/"},u.chdir=function(t){throw new Error("process.chdir is not supported")},u.umask=function(){return 0}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),o=i(r),a=n(22),u=i(a),s=n(14),c=function(t){return""!==t?"X"===t?"O":"X":Math.random()>.5?"X":"O"},h=function(t){var e=new u["default"](t),n=void 0,i=function(t,e){var n=(0,s.generateSquareGrid)(t.grid.size),i=Object.assign({},t.grid,n,{initialized:!0});e(o["default"].initializeGrid(i))},r=function(t,e){var n=t.move,i=t.turn,r=t.grid,a=(0,s.markGrid)(r,n,i);e(o["default"].markGrid(a))},a=function(t,e){var i=t.move,r=t.turn,o=t.grid;n.child("move").set({cellIndex:i,mark:r,grid:o})},h=function(t,i){e.child("sessions").push({status:"Yayy!"}).then(function(t){n=t;var e=n.key();S(e,i),i(o["default"].hostSession(e))})},f=function(t,e){e(o["default"].showJoinSessionForm())},l=function(t,i){var r=t.submittedSession;e.child("sessions").child(r).once("value",function(t){t.exists()?(n=e.child("sessions").child(r),S(r,i),i(o["default"].joinSession(r))):i(o["default"].wrongSession())})},d=function(t,e){var n=c(t.turn);e(o["default"].turnSwitch(n,n+"'s turn"))},p=function(t,e){var i=c(t.turn);n.child("turn").set(i)},g=function(t,e){e(o["default"].quit())},b=function(t,i){n.child("status").set("Quit",function(n){e.child("sessions").child(t.session).remove()})},v=function(t,e){e(o["default"].restart())},y=function(t,e){n.update({status:"Restart",turn:null},function(t){n.update({status:"Restarted"},function(t){})})},m=function(t,e){var n=t.grid.winner?t.turn+" won!":"It's a Draw!";e(o["default"].finished(n))},w=function(t,e){e(o["default"].startLocalGame())},S=function(t,i){n.child("move").on("value",function(t){var e=t.val();if(e){var n=e.cellIndex,r=e.mark,a=e.grid,u=(0,s.markGrid)(a,n,r);i(o["default"].markGrid(u))}}),n.child("turn").on("value",function(t){var e=t.val();e&&i(o["default"].turnSwitch(e,e+"'s turn"))}),n.child("status").on("value",function(t){var e=t.val();if(e)switch(e){case"Quit":i(o["default"].quit());break;case"Restart":i(o["default"].restart())}}),e.child("sessions").on("child_removed",function(e){e.key()===t&&i(o["default"].quit())}),void 0!==window&&(window.onbeforeunload=function(n){e.child("sessions").child(t).remove()})};return{initializeGridAction:i,localMarkGridAction:r,onlineMarkGridAction:a,hostSessionAction:h,joinSessionAction:l,setShowJoinSessionFormAction:f,localTurnSwitchAction:d,onlineTurnSwitchAction:p,localQuitAction:g,onlineQuitAction:b,localRestartAction:v,onlineRestartAction:y,finishedAction:m,startLocalGameAction:w}};e["default"]=h},function(t,e){"use strict";function n(t){for(var e=[],n=Math.pow(t,2),i=0;n>i;i++)e.push("");var o=r(t);return o.cells=e,o}function i(t,e,n){var i=t.movesTaken+1,r=t.cellSets,a=t.initialized,u=t.size,s=t.cells.map(function(t,i){return i===e?n:t}),c=r[e],h=t.sets.map(function(t,e){return-1===c.indexOf(e)||""!==t.mark&&t.mark!==n?t:{mark:n,count:t.count+1}}),f=o(h,u),l=f;return l=i!==Math.pow(u,2)||f?l:!0,{cells:s,sets:h,cellSets:r,movesTaken:i,finished:l,initialized:a,size:u,winner:f}}function r(t){var e=[],n=[];return a(t,e,n),u(t,e,n),c(t,e,n),s(t,e,n),{sets:e,cellSets:n}}function o(t,e){for(var n=0;n<t.length;n++){var i=t[n];if(i.count===e)return!0}return!1}function a(t,e,n){for(var i=0;t>i;i++)for(var r=h(e),o=0;t>o;o++){var a=t*o+i;void 0===n[a]&&(n[a]=[]),n[a].push(r)}}function u(t,e,n){for(var i=0;t>i;i++)for(var r=h(e),o=0;t>o;o++){var a=t*i+o;void 0===n[a]&&(n[a]=[]),n[a].push(r)}}function s(t,e,n){for(var i=h(e),r=t-1,o=0;t>o;o++){var a=r*o+r;void 0===n[a]&&(n[a]=[]),n[a].push(i)}}function c(t,e,n){for(var i=h(e),r=0;t>r;r++){var o=t*r+r;void 0===n[o]&&(n[o]=[]),n[o].push(i)}}function h(t){return t.push({mark:"",count:0})-1}Object.defineProperty(e,"__esModule",{value:!0}),e.generateSquareGrid=n,e.markGrid=i,e.checkSets=o},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),o=i(r),a=function(t){return{markGridAction:function(e){return t(o["default"].initiateMarkGrid(e))},setGameTypeAction:function(e){return t(o["default"].setGameType(e))},initiateQuitAction:function(){return t(o["default"].initiateQuit())},initiateRestartAction:function(){return t(o["default"].initiateRestart())},submitSessionAction:function(e){return t(o["default"].submitSession(e))}}};e["default"]=a},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),o=n(19),a=i(o),u=n(17),s=i(u),c=n(20),h=i(c),f=function(t,e){var n=(0,r.createStore)(a["default"],void 0,e);h["default"].init(t);var i=function o(t){(0,s["default"])(t,n.getState())(n.dispatch),h["default"].evaluate(n.getState())(o)};return i({type:"FIRST_DISPATCH"}),{present:i,store:n}};e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=i(r),a=function(t,e){return function(n){t.type===o["default"].SET_GAME_TYPE&&e.gameType||(t.type!==o["default"].INITIATE_MARK_GRID||("Local Game"===e.gameType||e.player===e.turn)&&""===e.grid.cells[t.payload.move]&&""!==e.gameType&&""!==e.turn||e.grid.finished)&&n(t)}};e["default"]=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createAssignmentReducers=void 0;var i=n(5),r=function(t,e,n){var r={};return n.map(function(e){return r[e]=function(e,n){return void 0!==n.payload[t]?n.payload[t]:e}}),(0,i.handleActions)(r,e)},o=function(t){var e={};for(var n in t){var i=t[n],o=i.defaultValue,a=i.intentTypes;e[n]=r(n,o,a)}return e};e.createAssignmentReducers=o},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(9),o=n(18),a=n(1),u=i(a),s=n(3),c=i(s),h=function(){var t={},e=function(e){var n=u["default"][e](),i=n.type,r=n.payload;Object.keys(r).map(function(e){if(!c["default"].hasOwnProperty(e))throw e+" does not exist on the model! Please fix the intent of type: "+i+"!";t[e]=t[e]?t[e]:{intentTypes:[],defaultValue:c["default"][e]},t[e].intentTypes.push(i)})};for(var n in u["default"])e(n);return(0,r.combineReducers)((0,o.createAssignmentReducers)(t))};e["default"]=h()},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var r=n(21),o=i(r),a=n(13),u=i(a),s=void 0,c=function(t){var e=(0,u["default"])(t);s=[{predicate:o["default"].initialize,action:e.initializeGridAction},{predicate:o["default"].startLocalGame,action:e.startLocalGameAction},{predicate:o["default"].hostSession,action:e.hostSessionAction},{predicate:o["default"].joinAsGuest,action:e.joinSessionAction},{predicate:o["default"].localTakeTurn,action:e.localMarkGridAction},{predicate:o["default"].onlineTakeTurn,action:e.onlineMarkGridAction},{predicate:o["default"].localTurnSwitch,action:e.localTurnSwitchAction},{predicate:o["default"].onlineTurnSwitch,action:e.onlineTurnSwitchAction},{predicate:o["default"].showJoinSessionForm,action:e.setShowJoinSessionFormAction},{predicate:o["default"].localQuit,action:e.localQuitAction},{predicate:o["default"].onlineQuit,action:e.onlineQuitAction},{predicate:o["default"].localRestart,action:e.localRestartAction},{predicate:o["default"].onlineRestart,action:e.onlineRestartAction},{predicate:o["default"].finished,action:e.finishedAction}]},h=function(t){if(void 0===s)throw"Please call init before evaluate!";return function(e){for(var n=void 0,i=0;i<s.length;i++){var r=s[i],o=r.predicate,a=r.action;if(o(t)){n=a;break}}n&&n(t,e)}};e["default"]={init:c,evaluate:h}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n={};n.initialize=function(t){return!t.grid.initialized},n.startLocalGame=function(t){return"Local Game"===t.gameType&&""===t.turn&&!t.turnSwitch},n.hostSession=function(t){return"Host Game"===t.gameType&&!t.session},n.showJoinSessionForm=function(t){return"Join Game"===t.gameType&&!t.showJoinSessionForm&&!t.session},n.joinAsGuest=function(t){return"Join Game"===t.gameType&&t.submittedSession},n.localTakeTurn=function(t){return"Local Game"===t.gameType&&-1!==t.move&&t.turn&&!t.grid.finished},n.onlineTakeTurn=function(t){return"Local Game"!==t.gameType&&-1!==t.move&&t.turn&&!t.grid.finished},n.localTurnSwitch=function(t){return"Local Game"===t.gameType&&t.turnSwitch&&!t.grid.finished},n.onlineTurnSwitch=function(t){return"Local Game"!==t.gameType&&t.turnSwitch&&!t.grid.finished},n.localQuit=function(t){return"Local Game"===t.gameType&&t.quit},n.onlineQuit=function(t){return"Local Game"!==t.gameType&&t.quit},n.localRestart=function(t){return"Local Game"===t.gameType&&t.restart},n.onlineRestart=function(t){return"Local Game"!==t.gameType&&t.restart},n.inGame=function(t){return t.turn&&!t.grid.finished},n.finished=function(t){return t.grid.finished&&!t.done},n.done=function(t){return t.done},e["default"]=n},function(module,exports){/*! @license Firebase v2.4.2
License: https://www.firebase.com/terms/terms-of-service.html */
!function(){function p(t){return void 0!==t}function aa(){}function ba(t){t.yb=function(){return t.zf?t.zf:t.zf=new t}}function ca(t){var e=typeof t;if("object"==e){if(!t)return"null";if(t instanceof Array)return"array";if(t instanceof Object)return e;var n=Object.prototype.toString.call(t);if("[object Window]"==n)return"object";if("[object Array]"==n||"number"==typeof t.length&&"undefined"!=typeof t.splice&&"undefined"!=typeof t.propertyIsEnumerable&&!t.propertyIsEnumerable("splice"))return"array";if("[object Function]"==n||"undefined"!=typeof t.call&&"undefined"!=typeof t.propertyIsEnumerable&&!t.propertyIsEnumerable("call"))return"function"}else if("function"==e&&"undefined"==typeof t.call)return"object";return e}function da(t){return"array"==ca(t)}function ea(t){var e=ca(t);return"array"==e||"object"==e&&"number"==typeof t.length}function q(t){return"string"==typeof t}function fa(t){return"number"==typeof t}function r(t){return"function"==ca(t)}function ga(t){var e=typeof t;return"object"==e&&null!=t||"function"==e}function ha(t,e,n){return t.call.apply(t.bind,arguments)}function ia(t,e,n){if(!t)throw Error();if(2<arguments.length){var i=Array.prototype.slice.call(arguments,2);return function(){var n=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(n,i),t.apply(e,n)}}return function(){return t.apply(e,arguments)}}function u(t,e,n){return u=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ha:ia,u.apply(null,arguments)}function ka(t,e){function n(){}n.prototype=e.prototype,t.ph=e.prototype,t.prototype=new n,t.prototype.constructor=t,t.lh=function(t,n,i){for(var r=Array(arguments.length-2),o=2;o<arguments.length;o++)r[o-2]=arguments[o];return e.prototype[n].apply(t,r)}}function la(t){if(Error.captureStackTrace)Error.captureStackTrace(this,la);else{var e=Error().stack;e&&(this.stack=e)}t&&(this.message=String(t))}function v(t,e){for(var n in t)e.call(void 0,t[n],n,t)}function ma(t,e){var n,i={};for(n in t)i[n]=e.call(void 0,t[n],n,t);return i}function na(t,e){for(var n in t)if(!e.call(void 0,t[n],n,t))return!1;return!0}function oa(t){var e,n=0;for(e in t)n++;return n}function pa(t){for(var e in t)return e}function qa(t){var e,n=[],i=0;for(e in t)n[i++]=t[e];return n}function ra(t){var e,n=[],i=0;for(e in t)n[i++]=e;return n}function sa(t,e){for(var n in t)if(t[n]==e)return!0;return!1}function ta(t,e,n){for(var i in t)if(e.call(n,t[i],i,t))return i}function ua(t,e){var n=ta(t,e,void 0);return n&&t[n]}function va(t){for(var e in t)return!1;return!0}function wa(t){var e,n={};for(e in t)n[e]=t[e];return n}function ya(t,e){for(var n,i,r=1;r<arguments.length;r++){i=arguments[r];for(n in i)t[n]=i[n];for(var o=0;o<xa.length;o++)n=xa[o],Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}}function za(a){if(a=String(a),/^\s*$/.test(a)?0:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,"")))try{return eval("("+a+")")}catch(b){}throw Error("Invalid JSON string: "+a)}function Aa(){this.Vd=void 0}function Ba(t,e,n){switch(typeof e){case"string":Ca(e,n);break;case"number":n.push(isFinite(e)&&!isNaN(e)?e:"null");break;case"boolean":n.push(e);break;case"undefined":n.push("null");break;case"object":if(null==e){n.push("null");break}if(da(e)){var i=e.length;n.push("[");for(var r="",o=0;i>o;o++)n.push(r),r=e[o],Ba(t,t.Vd?t.Vd.call(e,String(o),r):r,n),r=",";n.push("]");break}n.push("{"),i="";for(o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r=e[o],"function"!=typeof r&&(n.push(i),Ca(o,n),n.push(":"),Ba(t,t.Vd?t.Vd.call(e,o,r):r,n),i=","));n.push("}");break;case"function":break;default:throw Error("Unknown type: "+typeof e)}}function Ca(t,e){e.push('"',t.replace(Ea,function(t){if(t in Da)return Da[t];var e=t.charCodeAt(0),n="\\u";return 16>e?n+="000":256>e?n+="00":4096>e&&(n+="0"),Da[t]=n+e.toString(16)}),'"')}function Fa(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^ja()).toString(36)}function Ia(){this.Ya=-1}function Ja(){this.Ya=-1,this.Ya=64,this.P=[],this.pe=[],this.eg=[],this.Od=[],this.Od[0]=128;for(var t=1;t<this.Ya;++t)this.Od[t]=0;this.ge=this.ec=0,this.reset()}function Ka(t,e,n){n||(n=0);var i=t.eg;if(q(e))for(var r=0;16>r;r++)i[r]=e.charCodeAt(n)<<24|e.charCodeAt(n+1)<<16|e.charCodeAt(n+2)<<8|e.charCodeAt(n+3),n+=4;else for(r=0;16>r;r++)i[r]=e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3],n+=4;for(r=16;80>r;r++){var o=i[r-3]^i[r-8]^i[r-14]^i[r-16];i[r]=4294967295&(o<<1|o>>>31)}e=t.P[0],n=t.P[1];for(var a,u=t.P[2],s=t.P[3],c=t.P[4],r=0;80>r;r++)40>r?20>r?(o=s^n&(u^s),a=1518500249):(o=n^u^s,a=1859775393):60>r?(o=n&u|s&(n|u),a=2400959708):(o=n^u^s,a=3395469782),o=(e<<5|e>>>27)+o+c+a+i[r]&4294967295,c=s,s=u,u=4294967295&(n<<30|n>>>2),n=e,e=o;t.P[0]=t.P[0]+e&4294967295,t.P[1]=t.P[1]+n&4294967295,t.P[2]=t.P[2]+u&4294967295,t.P[3]=t.P[3]+s&4294967295,t.P[4]=t.P[4]+c&4294967295}function Ra(t,e){var n=Sa(t,e,void 0);return 0>n?null:q(t)?t.charAt(n):t[n]}function Sa(t,e,n){for(var i=t.length,r=q(t)?t.split(""):t,o=0;i>o;o++)if(o in r&&e.call(n,r[o],o,t))return o;return-1}function Ta(t,e){var n=La(t,e);n>=0&&x.splice.call(t,n,1)}function Ua(t,e,n){return 2>=arguments.length?x.slice.call(t,e):x.slice.call(t,e,n)}function Va(t,e){t.sort(e||Wa)}function Wa(t,e){return t>e?1:e>t?-1:0}function Xa(t){n.setTimeout(function(){throw t},0)}function Za(){var t=n.MessageChannel;if("undefined"==typeof t&&"undefined"!=typeof window&&window.postMessage&&window.addEventListener&&-1==w.indexOf("Presto")&&(t=function(){var t=document.createElement("iframe");t.style.display="none",t.src="",document.documentElement.appendChild(t);var e=t.contentWindow,t=e.document;t.open(),t.write(""),t.close();var n="callImmediate"+Math.random(),i="file:"==e.location.protocol?"*":e.location.protocol+"//"+e.location.host,t=u(function(t){"*"!=i&&t.origin!=i||t.data!=n||this.port1.onmessage()},this);e.addEventListener("message",t,!1),this.port1={},this.port2={postMessage:function(){e.postMessage(n,i)}}}),"undefined"!=typeof t&&-1==w.indexOf("Trident")&&-1==w.indexOf("MSIE")){var e=new t,i={},r=i;return e.port1.onmessage=function(){if(p(i.next)){i=i.next;var t=i.hb;i.hb=null,t()}},function(t){r.next={hb:t},r=r.next,e.port2.postMessage(0)}}return"undefined"!=typeof document&&"onreadystatechange"in document.createElement("script")?function(t){var e=document.createElement("script");e.onreadystatechange=function(){e.onreadystatechange=null,e.parentNode.removeChild(e),e=null,t(),t=null},document.documentElement.appendChild(e)}:function(t){n.setTimeout(t,0)}}function $a(t,e){ab||bb(),cb||(ab(),cb=!0),db.push(new eb(t,e))}function bb(){if(n.Promise&&n.Promise.resolve){var t=n.Promise.resolve();ab=function(){t.then(fb)}}else ab=function(){var t=fb;!r(n.setImmediate)||n.Window&&n.Window.prototype&&n.Window.prototype.setImmediate==n.setImmediate?(Ya||(Ya=Za()),Ya(t)):n.setImmediate(t)}}function fb(){for(;db.length;){var t=db;db=[];for(var e=0;e<t.length;e++){var n=t[e];try{n.yg.call(n.scope)}catch(i){Xa(i)}}}cb=!1}function eb(t,e){this.yg=t,this.scope=e}function nb(t,e){if(!ea(t))throw Error("encodeByteArray takes an array as a parameter");ob();for(var n=e?lb:kb,i=[],r=0;r<t.length;r+=3){var o=t[r],a=r+1<t.length,u=a?t[r+1]:0,s=r+2<t.length,c=s?t[r+2]:0,h=o>>2,o=(3&o)<<4|u>>4,u=(15&u)<<2|c>>6,c=63&c;s||(c=64,a||(u=64)),i.push(n[h],n[o],n[u],n[c])}return i.join("")}function ob(){if(!kb){kb={},lb={},mb={};for(var t=0;65>t;t++)kb[t]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(t),lb[t]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(t),mb[lb[t]]=t,t>=62&&(mb["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(t)]=t)}}function pb(t,e){if(this.N=qb,this.Rf=void 0,this.Ba=this.Ha=null,this.yd=this.ye=!1,t==rb)sb(this,tb,e);else try{var n=this;t.call(e,function(t){sb(n,tb,t)},function(t){if(!(t instanceof ub))try{if(t instanceof Error)throw t;throw Error("Promise rejected.")}catch(e){}sb(n,vb,t)})}catch(i){sb(this,vb,i)}}function rb(){}function xb(t,e){if(t.N==qb)if(t.Ha){var n=t.Ha;if(n.Ba){for(var i,r=0,o=-1,a=0;(i=n.Ba[a])&&!((i=i.o)&&(r++,i==t&&(o=a),o>=0&&r>1));a++);o>=0&&(n.N==qb&&1==r?xb(n,e):(r=n.Ba.splice(o,1)[0],yb(n,r,vb,e)))}t.Ha=null}else sb(t,vb,e)}function zb(t,e){t.Ba&&t.Ba.length||t.N!=tb&&t.N!=vb||Ab(t),t.Ba||(t.Ba=[]),t.Ba.push(e)}function wb(t,e,n,i){var r={o:null,Hf:null,Jf:null};return r.o=new pb(function(t,o){r.Hf=e?function(n){try{var r=e.call(i,n);t(r)}catch(a){o(a)}}:t,r.Jf=n?function(e){try{var r=n.call(i,e);!p(r)&&e instanceof ub?o(e):t(r)}catch(a){o(a)}}:o}),r.o.Ha=t,zb(t,r),r.o}function sb(t,e,n){if(t.N==qb){if(t==n)e=vb,n=new TypeError("Promise cannot resolve to itself");else{var i;if(n)try{i=!!n.$goog_Thenable}catch(o){i=!1}else i=!1;if(i)return t.N=1,void n.then(t.Yf,t.Zf,t);if(ga(n))try{var a=n.then;if(r(a))return void Bb(t,n,a)}catch(u){e=vb,n=u}}t.Rf=n,t.N=e,t.Ha=null,Ab(t),e!=vb||n instanceof ub||Cb(t,n)}}function Bb(t,e,n){function i(e){o||(o=!0,t.Zf(e))}function r(e){o||(o=!0,t.Yf(e))}t.N=1;var o=!1;try{n.call(e,r,i)}catch(a){i(a)}}function Ab(t){t.ye||(t.ye=!0,$a(t.wg,t))}function yb(t,e,n,i){if(n==tb)e.Hf(i);else{if(e.o)for(;t&&t.yd;t=t.Ha)t.yd=!1;e.Jf(i)}}function Cb(t,e){t.yd=!0,$a(function(){t.yd&&Db.call(null,e)})}function ub(t){la.call(this,t)}function y(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function z(t,e){return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0}function Fb(t,e){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Gb(t){var e={};return Fb(t,function(t,n){e[t]=n}),e}function Hb(t){return"object"==typeof t&&null!==t}function Ib(t){var e=[];return Fb(t,function(t,n){da(n)?Ma(n,function(n){e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))}):e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))}),e.length?"&"+e.join("&"):""}function Jb(t){var e={};return t=t.replace(/^\?/,"").split("&"),Ma(t,function(t){t&&(t=t.split("="),e[t[0]]=t[1])}),e}function Kb(t,e){if(!t)throw Lb(e)}function Lb(t){return Error("Firebase ("+Eb+") INTERNAL ASSERT FAILED: "+t)}function B(){var t=this;this.reject=this.resolve=null,this.D=new Mb(function(e,n){t.resolve=e,t.reject=n})}function C(t,e){return function(n,i){n?t.reject(n):t.resolve(i),r(e)&&(Nb(t.D),1===e.length?e(n):e(n,i))}}function Nb(t){t.then(void 0,aa)}function Ob(t){for(var e=[],n=0,i=0;i<t.length;i++){var r=t.charCodeAt(i);r>=55296&&56319>=r&&(r-=55296,i++,Kb(i<t.length,"Surrogate pair missing trail surrogate."),r=65536+(r<<10)+(t.charCodeAt(i)-56320)),128>r?e[n++]=r:(2048>r?e[n++]=r>>6|192:(65536>r?e[n++]=r>>12|224:(e[n++]=r>>18|240,e[n++]=r>>12&63|128),e[n++]=r>>6&63|128),e[n++]=63&r|128)}return e}function Pb(t){for(var e=0,n=0;n<t.length;n++){var i=t.charCodeAt(n);128>i?e++:2048>i?e+=2:i>=55296&&56319>=i?(e+=4,n++):e+=3}return e}function D(t,e,n,i){var r;if(e>i?r="at least "+e:i>n&&(r=0===n?"none":"no more than "+n),r)throw Error(t+" failed: Was called with "+i+(1===i?" argument.":" arguments.")+" Expects "+r+".")}function E(t,e,n){var i="";switch(e){case 1:i=n?"first":"First";break;case 2:i=n?"second":"Second";break;case 3:i=n?"third":"Third";break;case 4:i=n?"fourth":"Fourth";break;default:throw Error("errorPrefix called with argumentNumber > 4. Need to update it?")}return t=t+" failed: "+(i+" argument ")}function F(t,e,n,i){if((!i||p(n))&&!r(n))throw Error(E(t,e,i)+"must be a valid function.")}function Qb(t,e,n){if(p(n)&&(!ga(n)||null===n))throw Error(E(t,e,!0)+"must be a valid context object.")}function Rb(t){return"undefined"!=typeof JSON&&p(JSON.parse)?JSON.parse(t):za(t)}function G(t){if("undefined"!=typeof JSON&&p(JSON.stringify))t=JSON.stringify(t);else{var e=[];Ba(new Aa,t,e),t=e.join("")}return t}function Sb(){this.Zd=H}function Tb(){}function Vb(t,e,n){this.bg=t,this.Oa=e,this.Nd=n}function Zb(){this.xb=[]}function $b(t,e){for(var n=null,i=0;i<e.length;i++){var r=e[i],o=r.cc();null===n||o.ea(n.cc())||(t.xb.push(n),n=null),null===n&&(n=new ac(o)),n.add(r)}n&&t.xb.push(n)}function bc(t,e,n){$b(t,n),cc(t,function(t){return t.ea(e)})}function dc(t,e,n){$b(t,n),cc(t,function(t){return t.contains(e)||e.contains(t)})}function cc(t,e){for(var n=!0,i=0;i<t.xb.length;i++){var r=t.xb[i];if(r)if(r=r.cc(),e(r)){for(var r=t.xb[i],o=0;o<r.xd.length;o++){var a=r.xd[o];if(null!==a){r.xd[o]=null;var u=a.Zb();ec&&fc("event: "+a.toString()),gc(u)}}t.xb[i]=null}else n=!1}n&&(t.xb=[])}function ac(t){this.ta=t,this.xd=[]}function J(t,e,n,i){this.type=t,this.Na=e,this.Za=n,this.Oe=i,this.Td=void 0}function hc(t){return new J(ic,t)}function jc(t,e,n,i){this.xe=e,this.be=n,this.Td=i,this.wd=t}function kc(t,e,n){this.xe=t,this.error=e,this.path=n}function Xb(t,e,n){this.A=t,this.ga=e,this.Yb=n}function lc(t){return t.ga}function mc(t){return t.Yb}function nc(t,e){return e.e()?t.ga&&!t.Yb:Wb(t,K(e))}function Wb(t,e){return t.ga&&!t.Yb||t.A.Fa(e)}function oc(t){this.pg=t,this.Gd=null}function pc(t,e){this.Vf={},this.hd=new oc(t),this.da=e;var n=1e4+2e4*Math.random();setTimeout(u(this.Of,this),Math.floor(n))}function qc(){this.Hc={}}function rc(t,e,n){p(n)||(n=1),y(t.Hc,e)||(t.Hc[e]=0),t.Hc[e]+=n}function uc(t){return t=t.toString(),sc[t]||(sc[t]=new qc),sc[t]}function vc(t,e){var n=t.toString();return tc[n]||(tc[n]=e()),tc[n]}function L(t,e){this.name=t,this.U=e}function wc(t,e){return new L(t,e)}function xc(t,e){return yc(t.name,e.name)}function zc(t,e){return yc(t,e)}function Ac(t,e,n){this.type=Bc,this.source=t,this.path=e,this.Ja=n}function Cc(t,e){this.type=Dc,this.source=t,this.path=e}function Ec(t,e){this.Pa=t,this.xa=e?e:Fc}function Gc(t,e){for(var n,i=t.xa,r=null;!i.e();){if(n=t.Pa(e,i.key),0===n){if(i.left.e())return r?r.key:null;for(i=i.left;!i.right.e();)i=i.right;return i.key}0>n?i=i.left:n>0&&(r=i,i=i.right)}throw Error("Attempted to find predecessor key for a nonexistent key. What gives?")}function Hc(t,e,n,i,r){for(this.Xd=r||null,this.Je=i,this.Ta=[],r=1;!t.e();)if(r=e?n(t.key,e):1,i&&(r*=-1),0>r)t=this.Je?t.left:t.right;else{if(0===r){this.Ta.push(t);break}this.Ta.push(t),t=this.Je?t.right:t.left}}function Ic(t){if(0===t.Ta.length)return null;var e,n=t.Ta.pop();if(e=t.Xd?t.Xd(n.key,n.value):{key:n.key,value:n.value},t.Je)for(n=n.left;!n.e();)t.Ta.push(n),n=n.right;else for(n=n.right;!n.e();)t.Ta.push(n),n=n.left;return e}function Jc(t){if(0===t.Ta.length)return null;var e;return e=t.Ta,e=e[e.length-1],t.Xd?t.Xd(e.key,e.value):{key:e.key,value:e.value}}function Kc(t,e,n,i,r){this.key=t,this.value=e,this.color=null!=n?n:!0,this.left=null!=i?i:Fc,this.right=null!=r?r:Fc}function Lc(t){return t.left.e()?t:Lc(t.left)}function Nc(t){return t.left.e()?Fc:(t.left.ha()||t.left.left.ha()||(t=Oc(t)),t=t.$(null,null,null,Nc(t.left),null),Mc(t))}function Mc(t){return t.right.ha()&&!t.left.ha()&&(t=Rc(t)),t.left.ha()&&t.left.left.ha()&&(t=Pc(t)),t.left.ha()&&t.right.ha()&&(t=Qc(t)),t}function Oc(t){return t=Qc(t),t.right.left.ha()&&(t=t.$(null,null,null,null,Pc(t.right)),t=Rc(t),t=Qc(t)),t}function Rc(t){return t.right.$(null,null,t.color,t.$(null,null,!0,null,t.right.left),null)}function Pc(t){return t.left.$(null,null,t.color,null,t.$(null,null,!0,t.left.right,null))}function Qc(t){return t.$(null,null,!t.color,t.left.$(null,null,!t.left.color,null,null),t.right.$(null,null,!t.right.color,null,null))}function Sc(){}function Tc(t,e){return t&&"object"==typeof t?(O(".sv"in t,"Unexpected leaf node or priority contents"),e[t[".sv"]]):t}function Uc(t,e){var n=new Vc;return Wc(t,new P(""),function(t,i){n.rc(t,Xc(i,e))}),n}function Xc(t,e){var n,i=t.C().J(),i=Tc(i,e);if(t.L()){var r=Tc(t.Ea(),e);return r!==t.Ea()||i!==t.C().J()?new Yc(r,Q(i)):t}return n=t,i!==t.C().J()&&(n=n.ia(new Yc(i))),t.R(R,function(t,i){var r=Xc(i,e);r!==i&&(n=n.W(t,r))}),n}function Zc(){this.Ac={}}function $c(t){this.Ic=t,this.Sd="firebase:"}function ad(t){try{if("undefined"!=typeof window&&"undefined"!=typeof window[t]){var e=window[t];return e.setItem("firebase:sentinel","cache"),e.removeItem("firebase:sentinel"),new $c(e)}}catch(n){}return new Zc}function dd(t,e,n,i,r){this.host=t.toLowerCase(),this.domain=this.host.substr(this.host.indexOf(".")+1),this.ob=e,this.lc=n,this.jh=i,this.Rd=r||"",this.ab=bd.get("host:"+t)||this.host}function ed(t,e){e!==t.ab&&(t.ab=e,"s-"===t.ab.substr(0,2)&&bd.set("host:"+t.host,t.ab))}function fd(t,e,n){if(O("string"==typeof e,"typeof type must == string"),O("object"==typeof n,"typeof params must == object"),e===gd)e=(t.ob?"wss://":"ws://")+t.ab+"/.ws?";else{if(e!==hd)throw Error("Unknown connection type: "+e);e=(t.ob?"https://":"http://")+t.ab+"/.lp?"}t.host!==t.ab&&(n.ns=t.lc);var i=[];return v(n,function(t,e){i.push(e+"="+t)}),e+i.join("&")}function kd(t){try{var e;if("undefined"!=typeof atob)e=atob(t);else{ob();for(var n=mb,i=[],r=0;r<t.length;){var o=n[t.charAt(r++)],a=r<t.length?n[t.charAt(r)]:0;++r;var u=r<t.length?n[t.charAt(r)]:64;++r;var s=r<t.length?n[t.charAt(r)]:64;if(++r,null==o||null==a||null==u||null==s)throw Error();i.push(o<<2|a>>4),64!=u&&(i.push(a<<4&240|u>>2),64!=s&&i.push(u<<6&192|s))}if(8192>i.length)e=String.fromCharCode.apply(null,i);else{for(t="",n=0;n<i.length;n+=8192)t+=String.fromCharCode.apply(null,Ua(i,n,n+8192));e=t}}return e}catch(c){fc("base64Decode failed: ",c)}return null}function ld(t){var e=Ob(t);t=new Ja,t.update(e);var e=[],n=8*t.ge;56>t.ec?t.update(t.Od,56-t.ec):t.update(t.Od,t.Ya-(t.ec-56));for(var i=t.Ya-1;i>=56;i--)t.pe[i]=255&n,n/=256;for(Ka(t,t.pe),i=n=0;5>i;i++)for(var r=24;r>=0;r-=8)e[n]=t.P[i]>>r&255,++n;return nb(e)}function md(t){for(var e="",n=0;n<arguments.length;n++)e=ea(arguments[n])?e+md.apply(null,arguments[n]):"object"==typeof arguments[n]?e+G(arguments[n]):e+arguments[n],e+=" ";return e}function od(t,e){Kb(!e||!0===t||!1===t,"Can't turn on custom loggers persistently."),!0===t?("undefined"!=typeof console&&("function"==typeof console.log?ec=u(console.log,console):"object"==typeof console.log&&(ec=function(t){console.log(t)})),e&&cd.set("logging_enabled",!0)):r(t)?ec=t:(ec=null,cd.remove("logging_enabled"))}function fc(t){if(!0===nd&&(nd=!1,null===ec&&!0===cd.get("logging_enabled")&&od(!0)),ec){var e=md.apply(null,arguments);ec(e)}}function pd(t){return function(){fc(t,arguments)}}function qd(t){if("undefined"!=typeof console){var e="FIREBASE INTERNAL ERROR: "+md.apply(null,arguments);"undefined"!=typeof console.error?console.error(e):console.log(e)}}function rd(t){var e=md.apply(null,arguments);throw Error("FIREBASE FATAL ERROR: "+e)}function S(t){if("undefined"!=typeof console){var e="FIREBASE WARNING: "+md.apply(null,arguments);"undefined"!=typeof console.warn?console.warn(e):console.log(e)}}function sd(t){var e="",n="",i="",r="",o=!0,a="https",u=443;if(q(t)){var s=t.indexOf("//");for(s>=0&&(a=t.substring(0,s-1),t=t.substring(s+2)),s=t.indexOf("/"),-1===s&&(s=t.length),e=t.substring(0,s),r="",t=t.substring(s).split("/"),s=0;s<t.length;s++)if(0<t[s].length){var c=t[s];try{c=decodeURIComponent(c.replace(/\+/g," "))}catch(h){}r+="/"+c}t=e.split("."),3===t.length?(n=t[1],i=t[0].toLowerCase()):2===t.length&&(n=t[0]),s=e.indexOf(":"),s>=0&&(o="https"===a||"wss"===a,u=e.substring(s+1),isFinite(u)&&(u=String(u)),u=q(u)?/^\s*-?0x/i.test(u)?parseInt(u,16):parseInt(u,10):NaN)}return{host:e,port:u,domain:n,fh:i,ob:o,scheme:a,bd:r}}function td(t){return fa(t)&&(t!=t||t==Number.POSITIVE_INFINITY||t==Number.NEGATIVE_INFINITY)}function ud(t){if("complete"===document.readyState)t();else{var e=!1,n=function(){document.body?e||(e=!0,t()):setTimeout(n,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&n()}),window.attachEvent("onload",n))}}function yc(t,e){if(t===e)return 0;if("[MIN_NAME]"===t||"[MAX_NAME]"===e)return-1;if("[MIN_NAME]"===e||"[MAX_NAME]"===t)return 1;var n=vd(t),i=vd(e);return null!==n?null!==i?0==n-i?t.length-e.length:n-i:-1:null!==i?1:e>t?-1:1}function wd(t,e){if(e&&t in e)return e[t];throw Error("Missing required key ("+t+") in object: "+G(e))}function xd(t){if("object"!=typeof t||null===t)return G(t);var e,n=[];for(e in t)n.push(e);n.sort(),e="{";for(var i=0;i<n.length;i++)0!==i&&(e+=","),e+=G(n[i]),e+=":",e+=xd(t[n[i]]);return e+"}"}function yd(t,e){if(t.length<=e)return[t];for(var n=[],i=0;i<t.length;i+=e)i+e>t?n.push(t.substring(i,t.length)):n.push(t.substring(i,i+e));return n}function zd(t,e){if(da(t))for(var n=0;n<t.length;++n)e(n,t[n]);else v(t,e)}function Ad(t){O(!td(t),"Invalid JSON number");var e,n,i,r;for(0===t?(i=n=0,e=-(1/0)===1/t?1:0):(e=0>t,t=Math.abs(t),t>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(t)/Math.LN2),1023),n=i+1023,i=Math.round(t*Math.pow(2,52-i)-Math.pow(2,52))):(n=0,i=Math.round(t/Math.pow(2,-1074)))),r=[],t=52;t;--t)r.push(i%2?1:0),i=Math.floor(i/2);for(t=11;t;--t)r.push(n%2?1:0),n=Math.floor(n/2);for(r.push(e?1:0),r.reverse(),e=r.join(""),n="",t=0;64>t;t+=8)i=parseInt(e.substr(t,8),2).toString(16),1===i.length&&(i="0"+i),n+=i;return n.toLowerCase()}function vd(t){return Bd.test(t)&&(t=Number(t),t>=-2147483648&&2147483647>=t)?t:null}function gc(t){try{t()}catch(e){setTimeout(function(){throw S("Exception was thrown by user callback.",e.stack||""),e},Math.floor(0))}}function T(t,e){if(r(t)){var n=Array.prototype.slice.call(arguments,1).slice();gc(function(){t.apply(null,n)})}}function Cd(t){var e={},n={},i={},r="";try{var o=t.split("."),e=Rb(kd(o[0])||""),n=Rb(kd(o[1])||""),r=o[2],i=n.d||{};delete n.d}catch(a){}return{mh:e,Ec:n,data:i,bh:r}}function Dd(t){return t=Cd(t).Ec,"object"==typeof t&&t.hasOwnProperty("iat")?z(t,"iat"):null}function Ed(t){t=Cd(t);var e=t.Ec;return!!t.bh&&!!e&&"object"==typeof e&&e.hasOwnProperty("iat")}function Fd(t){this.Y=t,this.g=t.n.g}function Gd(t,e,n,i){var r=[],o=[];return Ma(e,function(e){"child_changed"===e.type&&t.g.Dd(e.Oe,e.Na)&&o.push(new J("child_moved",e.Na,e.Za))}),Hd(t,r,"child_removed",e,i,n),Hd(t,r,"child_added",e,i,n),Hd(t,r,"child_moved",o,i,n),Hd(t,r,"child_changed",e,i,n),Hd(t,r,ic,e,i,n),r}function Hd(t,e,n,i,r,o){i=Na(i,function(t){return t.type===n}),Va(i,u(t.qg,t)),Ma(i,function(n){var i=Id(t,n,o);Ma(r,function(r){r.Qf(n.type)&&e.push(r.createEvent(i,t.Y))})})}function Id(t,e,n){return"value"!==e.type&&"child_removed"!==e.type&&(e.Td=n.wf(e.Za,e.Na,t.g)),e}function Jd(){this.ib={}}function Kd(t,e){var n=e.type,i=e.Za;O("child_added"==n||"child_changed"==n||"child_removed"==n,"Only child changes supported for tracking"),O(".priority"!==i,"Only non-priority child changes can be tracked.");var r=z(t.ib,i);if(r){var o=r.type;if("child_added"==n&&"child_removed"==o)t.ib[i]=new J("child_changed",e.Na,i,r.Na);else if("child_removed"==n&&"child_added"==o)delete t.ib[i];else if("child_removed"==n&&"child_changed"==o)t.ib[i]=new J("child_removed",r.Oe,i);else if("child_changed"==n&&"child_added"==o)t.ib[i]=new J("child_added",e.Na,i);else{if("child_changed"!=n||"child_changed"!=o)throw jd("Illegal combination of changes: "+e+" occurred after "+r);t.ib[i]=new J("child_changed",e.Na,i,r.Oe)}}else t.ib[i]=e}function Ld(t){this.g=t}function Md(t){this.Fe=new Ld(t.g),this.g=t.g;var e;t.oa?(e=Nd(t),e=t.g.Sc(Od(t),e)):e=t.g.Wc(),this.gd=e,t.ra?(e=Pd(t),t=t.g.Sc(Rd(t),e)):t=t.g.Tc(),this.Jc=t}function Sd(t){this.ua=new Md(t),this.g=t.g,O(t.la,"Only valid if limit has been set"),this.ma=t.ma,this.Nb=!Td(t)}function Ud(t,e,n,i,r,o){var a;if(t.Nb){var u=Vd(t.g);a=function(t,e){return u(e,t)}}else a=Vd(t.g);O(e.Hb()==t.ma,"");var s=new L(n,i),c=t.Nb?Wd(e,t.g):Xd(e,t.g),h=t.ua.matches(s);if(e.Fa(n)){for(var f=e.T(n),c=r.Ce(t.g,c,t.Nb);null!=c&&(c.name==n||e.Fa(c.name));)c=r.Ce(t.g,c,t.Nb);return r=null==c?1:a(c,s),h&&!i.e()&&r>=0?(null!=o&&Kd(o,new J("child_changed",i,n,f)),e.W(n,i)):(null!=o&&Kd(o,new J("child_removed",f,n)),e=e.W(n,H),null!=c&&t.ua.matches(c)?(null!=o&&Kd(o,new J("child_added",c.U,c.name)),e.W(c.name,c.U)):e)}return i.e()?e:h&&0<=a(c,s)?(null!=o&&(Kd(o,new J("child_removed",c.U,c.name)),Kd(o,new J("child_added",i,n))),e.W(n,i).W(c.name,H)):e}function Yd(t,e){this.me=t,this.og=e}function Zd(t){this.X=t}function ie(t,e,n,i,r,o){var a=e.Q;if(null!=i.xc(n))return e;var u;if(n.e())O(lc(e.w()),"If change path is empty, we must have complete server data"),mc(e.w())?(r=Yb(e),i=i.Cc(r instanceof fe?r:H)):i=i.Aa(Yb(e)),o=t.X.ya(e.Q.j(),i,o);else{var s=K(n);if(".priority"==s)O(1==le(n),"Can't have a priority with additional path components"),o=a.j(),u=e.w().j(),i=i.nd(n,o,u),o=null!=i?t.X.ia(o,i):a.j();else{var c=N(n);Wb(a,s)?(u=e.w().j(),i=i.nd(n,a.j(),u),i=null!=i?a.j().T(s).H(c,i):a.j().T(s)):i=i.Bc(s,e.w()),o=null!=i?t.X.H(a.j(),s,i,c,r,o):a.j()}}return ge(e,o,a.ga||n.e(),t.X.Ra())}function ae(t,e,n,i,r,o,a,u){var s=e.w();if(a=a?t.X:t.X.$b(),n.e())i=a.ya(s.j(),i,null);else if(a.Ra()&&!s.Yb)i=s.j().H(n,i),i=a.ya(s.j(),i,null);else{var c=K(n);if(!nc(s,n)&&1<le(n))return e;var h=N(n);i=s.j().T(c).H(h,i),i=".priority"==c?a.ia(s.j(),i):a.H(s.j(),c,i,h,Ub,null)}return s=s.ga||n.e(),e=new je(e.Q,new Xb(i,s,a.Ra())),ie(t,e,n,r,new Vb(r,e,o),u)}function $d(t,e,n,i,r,o,a){var u=e.Q;if(r=new Vb(r,e,o),n.e())a=t.X.ya(e.Q.j(),i,a),t=ge(e,a,!0,t.X.Ra());else if(o=K(n),".priority"===o)a=t.X.ia(e.Q.j(),i),t=ge(e,a,u.ga,u.Yb);else{n=N(n);var s=u.j().T(o);if(!n.e()){var c=r.uf(o);i=null!=c?".priority"===me(n)&&c.S(n.parent()).e()?c:c.H(n,i):H}s.ea(i)?t=e:(a=t.X.H(u.j(),o,i,n,r,a),t=ge(e,a,u.ga,t.X.Ra()))}return t}function ce(t,e,n,i,r,o,a){var u=e;return ne(i,function(i,s){var c=n.o(i);Wb(e.Q,K(c))&&(u=$d(t,u,c,s,r,o,a))}),ne(i,function(i,s){var c=n.o(i);Wb(e.Q,K(c))||(u=$d(t,u,c,s,r,o,a))}),u}function oe(t,e){return ne(e,function(e,n){t=t.H(e,n)}),t}function de(t,e,n,i,r,o,a,u){if(e.w().j().e()&&!lc(e.w()))return e;var s=e;n=n.e()?i:pe(qe,n,i);var c=e.w().j();return n.children.ka(function(n,i){if(c.Fa(n)){var h=e.w().j().T(n),h=oe(h,i);s=ae(t,s,new P(n),h,r,o,a,u)}}),n.children.ka(function(n,i){var h=!Wb(e.w(),n)&&null==i.value;c.Fa(n)||h||(h=e.w().j().T(n),h=oe(h,i),s=ae(t,s,new P(n),h,r,o,a,u))}),s}function he(t,e,n,i,r,o,a){if(null!=r.xc(n))return e;var u=mc(e.w()),s=e.w();if(null!=i.value){if(n.e()&&s.ga||nc(s,n))return ae(t,e,n,s.j().S(n),r,o,u,a);if(n.e()){var c=qe;return s.j().R(re,function(t,e){c=c.set(new P(t),e)}),de(t,e,n,c,r,o,u,a)}return e}return c=qe,ne(i,function(t){var e=n.o(t);nc(s,e)&&(c=c.set(t,s.j().S(e)))}),de(t,e,n,c,r,o,u,a)}function se(){}function Vd(t){return u(t.compare,t)}function ve(t){O(!t.e()&&".priority"!==K(t),"Can't create PathIndex with empty path or .priority key"),this.gc=t}function xe(){}function ye(){}function ze(){}function Ce(){this.Xb=this.ra=this.Pb=this.oa=this.la=!1,this.ma=0,this.Rb="",this.ic=null,this.Bb="",this.fc=null,this.zb="",this.g=R}function Td(t){return""===t.Rb?t.oa:"l"===t.Rb}function Od(t){return O(t.oa,"Only valid if start has been set"),t.ic}function Nd(t){return O(t.oa,"Only valid if start has been set"),t.Pb?t.Bb:"[MIN_NAME]"}function Rd(t){return O(t.ra,"Only valid if end has been set"),t.fc}function Pd(t){return O(t.ra,"Only valid if end has been set"),t.Xb?t.zb:"[MAX_NAME]"}function Ee(t){var e=new Ce;return e.la=t.la,e.ma=t.ma,e.oa=t.oa,e.ic=t.ic,e.Pb=t.Pb,e.Bb=t.Bb,e.ra=t.ra,e.fc=t.fc,e.Xb=t.Xb,e.zb=t.zb,e.g=t.g,e}function Fe(t,e){var n=Ee(t);return n.g=e,n}function Ge(t){var e={};if(t.oa&&(e.sp=t.ic,t.Pb&&(e.sn=t.Bb)),t.ra&&(e.ep=t.fc,t.Xb&&(e.en=t.zb)),t.la){e.l=t.ma;var n=t.Rb;""===n&&(n=Td(t)?"l":"r"),e.vf=n}return t.g!==R&&(e.i=t.g.toString()),e}function He(t){return!(t.oa||t.ra||t.la)}function Ie(t){return He(t)&&t.g==R}function Je(t){var e={};if(Ie(t))return e;var n;return t.g===R?n="$priority":t.g===Be?n="$value":t.g===re?n="$key":(O(t.g instanceof ve,"Unrecognized index type!"),n=t.g.toString()),e.orderBy=G(n),t.oa&&(e.startAt=G(t.ic),t.Pb&&(e.startAt+=","+G(t.Bb))),t.ra&&(e.endAt=G(t.fc),t.Xb&&(e.endAt+=","+G(t.zb))),t.la&&(Td(t)?e.limitToFirst=t.ma:e.limitToLast=t.ma),e}function Ke(t,e){this.Ed=t,this.hc=e}function Le(t,e,n){var i=ma(t.Ed,function(i,r){var o=z(t.hc,r);if(O(o,"Missing index implementation for "+r),i===te){if(o.Lc(e.U)){for(var a=[],u=n.ac(wc),s=Ic(u);s;)s.name!=e.name&&a.push(s),s=Ic(u);return a.push(e),Me(a,Vd(o))}return te}return o=n.get(e.name),a=i,o&&(a=a.remove(new L(e.name,o))),a.Sa(e,e.U)});return new Ke(i,t.hc)}function Ne(t,e,n){var i=ma(t.Ed,function(t){if(t===te)return t;var i=n.get(e.name);return i?t.remove(new L(e.name,i)):t});return new Ke(i,t.hc)}function Yc(t,e){this.B=t,O(p(this.B)&&null!==this.B,"LeafNode shouldn't be created with null/undefined value."),this.ca=e||H,Pe(this.ca),this.Gb=null}function fe(t,e,n){this.m=t,(this.ca=e)&&Pe(this.ca),t.e()&&O(!this.ca||this.ca.e(),"An empty node cannot have a priority"),this.Ab=n,this.Gb=null}function Wd(t,e){var n;return n=(n=Te(t,e))?(n=n.Vc())&&n.name:t.m.Vc(),n?new L(n,t.m.get(n)):null}function Xd(t,e){var n;return n=(n=Te(t,e))?(n=n.jc())&&n.name:t.m.jc(),n?new L(n,t.m.get(n)):null}function Te(t,e){return e===re?null:t.Ab.get(e.toString())}function Q(t,e){if(null===t)return H;var n=null;if("object"==typeof t&&".priority"in t?n=t[".priority"]:"undefined"!=typeof e&&(n=e),O(null===n||"string"==typeof n||"number"==typeof n||"object"==typeof n&&".sv"in n,"Invalid priority type found: "+typeof n),"object"==typeof t&&".value"in t&&null!==t[".value"]&&(t=t[".value"]),"object"!=typeof t||".sv"in t)return new Yc(t,Q(n));if(t instanceof Array){var i=H,r=t;return v(r,function(t,e){if(y(r,e)&&"."!==e.substring(0,1)){var n=Q(t);!n.L()&&n.e()||(i=i.W(e,n))}}),i.ia(Q(n))}var o=[],a=!1,u=t;if(Fb(u,function(t){if("string"!=typeof t||"."!==t.substring(0,1)){var e=Q(u[t]);e.e()||(a=a||!e.C().e(),o.push(new L(t,e)))}}),0==o.length)return H;var s=Me(o,xc,function(t){return t.name},zc);if(a){var c=Me(o,Vd(R));return new fe(s,Q(n),new Ke({".priority":c},{".priority":R}))}return new fe(s,Q(n),Oe)}function Ve(t){this.count=parseInt(Math.log(t+1)/Ue,10),this.nf=this.count-1,this.ng=t+1&parseInt(Array(this.count+1).join("1"),2)}function We(t){var e=!(t.ng&1<<t.nf);return t.nf--,e}function Me(t,e,n,i){function r(e,i){var o=i-e;if(0==o)return null;if(1==o){var a=t[e],u=n?n(a):a;return new Kc(u,a.U,!1,null,null)}var a=parseInt(o/2,10)+e,o=r(e,a),s=r(a+1,i),a=t[a],u=n?n(a):a;return new Kc(u,a.U,!1,o,s)}t.sort(e);var o=function(e){function i(e,i){var s=u-e,c=u;u-=e;var c=r(s+1,c),s=t[s],h=n?n(s):s,c=new Kc(h,s.U,i,null,c);o?o.left=c:a=c,o=c}for(var o=null,a=null,u=t.length,s=0;s<e.count;++s){var c=We(e),h=Math.pow(2,e.count-(s+1));c?i(h,!1):(i(h,!1),i(h,!0))}return a}(new Ve(t.length));return null!==o?new Ec(i||e,o):new Ec(i||e)}function Re(t){return"number"==typeof t?"number:"+Ad(t):"string:"+t}function Pe(t){if(t.L()){var e=t.J();O("string"==typeof e||"number"==typeof e||"object"==typeof e&&y(e,".sv"),"Priority must be a string or number.")}else O(t===we||t.e(),"priority of unexpected type.");O(t===we||t.C().e(),"Priority nodes can't have a priority of their own.")}function Xe(){fe.call(this,new Ec(zc),H,Oe)}function je(t,e){this.Q=t,this.ae=e}function ge(t,e,n,i){return new je(new Xb(e,n,i),t.ae)}function ke(t){return t.Q.ga?t.Q.j():null}function Yb(t){return t.ae.ga?t.ae.j():null}function Ye(t,e){this.Y=t;var n=t.n,i=new Ld(n.g),n=He(n)?new Ld(n.g):n.la?new Sd(n):new Md(n);this.Nf=new Zd(n);var r=e.w(),o=e.Q,a=i.ya(H,r.j(),null),u=n.ya(H,o.j(),null);this.Oa=new je(new Xb(u,o.ga,n.Ra()),new Xb(a,r.ga,i.Ra())),this.$a=[],this.ug=new Fd(t)}function Ze(t)