diff --git a/src/components/AudioPlayer.jsx b/src/components/AudioPlayer.jsx
index 377a0a8..8755757 100644
--- a/src/components/AudioPlayer.jsx
+++ b/src/components/AudioPlayer.jsx
@@ -353,13 +353,11 @@ export default function Player({ user }) {
}, []);
const handleTrackData = useCallback((trackData) => {
- console.debug('handleTrackData called with:', trackData);
const requestStation = activeStationRef.current;
// Only set "No track playing" if we have clear indication of no track
// and not just missing song field (to avoid flickering during transitions)
if ((!trackData.song || trackData.song === 'N/A') && (!trackData.artist || trackData.artist === 'N/A')) {
- console.debug('Setting no track playing state');
setTrackTitle('No track playing');
setLyrics([]);
return;
@@ -408,7 +406,6 @@ export default function Player({ user }) {
const ws = new WebSocket(wsUrl);
ws.onopen = function () {
- console.log('Connected to radio WebSocket for station:', station);
// Reset retry count on successful connection
};
@@ -434,15 +431,12 @@ export default function Player({ user }) {
};
ws.onclose = function (event) {
- console.log('Radio WebSocket connection closed, code:', event.code, 'reason:', event.reason);
-
// Don't retry if it was a clean close (code 1000)
if (event.code === 1000) return;
// Attempt reconnection with exponential backoff
if (retryCount < maxRetries) {
const delay = Math.min(baseDelay * Math.pow(2, retryCount), maxDelay);
- console.log(`Attempting WebSocket reconnection in ${delay}ms (attempt ${retryCount + 1}/${maxRetries})`);
setTimeout(() => {
connectWebSocket(retryCount + 1);
diff --git a/src/components/TRip/MediaRequestForm.jsx b/src/components/TRip/MediaRequestForm.jsx
index 3d91f2f..56e51f8 100644
--- a/src/components/TRip/MediaRequestForm.jsx
+++ b/src/components/TRip/MediaRequestForm.jsx
@@ -115,11 +115,11 @@ export default function MediaRequestForm() {
const inputEl = ac?.getInput ? ac.getInput() : document.querySelector('.p-autocomplete-input');
if (inputEl && typeof inputEl.blur === 'function') inputEl.blur();
} catch (innerErr) {
- console.debug('selectArtist: overlay hide fallback failed', innerErr);
+ // Ignore inner errors
}
}, 0);
} catch (err) {
- console.debug('selectArtist: unable to schedule overlay hide', err);
+ // Ignore outer errors
}
};
@@ -189,7 +189,6 @@ export default function MediaRequestForm() {
try {
if (metadataFetchToastId.current) toast.dismiss(metadataFetchToastId.current);
} catch (err) {
- console.log(err);
}
metadataFetchToastId.current = toast.info("Retrieving metadata...",
{
diff --git a/src/components/old.js b/src/components/old.js
deleted file mode 100644
index f265033..0000000
--- a/src/components/old.js
+++ /dev/null
@@ -1,45005 +0,0 @@
-
-var np_artist = "";
-var np_song = "";
-var np_uuid = "";
-var np_elapsed = 0;
-var np_duration = 0;
-var np_lrc;
-var bAuth = false;
-var webamp = undefined;
-const urlParams = new URLSearchParams(window.location.search);
-var station = urlParams.get('station');
-if (!station) {
- station = "main";
-}
-const rad_key = "XC-AJCJS89-AOLOFKZ92921AK-AKASKZJAN178-3D1";
-
-/**
- * General
- */
-
-document.addEventListener("DOMContentLoaded", function () {
- const app = document.getElementById("player");
- $(app).ready(function () {
- var playlist_init_height = 2;
- var milkdrop_init_height = 10;
- var player_addl_left_margin = 0;
- const screen_height = screen.height;
- if (screen_height >= 1200) {
- playlist_init_height += 6;
- milkdrop_init_height += 6;
- $("#player").css("margin-left", "20%");
- }
- webamp = new Webamp({
- initialTracks: [
- /*{
- metaData: {
- artist: "serious.FM",
- title: "MQ (ogg/320k)",
- },
- url: "https://stream.codey.lol/sfm-320k.ogg",
- },*/
- {
- metaData: {
- artist: "serious.FM",
- title: "HLS - Main",
- },
- url: "https://stream.codey.lol/hls/main/main.m3u8",
- },
- {
- metaData: {
- artist: "serious.FM - via CloudFlare",
- title: "HQ (flac)",
- },
- url: "https://stream-cf.codey.lol/sfm.ogg",
- },
- //{
- // metaData: {
- // artist: "serious.FM",
- // title: "LQ (mp3/128k)",
- // },
- // url:"https://relay.sfm.codey.lol/sfm-128k.mp3",
- // }
- ],
- __butterchurnOptions: {
- importButterchurn: () => Promise.resolve(window.butterchurn),
- getPresets: () => {
- const presets = window.butterchurnPresets.getPresets();
- return Object.keys(presets).map((name) => {
- return {
- name,
- butterchurnPresetObject: presets[name],
- };
- });
- },
- pixelRatio: window.devicePixelRatio || 1,
- textureRatio: 1,
- butterchurnOpen: true,
- },
- __initialWindowLayout: {
- main: { position: { x: 0, y: 0 } },
- equalizer: { position: { x: 0, y: 116 } },
- playlist: {
- position: { x: 0, y: 232 },
- size: [0, playlist_init_height],
- },
- milkdrop: {
- position: { x: 275, y: 0 },
- size: [32, milkdrop_init_height],
- },
- },
- initialSkin: {
- url: "player_skins/axon.wsz",
- },
- availableSkins: [
- {
- url: "player_skins/axon.wsz",
- name: "Axon",
- },
- ],
- });
- webamp.renderWhenReady(app);
- });
-
- var playerPos = $("#webamp").position();
- setInterval(function () {
- updateProgress();
- }, 1000);
-});
-
-const updateProgress = () => {
- // console.info(np_lrc);
- try {
- np_elapsed_lrc = np_elapsed;
- percent_complete = (np_elapsed / np_duration) * 100;
- remaining_s = np_duration - np_elapsed;
- np_elapsed += 1;
-
- if (np_lrc) {
- np_lrc.forEach(
- (item = (item) => {
- if (item["words"].length == 0) {
- return;
- }
-
- if (item["timeTag"].match(/00:00.*/)) {
- console.debug("timeTag at 0s, updated to 1s");
- item["timeTag"] = "00:01.00";
- }
- time_s = fmtS(item["timeTag"]);
- // console.debug(`lrc timeTag -> s: ${time_s}`)
- if (time_s == np_elapsed_lrc) {
- $("#lrc-text").append(`${item.words}
`);
- }
- })
- );
- }
- } catch (e) {
- console.debug(e);
- }
- if (remaining_s == 20) {
- trackAlmostOver(remaining_s);
- }
-
- duration = fmtMSS(np_duration);
- remaining = fmtMSS(remaining_s);
-
- $(".progress-bar").width(`${percent_complete}%`);
- if (percent_complete >= 90) {
- $(".progress-bar").attr(
- "class",
- "progress-bar progress-bar-striped progress-bar-animated bg-danger"
- );
- $("#progress-remaining").attr("class", "text-danger");
- } else if (percent_complete >= 75 || remaining_s <= 20) {
- $(".progress-bar").attr(
- "class",
- "progress-bar progress-bar-striped progress-bar-animated bg-warning"
- );
- $("#progress-remaining").attr("class", "text-warning");
- } else {
- $(".progress-bar").attr(
- "class",
- "progress-bar progress-bar-striped progress-bar-animated bg-success"
- );
- $("#progress-remaining").attr("class", "");
- }
- if (remaining_s > 0) {
- $("#progress-remaining").text(
- `${remaining}/${duration} (${
- 100 - Math.floor(percent_complete)
- }%) remaining`
- );
- } else {
- $(".progress-bar").width("100%");
- $(".progress-bar").attr(
- "class",
- "progress-bar progress-bar-striped progress-bar-animated bg-danger"
- );
- $("#progress-remaining").attr("class", "text-danger");
- $("#progress-remaining").text("0:00/0:00 (0%) remaining");
- setCurrentTrack();
- }
-};
-
-setInterval(() => {
- setCurrentTrack();
-}, 3000);
-
-setInterval(() => {
- // console.debug("Scrolling")
- elem = document.getElementById("lrc-text");
- elem.scrollTop = elem.scrollHeight;
-}, 500);
-
-const trackAlmostOver = (remaining_s) => {
- $.post({
- url: backend + "/radio/get_queue",
- data: JSON.stringify({
- key: `Bearer ${rad_key}`,
- limit: 1,
- station: station,
- }),
- contentType: "application/json; charset=utf-8",
- }).done(function (result) {
- try {
- next = result.items[0].artistsong;
- showToast(`Track ends in ${remaining_s}s... next up:
${next}`);
- } catch (e) {
- console.debug(`Exception: ${e}`);
- }
- });
-};
-
-const getAlbumArt = () => {
- cb = new Date().getTime();
- $("#art-div").html(`
`);
- $("#art-div").show();
-};
-
-const setCurrentTrack = async () => {
- $.post({
- url: backend + `/radio/np?station=${station}`,
- contentType: "application/json; charset=utf-8",
- }).done(function (result) {
- let elem = $("#playing-text");
- try {
- if (document.hidden) {
- return;
- }
- source_info = result.artistsong;
- if (!$(".radio-lyrics-btn").is(":visible")) {
- $(".radio-lyrics-btn").show();
- }
- } catch (error) {
- return;
- }
- if (!source_info) {
- return;
- }
-
- if (np_uuid == result.uuid) {
- return;
- }
-
- $("#lrc-text").html("");
-
- np_lrc = null;
- np_elapsed = result.elapsed;
- np_duration = result.duration;
-
- np_artist = result.artist.trim();
- np_song = result.song.trim();
- np_uuid = result.uuid;
-
- if (np_artist == "undefined" || np_song == "undefined") {
- source_info = "N/A";
- }
- elem.html(`Currently playing: ${np_artist} - ${np_song}`);
- $(document).attr("title", `CODEY STUFF | Radio: ${source_info}`);
- if (!$("#radio-actions").is(":visible")) {
- $("#radio-actions").show();
- }
-
- getAlbumArt();
-
- getLyrics(setLRC, true);
- if ($("#queueModal").is(":visible")) reloadDataTable();
-
- getAlbumArt();
- });
-};
-
-const setLyrics = (result) => {
- $("#lyrics-text").html(result["lyrics"]);
- if (result["track"] != undefined) {
- $("#lyricsModalLabel").html(`Lyrics for ${escapeHTML(result["track"])}`);
- } else {
- console.info(result);
- errorText = "Unknown error";
- if (result["errorText"] != undefined) {
- errorText = result["errorText"];
- }
- $("#lyricsModalLabel").html("Lyrics not found:");
- $("#lyrics-text").html(`${errorText}`);
- }
-};
-
-const setLRC = (result) => {
- try {
- if (typeof result.lyrics == "string" && result.lyrics == "Search failed!") {
- noLRCs();
- np_lrc = undefined;
- return;
- }
- if (result.lyrics.length >= 2) {
- if (result.lyrics[1].timeTag == "00:00.00") {
- np_lrc = undefined;
- noLRCs();
- return;
- }
- }
- np_lrc = result.lyrics;
- // if (np_lrc[0].timeTag == "00:01.00") {
-
- // }
- } catch (e) {
- np_lrc = undefined;
- noLRCs();
- }
-};
-
-const getLyrics = (callback, lrc = false) => {
- try {
- key = "lyrics";
- if (lrc) {
- key = "lrc";
- }
- $.post({
- url: "https://api.codey.lol/lyric/search",
- data: JSON.stringify({
- a: np_artist,
- s: np_song,
- src: "Web-Radio",
- lrc: lrc,
- }),
- contentType: "application/json; charset=utf-8",
- })
- .done(function (result) {
- // parsed_resp = JSON.parse(result);
- if (result.err || !key in result) {
- returnObj = {};
- returnObj["errorText"] = result["errorText"];
- callback(returnObj);
- return;
- }
- returnObj = {};
- returnObj["lyrics"] = result[key];
- returnObj["track"] = `${result.artist} - ${result.song}`;
-
- callback(returnObj);
- })
- .fail(function (error) {
- // console.debug(`LRC error: got status ${error.status} (${error.statusText})`);
- returnObj = {};
- returnObj[key] = "Search failed!";
- callback(returnObj);
- });
- } catch (error) {
- console.debug(error);
- returnObj = {};
- returnObj["lyrics"] = "Search failed!";
- callback(returnObj);
- return;
- }
- return;
-};
-
-const noLRCs = () => {
- $("#lrc-text").html("No LRCs located");
-};
-
-const getRadioQueue = (callback) => {
- try {
- var resp;
- $.post({
- url: backend + "/radio/get_queue",
- data: JSON.stringify({
- station: station
- }),
- contentType: "application/json; charset=utf-8",
- }).done(function (result) {
- // resp = JSON.parse(result);
- // console.info(resp);
- if (!result.success) {
- console.error("getRadioQueue Failed");
- resp = ["Failed"];
- } else {
- console.info(`Got ${result.response.tracks}`);
- resp = result.response.tracks;
- }
- if (callback) {
- callback(resp);
- return resp;
- }
- });
- } catch (error) {
- console.error(error);
- // resp = ["Failed"];
- }
- return resp;
-};
-
-const createDataTable = () => {
- if (window.hasOwnProperty("queueDataTable")) {
- queueDataTable.destroy();
- }
- queueColumns = [
- {
- render: function (data, type, full) {
- return full.pos + 1;
- },
- },
- { data: "artistsong" },
- { data: "album" },
- { data: "genre" },
- // { data: "duration" },
- ];
-
- if (bAuth) {
- addlItems = [
- {
- render: function (data, type, full) {
- return ``;
- },
- },
- {
- render: function (data, type, full) {
- return ``;
- },
- },
- {
- render: function (data, type, full) {
- return ``;
- },
- },
- {
- render: function (data, type, full) {
- return ``;
- },
- },
- ];
- queueColumns = queueColumns.concat(addlItems);
- }
- let queueDataTable = new DataTable("#queueDataTable", {
- ajax: function (data, callback, settings) {
- $.ajax({
- url: backend + "/radio/get_queue",
- type: "POST",
- contentType: "application/json; charset=utf-8",
- accept: "application/json",
- data: JSON.stringify({
- draw: data.draw,
- start: data.start,
- search: data.search.value,
- station: station,
- }),
- dataType: "json",
- }).then(function (json, status, jqXHR) {
- json["data"] = json["items"];
- delete json["items"];
- callback(json);
- });
- },
- paging: true,
- ordering: false,
- serverSide: true,
- columns: queueColumns,
- pageLength: 20,
- lengthMenu: [10, 20, 30, 40, 50, 100],
- // rowReorder: { selector: "tr", update: true, dataSrc: "pos" },
- deferRender: true,
- });
- $("#reshuffleBtn")
- .unbind()
- .click(function () {
- try {
- radioReshuffle();
- } catch (e) {
- console.debug(e);
- }
- reloadDataTable();
- });
-};
-
-const reloadDataTable = () => {
- try {
- if (!$("#queueModal").is(":visible")) {
- return;
- }
- $("#queueDataTable").DataTable().ajax.reload(null, false);
- } catch (e) {
- console.debug(e);
- return;
- }
-};
-
-/**
- * Event Handlers
- */
-
-document.addEventListener("DOMContentLoaded", function () {
- $("#videoModal").on("shown.bs.modal", function () {
- searchVideo(`${np_artist} - ${np_song}`);
- });
- $("#lyricsModal").on("shown.bs.modal", function () {
- getLyrics(setLyrics, false);
- });
- $(window).on("resize", function () {
- $("#webamp").css({ top: "10%", right: "0%", left: "0%" });
- });
- $("#queueModal").on("shown.bs.modal", function () {
- createDataTable();
- });
-
- $("#queueModal").on("hidden.bs.modal", function () {
- $("#queueDataTable").DataTable().destroy();
- });
-});
-
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else if(typeof exports === 'object')
- exports["Webamp"] = factory();
- else
- root["Webamp"] = factory();
-})(window, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId]) {
-/******/ return installedModules[moduleId].exports;
-/******/ }
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ i: moduleId,
-/******/ l: false,
-/******/ exports: {}
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.l = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // define getter function for harmony exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ if(!__webpack_require__.o(exports, name)) {
-/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
-/******/ }
-/******/ };
-/******/
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/
-/******/ // create a fake namespace object
-/******/ // mode & 1: value is a module id, require it
-/******/ // mode & 2: merge all properties of value into the ns
-/******/ // mode & 4: return value when already ns object
-/******/ // mode & 8|1: behave like require
-/******/ __webpack_require__.t = function(value, mode) {
-/******/ if(mode & 1) value = __webpack_require__(value);
-/******/ if(mode & 8) return value;
-/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
-/******/ var ns = Object.create(null);
-/******/ __webpack_require__.r(ns);
-/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
-/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
-/******/ return ns;
-/******/ };
-/******/
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function getDefault() { return module['default']; } :
-/******/ function getModuleExports() { return module; };
-/******/ __webpack_require__.d(getter, 'a', getter);
-/******/ return getter;
-/******/ };
-/******/
-/******/ // Object.prototype.hasOwnProperty.call
-/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 117);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-if (true) {
- module.exports = __webpack_require__(55);
-} else {}
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-if (true) {
- module.exports = __webpack_require__(56);
-} else {}
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports) {
-
-function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
-
- return obj;
-}
-
-module.exports = _defineProperty;
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-exports.__esModule = true;
-exports.defaultMemoize = defaultMemoize;
-exports.createSelectorCreator = createSelectorCreator;
-exports.createStructuredSelector = createStructuredSelector;
-function defaultEqualityCheck(a, b) {
- return a === b;
-}
-
-function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
- if (prev === null || next === null || prev.length !== next.length) {
- return false;
- }
-
- // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
- var length = prev.length;
- for (var i = 0; i < length; i++) {
- if (!equalityCheck(prev[i], next[i])) {
- return false;
- }
- }
-
- return true;
-}
-
-function defaultMemoize(func) {
- var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck;
-
- var lastArgs = null;
- var lastResult = null;
- // we reference arguments instead of spreading them for performance reasons
- return function () {
- if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
- // apply arguments instead of spreading for performance.
- lastResult = func.apply(null, arguments);
- }
-
- lastArgs = arguments;
- return lastResult;
- };
-}
-
-function getDependencies(funcs) {
- var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;
-
- if (!dependencies.every(function (dep) {
- return typeof dep === 'function';
- })) {
- var dependencyTypes = dependencies.map(function (dep) {
- return typeof dep;
- }).join(', ');
- throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));
- }
-
- return dependencies;
-}
-
-function createSelectorCreator(memoize) {
- for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- memoizeOptions[_key - 1] = arguments[_key];
- }
-
- return function () {
- for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- funcs[_key2] = arguments[_key2];
- }
-
- var recomputations = 0;
- var resultFunc = funcs.pop();
- var dependencies = getDependencies(funcs);
-
- var memoizedResultFunc = memoize.apply(undefined, [function () {
- recomputations++;
- // apply arguments instead of spreading for performance.
- return resultFunc.apply(null, arguments);
- }].concat(memoizeOptions));
-
- // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
- var selector = defaultMemoize(function () {
- var params = [];
- var length = dependencies.length;
-
- for (var i = 0; i < length; i++) {
- // apply arguments instead of spreading and mutate a local list of params for performance.
- params.push(dependencies[i].apply(null, arguments));
- }
-
- // apply arguments instead of spreading for performance.
- return memoizedResultFunc.apply(null, params);
- });
-
- selector.resultFunc = resultFunc;
- selector.recomputations = function () {
- return recomputations;
- };
- selector.resetRecomputations = function () {
- return recomputations = 0;
- };
- return selector;
- };
-}
-
-var createSelector = exports.createSelector = createSelectorCreator(defaultMemoize);
-
-function createStructuredSelector(selectors) {
- var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector;
-
- if (typeof selectors !== 'object') {
- throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors));
- }
- var objectKeys = Object.keys(selectors);
- return selectorCreator(objectKeys.map(function (key) {
- return selectors[key];
- }), function () {
- for (var _len3 = arguments.length, values = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
- values[_key3] = arguments[_key3];
- }
-
- return values.reduce(function (composition, value, index) {
- composition[objectKeys[index]] = value;
- return composition;
- }, {});
- });
-}
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
- Copyright (c) 2017 Jed Watson.
- Licensed under the MIT License (MIT), see
- http://jedwatson.github.io/classnames
-*/
-/* global define */
-
-(function () {
- 'use strict';
-
- var hasOwn = {}.hasOwnProperty;
-
- function classNames () {
- var classes = [];
-
- for (var i = 0; i < arguments.length; i++) {
- var arg = arguments[i];
- if (!arg) continue;
-
- var argType = typeof arg;
-
- if (argType === 'string' || argType === 'number') {
- classes.push(arg);
- } else if (Array.isArray(arg) && arg.length) {
- var inner = classNames.apply(null, arg);
- if (inner) {
- classes.push(inner);
- }
- } else if (argType === 'object') {
- for (var key in arg) {
- if (hasOwn.call(arg, key) && arg[key]) {
- classes.push(key);
- }
- }
- }
- }
-
- return classes.join(' ');
- }
-
- if ( true && module.exports) {
- classNames.default = classNames;
- module.exports = classNames;
- } else if (true) {
- // register as 'classnames', consistent with npm package name
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
- return classNames;
- }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
- __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else {}
-}());
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-function checkDCE() {
- /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
- if (
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
- ) {
- return;
- }
- if (false) {}
- try {
- // Verify that the code above has been dead code eliminated (DCE'd).
- __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
- } catch (err) {
- // DevTools shouldn't crash React, no matter what.
- // We should still report in case we break this code.
- console.error(err);
- }
-}
-
-if (true) {
- // DCE check should happen before ReactDOM bundle executes so that
- // DevTools can report bad minification during injection.
- checkDCE();
- module.exports = __webpack_require__(57);
-} else {}
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-const assert = __webpack_require__(18);
-const ieee754 = __webpack_require__(102);
-// Possibly call flush()
-const maybeFlush = (b, o, len, flush) => {
- if (o + len > b.length) {
- if (typeof (flush) !== 'function') {
- throw new Error('Buffer out of space and no valid flush() function found');
- }
- flush(b, o);
- return 0;
- }
- return o;
-};
-// Primitive types
-/**
- * 8-bit unsigned integer
- */
-exports.UINT8 = {
- len: 1,
- get(buf, off) {
- return buf.readUInt8(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= 0 && v <= 0xff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeUInt8(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 16-bit unsigned integer, Little Endian byte order
- */
-exports.UINT16_LE = {
- len: 2,
- get(buf, off) {
- return buf.readUInt16LE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= 0 && v <= 0xffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeUInt16LE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 16-bit unsigned integer, Big Endian byte order
- */
-exports.UINT16_BE = {
- len: 2,
- get(buf, off) {
- return buf.readUInt16BE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= 0 && v <= 0xffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeUInt16BE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 24-bit unsigned integer, Little Endian byte order
- */
-exports.UINT24_LE = {
- len: 3,
- get(buf, off) {
- return buf.readUIntLE(off, 3);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= 0 && v <= 0xffffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeUIntLE(v, no, 3);
- return (no - o) + this.len;
- }
-};
-/**
- * 24-bit unsigned integer, Big Endian byte order
- */
-exports.UINT24_BE = {
- len: 3,
- get(buf, off) {
- return buf.readUIntBE(off, 3);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= 0 && v <= 0xffffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeUIntBE(v, no, 3);
- return (no - o) + this.len;
- }
-};
-/**
- * 32-bit unsigned integer, Little Endian byte order
- */
-exports.UINT32_LE = {
- len: 4,
- get(buf, off) {
- return buf.readUInt32LE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= 0 && v <= 0xffffffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeUInt32LE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 32-bit unsigned integer, Big Endian byte order
- */
-exports.UINT32_BE = {
- len: 4,
- get(buf, off) {
- return buf.readUInt32BE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= 0 && v <= 0xffffffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeUInt32BE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 8-bit signed integer
- */
-exports.INT8 = {
- len: 1,
- get(buf, off) {
- return buf.readInt8(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= -128 && v <= 127);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeInt8(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 16-bit signed integer, Big Endian byte order
- */
-exports.INT16_BE = {
- len: 2,
- get(buf, off) {
- return buf.readInt16BE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= -32768 && v <= 32767);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeInt16BE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 16-bit signed integer, Little Endian byte order
- */
-exports.INT16_LE = {
- len: 2,
- get(buf, off) {
- return buf.readInt16LE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= -32768 && v <= 32767);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeInt16LE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 24-bit signed integer, Little Endian byte order
- */
-exports.INT24_LE = {
- len: 3,
- get(buf, off) {
- return buf.readIntLE(off, 3);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= -0x800000 && v <= 0x7fffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeIntLE(v, no, 3);
- return (no - o) + this.len;
- }
-};
-/**
- * 24-bit signed integer, Big Endian byte order
- */
-exports.INT24_BE = {
- len: 3,
- get(buf, off) {
- return buf.readIntBE(off, 3);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= -0x800000 && v <= 0x7fffff);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeIntBE(v, no, 3);
- return (no - o) + this.len;
- }
-};
-/**
- * 32-bit signed integer, Big Endian byte order
- */
-exports.INT32_BE = {
- len: 4,
- get(buf, off) {
- return buf.readInt32BE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= -2147483648 && v <= 2147483647);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeInt32BE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 32-bit signed integer, Big Endian byte order
- */
-exports.INT32_LE = {
- len: 4,
- get(buf, off) {
- return buf.readInt32LE(off);
- },
- put(b, o, v, flush) {
- assert.equal(typeof o, 'number');
- assert.equal(typeof v, 'number');
- assert.ok(v >= -2147483648 && v <= 2147483647);
- assert.ok(o >= 0);
- assert.ok(this.len <= b.length);
- const no = maybeFlush(b, o, this.len, flush);
- b.writeInt32LE(v, no);
- return (no - o) + this.len;
- }
-};
-/**
- * 64-bit unsigned integer, Little Endian byte order
- */
-exports.UINT64_LE = {
- len: 8,
- get(buf, off) {
- return readUIntLE(buf, off, this.len);
- },
- put(b, o, v) {
- return writeUIntLE(b, v, o, this.len);
- }
-};
-/**
- * 64-bit signed integer, Little Endian byte order
- */
-exports.INT64_LE = {
- len: 8,
- get(buf, off) {
- return readIntLE(buf, off, this.len);
- },
- put(b, off, v) {
- return writeIntLE(b, v, off, this.len);
- }
-};
-/**
- * 64-bit unsigned integer, Big Endian byte order
- */
-exports.UINT64_BE = {
- len: 8,
- get(b, off) {
- return readUIntBE(b, off, this.len);
- },
- put(b, o, v) {
- return writeUIntBE(b, v, o, this.len);
- }
-};
-/**
- * 64-bit signed integer, Big Endian byte order
- */
-exports.INT64_BE = {
- len: 8,
- get(b, off) {
- return readIntBE(b, off, this.len);
- },
- put(b, off, v) {
- return writeIntBE(b, v, off, this.len);
- }
-};
-/**
- * IEEE 754 16-bit (half precision) float, big endian
- */
-exports.Float16_BE = {
- len: 2,
- get(b, off) {
- return ieee754.read(b, off, false, 10, this.len);
- },
- put(b, off, v) {
- return ieee754.write(b, v, off, false, 10, this.len);
- }
-};
-/**
- * IEEE 754 16-bit (half precision) float, little endian
- */
-exports.Float16_LE = {
- len: 2,
- get(b, off) {
- return ieee754.read(b, off, true, 10, this.len);
- },
- put(b, off, v) {
- return ieee754.write(b, v, off, true, 10, this.len);
- }
-};
-/**
- * IEEE 754 32-bit (single precision) float, big endian
- */
-exports.Float32_BE = {
- len: 4,
- get(b, off) {
- return b.readFloatBE(off);
- },
- put(b, off, v) {
- return b.writeFloatBE(v, off);
- }
-};
-/**
- * IEEE 754 32-bit (single precision) float, little endian
- */
-exports.Float32_LE = {
- len: 4,
- get(b, off) {
- return b.readFloatLE(off);
- },
- put(b, off, v) {
- return b.writeFloatLE(v, off);
- }
-};
-/**
- * IEEE 754 64-bit (double precision) float, big endian
- */
-exports.Float64_BE = {
- len: 8,
- get(b, off) {
- return b.readDoubleBE(off);
- },
- put(b, off, v) {
- return b.writeDoubleBE(v, off);
- }
-};
-/**
- * IEEE 754 64-bit (double precision) float, little endian
- */
-exports.Float64_LE = {
- len: 8,
- get(b, off) {
- return b.readDoubleLE(off);
- },
- put(b, off, v) {
- return b.writeDoubleLE(v, off);
- }
-};
-/**
- * IEEE 754 80-bit (extended precision) float, big endian
- */
-exports.Float80_BE = {
- len: 10,
- get(b, off) {
- return ieee754.read(b, off, false, 63, this.len);
- },
- put(b, off, v) {
- return ieee754.write(b, v, off, false, 63, this.len);
- }
-};
-/**
- * IEEE 754 80-bit (extended precision) float, little endian
- */
-exports.Float80_LE = {
- len: 10,
- get(b, off) {
- return ieee754.read(b, off, true, 63, this.len);
- },
- put(b, off, v) {
- return ieee754.write(b, v, off, true, 63, this.len);
- }
-};
-/**
- * Ignore a given number of bytes
- */
-class IgnoreType {
- /**
- * @param len number of bytes to ignore
- */
- constructor(len) {
- this.len = len;
- }
- // ToDo: don't read, but skip data
- get(buf, off) {
- }
-}
-exports.IgnoreType = IgnoreType;
-class BufferType {
- constructor(len) {
- this.len = len;
- }
- get(buf, off) {
- return buf.slice(off, off + this.len);
- }
-}
-exports.BufferType = BufferType;
-/**
- * Consume a fixed number of bytes from the stream and return a string with a specified encoding.
- */
-class StringType {
- constructor(len, encoding) {
- this.len = len;
- this.encoding = encoding;
- }
- get(buf, off) {
- return buf.toString(this.encoding, off, off + this.len);
- }
-}
-exports.StringType = StringType;
-/**
- * ANSI Latin 1 String
- * Using windows-1252 / ISO 8859-1 decoding
- */
-class AnsiStringType {
- constructor(len) {
- this.len = len;
- }
- static decode(buffer, off, until) {
- let str = '';
- for (let i = off; i < until; ++i) {
- str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));
- }
- return str;
- }
- static inRange(a, min, max) {
- return min <= a && a <= max;
- }
- static codePointToString(cp) {
- if (cp <= 0xFFFF) {
- return String.fromCharCode(cp);
- }
- else {
- cp -= 0x10000;
- return String.fromCharCode((cp >> 10) + 0xD800, (cp & 0x3FF) + 0xDC00);
- }
- }
- static singleByteDecoder(bite) {
- if (AnsiStringType.inRange(bite, 0x00, 0x7F)) {
- return bite;
- }
- const codePoint = AnsiStringType.windows1252[bite - 0x80];
- if (codePoint === null) {
- throw Error('invaliding encoding');
- }
- return codePoint;
- }
- get(buf, off = 0) {
- return AnsiStringType.decode(buf, off, off + this.len);
- }
-}
-exports.AnsiStringType = AnsiStringType;
-AnsiStringType.windows1252 = [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 352,
- 8249, 338, 141, 381, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732,
- 8482, 353, 8250, 339, 157, 382, 376, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 255];
-/**
- * Best effort approach to read up to 64 bit unsigned integer, little endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function readUIntLE(buf, offset, byteLength) {
- offset = offset >>> 0;
- byteLength = byteLength >>> 0;
- let val = buf[offset];
- let mul = 1;
- let i = 0;
- while (++i < byteLength && (mul *= 0x100)) {
- val += buf[offset + i] * mul;
- }
- return val;
-}
-/**
- * Best effort approach to write up to 64 bit unsigned integer, little endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function writeUIntLE(buf, value, offset, byteLength) {
- value = +value;
- offset = offset >>> 0;
- byteLength = byteLength >>> 0;
- let mul = 1;
- let i = 0;
- buf[offset] = value & 0xFF;
- while (++i < byteLength && (mul *= 0x100)) {
- buf[offset + i] = (value / mul) & 0xFF;
- }
- return offset + byteLength;
-}
-/**
- * Best effort approach to read 64 but signed integer, little endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function readIntLE(buf, offset, byteLength) {
- offset = offset >>> 0;
- byteLength = byteLength >>> 0;
- let val = buf[offset];
- let mul = 1;
- let i = 0;
- while (++i < byteLength && (mul *= 0x100)) {
- val += buf[offset + i] * mul;
- }
- mul *= 0x80;
- if (val >= mul)
- val -= Math.pow(2, 8 * byteLength);
- return val;
-}
-/**
- * Best effort approach to write 64 but signed integer, little endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function writeIntLE(buf, value, offset, byteLength) {
- value = +value;
- offset = offset >>> 0;
- let i = 0;
- let mul = 1;
- let sub = 0;
- buf[offset] = value & 0xFF;
- while (++i < byteLength && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && buf[offset + i - 1] !== 0) {
- sub = 1;
- }
- buf[offset + i] = ((value / mul) >> 0) - sub & 0xFF;
- }
- return offset + byteLength;
-}
-exports.writeIntLE = writeIntLE;
-/**
- * Best effort approach to read up to 64 bit unsigned integer, big endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function readUIntBE(buf, offset, byteLength) {
- offset = offset >>> 0;
- byteLength = byteLength >>> 0;
- let val = buf[offset + --byteLength];
- let mul = 1;
- while (byteLength > 0 && (mul *= 0x100)) {
- val += buf[offset + --byteLength] * mul;
- }
- return val;
-}
-exports.readUIntBE = readUIntBE;
-/**
- * Best effort approach to write up to 64 bit unsigned integer, big endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function writeUIntBE(buf, value, offset, byteLength) {
- value = +value;
- offset = offset >>> 0;
- byteLength = byteLength >>> 0;
- let i = byteLength - 1;
- let mul = 1;
- buf[offset + i] = value & 0xFF;
- while (--i >= 0 && (mul *= 0x100)) {
- buf[offset + i] = (value / mul) & 0xFF;
- }
- return offset + byteLength;
-}
-exports.writeUIntBE = writeUIntBE;
-/**
- * Best effort approach to read 64 but signed integer, big endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function readIntBE(buf, offset, byteLength) {
- offset = offset >>> 0;
- byteLength = byteLength >>> 0;
- let i = byteLength;
- let mul = 1;
- let val = buf[offset + --i];
- while (i > 0 && (mul *= 0x100)) {
- val += buf[offset + --i] * mul;
- }
- mul *= 0x80;
- if (val >= mul)
- val -= Math.pow(2, 8 * byteLength);
- return val;
-}
-exports.readIntBE = readIntBE;
-/**
- * Best effort approach to write 64 but signed integer, big endian.
- * Note that JavasScript is limited to 2^53 - 1 bit.
- */
-function writeIntBE(buf, value, offset, byteLength) {
- value = +value;
- offset = offset >>> 0;
- let i = byteLength - 1;
- let mul = 1;
- let sub = 0;
- buf[offset + i] = value & 0xFF;
- while (--i >= 0 && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && buf[offset + i + 1] !== 0) {
- sub = 1;
- }
- buf[offset + i] = ((value / mul) >> 0) - sub & 0xFF;
- }
- return offset + byteLength;
-}
-exports.writeIntBE = writeIntBE;
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-var objectWithoutPropertiesLoose = __webpack_require__(65);
-
-function _objectWithoutProperties(source, excluded) {
- if (source == null) return {};
- var target = objectWithoutPropertiesLoose(source, excluded);
- var key, i;
-
- if (Object.getOwnPropertySymbols) {
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
-
- for (i = 0; i < sourceSymbolKeys.length; i++) {
- key = sourceSymbolKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
- target[key] = source[key];
- }
- }
-
- return target;
-}
-
-module.exports = _objectWithoutProperties;
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(process) {/* eslint-env browser */
-
-/**
- * This is the web browser implementation of `debug()`.
- */
-
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
- '#0000CC',
- '#0000FF',
- '#0033CC',
- '#0033FF',
- '#0066CC',
- '#0066FF',
- '#0099CC',
- '#0099FF',
- '#00CC00',
- '#00CC33',
- '#00CC66',
- '#00CC99',
- '#00CCCC',
- '#00CCFF',
- '#3300CC',
- '#3300FF',
- '#3333CC',
- '#3333FF',
- '#3366CC',
- '#3366FF',
- '#3399CC',
- '#3399FF',
- '#33CC00',
- '#33CC33',
- '#33CC66',
- '#33CC99',
- '#33CCCC',
- '#33CCFF',
- '#6600CC',
- '#6600FF',
- '#6633CC',
- '#6633FF',
- '#66CC00',
- '#66CC33',
- '#9900CC',
- '#9900FF',
- '#9933CC',
- '#9933FF',
- '#99CC00',
- '#99CC33',
- '#CC0000',
- '#CC0033',
- '#CC0066',
- '#CC0099',
- '#CC00CC',
- '#CC00FF',
- '#CC3300',
- '#CC3333',
- '#CC3366',
- '#CC3399',
- '#CC33CC',
- '#CC33FF',
- '#CC6600',
- '#CC6633',
- '#CC9900',
- '#CC9933',
- '#CCCC00',
- '#CCCC33',
- '#FF0000',
- '#FF0033',
- '#FF0066',
- '#FF0099',
- '#FF00CC',
- '#FF00FF',
- '#FF3300',
- '#FF3333',
- '#FF3366',
- '#FF3399',
- '#FF33CC',
- '#FF33FF',
- '#FF6600',
- '#FF6633',
- '#FF9900',
- '#FF9933',
- '#FFCC00',
- '#FFCC33'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-// eslint-disable-next-line complexity
-function useColors() {
- // NB: In an Electron preload script, document will be defined but not fully
- // initialized. Since we know we're in Chrome, we'll just detect this case
- // explicitly
- if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
- return true;
- }
-
- // Internet Explorer and Edge do not support colors.
- if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
- return false;
- }
-
- // Is webkit? http://stackoverflow.com/a/16459606/376773
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
- // Is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
- // Is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
- // Double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
-}
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- args[0] = (this.useColors ? '%c' : '') +
- this.namespace +
- (this.useColors ? ' %c' : ' ') +
- args[0] +
- (this.useColors ? '%c ' : ' ') +
- '+' + module.exports.humanize(this.diff);
-
- if (!this.useColors) {
- return;
- }
-
- const c = 'color: ' + this.color;
- args.splice(1, 0, c, 'color: inherit');
-
- // The final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- let index = 0;
- let lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, match => {
- if (match === '%%') {
- return;
- }
- index++;
- if (match === '%c') {
- // We only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
-
- args.splice(lastC, 0, c);
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-function log(...args) {
- // This hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return typeof console === 'object' &&
- console.log &&
- console.log(...args);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-function save(namespaces) {
- try {
- if (namespaces) {
- exports.storage.setItem('debug', namespaces);
- } else {
- exports.storage.removeItem('debug');
- }
- } catch (error) {
- // Swallow
- // XXX (@Qix-) should we be logging these?
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-function load() {
- let r;
- try {
- r = exports.storage.getItem('debug');
- } catch (error) {
- // Swallow
- // XXX (@Qix-) should we be logging these?
- }
-
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process !== 'undefined' && 'env' in process) {
- r = process.env.DEBUG;
- }
-
- return r;
-}
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage() {
- try {
- // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
- // The Browser also has localStorage in the global context.
- return localStorage;
- } catch (error) {
- // Swallow
- // XXX (@Qix-) should we be logging these?
- }
-}
-
-module.exports = __webpack_require__(120)(exports);
-
-const {formatters} = module.exports;
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-formatters.j = function (v) {
- try {
- return JSON.stringify(v);
- } catch (error) {
- return '[UnexpectedJSONParseError]: ' + error.message;
- }
-};
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(global) {/*!
- * The buffer module from node.js, for the browser.
- *
- * @author Feross Aboukhadijeh
- * @license MIT
- */
-/* eslint-disable no-proto */
-
-
-
-var base64 = __webpack_require__(118)
-var ieee754 = __webpack_require__(102)
-var isArray = __webpack_require__(103)
-
-exports.Buffer = Buffer
-exports.SlowBuffer = SlowBuffer
-exports.INSPECT_MAX_BYTES = 50
-
-/**
- * If `Buffer.TYPED_ARRAY_SUPPORT`:
- * === true Use Uint8Array implementation (fastest)
- * === false Use Object implementation (most compatible, even IE6)
- *
- * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
- * Opera 11.6+, iOS 4.2+.
- *
- * Due to various browser bugs, sometimes the Object implementation will be used even
- * when the browser supports typed arrays.
- *
- * Note:
- *
- * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
- * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
- *
- * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
- *
- * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
- * incorrect length in some situations.
-
- * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
- * get the Object implementation, which is slower but behaves correctly.
- */
-Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
- ? global.TYPED_ARRAY_SUPPORT
- : typedArraySupport()
-
-/*
- * Export kMaxLength after typed array support is determined.
- */
-exports.kMaxLength = kMaxLength()
-
-function typedArraySupport () {
- try {
- var arr = new Uint8Array(1)
- arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
- return arr.foo() === 42 && // typed array instances can be augmented
- typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
- arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
- } catch (e) {
- return false
- }
-}
-
-function kMaxLength () {
- return Buffer.TYPED_ARRAY_SUPPORT
- ? 0x7fffffff
- : 0x3fffffff
-}
-
-function createBuffer (that, length) {
- if (kMaxLength() < length) {
- throw new RangeError('Invalid typed array length')
- }
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = new Uint8Array(length)
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- if (that === null) {
- that = new Buffer(length)
- }
- that.length = length
- }
-
- return that
-}
-
-/**
- * The Buffer constructor returns instances of `Uint8Array` that have their
- * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
- * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
- * and the `Uint8Array` methods. Square bracket notation works as expected -- it
- * returns a single octet.
- *
- * The `Uint8Array` prototype remains unmodified.
- */
-
-function Buffer (arg, encodingOrOffset, length) {
- if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
- return new Buffer(arg, encodingOrOffset, length)
- }
-
- // Common case.
- if (typeof arg === 'number') {
- if (typeof encodingOrOffset === 'string') {
- throw new Error(
- 'If encoding is specified then the first argument must be a string'
- )
- }
- return allocUnsafe(this, arg)
- }
- return from(this, arg, encodingOrOffset, length)
-}
-
-Buffer.poolSize = 8192 // not used by this implementation
-
-// TODO: Legacy, not needed anymore. Remove in next major version.
-Buffer._augment = function (arr) {
- arr.__proto__ = Buffer.prototype
- return arr
-}
-
-function from (that, value, encodingOrOffset, length) {
- if (typeof value === 'number') {
- throw new TypeError('"value" argument must not be a number')
- }
-
- if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
- return fromArrayBuffer(that, value, encodingOrOffset, length)
- }
-
- if (typeof value === 'string') {
- return fromString(that, value, encodingOrOffset)
- }
-
- return fromObject(that, value)
-}
-
-/**
- * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
- * if value is a number.
- * Buffer.from(str[, encoding])
- * Buffer.from(array)
- * Buffer.from(buffer)
- * Buffer.from(arrayBuffer[, byteOffset[, length]])
- **/
-Buffer.from = function (value, encodingOrOffset, length) {
- return from(null, value, encodingOrOffset, length)
-}
-
-if (Buffer.TYPED_ARRAY_SUPPORT) {
- Buffer.prototype.__proto__ = Uint8Array.prototype
- Buffer.__proto__ = Uint8Array
- if (typeof Symbol !== 'undefined' && Symbol.species &&
- Buffer[Symbol.species] === Buffer) {
- // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
- Object.defineProperty(Buffer, Symbol.species, {
- value: null,
- configurable: true
- })
- }
-}
-
-function assertSize (size) {
- if (typeof size !== 'number') {
- throw new TypeError('"size" argument must be a number')
- } else if (size < 0) {
- throw new RangeError('"size" argument must not be negative')
- }
-}
-
-function alloc (that, size, fill, encoding) {
- assertSize(size)
- if (size <= 0) {
- return createBuffer(that, size)
- }
- if (fill !== undefined) {
- // Only pay attention to encoding if it's a string. This
- // prevents accidentally sending in a number that would
- // be interpretted as a start offset.
- return typeof encoding === 'string'
- ? createBuffer(that, size).fill(fill, encoding)
- : createBuffer(that, size).fill(fill)
- }
- return createBuffer(that, size)
-}
-
-/**
- * Creates a new filled Buffer instance.
- * alloc(size[, fill[, encoding]])
- **/
-Buffer.alloc = function (size, fill, encoding) {
- return alloc(null, size, fill, encoding)
-}
-
-function allocUnsafe (that, size) {
- assertSize(size)
- that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) {
- for (var i = 0; i < size; ++i) {
- that[i] = 0
- }
- }
- return that
-}
-
-/**
- * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
- * */
-Buffer.allocUnsafe = function (size) {
- return allocUnsafe(null, size)
-}
-/**
- * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
- */
-Buffer.allocUnsafeSlow = function (size) {
- return allocUnsafe(null, size)
-}
-
-function fromString (that, string, encoding) {
- if (typeof encoding !== 'string' || encoding === '') {
- encoding = 'utf8'
- }
-
- if (!Buffer.isEncoding(encoding)) {
- throw new TypeError('"encoding" must be a valid string encoding')
- }
-
- var length = byteLength(string, encoding) | 0
- that = createBuffer(that, length)
-
- var actual = that.write(string, encoding)
-
- if (actual !== length) {
- // Writing a hex string, for example, that contains invalid characters will
- // cause everything after the first invalid character to be ignored. (e.g.
- // 'abxxcd' will be treated as 'ab')
- that = that.slice(0, actual)
- }
-
- return that
-}
-
-function fromArrayLike (that, array) {
- var length = array.length < 0 ? 0 : checked(array.length) | 0
- that = createBuffer(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
- }
- return that
-}
-
-function fromArrayBuffer (that, array, byteOffset, length) {
- array.byteLength // this throws if `array` is not a valid ArrayBuffer
-
- if (byteOffset < 0 || array.byteLength < byteOffset) {
- throw new RangeError('\'offset\' is out of bounds')
- }
-
- if (array.byteLength < byteOffset + (length || 0)) {
- throw new RangeError('\'length\' is out of bounds')
- }
-
- if (byteOffset === undefined && length === undefined) {
- array = new Uint8Array(array)
- } else if (length === undefined) {
- array = new Uint8Array(array, byteOffset)
- } else {
- array = new Uint8Array(array, byteOffset, length)
- }
-
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- that = array
- that.__proto__ = Buffer.prototype
- } else {
- // Fallback: Return an object instance of the Buffer class
- that = fromArrayLike(that, array)
- }
- return that
-}
-
-function fromObject (that, obj) {
- if (Buffer.isBuffer(obj)) {
- var len = checked(obj.length) | 0
- that = createBuffer(that, len)
-
- if (that.length === 0) {
- return that
- }
-
- obj.copy(that, 0, 0, len)
- return that
- }
-
- if (obj) {
- if ((typeof ArrayBuffer !== 'undefined' &&
- obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
- if (typeof obj.length !== 'number' || isnan(obj.length)) {
- return createBuffer(that, 0)
- }
- return fromArrayLike(that, obj)
- }
-
- if (obj.type === 'Buffer' && isArray(obj.data)) {
- return fromArrayLike(that, obj.data)
- }
- }
-
- throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
-}
-
-function checked (length) {
- // Note: cannot use `length < kMaxLength()` here because that fails when
- // length is NaN (which is otherwise coerced to zero.)
- if (length >= kMaxLength()) {
- throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
- 'size: 0x' + kMaxLength().toString(16) + ' bytes')
- }
- return length | 0
-}
-
-function SlowBuffer (length) {
- if (+length != length) { // eslint-disable-line eqeqeq
- length = 0
- }
- return Buffer.alloc(+length)
-}
-
-Buffer.isBuffer = function isBuffer (b) {
- return !!(b != null && b._isBuffer)
-}
-
-Buffer.compare = function compare (a, b) {
- if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
- throw new TypeError('Arguments must be Buffers')
- }
-
- if (a === b) return 0
-
- var x = a.length
- var y = b.length
-
- for (var i = 0, len = Math.min(x, y); i < len; ++i) {
- if (a[i] !== b[i]) {
- x = a[i]
- y = b[i]
- break
- }
- }
-
- if (x < y) return -1
- if (y < x) return 1
- return 0
-}
-
-Buffer.isEncoding = function isEncoding (encoding) {
- switch (String(encoding).toLowerCase()) {
- case 'hex':
- case 'utf8':
- case 'utf-8':
- case 'ascii':
- case 'latin1':
- case 'binary':
- case 'base64':
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return true
- default:
- return false
- }
-}
-
-Buffer.concat = function concat (list, length) {
- if (!isArray(list)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
-
- if (list.length === 0) {
- return Buffer.alloc(0)
- }
-
- var i
- if (length === undefined) {
- length = 0
- for (i = 0; i < list.length; ++i) {
- length += list[i].length
- }
- }
-
- var buffer = Buffer.allocUnsafe(length)
- var pos = 0
- for (i = 0; i < list.length; ++i) {
- var buf = list[i]
- if (!Buffer.isBuffer(buf)) {
- throw new TypeError('"list" argument must be an Array of Buffers')
- }
- buf.copy(buffer, pos)
- pos += buf.length
- }
- return buffer
-}
-
-function byteLength (string, encoding) {
- if (Buffer.isBuffer(string)) {
- return string.length
- }
- if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
- (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
- return string.byteLength
- }
- if (typeof string !== 'string') {
- string = '' + string
- }
-
- var len = string.length
- if (len === 0) return 0
-
- // Use a for loop to avoid recursion
- var loweredCase = false
- for (;;) {
- switch (encoding) {
- case 'ascii':
- case 'latin1':
- case 'binary':
- return len
- case 'utf8':
- case 'utf-8':
- case undefined:
- return utf8ToBytes(string).length
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return len * 2
- case 'hex':
- return len >>> 1
- case 'base64':
- return base64ToBytes(string).length
- default:
- if (loweredCase) return utf8ToBytes(string).length // assume utf8
- encoding = ('' + encoding).toLowerCase()
- loweredCase = true
- }
- }
-}
-Buffer.byteLength = byteLength
-
-function slowToString (encoding, start, end) {
- var loweredCase = false
-
- // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
- // property of a typed array.
-
- // This behaves neither like String nor Uint8Array in that we set start/end
- // to their upper/lower bounds if the value passed is out of range.
- // undefined is handled specially as per ECMA-262 6th Edition,
- // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
- if (start === undefined || start < 0) {
- start = 0
- }
- // Return early if start > this.length. Done here to prevent potential uint32
- // coercion fail below.
- if (start > this.length) {
- return ''
- }
-
- if (end === undefined || end > this.length) {
- end = this.length
- }
-
- if (end <= 0) {
- return ''
- }
-
- // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
- end >>>= 0
- start >>>= 0
-
- if (end <= start) {
- return ''
- }
-
- if (!encoding) encoding = 'utf8'
-
- while (true) {
- switch (encoding) {
- case 'hex':
- return hexSlice(this, start, end)
-
- case 'utf8':
- case 'utf-8':
- return utf8Slice(this, start, end)
-
- case 'ascii':
- return asciiSlice(this, start, end)
-
- case 'latin1':
- case 'binary':
- return latin1Slice(this, start, end)
-
- case 'base64':
- return base64Slice(this, start, end)
-
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return utf16leSlice(this, start, end)
-
- default:
- if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
- encoding = (encoding + '').toLowerCase()
- loweredCase = true
- }
- }
-}
-
-// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
-// Buffer instances.
-Buffer.prototype._isBuffer = true
-
-function swap (b, n, m) {
- var i = b[n]
- b[n] = b[m]
- b[m] = i
-}
-
-Buffer.prototype.swap16 = function swap16 () {
- var len = this.length
- if (len % 2 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 16-bits')
- }
- for (var i = 0; i < len; i += 2) {
- swap(this, i, i + 1)
- }
- return this
-}
-
-Buffer.prototype.swap32 = function swap32 () {
- var len = this.length
- if (len % 4 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 32-bits')
- }
- for (var i = 0; i < len; i += 4) {
- swap(this, i, i + 3)
- swap(this, i + 1, i + 2)
- }
- return this
-}
-
-Buffer.prototype.swap64 = function swap64 () {
- var len = this.length
- if (len % 8 !== 0) {
- throw new RangeError('Buffer size must be a multiple of 64-bits')
- }
- for (var i = 0; i < len; i += 8) {
- swap(this, i, i + 7)
- swap(this, i + 1, i + 6)
- swap(this, i + 2, i + 5)
- swap(this, i + 3, i + 4)
- }
- return this
-}
-
-Buffer.prototype.toString = function toString () {
- var length = this.length | 0
- if (length === 0) return ''
- if (arguments.length === 0) return utf8Slice(this, 0, length)
- return slowToString.apply(this, arguments)
-}
-
-Buffer.prototype.equals = function equals (b) {
- if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
- if (this === b) return true
- return Buffer.compare(this, b) === 0
-}
-
-Buffer.prototype.inspect = function inspect () {
- var str = ''
- var max = exports.INSPECT_MAX_BYTES
- if (this.length > 0) {
- str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
- if (this.length > max) str += ' ... '
- }
- return ''
-}
-
-Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
- if (!Buffer.isBuffer(target)) {
- throw new TypeError('Argument must be a Buffer')
- }
-
- if (start === undefined) {
- start = 0
- }
- if (end === undefined) {
- end = target ? target.length : 0
- }
- if (thisStart === undefined) {
- thisStart = 0
- }
- if (thisEnd === undefined) {
- thisEnd = this.length
- }
-
- if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
- throw new RangeError('out of range index')
- }
-
- if (thisStart >= thisEnd && start >= end) {
- return 0
- }
- if (thisStart >= thisEnd) {
- return -1
- }
- if (start >= end) {
- return 1
- }
-
- start >>>= 0
- end >>>= 0
- thisStart >>>= 0
- thisEnd >>>= 0
-
- if (this === target) return 0
-
- var x = thisEnd - thisStart
- var y = end - start
- var len = Math.min(x, y)
-
- var thisCopy = this.slice(thisStart, thisEnd)
- var targetCopy = target.slice(start, end)
-
- for (var i = 0; i < len; ++i) {
- if (thisCopy[i] !== targetCopy[i]) {
- x = thisCopy[i]
- y = targetCopy[i]
- break
- }
- }
-
- if (x < y) return -1
- if (y < x) return 1
- return 0
-}
-
-// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
-// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
-//
-// Arguments:
-// - buffer - a Buffer to search
-// - val - a string, Buffer, or number
-// - byteOffset - an index into `buffer`; will be clamped to an int32
-// - encoding - an optional encoding, relevant is val is a string
-// - dir - true for indexOf, false for lastIndexOf
-function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
- // Empty buffer means no match
- if (buffer.length === 0) return -1
-
- // Normalize byteOffset
- if (typeof byteOffset === 'string') {
- encoding = byteOffset
- byteOffset = 0
- } else if (byteOffset > 0x7fffffff) {
- byteOffset = 0x7fffffff
- } else if (byteOffset < -0x80000000) {
- byteOffset = -0x80000000
- }
- byteOffset = +byteOffset // Coerce to Number.
- if (isNaN(byteOffset)) {
- // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
- byteOffset = dir ? 0 : (buffer.length - 1)
- }
-
- // Normalize byteOffset: negative offsets start from the end of the buffer
- if (byteOffset < 0) byteOffset = buffer.length + byteOffset
- if (byteOffset >= buffer.length) {
- if (dir) return -1
- else byteOffset = buffer.length - 1
- } else if (byteOffset < 0) {
- if (dir) byteOffset = 0
- else return -1
- }
-
- // Normalize val
- if (typeof val === 'string') {
- val = Buffer.from(val, encoding)
- }
-
- // Finally, search either indexOf (if dir is true) or lastIndexOf
- if (Buffer.isBuffer(val)) {
- // Special case: looking for empty string/buffer always fails
- if (val.length === 0) {
- return -1
- }
- return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
- } else if (typeof val === 'number') {
- val = val & 0xFF // Search for a byte value [0-255]
- if (Buffer.TYPED_ARRAY_SUPPORT &&
- typeof Uint8Array.prototype.indexOf === 'function') {
- if (dir) {
- return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
- } else {
- return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
- }
- }
- return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
- }
-
- throw new TypeError('val must be string, number or Buffer')
-}
-
-function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
- var indexSize = 1
- var arrLength = arr.length
- var valLength = val.length
-
- if (encoding !== undefined) {
- encoding = String(encoding).toLowerCase()
- if (encoding === 'ucs2' || encoding === 'ucs-2' ||
- encoding === 'utf16le' || encoding === 'utf-16le') {
- if (arr.length < 2 || val.length < 2) {
- return -1
- }
- indexSize = 2
- arrLength /= 2
- valLength /= 2
- byteOffset /= 2
- }
- }
-
- function read (buf, i) {
- if (indexSize === 1) {
- return buf[i]
- } else {
- return buf.readUInt16BE(i * indexSize)
- }
- }
-
- var i
- if (dir) {
- var foundIndex = -1
- for (i = byteOffset; i < arrLength; i++) {
- if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
- if (foundIndex === -1) foundIndex = i
- if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
- } else {
- if (foundIndex !== -1) i -= i - foundIndex
- foundIndex = -1
- }
- }
- } else {
- if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
- for (i = byteOffset; i >= 0; i--) {
- var found = true
- for (var j = 0; j < valLength; j++) {
- if (read(arr, i + j) !== read(val, j)) {
- found = false
- break
- }
- }
- if (found) return i
- }
- }
-
- return -1
-}
-
-Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
- return this.indexOf(val, byteOffset, encoding) !== -1
-}
-
-Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
- return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
-}
-
-Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
- return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
-}
-
-function hexWrite (buf, string, offset, length) {
- offset = Number(offset) || 0
- var remaining = buf.length - offset
- if (!length) {
- length = remaining
- } else {
- length = Number(length)
- if (length > remaining) {
- length = remaining
- }
- }
-
- // must be an even number of digits
- var strLen = string.length
- if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
-
- if (length > strLen / 2) {
- length = strLen / 2
- }
- for (var i = 0; i < length; ++i) {
- var parsed = parseInt(string.substr(i * 2, 2), 16)
- if (isNaN(parsed)) return i
- buf[offset + i] = parsed
- }
- return i
-}
-
-function utf8Write (buf, string, offset, length) {
- return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
-}
-
-function asciiWrite (buf, string, offset, length) {
- return blitBuffer(asciiToBytes(string), buf, offset, length)
-}
-
-function latin1Write (buf, string, offset, length) {
- return asciiWrite(buf, string, offset, length)
-}
-
-function base64Write (buf, string, offset, length) {
- return blitBuffer(base64ToBytes(string), buf, offset, length)
-}
-
-function ucs2Write (buf, string, offset, length) {
- return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
-}
-
-Buffer.prototype.write = function write (string, offset, length, encoding) {
- // Buffer#write(string)
- if (offset === undefined) {
- encoding = 'utf8'
- length = this.length
- offset = 0
- // Buffer#write(string, encoding)
- } else if (length === undefined && typeof offset === 'string') {
- encoding = offset
- length = this.length
- offset = 0
- // Buffer#write(string, offset[, length][, encoding])
- } else if (isFinite(offset)) {
- offset = offset | 0
- if (isFinite(length)) {
- length = length | 0
- if (encoding === undefined) encoding = 'utf8'
- } else {
- encoding = length
- length = undefined
- }
- // legacy write(string, encoding, offset, length) - remove in v0.13
- } else {
- throw new Error(
- 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
- )
- }
-
- var remaining = this.length - offset
- if (length === undefined || length > remaining) length = remaining
-
- if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
- throw new RangeError('Attempt to write outside buffer bounds')
- }
-
- if (!encoding) encoding = 'utf8'
-
- var loweredCase = false
- for (;;) {
- switch (encoding) {
- case 'hex':
- return hexWrite(this, string, offset, length)
-
- case 'utf8':
- case 'utf-8':
- return utf8Write(this, string, offset, length)
-
- case 'ascii':
- return asciiWrite(this, string, offset, length)
-
- case 'latin1':
- case 'binary':
- return latin1Write(this, string, offset, length)
-
- case 'base64':
- // Warning: maxLength not taken into account in base64Write
- return base64Write(this, string, offset, length)
-
- case 'ucs2':
- case 'ucs-2':
- case 'utf16le':
- case 'utf-16le':
- return ucs2Write(this, string, offset, length)
-
- default:
- if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
- encoding = ('' + encoding).toLowerCase()
- loweredCase = true
- }
- }
-}
-
-Buffer.prototype.toJSON = function toJSON () {
- return {
- type: 'Buffer',
- data: Array.prototype.slice.call(this._arr || this, 0)
- }
-}
-
-function base64Slice (buf, start, end) {
- if (start === 0 && end === buf.length) {
- return base64.fromByteArray(buf)
- } else {
- return base64.fromByteArray(buf.slice(start, end))
- }
-}
-
-function utf8Slice (buf, start, end) {
- end = Math.min(buf.length, end)
- var res = []
-
- var i = start
- while (i < end) {
- var firstByte = buf[i]
- var codePoint = null
- var bytesPerSequence = (firstByte > 0xEF) ? 4
- : (firstByte > 0xDF) ? 3
- : (firstByte > 0xBF) ? 2
- : 1
-
- if (i + bytesPerSequence <= end) {
- var secondByte, thirdByte, fourthByte, tempCodePoint
-
- switch (bytesPerSequence) {
- case 1:
- if (firstByte < 0x80) {
- codePoint = firstByte
- }
- break
- case 2:
- secondByte = buf[i + 1]
- if ((secondByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
- if (tempCodePoint > 0x7F) {
- codePoint = tempCodePoint
- }
- }
- break
- case 3:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
- if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
- codePoint = tempCodePoint
- }
- }
- break
- case 4:
- secondByte = buf[i + 1]
- thirdByte = buf[i + 2]
- fourthByte = buf[i + 3]
- if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
- tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
- if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
- codePoint = tempCodePoint
- }
- }
- }
- }
-
- if (codePoint === null) {
- // we did not generate a valid codePoint so insert a
- // replacement char (U+FFFD) and advance only 1 byte
- codePoint = 0xFFFD
- bytesPerSequence = 1
- } else if (codePoint > 0xFFFF) {
- // encode to utf16 (surrogate pair dance)
- codePoint -= 0x10000
- res.push(codePoint >>> 10 & 0x3FF | 0xD800)
- codePoint = 0xDC00 | codePoint & 0x3FF
- }
-
- res.push(codePoint)
- i += bytesPerSequence
- }
-
- return decodeCodePointsArray(res)
-}
-
-// Based on http://stackoverflow.com/a/22747272/680742, the browser with
-// the lowest limit is Chrome, with 0x10000 args.
-// We go 1 magnitude less, for safety
-var MAX_ARGUMENTS_LENGTH = 0x1000
-
-function decodeCodePointsArray (codePoints) {
- var len = codePoints.length
- if (len <= MAX_ARGUMENTS_LENGTH) {
- return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
- }
-
- // Decode in chunks to avoid "call stack size exceeded".
- var res = ''
- var i = 0
- while (i < len) {
- res += String.fromCharCode.apply(
- String,
- codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
- )
- }
- return res
-}
-
-function asciiSlice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
-
- for (var i = start; i < end; ++i) {
- ret += String.fromCharCode(buf[i] & 0x7F)
- }
- return ret
-}
-
-function latin1Slice (buf, start, end) {
- var ret = ''
- end = Math.min(buf.length, end)
-
- for (var i = start; i < end; ++i) {
- ret += String.fromCharCode(buf[i])
- }
- return ret
-}
-
-function hexSlice (buf, start, end) {
- var len = buf.length
-
- if (!start || start < 0) start = 0
- if (!end || end < 0 || end > len) end = len
-
- var out = ''
- for (var i = start; i < end; ++i) {
- out += toHex(buf[i])
- }
- return out
-}
-
-function utf16leSlice (buf, start, end) {
- var bytes = buf.slice(start, end)
- var res = ''
- for (var i = 0; i < bytes.length; i += 2) {
- res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
- }
- return res
-}
-
-Buffer.prototype.slice = function slice (start, end) {
- var len = this.length
- start = ~~start
- end = end === undefined ? len : ~~end
-
- if (start < 0) {
- start += len
- if (start < 0) start = 0
- } else if (start > len) {
- start = len
- }
-
- if (end < 0) {
- end += len
- if (end < 0) end = 0
- } else if (end > len) {
- end = len
- }
-
- if (end < start) end = start
-
- var newBuf
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- newBuf = this.subarray(start, end)
- newBuf.__proto__ = Buffer.prototype
- } else {
- var sliceLen = end - start
- newBuf = new Buffer(sliceLen, undefined)
- for (var i = 0; i < sliceLen; ++i) {
- newBuf[i] = this[i + start]
- }
- }
-
- return newBuf
-}
-
-/*
- * Need to make sure that buffer isn't trying to write out of bounds.
- */
-function checkOffset (offset, ext, length) {
- if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
- if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
-}
-
-Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
-
- return val
-}
-
-Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- checkOffset(offset, byteLength, this.length)
- }
-
- var val = this[offset + --byteLength]
- var mul = 1
- while (byteLength > 0 && (mul *= 0x100)) {
- val += this[offset + --byteLength] * mul
- }
-
- return val
-}
-
-Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- return this[offset]
-}
-
-Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return this[offset] | (this[offset + 1] << 8)
-}
-
-Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- return (this[offset] << 8) | this[offset + 1]
-}
-
-Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return ((this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16)) +
- (this[offset + 3] * 0x1000000)
-}
-
-Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset] * 0x1000000) +
- ((this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- this[offset + 3])
-}
-
-Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var val = this[offset]
- var mul = 1
- var i = 0
- while (++i < byteLength && (mul *= 0x100)) {
- val += this[offset + i] * mul
- }
- mul *= 0x80
-
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
-
- return val
-}
-
-Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) checkOffset(offset, byteLength, this.length)
-
- var i = byteLength
- var mul = 1
- var val = this[offset + --i]
- while (i > 0 && (mul *= 0x100)) {
- val += this[offset + --i] * mul
- }
- mul *= 0x80
-
- if (val >= mul) val -= Math.pow(2, 8 * byteLength)
-
- return val
-}
-
-Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 1, this.length)
- if (!(this[offset] & 0x80)) return (this[offset])
- return ((0xff - this[offset] + 1) * -1)
-}
-
-Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset] | (this[offset + 1] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
-}
-
-Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 2, this.length)
- var val = this[offset + 1] | (this[offset] << 8)
- return (val & 0x8000) ? val | 0xFFFF0000 : val
-}
-
-Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset]) |
- (this[offset + 1] << 8) |
- (this[offset + 2] << 16) |
- (this[offset + 3] << 24)
-}
-
-Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
-
- return (this[offset] << 24) |
- (this[offset + 1] << 16) |
- (this[offset + 2] << 8) |
- (this[offset + 3])
-}
-
-Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, true, 23, 4)
-}
-
-Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 4, this.length)
- return ieee754.read(this, offset, false, 23, 4)
-}
-
-Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, true, 52, 8)
-}
-
-Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
- if (!noAssert) checkOffset(offset, 8, this.length)
- return ieee754.read(this, offset, false, 52, 8)
-}
-
-function checkInt (buf, value, offset, ext, max, min) {
- if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
- if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
-}
-
-Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
-
- var mul = 1
- var i = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- byteLength = byteLength | 0
- if (!noAssert) {
- var maxBytes = Math.pow(2, 8 * byteLength) - 1
- checkInt(this, value, offset, byteLength, maxBytes, 0)
- }
-
- var i = byteLength - 1
- var mul = 1
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- this[offset + i] = (value / mul) & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- this[offset] = (value & 0xff)
- return offset + 1
-}
-
-function objectWriteUInt16 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
- buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
- (littleEndian ? i : 1 - i) * 8
- }
-}
-
-Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
-}
-
-function objectWriteUInt32 (buf, value, offset, littleEndian) {
- if (value < 0) value = 0xffffffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
- buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
- }
-}
-
-Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset + 3] = (value >>> 24)
- this[offset + 2] = (value >>> 16)
- this[offset + 1] = (value >>> 8)
- this[offset] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
-
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
-
- var i = 0
- var mul = 1
- var sub = 0
- this[offset] = value & 0xFF
- while (++i < byteLength && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) {
- var limit = Math.pow(2, 8 * byteLength - 1)
-
- checkInt(this, value, offset, byteLength, limit - 1, -limit)
- }
-
- var i = byteLength - 1
- var mul = 1
- var sub = 0
- this[offset + i] = value & 0xFF
- while (--i >= 0 && (mul *= 0x100)) {
- if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
- sub = 1
- }
- this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
- }
-
- return offset + byteLength
-}
-
-Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
- if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
- if (value < 0) value = 0xff + value + 1
- this[offset] = (value & 0xff)
- return offset + 1
-}
-
-Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- } else {
- objectWriteUInt16(this, value, offset, true)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 8)
- this[offset + 1] = (value & 0xff)
- } else {
- objectWriteUInt16(this, value, offset, false)
- }
- return offset + 2
-}
-
-Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value & 0xff)
- this[offset + 1] = (value >>> 8)
- this[offset + 2] = (value >>> 16)
- this[offset + 3] = (value >>> 24)
- } else {
- objectWriteUInt32(this, value, offset, true)
- }
- return offset + 4
-}
-
-Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
- value = +value
- offset = offset | 0
- if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
- if (value < 0) value = 0xffffffff + value + 1
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- this[offset] = (value >>> 24)
- this[offset + 1] = (value >>> 16)
- this[offset + 2] = (value >>> 8)
- this[offset + 3] = (value & 0xff)
- } else {
- objectWriteUInt32(this, value, offset, false)
- }
- return offset + 4
-}
-
-function checkIEEE754 (buf, value, offset, ext, max, min) {
- if (offset + ext > buf.length) throw new RangeError('Index out of range')
- if (offset < 0) throw new RangeError('Index out of range')
-}
-
-function writeFloat (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
- }
- ieee754.write(buf, value, offset, littleEndian, 23, 4)
- return offset + 4
-}
-
-Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
- return writeFloat(this, value, offset, true, noAssert)
-}
-
-Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
- return writeFloat(this, value, offset, false, noAssert)
-}
-
-function writeDouble (buf, value, offset, littleEndian, noAssert) {
- if (!noAssert) {
- checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
- }
- ieee754.write(buf, value, offset, littleEndian, 52, 8)
- return offset + 8
-}
-
-Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
- return writeDouble(this, value, offset, true, noAssert)
-}
-
-Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
- return writeDouble(this, value, offset, false, noAssert)
-}
-
-// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
-Buffer.prototype.copy = function copy (target, targetStart, start, end) {
- if (!start) start = 0
- if (!end && end !== 0) end = this.length
- if (targetStart >= target.length) targetStart = target.length
- if (!targetStart) targetStart = 0
- if (end > 0 && end < start) end = start
-
- // Copy 0 bytes; we're done
- if (end === start) return 0
- if (target.length === 0 || this.length === 0) return 0
-
- // Fatal error conditions
- if (targetStart < 0) {
- throw new RangeError('targetStart out of bounds')
- }
- if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
- if (end < 0) throw new RangeError('sourceEnd out of bounds')
-
- // Are we oob?
- if (end > this.length) end = this.length
- if (target.length - targetStart < end - start) {
- end = target.length - targetStart + start
- }
-
- var len = end - start
- var i
-
- if (this === target && start < targetStart && targetStart < end) {
- // descending copy from end
- for (i = len - 1; i >= 0; --i) {
- target[i + targetStart] = this[i + start]
- }
- } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
- // ascending copy from start
- for (i = 0; i < len; ++i) {
- target[i + targetStart] = this[i + start]
- }
- } else {
- Uint8Array.prototype.set.call(
- target,
- this.subarray(start, start + len),
- targetStart
- )
- }
-
- return len
-}
-
-// Usage:
-// buffer.fill(number[, offset[, end]])
-// buffer.fill(buffer[, offset[, end]])
-// buffer.fill(string[, offset[, end]][, encoding])
-Buffer.prototype.fill = function fill (val, start, end, encoding) {
- // Handle string cases:
- if (typeof val === 'string') {
- if (typeof start === 'string') {
- encoding = start
- start = 0
- end = this.length
- } else if (typeof end === 'string') {
- encoding = end
- end = this.length
- }
- if (val.length === 1) {
- var code = val.charCodeAt(0)
- if (code < 256) {
- val = code
- }
- }
- if (encoding !== undefined && typeof encoding !== 'string') {
- throw new TypeError('encoding must be a string')
- }
- if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
- throw new TypeError('Unknown encoding: ' + encoding)
- }
- } else if (typeof val === 'number') {
- val = val & 255
- }
-
- // Invalid ranges are not set to a default, so can range check early.
- if (start < 0 || this.length < start || this.length < end) {
- throw new RangeError('Out of range index')
- }
-
- if (end <= start) {
- return this
- }
-
- start = start >>> 0
- end = end === undefined ? this.length : end >>> 0
-
- if (!val) val = 0
-
- var i
- if (typeof val === 'number') {
- for (i = start; i < end; ++i) {
- this[i] = val
- }
- } else {
- var bytes = Buffer.isBuffer(val)
- ? val
- : utf8ToBytes(new Buffer(val, encoding).toString())
- var len = bytes.length
- for (i = 0; i < end - start; ++i) {
- this[i + start] = bytes[i % len]
- }
- }
-
- return this
-}
-
-// HELPER FUNCTIONS
-// ================
-
-var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
-
-function base64clean (str) {
- // Node strips out invalid characters like \n and \t from the string, base64-js does not
- str = stringtrim(str).replace(INVALID_BASE64_RE, '')
- // Node converts strings with length < 2 to ''
- if (str.length < 2) return ''
- // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
- while (str.length % 4 !== 0) {
- str = str + '='
- }
- return str
-}
-
-function stringtrim (str) {
- if (str.trim) return str.trim()
- return str.replace(/^\s+|\s+$/g, '')
-}
-
-function toHex (n) {
- if (n < 16) return '0' + n.toString(16)
- return n.toString(16)
-}
-
-function utf8ToBytes (string, units) {
- units = units || Infinity
- var codePoint
- var length = string.length
- var leadSurrogate = null
- var bytes = []
-
- for (var i = 0; i < length; ++i) {
- codePoint = string.charCodeAt(i)
-
- // is surrogate component
- if (codePoint > 0xD7FF && codePoint < 0xE000) {
- // last char was a lead
- if (!leadSurrogate) {
- // no lead yet
- if (codePoint > 0xDBFF) {
- // unexpected trail
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- } else if (i + 1 === length) {
- // unpaired lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- continue
- }
-
- // valid lead
- leadSurrogate = codePoint
-
- continue
- }
-
- // 2 leads in a row
- if (codePoint < 0xDC00) {
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- leadSurrogate = codePoint
- continue
- }
-
- // valid surrogate pair
- codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
- } else if (leadSurrogate) {
- // valid bmp char, but last char was a lead
- if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
- }
-
- leadSurrogate = null
-
- // encode utf8
- if (codePoint < 0x80) {
- if ((units -= 1) < 0) break
- bytes.push(codePoint)
- } else if (codePoint < 0x800) {
- if ((units -= 2) < 0) break
- bytes.push(
- codePoint >> 0x6 | 0xC0,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x10000) {
- if ((units -= 3) < 0) break
- bytes.push(
- codePoint >> 0xC | 0xE0,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else if (codePoint < 0x110000) {
- if ((units -= 4) < 0) break
- bytes.push(
- codePoint >> 0x12 | 0xF0,
- codePoint >> 0xC & 0x3F | 0x80,
- codePoint >> 0x6 & 0x3F | 0x80,
- codePoint & 0x3F | 0x80
- )
- } else {
- throw new Error('Invalid code point')
- }
- }
-
- return bytes
-}
-
-function asciiToBytes (str) {
- var byteArray = []
- for (var i = 0; i < str.length; ++i) {
- // Node's code seems to be doing this and not & 0x7F..
- byteArray.push(str.charCodeAt(i) & 0xFF)
- }
- return byteArray
-}
-
-function utf16leToBytes (str, units) {
- var c, hi, lo
- var byteArray = []
- for (var i = 0; i < str.length; ++i) {
- if ((units -= 2) < 0) break
-
- c = str.charCodeAt(i)
- hi = c >> 8
- lo = c % 256
- byteArray.push(lo)
- byteArray.push(hi)
- }
-
- return byteArray
-}
-
-function base64ToBytes (str) {
- return base64.toByteArray(base64clean(str))
-}
-
-function blitBuffer (src, dst, offset, length) {
- for (var i = 0; i < length; ++i) {
- if ((i + offset >= dst.length) || (i >= src.length)) break
- dst[i + offset] = src[i]
- }
- return i
-}
-
-function isnan (val) {
- return val !== val // eslint-disable-line no-self-compare
-}
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(17)))
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports) {
-
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-// css base code, injected by the css-loader
-module.exports = function(useSourceMap) {
- var list = [];
-
- // return the list of modules as css string
- list.toString = function toString() {
- return this.map(function (item) {
- var content = cssWithMappingToString(item, useSourceMap);
- if(item[2]) {
- return "@media " + item[2] + "{" + content + "}";
- } else {
- return content;
- }
- }).join("");
- };
-
- // import a list of modules into the list
- list.i = function(modules, mediaQuery) {
- if(typeof modules === "string")
- modules = [[null, modules, ""]];
- var alreadyImportedModules = {};
- for(var i = 0; i < this.length; i++) {
- var id = this[i][0];
- if(typeof id === "number")
- alreadyImportedModules[id] = true;
- }
- for(i = 0; i < modules.length; i++) {
- var item = modules[i];
- // skip already imported module
- // this implementation is not 100% perfect for weird media query combinations
- // when a module is imported multiple times with different media queries.
- // I hope this will never occur (Hey this way we have smaller bundles)
- if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
- if(mediaQuery && !item[2]) {
- item[2] = mediaQuery;
- } else if(mediaQuery) {
- item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
- }
- list.push(item);
- }
- }
- };
- return list;
-};
-
-function cssWithMappingToString(item, useSourceMap) {
- var content = item[1] || '';
- var cssMapping = item[3];
- if (!cssMapping) {
- return content;
- }
-
- if (useSourceMap && typeof btoa === 'function') {
- var sourceMapping = toComment(cssMapping);
- var sourceURLs = cssMapping.sources.map(function (source) {
- return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
- });
-
- return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
- }
-
- return [content].join('\n');
-}
-
-// Adapted from convert-source-map (MIT)
-function toComment(sourceMap) {
- // eslint-disable-next-line no-undef
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
- var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
-
- return '/*# ' + data + ' */';
-}
-
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-
-var stylesInDom = {};
-
-var memoize = function (fn) {
- var memo;
-
- return function () {
- if (typeof memo === "undefined") memo = fn.apply(this, arguments);
- return memo;
- };
-};
-
-var isOldIE = memoize(function () {
- // Test for IE <= 9 as proposed by Browserhacks
- // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
- // Tests for existence of standard globals is to allow style-loader
- // to operate correctly into non-standard environments
- // @see https://github.com/webpack-contrib/style-loader/issues/177
- return window && document && document.all && !window.atob;
-});
-
-var getTarget = function (target, parent) {
- if (parent){
- return parent.querySelector(target);
- }
- return document.querySelector(target);
-};
-
-var getElement = (function (fn) {
- var memo = {};
-
- return function(target, parent) {
- // If passing function in options, then use it for resolve "head" element.
- // Useful for Shadow Root style i.e
- // {
- // insertInto: function () { return document.querySelector("#foo").shadowRoot }
- // }
- if (typeof target === 'function') {
- return target();
- }
- if (typeof memo[target] === "undefined") {
- var styleTarget = getTarget.call(this, target, parent);
- // Special case to return head of iframe instead of iframe itself
- if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
- try {
- // This will throw an exception if access to iframe is blocked
- // due to cross-origin restrictions
- styleTarget = styleTarget.contentDocument.head;
- } catch(e) {
- styleTarget = null;
- }
- }
- memo[target] = styleTarget;
- }
- return memo[target]
- };
-})();
-
-var singleton = null;
-var singletonCounter = 0;
-var stylesInsertedAtTop = [];
-
-var fixUrls = __webpack_require__(70);
-
-module.exports = function(list, options) {
- if (typeof DEBUG !== "undefined" && DEBUG) {
- if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
- }
-
- options = options || {};
-
- options.attrs = typeof options.attrs === "object" ? options.attrs : {};
-
- // Force single-tag solution on IE6-9, which has a hard limit on the # of