HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/douven.komma.pro/node_modules/browser-sync/client/dist/index.js.map
{"version":3,"sources":["webpack:///webpack/bootstrap e83fb0471e1d6ecc3a5c","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/debug/src/browser.js","webpack:///./node_modules/component-emitter/index.js","webpack:///./node_modules/engine.io-parser/lib/browser.js","webpack:///./lib/browser.utils.js","webpack:///./node_modules/parseqs/index.js","webpack:///./node_modules/component-inherit/index.js","webpack:///./lib/emitter.js","webpack:///./node_modules/socket.io-parser/index.js","webpack:///./node_modules/engine.io-client/lib/xmlhttprequest.js","webpack:///./node_modules/engine.io-client/lib/transport.js","webpack:///./lib/ghostmode.scroll.js","webpack:///./lib/events.js","webpack:///./lib/socket.js","webpack:///./node_modules/parseuri/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/has-binary2/index.js","webpack:///./node_modules/socket.io-parser/is-buffer.js","webpack:///./node_modules/socket.io-client/lib/manager.js","webpack:///./node_modules/engine.io-client/lib/transports/index.js","webpack:///./node_modules/engine.io-client/lib/transports/polling.js","webpack:///./node_modules/yeast/index.js","webpack:///./node_modules/indexof/index.js","webpack:///./node_modules/socket.io-client/lib/socket.js","webpack:///./node_modules/socket.io-client/lib/on.js","webpack:///./node_modules/component-bind/index.js","webpack:///./lib/notify.js","webpack:///./lib/ghostmode.clicks.js","webpack:///./lib/ghostmode.forms.js","webpack:///./lib/ghostmode.forms.input.js","webpack:///./lib/ghostmode.forms.toggles.js","webpack:///./lib/ghostmode.forms.submit.js","webpack:///./lib/ghostmode.location.js","webpack:///./lib/index.js","webpack:///./node_modules/socket.io-client/lib/index.js","webpack:///./node_modules/socket.io-client/lib/url.js","webpack:///./node_modules/debug/src/debug.js","webpack:///./node_modules/ms/index.js","webpack:///./node_modules/has-binary2/node_modules/isarray/index.js","webpack:///./node_modules/socket.io-parser/binary.js","webpack:///./node_modules/socket.io-parser/node_modules/isarray/index.js","webpack:///./node_modules/engine.io-client/lib/index.js","webpack:///./node_modules/engine.io-client/lib/socket.js","webpack:///./node_modules/has-cors/index.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-xhr.js","webpack:///./node_modules/engine.io-parser/lib/keys.js","webpack:///./node_modules/arraybuffer.slice/index.js","webpack:///./node_modules/after/index.js","webpack:///./node_modules/engine.io-parser/lib/utf8.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./node_modules/blob/index.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./node_modules/engine.io-client/lib/transports/websocket.js","webpack:///ws (ignored)","webpack:///./node_modules/to-array/index.js","webpack:///./node_modules/backo2/index.js","webpack:///./lib/client-shims.js","webpack:///./lib/code-sync.js","webpack:///./vendor/Reloader.ts","webpack:///./lib/utils.ts","webpack:///./vendor/Timer.ts","webpack:///./node_modules/nanologger/index.js","webpack:///./node_modules/assert/assert.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./lib/browser-sync.js","webpack:///./lib/tab.js","webpack:///./lib/ghostmode.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;ACvLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;;;;;;AClKA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,WAAW;;AAEX;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;;AAEA;;AAEA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,8BAA8B,gBAAgB;AAC9C,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA,YAAY,oBAAoB,oCAAoC;AACpE;;AAEA;;AAEA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kCAAkC,OAAO;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,YAAY;AACxB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,mDAAmD;AACnD,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA,OAAO,OAAO;AACd;AACA;;AAEA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;;AAEA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAC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CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF;;;GAGG;AACH,OAAO,CAAC,EAAE,GAAG,UAAS,IAAI,EAAE,IAAI;IAC5B,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,GAAG;YACX,SAAS,EAAE,CAAC,IAAI,CAAC;SACpB,CAAC;IACN,CAAC;IAAC,IAAI,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;AACL,CAAC,CAAC;;;;;;;;AC/BF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B,sBAAsB;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;;AAEA;AACA;AACA;AACA;AACA,KAAK,OAAO;AACZ;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,W;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,oBAAoB;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,YAAY,cAAc;AAC1B;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC/YA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;;AAEf;AACA;AACA;AACA,KAAK,YAAY;AACjB;AACA;;;;;;;;ACpCA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,UAAU;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;AC5Ja;AAEb;;;GAGG;AACH,IAAI,iBAAiB,GAAG,QAAQ,CAAC;AACjC,IAAI,kBAAkB,GAAG,gBAAgB,CAAC;AAC1C,IAAI,QAAQ,GAAG,kBAAkB,CAAC;AAClC,IAAI,KAAK,CAAC;AAEV,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAE7B;;;GAGG;AACH,OAAO,CAAC,IAAI,GAAG,UAAS,EAAE,EAAE,YAAY;IACpC,KAAK,GAAG,EAAE,CAA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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;AC5DA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,OAAO;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5jBA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACpPA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,aAAa,gBAAgB;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,YAAY;;AAElB;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClEA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,E;;;;;;;ACRA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD,KAAK;AACL,mBAAmB,qBAAqB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,+BAA+B;AAC5C;AACA;AACA;;AAEA,aAAa,4BAA4B;AACzC;AACA;AACA;A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;AAClC,CAAC;;;;;;;;ACzED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AC5FA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B,4BAA4B;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACzMA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvJA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,UAAU;AACV;;AAEA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA,GAAG;AACH;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B;AAC7B,GAAG;AACH,mBAAmB,iBAAiB;AACpC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC,KAAK,yBAAyB;AAC9B,qBAAqB,gBAAgB;AACrC;AACA;AACA,KAAK,mDAAmD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5IA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;ACHA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F;;AAE3F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;;;;;;;;;ACruBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA,0BAA0B,iDAAiD;AAC3E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT,2DAA2D;AAC3D;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3ZA;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,sCAAsC;;AAEhE,kBAAkB,gBAAgB;AAClC,gBAAgB,cAAc;AAC9B,oBAAoB,aAAa;;AAEjC;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;;;;;;sDC3BA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,KAAK;AACL,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAEA;AACA;AACA;AACA;AACA,GAAG;AAAA;AACH,EAAE;AACF,mBAAmB;AACnB;AACA,GAAG,OAAO;AACV;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO;AACT;AACA;;AAEA,CAAC;;;;;;;;AC9PD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;AClED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;;;;;;;;;AC9FD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAmB;;AAEnB;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACtOA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;;;;;;;;AC7RA,e;;;;;;ACAA;;AAEA;AACA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EA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;8CCnKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8BAA8B;AAC9B;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,oBAAoB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uBAAuB,SAAS;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACzkBA;AACA;AACA;AACA;AACA;AACA,C;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;;AAEA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AClBa;AAEb,IAAI,MAAM,GAAG,mBAAO,CAAC,EAAU,CAAC,CAAC;AACjC,IAAI,OAAO,GAAG,mBAAO,CAAC,CAAW,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,mBAAO,CAAC,EAAU,CAAC,CAAC;AACjC,IAAI,GAAG,GAAG,mBAAO,CAAC,EAAO,CAAC,CAAC;AAC3B,IAAI,KAAK,GAAG,mBAAO,CAAC,CAAiB,CAAC,CAAC;AAEvC;;GAEG;AACH,IAAI,WAAW,GAAG,UAAS,OAAO;IAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAEvB,IAAI,EAAE,GAAG,IAAI,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,UAAS,IAAI;QAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC7C,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE;QACrB,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE;QACtB,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF;;;;;GAKG;AACH,WAAW,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,IAAI,EAAE,OAAO;IAClD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAElB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACV,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5D,CAAC,CAAC;AAEF;;;GAGG;AACH,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,IAAI;IAC3C,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,IAAI,CAAC,CAAC;QACJ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7B,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC;QACf,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC;AAE7B;;;GAGG;AACH,qBAAqB,GAAG;IACpB,MAAM,CAAC,WAAW,KAAK,OAAO,GAAG,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,mBAAmB,GAAG,EAAE,IAAI;IACxB,GAAG,CAAC,CACA,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAC5D,CAAC,GAAG,GAAG,EACP,CAAC,EAAE,EACL,CAAC;QACC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,GAAG,CAAC;AACf,CAAC;;;;;;;AC9GD,IAAI,KAAK,GAAG,mBAAO,CAAC,CAAiB,CAAC,CAAC;AACvC,IAAI,OAAO,GAAG,mBAAO,CAAC,CAAW,CAAC,CAAC;AACnC,IAAI,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AAEpC,0EAA0E;AAC1E,IAAI,MAAM,EAAE,gBAAgB,CAAC;AAC7B,EAAE,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;IAC1C,+CAA+C;IAC/C,MAAM,GAAG,QAAQ,CAAC;IAClB,gBAAgB,GAAG,kBAAkB,CAAC;AAC1C,CAAC;AAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,WAAW,CAAC;IACrB,gBAAgB,GAAG,qBAAqB,CAAC;AAC7C,CAAC;AAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,SAAS,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;IACnD,MAAM,GAAG,UAAU,CAAC;IACpB,gBAAgB,GAAG,oBAAoB,CAAC;AAC5C,CAAC;AAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,SAAS,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC;IACvD,MAAM,GAAG,cAAc,CAAC;IACxB,gBAAgB,GAAG,wBAAwB,CAAC;AAChD,CAAC;AAED,0CAA0C;AAC1C,uCAAuC;AACvC;IACI,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAAC,IAAI,CAAC,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AAED,EAAE,CAAC,CACC,OAAO,SAAS,CAAC,gBAAgB,KAAK,WAAW;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,WACjC,CAAC,CAAC,CAAC;IACC,+BAA+B;AACnC,CAAC;AAAC,IAAI,CAAC,CAAC;IACJ,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC;;;;;;;;ACtCY;AAEb,IAAI,YAAY,GAAG,mBAAO,CAAC,EAAU,CAAC,CAAC,OAAO,CAAC;AAE/C,OAAO,CAAC,OAAO,GAAG;IACd,MAAM,EAAE,mBAAO,CAAC,EAAoB,CAAC;IACrC,MAAM,EAAE,mBAAO,CAAC,EAAoB,CAAC;IACrC,KAAK,EAAE,mBAAO,CAAC,EAAmB,CAAC;IACnC,QAAQ,EAAE,mBAAO,CAAC,EAAsB,CAAC;CAC5C,CAAC;AAEF;;;GAGG;AACH,OAAO,CAAC,IAAI,GAAG,UAAS,EAAE;IACtB,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;AACL,CAAC,CAAC","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 33);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e83fb0471e1d6ecc3a5c","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 0\n// module chunks = 0","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n               && 'undefined' != typeof chrome.storage\n                  ? chrome.storage.local\n                  : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n  'lightseagreen',\n  'forestgreen',\n  'goldenrod',\n  'dodgerblue',\n  'darkorchid',\n  'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n  // NB: In an Electron preload script, document will be defined but not fully\n  // initialized. Since we know we're in Chrome, we'll just detect this case\n  // explicitly\n  if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n    return true;\n  }\n\n  // is webkit? http://stackoverflow.com/a/16459606/376773\n  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n  return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n    // is firebug? http://stackoverflow.com/a/398120/376773\n    (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n    // is firefox >= v31?\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n    // double check webkit in userAgent just in case we are in a worker\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n  try {\n    return JSON.stringify(v);\n  } catch (err) {\n    return '[UnexpectedJSONParseError]: ' + err.message;\n  }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n  var useColors = this.useColors;\n\n  args[0] = (useColors ? '%c' : '')\n    + this.namespace\n    + (useColors ? ' %c' : ' ')\n    + args[0]\n    + (useColors ? '%c ' : ' ')\n    + '+' + exports.humanize(this.diff);\n\n  if (!useColors) return;\n\n  var c = 'color: ' + this.color;\n  args.splice(1, 0, c, 'color: inherit')\n\n  // the final \"%c\" is somewhat tricky, because there could be other\n  // arguments passed either before or after the %c, so we need to\n  // figure out the correct index to insert the CSS into\n  var index = 0;\n  var lastC = 0;\n  args[0].replace(/%[a-zA-Z%]/g, function(match) {\n    if ('%%' === match) return;\n    index++;\n    if ('%c' === match) {\n      // we only are interested in the *last* %c\n      // (the user may have provided their own)\n      lastC = index;\n    }\n  });\n\n  args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n  // this hackery is required for IE8/9, where\n  // the `console.log` function doesn't have 'apply'\n  return 'object' === typeof console\n    && console.log\n    && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n  try {\n    if (null == namespaces) {\n      exports.storage.removeItem('debug');\n    } else {\n      exports.storage.debug = namespaces;\n    }\n  } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n  var r;\n  try {\n    r = exports.storage.debug;\n  } catch(e) {}\n\n  // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n  if (!r && typeof process !== 'undefined' && 'env' in process) {\n    r = process.env.DEBUG;\n  }\n\n  return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n  try {\n    return window.localStorage;\n  } catch (e) {}\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/debug/src/browser.js\n// module id = 1\n// module chunks = 0","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n  module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n  if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n  for (var key in Emitter.prototype) {\r\n    obj[key] = Emitter.prototype[key];\r\n  }\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n    .push(fn);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n  function on() {\r\n    this.off(event, on);\r\n    fn.apply(this, arguments);\r\n  }\r\n\r\n  on.fn = fn;\r\n  this.on(event, on);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n\r\n  // all\r\n  if (0 == arguments.length) {\r\n    this._callbacks = {};\r\n    return this;\r\n  }\r\n\r\n  // specific event\r\n  var callbacks = this._callbacks['$' + event];\r\n  if (!callbacks) return this;\r\n\r\n  // remove all handlers\r\n  if (1 == arguments.length) {\r\n    delete this._callbacks['$' + event];\r\n    return this;\r\n  }\r\n\r\n  // remove specific handler\r\n  var cb;\r\n  for (var i = 0; i < callbacks.length; i++) {\r\n    cb = callbacks[i];\r\n    if (cb === fn || cb.fn === fn) {\r\n      callbacks.splice(i, 1);\r\n      break;\r\n    }\r\n  }\r\n  return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  var args = [].slice.call(arguments, 1)\r\n    , callbacks = this._callbacks['$' + event];\r\n\r\n  if (callbacks) {\r\n    callbacks = callbacks.slice(0);\r\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n      callbacks[i].apply(this, args);\r\n    }\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n  return !! this.listeners(event).length;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/component-emitter/index.js\n// module id = 2\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n  base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n    open:     0    // non-ws\n  , close:    1    // non-ws\n  , ping:     2\n  , pong:     3\n  , message:  4\n  , upgrade:  5\n  , noop:     6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n *     <packet type id> [ <data> ]\n *\n * Example:\n *\n *     5hello world\n *     3\n *     4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = false;\n  }\n\n  if (typeof utf8encode === 'function') {\n    callback = utf8encode;\n    utf8encode = null;\n  }\n\n  var data = (packet.data === undefined)\n    ? undefined\n    : packet.data.buffer || packet.data;\n\n  if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n    return encodeArrayBuffer(packet, supportsBinary, callback);\n  } else if (Blob && data instanceof global.Blob) {\n    return encodeBlob(packet, supportsBinary, callback);\n  }\n\n  // might be an object with { base64: true, data: dataAsBase64String }\n  if (data && data.base64) {\n    return encodeBase64Object(packet, callback);\n  }\n\n  // Sending data as a utf-8 string\n  var encoded = packets[packet.type];\n\n  // data fragment is optional\n  if (undefined !== packet.data) {\n    encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n  }\n\n  return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n  // packet data is an object { base64: true, data: dataAsBase64String }\n  var message = 'b' + exports.packets[packet.type] + packet.data.data;\n  return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var data = packet.data;\n  var contentArray = new Uint8Array(data);\n  var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n  resultBuffer[0] = packets[packet.type];\n  for (var i = 0; i < contentArray.length; i++) {\n    resultBuffer[i+1] = contentArray[i];\n  }\n\n  return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var fr = new FileReader();\n  fr.onload = function() {\n    packet.data = fr.result;\n    exports.encodePacket(packet, supportsBinary, true, callback);\n  };\n  return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  if (dontSendBlobs) {\n    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n  }\n\n  var length = new Uint8Array(1);\n  length[0] = packets[packet.type];\n  var blob = new Blob([length.buffer, packet.data]);\n\n  return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n  var message = 'b' + exports.packets[packet.type];\n  if (Blob && packet.data instanceof global.Blob) {\n    var fr = new FileReader();\n    fr.onload = function() {\n      var b64 = fr.result.split(',')[1];\n      callback(message + b64);\n    };\n    return fr.readAsDataURL(packet.data);\n  }\n\n  var b64data;\n  try {\n    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n  } catch (e) {\n    // iPhone Safari doesn't let you apply with typed arrays\n    var typed = new Uint8Array(packet.data);\n    var basic = new Array(typed.length);\n    for (var i = 0; i < typed.length; i++) {\n      basic[i] = typed[i];\n    }\n    b64data = String.fromCharCode.apply(null, basic);\n  }\n  message += global.btoa(b64data);\n  return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n  if (data === undefined) {\n    return err;\n  }\n  // String data\n  if (typeof data === 'string') {\n    if (data.charAt(0) === 'b') {\n      return exports.decodeBase64Packet(data.substr(1), binaryType);\n    }\n\n    if (utf8decode) {\n      data = tryDecode(data);\n      if (data === false) {\n        return err;\n      }\n    }\n    var type = data.charAt(0);\n\n    if (Number(type) != type || !packetslist[type]) {\n      return err;\n    }\n\n    if (data.length > 1) {\n      return { type: packetslist[type], data: data.substring(1) };\n    } else {\n      return { type: packetslist[type] };\n    }\n  }\n\n  var asArray = new Uint8Array(data);\n  var type = asArray[0];\n  var rest = sliceBuffer(data, 1);\n  if (Blob && binaryType === 'blob') {\n    rest = new Blob([rest]);\n  }\n  return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n  try {\n    data = utf8.decode(data, { strict: false });\n  } catch (e) {\n    return false;\n  }\n  return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n  var type = packetslist[msg.charAt(0)];\n  if (!base64encoder) {\n    return { type: type, data: { base64: true, data: msg.substr(1) } };\n  }\n\n  var data = base64encoder.decode(msg.substr(1));\n\n  if (binaryType === 'blob' && Blob) {\n    data = new Blob([data]);\n  }\n\n  return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n *     <length>:data\n *\n * Example:\n *\n *     11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = null;\n  }\n\n  var isBinary = hasBinary(packets);\n\n  if (supportsBinary && isBinary) {\n    if (Blob && !dontSendBlobs) {\n      return exports.encodePayloadAsBlob(packets, callback);\n    }\n\n    return exports.encodePayloadAsArrayBuffer(packets, callback);\n  }\n\n  if (!packets.length) {\n    return callback('0:');\n  }\n\n  function setLengthHeader(message) {\n    return message.length + ':' + message;\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n      doneCallback(null, setLengthHeader(message));\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(results.join(''));\n  });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n  var result = new Array(ary.length);\n  var next = after(ary.length, done);\n\n  var eachWithIndex = function(i, el, cb) {\n    each(el, function(error, msg) {\n      result[i] = msg;\n      cb(error, result);\n    });\n  };\n\n  for (var i = 0; i < ary.length; i++) {\n    eachWithIndex(i, ary[i], next);\n  }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n  if (typeof data !== 'string') {\n    return exports.decodePayloadAsBinary(data, binaryType, callback);\n  }\n\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var packet;\n  if (data === '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n  var length = '', n, msg;\n\n  for (var i = 0, l = data.length; i < l; i++) {\n    var chr = data.charAt(i);\n\n    if (chr !== ':') {\n      length += chr;\n      continue;\n    }\n\n    if (length === '' || (length != (n = Number(length)))) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    msg = data.substr(i + 1, n);\n\n    if (length != msg.length) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    if (msg.length) {\n      packet = exports.decodePacket(msg, binaryType, false);\n\n      if (err.type === packet.type && err.data === packet.data) {\n        // parser error in individual packet - ignoring payload\n        return callback(err, 0, 1);\n      }\n\n      var ret = callback(packet, i + n, l);\n      if (false === ret) return;\n    }\n\n    // advance cursor\n    i += n;\n    length = '';\n  }\n\n  if (length !== '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n  if (!packets.length) {\n    return callback(new ArrayBuffer(0));\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(data) {\n      return doneCallback(null, data);\n    });\n  }\n\n  map(packets, encodeOne, function(err, encodedPackets) {\n    var totalLength = encodedPackets.reduce(function(acc, p) {\n      var len;\n      if (typeof p === 'string'){\n        len = p.length;\n      } else {\n        len = p.byteLength;\n      }\n      return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n    }, 0);\n\n    var resultArray = new Uint8Array(totalLength);\n\n    var bufferIndex = 0;\n    encodedPackets.forEach(function(p) {\n      var isString = typeof p === 'string';\n      var ab = p;\n      if (isString) {\n        var view = new Uint8Array(p.length);\n        for (var i = 0; i < p.length; i++) {\n          view[i] = p.charCodeAt(i);\n        }\n        ab = view.buffer;\n      }\n\n      if (isString) { // not true binary\n        resultArray[bufferIndex++] = 0;\n      } else { // true binary\n        resultArray[bufferIndex++] = 1;\n      }\n\n      var lenStr = ab.byteLength.toString();\n      for (var i = 0; i < lenStr.length; i++) {\n        resultArray[bufferIndex++] = parseInt(lenStr[i]);\n      }\n      resultArray[bufferIndex++] = 255;\n\n      var view = new Uint8Array(ab);\n      for (var i = 0; i < view.length; i++) {\n        resultArray[bufferIndex++] = view[i];\n      }\n    });\n\n    return callback(resultArray.buffer);\n  });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(encoded) {\n      var binaryIdentifier = new Uint8Array(1);\n      binaryIdentifier[0] = 1;\n      if (typeof encoded === 'string') {\n        var view = new Uint8Array(encoded.length);\n        for (var i = 0; i < encoded.length; i++) {\n          view[i] = encoded.charCodeAt(i);\n        }\n        encoded = view.buffer;\n        binaryIdentifier[0] = 0;\n      }\n\n      var len = (encoded instanceof ArrayBuffer)\n        ? encoded.byteLength\n        : encoded.size;\n\n      var lenStr = len.toString();\n      var lengthAry = new Uint8Array(lenStr.length + 1);\n      for (var i = 0; i < lenStr.length; i++) {\n        lengthAry[i] = parseInt(lenStr[i]);\n      }\n      lengthAry[lenStr.length] = 255;\n\n      if (Blob) {\n        var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n        doneCallback(null, blob);\n      }\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(new Blob(results));\n  });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var bufferTail = data;\n  var buffers = [];\n\n  while (bufferTail.byteLength > 0) {\n    var tailArray = new Uint8Array(bufferTail);\n    var isString = tailArray[0] === 0;\n    var msgLength = '';\n\n    for (var i = 1; ; i++) {\n      if (tailArray[i] === 255) break;\n\n      // 310 = char length of Number.MAX_VALUE\n      if (msgLength.length > 310) {\n        return callback(err, 0, 1);\n      }\n\n      msgLength += tailArray[i];\n    }\n\n    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n    msgLength = parseInt(msgLength);\n\n    var msg = sliceBuffer(bufferTail, 0, msgLength);\n    if (isString) {\n      try {\n        msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n      } catch (e) {\n        // iPhone Safari doesn't let you apply to typed arrays\n        var typed = new Uint8Array(msg);\n        msg = '';\n        for (var i = 0; i < typed.length; i++) {\n          msg += String.fromCharCode(typed[i]);\n        }\n      }\n    }\n\n    buffers.push(msg);\n    bufferTail = sliceBuffer(bufferTail, msgLength);\n  }\n\n  var total = buffers.length;\n  buffers.forEach(function(buffer, i) {\n    callback(exports.decodePacket(buffer, binaryType, true), i, total);\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-parser/lib/browser.js\n// module id = 3\n// module chunks = 0","\"use strict\";\n\nvar utils = exports;\n\n/**\n * @returns {window}\n */\nutils.getWindow = function() {\n    return window;\n};\n\n/**\n * @returns {HTMLDocument}\n */\nutils.getDocument = function() {\n    return document;\n};\n\n/**\n * @returns {HTMLElement}\n */\nutils.getBody = function() {\n    return document.getElementsByTagName(\"body\")[0];\n};\n\n/**\n * Get the current x/y position crossbow\n * @returns {{x: *, y: *}}\n */\nutils.getBrowserScrollPosition = function() {\n    var $window = exports.getWindow();\n    var $document = exports.getDocument();\n    var scrollX;\n    var scrollY;\n    var dElement = $document.documentElement;\n    var dBody = $document.body;\n\n    if ($window.pageYOffset !== undefined) {\n        scrollX = $window.pageXOffset;\n        scrollY = $window.pageYOffset;\n    } else {\n        scrollX = dElement.scrollLeft || dBody.scrollLeft || 0;\n        scrollY = dElement.scrollTop || dBody.scrollTop || 0;\n    }\n\n    return {\n        x: scrollX,\n        y: scrollY\n    };\n};\n\n/**\n * @returns {{x: number, y: number}}\n */\nutils.getScrollSpace = function() {\n    var $document = exports.getDocument();\n    var dElement = $document.documentElement;\n    var dBody = $document.body;\n    return {\n        x: dBody.scrollHeight - dElement.clientWidth,\n        y: dBody.scrollHeight - dElement.clientHeight\n    };\n};\n\n/**\n * Saves scroll position into cookies\n */\nutils.saveScrollPosition = function() {\n    var pos = utils.getBrowserScrollPosition();\n    pos = [pos.x, pos.y];\n    utils.getDocument.cookie = \"bs_scroll_pos=\" + pos.join(\",\");\n};\n\n/**\n * Restores scroll position from cookies\n */\nutils.restoreScrollPosition = function() {\n    var pos = utils\n        .getDocument()\n        .cookie.replace(\n            /(?:(?:^|.*;\\s*)bs_scroll_pos\\s*\\=\\s*([^;]*).*$)|^.*$/,\n            \"$1\"\n        )\n        .split(\",\");\n    utils.getWindow().scrollTo(pos[0], pos[1]);\n};\n\n/**\n * @param tagName\n * @param elem\n * @returns {*|number}\n */\nutils.getElementIndex = function(tagName, elem) {\n    var allElems = utils.getDocument().getElementsByTagName(tagName);\n    return Array.prototype.indexOf.call(allElems, elem);\n};\n\n/**\n * Force Change event on radio & checkboxes (IE)\n */\nutils.forceChange = function(elem) {\n    elem.blur();\n    elem.focus();\n};\n\n/**\n * @param elem\n * @returns {{tagName: (elem.tagName|*), index: *}}\n */\nutils.getElementData = function(elem) {\n    var tagName = elem.tagName;\n    var index = utils.getElementIndex(tagName, elem);\n    return {\n        tagName: tagName,\n        index: index\n    };\n};\n\n/**\n * @param {string} tagName\n * @param {number} index\n */\nutils.getSingleElement = function(tagName, index) {\n    var elems = utils.getDocument().getElementsByTagName(tagName);\n    return elems[index];\n};\n\n/**\n * Get the body element\n */\nutils.getBody = function() {\n    return utils.getDocument().getElementsByTagName(\"body\")[0];\n};\n\n/**\n * @param {{x: number, y: number}} pos\n */\nutils.setScroll = function(pos) {\n    utils.getWindow().scrollTo(pos.x, pos.y);\n};\n\n/**\n * Hard reload\n */\nutils.reloadBrowser = function() {\n    utils.getWindow().location.reload(true);\n};\n\n/**\n * Foreach polyfill\n * @param coll\n * @param fn\n */\nutils.forEach = function(coll, fn) {\n    for (var i = 0, n = coll.length; i < n; i += 1) {\n        fn(coll[i], i, coll);\n    }\n};\n\n/**\n * Are we dealing with old IE?\n * @returns {boolean}\n */\nutils.isOldIe = function() {\n    return typeof utils.getWindow().attachEvent !== \"undefined\";\n};\n\n/**\n * Split the URL information\n * @returns {object}\n */\nutils.getLocation = function(url) {\n    var location = utils.getDocument().createElement(\"a\");\n    location.href = url;\n\n    if (location.host === \"\") {\n        location.href = location.href;\n    }\n\n    return location;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/browser.utils.js","/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n  var str = '';\r\n\r\n  for (var i in obj) {\r\n    if (obj.hasOwnProperty(i)) {\r\n      if (str.length) str += '&';\r\n      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n    }\r\n  }\r\n\r\n  return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n  var qry = {};\r\n  var pairs = qs.split('&');\r\n  for (var i = 0, l = pairs.length; i < l; i++) {\r\n    var pair = pairs[i].split('=');\r\n    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n  }\r\n  return qry;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parseqs/index.js\n// module id = 5\n// module chunks = 0","\nmodule.exports = function(a, b){\n  var fn = function(){};\n  fn.prototype = b.prototype;\n  a.prototype = new fn;\n  a.prototype.constructor = a;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/component-inherit/index.js\n// module id = 6\n// module chunks = 0","\"use strict\";\n\nexports.events = {};\n\n/**\n * @param name\n * @param data\n */\nexports.emit = function(name, data) {\n    var event = exports.events[name];\n    var listeners;\n    if (event && event.listeners) {\n        listeners = event.listeners;\n        for (var i = 0, n = listeners.length; i < n; i += 1) {\n            listeners[i](data);\n        }\n    }\n};\n\n/**\n * @param name\n * @param func\n */\nexports.on = function(name, func) {\n    var events = exports.events;\n    if (!events[name]) {\n        events[name] = {\n            listeners: [func]\n        };\n    } else {\n        events[name].listeners.push(func);\n    }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/emitter.js","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar hasBin = require('has-binary2');\nvar binary = require('./binary');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n  'CONNECT',\n  'DISCONNECT',\n  'EVENT',\n  'ACK',\n  'ERROR',\n  'BINARY_EVENT',\n  'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n  if ((obj.type === exports.EVENT || obj.type === exports.ACK) && hasBin(obj.data)) {\n    obj.type = obj.type === exports.EVENT ? exports.BINARY_EVENT : exports.BINARY_ACK;\n  }\n\n  debug('encoding packet %j', obj);\n\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    encodeAsBinary(obj, callback);\n  }\n  else {\n    var encoding = encodeAsString(obj);\n    callback([encoding]);\n  }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n  // first is type\n  var str = '' + obj.type;\n\n  // attachments if we have them\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    str += obj.attachments + '-';\n  }\n\n  // if we have a namespace other than `/`\n  // we append it followed by a comma `,`\n  if (obj.nsp && '/' !== obj.nsp) {\n    str += obj.nsp + ',';\n  }\n\n  // immediately followed by the id\n  if (null != obj.id) {\n    str += obj.id;\n  }\n\n  // json data\n  if (null != obj.data) {\n    str += JSON.stringify(obj.data);\n  }\n\n  debug('encoded %j as %s', obj, str);\n  return str;\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n  function writeEncoding(bloblessData) {\n    var deconstruction = binary.deconstructPacket(bloblessData);\n    var pack = encodeAsString(deconstruction.packet);\n    var buffers = deconstruction.buffers;\n\n    buffers.unshift(pack); // add packet info to beginning of data list\n    callback(buffers); // write all the buffers\n  }\n\n  binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n  this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an ecoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n  var packet;\n  if (typeof obj === 'string') {\n    packet = decodeString(obj);\n    if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n      this.reconstructor = new BinaryReconstructor(packet);\n\n      // no attachments, labeled binary but no binary data to follow\n      if (this.reconstructor.reconPack.attachments === 0) {\n        this.emit('decoded', packet);\n      }\n    } else { // non-binary full packet\n      this.emit('decoded', packet);\n    }\n  }\n  else if (isBuf(obj) || obj.base64) { // raw binary data\n    if (!this.reconstructor) {\n      throw new Error('got binary data when not reconstructing a packet');\n    } else {\n      packet = this.reconstructor.takeBinaryData(obj);\n      if (packet) { // received final buffer\n        this.reconstructor = null;\n        this.emit('decoded', packet);\n      }\n    }\n  }\n  else {\n    throw new Error('Unknown type: ' + obj);\n  }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n  var i = 0;\n  // look up type\n  var p = {\n    type: Number(str.charAt(0))\n  };\n\n  if (null == exports.types[p.type]) return error();\n\n  // look up attachments if type binary\n  if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n    var buf = '';\n    while (str.charAt(++i) !== '-') {\n      buf += str.charAt(i);\n      if (i == str.length) break;\n    }\n    if (buf != Number(buf) || str.charAt(i) !== '-') {\n      throw new Error('Illegal attachments');\n    }\n    p.attachments = Number(buf);\n  }\n\n  // look up namespace (if any)\n  if ('/' === str.charAt(i + 1)) {\n    p.nsp = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (',' === c) break;\n      p.nsp += c;\n      if (i === str.length) break;\n    }\n  } else {\n    p.nsp = '/';\n  }\n\n  // look up id\n  var next = str.charAt(i + 1);\n  if ('' !== next && Number(next) == next) {\n    p.id = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (null == c || Number(c) != c) {\n        --i;\n        break;\n      }\n      p.id += str.charAt(i);\n      if (i === str.length) break;\n    }\n    p.id = Number(p.id);\n  }\n\n  // look up json data\n  if (str.charAt(++i)) {\n    p = tryParse(p, str.substr(i));\n  }\n\n  debug('decoded %s as %j', str, p);\n  return p;\n}\n\nfunction tryParse(p, str) {\n  try {\n    p.data = JSON.parse(str);\n  } catch(e){\n    return error();\n  }\n  return p; \n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n  if (this.reconstructor) {\n    this.reconstructor.finishedReconstruction();\n  }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n  this.reconPack = packet;\n  this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n *   a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n  this.buffers.push(binData);\n  if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n    var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n    this.finishedReconstruction();\n    return packet;\n  }\n  return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n  this.reconPack = null;\n  this.buffers = [];\n};\n\nfunction error() {\n  return {\n    type: exports.ERROR,\n    data: 'parser error'\n  };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/index.js\n// module id = 8\n// module chunks = 0","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\n\nmodule.exports = function (opts) {\n  var xdomain = opts.xdomain;\n\n  // scheme must be same when usign XDomainRequest\n  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n  var xscheme = opts.xscheme;\n\n  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n  // https://github.com/Automattic/engine.io-client/pull/217\n  var enablesXDR = opts.enablesXDR;\n\n  // XMLHttpRequest can be disabled on IE\n  try {\n    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n      return new XMLHttpRequest();\n    }\n  } catch (e) { }\n\n  // Use XDomainRequest for IE8 if enablesXDR is true\n  // because loading bar keeps flashing when using jsonp-polling\n  // https://github.com/yujiosaka/socke.io-ie8-loading-example\n  try {\n    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n      return new XDomainRequest();\n    }\n  } catch (e) { }\n\n  if (!xdomain) {\n    try {\n      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n    } catch (e) { }\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/xmlhttprequest.js\n// module id = 9\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n  this.path = opts.path;\n  this.hostname = opts.hostname;\n  this.port = opts.port;\n  this.secure = opts.secure;\n  this.query = opts.query;\n  this.timestampParam = opts.timestampParam;\n  this.timestampRequests = opts.timestampRequests;\n  this.readyState = '';\n  this.agent = opts.agent || false;\n  this.socket = opts.socket;\n  this.enablesXDR = opts.enablesXDR;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n  this.forceNode = opts.forceNode;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n  this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n  var err = new Error(msg);\n  err.type = 'TransportError';\n  err.description = desc;\n  this.emit('error', err);\n  return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n  if ('closed' === this.readyState || '' === this.readyState) {\n    this.readyState = 'opening';\n    this.doOpen();\n  }\n\n  return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.doClose();\n    this.onClose();\n  }\n\n  return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n  if ('open' === this.readyState) {\n    this.write(packets);\n  } else {\n    throw new Error('Transport not open');\n  }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n  this.readyState = 'open';\n  this.writable = true;\n  this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n  var packet = parser.decodePacket(data, this.socket.binaryType);\n  this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n  this.readyState = 'closed';\n  this.emit('close');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transport.js\n// module id = 10\n// module chunks = 0","\"use strict\";\n\n/**\n * This is the plugin for syncing scroll between devices\n * @type {string}\n */\nvar WINDOW_EVENT_NAME = \"scroll\";\nvar ELEMENT_EVENT_NAME = \"scroll:element\";\nvar OPT_PATH = \"ghostMode.scroll\";\nvar utils;\n\nexports.canEmitEvents = true;\n\n/**\n * @param {BrowserSync} bs\n * @param eventManager\n */\nexports.init = function(bs, eventManager) {\n    utils = bs.utils;\n    var opts = bs.options;\n\n    /**\n     * Window Scroll events\n     */\n    eventManager.addEvent(window, WINDOW_EVENT_NAME, exports.browserEvent(bs));\n    bs.socket.on(WINDOW_EVENT_NAME, exports.socketEvent(bs));\n\n    /**\n     * element Scroll Events\n     */\n    var cache = {};\n    addElementScrollEvents(\"scrollElements\", false);\n    addElementScrollEvents(\"scrollElementMapping\", true);\n    bs.socket.on(ELEMENT_EVENT_NAME, exports.socketEventForElement(bs, cache));\n\n    function addElementScrollEvents(key, map) {\n        if (\n            !opts[key] ||\n            !opts[key].length ||\n            !(\"querySelectorAll\" in document)\n        ) {\n            return;\n        }\n        utils.forEach(opts[key], function(selector) {\n            var elems = document.querySelectorAll(selector) || [];\n            utils.forEach(elems, function(elem) {\n                var data = utils.getElementData(elem);\n                data.cacheSelector = data.tagName + \":\" + data.index;\n                data.map = map;\n                cache[data.cacheSelector] = elem;\n                eventManager.addEvent(\n                    elem,\n                    WINDOW_EVENT_NAME,\n                    exports.browserEventForElement(bs, elem, data)\n                );\n            });\n        });\n    }\n};\n\n/**\n * @param {BrowserSync} bs\n */\nexports.socketEvent = function(bs) {\n    return function(data) {\n        if (!bs.canSync(data, OPT_PATH)) {\n            return false;\n        }\n\n        var scrollSpace = utils.getScrollSpace();\n\n        exports.canEmitEvents = false;\n\n        if (bs.options && bs.options.scrollProportionally) {\n            return window.scrollTo(\n                0,\n                scrollSpace.y * data.position.proportional\n            ); // % of y axis of scroll to px\n        } else {\n            return window.scrollTo(0, data.position.raw.y);\n        }\n    };\n};\n\n/**\n * @param bs\n */\nexports.socketEventForElement = function(bs, cache) {\n    return function(data) {\n        if (!bs.canSync(data, OPT_PATH)) {\n            return false;\n        }\n\n        exports.canEmitEvents = false;\n\n        function scrollOne(selector, pos) {\n            if (cache[selector]) {\n                cache[selector].scrollTop = pos;\n            }\n        }\n\n        if (data.map) {\n            return Object.keys(cache).forEach(function(key) {\n                scrollOne(key, data.position);\n            });\n        }\n\n        scrollOne(data.elem.cacheSelector, data.position);\n    };\n};\n\n/**\n * @param bs\n */\nexports.browserEventForElement = function(bs, elem, data) {\n    return function() {\n        var canSync = exports.canEmitEvents;\n        if (canSync) {\n            bs.socket.emit(ELEMENT_EVENT_NAME, {\n                position: elem.scrollTop,\n                elem: data,\n                map: data.map\n            });\n        }\n        exports.canEmitEvents = true;\n    };\n};\n\nexports.browserEvent = function(bs) {\n    return function() {\n        var canSync = exports.canEmitEvents;\n\n        if (canSync) {\n            bs.socket.emit(WINDOW_EVENT_NAME, {\n                position: exports.getScrollPosition()\n            });\n        }\n\n        exports.canEmitEvents = true;\n    };\n};\n\n/**\n * @returns {{raw: number, proportional: number}}\n */\nexports.getScrollPosition = function() {\n    var pos = utils.getBrowserScrollPosition();\n    return {\n        raw: pos, // Get px of x and y axis of scroll\n        proportional: exports.getScrollTopPercentage(pos) // Get % of y axis of scroll\n    };\n};\n\n/**\n * @param {{x: number, y: number}} scrollSpace\n * @param scrollPosition\n * @returns {{x: number, y: number}}\n */\nexports.getScrollPercentage = function(scrollSpace, scrollPosition) {\n    var x = scrollPosition.x / scrollSpace.x;\n    var y = scrollPosition.y / scrollSpace.y;\n\n    return {\n        x: x || 0,\n        y: y\n    };\n};\n\n/**\n * Get just the percentage of Y axis of scroll\n * @returns {number}\n */\nexports.getScrollTopPercentage = function(pos) {\n    var scrollSpace = utils.getScrollSpace();\n    var percentage = exports.getScrollPercentage(scrollSpace, pos);\n    return percentage.y;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.scroll.js","exports._ElementCache = function() {\n    var cache = {},\n        guidCounter = 1,\n        expando = \"data\" + new Date().getTime();\n\n    this.getData = function(elem) {\n        var guid = elem[expando];\n        if (!guid) {\n            guid = elem[expando] = guidCounter++;\n            cache[guid] = {};\n        }\n        return cache[guid];\n    };\n\n    this.removeData = function(elem) {\n        var guid = elem[expando];\n        if (!guid) return;\n        delete cache[guid];\n        try {\n            delete elem[expando];\n        } catch (e) {\n            if (elem.removeAttribute) {\n                elem.removeAttribute(expando);\n            }\n        }\n    };\n};\n\n/**\n * Fix an event\n * @param event\n * @returns {*}\n */\nexports._fixEvent = function(event) {\n    function returnTrue() {\n        return true;\n    }\n\n    function returnFalse() {\n        return false;\n    }\n\n    if (!event || !event.stopPropagation) {\n        var old = event || window.event;\n\n        // Clone the old object so that we can modify the values\n        event = {};\n\n        for (var prop in old) {\n            event[prop] = old[prop];\n        }\n\n        // The event occurred on this element\n        if (!event.target) {\n            event.target = event.srcElement || document;\n        }\n\n        // Handle which other element the event is related to\n        event.relatedTarget =\n            event.fromElement === event.target\n                ? event.toElement\n                : event.fromElement;\n\n        // Stop the default browser action\n        event.preventDefault = function() {\n            event.returnValue = false;\n            event.isDefaultPrevented = returnTrue;\n        };\n\n        event.isDefaultPrevented = returnFalse;\n\n        // Stop the event from bubbling\n        event.stopPropagation = function() {\n            event.cancelBubble = true;\n            event.isPropagationStopped = returnTrue;\n        };\n\n        event.isPropagationStopped = returnFalse;\n\n        // Stop the event from bubbling and executing other handlers\n        event.stopImmediatePropagation = function() {\n            this.isImmediatePropagationStopped = returnTrue;\n            this.stopPropagation();\n        };\n\n        event.isImmediatePropagationStopped = returnFalse;\n\n        // Handle mouse position\n        if (event.clientX != null) {\n            var doc = document.documentElement,\n                body = document.body;\n\n            event.pageX =\n                event.clientX +\n                ((doc && doc.scrollLeft) || (body && body.scrollLeft) || 0) -\n                ((doc && doc.clientLeft) || (body && body.clientLeft) || 0);\n            event.pageY =\n                event.clientY +\n                ((doc && doc.scrollTop) || (body && body.scrollTop) || 0) -\n                ((doc && doc.clientTop) || (body && body.clientTop) || 0);\n        }\n\n        // Handle key presses\n        event.which = event.charCode || event.keyCode;\n\n        // Fix button for mouse clicks:\n        // 0 == left; 1 == middle; 2 == right\n        if (event.button != null) {\n            event.button =\n                event.button & 1\n                    ? 0\n                    : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n        }\n    }\n\n    return event;\n};\n\n/**\n * @constructor\n */\nexports._EventManager = function(cache) {\n    var nextGuid = 1;\n\n    this.addEvent = function(elem, type, fn) {\n        var data = cache.getData(elem);\n\n        if (!data.handlers) data.handlers = {};\n\n        if (!data.handlers[type]) data.handlers[type] = [];\n\n        if (!fn.guid) fn.guid = nextGuid++;\n\n        data.handlers[type].push(fn);\n\n        if (!data.dispatcher) {\n            data.disabled = false;\n            data.dispatcher = function(event) {\n                if (data.disabled) return;\n                event = exports._fixEvent(event);\n\n                var handlers = data.handlers[event.type];\n                if (handlers) {\n                    for (var n = 0; n < handlers.length; n++) {\n                        handlers[n].call(elem, event);\n                    }\n                }\n            };\n        }\n\n        if (data.handlers[type].length == 1) {\n            if (document.addEventListener) {\n                elem.addEventListener(type, data.dispatcher, false);\n            } else if (document.attachEvent) {\n                elem.attachEvent(\"on\" + type, data.dispatcher);\n            }\n        }\n    };\n\n    function tidyUp(elem, type) {\n        function isEmpty(object) {\n            for (var prop in object) {\n                return false;\n            }\n            return true;\n        }\n\n        var data = cache.getData(elem);\n\n        if (data.handlers[type].length === 0) {\n            delete data.handlers[type];\n\n            if (document.removeEventListener) {\n                elem.removeEventListener(type, data.dispatcher, false);\n            } else if (document.detachEvent) {\n                elem.detachEvent(\"on\" + type, data.dispatcher);\n            }\n        }\n\n        if (isEmpty(data.handlers)) {\n            delete data.handlers;\n            delete data.dispatcher;\n        }\n\n        if (isEmpty(data)) {\n            cache.removeData(elem);\n        }\n    }\n\n    this.removeEvent = function(elem, type, fn) {\n        var data = cache.getData(elem);\n\n        if (!data.handlers) return;\n\n        var removeType = function(t) {\n            data.handlers[t] = [];\n            tidyUp(elem, t);\n        };\n\n        if (!type) {\n            for (var t in data.handlers) removeType(t);\n            return;\n        }\n\n        var handlers = data.handlers[type];\n        if (!handlers) return;\n\n        if (!fn) {\n            removeType(type);\n            return;\n        }\n\n        if (fn.guid) {\n            for (var n = 0; n < handlers.length; n++) {\n                if (handlers[n].guid === fn.guid) {\n                    handlers.splice(n--, 1);\n                }\n            }\n        }\n        tidyUp(elem, type);\n    };\n\n    this.proxy = function(context, fn) {\n        if (!fn.guid) {\n            fn.guid = nextGuid++;\n        }\n        var ret = function() {\n            return fn.apply(context, arguments);\n        };\n        ret.guid = fn.guid;\n        return ret;\n    };\n};\n\n/**\n * Trigger a click on an element\n * @param elem\n */\nexports.triggerClick = function(elem) {\n    var evObj;\n\n    if (document.createEvent) {\n        window.setTimeout(function() {\n            evObj = document.createEvent(\"MouseEvents\");\n            evObj.initEvent(\"click\", true, true);\n            elem.dispatchEvent(evObj);\n        }, 0);\n    } else {\n        window.setTimeout(function() {\n            if (document.createEventObject) {\n                evObj = document.createEventObject();\n                evObj.cancelBubble = true;\n                elem.fireEvent(\"on\" + \"click\", evObj);\n            }\n        }, 0);\n    }\n};\n\nvar cache = new exports._ElementCache();\nvar eventManager = new exports._EventManager(cache);\n\neventManager.triggerClick = exports.triggerClick;\n\nexports.manager = eventManager;\n\n\n\n// WEBPACK FOOTER //\n// ./lib/events.js","var socket = require(\"socket.io-client\");\n\n/**\n * @type {{emit: emit, on: on}}\n */\nvar socketConfig = window.___browserSync___.socketConfig;\nvar socketUrl = window.___browserSync___.socketUrl;\nvar io = socket(socketUrl, socketConfig);\n\n/**\n * *****BACK-COMPAT*******\n * Scripts that come after Browsersync may rely on the previous window.___browserSync___.socket\n */\nwindow.___browserSync___.socket = io;\n\n/**\n * @returns {string}\n */\nexports.getPath = function() {\n    return window.location.pathname;\n};\n/**\n * Alias for socket.emit\n * @param name\n * @param data\n */\nexports.emit = function(name, data) {\n    if (io && io.emit) {\n        // send relative path of where the event is sent\n        data.url = exports.getPath();\n        io.emit(name, data);\n    }\n};\n\n/**\n * Alias for socket.on\n * @param name\n * @param func\n */\nexports.on = function(name, func) {\n    io.on(name, func);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/socket.js","/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n    var src = str,\r\n        b = str.indexOf('['),\r\n        e = str.indexOf(']');\r\n\r\n    if (b != -1 && e != -1) {\r\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n    }\r\n\r\n    var m = re.exec(str || ''),\r\n        uri = {},\r\n        i = 14;\r\n\r\n    while (i--) {\r\n        uri[parts[i]] = m[i] || '';\r\n    }\r\n\r\n    if (b != -1 && e != -1) {\r\n        uri.source = src;\r\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n        uri.ipv6uri = true;\r\n    }\r\n\r\n    return uri;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/parseuri/index.js\n// module id = 14\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 15\n// module chunks = 0","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n  if (!obj || typeof obj !== 'object') {\n    return false;\n  }\n\n  if (isArray(obj)) {\n    for (var i = 0, l = obj.length; i < l; i++) {\n      if (hasBinary(obj[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n     (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n     (withNativeBlob && obj instanceof Blob) ||\n     (withNativeFile && obj instanceof File)\n    ) {\n    return true;\n  }\n\n  // see: https://github.com/Automattic/has-binary/pull/4\n  if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n    return hasBinary(obj.toJSON(), true);\n  }\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-binary2/index.js\n// module id = 16\n// module chunks = 0","\nmodule.exports = isBuf;\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n  return (global.Buffer && global.Buffer.isBuffer(obj)) ||\n         (global.ArrayBuffer && obj instanceof ArrayBuffer);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/is-buffer.js\n// module id = 17\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n  if (!(this instanceof Manager)) return new Manager(uri, opts);\n  if (uri && ('object' === typeof uri)) {\n    opts = uri;\n    uri = undefined;\n  }\n  opts = opts || {};\n\n  opts.path = opts.path || '/socket.io';\n  this.nsps = {};\n  this.subs = [];\n  this.opts = opts;\n  this.reconnection(opts.reconnection !== false);\n  this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n  this.reconnectionDelay(opts.reconnectionDelay || 1000);\n  this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n  this.randomizationFactor(opts.randomizationFactor || 0.5);\n  this.backoff = new Backoff({\n    min: this.reconnectionDelay(),\n    max: this.reconnectionDelayMax(),\n    jitter: this.randomizationFactor()\n  });\n  this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n  this.readyState = 'closed';\n  this.uri = uri;\n  this.connecting = [];\n  this.lastPing = null;\n  this.encoding = false;\n  this.packetBuffer = [];\n  var _parser = opts.parser || parser;\n  this.encoder = new _parser.Encoder();\n  this.decoder = new _parser.Decoder();\n  this.autoConnect = opts.autoConnect !== false;\n  if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n  this.emit.apply(this, arguments);\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n    }\n  }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].id = this.generateId(nsp);\n    }\n  }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n  return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n  if (!arguments.length) return this._reconnection;\n  this._reconnection = !!v;\n  return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n  if (!arguments.length) return this._reconnectionAttempts;\n  this._reconnectionAttempts = v;\n  return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n  if (!arguments.length) return this._reconnectionDelay;\n  this._reconnectionDelay = v;\n  this.backoff && this.backoff.setMin(v);\n  return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n  if (!arguments.length) return this._randomizationFactor;\n  this._randomizationFactor = v;\n  this.backoff && this.backoff.setJitter(v);\n  return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n  if (!arguments.length) return this._reconnectionDelayMax;\n  this._reconnectionDelayMax = v;\n  this.backoff && this.backoff.setMax(v);\n  return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n  if (!arguments.length) return this._timeout;\n  this._timeout = v;\n  return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n  // Only try to reconnect if it's the first time we're connecting\n  if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n    // keeps reconnection from firing twice for the same reconnection loop\n    this.reconnect();\n  }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n  debug('readyState %s', this.readyState);\n  if (~this.readyState.indexOf('open')) return this;\n\n  debug('opening %s', this.uri);\n  this.engine = eio(this.uri, this.opts);\n  var socket = this.engine;\n  var self = this;\n  this.readyState = 'opening';\n  this.skipReconnect = false;\n\n  // emit `open`\n  var openSub = on(socket, 'open', function () {\n    self.onopen();\n    fn && fn();\n  });\n\n  // emit `connect_error`\n  var errorSub = on(socket, 'error', function (data) {\n    debug('connect_error');\n    self.cleanup();\n    self.readyState = 'closed';\n    self.emitAll('connect_error', data);\n    if (fn) {\n      var err = new Error('Connection error');\n      err.data = data;\n      fn(err);\n    } else {\n      // Only do this if there is no fn to handle the error\n      self.maybeReconnectOnOpen();\n    }\n  });\n\n  // emit `connect_timeout`\n  if (false !== this._timeout) {\n    var timeout = this._timeout;\n    debug('connect attempt will timeout after %d', timeout);\n\n    // set timer\n    var timer = setTimeout(function () {\n      debug('connect attempt timed out after %d', timeout);\n      openSub.destroy();\n      socket.close();\n      socket.emit('error', 'timeout');\n      self.emitAll('connect_timeout', timeout);\n    }, timeout);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n\n  this.subs.push(openSub);\n  this.subs.push(errorSub);\n\n  return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n  debug('open');\n\n  // clear old subs\n  this.cleanup();\n\n  // mark as open\n  this.readyState = 'open';\n  this.emit('open');\n\n  // add new subs\n  var socket = this.engine;\n  this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n  this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n  this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n  this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n  this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n  this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n  this.lastPing = new Date();\n  this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n  this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n  this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n  debug('error', err);\n  this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n  var socket = this.nsps[nsp];\n  if (!socket) {\n    socket = new Socket(this, nsp, opts);\n    this.nsps[nsp] = socket;\n    var self = this;\n    socket.on('connecting', onConnecting);\n    socket.on('connect', function () {\n      socket.id = self.generateId(nsp);\n    });\n\n    if (this.autoConnect) {\n      // manually call here since connecting event is fired before listening\n      onConnecting();\n    }\n  }\n\n  function onConnecting () {\n    if (!~indexOf(self.connecting, socket)) {\n      self.connecting.push(socket);\n    }\n  }\n\n  return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n  var index = indexOf(this.connecting, socket);\n  if (~index) this.connecting.splice(index, 1);\n  if (this.connecting.length) return;\n\n  this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n  debug('writing packet %j', packet);\n  var self = this;\n  if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n  if (!self.encoding) {\n    // encode, then write to engine with result\n    self.encoding = true;\n    this.encoder.encode(packet, function (encodedPackets) {\n      for (var i = 0; i < encodedPackets.length; i++) {\n        self.engine.write(encodedPackets[i], packet.options);\n      }\n      self.encoding = false;\n      self.processPacketQueue();\n    });\n  } else { // add packet to the queue\n    self.packetBuffer.push(packet);\n  }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n  if (this.packetBuffer.length > 0 && !this.encoding) {\n    var pack = this.packetBuffer.shift();\n    this.packet(pack);\n  }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n  debug('cleanup');\n\n  var subsLength = this.subs.length;\n  for (var i = 0; i < subsLength; i++) {\n    var sub = this.subs.shift();\n    sub.destroy();\n  }\n\n  this.packetBuffer = [];\n  this.encoding = false;\n  this.lastPing = null;\n\n  this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n  debug('disconnect');\n  this.skipReconnect = true;\n  this.reconnecting = false;\n  if ('opening' === this.readyState) {\n    // `onclose` will not fire because\n    // an open event never happened\n    this.cleanup();\n  }\n  this.backoff.reset();\n  this.readyState = 'closed';\n  if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n  debug('onclose');\n\n  this.cleanup();\n  this.backoff.reset();\n  this.readyState = 'closed';\n  this.emit('close', reason);\n\n  if (this._reconnection && !this.skipReconnect) {\n    this.reconnect();\n  }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n  if (this.reconnecting || this.skipReconnect) return this;\n\n  var self = this;\n\n  if (this.backoff.attempts >= this._reconnectionAttempts) {\n    debug('reconnect failed');\n    this.backoff.reset();\n    this.emitAll('reconnect_failed');\n    this.reconnecting = false;\n  } else {\n    var delay = this.backoff.duration();\n    debug('will wait %dms before reconnect attempt', delay);\n\n    this.reconnecting = true;\n    var timer = setTimeout(function () {\n      if (self.skipReconnect) return;\n\n      debug('attempting reconnect');\n      self.emitAll('reconnect_attempt', self.backoff.attempts);\n      self.emitAll('reconnecting', self.backoff.attempts);\n\n      // check again for the case socket closed in above events\n      if (self.skipReconnect) return;\n\n      self.open(function (err) {\n        if (err) {\n          debug('reconnect attempt error');\n          self.reconnecting = false;\n          self.reconnect();\n          self.emitAll('reconnect_error', err.data);\n        } else {\n          debug('reconnect success');\n          self.onreconnect();\n        }\n      });\n    }, delay);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n  var attempt = this.backoff.attempts;\n  this.reconnecting = false;\n  this.backoff.reset();\n  this.updateSocketIds();\n  this.emitAll('reconnect', attempt);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/manager.js\n// module id = 18\n// module chunks = 0","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n  var xhr;\n  var xd = false;\n  var xs = false;\n  var jsonp = false !== opts.jsonp;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    xd = opts.hostname !== location.hostname || port !== opts.port;\n    xs = opts.secure !== isSSL;\n  }\n\n  opts.xdomain = xd;\n  opts.xscheme = xs;\n  xhr = new XMLHttpRequest(opts);\n\n  if ('open' in xhr && !opts.forceJSONP) {\n    return new XHR(opts);\n  } else {\n    if (!jsonp) throw new Error('JSONP disabled');\n    return new JSONP(opts);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/index.js\n// module id = 19\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n  var XMLHttpRequest = require('xmlhttprequest-ssl');\n  var xhr = new XMLHttpRequest({ xdomain: false });\n  return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (!hasXHR2 || forceBase64) {\n    this.supportsBinary = false;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n  this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n  var self = this;\n\n  this.readyState = 'pausing';\n\n  function pause () {\n    debug('paused');\n    self.readyState = 'paused';\n    onPause();\n  }\n\n  if (this.polling || !this.writable) {\n    var total = 0;\n\n    if (this.polling) {\n      debug('we are currently polling - waiting to pause');\n      total++;\n      this.once('pollComplete', function () {\n        debug('pre-pause polling complete');\n        --total || pause();\n      });\n    }\n\n    if (!this.writable) {\n      debug('we are currently writing - waiting to pause');\n      total++;\n      this.once('drain', function () {\n        debug('pre-pause writing complete');\n        --total || pause();\n      });\n    }\n  } else {\n    pause();\n  }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n  debug('polling');\n  this.polling = true;\n  this.doPoll();\n  this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n  var self = this;\n  debug('polling got data %s', data);\n  var callback = function (packet, index, total) {\n    // if its the first message we consider the transport open\n    if ('opening' === self.readyState) {\n      self.onOpen();\n    }\n\n    // if its a close packet, we close the ongoing requests\n    if ('close' === packet.type) {\n      self.onClose();\n      return false;\n    }\n\n    // otherwise bypass onData and handle the message\n    self.onPacket(packet);\n  };\n\n  // decode payload\n  parser.decodePayload(data, this.socket.binaryType, callback);\n\n  // if an event did not trigger closing\n  if ('closed' !== this.readyState) {\n    // if we got data we're not polling\n    this.polling = false;\n    this.emit('pollComplete');\n\n    if ('open' === this.readyState) {\n      this.poll();\n    } else {\n      debug('ignoring poll - transport state \"%s\"', this.readyState);\n    }\n  }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n  var self = this;\n\n  function close () {\n    debug('writing close packet');\n    self.write([{ type: 'close' }]);\n  }\n\n  if ('open' === this.readyState) {\n    debug('transport open - closing');\n    close();\n  } else {\n    // in case we're trying to close while\n    // handshaking is in progress (GH-164)\n    debug('transport not open - deferring close');\n    this.once('open', close);\n  }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n  var callbackfn = function () {\n    self.writable = true;\n    self.emit('drain');\n  };\n\n  parser.encodePayload(packets, this.supportsBinary, function (data) {\n    self.doWrite(data, callbackfn);\n  });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'https' : 'http';\n  var port = '';\n\n  // cache busting is forced\n  if (false !== this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  if (!this.supportsBinary && !query.sid) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // avoid port if default for schema\n  if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n     ('http' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/polling.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n  , length = 64\n  , map = {}\n  , seed = 0\n  , i = 0\n  , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n  var encoded = '';\n\n  do {\n    encoded = alphabet[num % length] + encoded;\n    num = Math.floor(num / length);\n  } while (num > 0);\n\n  return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n  var decoded = 0;\n\n  for (i = 0; i < str.length; i++) {\n    decoded = decoded * length + map[str.charAt(i)];\n  }\n\n  return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n  var now = encode(+new Date());\n\n  if (now !== prev) return seed = 0, prev = now;\n  return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/yeast/index.js\n// module id = 21\n// module chunks = 0","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n  if (indexOf) return arr.indexOf(obj);\n  for (var i = 0; i < arr.length; ++i) {\n    if (arr[i] === obj) return i;\n  }\n  return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/indexof/index.js\n// module id = 22\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n  connect: 1,\n  connect_error: 1,\n  connect_timeout: 1,\n  connecting: 1,\n  disconnect: 1,\n  error: 1,\n  reconnect: 1,\n  reconnect_attempt: 1,\n  reconnect_failed: 1,\n  reconnect_error: 1,\n  reconnecting: 1,\n  ping: 1,\n  pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n  this.io = io;\n  this.nsp = nsp;\n  this.json = this; // compat\n  this.ids = 0;\n  this.acks = {};\n  this.receiveBuffer = [];\n  this.sendBuffer = [];\n  this.connected = false;\n  this.disconnected = true;\n  if (opts && opts.query) {\n    this.query = opts.query;\n  }\n  if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n  if (this.subs) return;\n\n  var io = this.io;\n  this.subs = [\n    on(io, 'open', bind(this, 'onopen')),\n    on(io, 'packet', bind(this, 'onpacket')),\n    on(io, 'close', bind(this, 'onclose'))\n  ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n  if (this.connected) return this;\n\n  this.subEvents();\n  this.io.open(); // ensure open\n  if ('open' === this.io.readyState) this.onopen();\n  this.emit('connecting');\n  return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n  var args = toArray(arguments);\n  args.unshift('message');\n  this.emit.apply(this, args);\n  return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n  if (events.hasOwnProperty(ev)) {\n    emit.apply(this, arguments);\n    return this;\n  }\n\n  var args = toArray(arguments);\n  var packet = { type: parser.EVENT, data: args };\n\n  packet.options = {};\n  packet.options.compress = !this.flags || false !== this.flags.compress;\n\n  // event ack callback\n  if ('function' === typeof args[args.length - 1]) {\n    debug('emitting packet with ack id %d', this.ids);\n    this.acks[this.ids] = args.pop();\n    packet.id = this.ids++;\n  }\n\n  if (this.connected) {\n    this.packet(packet);\n  } else {\n    this.sendBuffer.push(packet);\n  }\n\n  delete this.flags;\n\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n  packet.nsp = this.nsp;\n  this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n  debug('transport is open - connecting');\n\n  // write connect packet if necessary\n  if ('/' !== this.nsp) {\n    if (this.query) {\n      var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n      debug('sending connect packet with query %s', query);\n      this.packet({type: parser.CONNECT, query: query});\n    } else {\n      this.packet({type: parser.CONNECT});\n    }\n  }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n  debug('close (%s)', reason);\n  this.connected = false;\n  this.disconnected = true;\n  delete this.id;\n  this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n  if (packet.nsp !== this.nsp) return;\n\n  switch (packet.type) {\n    case parser.CONNECT:\n      this.onconnect();\n      break;\n\n    case parser.EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.BINARY_EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.ACK:\n      this.onack(packet);\n      break;\n\n    case parser.BINARY_ACK:\n      this.onack(packet);\n      break;\n\n    case parser.DISCONNECT:\n      this.ondisconnect();\n      break;\n\n    case parser.ERROR:\n      this.emit('error', packet.data);\n      break;\n  }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n  var args = packet.data || [];\n  debug('emitting event %j', args);\n\n  if (null != packet.id) {\n    debug('attaching ack callback to event');\n    args.push(this.ack(packet.id));\n  }\n\n  if (this.connected) {\n    emit.apply(this, args);\n  } else {\n    this.receiveBuffer.push(args);\n  }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n  var self = this;\n  var sent = false;\n  return function () {\n    // prevent double callbacks\n    if (sent) return;\n    sent = true;\n    var args = toArray(arguments);\n    debug('sending ack %j', args);\n\n    self.packet({\n      type: parser.ACK,\n      id: id,\n      data: args\n    });\n  };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n  var ack = this.acks[packet.id];\n  if ('function' === typeof ack) {\n    debug('calling ack %s with %j', packet.id, packet.data);\n    ack.apply(this, packet.data);\n    delete this.acks[packet.id];\n  } else {\n    debug('bad ack %s', packet.id);\n  }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n  this.connected = true;\n  this.disconnected = false;\n  this.emit('connect');\n  this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n  var i;\n  for (i = 0; i < this.receiveBuffer.length; i++) {\n    emit.apply(this, this.receiveBuffer[i]);\n  }\n  this.receiveBuffer = [];\n\n  for (i = 0; i < this.sendBuffer.length; i++) {\n    this.packet(this.sendBuffer[i]);\n  }\n  this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n  debug('server disconnect (%s)', this.nsp);\n  this.destroy();\n  this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n  if (this.subs) {\n    // clean subscriptions to avoid reconnections\n    for (var i = 0; i < this.subs.length; i++) {\n      this.subs[i].destroy();\n    }\n    this.subs = null;\n  }\n\n  this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n  if (this.connected) {\n    debug('performing disconnect (%s)', this.nsp);\n    this.packet({ type: parser.DISCONNECT });\n  }\n\n  // remove socket from pool\n  this.destroy();\n\n  if (this.connected) {\n    // fire events\n    this.onclose('io client disconnect');\n  }\n  return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n  this.flags = this.flags || {};\n  this.flags.compress = compress;\n  return this;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/socket.js\n// module id = 23\n// module chunks = 0","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n  obj.on(ev, fn);\n  return {\n    destroy: function () {\n      obj.removeListener(ev, fn);\n    }\n  };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/on.js\n// module id = 24\n// module chunks = 0","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n  if ('string' == typeof fn) fn = obj[fn];\n  if ('function' != typeof fn) throw new Error('bind() requires a function');\n  var args = slice.call(arguments, 2);\n  return function(){\n    return fn.apply(obj, args.concat(slice.call(arguments)));\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/component-bind/index.js\n// module id = 25\n// module chunks = 0","\"use strict\";\n\nvar scroll = require(\"./ghostmode.scroll\");\nvar utils = require(\"./browser.utils\");\n\nvar styles = {\n    display: \"none\",\n    padding: \"15px\",\n    fontFamily: \"sans-serif\",\n    position: \"fixed\",\n    fontSize: \"0.9em\",\n    zIndex: 9999,\n    right: 0,\n    top: 0,\n    borderBottomLeftRadius: \"5px\",\n    backgroundColor: \"#1B2032\",\n    margin: 0,\n    color: \"white\",\n    textAlign: \"center\",\n    pointerEvents: \"none\"\n};\n\nvar elem;\nvar options;\nvar timeoutInt;\n\n/**\n * @param {BrowserSync} bs\n * @returns {*}\n */\nexports.init = function(bs) {\n    options = bs.options;\n\n    var cssStyles = styles;\n\n    if (options.notify.styles) {\n        if (\n            Object.prototype.toString.call(options.notify.styles) ===\n            \"[object Array]\"\n        ) {\n            // handle original array behavior, replace all styles with a joined copy\n            cssStyles = options.notify.styles.join(\";\");\n        } else {\n            for (var key in options.notify.styles) {\n                if (options.notify.styles.hasOwnProperty(key)) {\n                    cssStyles[key] = options.notify.styles[key];\n                }\n            }\n        }\n    }\n\n    elem = document.createElement(\"DIV\");\n    elem.id = \"__bs_notify__\";\n\n    if (typeof cssStyles === \"string\") {\n        elem.style.cssText = cssStyles;\n    } else {\n        for (var rule in cssStyles) {\n            elem.style[rule] = cssStyles[rule];\n        }\n    }\n\n    var flashFn = exports.watchEvent(bs);\n\n    bs.emitter.on(\"notify\", flashFn);\n    bs.socket.on(\"browser:notify\", flashFn);\n\n    return elem;\n};\n\n/**\n * @returns {Function}\n */\nexports.watchEvent = function(bs) {\n    return function(data) {\n        if (bs.options.notify || data.override) {\n            if (typeof data === \"string\") {\n                return exports.flash(data);\n            }\n            exports.flash(data.message, data.timeout);\n        }\n    };\n};\n\n/**\n *\n */\nexports.getElem = function() {\n    return elem;\n};\n\n/**\n * @param message\n * @param [timeout]\n * @returns {*}\n */\nexports.flash = function(message, timeout) {\n    var elem = exports.getElem();\n    var $body = utils.getBody();\n\n    // return if notify was never initialised\n    if (!elem) {\n        return false;\n    }\n\n    elem.innerHTML = message;\n    elem.style.display = \"block\";\n\n    $body.appendChild(elem);\n\n    if (timeoutInt) {\n        clearTimeout(timeoutInt);\n        timeoutInt = undefined;\n    }\n\n    timeoutInt = window.setTimeout(function() {\n        elem.style.display = \"none\";\n        if (elem.parentNode) {\n            $body.removeChild(elem);\n        }\n    }, timeout || 2000);\n\n    return elem;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/notify.js","\"use strict\";\n\n/**\n * This is the plugin for syncing clicks between browsers\n * @type {string}\n */\nvar EVENT_NAME = \"click\";\nvar OPT_PATH = \"ghostMode.clicks\";\nexports.canEmitEvents = true;\n\n/**\n * @param {BrowserSync} bs\n * @param eventManager\n */\nexports.init = function(bs, eventManager) {\n    eventManager.addEvent(document.body, EVENT_NAME, exports.browserEvent(bs));\n    bs.socket.on(EVENT_NAME, exports.socketEvent(bs, eventManager));\n};\n\n/**\n * Uses event delegation to determine the clicked element\n * @param {BrowserSync} bs\n * @returns {Function}\n */\nexports.browserEvent = function(bs) {\n    return function(event) {\n        if (exports.canEmitEvents) {\n            var elem = event.target || event.srcElement;\n\n            if (elem.type === \"checkbox\" || elem.type === \"radio\") {\n                bs.utils.forceChange(elem);\n                return;\n            }\n\n            bs.socket.emit(EVENT_NAME, bs.utils.getElementData(elem));\n        } else {\n            exports.canEmitEvents = true;\n        }\n    };\n};\n\n/**\n * @param {BrowserSync} bs\n * @param {manager} eventManager\n * @returns {Function}\n */\nexports.socketEvent = function(bs, eventManager) {\n    return function(data) {\n        if (!bs.canSync(data, OPT_PATH) || bs.tabHidden) {\n            return false;\n        }\n\n        var elem = bs.utils.getSingleElement(data.tagName, data.index);\n\n        if (elem) {\n            exports.canEmitEvents = false;\n            eventManager.triggerClick(elem);\n        }\n    };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.clicks.js","\"use strict\";\n\nexports.plugins = {\n    inputs: require(\"./ghostmode.forms.input\"),\n    toggles: require(\"./ghostmode.forms.toggles\"),\n    submit: require(\"./ghostmode.forms.submit\")\n};\n\n/**\n * Load plugins for enabled options\n * @param bs\n */\nexports.init = function(bs, eventManager) {\n    var checkOpt = true;\n    var options = bs.options.ghostMode.forms;\n\n    if (options === true) {\n        checkOpt = false;\n    }\n\n    function init(name) {\n        exports.plugins[name].init(bs, eventManager);\n    }\n\n    for (var name in exports.plugins) {\n        if (!checkOpt) {\n            init(name);\n        } else {\n            if (options[name]) {\n                init(name);\n            }\n        }\n    }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.forms.js","\"use strict\";\n\n/**\n * This is the plugin for syncing clicks between browsers\n * @type {string}\n */\nvar EVENT_NAME = \"input:text\";\nvar OPT_PATH = \"ghostMode.forms.inputs\";\nexports.canEmitEvents = true;\n\n/**\n * @param {BrowserSync} bs\n * @param eventManager\n */\nexports.init = function(bs, eventManager) {\n    eventManager.addEvent(document.body, \"keyup\", exports.browserEvent(bs));\n    bs.socket.on(EVENT_NAME, exports.socketEvent(bs, eventManager));\n};\n\n/**\n * @param {BrowserSync} bs\n * @returns {Function}\n */\nexports.browserEvent = function(bs) {\n    return function(event) {\n        var elem = event.target || event.srcElement;\n        var data;\n\n        if (exports.canEmitEvents) {\n            if (elem.tagName === \"INPUT\" || elem.tagName === \"TEXTAREA\") {\n                data = bs.utils.getElementData(elem);\n                data.value = elem.value;\n\n                bs.socket.emit(EVENT_NAME, data);\n            }\n        } else {\n            exports.canEmitEvents = true;\n        }\n    };\n};\n\n/**\n * @param {BrowserSync} bs\n * @returns {Function}\n */\nexports.socketEvent = function(bs) {\n    return function(data) {\n        if (!bs.canSync(data, OPT_PATH)) {\n            return false;\n        }\n\n        var elem = bs.utils.getSingleElement(data.tagName, data.index);\n\n        if (elem) {\n            elem.value = data.value;\n            return elem;\n        }\n\n        return false;\n    };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.forms.input.js","\"use strict\";\n\n/**\n * This is the plugin for syncing clicks between browsers\n * @type {string}\n */\nvar EVENT_NAME = \"input:toggles\";\nvar OPT_PATH = \"ghostMode.forms.toggles\";\nexports.canEmitEvents = true;\n\n/**\n * @param {BrowserSync} bs\n * @param eventManager\n */\nexports.init = function(bs, eventManager) {\n    var browserEvent = exports.browserEvent(bs);\n    exports.addEvents(eventManager, browserEvent);\n    bs.socket.on(EVENT_NAME, exports.socketEvent(bs, eventManager));\n};\n\n/**\n * @param eventManager\n * @param event\n */\nexports.addEvents = function(eventManager, event) {\n    var elems = document.getElementsByTagName(\"select\");\n    var inputs = document.getElementsByTagName(\"input\");\n\n    addEvents(elems);\n    addEvents(inputs);\n\n    function addEvents(domElems) {\n        for (var i = 0, n = domElems.length; i < n; i += 1) {\n            eventManager.addEvent(domElems[i], \"change\", event);\n        }\n    }\n};\n\n/**\n * @param {BrowserSync} bs\n * @returns {Function}\n */\nexports.browserEvent = function(bs) {\n    return function(event) {\n        if (exports.canEmitEvents) {\n            var elem = event.target || event.srcElement;\n            var data;\n            if (\n                elem.type === \"radio\" ||\n                elem.type === \"checkbox\" ||\n                elem.tagName === \"SELECT\"\n            ) {\n                data = bs.utils.getElementData(elem);\n                data.type = elem.type;\n                data.value = elem.value;\n                data.checked = elem.checked;\n                bs.socket.emit(EVENT_NAME, data);\n            }\n        } else {\n            exports.canEmitEvents = true;\n        }\n    };\n};\n\n/**\n * @param {BrowserSync} bs\n * @returns {Function}\n */\nexports.socketEvent = function(bs) {\n    return function(data) {\n        if (!bs.canSync(data, OPT_PATH)) {\n            return false;\n        }\n\n        exports.canEmitEvents = false;\n\n        var elem = bs.utils.getSingleElement(data.tagName, data.index);\n\n        if (elem) {\n            if (data.type === \"radio\") {\n                elem.checked = true;\n            }\n            if (data.type === \"checkbox\") {\n                elem.checked = data.checked;\n            }\n            if (data.tagName === \"SELECT\") {\n                elem.value = data.value;\n            }\n            return elem;\n        }\n        return false;\n    };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.forms.toggles.js","\"use strict\";\n\n/**\n * This is the plugin for syncing clicks between browsers\n * @type {string}\n */\nvar EVENT_NAME = \"form:submit\";\nvar OPT_PATH = \"ghostMode.forms.submit\";\nexports.canEmitEvents = true;\n\n/**\n * @param {BrowserSync} bs\n * @param eventManager\n */\nexports.init = function(bs, eventManager) {\n    var browserEvent = exports.browserEvent(bs);\n    eventManager.addEvent(document.body, \"submit\", browserEvent);\n    eventManager.addEvent(document.body, \"reset\", browserEvent);\n    bs.socket.on(EVENT_NAME, exports.socketEvent(bs, eventManager));\n};\n\n/**\n * @param {BrowserSync} bs\n * @returns {Function}\n */\nexports.browserEvent = function(bs) {\n    return function(event) {\n        if (exports.canEmitEvents) {\n            var elem = event.target || event.srcElement;\n            var data = bs.utils.getElementData(elem);\n            data.type = event.type;\n            bs.socket.emit(EVENT_NAME, data);\n        } else {\n            exports.canEmitEvents = true;\n        }\n    };\n};\n\n/**\n * @param {BrowserSync} bs\n * @returns {Function}\n */\nexports.socketEvent = function(bs) {\n    return function(data) {\n        if (!bs.canSync(data, OPT_PATH)) {\n            return false;\n        }\n\n        var elem = bs.utils.getSingleElement(data.tagName, data.index);\n\n        exports.canEmitEvents = false;\n\n        if (elem && data.type === \"submit\") {\n            elem.submit();\n        }\n\n        if (elem && data.type === \"reset\") {\n            elem.reset();\n        }\n        return false;\n    };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.forms.submit.js","\"use strict\";\n\n/**\n * This is the plugin for syncing location\n * @type {string}\n */\nvar EVENT_NAME = \"browser:location\";\nvar OPT_PATH = \"ghostMode.location\";\nexports.canEmitEvents = true;\n\n/**\n * @param {BrowserSync} bs\n */\nexports.init = function(bs) {\n    bs.socket.on(EVENT_NAME, exports.socketEvent(bs));\n};\n\n/**\n * Respond to socket event\n */\nexports.socketEvent = function(bs) {\n    return function(data) {\n        if (!bs.canSync(data, OPT_PATH)) {\n            return false;\n        }\n\n        if (data.path) {\n            exports.setPath(data.path);\n        } else {\n            exports.setUrl(data.url);\n        }\n    };\n};\n\n/**\n * @param url\n */\nexports.setUrl = function(url) {\n    window.location = url;\n};\n\n/**\n * @param path\n */\nexports.setPath = function(path) {\n    window.location =\n        window.location.protocol + \"//\" + window.location.host + path;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.location.js","\"use strict\";\n\nvar socket = require(\"./socket\");\nvar shims = require(\"./client-shims\");\nvar notify = require(\"./notify\");\nvar codeSync = require(\"./code-sync\");\nvar BrowserSync = require(\"./browser-sync\");\nvar ghostMode = require(\"./ghostmode\");\nvar emitter = require(\"./emitter\");\nvar events = require(\"./events\");\nvar utils = require(\"./browser.utils\");\n\nvar shouldReload = false;\nvar initialised = false;\n\n/**\n * @param options\n */\nexports.init = function(options) {\n    if (shouldReload && options.reloadOnRestart) {\n        utils.reloadBrowser();\n    }\n\n    var BS = window.___browserSync___ || {};\n\n    if (!BS.client) {\n        BS.client = true;\n\n        var browserSync = new BrowserSync(options);\n\n        // Always init on page load\n        ghostMode.init(browserSync);\n        codeSync.init(browserSync);\n\n        notify.init(browserSync);\n\n        if (options.notify) {\n            notify.flash(\"Connected to BrowserSync\");\n        }\n    }\n\n    if (!initialised) {\n        socket.on(\"disconnect\", function() {\n            if (options.notify) {\n                notify.flash(\"Disconnected from BrowserSync\");\n            }\n            shouldReload = true;\n        });\n        initialised = true;\n    }\n};\n\n/**\n * Handle individual socket connections\n */\nsocket.on(\"connection\", exports.init);\n\n/**debug:start**/\nif (window.__karma__) {\n    window.__bs_scroll__ = require(\"./ghostmode.scroll\");\n    window.__bs_clicks__ = require(\"./ghostmode.clicks\");\n    window.__bs_location__ = require(\"./ghostmode.location\");\n    window.__bs_inputs__ = require(\"./ghostmode.forms.input\");\n    window.__bs_toggles__ = require(\"./ghostmode.forms.toggles\");\n    window.__bs_submit__ = require(\"./ghostmode.forms.submit\");\n    window.__bs_forms__ = require(\"./ghostmode.forms\");\n    window.__bs_utils__ = require(\"./browser.utils\");\n    window.__bs_emitter__ = emitter;\n    window.__bs = BrowserSync;\n    window.__bs_notify__ = notify;\n    window.__bs_code_sync__ = codeSync;\n    window.__bs_ghost_mode__ = ghostMode;\n    window.__bs_socket__ = socket;\n    window.__bs_index__ = exports;\n}\n/**debug:end**/\n\n\n\n// WEBPACK FOOTER //\n// ./lib/index.js","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n *   `io('http://localhost/a');`\n *   `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n  if (typeof uri === 'object') {\n    opts = uri;\n    uri = undefined;\n  }\n\n  opts = opts || {};\n\n  var parsed = url(uri);\n  var source = parsed.source;\n  var id = parsed.id;\n  var path = parsed.path;\n  var sameNamespace = cache[id] && path in cache[id].nsps;\n  var newConnection = opts.forceNew || opts['force new connection'] ||\n                      false === opts.multiplex || sameNamespace;\n\n  var io;\n\n  if (newConnection) {\n    debug('ignoring socket cache for %s', source);\n    io = Manager(source, opts);\n  } else {\n    if (!cache[id]) {\n      debug('new io instance for %s', source);\n      cache[id] = Manager(source, opts);\n    }\n    io = cache[id];\n  }\n  if (parsed.query && !opts.query) {\n    opts.query = parsed.query;\n  }\n  return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/index.js\n// module id = 35\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n *                 Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n  var obj = uri;\n\n  // default to window.location\n  loc = loc || global.location;\n  if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n  // relative path support\n  if ('string' === typeof uri) {\n    if ('/' === uri.charAt(0)) {\n      if ('/' === uri.charAt(1)) {\n        uri = loc.protocol + uri;\n      } else {\n        uri = loc.host + uri;\n      }\n    }\n\n    if (!/^(https?|wss?):\\/\\//.test(uri)) {\n      debug('protocol-less url %s', uri);\n      if ('undefined' !== typeof loc) {\n        uri = loc.protocol + '//' + uri;\n      } else {\n        uri = 'https://' + uri;\n      }\n    }\n\n    // parse\n    debug('parse %s', uri);\n    obj = parseuri(uri);\n  }\n\n  // make sure we treat `localhost:80` and `localhost` equally\n  if (!obj.port) {\n    if (/^(http|ws)$/.test(obj.protocol)) {\n      obj.port = '80';\n    } else if (/^(http|ws)s$/.test(obj.protocol)) {\n      obj.port = '443';\n    }\n  }\n\n  obj.path = obj.path || '/';\n\n  var ipv6 = obj.host.indexOf(':') !== -1;\n  var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n  // define unique id\n  obj.id = obj.protocol + '://' + host + ':' + obj.port;\n  // define href\n  obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n  return obj;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-client/lib/url.js\n// module id = 36\n// module chunks = 0","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n  var hash = 0, i;\n\n  for (i in namespace) {\n    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);\n    hash |= 0; // Convert to 32bit integer\n  }\n\n  return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n  function debug() {\n    // disabled?\n    if (!debug.enabled) return;\n\n    var self = debug;\n\n    // set `diff` timestamp\n    var curr = +new Date();\n    var ms = curr - (prevTime || curr);\n    self.diff = ms;\n    self.prev = prevTime;\n    self.curr = curr;\n    prevTime = curr;\n\n    // turn the `arguments` into a proper Array\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n\n    args[0] = exports.coerce(args[0]);\n\n    if ('string' !== typeof args[0]) {\n      // anything else let's inspect with %O\n      args.unshift('%O');\n    }\n\n    // apply any `formatters` transformations\n    var index = 0;\n    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n      // if we encounter an escaped % then don't increase the array index\n      if (match === '%%') return match;\n      index++;\n      var formatter = exports.formatters[format];\n      if ('function' === typeof formatter) {\n        var val = args[index];\n        match = formatter.call(self, val);\n\n        // now we need to remove `args[index]` since it's inlined in the `format`\n        args.splice(index, 1);\n        index--;\n      }\n      return match;\n    });\n\n    // apply env-specific formatting (colors, etc.)\n    exports.formatArgs.call(self, args);\n\n    var logFn = debug.log || exports.log || console.log.bind(console);\n    logFn.apply(self, args);\n  }\n\n  debug.namespace = namespace;\n  debug.enabled = exports.enabled(namespace);\n  debug.useColors = exports.useColors();\n  debug.color = selectColor(namespace);\n\n  // env-specific initialization logic for debug instances\n  if ('function' === typeof exports.init) {\n    exports.init(debug);\n  }\n\n  return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n  exports.save(namespaces);\n\n  exports.names = [];\n  exports.skips = [];\n\n  var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n  var len = split.length;\n\n  for (var i = 0; i < len; i++) {\n    if (!split[i]) continue; // ignore empty strings\n    namespaces = split[i].replace(/\\*/g, '.*?');\n    if (namespaces[0] === '-') {\n      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n    } else {\n      exports.names.push(new RegExp('^' + namespaces + '$'));\n    }\n  }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n  exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n  var i, len;\n  for (i = 0, len = exports.skips.length; i < len; i++) {\n    if (exports.skips[i].test(name)) {\n      return false;\n    }\n  }\n  for (i = 0, len = exports.names.length; i < len; i++) {\n    if (exports.names[i].test(name)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n  if (val instanceof Error) return val.stack || val.message;\n  return val;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/debug/src/debug.js\n// module id = 37\n// module chunks = 0","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isNaN(val) === false) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  if (ms >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (ms >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (ms >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (ms >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  return plural(ms, d, 'day') ||\n    plural(ms, h, 'hour') ||\n    plural(ms, m, 'minute') ||\n    plural(ms, s, 'second') ||\n    ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n  if (ms < n) {\n    return;\n  }\n  if (ms < n * 1.5) {\n    return Math.floor(ms / n) + ' ' + name;\n  }\n  return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ms/index.js\n// module id = 38\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-binary2/node_modules/isarray/index.js\n// module id = 39\n// module chunks = 0","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n  var buffers = [];\n  var packetData = packet.data;\n  var pack = packet;\n  pack.data = _deconstructPacket(packetData, buffers);\n  pack.attachments = buffers.length; // number of binary 'attachments'\n  return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (isBuf(data)) {\n    var placeholder = { _placeholder: true, num: buffers.length };\n    buffers.push(data);\n    return placeholder;\n  } else if (isArray(data)) {\n    var newData = new Array(data.length);\n    for (var i = 0; i < data.length; i++) {\n      newData[i] = _deconstructPacket(data[i], buffers);\n    }\n    return newData;\n  } else if (typeof data === 'object' && !(data instanceof Date)) {\n    var newData = {};\n    for (var key in data) {\n      newData[key] = _deconstructPacket(data[key], buffers);\n    }\n    return newData;\n  }\n  return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n  packet.data = _reconstructPacket(packet.data, buffers);\n  packet.attachments = undefined; // no longer useful\n  return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (data && data._placeholder) {\n    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n  } else if (isArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      data[i] = _reconstructPacket(data[i], buffers);\n    }\n  } else if (typeof data === 'object') {\n    for (var key in data) {\n      data[key] = _reconstructPacket(data[key], buffers);\n    }\n  }\n\n  return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n  function _removeBlobs(obj, curKey, containingObject) {\n    if (!obj) return obj;\n\n    // convert any blob\n    if ((withNativeBlob && obj instanceof Blob) ||\n        (withNativeFile && obj instanceof File)) {\n      pendingBlobs++;\n\n      // async filereader\n      var fileReader = new FileReader();\n      fileReader.onload = function() { // this.result == arraybuffer\n        if (containingObject) {\n          containingObject[curKey] = this.result;\n        }\n        else {\n          bloblessData = this.result;\n        }\n\n        // if nothing pending its callback time\n        if(! --pendingBlobs) {\n          callback(bloblessData);\n        }\n      };\n\n      fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n    } else if (isArray(obj)) { // handle array\n      for (var i = 0; i < obj.length; i++) {\n        _removeBlobs(obj[i], i, obj);\n      }\n    } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n      for (var key in obj) {\n        _removeBlobs(obj[key], key, obj);\n      }\n    }\n  }\n\n  var pendingBlobs = 0;\n  var bloblessData = data;\n  _removeBlobs(bloblessData);\n  if (!pendingBlobs) {\n    callback(bloblessData);\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/binary.js\n// module id = 40\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/socket.io-parser/node_modules/isarray/index.js\n// module id = 41\n// module chunks = 0","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/index.js\n// module id = 42\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n  if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n  opts = opts || {};\n\n  if (uri && 'object' === typeof uri) {\n    opts = uri;\n    uri = null;\n  }\n\n  if (uri) {\n    uri = parseuri(uri);\n    opts.hostname = uri.host;\n    opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n    opts.port = uri.port;\n    if (uri.query) opts.query = uri.query;\n  } else if (opts.host) {\n    opts.hostname = parseuri(opts.host).host;\n  }\n\n  this.secure = null != opts.secure ? opts.secure\n    : (global.location && 'https:' === location.protocol);\n\n  if (opts.hostname && !opts.port) {\n    // if no port is specified manually, use the protocol default\n    opts.port = this.secure ? '443' : '80';\n  }\n\n  this.agent = opts.agent || false;\n  this.hostname = opts.hostname ||\n    (global.location ? location.hostname : 'localhost');\n  this.port = opts.port || (global.location && location.port\n      ? location.port\n      : (this.secure ? 443 : 80));\n  this.query = opts.query || {};\n  if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n  this.upgrade = false !== opts.upgrade;\n  this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n  this.forceJSONP = !!opts.forceJSONP;\n  this.jsonp = false !== opts.jsonp;\n  this.forceBase64 = !!opts.forceBase64;\n  this.enablesXDR = !!opts.enablesXDR;\n  this.timestampParam = opts.timestampParam || 't';\n  this.timestampRequests = opts.timestampRequests;\n  this.transports = opts.transports || ['polling', 'websocket'];\n  this.transportOptions = opts.transportOptions || {};\n  this.readyState = '';\n  this.writeBuffer = [];\n  this.prevBufferLen = 0;\n  this.policyPort = opts.policyPort || 843;\n  this.rememberUpgrade = opts.rememberUpgrade || false;\n  this.binaryType = null;\n  this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n  this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n  if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n  if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n    this.perMessageDeflate.threshold = 1024;\n  }\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx || null;\n  this.key = opts.key || null;\n  this.passphrase = opts.passphrase || null;\n  this.cert = opts.cert || null;\n  this.ca = opts.ca || null;\n  this.ciphers = opts.ciphers || null;\n  this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n  this.forceNode = !!opts.forceNode;\n\n  // other options for Node.js client\n  var freeGlobal = typeof global === 'object' && global;\n  if (freeGlobal.global === freeGlobal) {\n    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n      this.extraHeaders = opts.extraHeaders;\n    }\n\n    if (opts.localAddress) {\n      this.localAddress = opts.localAddress;\n    }\n  }\n\n  // set on handshake\n  this.id = null;\n  this.upgrades = null;\n  this.pingInterval = null;\n  this.pingTimeout = null;\n\n  // set on heartbeat\n  this.pingIntervalTimer = null;\n  this.pingTimeoutTimer = null;\n\n  this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n  debug('creating transport \"%s\"', name);\n  var query = clone(this.query);\n\n  // append engine.io protocol identifier\n  query.EIO = parser.protocol;\n\n  // transport name\n  query.transport = name;\n\n  // per-transport options\n  var options = this.transportOptions[name] || {};\n\n  // session id if we already have one\n  if (this.id) query.sid = this.id;\n\n  var transport = new transports[name]({\n    query: query,\n    socket: this,\n    agent: options.agent || this.agent,\n    hostname: options.hostname || this.hostname,\n    port: options.port || this.port,\n    secure: options.secure || this.secure,\n    path: options.path || this.path,\n    forceJSONP: options.forceJSONP || this.forceJSONP,\n    jsonp: options.jsonp || this.jsonp,\n    forceBase64: options.forceBase64 || this.forceBase64,\n    enablesXDR: options.enablesXDR || this.enablesXDR,\n    timestampRequests: options.timestampRequests || this.timestampRequests,\n    timestampParam: options.timestampParam || this.timestampParam,\n    policyPort: options.policyPort || this.policyPort,\n    pfx: options.pfx || this.pfx,\n    key: options.key || this.key,\n    passphrase: options.passphrase || this.passphrase,\n    cert: options.cert || this.cert,\n    ca: options.ca || this.ca,\n    ciphers: options.ciphers || this.ciphers,\n    rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n    perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n    extraHeaders: options.extraHeaders || this.extraHeaders,\n    forceNode: options.forceNode || this.forceNode,\n    localAddress: options.localAddress || this.localAddress,\n    requestTimeout: options.requestTimeout || this.requestTimeout,\n    protocols: options.protocols || void (0)\n  });\n\n  return transport;\n};\n\nfunction clone (obj) {\n  var o = {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      o[i] = obj[i];\n    }\n  }\n  return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n  var transport;\n  if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n    transport = 'websocket';\n  } else if (0 === this.transports.length) {\n    // Emit error on next tick so it can be listened to\n    var self = this;\n    setTimeout(function () {\n      self.emit('error', 'No transports available');\n    }, 0);\n    return;\n  } else {\n    transport = this.transports[0];\n  }\n  this.readyState = 'opening';\n\n  // Retry with the next transport if the transport is disabled (jsonp: false)\n  try {\n    transport = this.createTransport(transport);\n  } catch (e) {\n    this.transports.shift();\n    this.open();\n    return;\n  }\n\n  transport.open();\n  this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n  debug('setting transport %s', transport.name);\n  var self = this;\n\n  if (this.transport) {\n    debug('clearing existing transport %s', this.transport.name);\n    this.transport.removeAllListeners();\n  }\n\n  // set up transport\n  this.transport = transport;\n\n  // set up transport listeners\n  transport\n  .on('drain', function () {\n    self.onDrain();\n  })\n  .on('packet', function (packet) {\n    self.onPacket(packet);\n  })\n  .on('error', function (e) {\n    self.onError(e);\n  })\n  .on('close', function () {\n    self.onClose('transport close');\n  });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n  debug('probing transport \"%s\"', name);\n  var transport = this.createTransport(name, { probe: 1 });\n  var failed = false;\n  var self = this;\n\n  Socket.priorWebsocketSuccess = false;\n\n  function onTransportOpen () {\n    if (self.onlyBinaryUpgrades) {\n      var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n      failed = failed || upgradeLosesBinary;\n    }\n    if (failed) return;\n\n    debug('probe transport \"%s\" opened', name);\n    transport.send([{ type: 'ping', data: 'probe' }]);\n    transport.once('packet', function (msg) {\n      if (failed) return;\n      if ('pong' === msg.type && 'probe' === msg.data) {\n        debug('probe transport \"%s\" pong', name);\n        self.upgrading = true;\n        self.emit('upgrading', transport);\n        if (!transport) return;\n        Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n        debug('pausing current transport \"%s\"', self.transport.name);\n        self.transport.pause(function () {\n          if (failed) return;\n          if ('closed' === self.readyState) return;\n          debug('changing transport and sending upgrade packet');\n\n          cleanup();\n\n          self.setTransport(transport);\n          transport.send([{ type: 'upgrade' }]);\n          self.emit('upgrade', transport);\n          transport = null;\n          self.upgrading = false;\n          self.flush();\n        });\n      } else {\n        debug('probe transport \"%s\" failed', name);\n        var err = new Error('probe error');\n        err.transport = transport.name;\n        self.emit('upgradeError', err);\n      }\n    });\n  }\n\n  function freezeTransport () {\n    if (failed) return;\n\n    // Any callback called by transport should be ignored since now\n    failed = true;\n\n    cleanup();\n\n    transport.close();\n    transport = null;\n  }\n\n  // Handle any error that happens while probing\n  function onerror (err) {\n    var error = new Error('probe error: ' + err);\n    error.transport = transport.name;\n\n    freezeTransport();\n\n    debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n    self.emit('upgradeError', error);\n  }\n\n  function onTransportClose () {\n    onerror('transport closed');\n  }\n\n  // When the socket is closed while we're probing\n  function onclose () {\n    onerror('socket closed');\n  }\n\n  // When the socket is upgraded while we're probing\n  function onupgrade (to) {\n    if (transport && to.name !== transport.name) {\n      debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n      freezeTransport();\n    }\n  }\n\n  // Remove all listeners on the transport and on self\n  function cleanup () {\n    transport.removeListener('open', onTransportOpen);\n    transport.removeListener('error', onerror);\n    transport.removeListener('close', onTransportClose);\n    self.removeListener('close', onclose);\n    self.removeListener('upgrading', onupgrade);\n  }\n\n  transport.once('open', onTransportOpen);\n  transport.once('error', onerror);\n  transport.once('close', onTransportClose);\n\n  this.once('close', onclose);\n  this.once('upgrading', onupgrade);\n\n  transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n  debug('socket open');\n  this.readyState = 'open';\n  Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n  this.emit('open');\n  this.flush();\n\n  // we check for `readyState` in case an `open`\n  // listener already closed the socket\n  if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n    debug('starting upgrade probes');\n    for (var i = 0, l = this.upgrades.length; i < l; i++) {\n      this.probe(this.upgrades[i]);\n    }\n  }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n  if ('opening' === this.readyState || 'open' === this.readyState ||\n      'closing' === this.readyState) {\n    debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n    this.emit('packet', packet);\n\n    // Socket is live - any packet counts\n    this.emit('heartbeat');\n\n    switch (packet.type) {\n      case 'open':\n        this.onHandshake(JSON.parse(packet.data));\n        break;\n\n      case 'pong':\n        this.setPing();\n        this.emit('pong');\n        break;\n\n      case 'error':\n        var err = new Error('server error');\n        err.code = packet.data;\n        this.onError(err);\n        break;\n\n      case 'message':\n        this.emit('data', packet.data);\n        this.emit('message', packet.data);\n        break;\n    }\n  } else {\n    debug('packet received with socket readyState \"%s\"', this.readyState);\n  }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n  this.emit('handshake', data);\n  this.id = data.sid;\n  this.transport.query.sid = data.sid;\n  this.upgrades = this.filterUpgrades(data.upgrades);\n  this.pingInterval = data.pingInterval;\n  this.pingTimeout = data.pingTimeout;\n  this.onOpen();\n  // In case open handler closes socket\n  if ('closed' === this.readyState) return;\n  this.setPing();\n\n  // Prolong liveness of socket on heartbeat\n  this.removeListener('heartbeat', this.onHeartbeat);\n  this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n  clearTimeout(this.pingTimeoutTimer);\n  var self = this;\n  self.pingTimeoutTimer = setTimeout(function () {\n    if ('closed' === self.readyState) return;\n    self.onClose('ping timeout');\n  }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n  var self = this;\n  clearTimeout(self.pingIntervalTimer);\n  self.pingIntervalTimer = setTimeout(function () {\n    debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n    self.ping();\n    self.onHeartbeat(self.pingTimeout);\n  }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n  var self = this;\n  this.sendPacket('ping', function () {\n    self.emit('ping');\n  });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n  this.writeBuffer.splice(0, this.prevBufferLen);\n\n  // setting prevBufferLen = 0 is very important\n  // for example, when upgrading, upgrade packet is sent over,\n  // and a nonzero prevBufferLen could cause problems on `drain`\n  this.prevBufferLen = 0;\n\n  if (0 === this.writeBuffer.length) {\n    this.emit('drain');\n  } else {\n    this.flush();\n  }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n  if ('closed' !== this.readyState && this.transport.writable &&\n    !this.upgrading && this.writeBuffer.length) {\n    debug('flushing %d packets in socket', this.writeBuffer.length);\n    this.transport.send(this.writeBuffer);\n    // keep track of current length of writeBuffer\n    // splice writeBuffer and callbackBuffer on `drain`\n    this.prevBufferLen = this.writeBuffer.length;\n    this.emit('flush');\n  }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n  this.sendPacket('message', msg, options, fn);\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n  if ('function' === typeof data) {\n    fn = data;\n    data = undefined;\n  }\n\n  if ('function' === typeof options) {\n    fn = options;\n    options = null;\n  }\n\n  if ('closing' === this.readyState || 'closed' === this.readyState) {\n    return;\n  }\n\n  options = options || {};\n  options.compress = false !== options.compress;\n\n  var packet = {\n    type: type,\n    data: data,\n    options: options\n  };\n  this.emit('packetCreate', packet);\n  this.writeBuffer.push(packet);\n  if (fn) this.once('flush', fn);\n  this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.readyState = 'closing';\n\n    var self = this;\n\n    if (this.writeBuffer.length) {\n      this.once('drain', function () {\n        if (this.upgrading) {\n          waitForUpgrade();\n        } else {\n          close();\n        }\n      });\n    } else if (this.upgrading) {\n      waitForUpgrade();\n    } else {\n      close();\n    }\n  }\n\n  function close () {\n    self.onClose('forced close');\n    debug('socket closing - telling transport to close');\n    self.transport.close();\n  }\n\n  function cleanupAndClose () {\n    self.removeListener('upgrade', cleanupAndClose);\n    self.removeListener('upgradeError', cleanupAndClose);\n    close();\n  }\n\n  function waitForUpgrade () {\n    // wait for upgrade to finish since we can't send packets while pausing a transport\n    self.once('upgrade', cleanupAndClose);\n    self.once('upgradeError', cleanupAndClose);\n  }\n\n  return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n  debug('socket error %j', err);\n  Socket.priorWebsocketSuccess = false;\n  this.emit('error', err);\n  this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n  if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n    debug('socket close with reason: \"%s\"', reason);\n    var self = this;\n\n    // clear timers\n    clearTimeout(this.pingIntervalTimer);\n    clearTimeout(this.pingTimeoutTimer);\n\n    // stop event from firing again for transport\n    this.transport.removeAllListeners('close');\n\n    // ensure transport won't stay open\n    this.transport.close();\n\n    // ignore further transport communication\n    this.transport.removeAllListeners();\n\n    // set ready state\n    this.readyState = 'closed';\n\n    // clear session id\n    this.id = null;\n\n    // emit close event\n    this.emit('close', reason, desc);\n\n    // clean buffers after, so users can still\n    // grab the buffers on `close` event\n    self.writeBuffer = [];\n    self.prevBufferLen = 0;\n  }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n  var filteredUpgrades = [];\n  for (var i = 0, j = upgrades.length; i < j; i++) {\n    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n  }\n  return filteredUpgrades;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/socket.js\n// module id = 43\n// module chunks = 0","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n *   - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n  module.exports = typeof XMLHttpRequest !== 'undefined' &&\n    'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n  // if XMLHttp support is disabled in IE then it will throw\n  // when trying to create\n  module.exports = false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/has-cors/index.js\n// module id = 44\n// module chunks = 0","/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n  Polling.call(this, opts);\n  this.requestTimeout = opts.requestTimeout;\n  this.extraHeaders = opts.extraHeaders;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    this.xd = opts.hostname !== global.location.hostname ||\n      port !== opts.port;\n    this.xs = opts.secure !== isSSL;\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n  opts = opts || {};\n  opts.uri = this.uri();\n  opts.xd = this.xd;\n  opts.xs = this.xs;\n  opts.agent = this.agent || false;\n  opts.supportsBinary = this.supportsBinary;\n  opts.enablesXDR = this.enablesXDR;\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  opts.requestTimeout = this.requestTimeout;\n\n  // other options for Node.js client\n  opts.extraHeaders = this.extraHeaders;\n\n  return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n  var isBinary = typeof data !== 'string' && data !== undefined;\n  var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n  var self = this;\n  req.on('success', fn);\n  req.on('error', function (err) {\n    self.onError('xhr post error', err);\n  });\n  this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n  debug('xhr poll');\n  var req = this.request();\n  var self = this;\n  req.on('data', function (data) {\n    self.onData(data);\n  });\n  req.on('error', function (err) {\n    self.onError('xhr poll error', err);\n  });\n  this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n  this.method = opts.method || 'GET';\n  this.uri = opts.uri;\n  this.xd = !!opts.xd;\n  this.xs = !!opts.xs;\n  this.async = false !== opts.async;\n  this.data = undefined !== opts.data ? opts.data : null;\n  this.agent = opts.agent;\n  this.isBinary = opts.isBinary;\n  this.supportsBinary = opts.supportsBinary;\n  this.enablesXDR = opts.enablesXDR;\n  this.requestTimeout = opts.requestTimeout;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n\n  this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n  var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n\n  var xhr = this.xhr = new XMLHttpRequest(opts);\n  var self = this;\n\n  try {\n    debug('xhr open %s: %s', this.method, this.uri);\n    xhr.open(this.method, this.uri, this.async);\n    try {\n      if (this.extraHeaders) {\n        xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n        for (var i in this.extraHeaders) {\n          if (this.extraHeaders.hasOwnProperty(i)) {\n            xhr.setRequestHeader(i, this.extraHeaders[i]);\n          }\n        }\n      }\n    } catch (e) {}\n\n    if ('POST' === this.method) {\n      try {\n        if (this.isBinary) {\n          xhr.setRequestHeader('Content-type', 'application/octet-stream');\n        } else {\n          xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n        }\n      } catch (e) {}\n    }\n\n    try {\n      xhr.setRequestHeader('Accept', '*/*');\n    } catch (e) {}\n\n    // ie6 check\n    if ('withCredentials' in xhr) {\n      xhr.withCredentials = true;\n    }\n\n    if (this.requestTimeout) {\n      xhr.timeout = this.requestTimeout;\n    }\n\n    if (this.hasXDR()) {\n      xhr.onload = function () {\n        self.onLoad();\n      };\n      xhr.onerror = function () {\n        self.onError(xhr.responseText);\n      };\n    } else {\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 2) {\n          var contentType;\n          try {\n            contentType = xhr.getResponseHeader('Content-Type');\n          } catch (e) {}\n          if (contentType === 'application/octet-stream') {\n            xhr.responseType = 'arraybuffer';\n          }\n        }\n        if (4 !== xhr.readyState) return;\n        if (200 === xhr.status || 1223 === xhr.status) {\n          self.onLoad();\n        } else {\n          // make sure the `error` event handler that's user-set\n          // does not throw in the same tick and gets caught here\n          setTimeout(function () {\n            self.onError(xhr.status);\n          }, 0);\n        }\n      };\n    }\n\n    debug('xhr data %s', this.data);\n    xhr.send(this.data);\n  } catch (e) {\n    // Need to defer since .create() is called directly fhrom the constructor\n    // and thus the 'error' event can only be only bound *after* this exception\n    // occurs.  Therefore, also, we cannot throw here at all.\n    setTimeout(function () {\n      self.onError(e);\n    }, 0);\n    return;\n  }\n\n  if (global.document) {\n    this.index = Request.requestsCount++;\n    Request.requests[this.index] = this;\n  }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n  this.emit('success');\n  this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n  this.emit('data', data);\n  this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n  this.emit('error', err);\n  this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n  if ('undefined' === typeof this.xhr || null === this.xhr) {\n    return;\n  }\n  // xmlhttprequest\n  if (this.hasXDR()) {\n    this.xhr.onload = this.xhr.onerror = empty;\n  } else {\n    this.xhr.onreadystatechange = empty;\n  }\n\n  if (fromError) {\n    try {\n      this.xhr.abort();\n    } catch (e) {}\n  }\n\n  if (global.document) {\n    delete Request.requests[this.index];\n  }\n\n  this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n  var data;\n  try {\n    var contentType;\n    try {\n      contentType = this.xhr.getResponseHeader('Content-Type');\n    } catch (e) {}\n    if (contentType === 'application/octet-stream') {\n      data = this.xhr.response || this.xhr.responseText;\n    } else {\n      data = this.xhr.responseText;\n    }\n  } catch (e) {\n    this.onError(e);\n  }\n  if (null != data) {\n    this.onData(data);\n  }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n  return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n  this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (global.document) {\n  if (global.attachEvent) {\n    global.attachEvent('onunload', unloadHandler);\n  } else if (global.addEventListener) {\n    global.addEventListener('beforeunload', unloadHandler, false);\n  }\n}\n\nfunction unloadHandler () {\n  for (var i in Request.requests) {\n    if (Request.requests.hasOwnProperty(i)) {\n      Request.requests[i].abort();\n    }\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/polling-xhr.js\n// module id = 45\n// module chunks = 0","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n  var arr = [];\n  var has = Object.prototype.hasOwnProperty;\n\n  for (var i in obj) {\n    if (has.call(obj, i)) {\n      arr.push(i);\n    }\n  }\n  return arr;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-parser/lib/keys.js\n// module id = 46\n// module chunks = 0","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n  var bytes = arraybuffer.byteLength;\n  start = start || 0;\n  end = end || bytes;\n\n  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n  if (start < 0) { start += bytes; }\n  if (end < 0) { end += bytes; }\n  if (end > bytes) { end = bytes; }\n\n  if (start >= bytes || start >= end || bytes === 0) {\n    return new ArrayBuffer(0);\n  }\n\n  var abv = new Uint8Array(arraybuffer);\n  var result = new Uint8Array(end - start);\n  for (var i = start, ii = 0; i < end; i++, ii++) {\n    result[ii] = abv[i];\n  }\n  return result.buffer;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/arraybuffer.slice/index.js\n// module id = 47\n// module chunks = 0","module.exports = after\n\nfunction after(count, callback, err_cb) {\n    var bail = false\n    err_cb = err_cb || noop\n    proxy.count = count\n\n    return (count === 0) ? callback() : proxy\n\n    function proxy(err, result) {\n        if (proxy.count <= 0) {\n            throw new Error('after called too many times')\n        }\n        --proxy.count\n\n        // after first error, rest are passed to err_cb\n        if (err) {\n            bail = true\n            callback(err)\n            // future error callbacks will go to error handler\n            callback = err_cb\n        } else if (proxy.count === 0 && !bail) {\n            callback(null, result)\n        }\n    }\n}\n\nfunction noop() {}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/after/index.js\n// module id = 48\n// module chunks = 0","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint, strict) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tif (strict) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t' is not a scalar value'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint, strict) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t}\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol(strict) {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-parser/lib/utf8.js\n// module id = 49\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 50\n// module chunks = 0","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n  \"use strict\";\n\n  var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n  // Use a lookup table to find the index.\n  var lookup = new Uint8Array(256);\n  for (var i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n  }\n\n  exports.encode = function(arraybuffer) {\n    var bytes = new Uint8Array(arraybuffer),\n    i, len = bytes.length, base64 = \"\";\n\n    for (i = 0; i < len; i+=3) {\n      base64 += chars[bytes[i] >> 2];\n      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n      base64 += chars[bytes[i + 2] & 63];\n    }\n\n    if ((len % 3) === 2) {\n      base64 = base64.substring(0, base64.length - 1) + \"=\";\n    } else if (len % 3 === 1) {\n      base64 = base64.substring(0, base64.length - 2) + \"==\";\n    }\n\n    return base64;\n  };\n\n  exports.decode =  function(base64) {\n    var bufferLength = base64.length * 0.75,\n    len = base64.length, i, p = 0,\n    encoded1, encoded2, encoded3, encoded4;\n\n    if (base64[base64.length - 1] === \"=\") {\n      bufferLength--;\n      if (base64[base64.length - 2] === \"=\") {\n        bufferLength--;\n      }\n    }\n\n    var arraybuffer = new ArrayBuffer(bufferLength),\n    bytes = new Uint8Array(arraybuffer);\n\n    for (i = 0; i < len; i+=4) {\n      encoded1 = lookup[base64.charCodeAt(i)];\n      encoded2 = lookup[base64.charCodeAt(i+1)];\n      encoded3 = lookup[base64.charCodeAt(i+2)];\n      encoded4 = lookup[base64.charCodeAt(i+3)];\n\n      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n\n    return arraybuffer;\n  };\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js\n// module id = 51\n// module chunks = 0","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n  || global.WebKitBlobBuilder\n  || global.MSBlobBuilder\n  || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n  try {\n    var a = new Blob(['hi']);\n    return a.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n  try {\n    var b = new Blob([new Uint8Array([1,2])]);\n    return b.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n  && BlobBuilder.prototype.append\n  && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n  for (var i = 0; i < ary.length; i++) {\n    var chunk = ary[i];\n    if (chunk.buffer instanceof ArrayBuffer) {\n      var buf = chunk.buffer;\n\n      // if this is a subarray, make a copy so we only\n      // include the subarray region from the underlying buffer\n      if (chunk.byteLength !== buf.byteLength) {\n        var copy = new Uint8Array(chunk.byteLength);\n        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n        buf = copy.buffer;\n      }\n\n      ary[i] = buf;\n    }\n  }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n  options = options || {};\n\n  var bb = new BlobBuilder();\n  mapArrayBufferViews(ary);\n\n  for (var i = 0; i < ary.length; i++) {\n    bb.append(ary[i]);\n  }\n\n  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n  mapArrayBufferViews(ary);\n  return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n  if (blobSupported) {\n    return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n  } else if (blobBuilderSupported) {\n    return BlobBuilderConstructor;\n  } else {\n    return undefined;\n  }\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/blob/index.js\n// module id = 52\n// module chunks = 0","\n/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n  Polling.call(this, opts);\n\n  this.query = this.query || {};\n\n  // define global callbacks array if not present\n  // we do this here (lazily) to avoid unneeded global pollution\n  if (!callbacks) {\n    // we need to consider multiple engines in the same page\n    if (!global.___eio) global.___eio = [];\n    callbacks = global.___eio;\n  }\n\n  // callback identifier\n  this.index = callbacks.length;\n\n  // add callback to jsonp global\n  var self = this;\n  callbacks.push(function (msg) {\n    self.onData(msg);\n  });\n\n  // append to query string\n  this.query.j = this.index;\n\n  // prevent spurious errors from being emitted when the window is unloaded\n  if (global.document && global.addEventListener) {\n    global.addEventListener('beforeunload', function () {\n      if (self.script) self.script.onerror = empty;\n    }, false);\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  if (this.form) {\n    this.form.parentNode.removeChild(this.form);\n    this.form = null;\n    this.iframe = null;\n  }\n\n  Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n  var self = this;\n  var script = document.createElement('script');\n\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  script.async = true;\n  script.src = this.uri();\n  script.onerror = function (e) {\n    self.onError('jsonp poll error', e);\n  };\n\n  var insertAt = document.getElementsByTagName('script')[0];\n  if (insertAt) {\n    insertAt.parentNode.insertBefore(script, insertAt);\n  } else {\n    (document.head || document.body).appendChild(script);\n  }\n  this.script = script;\n\n  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n  if (isUAgecko) {\n    setTimeout(function () {\n      var iframe = document.createElement('iframe');\n      document.body.appendChild(iframe);\n      document.body.removeChild(iframe);\n    }, 100);\n  }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n  var self = this;\n\n  if (!this.form) {\n    var form = document.createElement('form');\n    var area = document.createElement('textarea');\n    var id = this.iframeId = 'eio_iframe_' + this.index;\n    var iframe;\n\n    form.className = 'socketio';\n    form.style.position = 'absolute';\n    form.style.top = '-1000px';\n    form.style.left = '-1000px';\n    form.target = id;\n    form.method = 'POST';\n    form.setAttribute('accept-charset', 'utf-8');\n    area.name = 'd';\n    form.appendChild(area);\n    document.body.appendChild(form);\n\n    this.form = form;\n    this.area = area;\n  }\n\n  this.form.action = this.uri();\n\n  function complete () {\n    initIframe();\n    fn();\n  }\n\n  function initIframe () {\n    if (self.iframe) {\n      try {\n        self.form.removeChild(self.iframe);\n      } catch (e) {\n        self.onError('jsonp polling iframe removal error', e);\n      }\n    }\n\n    try {\n      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n      iframe = document.createElement(html);\n    } catch (e) {\n      iframe = document.createElement('iframe');\n      iframe.name = self.iframeId;\n      iframe.src = 'javascript:0';\n    }\n\n    iframe.id = self.iframeId;\n\n    self.form.appendChild(iframe);\n    self.iframe = iframe;\n  }\n\n  initIframe();\n\n  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n  data = data.replace(rEscapedNewline, '\\\\\\n');\n  this.area.value = data.replace(rNewline, '\\\\n');\n\n  try {\n    this.form.submit();\n  } catch (e) {}\n\n  if (this.iframe.attachEvent) {\n    this.iframe.onreadystatechange = function () {\n      if (self.iframe.readyState === 'complete') {\n        complete();\n      }\n    };\n  } else {\n    this.iframe.onload = complete;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/polling-jsonp.js\n// module id = 53\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\nvar NodeWebSocket;\nif (typeof window === 'undefined') {\n  try {\n    NodeWebSocket = require('ws');\n  } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n  WebSocket = NodeWebSocket;\n}\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (forceBase64) {\n    this.supportsBinary = false;\n  }\n  this.perMessageDeflate = opts.perMessageDeflate;\n  this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n  this.protocols = opts.protocols;\n  if (!this.usingBrowserWebSocket) {\n    WebSocket = NodeWebSocket;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n  if (!this.check()) {\n    // let probe timeout\n    return;\n  }\n\n  var uri = this.uri();\n  var protocols = this.protocols;\n  var opts = {\n    agent: this.agent,\n    perMessageDeflate: this.perMessageDeflate\n  };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  if (this.extraHeaders) {\n    opts.headers = this.extraHeaders;\n  }\n  if (this.localAddress) {\n    opts.localAddress = this.localAddress;\n  }\n\n  try {\n    this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n  } catch (err) {\n    return this.emit('error', err);\n  }\n\n  if (this.ws.binaryType === undefined) {\n    this.supportsBinary = false;\n  }\n\n  if (this.ws.supports && this.ws.supports.binary) {\n    this.supportsBinary = true;\n    this.ws.binaryType = 'nodebuffer';\n  } else {\n    this.ws.binaryType = 'arraybuffer';\n  }\n\n  this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n  var self = this;\n\n  this.ws.onopen = function () {\n    self.onOpen();\n  };\n  this.ws.onclose = function () {\n    self.onClose();\n  };\n  this.ws.onmessage = function (ev) {\n    self.onData(ev.data);\n  };\n  this.ws.onerror = function (e) {\n    self.onError('websocket error', e);\n  };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n\n  // encodePacket efficient as it uses WS framing\n  // no need for encodePayload\n  var total = packets.length;\n  for (var i = 0, l = total; i < l; i++) {\n    (function (packet) {\n      parser.encodePacket(packet, self.supportsBinary, function (data) {\n        if (!self.usingBrowserWebSocket) {\n          // always create a new object (GH-437)\n          var opts = {};\n          if (packet.options) {\n            opts.compress = packet.options.compress;\n          }\n\n          if (self.perMessageDeflate) {\n            var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n            if (len < self.perMessageDeflate.threshold) {\n              opts.compress = false;\n            }\n          }\n        }\n\n        // Sometimes the websocket has already been closed but the browser didn't\n        // have a chance of informing us about it yet, in that case send will\n        // throw an error\n        try {\n          if (self.usingBrowserWebSocket) {\n            // TypeError is thrown when passing the second argument on Safari\n            self.ws.send(data);\n          } else {\n            self.ws.send(data, opts);\n          }\n        } catch (e) {\n          debug('websocket closed before onclose event');\n        }\n\n        --total || done();\n      });\n    })(packets[i]);\n  }\n\n  function done () {\n    self.emit('flush');\n\n    // fake drain\n    // defer to next tick to allow Socket to clear writeBuffer\n    setTimeout(function () {\n      self.writable = true;\n      self.emit('drain');\n    }, 0);\n  }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n  Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n  if (typeof this.ws !== 'undefined') {\n    this.ws.close();\n  }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'wss' : 'ws';\n  var port = '';\n\n  // avoid port if default for schema\n  if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n    ('ws' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // append timestamp to URI\n  if (this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  // communicate binary support capabilities\n  if (!this.supportsBinary) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n  return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/engine.io-client/lib/transports/websocket.js\n// module id = 54\n// module chunks = 0","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ws (ignored)\n// module id = 55\n// module chunks = 0","module.exports = toArray\n\nfunction toArray(list, index) {\n    var array = []\n\n    index = index || 0\n\n    for (var i = index || 0; i < list.length; i++) {\n        array[i - index] = list[i]\n    }\n\n    return array\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/to-array/index.js\n// module id = 56\n// module chunks = 0","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n  opts = opts || {};\n  this.ms = opts.min || 100;\n  this.max = opts.max || 10000;\n  this.factor = opts.factor || 2;\n  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n  this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n  var ms = this.ms * Math.pow(this.factor, this.attempts++);\n  if (this.jitter) {\n    var rand =  Math.random();\n    var deviation = Math.floor(rand * this.jitter * ms);\n    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;\n  }\n  return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n  this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n  this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n  this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n  this.jitter = jitter;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/backo2/index.js\n// module id = 57\n// module chunks = 0","if (!(\"indexOf\" in Array.prototype)) {\n    Array.prototype.indexOf = function(find, i) {\n        if (i === undefined) {\n            i = 0;\n        }\n        if (i < 0) {\n            i += this.length;\n        }\n        if (i < 0) {\n            i = 0;\n        }\n        for (var n = this.length; i < n; i += 1) {\n            if (i in this && this[i] === find) {\n                return i;\n            }\n        }\n        return -1;\n    };\n}\n\n// Production steps of ECMA-262, Edition 5, 15.4.4.19\n// Reference: http://es5.github.io/#x15.4.4.19\nif (!Array.prototype.map) {\n    Array.prototype.map = function(callback, thisArg) {\n        var T, A, k;\n\n        if (this == null) {\n            throw new TypeError(\" this is null or not defined\");\n        }\n\n        // 1. Let O be the result of calling ToObject passing the |this|\n        //    value as the argument.\n        var O = Object(this);\n\n        // 2. Let lenValue be the result of calling the Get internal\n        //    method of O with the argument \"length\".\n        // 3. Let len be ToUint32(lenValue).\n        var len = O.length >>> 0;\n\n        // 4. If IsCallable(callback) is false, throw a TypeError exception.\n        // See: http://es5.github.com/#x9.11\n        if (typeof callback !== \"function\") {\n            throw new TypeError(callback + \" is not a function\");\n        }\n\n        // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\n        if (arguments.length > 1) {\n            T = thisArg;\n        }\n\n        // 6. Let A be a new array created as if by the expression new Array(len)\n        //    where Array is the standard built-in constructor with that name and\n        //    len is the value of len.\n        A = new Array(len);\n\n        // 7. Let k be 0\n        k = 0;\n\n        // 8. Repeat, while k < len\n        while (k < len) {\n            var kValue, mappedValue;\n\n            // a. Let Pk be ToString(k).\n            //   This is implicit for LHS operands of the in operator\n            // b. Let kPresent be the result of calling the HasProperty internal\n            //    method of O with argument Pk.\n            //   This step can be combined with c\n            // c. If kPresent is true, then\n            if (k in O) {\n                // i. Let kValue be the result of calling the Get internal\n                //    method of O with argument Pk.\n                kValue = O[k];\n\n                // ii. Let mappedValue be the result of calling the Call internal\n                //     method of callback with T as the this value and argument\n                //     list containing kValue, k, and O.\n                mappedValue = callback.call(T, kValue, k, O);\n\n                // iii. Call the DefineOwnProperty internal method of A with arguments\n                // Pk, Property Descriptor\n                // { Value: mappedValue,\n                //   Writable: true,\n                //   Enumerable: true,\n                //   Configurable: true },\n                // and false.\n\n                // In browsers that support Object.defineProperty, use the following:\n                // Object.defineProperty(A, k, {\n                //   value: mappedValue,\n                //   writable: true,\n                //   enumerable: true,\n                //   configurable: true\n                // });\n\n                // For best browser support, use the following:\n                A[k] = mappedValue;\n            }\n            // d. Increase k by 1.\n            k++;\n        }\n\n        // 9. return A\n        return A;\n    };\n}\n\nif (!Array.prototype.filter) {\n    Array.prototype.filter = function(fun /*, thisArg*/) {\n        \"use strict\";\n\n        if (this === void 0 || this === null) {\n            throw new TypeError();\n        }\n\n        var t = Object(this);\n        var len = t.length >>> 0;\n        if (typeof fun !== \"function\") {\n            throw new TypeError();\n        }\n\n        var res = [];\n        var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n        for (var i = 0; i < len; i++) {\n            if (i in t) {\n                var val = t[i];\n\n                // NOTE: Technically this should Object.defineProperty at\n                //       the next index, as push can be affected by\n                //       properties on Object.prototype and Array.prototype.\n                //       But that method's new, and collisions should be\n                //       rare, so use the more-compatible alternative.\n                if (fun.call(thisArg, val, i, t)) {\n                    res.push(val);\n                }\n            }\n        }\n\n        return res;\n    };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/client-shims.js","import { Reloader } from \"../vendor/Reloader\";\nimport { Timer } from \"../vendor/Timer\";\n\nconst events = require(\"./events\");\nconst utils = require(\"./browser.utils\");\nconst emitter = require(\"./emitter\");\nconst sync = exports;\nconst nanlogger = require(\"nanologger\");\nconst log = nanlogger(\"Browsersync\", { colors: { magenta: \"#0F2634\" } });\nconst reloader = new Reloader(window, log, Timer);\n\nconst options = {\n    tagNames: {\n        css: \"link\",\n        jpg: \"img\",\n        jpeg: \"img\",\n        png: \"img\",\n        svg: \"img\",\n        gif: \"img\",\n        js: \"script\"\n    },\n    attrs: {\n        link: \"href\",\n        img: \"src\",\n        script: \"src\"\n    },\n    blacklist: [\n        // never allow .map files through\n        function(incoming) {\n            return incoming.ext === \"map\";\n        }\n    ]\n};\n\nconst OPT_PATH = \"codeSync\";\nconst current = function() {\n    return window.location.pathname;\n};\n\n/**\n * @param {BrowserSync} bs\n */\nsync.init = function(bs) {\n    if (bs.options.tagNames) {\n        options.tagNames = bs.options.tagNames;\n    }\n\n    if (bs.options.scrollRestoreTechnique === \"window.name\") {\n        sync.saveScrollInName(emitter);\n    } else {\n        sync.saveScrollInCookie(utils.getWindow(), utils.getDocument());\n    }\n\n    bs.socket.on(\"file:reload\", sync.reload(bs));\n    bs.socket.on(\"browser:reload\", function() {\n        if (bs.canSync({ url: current() }, OPT_PATH)) {\n            sync.reloadBrowser(true, bs);\n        }\n    });\n};\n\n/**\n * Use window.name to store/restore scroll position\n */\nsync.saveScrollInName = function() {\n    var PRE = \"<<BS_START>>\";\n    var SUF = \"<<BS_END>>\";\n    var regex = new RegExp(PRE + \"(.+?)\" + SUF);\n    var $window = utils.getWindow();\n    var saved = {};\n\n    /**\n     * Listen for the browser:hardReload event.\n     * When it runs, save the current scroll position\n     * in window.name\n     */\n    emitter.on(\"browser:hardReload\", function(data) {\n        var newname = [\n            $window.name,\n            PRE,\n            JSON.stringify({\n                bs: {\n                    hardReload: true,\n                    scroll: data.scrollPosition\n                }\n            }),\n            SUF\n        ].join(\"\");\n        $window.name = newname;\n    });\n\n    /**\n     * On page load, check window.name for an existing\n     * BS json blob & parse it.\n     */\n    try {\n        var json = $window.name.match(regex);\n        if (json) {\n            saved = JSON.parse(json[1]);\n        }\n    } catch (e) {\n        saved = {};\n    }\n\n    /**\n     * If the JSON was parsed correctly, try to\n     * find a scroll property and restore it.\n     */\n    if (saved.bs && saved.bs.hardReload && saved.bs.scroll) {\n        utils.setScroll(saved.bs.scroll);\n    }\n\n    /**\n     * Remove any existing BS json from window.name\n     * to ensure we don't interfere with any other\n     * libs who may be using it.\n     */\n    $window.name = $window.name.replace(regex, \"\");\n};\n\n/**\n * Use a cookie-drop to save scroll position of\n * @param $window\n * @param $document\n */\nsync.saveScrollInCookie = function($window, $document) {\n    if (!utils.isOldIe()) {\n        return;\n    }\n\n    if ($document.readyState === \"complete\") {\n        utils.restoreScrollPosition();\n    } else {\n        events.manager.addEvent($document, \"readystatechange\", function() {\n            if ($document.readyState === \"complete\") {\n                utils.restoreScrollPosition();\n            }\n        });\n    }\n\n    emitter.on(\"browser:hardReload\", utils.saveScrollPosition);\n};\n\n/**\n * @param {BrowserSync} bs\n * @returns {*}\n */\nsync.reload = function(bs) {\n    /**\n     * @param data - from socket\n     */\n    return function(data) {\n        if (!bs.canSync({ url: current() }, OPT_PATH)) {\n            return;\n        }\n\n        if (data.url || !bs.options.injectChanges) {\n            sync.reloadBrowser(true);\n        }\n\n        if (data.basename && data.ext) {\n            if (sync.isBlacklisted(data)) {\n                return;\n            }\n\n            reloader.reload(data, {\n                ...options,\n                liveCSS: true,\n                liveImg: true\n            });\n        }\n    };\n};\n\n/**\n * @param incoming\n * @returns {boolean}\n */\nsync.isBlacklisted = function(incoming) {\n    return options.blacklist.some(function(fn) {\n        return fn(incoming);\n    });\n};\n\n/**\n * @param confirm\n */\nsync.reloadBrowser = function(confirm) {\n    emitter.emit(\"browser:hardReload\", {\n        scrollPosition: utils.getBrowserScrollPosition()\n    });\n    if (confirm) {\n        utils.reloadBrowser();\n    }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/code-sync.js","/**\n *\n * With thanks to https://github.com/livereload/livereload-js\n * :) :) :)\n *\n */\nimport {getLocation, pathFromUrl, pathsMatch, pickBestMatch, splitUrl, updateSearch} from \"../lib/utils\";\n\nvar hiddenElem;\n\ndeclare global {\n    interface HTMLLinkElement {\n        __LiveReload_pendingRemoval: boolean\n    }\n}\n\nconst IMAGE_STYLES = [\n    { selector: 'background', styleNames: ['backgroundImage'] },\n    { selector: 'border', styleNames: ['borderImage', 'webkitBorderImage', 'MozBorderImage'] }\n];\n\nexport interface ReloadOptions {\n    stylesheetReloadTimeout?: number;\n    serverURL?: string;\n    overrideURL?: string;\n    liveCSS?: boolean;\n    liveImg?: boolean;\n    tagNames: {[index: string]: string}\n    attrs: {[index: string]: string}\n}\n\nexport class Reloader {\n\n    public options: any;\n    public importCacheWaitPeriod: number;\n    public document: Document;\n    public knownToSupportCssOnLoad: boolean;\n    public plugins: any[];\n\n    constructor(public window: any, public logger, public Timer) {\n        this.window = window;\n        this.Timer = Timer;\n        this.document = this.window.document;\n        this.importCacheWaitPeriod = 200;\n        this.plugins = [];\n    }\n\n\n    addPlugin(plugin) {\n        return this.plugins.push(plugin);\n    }\n\n\n    analyze(callback) {\n        return null;\n        // return results;\n    }\n\n\n    reload(data, options: ReloadOptions, cb) {\n        this.options = options;  // avoid passing it through all the funcs\n        const {path} = data;\n        if (this.options.stylesheetReloadTimeout == null) { this.options.stylesheetReloadTimeout = 15000; }\n\n        this.plugins.forEach(plugin => {\n            if (plugin.reload && plugin.reload(path, options)) {\n                return;\n            }\n        })\n\n        if (options.liveCSS) {\n            if (path.match(/\\.css$/i)) {\n                this.logger.trace(`path.match(/\\\\.css$/i)`, true);\n                if (this.reloadStylesheet(path)) {\n                    return;\n                }\n            }\n        }\n        if (options.liveImg) {\n            if (path.match(/\\.(jpe?g|png|gif)$/i)) {\n                this.logger.trace(`/\\\\.(jpe?g|png|gif)$/i`, true);\n                this.reloadImages(path);\n                return;\n            }\n        }\n\n        this.logger.trace('Falling back to legacy method of replacing assets');\n\n        /**\n         * LEGACY\n         */\n        const domData = Reloader.getElems(data.ext, options);\n        const elems   = Reloader.getMatches(domData.elems, data.basename, domData.attr);\n\n        for (var i = 0, n = elems.length; i < n; i += 1) {\n            this.swapFile(elems[i], domData, options);\n        }\n\n        (cb || function() {})(elems, domData);\n    }\n    public static getElems(fileExtension, options: ReloadOptions) {\n        const tagName = options.tagNames[fileExtension];\n        const attr    = options.attrs[tagName];\n        return {\n            attr,\n            tagName,\n            elems: document.getElementsByTagName(tagName)\n        };\n    }\n\n    public static getMatches(elems, url, attr) {\n\n        if (url[0] === \"*\") {\n            return elems;\n        }\n\n        var matches = [];\n        var urlMatcher = new RegExp(\"(^|/)\" + url);\n\n        for (var i = 0, len = elems.length; i < len; i += 1) {\n            if (urlMatcher.test(elems[i][attr])) {\n                matches.push(elems[i]);\n            }\n        }\n\n        return matches;\n    };\n\n    public swapFile(elem, domData, options) {\n\n        const attr = domData.attr;\n        const currentValue = elem[attr];\n        const timeStamp    = new Date().getTime();\n        const key          = \"browsersync-legacy\";\n        const suffix       = key + \"=\" + timeStamp;\n        const anchor       = getLocation(currentValue);\n        const search       = updateSearch(anchor.search, key, suffix);\n\n        switch (domData.tagName) {\n            case 'link': {\n                this.logger.trace(`replacing LINK ${attr}`);\n                this.reloadStylesheet(currentValue);\n                break;\n            }\n            case 'img': {\n                this.reloadImages(currentValue);\n                break;\n            }\n            default: {\n                if (options.timestamps === false) {\n                    elem[attr] = anchor.href;\n                } else {\n                    elem[attr] = anchor.href.split(\"?\")[0] + search;\n                }\n\n                this.logger.info(`reloading ${elem[attr]}`);\n\n                setTimeout(function () {\n                    if (!hiddenElem) {\n                        hiddenElem = document.createElement(\"DIV\");\n                        document.body.appendChild(hiddenElem);\n                    } else {\n                        hiddenElem.style.display = \"none\";\n                        hiddenElem.style.display = \"block\";\n                    }\n                }, 200);\n            }\n        }\n\n        return {\n            elem: elem,\n            timeStamp: timeStamp\n        };\n    };\n\n\n    reloadPage() {\n        return this.window.document.location.reload();\n    }\n\n\n    reloadImages(path) {\n        const expando = this.generateUniqueString();\n\n        [].slice.call(this.document.images).forEach(img => {\n            if (pathsMatch(path, pathFromUrl(img.src))) {\n                img.src = this.generateCacheBustUrl(img.src, expando);\n            }\n        });\n\n        if (this.document.querySelectorAll) {\n            IMAGE_STYLES.forEach(({ selector, styleNames }) => {\n                [].slice.call(this.document.querySelectorAll(`[style*=${selector}]`)).forEach(img => {\n                    this.reloadStyleImages(img.style, styleNames, path, expando);\n                });\n            });\n        }\n\n        if (this.document.styleSheets) {\n            return [].slice.call(this.document.styleSheets)\n                .map((styleSheet) => {\n                    return this.reloadStylesheetImages(styleSheet, path, expando);\n                });\n        }\n    }\n\n\n    reloadStylesheetImages(styleSheet, path, expando) {\n        let rules;\n        try {\n            rules = styleSheet != null ? styleSheet.cssRules : undefined;\n        } catch (e) {}\n        //\n        if (!rules) { return; }\n\n        [].slice.call(rules).forEach(rule => {\n            switch (rule.type) {\n                case CSSRule.IMPORT_RULE:\n                    this.reloadStylesheetImages(rule.styleSheet, path, expando);\n                    break;\n                case CSSRule.STYLE_RULE:\n                    [].slice.call(IMAGE_STYLES).forEach(({ styleNames }) => {\n                        this.reloadStyleImages((rule as any).style, styleNames, path, expando);\n                    })\n                    break;\n                case CSSRule.MEDIA_RULE:\n                    this.reloadStylesheetImages(rule, path, expando);\n                    break;\n            }\n        })\n    }\n\n\n    reloadStyleImages(style, styleNames, path, expando) {\n        [].slice.call(styleNames).forEach(styleName => {\n            const value = style[styleName];\n            if (typeof value === 'string') {\n                const newValue = value.replace(new RegExp(`\\\\burl\\\\s*\\\\(([^)]*)\\\\)`), (match, src) => {\n                    if (pathsMatch(path, pathFromUrl(src))) {\n                        return `url(${this.generateCacheBustUrl(src, expando)})`;\n                    } else {\n                        return match;\n                    }\n                });\n                if (newValue !== value) {\n                    style[styleName] = newValue;\n                }\n            }\n        })\n    }\n\n\n    reloadStylesheet(path) {\n        // has to be a real array, because DOMNodeList will be modified\n        let link;\n        const links = ((() => {\n            const result = [];\n            [].slice.call(this.document.getElementsByTagName('link')).forEach(link => {\n                if (link.rel.match(/^stylesheet$/i) && !link.__LiveReload_pendingRemoval) {\n                    result.push(link);\n                }\n            });\n            return result;\n        })());\n\n        // find all imported stylesheets\n        const imported = [];\n        for (var style of Array.from(this.document.getElementsByTagName('style'))) {\n            if (style.sheet) {\n                this.collectImportedStylesheets(style, style.sheet, imported);\n            }\n        }\n        for (link of Array.from(links)) {\n            this.collectImportedStylesheets(link, link.sheet, imported);\n        }\n\n        // handle prefixfree\n        if (this.window.StyleFix && this.document.querySelectorAll) {\n            [].slice.call(this.document.querySelectorAll('style[data-href]')).forEach(style => {\n                links.push(style);\n            });\n        }\n\n        this.logger.debug(`found ${links.length} LINKed stylesheets, ${imported.length} @imported stylesheets`);\n        const match = pickBestMatch(path, links.concat(imported), l => pathFromUrl(this.linkHref(l)));\n\n\n        if (match) {\n            if (match.object && match.object.rule) {\n                this.logger.info(`reloading imported stylesheet: ${match.object.href}`);\n                this.reattachImportedRule(match.object);\n            } else {\n                this.logger.info(`reloading stylesheet: ${this.linkHref(match.object)}`);\n                this.reattachStylesheetLink(match.object);\n            }\n        } else {\n            this.logger.info(`reloading all stylesheets because path '${path}' did not match any specific one`);\n            links.forEach(link => this.reattachStylesheetLink(link));\n        }\n        return true;\n    }\n\n\n    collectImportedStylesheets(link, styleSheet, result) {\n        // in WebKit, styleSheet.cssRules is null for inaccessible stylesheets;\n        // Firefox/Opera may throw exceptions\n        let rules;\n        try {\n            rules = styleSheet != null ? styleSheet.cssRules : undefined;\n        } catch (e) {}\n        //\n        if (rules && rules.length) {\n            for (let index = 0; index < rules.length; index++) {\n                const rule = rules[index];\n                switch (rule.type) {\n                    case CSSRule.CHARSET_RULE:\n                        break;\n                    case CSSRule.IMPORT_RULE:\n                        result.push({ link, rule, index, href: rule.href });\n                        this.collectImportedStylesheets(link, rule.styleSheet, result);\n                        break;\n                    default:\n                        break;  // import rules can only be preceded by charset rules\n                }\n            }\n        }\n    }\n\n\n    waitUntilCssLoads(clone, func) {\n        let callbackExecuted = false;\n\n        const executeCallback = () => {\n            if (callbackExecuted) { return; }\n            callbackExecuted = true;\n            return func();\n        };\n\n        // supported by Chrome 19+, Safari 5.2+, Firefox 9+, Opera 9+, IE6+\n        // http://www.zachleat.com/web/load-css-dynamically/\n        // http://pieisgood.org/test/script-link-events/\n        clone.onload = () => {\n            this.logger.debug(\"the new stylesheet has finished loading\");\n            this.knownToSupportCssOnLoad = true;\n            return executeCallback();\n        };\n\n        if (!this.knownToSupportCssOnLoad) {\n            // polling\n            let poll;\n            (poll = () => {\n                if (clone.sheet) {\n                    this.logger.debug(\"polling until the new CSS finishes loading...\");\n                    return executeCallback();\n                } else {\n                    return this.Timer.start(50, poll);\n                }\n            })();\n        }\n\n        // fail safe\n        return this.Timer.start(this.options.stylesheetReloadTimeout, executeCallback);\n    }\n\n\n    linkHref(link) {\n        // prefixfree uses data-href when it turns LINK into STYLE\n        return link.href || link.getAttribute('data-href');\n    }\n\n\n    reattachStylesheetLink(link) {\n        // ignore LINKs that will be removed by LR soon\n        let clone;\n        if (link.__LiveReload_pendingRemoval) { return; }\n        link.__LiveReload_pendingRemoval = true;\n\n        if (link.tagName === 'STYLE') {\n            // prefixfree\n            clone = this.document.createElement('link');\n            clone.rel      = 'stylesheet';\n            clone.media    = link.media;\n            clone.disabled = link.disabled;\n        } else {\n            clone = link.cloneNode(false);\n        }\n\n        clone.href = this.generateCacheBustUrl(this.linkHref(link));\n\n        // insert the new LINK before the old one\n        const parent = link.parentNode;\n        if (parent.lastChild === link) {\n            parent.appendChild(clone);\n        } else {\n            parent.insertBefore(clone, link.nextSibling);\n        }\n\n        return this.waitUntilCssLoads(clone, () => {\n            let additionalWaitingTime;\n            if (/AppleWebKit/.test(navigator.userAgent)) {\n                additionalWaitingTime = 5;\n            } else {\n                additionalWaitingTime = 200;\n            }\n\n            return this.Timer.start(additionalWaitingTime, () => {\n                if (!link.parentNode) { return; }\n                link.parentNode.removeChild(link);\n                clone.onreadystatechange = null;\n\n                return (this.window.StyleFix != null ? this.window.StyleFix.link(clone) : undefined);\n            });\n        }); // prefixfree\n    }\n\n\n    reattachImportedRule({ rule, index, link }) {\n        const parent  = rule.parentStyleSheet;\n        const href    = this.generateCacheBustUrl(rule.href);\n        const media   = rule.media.length ? [].join.call(rule.media, ', ') : '';\n        const newRule = `@import url(\"${href}\") ${media};`;\n\n        // used to detect if reattachImportedRule has been called again on the same rule\n        rule.__LiveReload_newHref = href;\n\n        // WORKAROUND FOR WEBKIT BUG: WebKit resets all styles if we add @import'ed\n        // stylesheet that hasn't been cached yet. Workaround is to pre-cache the\n        // stylesheet by temporarily adding it as a LINK tag.\n        const tempLink = this.document.createElement(\"link\");\n        tempLink.rel = 'stylesheet';\n        tempLink.href = href;\n        tempLink.__LiveReload_pendingRemoval = true;  // exclude from path matching\n        if (link.parentNode) {\n            link.parentNode.insertBefore(tempLink, link);\n        }\n\n        // wait for it to load\n        return this.Timer.start(this.importCacheWaitPeriod, () => {\n            if (tempLink.parentNode) { tempLink.parentNode.removeChild(tempLink); }\n\n            // if another reattachImportedRule call is in progress, abandon this one\n            if (rule.__LiveReload_newHref !== href) { return; }\n\n            parent.insertRule(newRule, index);\n            parent.deleteRule(index+1);\n\n            // save the new rule, so that we can detect another reattachImportedRule call\n            rule = parent.cssRules[index];\n            rule.__LiveReload_newHref = href;\n\n            // repeat again for good measure\n            return this.Timer.start(this.importCacheWaitPeriod, () => {\n                // if another reattachImportedRule call is in progress, abandon this one\n                if (rule.__LiveReload_newHref !== href) { return; }\n\n                parent.insertRule(newRule, index);\n                return parent.deleteRule(index+1);\n            });\n        });\n    }\n\n\n    generateUniqueString() {\n        return `browsersync=${Date.now()}`;\n    }\n\n\n    generateCacheBustUrl(url, expando = this.generateUniqueString()) {\n        let hash, oldParams;\n\n        ({ url, hash, params: oldParams } = splitUrl(url));\n\n        if (this.options.overrideURL) {\n            if (url.indexOf(this.options.serverURL) < 0) {\n                const originalUrl = url;\n                url = this.options.serverURL + this.options.overrideURL + \"?url=\" + encodeURIComponent(url);\n                this.logger.debug(`overriding source URL ${originalUrl} with ${url}`);\n            }\n        }\n\n        let params = oldParams.replace(/(\\?|&)browsersync=(\\d+)/, (match, sep) => `${sep}${expando}`);\n        if (params === oldParams) {\n            if (oldParams.length === 0) {\n                params = `?${expando}`;\n            } else {\n                params = `${oldParams}&${expando}`;\n            }\n        }\n\n        return url + params + hash;\n    }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./vendor/Reloader.ts","export function each(incoming) {\n    return [].slice.call(incoming || []);\n}\n\nexport const splitUrl = function(url) {\n    let hash, index, params;\n    if ((index = url.indexOf(\"#\")) >= 0) {\n        hash = url.slice(index);\n        url = url.slice(0, index);\n    } else {\n        hash = \"\";\n    }\n\n    if ((index = url.indexOf(\"?\")) >= 0) {\n        params = url.slice(index);\n        url = url.slice(0, index);\n    } else {\n        params = \"\";\n    }\n\n    return { url, params, hash };\n};\n\nexport const pathFromUrl = function(url) {\n    let path;\n    ({ url } = splitUrl(url));\n    if (url.indexOf(\"file://\") === 0) {\n        path = url.replace(new RegExp(`^file://(localhost)?`), \"\");\n    } else {\n        //                        http  :   // hostname  :8080  /\n        path = url.replace(new RegExp(`^([^:]+:)?//([^:/]+)(:\\\\d*)?/`), \"/\");\n    }\n\n    // decodeURI has special handling of stuff like semicolons, so use decodeURIComponent\n    return decodeURIComponent(path);\n};\n\nexport const pickBestMatch = function(path, objects, pathFunc): any {\n    let score;\n    let bestMatch = { score: 0, object: null };\n\n    objects.forEach(object => {\n        score = numberOfMatchingSegments(path, pathFunc(object));\n        if (score > bestMatch.score) {\n            bestMatch = { object, score };\n        }\n    });\n\n    if (bestMatch.score > 0) {\n        return bestMatch;\n    } else {\n        return null;\n    }\n};\n\nexport const numberOfMatchingSegments = function(path1, path2) {\n    // get rid of leading slashes and normalize to lower case\n    path1 = path1.replace(/^\\/+/, \"\").toLowerCase();\n    path2 = path2.replace(/^\\/+/, \"\").toLowerCase();\n\n    if (path1 === path2) {\n        return 10000;\n    }\n\n    const comps1 = path1.split(\"/\").reverse();\n    const comps2 = path2.split(\"/\").reverse();\n    const len = Math.min(comps1.length, comps2.length);\n\n    let eqCount = 0;\n    while (eqCount < len && comps1[eqCount] === comps2[eqCount]) {\n        ++eqCount;\n    }\n\n    return eqCount;\n};\n\nexport const pathsMatch = (path1, path2) =>\n    numberOfMatchingSegments(path1, path2) > 0;\n\nexport function getLocation(url: string) {\n    var location = document.createElement(\"a\");\n    location.href = url;\n\n    if (location.host === \"\") {\n        location.href = location.href;\n    }\n\n    return location;\n}\n\n/**\n * @param {string} search\n * @param {string} key\n * @param {string} suffix\n */\nexport function updateSearch(search, key, suffix) {\n    if (search === \"\") {\n        return \"?\" + suffix;\n    }\n\n    return (\n        \"?\" +\n        search\n            .slice(1)\n            .split(\"&\")\n            .map(function(item) {\n                return item.split(\"=\");\n            })\n            .filter(function(tuple) {\n                return tuple[0] !== key;\n            })\n            .map(function(item) {\n                return [item[0], item[1]].join(\"=\");\n            })\n            .concat(suffix)\n            .join(\"&\")\n    );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/utils.ts","/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nexport class Timer {\n    public running = false;\n    public id: any;\n    public _handler: any;\n\n    constructor(public func) {\n        this.id = null;\n        this._handler = () => {\n            this.running = false;\n            this.id = null;\n            return this.func();\n        };\n    }\n\n    public start(timeout) {\n        if (this.running) { clearTimeout(this.id); }\n        this.id = setTimeout(this._handler, timeout);\n        return this.running = true;\n    }\n\n    public stop() {\n        if (this.running) {\n            clearTimeout(this.id);\n            this.running = false; return this.id = null;\n        }\n    }\n\n    public static start (timeout, func) {\n        setTimeout(func, timeout);\n    }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./vendor/Timer.ts","var assert = require('assert')\nvar xtend = require('xtend')\n\nvar emojis = {\n  trace: '🔍',\n  debug: '🐛',\n  info: '✨',\n  warn: '⚠️',\n  error: '🚨',\n  fatal: '💀'\n}\n\nvar levels = {\n  trace: 10,\n  debug: 20,\n  info: 30,\n  warn: 40,\n  error: 50,\n  fatal: 60\n}\n\nvar defaultColors = {\n  foreground: '#d3c0c8',\n  background: '#2d2d2d',\n  black: '#2d2d2d',\n  red: '#f2777a',\n  green: '#99cc99',\n  yellow: '#ffcc66',\n  blue: '#6699cc',\n  magenta: '#cc99cc',\n  cyan: '#66cccc',\n  white: '#d3d0c8',\n  brightBlack: '#747369'\n}\n\nmodule.exports = Nanologger\n\nfunction Nanologger (name, opts) {\n  opts = opts || {}\n  if (!(this instanceof Nanologger)) return new Nanologger(name, opts)\n\n  assert.equal(typeof opts, 'object', 'nanologger: opts should be type object')\n\n  this._name = name || ''\n  this._colors = xtend(defaultColors, opts.colors || {})\n\n  try {\n    this.logLevel = window.localStorage.getItem('logLevel') || 'info'\n  } catch (e) {\n    this.logLevel = 'info'\n  }\n\n  this._logLevel = levels[this.logLevel]\n}\n\nNanologger.prototype.trace = function () {\n  var args = [ 'trace' ]\n  for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n  this._print.apply(this, args)\n}\n\nNanologger.prototype.debug = function () {\n  var args = [ 'debug' ]\n  for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n  this._print.apply(this, args)\n}\n\nNanologger.prototype.info = function () {\n  var args = [ 'info' ]\n  for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n  this._print.apply(this, args)\n}\n\nNanologger.prototype.warn = function () {\n  var args = [ 'warn' ]\n  for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n  this._print.apply(this, args)\n}\n\nNanologger.prototype.error = function () {\n  var args = [ 'error' ]\n  for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n  this._print.apply(this, args)\n}\n\nNanologger.prototype.fatal = function () {\n  var args = [ 'fatal' ]\n  for (var i = 0, len = arguments.length; i < len; i++) args.push(arguments[i])\n  this._print.apply(this, args)\n}\n\nNanologger.prototype._print = function (level) {\n  if (levels[level] < this._logLevel) return\n\n  var time = getTimeStamp()\n  var emoji = emojis[level]\n  var name = this._name || 'unknown'\n\n  var msgColor = (level === 'error' || level.fatal)\n    ? this._colors.red\n    : level === 'warn'\n      ? this._colors.yellow\n      : this._colors.green\n\n  var objs = []\n  var args = [ null ]\n  var msg = '%c%s ' + emoji + ' %c%s'\n\n  args.push(color(this._colors.brightBlack), time)\n  args.push(color(this._colors.magenta), name)\n\n  for (var i = 1, len = arguments.length; i < len; i++) {\n    var arg = arguments[i]\n    if (typeof arg === 'string') {\n      if (i === 1) {\n        // first string argument is in color\n        msg += ' %c%s'\n        args.push(color(msgColor))\n        args.push(arg)\n      } else if (/ms$/.test(arg)) {\n        // arguments finishing with 'ms', grey out\n        msg += ' %c%s'\n        args.push(color(this._colors.brightBlack))\n        args.push(arg)\n      } else {\n        // normal colors\n        msg += ' %c%s'\n        args.push(color(this._colors.white))\n        args.push(arg)\n      }\n    } else if (typeof arg === 'number') {\n      msg += ' %c%d'\n      args.push(color(this._colors.magenta))\n      args.push(arg)\n    } else {\n      objs.push(arg)\n    }\n  }\n\n  args[0] = msg\n  objs.forEach(function (obj) {\n    args.push(obj)\n  })\n\n  // In IE/Edge console functions don't inherit from Function.prototype\n  // so this is necessary to get all the args applied.\n  Function.prototype.apply.apply(console.log, [console, args])\n}\n\nfunction color (color) {\n  return 'color: ' + color + ';'\n}\n\nfunction getTimeStamp () {\n  var date = new Date()\n  var hours = pad(date.getHours().toString())\n  var minutes = pad(date.getMinutes().toString())\n  var seconds = pad(date.getSeconds().toString())\n  return hours + ':' + minutes + ':' + seconds\n}\n\nfunction pad (str) {\n  return str.length !== 2 ? 0 + str : str\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/nanologger/index.js\n// module id = 63\n// module chunks = 0","'use strict';\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\nfunction compare(a, b) {\n  if (a === b) {\n    return 0;\n  }\n\n  var x = a.length;\n  var y = b.length;\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i];\n      y = b[i];\n      break;\n    }\n  }\n\n  if (x < y) {\n    return -1;\n  }\n  if (y < x) {\n    return 1;\n  }\n  return 0;\n}\nfunction isBuffer(b) {\n  if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n    return global.Buffer.isBuffer(b);\n  }\n  return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n  return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n  return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n  if (isBuffer(arrbuf)) {\n    return false;\n  }\n  if (typeof global.ArrayBuffer !== 'function') {\n    return false;\n  }\n  if (typeof ArrayBuffer.isView === 'function') {\n    return ArrayBuffer.isView(arrbuf);\n  }\n  if (!arrbuf) {\n    return false;\n  }\n  if (arrbuf instanceof DataView) {\n    return true;\n  }\n  if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n    return true;\n  }\n  return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n//                             actual: actual,\n//                             expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n  if (!util.isFunction(func)) {\n    return;\n  }\n  if (functionsHaveNames) {\n    return func.name;\n  }\n  var str = func.toString();\n  var match = str.match(regex);\n  return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n  this.name = 'AssertionError';\n  this.actual = options.actual;\n  this.expected = options.expected;\n  this.operator = options.operator;\n  if (options.message) {\n    this.message = options.message;\n    this.generatedMessage = false;\n  } else {\n    this.message = getMessage(this);\n    this.generatedMessage = true;\n  }\n  var stackStartFunction = options.stackStartFunction || fail;\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, stackStartFunction);\n  } else {\n    // non v8 browsers so we can have a stacktrace\n    var err = new Error();\n    if (err.stack) {\n      var out = err.stack;\n\n      // try to strip useless frames\n      var fn_name = getName(stackStartFunction);\n      var idx = out.indexOf('\\n' + fn_name);\n      if (idx >= 0) {\n        // once we have located the function frame\n        // we need to strip out everything before it (and its line)\n        var next_line = out.indexOf('\\n', idx + 1);\n        out = out.substring(next_line + 1);\n      }\n\n      this.stack = out;\n    }\n  }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n  if (typeof s === 'string') {\n    return s.length < n ? s : s.slice(0, n);\n  } else {\n    return s;\n  }\n}\nfunction inspect(something) {\n  if (functionsHaveNames || !util.isFunction(something)) {\n    return util.inspect(something);\n  }\n  var rawname = getName(something);\n  var name = rawname ? ': ' + rawname : '';\n  return '[Function' +  name + ']';\n}\nfunction getMessage(self) {\n  return truncate(inspect(self.actual), 128) + ' ' +\n         self.operator + ' ' +\n         truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided.  All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n  throw new assert.AssertionError({\n    message: message,\n    actual: actual,\n    expected: expected,\n    operator: operator,\n    stackStartFunction: stackStartFunction\n  });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n  if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n  if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n  if (actual == expected) {\n    fail(actual, expected, message, '!=', assert.notEqual);\n  }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n  if (!_deepEqual(actual, expected, false)) {\n    fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n  }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n  if (!_deepEqual(actual, expected, true)) {\n    fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n  }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (actual === expected) {\n    return true;\n  } else if (isBuffer(actual) && isBuffer(expected)) {\n    return compare(actual, expected) === 0;\n\n  // 7.2. If the expected value is a Date object, the actual value is\n  // equivalent if it is also a Date object that refers to the same time.\n  } else if (util.isDate(actual) && util.isDate(expected)) {\n    return actual.getTime() === expected.getTime();\n\n  // 7.3 If the expected value is a RegExp object, the actual value is\n  // equivalent if it is also a RegExp object with the same source and\n  // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n  } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n    return actual.source === expected.source &&\n           actual.global === expected.global &&\n           actual.multiline === expected.multiline &&\n           actual.lastIndex === expected.lastIndex &&\n           actual.ignoreCase === expected.ignoreCase;\n\n  // 7.4. Other pairs that do not both pass typeof value == 'object',\n  // equivalence is determined by ==.\n  } else if ((actual === null || typeof actual !== 'object') &&\n             (expected === null || typeof expected !== 'object')) {\n    return strict ? actual === expected : actual == expected;\n\n  // If both values are instances of typed arrays, wrap their underlying\n  // ArrayBuffers in a Buffer each to increase performance\n  // This optimization requires the arrays to have the same type as checked by\n  // Object.prototype.toString (aka pToString). Never perform binary\n  // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n  // bit patterns are not identical.\n  } else if (isView(actual) && isView(expected) &&\n             pToString(actual) === pToString(expected) &&\n             !(actual instanceof Float32Array ||\n               actual instanceof Float64Array)) {\n    return compare(new Uint8Array(actual.buffer),\n                   new Uint8Array(expected.buffer)) === 0;\n\n  // 7.5 For all other Object pairs, including Array objects, equivalence is\n  // determined by having the same number of owned properties (as verified\n  // with Object.prototype.hasOwnProperty.call), the same set of keys\n  // (although not necessarily the same order), equivalent values for every\n  // corresponding key, and an identical 'prototype' property. Note: this\n  // accounts for both named and indexed properties on Arrays.\n  } else if (isBuffer(actual) !== isBuffer(expected)) {\n    return false;\n  } else {\n    memos = memos || {actual: [], expected: []};\n\n    var actualIndex = memos.actual.indexOf(actual);\n    if (actualIndex !== -1) {\n      if (actualIndex === memos.expected.indexOf(expected)) {\n        return true;\n      }\n    }\n\n    memos.actual.push(actual);\n    memos.expected.push(expected);\n\n    return objEquiv(actual, expected, strict, memos);\n  }\n}\n\nfunction isArguments(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n  if (a === null || a === undefined || b === null || b === undefined)\n    return false;\n  // if one is a primitive, the other must be same\n  if (util.isPrimitive(a) || util.isPrimitive(b))\n    return a === b;\n  if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n    return false;\n  var aIsArgs = isArguments(a);\n  var bIsArgs = isArguments(b);\n  if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n    return false;\n  if (aIsArgs) {\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return _deepEqual(a, b, strict);\n  }\n  var ka = objectKeys(a);\n  var kb = objectKeys(b);\n  var key, i;\n  // having the same number of owned properties (keys incorporates\n  // hasOwnProperty)\n  if (ka.length !== kb.length)\n    return false;\n  //the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  //~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] !== kb[i])\n      return false;\n  }\n  //equivalent values for every corresponding key, and\n  //~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n      return false;\n  }\n  return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n  if (_deepEqual(actual, expected, false)) {\n    fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n  }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n  if (_deepEqual(actual, expected, true)) {\n    fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n  }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n  if (actual !== expected) {\n    fail(actual, expected, message, '===', assert.strictEqual);\n  }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==.  assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n  if (actual === expected) {\n    fail(actual, expected, message, '!==', assert.notStrictEqual);\n  }\n};\n\nfunction expectedException(actual, expected) {\n  if (!actual || !expected) {\n    return false;\n  }\n\n  if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n    return expected.test(actual);\n  }\n\n  try {\n    if (actual instanceof expected) {\n      return true;\n    }\n  } catch (e) {\n    // Ignore.  The instanceof check doesn't work for arrow functions.\n  }\n\n  if (Error.isPrototypeOf(expected)) {\n    return false;\n  }\n\n  return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n  var error;\n  try {\n    block();\n  } catch (e) {\n    error = e;\n  }\n  return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n  var actual;\n\n  if (typeof block !== 'function') {\n    throw new TypeError('\"block\" argument must be a function');\n  }\n\n  if (typeof expected === 'string') {\n    message = expected;\n    expected = null;\n  }\n\n  actual = _tryBlock(block);\n\n  message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n            (message ? ' ' + message : '.');\n\n  if (shouldThrow && !actual) {\n    fail(actual, expected, 'Missing expected exception' + message);\n  }\n\n  var userProvidedMessage = typeof message === 'string';\n  var isUnwantedException = !shouldThrow && util.isError(actual);\n  var isUnexpectedException = !shouldThrow && actual && !expected;\n\n  if ((isUnwantedException &&\n      userProvidedMessage &&\n      expectedException(actual, expected)) ||\n      isUnexpectedException) {\n    fail(actual, expected, 'Got unwanted exception' + message);\n  }\n\n  if ((shouldThrow && actual && expected &&\n      !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n    throw actual;\n  }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n  _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n  _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) {\n    if (hasOwn.call(obj, key)) keys.push(key);\n  }\n  return keys;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/assert/assert.js\n// module id = 64\n// module chunks = 0","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  // Allow for deprecating things in the process of starting up.\n  if (isUndefined(global.process)) {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  if (process.noDeprecation === true) {\n    return fn;\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n  if (isUndefined(debugEnviron))\n    debugEnviron = process.env.NODE_DEBUG || '';\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').substr(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.substr(1, name.length - 2);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/util/util.js\n// module id = 65\n// module chunks = 0","module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/util/support/isBufferBrowser.js\n// module id = 66\n// module chunks = 0","if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    ctor.prototype = Object.create(superCtor.prototype, {\n      constructor: {\n        value: ctor,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    var TempCtor = function () {}\n    TempCtor.prototype = superCtor.prototype\n    ctor.prototype = new TempCtor()\n    ctor.prototype.constructor = ctor\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/util/node_modules/inherits/inherits_browser.js\n// module id = 67\n// module chunks = 0","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n    var target = {}\n\n    for (var i = 0; i < arguments.length; i++) {\n        var source = arguments[i]\n\n        for (var key in source) {\n            if (hasOwnProperty.call(source, key)) {\n                target[key] = source[key]\n            }\n        }\n    }\n\n    return target\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/xtend/immutable.js\n// module id = 68\n// module chunks = 0","\"use strict\";\n\nvar socket = require(\"./socket\");\nvar emitter = require(\"./emitter\");\nvar notify = require(\"./notify\");\nvar tab = require(\"./tab\");\nvar utils = require(\"./browser.utils\");\n\n/**\n * @constructor\n */\nvar BrowserSync = function(options) {\n    this.options = options;\n    this.socket = socket;\n    this.emitter = emitter;\n    this.utils = utils;\n    this.tabHidden = false;\n\n    var bs = this;\n\n    /**\n     * Options set\n     */\n    socket.on(\"options:set\", function(data) {\n        emitter.emit(\"notify\", \"Setting options...\");\n        bs.options = data.options;\n    });\n\n    emitter.on(\"tab:hidden\", function() {\n        bs.tabHidden = true;\n    });\n    emitter.on(\"tab:visible\", function() {\n        bs.tabHidden = false;\n    });\n};\n\n/**\n * Helper to check if syncing is allowed\n * @param data\n * @param optPath\n * @returns {boolean}\n */\nBrowserSync.prototype.canSync = function(data, optPath) {\n    data = data || {};\n\n    if (data.override) {\n        return true;\n    }\n\n    var canSync = true;\n\n    if (optPath) {\n        canSync = this.getOption(optPath);\n    }\n\n    return canSync && data.url === window.location.pathname;\n};\n\n/**\n * Helper to check if syncing is allowed\n * @returns {boolean}\n */\nBrowserSync.prototype.getOption = function(path) {\n    if (path && path.match(/\\./)) {\n        return getByPath(this.options, path);\n    } else {\n        var opt = this.options[path];\n\n        if (isUndefined(opt)) {\n            return false;\n        } else {\n            return opt;\n        }\n    }\n};\n\n/**\n * @type {Function}\n */\nmodule.exports = BrowserSync;\n\n/**\n * @param {String} val\n * @returns {boolean}\n */\nfunction isUndefined(val) {\n    return \"undefined\" === typeof val;\n}\n\n/**\n * @param obj\n * @param path\n */\nfunction getByPath(obj, path) {\n    for (\n        var i = 0, tempPath = path.split(\".\"), len = tempPath.length;\n        i < len;\n        i++\n    ) {\n        if (!obj || typeof obj !== \"object\") {\n            return false;\n        }\n        obj = obj[tempPath[i]];\n    }\n\n    if (typeof obj === \"undefined\") {\n        return false;\n    }\n\n    return obj;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/browser-sync.js","var utils = require(\"./browser.utils\");\nvar emitter = require(\"./emitter\");\nvar $document = utils.getDocument();\n\n// Set the name of the hidden property and the change event for visibility\nvar hidden, visibilityChange;\nif (typeof $document.hidden !== \"undefined\") {\n    // Opera 12.10 and Firefox 18 and later support\n    hidden = \"hidden\";\n    visibilityChange = \"visibilitychange\";\n} else if (typeof $document.mozHidden !== \"undefined\") {\n    hidden = \"mozHidden\";\n    visibilityChange = \"mozvisibilitychange\";\n} else if (typeof $document.msHidden !== \"undefined\") {\n    hidden = \"msHidden\";\n    visibilityChange = \"msvisibilitychange\";\n} else if (typeof $document.webkitHidden !== \"undefined\") {\n    hidden = \"webkitHidden\";\n    visibilityChange = \"webkitvisibilitychange\";\n}\n\n// If the page is hidden, pause the video;\n// if the page is shown, play the video\nfunction handleVisibilityChange() {\n    if ($document[hidden]) {\n        emitter.emit(\"tab:hidden\");\n    } else {\n        emitter.emit(\"tab:visible\");\n    }\n}\n\nif (\n    typeof $document.addEventListener === \"undefined\" ||\n    typeof $document[hidden] === \"undefined\"\n) {\n    //console.log('not supported');\n} else {\n    $document.addEventListener(visibilityChange, handleVisibilityChange, false);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/tab.js","\"use strict\";\n\nvar eventManager = require(\"./events\").manager;\n\nexports.plugins = {\n    scroll: require(\"./ghostmode.scroll\"),\n    clicks: require(\"./ghostmode.clicks\"),\n    forms: require(\"./ghostmode.forms\"),\n    location: require(\"./ghostmode.location\")\n};\n\n/**\n * Load plugins for enabled options\n * @param bs\n */\nexports.init = function(bs) {\n    for (var name in exports.plugins) {\n        if (bs.options.ghostMode[name]) {\n            exports.plugins[name].init(bs, eventManager);\n        }\n    }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/ghostmode.js"],"sourceRoot":""}