// ==UserScript==
// @name The Tale Extended
// @description Расширение базового функционала в браузерной игре Сказка
// @author standy <[email protected]>
// @version 0.5.3
// @include /^https?://the-tale.org/game/
// @run-at document-end
// @license MIT License
// @namespace the-tale-extended
// @grant none
// ==/UserScript==
var ext =
/******/ (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;
/******/
/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // 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 = 65);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony default export */ __webpack_exports__["a"] = {
fight: __webpack_require__(22),
peace: __webpack_require__(31),
hit: __webpack_require__(27),
might: __webpack_require__(29),
fire: __webpack_require__(23),
flame: __webpack_require__(24),
poisoncloud: __webpack_require__(33),
poison: __webpack_require__(32),
vampire: __webpack_require__(43),
reckless: __webpack_require__(34),
disorientation: __webpack_require__(21),
miss: __webpack_require__(30),
slow: __webpack_require__(36),
strength: __webpack_require__(38),
speed: __webpack_require__(37),
stunHit: __webpack_require__(40),
stun: __webpack_require__(39),
heal: __webpack_require__(26),
companion: `<span class="companion">${__webpack_require__(19)}</span>`,
god: `<span class="god-icon">${__webpack_require__(25)}</span>`,
trade: __webpack_require__(18),
rest: __webpack_require__(35),
loot: __webpack_require__(28),
death: __webpack_require__(20),
travel: __webpack_require__(41),
travelWagon: __webpack_require__(42),
};
/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony default export */ __webpack_exports__["a"] = {
heroName: '',
companionName: '',
};
/***/ }),
/* 2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__storage_storage__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__const_icons__ = __webpack_require__(0);
/* harmony export (immutable) */ __webpack_exports__["c"] = act;
/* harmony export (immutable) */ __webpack_exports__["a"] = actPositive;
/* harmony export (immutable) */ __webpack_exports__["b"] = actNegative;
function act(modificator, shortMsg) {
return `<span class="act ${modificator}">${shortMsg}</span>`;
}
function actPositive(actor, shortMsg) {
const isCompanion = actor === __WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].companionName;
const isPositive = isCompanion || actor === __WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].heroName;
return `<span class="act ${isPositive ? 'positive' : 'negative'}">${isCompanion ? __WEBPACK_IMPORTED_MODULE_1__const_icons__["a" /* default */].companion : ''}${shortMsg}</span>`;
}
function actNegative(actor, shortMsg) {
const isCompanion = actor === __WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].companionName;
const isPositive = !isCompanion && actor !== __WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].heroName;
return `<span class="act ${isPositive ? 'positive' : 'negative'}">${isCompanion ? __WEBPACK_IMPORTED_MODULE_1__const_icons__["a" /* default */].companion : ''}${shortMsg}</span>`;
}
/***/ }),
/* 3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (immutable) */ __webpack_exports__["a"] = sendNotify;
$('body').one('click', request);
function request() {
if (Notification.permission.toLowerCase() !== 'granted') {
Notification.requestPermission(permission => {
if (permission !== 'granted')
return false;
const notify = new Notification('Thanks for letting notify you');
return !!notify;
});
}
}
function generateRandomString() {
return Math.random().toString(36).slice(2);
}
let rndStr = generateRandomString();
function sendNotify(name, options) {
const d = new Date();
const h = d.getHours();
const m = d.getMinutes();
const time = `${h}:${m < 10 ? '0' + m : m}`;
const nt = new Notification(name, {
tag: options.tag + rndStr,
body: options.body + (options.addTime ? '\n' + time : ''),
icon: options.icon || (`${window.extPath}img/128.png`),
});
nt.onclick = nt.onclose = () => {
rndStr = generateRandomString();
};
}
/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_EventEmitter__ = __webpack_require__(5);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createTab; });
const $root = $('#pgf-diary-container').parent().parent();
const $navTabs = $root.children('.nav-tabs');
const $tabContent = $root.children('.tab-content');
const $tab = $(`<li><a href="#pgf-ext-container" class="pgf-ext-tab-button" data-toggle="tab">e</a></li>`).prependTo($navTabs);
const $container = $(`<div class="tab-pane log-block ext-container" id="pgf-ext-container">
<div class="ext-tabs"></div>
</div>`).appendTo($tabContent);
$tab.addClass('active').siblings().removeClass('active');
$container.addClass('active').siblings().removeClass('active');
const $extTabs = $container.find('.ext-tabs');
const tabs = [];
function createTab(title) {
const $tab = $(`<span class="ext-tab">${title}</span>`).appendTo($extTabs);
const $content = $(`<div class="ext-content"></div>`).appendTo($container);
const tab = {
$tab: $tab,
$content: $content,
onTabChange: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_EventEmitter__["a" /* default */])(),
};
tabs.push(tab);
$tab.on('click', () => {
toggleTab(tab);
});
if (tabs.length === 1)
toggleTab(tab);
return tab;
}
function toggleTab(tab) {
tabs.forEach(t => {
const isActive = t === tab;
t.onTabChange.emit(isActive);
t.$content.toggleClass('active', isActive);
t.$tab.toggleClass('active', isActive);
});
}
/***/ }),
/* 5 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
///<reference path="../typings.d.ts"/>
function EventEmitter() {
const callbacks = [];
const emitter = (callback => {
callbacks.push(callback);
});
emitter.emit = arg => {
for (let i = 0; i < callbacks.length; i++) {
const callback = callbacks[i];
callback(arg);
}
};
return emitter;
}
/* harmony default export */ __webpack_exports__["a"] = EventEmitter;
/***/ }),
/* 6 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tabs__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_EventEmitter__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__sets_auto__ = __webpack_require__(49);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__sets_game__ = __webpack_require__(50);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__notifications_sendNotify__ = __webpack_require__(3);
__WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].remove('settings');
class Settings {
constructor() {
this.tab = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__tabs__["a" /* createTab */])(`настройки`);
this.$root = this.tab.$content;
this.settingsValues = __WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].get('ext_settings') || {};
this.deps = {};
this._onNamedSettingChange = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils_EventEmitter__["a" /* default */])();
this.onNamedSettingChange = (settingName, callback) => {
this._onNamedSettingChange(({ name, value }) => {
if (name === settingName) {
callback(value);
}
});
};
this.onCleanup = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils_EventEmitter__["a" /* default */])();
this.drawInput = (st) => {
const settingsValues = this.settingsValues;
let html = '';
if (st.isToggle || st.type === 'checkbox') {
html = `<input type="checkbox" data-name="${st.name}" ${settingsValues[st.name] ? 'checked' : ''}> `;
}
else if (st.type === 'text' || st.type === 'num') {
html =
`<input type="text"
class="input-tiny input-tiny-${st.type}"
data-name="${st.name}"
data-type="${st.type}"
${settingsValues[st.name]
? ' value="' + settingsValues[st.name] + '"'
: ''}>`;
if (st.addOn) {
html =
`<div class="input-wrap input-append">${html}<span class="add-on">${st.addOn}</span></div>`;
}
else {
html = `<div class="input-wrap input-wrap-inline">${html}</div>`;
}
}
return html;
};
this.addSets(__WEBPACK_IMPORTED_MODULE_4__sets_game__["a" /* setsGame */]);
this.addSets(__WEBPACK_IMPORTED_MODULE_3__sets_auto__["a" /* setsAuto */]);
console.log('settingsValues>', this.settingsValues);
this.handlersGame();
this.handlersAuto();
}
handlersGame() {
$('#test-notifications').on('click', e => {
e.preventDefault();
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__notifications_sendNotify__["a" /* sendNotify */])('Проверка уведомлений', {
body: 'Проверка уведомлений',
tag: 'test',
});
});
$('#reset-stats').on('click', e => {
if (!confirm('Очистить историю сообщений?')) {
return;
}
this.onCleanup.emit(undefined);
});
}
handlersAuto() {
this.$root.find('[data-auto]')
.on('click', function (e) {
e.preventDefault();
const type = $(this).data('auto');
const types = {
rest: {
autohelpIdle: 1,
autohelpDead: 1,
autohelpHp: 1,
autohelpHpBoss: 1,
autohelpEnergy: 1,
autohelpEnergyFight: 0,
autohelpEnergyRest: 0,
autohelpEnergyWalk: 1,
autohelpEnergyTradeMed: 1,
},
fight: {
autohelpIdle: 0,
autohelpDead: 0,
autohelpHp: 1,
autohelpHpBoss: 0,
autohelpEnergy: 1,
autohelpEnergyFight: 1,
autohelpEnergyRest: 0,
autohelpEnergyWalk: 0,
autohelpEnergyTradeMed: 0,
},
};
const conf = types[type];
for (const key in conf) {
if (conf.hasOwnProperty(key)) {
const value = !!conf[key];
const $input = getSettingInput(key);
$input.prop('checked', value).trigger('change');
}
}
});
}
addSets(sets) {
let html = '';
for (let i = 0; i < sets.length; i++) {
const st = sets[i];
this.settingsDefaults(st.fields);
html +=
`<div class="">
<div class="sets-header">${st.title || ''}</div>
${this.drawSetsGroup(st.fields)}
</div>`;
}
const $sets = $(`<div class="settings-form form-horizontal">${html}</div>`).appendTo(this.$root);
$sets.find('input')
.each((i, input) => {
const $input = $(input);
const data = Settings.getData($input);
this.checkDependencies(data);
})
.on('change', e => {
const $input = $(e.target);
const data = Settings.getData($input);
this.checkDependencies(data);
this.settingsValues[data.name] = data.value;
this._onNamedSettingChange.emit(data);
__WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].set('ext_settings', this.settingsValues);
console.log('settings: ', this.settingsValues);
});
}
static getData($input) {
const name = $input.data('name');
const isDisabled = $input.closest('.input-wrap').hasClass('disabled');
let value;
if (isDisabled) {
value = null;
}
if ($input.is('[type="checkbox"]')) {
value = $input.prop('checked');
}
else if ($input.data('type') === 'num') {
value = +$input.val();
}
else {
value = $input.val();
}
return { name, value };
}
/**
* Проставляет дефолтные значения и заполняет зависимости
*/
settingsDefaults(fields) {
if (!fields)
return [];
let childs = [];
for (let i = 0; i < fields.length; i++) {
const st = fields[i];
const name = st.name;
if (name) {
childs.push(name);
const storedValue = this.settingsValues[name];
this.settingsValues[name] = typeof storedValue === 'undefined' ? st.value : storedValue;
}
const subsChilds = [
...this.settingsDefaults(st.inputs),
...this.settingsDefaults(st.subs),
];
if (subsChilds.length && name) {
this.deps[name] = subsChilds.filter(x => x);
childs = subsChilds.concat(childs);
}
}
return childs;
}
drawSetsGroup(fields) {
let html = '';
for (let i = 0; i < fields.length; i++) {
const st = fields[i];
const label = `<div class="input-wrap ${st.isToggle ? 'checkbox' : ''}">
<label>${this.drawInput(st)}${st.label}</label>
${st.inputs
? st.inputs.map(this.drawInput).join('')
: ''}
</div>`;
html +=
`<div class="sets${st.isInline ? ' sets-inline' : ''}">
<div class="sets-title">
${label}
${st.note
? '<div class="note-block">' + st.note + '</div>'
: ''}
</div>
${st.subs ? this.drawSetsGroup(st.subs) : ''}
</div>`;
}
__WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].set('ext_settings', this.settingsValues);
return html;
}
checkDependencies(settingsData) {
const key = settingsData.name;
const value = settingsData.value;
if (!this.deps[key])
return;
this.deps[key].forEach(keyName => {
getSettingInput(keyName).closest('.input-wrap').toggleClass('disabled', !value); //.prop('disabled', !value);
});
}
}
/* harmony export (immutable) */ __webpack_exports__["a"] = Settings;
function getSettingInput(key) {
return $(`input[data-name="${key}"]`);
}
/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__const_icons__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__act__ = __webpack_require__(2);
///<reference path="../../typings.d.ts"/>
/* harmony default export */ __webpack_exports__["a"] = {
1: { fn: debuff(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].stun), type: 'inline' },
11: { fn: dot(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].flame), type: 'inline' },
12: { fn: dot(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].poisoncloud), type: 'inline' },
280000: { fn: damage(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].fire), type: 'inline' },
280001: { fn: miss(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].fire), type: 'inline' },
280002: { fn: cast(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].slow), type: 'inline' },
280003: { fn: damage(''), type: 'inline' },
280004: { fn: miss(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].hit), type: 'inline' },
280005: { fn: buff(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].miss), type: 'inline' },
280006: { fn: buff(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].strength), type: 'inline' },
280007: { fn: cast(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].poison), type: 'inline' },
280008: { fn: heal(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].heal), type: 'inline' },
280009: { fn: damage(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].stunHit), type: 'inline' },
280010: { fn: miss(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].stunHit), type: 'inline' },
280011: { fn: cast(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].disorientation), type: 'inline' },
280012: { fn: cast(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].speed), type: 'inline' },
280013: { fn: damage(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].might), type: 'inline' },
280014: { fn: miss(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].might), type: 'inline' },
280015: { fn: vampire(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].vampire), type: 'inline' },
280016: { fn: miss(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].vampire), type: 'inline' },
280017: { fn: companionHeal(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].heal), type: 'inline' },
280018: { fn: reckless(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].reckless), type: 'inline' },
280019: { fn: miss(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].reckless), type: 'inline' },
580003: { fn: companionDefended(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].miss), type: 'inline' },
580004: { fn: companionInjured(), type: 'inline' },
};
function damage(icon) {
// attacker атакующий
// damage количество урона
// defender защищающийся
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.attacker, `<span class="damage">${phraseData.damage}</span>${icon}`);
}
function miss(icon) {
// attacker атакующий
// defender защищающийся
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["b" /* actNegative */])(phraseData.attacker, `${icon}<span class="sub-icon">${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].miss}</span>`);
}
function cast(icon) {
// attacker атакующий
// defender защищающийся
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.attacker, `${icon}`);
}
function buff(icon) {
// actor герой или монстр
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.actor, `${icon}`);
}
function debuff(icon) {
// actor герой или монстр
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["b" /* actNegative */])(phraseData.actor, `${icon}`);
}
function reckless(icon) {
// attacker атакующий
// defender защищающийся
// damage количество урона
// attacker_damage количество урона по атакующему
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.attacker, `<span class="damage">${phraseData.damage}</span>${icon}<span class="damage-reverse">${phraseData.attacker_damage}</span>`);
}
function vampire(icon) {
// attacker атакующий
// health количество вылеченного здоровья
// damage количество урона
// defender защищающийся
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.attacker, `<span class="damage">${phraseData.damage}</span>${icon}<span class="vamp">${phraseData.health}</span>`);
}
function dot(icon) {
// damage количество урона
// actor герой или монстр
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["b" /* actNegative */])(phraseData.actor, `<span class="damage">${phraseData.damage}</span>${icon}`);
}
function heal(icon) {
// health количество вылеченного здоровья
// actor герой или монстр
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.actor, `<span class="heal">${phraseData.health}</span>${icon}`);
}
function companionHeal(icon) {
// actor герой или монстр
// companion спутник
// health количество вылеченного здоровья
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.actor, `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].companion}<span class="heal">${phraseData.health}</span>${icon}`);
}
function companionDefended(icon) {
// companion_owner владелец спутника
// companion спутник
// attacker атакущий спутника
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.companion_owner, `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].companion}${icon}`);
}
function companionInjured() {
// companion_owner владелец спутника
// companion спутник
// attacker атакущий спутника
// damage урон
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["a" /* actPositive */])(phraseData.attacker, `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].companion}${phraseData.damage}`);
}
/***/ }),
/* 8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
///<reference path="../typings.d.ts"/>
function set(name, messages) {
try {
pgf.base.settings.set(name, JSON.stringify(messages));
}
catch (e) {
console.warn('setLog', name, e);
}
}
function get(name) {
const g = pgf.base.settings.get(name);
return g ? JSON.parse(g) : null;
}
function remove(name) {
if (!window.localStorage)
return;
localStorage.removeItem(pgf.base.settings._prefix + '_' + name);
}
function size() {
let t = 0;
for (const x in localStorage) {
if (localStorage.hasOwnProperty(x)) {
t += localStorage[x].length * 2;
}
}
return t;
}
/* harmony default export */ __webpack_exports__["a"] = {
remove,
set,
get,
size,
};
/***/ }),
/* 9 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
///<reference path="../../typings.d.ts"/>
///<reference path="../../typings.d.ts"/>
const PHRASE_ID_TO_TEXT = {
1: 'Стан',
11: 'Горение',
12: 'Яд',
280000: 'Пиромания',
280001: 'Пиромания',
280002: 'Контроль',
280003: 'Удар',
280004: 'Удар',
280005: 'Последний шанс',
280006: 'Ярость',
280007: 'Ядовитость',
280008: 'Регенерация',
280009: 'Ошеломление',
280010: 'Ошеломление',
280011: 'Дезориентация',
280012: 'Ускорение',
280013: 'Сильный удар',
280014: 'Сильный удар',
280015: 'Вампиризм',
280016: 'Вампиризм',
280017: 'Лечение',
280018: 'Безрассудная атака',
280019: 'Безрассудная атака',
580003: 'Спутник увернулся',
580004: 'Спутник ранен',
};
/* harmony export (immutable) */ __webpack_exports__["b"] = PHRASE_ID_TO_TEXT;
const ACTION_TYPE_TEXTS = {
[0 /* idle */]: 'безделие',
[1 /* quest */]: 'задание',
[2 /* walk */]: 'путешествие между городами',
[3 /* fight */]: 'сражение 1x1 с монстром',
[4 /* dead */]: 'воскрешение',
[5 /* city */]: 'действия в городе',
[6 /* rest */]: 'отдых',
[7 /* equip */]: 'экипировка',
[8 /* trade */]: 'торговля',
[9 /* nearcity */]: 'путешествие около города',
[10 /* energy */]: 'восстановление энергии',
[11 /* noeffect */]: 'действие без эффекта на игру',
[12 /* proxy */]: 'прокси-действия для взаимодействия героев',
[13 /* pvp */]: 'PvP 1x1',
[15 /* companionHeal */]: 'уход за спутником',
};
/* harmony export (immutable) */ __webpack_exports__["a"] = ACTION_TYPE_TEXTS;
/***/ }),
/* 10 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
///<reference path="../../typings.d.ts"/>
///<reference path="../../typings.d.ts"/>
const PHRASE_NUMBER_KEYS = ['damage', 'health', 'coins', 'sell_price'];
/* harmony export (immutable) */ __webpack_exports__["a"] = PHRASE_NUMBER_KEYS;
/***/ }),
/* 11 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__js_tabs_settings_Settings_ts__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__js_tables_js__ = __webpack_require__(63);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__js_tracking_Tracking__ = __webpack_require__(53);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__js_tabs_short_ShortMessages__ = __webpack_require__(51);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__js_tabs_stats_Stats__ = __webpack_require__(52);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__js_tabs_settings_Settings__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__js_notifications_Notifications__ = __webpack_require__(48);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__js_auto_Auto__ = __webpack_require__(47);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ext_css__ = __webpack_require__(46);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ext_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__ext_css__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__js_utils_fixHtml__ = __webpack_require__(59);
const tracking = new __WEBPACK_IMPORTED_MODULE_2__js_tracking_Tracking__["a" /* default */]();
const shortMessages = new __WEBPACK_IMPORTED_MODULE_3__js_tabs_short_ShortMessages__["a" /* default */]();
const stats = new __WEBPACK_IMPORTED_MODULE_4__js_tabs_stats_Stats__["a" /* default */]();
const settings = new __WEBPACK_IMPORTED_MODULE_5__js_tabs_settings_Settings__["a" /* default */]();
const notifications = new __WEBPACK_IMPORTED_MODULE_6__js_notifications_Notifications__["a" /* default */]();
const auto = new __WEBPACK_IMPORTED_MODULE_7__js_auto_Auto__["a" /* default */]();
tracking.onLoad(() => {
const pastMessages = tracking.getMessagesLog();
shortMessages.addMessages(pastMessages.slice(pastMessages.length - 1000));
stats.addToStats(pastMessages);
});
tracking.onNewMessages(messages => {
shortMessages.addMessages(messages);
stats.addToStats(messages);
});
tracking.onNewTurn(hero => {
notifications.check(hero, settings.settingsValues);
auto.check(hero, settings.settingsValues);
});
settings.onCleanup(() => {
tracking.clear();
stats.clear();
shortMessages.clear();
});
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__js_utils_fixHtml__["a" /* fixHtml */])(settings.settingsValues.extHtml);
settings.onNamedSettingChange('extHtml', __WEBPACK_IMPORTED_MODULE_9__js_utils_fixHtml__["a" /* fixHtml */]);
tracking.setMaxLogLength(settings.settingsValues.maxLogLength);
settings.onNamedSettingChange('maxLogLength', tracking.setMaxLogLength);
window.ext = {
tracking,
shortMessages,
stats,
settings,
notifications,
};
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.byteLength = byteLength
exports.toByteArray = toByteArray
exports.fromByteArray = fromByteArray
var lookup = []
var revLookup = []
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for (var i = 0, len = code.length; i < len; ++i) {
lookup[i] = code[i]
revLookup[code.charCodeAt(i)] = i
}
revLookup['-'.charCodeAt(0)] = 62
revLookup['_'.charCodeAt(0)] = 63
function placeHoldersCount (b64) {
var len = b64.length
if (len % 4 > 0) {
throw new Error('Invalid string. Length must be a multiple of 4')
}
// the number of equal signs (place holders)
// if there are two placeholders, than the two characters before it
// represent one byte
// if there is only one, then the three characters before it represent 2 bytes
// this is just a cheap hack to not do indexOf twice
return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0
}
function byteLength (b64) {
// base64 is 4/3 + up to two characters of the original data
return b64.length * 3 / 4 - placeHoldersCount(b64)
}
function toByteArray (b64) {
var i, j, l, tmp, placeHolders, arr
var len = b64.length
placeHolders = placeHoldersCount(b64)
arr = new Arr(len * 3 / 4 - placeHolders)
// if there are placeholders, only get up to the last complete 4 chars
l = placeHolders > 0 ? len - 4 : len
var L = 0
for (i = 0, j = 0; i < l; i += 4, j += 3) {
tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
arr[L++] = (tmp >> 16) & 0xFF
arr[L++] = (tmp >> 8) & 0xFF
arr[L++] = tmp & 0xFF
}
if (placeHolders === 2) {
tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
arr[L++] = tmp & 0xFF
} else if (placeHolders === 1) {
tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
arr[L++] = (tmp >> 8) & 0xFF
arr[L++] = tmp & 0xFF
}
return arr
}
function tripletToBase64 (num) {
return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
}
function encodeChunk (uint8, start, end) {
var tmp
var output = []
for (var i = start; i < end; i += 3) {
tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
output.push(tripletToBase64(tmp))
}
return output.join('')
}
function fromByteArray (uint8) {
var tmp
var len = uint8.length
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
var output = ''
var parts = []
var maxChunkLength = 16383 // must be multiple of 3
// go through the array every three bytes, we'll deal with trailing stuff later
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
}
// pad the end with zeros, but make sure to not forget the extra bytes
if (extraBytes === 1) {
tmp = uint8[len - 1]
output += lookup[tmp >> 2]
output += lookup[(tmp << 4) & 0x3F]
output += '=='
} else if (extraBytes === 2) {
tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
output += lookup[tmp >> 10]
output += lookup[(tmp >> 4) & 0x3F]
output += lookup[(tmp << 2) & 0x3F]
output += '='
}
parts.push(output)
return parts.join('')
}
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <[email protected]> <http://feross.org>
* @license MIT
*/
/* eslint-disable no-proto */
var base64 = __webpack_require__(12)
var ieee754 = __webpack_require__(16)
var isArray = __webpack_require__(17)
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 ' + str + '>'
}
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(exports, __webpack_require__(62)))
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(15)(undefined);
// imports
// module
exports.push([module.i, "html.ext-html {\r\n\theight: 100%;\r\n}\r\n\r\nhtml.ext-html body {\r\n\tbox-sizing: border-box;\r\n}\r\n\r\nhtml.ext-html body footer {\r\n\tmargin-top: 0;\r\n\tdisplay: none;\r\n}\r\n\r\nhtml.ext-html body #main-container {\r\n\theight: 100%;\r\n\tbox-sizing: border-box;\r\n}\r\n\r\nhtml.ext-html body #main-container #content {\r\n\tpadding: 0;\r\n\theight: 100%;\r\n}\r\n\r\nhtml.ext-html .pgf-game-data {\r\n\theight: 100%;\r\n\tmin-height: 740px;\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column,\r\n\thtml.ext-html .pgf-info-column {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\theight: 100%;\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column .first-row-block, html.ext-html .pgf-info-column .first-row-block {\r\n\tmin-height: 240px;\r\n\tflex: 0 0 auto;\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column.pgf-info-column .second-row-block, html.ext-html .pgf-info-column.pgf-info-column .second-row-block {\r\n\tflex: 1 1 auto;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tmargin-bottom: 25px;\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column.pgf-info-column .second-row-block .tab-content, html.ext-html .pgf-info-column.pgf-info-column .second-row-block .tab-content {\r\n\tflex: 1 1 auto;\r\n\tmargin-right: -5px;\r\n\tpadding-right: 5px;\r\n\toverflow-y: scroll;\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar, html.ext-html .pgf-info-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar {\r\n\twidth: 5px;\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar-track, html.ext-html .pgf-info-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar-track {\r\n\tbackground-color: rgba(0, 0, 0, .05);\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar-thumb, html.ext-html .pgf-info-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar-thumb {\r\n\tbackground-color: rgba(0, 0, 0, .2);\r\n\tborder-radius: 2px;\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar-thumb:hover, html.ext-html .pgf-info-column.pgf-info-column .second-row-block .tab-content::-webkit-scrollbar-thumb:hover {\r\n\tbackground-color: rgba(0, 0, 0, .3);\r\n}\r\n\r\nhtml.ext-html .pgf-hero-column.pgf-info-column .second-row-block .tab-content .log-block, html.ext-html .pgf-info-column.pgf-info-column .second-row-block .tab-content .log-block {\r\n\toverflow: visible;\r\n\theight: auto;\r\n}\r\n\r\n.link-ajax {\r\n\tcolor: #0088cc;\r\n\tcursor: default;\r\n\tbackground-image: linear-gradient(to right, #0088cc, #0088cc 50%, transparent 50%);\r\n\tbackground-size: 2px 1px;\r\n\tbackground-position: 0 95%;\r\n\tbackground-repeat: repeat-x;\r\n}\r\n.link-ajax:hover {\r\n\tcolor: #005580;\r\n\tbackground-image: linear-gradient(to right, #005580, #005580 50%, transparent 50%);\r\n}\r\n\r\nbody .nav-tabs > li > a {\r\n\tpadding-left: 9px;\r\n\tpadding-right: 9px;\r\n}\r\n\r\n.pgf-ext-tab-button {\r\n\tbackground: url(" + __webpack_require__(61) + ") center center no-repeat;\r\n\tbackground-size: 16px 16px;\r\n\tcolor: transparent !important;\r\n\ttext-indent: -500px;\r\n\toverflow: hidden;\r\n}\r\n\r\n.ext-container .ext-tabs {\r\n\tmargin-bottom: 10px;\r\n\ttext-align: right;\r\n}\r\n\r\n.ext-container .ext-tabs .ext-tab {\r\n\ttext-decoration: dotted;\r\n\tcolor: #0088cc;\r\n\tbackground-image: linear-gradient(to right, #0088cc, #0088cc 50%, transparent 50%);\r\n\tbackground-size: 2px 1px;\r\n\tbackground-position: 0 95%;\r\n\tbackground-repeat: repeat-x;\r\n\tcursor: pointer;\r\n\tmargin-left: 10px;\r\n}\r\n\r\n.ext-container .ext-tabs .ext-tab.active {\r\n\tbackground-image: none;\r\n\tcolor: #333;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.ext-container .ext-content {\r\n\tdisplay: none;\r\n}\r\n\r\n.ext-container .ext-content.active {\r\n\tdisplay: block;\r\n}\r\n\r\n\r\n#abilities-block .angel-ability { width: auto !important; display: inline-block; }\r\n#abilities-block .angel-ability.pgf-ability-help { margin: 0 50px; }\r\n#abilities-block .dropdown { width: auto !important; }\r\n\r\n\r\n\r\n.ext-controls { font-size: 12px; }\r\n.ext-control { margin-right: 10px; }\r\n.ext-control.link-ajax { background: none; }\r\n\r\n\r\n.table-stats {\r\n\twidth: 100%;\r\n}\r\n\r\n\r\n.table-stats thead td {\r\n\ttext-align: right;\r\n\tfont-weight: bold;\r\n\tborder-bottom: 2px solid #ddd;\r\n}\r\n\r\n\r\n.table-stats tbody th,\r\n\t\t.table-stats tbody td {\r\n\tvertical-align: top;\r\n\tborder-top: 1px solid #ddd;\r\n\tpadding: 5px;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n\r\n.table-stats tbody tr:hover {\r\n\tbackground-color: #e1e6e6;\r\n}\r\n\r\n\r\n.table-stats tbody th {\r\n\ttext-align: left;\r\n}\r\n\r\n\r\n.table-stats tbody td {\r\n\ttext-align: right;\r\n}\r\n\r\n\r\n/* short */\r\n.log-record.ext:hover {\r\n\tbackground: none;\r\n}\r\n\r\n.act {\r\n\twhite-space: nowrap;\r\n\tpadding: 1px 5px;\r\n\tmargin: -1px 0;\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.act:hover {\r\n\tbackground: #e1e6e6;\r\n}\r\n\r\n.act svg {\r\n\theight: 13px;\r\n\r\n\r\n\t/*width: 13px;*/\r\n\tvertical-align: -1px;\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.act.positive {\r\n\tcolor: black;\r\n}\r\n\r\n.act.positive svg {\r\n\tfill: #005000;\r\n}\r\n\r\n.act.negative {\r\n\tcolor: #B90000;\r\n}\r\n\r\n.act.negative svg {\r\n\tfill: darkred;\r\n}\r\n\r\n.act.god{\r\n\tcolor: #007b7b;\r\n\ttext-decoration: underline;\r\n}\r\n\r\n.act.god svg {\r\n\tfill: #007b7b;\r\n}\r\n\r\n.act .companion svg {\r\n\tfill: #002000;\r\n}\r\n\r\n.act .god-icon svg {\r\n\tfill: #004F4F;\r\n}\r\n\r\n.act.loot {\r\n\tcolor: darkgoldenrod;\r\n}\r\n\r\n.act.loot svg {\r\n\tfill: darkgoldenrod;\r\n}\r\n\r\n.act.loot.drop .artifact{\r\n\ttext-decoration: line-through;\r\n}\r\n\r\n\r\n\r\n\r\n.act-rest.positive { color: #005000; }\r\n.act-heal.positive { color: #005000; }\r\n.act-heal.negative { color: darkred; }\r\n.act-godheal.act { color: darkmagenta; text-decoration: underline; }\r\n\r\n.act.positive .vamp { color: #005000; }\r\n.act.negative .vamp { color: darkred; }\r\n\r\n.act-slow.positive { color: #00008B; }\r\n\r\n.act-coins.positive { color: darkgoldenrod; }\r\n.act-coins.negative { color: darkgoldenrod; text-decoration: line-through; }\r\n.act-godcoins.act { color: darkmagenta; text-decoration: underline; }\r\n\r\n.act-pvpeff.positive { color: dodgerblue; }\r\n.act-pvpeff.negative { color: dodgerblue; text-decoration: line-through; }\r\n.act-pvpice.positive,\r\n.act-pvpflame.negative,\r\n.act-pvpfail.negative { color: darkgreen; }\r\n.act-pvpice.negative,\r\n.act-pvpflame.positive,\r\n.act-pvpfail.positive { color: darkred; }\r\n/* eo short */\r\n\r\n/* highlight */\r\n.positive .value { color: darkred; }\r\n.negative .value { color: red; }\r\n\r\n.msg-dmg.positive .value { color: darkred; }\r\n.msg-dmg.negative .value { color: red; }\r\n\r\n.msg-godhit { color: darkmagenta; }\r\n.msg-pickup .item { color: darkgoldenrod; }\r\n.msg-empty { color: darkgoldenrod; text-decoration: line-through; }\r\n.msg-drop { color: darkgoldenrod; text-decoration: line-through; }\r\n.msg-death { color: darkred; text-decoration: line-through; }\r\n\r\n.submessage .energy { color: dodgerblue; }\r\n.submessage .coins { color: darkgoldenrod; }\r\n.submessage .coins svg { fill: darkgoldenrod; }\r\n.submessage .godcoins { color: darkmagenta; }\r\n\r\n.submessage .level,\r\n.submessage .exp { color: darkviolet; text-decoration: underline; }\r\n/* eo highlight */\r\n\r\n\r\n/* group */\r\n.archive-content .level { color: darkviolet; text-decoration: underline; }\r\n.group { position: relative; margin-bottom: 2px; }\r\n.group .group-toggle { cursor: default; }\r\n.group .on-open { display: none; }\r\n.group.open .on-open { display: block; }\r\n.group.open .on-close { display: none; }\r\n\r\n.group.open { margin: 0; }\r\n\r\n.group-time { }\r\n.group-time.average { color: #8a6d3b; text-decoration: underline; }\r\n.group-time.bad { color: #a94442; text-decoration: underline; }\r\n\r\n.group-title {\r\n\tcursor: default;\r\n\tmargin-right: 0;\r\n\twhite-space: nowrap;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n}\r\n.group-title:hover { background: #ddd; }\r\n\r\n.action-icon.fight { color: darkred; }\r\n.action-icon.fight-god { color: darkviolet; }\r\n\r\n.action-icon.equip,\r\n.action-icon.trade { color: darkgoldenrod; }\r\n.action-icon.quest,\r\n.action-icon.noeffect { color: dodgerblue; }\r\n.action-icon.idle { color: dodgerblue; }\r\n.action-icon.energy { color: dodgerblue; }\r\n.action-icon.rest { color: #005000; }\r\n.action-icon.dead { color: darkred; }\r\n.action-icon.companionHeal { color: #008000; }\r\n.action-icon.broken { color: red; }\r\n\r\n.action-icon {\r\n\tdisplay: inline-block;\r\n\tvertical-align: text-bottom;\r\n\twidth: 15px;\r\n}\r\n.group-title.god .group-time { color: darkviolet; text-decoration: underline; }\r\n.group-time { margin-right: 3px; }\r\n\r\n.group-controls { position: absolute; right: 0; top: 1px; }\r\n.group-stats { margin-bottom: 2px; }\r\n.group-stats .stat { margin: 0 0 0 4px;}\r\n.group-stats .stat-me + .stat-enemy { margin-left: 8px;}\r\n\r\n.group-stats .stat-me { color: #005000; }\r\n.group-stats .stat-enemy { color: darkred; }\r\n\r\n.group-stats .stat-against {\r\n\tdisplay: inline-block;\r\n\twidth: 35px;\r\n\twhite-space: nowrap;\r\n}\r\n/*.group .pgf-log-list { margin: 0; }*/\r\n/* eo group */\r\n\r\n\r\n.text-muted { color: #999; }\r\n.text-primary { color: #428bca; }\r\n.text-success { color: #3c763d; }\r\n.text-info { color: #31708f; }\r\n.text-warning { color: #8a6d3b; }\r\n.text-danger { color: #a94442; }\r\n\r\n\r\n.quest-icon-mini {\r\n\tfloat: none;\r\n\tdisplay: inline-block;\r\n\tmargin: 0;\r\n\tvertical-align: bottom;\r\n\twidth: 16px;\r\n\theight: 16px;\r\n\tbackground-size: 32px 192px;\r\n\tbackground-image: url('http://static.the-tale.org/static/168/game/images/quests.png');\r\n}\r\n.quest-icon-mini.caravan { background-position: 0 0; }\r\n.quest-icon-mini.delivery { background-position: 0 -16px; }\r\n.quest-icon-mini.help { background-position: 0 -32px; }\r\n.quest-icon-mini.help_friend { background-position: 0 -48px; }\r\n.quest-icon-mini.hometown { background-position: 0 -64px; }\r\n.quest-icon-mini.hunt { background-position: 0 -80px; }\r\n.quest-icon-mini.interfere_enemy { background-position: 0 -96px; }\r\n.quest-icon-mini.collect_debt { background-position: 0 -112px; }\r\n.quest-icon-mini.spying { background-position: 0 -128px; }\r\n.quest-icon-mini.search_smith { background-position: 0 -144px; }\r\n.quest-icon-mini.no-quest { background-position: 0 -160px; }\r\n.quest-icon-mini.next-spending { background-position: 0 -176px; }\r\n.quest-icon-mini.pilgrimage { background-position: -16px -80px; }\r\n\r\n\r\n\r\n/*#pgf-towns-container { background: #fff; }*/\r\n#pgf-towns-container .reload {\r\n\tfont-size: 12px;\r\n}\r\n\r\n\r\n\r\n/* settings */\r\n#log-block-sets { height: auto; }\r\n.sets-header { margin: 10px 0 5px;}\r\n.sets { margin: 5px 0 0 20px; }\r\n.sets-inline { display: inline-block; }\r\n\r\n.note-block { color: #999; }\r\ninput.input-tiny { height: 11px; width: 60px; font-size: 12px; margin: -2px 0 -3px; vertical-align: 0; }\r\ninput.input-tiny-num { width: 45px; }\r\n.input-append .add-on { height: 11px; line-height: 11px; margin-top: -2px; margin-bottom: -3px; vertical-align: -1px; }\r\n\r\n\r\n.sets label {\r\n\tdisplay: inline;\r\n\tfont-weight: normal;\r\n\tmargin-bottom: 0;\r\n}\r\n.sets .input-wrap-inline {\r\n\tdisplay: inline-block;\r\n}\r\n.sets .input-wrap {\r\n\ttransition: opacity .2s;\r\n}\r\n.sets .input-wrap.disabled { opacity: .7; }\r\n/* eo sets */\r\n\r\n\r\ndiv.easy-block {\r\n\tclear: right;\r\n}\r\n", ""]);
// exports
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(Buffer) {/*
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) {
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) {
var base64 = new Buffer(JSON.stringify(sourceMap)).toString('base64');
var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
return '/*# ' + data + ' */';
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13).Buffer))
/***/ }),
/* 16 */
/***/ (function(module, exports) {
exports.read = function (buffer, offset, isLE, mLen, nBytes) {
var e, m
var eLen = nBytes * 8 - mLen - 1
var eMax = (1 << eLen) - 1
var eBias = eMax >> 1
var nBits = -7
var i = isLE ? (nBytes - 1) : 0
var d = isLE ? -1 : 1
var s = buffer[offset + i]
i += d
e = s & ((1 << (-nBits)) - 1)
s >>= (-nBits)
nBits += eLen
for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
m = e & ((1 << (-nBits)) - 1)
e >>= (-nBits)
nBits += mLen
for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
if (e === 0) {
e = 1 - eBias
} else if (e === eMax) {
return m ? NaN : ((s ? -1 : 1) * Infinity)
} else {
m = m + Math.pow(2, mLen)
e = e - eBias
}
return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
}
exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
var e, m, c
var eLen = nBytes * 8 - mLen - 1
var eMax = (1 << eLen) - 1
var eBias = eMax >> 1
var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
var i = isLE ? 0 : (nBytes - 1)
var d = isLE ? 1 : -1
var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
value = Math.abs(value)
if (isNaN(value) || value === Infinity) {
m = isNaN(value) ? 1 : 0
e = eMax
} else {
e = Math.floor(Math.log(value) / Math.LN2)
if (value * (c = Math.pow(2, -e)) < 1) {
e--
c *= 2
}
if (e + eBias >= 1) {
value += rt / c
} else {
value += rt * Math.pow(2, 1 - eBias)
}
if (value * c >= 2) {
e++
c /= 2
}
if (e + eBias >= eMax) {
m = 0
e = eMax
} else if (e + eBias >= 1) {
m = (value * c - 1) * Math.pow(2, mLen)
e = e + eBias
} else {
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
e = 0
}
}
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
e = (e << mLen) | m
eLen += mLen
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
buffer[offset + i - d] |= s * 128
}
/***/ }),
/* 17 */
/***/ (function(module, exports) {
var toString = {}.toString;
module.exports = Array.isArray || function (arr) {
return toString.call(arr) == '[object Array]';
};
/***/ }),
/* 18 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\r\n <path d=\"M8 2.313c3.15 0 5.688 2.537 5.688 5.687 0 3.15-2.538 5.688-5.688 5.688S2.312 11.15 2.312 8 4.85 2.312 8 2.312zM8 1C4.15 1 1 4.15 1 8s3.15 7 7 7 7-3.15 7-7-3.15-7-7-7z\"/>\r\n <path d=\"M9.662 10.012c-.437.35-1.05.613-1.662.613-1.487 0-2.625-1.137-2.625-2.625 0-1.487 1.138-2.625 2.625-2.625.7 0 1.4.263 1.837.787L10.8 5.2c-.7-.7-1.75-1.138-2.8-1.138-2.188 0-3.938 1.75-3.938 3.938S5.813 11.938 8 11.938c.963 0 1.75-.35 2.45-.876z\"/>\r\n</svg>"
/***/ }),
/* 19 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <path d=\"M494 20L304.887 143.357c16.494 14.608 32.743 22.57 44.963 36.97zM298.346 93.594c-12.58.436-26.59 4.984-38.047 11.77-7.64 4.523-14.115 9.97-18.304 15.142-4.19 5.173-5.79 9.832-5.648 12.668l.283 5.73-5.075 2.676C133.713 193.16 80.945 250.727 18 310.594V494h166.047c6.145-15.424 12.724-33.898 15.086-47.535 1.728-9.977-2.783-21.807-8.23-35.244-5.444-13.436-11.85-28.706-7.63-45.423 3.49-13.827 14.375-25.752 24.096-35.656 4.45-4.534 8.71-8.463 12.075-11.445-6.558-8.577-14.065-20.315-16.51-34.894l17.75-2.978c2.68 15.976 15.203 28.533 22.8 39.24l-.323.23c10.54 14.634 18.892 28.395 30.72 37.546 13.358 10.337 31.484 16.39 66.526 11.49l6.658-.932 2.782 6.124c6.96 15.322 14.372 23.89 21.015 28.423 6.643 4.535 12.63 5.46 18.692 4.79 12.125-1.34 24.29-10.974 27.76-14.264 4.13-3.92 9.657-9.476 13.32-16.124 3.347-6.076 5.073-12.687 3.48-20.744-42.68-37.562-69.592-108.75-90.256-152.6-9.245-19.62-35.786-34.492-52.967-47.95-2.427-1.4-2.675-2.582-3.24-5.154-4.215-19.167 3.188-40.257 10.974-57.298-.096.002-.186-.01-.28-.006zM59.352 136.55c17.863 4.925 37.775 9.665 57.406 14.815 14.803 3.883 29.26 7.935 42.406 12.766 17.914-12.178 37.407-24.123 59.072-35.77-51.62-13.3-109.928-3.148-158.884 8.19zm28.738 26.126c-23.002 4.133-45.974 10.254-67.147 16.662 18.133 3.813 38.298 7.314 58.207 11.242 11.774 2.323 23.337 4.766 34.256 7.643a686.475 686.475 0 0 1 27.403-21.15c-9.044-2.932-18.71-5.698-28.62-8.298-7.952-2.086-16.043-4.098-24.1-6.1zM47.44 202.94c-9.875 2.096-19.728 4.582-29.44 7.29v18.04a2251.165 2251.165 0 0 1 20.172 3.146c10.505 1.7 20.847 3.498 30.734 5.625 8.836-8.185 17.887-16.322 27.268-24.397-6.64-1.56-13.52-3.024-20.508-4.403-9.32-1.838-18.81-3.566-28.227-5.3zM304 224c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zM18 246.512v26.58c4.16.195 8.28.425 12.342.71 7.44-7.2 14.878-14.384 22.387-21.538a604.747 604.747 0 0 0-17.433-3.078A1501.67 1501.67 0 0 0 18 246.512z\"/>\r\n</svg>"
/***/ }),
/* 20 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 226.5 226.501\">\r\n <path d=\"M78.892 91.198h-3.888v17.826h2.965c2.64 0 5.085-.706 5.085-5.824v-6.363c0-5.203-2.057-5.64-4.163-5.64zM155.518 91.198h-3.795v19.854h3.795c2.098 0 3.98-.39 3.98-5.086v-9.682c0-4.697-1.884-5.086-3.98-5.086z\"/>\r\n <path d=\"M202 181.67h-8.902c.147-1.294.23-2.605.23-3.938V54.242c0-13.33-7.607-24.876-18.715-30.556C169.006 9.8 155.41 0 139.518 0H86.984C71.09 0 57.494 9.8 51.887 23.686 40.78 29.366 33.172 40.91 33.172 54.243v123.49c0 1.33.084 2.643.23 3.936H24.5c-5.522 0-10 4.477-10 10v24.83c0 5.523 4.478 10 10 10H202c5.523 0 10-4.477 10-10v-24.83c0-5.524-4.476-10-10-10zM94.528 145.16c-.76.867-1.856 1.363-3.01 1.363h-4.14c-1.977 0-3.656-1.44-3.955-3.396-.194-1.272-.277-2.927-.277-5.534v-10.145c0-6.648-2.786-7.205-5.64-7.205h-2.504v22.28c0 2.208-1.79 4-4 4H66.86c-2.21 0-4-1.792-4-4V83.977c0-2.21 1.79-4 4-4h12.307c10.937 0 16.03 5.035 16.03 15.846v5.072c0 6.264-1.815 10.556-5.538 13.054 3.83 2.397 5.63 6.835 5.63 13.778v9.96c0 1.75.032 3.08.195 4.31.153 1.145-.197 2.296-.957 3.162zm28.61-2.637c0 2.21-1.79 4-4 4h-4.143c-2.21 0-4-1.79-4-4V83.978c0-2.21 1.79-4 4-4h4.144c2.208 0 4 1.79 4 4v58.545zm48.503-37.202c0 14.012-8.768 16.952-16.122 16.952h-3.795v20.252c0 2.21-1.79 4-4 4h-4.143c-2.21 0-4-1.79-4-4V83.978c0-2.21 1.79-4 4-4h11.938c7.354 0 16.123 2.94 16.123 16.953v8.39z\"/>\r\n</svg>"
/***/ }),
/* 21 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <path d=\"M221.313 16a23.682 23.695 0 0 0-23.688 23.688v106.406a23.682 23.695 0 0 0 2.156 9.72 23.682 23.695 0 0 0 3.157 13.81l41.75 71.626-79 55.438 6.094-48.625a23.682 23.695 0 0 0-8.186-20.97l-66.28-81.937a23.682 23.695 0 0 0-33.314-3.5l-9.188 7.438a23.682 23.695 0 0 0-3.53 33.344l59.78 73.906-11.25 89.937a23.682 23.695 0 0 0 12.47 23.876l37.468 53.47a23.695 23.682 1.57 0 0 2.344 2.812 23.682 23.695 0 0 0 13.594 20.062L262 491.53a23.682 23.695 0 0 0 9.97 2.22 23.682 23.695 0 0 0 23.53-2.063l87.156-60.937a23.682 23.695 0 0 0 5.844-33l-6.78-9.688a23.682 23.695 0 0 0-32.97-5.875l-72.406 50.657-59.063-27.625 120.595-84.626a23.695 23.682 1.57 0 0 5.53-5.5 23.682 23.695 0 0 0 14.626-13.594l37.22-91.53 87.813-44.845a23.694 23.682 1.18 0 0 10.312-31.875L488 122.687a23.694 23.682 1.18 0 0-31.875-10.343l-94.688 48.375a23.694 23.682 1.18 0 0-9.843 9.436 23.682 23.695 0 0 0-8.344 10.47l-27.375 67.31-5.22-7.436a23.682 23.695 0 0 0-3-8.844l-50.81-87.094V39.688A23.682 23.695 0 0 0 233.154 16h-11.843zM77.75 376A59.994 60 0 0 0 16 436a59.994 60 0 1 0 120 0 59.994 60 0 0 0-58.25-60z\"/>\r\n</svg>"
/***/ }),
/* 22 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 486.991 486.991\">\r\n <path d=\"M415.143 58.34c3.685-3.79 9.73-3.863 13.516-.178 3.778 3.666 3.86 9.72.177 13.507-.048.046-.13.13-.188.176L303.493 193.588l24.31 26.475L452.25 105.82c12.09-11.092 20.316-25.765 23.478-41.866l11.148-56.81c.382-1.958-.233-3.973-1.643-5.39C483.817.344 481.8-.27 479.843.112L423.035 11.26c-16.1 3.16-30.775 11.39-41.865 23.478L269.426 156.47l24.414 26.596L415.143 58.34zM161.5 274.043l-51.735 56.37c-17.35-12.004-37.024-20.932-58.507-25.38-10.344-2.166-20.437 4.486-22.573 14.83-2.146 10.327 4.495 20.44 14.83 22.574 15.803 3.275 30.29 9.787 43.172 18.45l-71.397 55.42C6.335 423.258.803 433.718.084 445.03c-.71 11.305 3.48 22.377 11.493 30.392 7.424 7.433 17.48 11.566 27.92 11.566.82 0 1.64-.018 2.472-.074 11.313-.71 21.77-6.24 28.72-15.196l54.177-69.793c6.12 10.83 10.746 22.622 13.36 35.223 1.864 9.03 9.81 15.233 18.682 15.233 1.287 0 2.582-.13 3.89-.4 10.335-2.136 16.977-12.248 14.832-22.574-3.805-18.405-11.037-35.4-20.476-50.857l60.092-55.168-53.75-49.34z\"/>\r\n <path d=\"M471.7 416.308l-54.935-42.64-16.464-12.78c12.147-8.17 32.236-15.34 43.174-18.45 10.944-3.114 16.977-12.248 14.832-22.574-2.146-10.345-12.324-17.014-22.575-14.832-8.135 1.688-16.007 4.03-23.618 6.876-12.51 4.672-24.103 11.043-34.888 18.506L105.82 34.738c-11.092-12.09-25.766-20.316-41.864-23.48L7.146.113C6.763.038 6.38 0 5.998 0 4.422 0 2.89.625 1.753 1.754.346 3.17-.27 5.187.114 7.146L11.26 63.954c3.162 16.1 11.39 30.774 23.48 41.865l297.09 272.728c-6.956 11.39-12.47 23.684-16.453 36.753-1.418 4.665-3.022 9.265-4.02 14.106-2.145 10.326 4.496 20.438 14.83 22.574 1.308.27 2.605.4 3.89.4 6.57 0 12.595-3.422 16.056-8.852 1.213-1.902 2.145-4.028 2.63-6.38 2.612-12.6 7.24-24.392 13.358-35.223l11.53 14.85 42.648 54.943c6.95 8.957 17.408 14.487 28.722 15.196 11.305.708 22.38-3.47 30.393-11.492 8.013-8.015 12.2-19.087 11.49-30.393-.717-11.314-6.247-21.772-15.204-28.722zM266.664 266.562c-2.18 2.24-5.772 2.297-8.02.113L58.338 71.845c-.057-.046-.14-.13-.188-.176-3.685-3.79-3.6-9.842.176-13.508 3.79-3.685 9.834-3.61 13.52.177l194.817 200.313c2.127 2.19 2.146 5.7 0 7.91z\"/>\r\n</svg>"
/***/ }),
/* 23 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 533.333 533.333\">\r\n <path d=\"M165.494 533.333C129.95 459.37 148.878 416.99 176.197 377.06c29.917-43.727 37.627-87.012 37.627-87.012s23.518 30.573 14.11 78.39c41.548-46.25 49.39-119.938 43.115-148.16 93.913 65.63 134.05 207.738 79.96 313.055 287.694-162.776 71.56-406.34 33.933-433.775 12.543 27.435 14.922 73.88-10.416 96.42C331.635 33.333 225.583 0 225.583 0c12.543 83.877-45.466 175.596-101.404 244.13-1.966-33.446-4.054-56.525-21.642-88.53-3.948 60.757-50.38 110.284-62.955 171.16C22.55 409.2 52.34 469.562 165.493 533.333z\"/>\r\n</svg>"
/***/ }),
/* 24 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 611.999 611.999\">\r\n <path d=\"M216.02 611.195c5.978 3.178 12.284-3.704 8.624-9.4-19.866-30.92-38.678-82.947-8.706-149.952 49.982-111.737 80.396-169.61 80.396-169.61s16.177 67.537 60.03 127.586c42.204 57.792 65.305 130.477 28.063 191.028-3.495 5.683 2.668 12.388 8.607 9.35 46.1-23.583 97.806-70.886 103.64-165.018 2.15-28.764-1.075-69.034-17.206-119.85-20.74-64.407-46.24-94.46-60.992-107.366-4.413-3.86-11.276-.44-10.914 5.413 4.3 69.494-21.845 87.13-36.726 47.386-5.943-15.874-9.41-43.33-9.41-76.766 0-55.665-16.15-112.967-51.754-159.53-9.26-12.11-20.093-23.425-32.523-33.074-4.5-3.494-11.024.018-10.612 5.7 2.734 37.736.257 145.885-94.624 275.09-86.03 119.85-52.693 211.895-40.864 236.825 22.616 47.76 54.162 75.806 84.97 92.187z\"/>\r\n</svg>"
/***/ }),
/* 25 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n\t<path d=\"M18.465 20.182v192.9c38.45 80.782 55.772 134.822 150.726 221.098l.167.15.16.158c3.06 3.06 5.89 3.828 10.14 3.455 4.247-.373 9.65-2.494 14.738-5.912 9.313-6.256 16.457-17.503 17.67-22.266l-56.06-56.065 13.214-13.216 62.94 62.944c1.316 1.316 2.67 1.804 6.508 1.115 3.838-.69 9.267-3.1 14.61-6.78 10.098-6.954 19.75-18.663 22.835-26.454l-56.02-56.02 13.216-13.216 63.667 63.67c19.495-3.225 35.412-16.64 41.65-32.52l.756.296-71.514-71.516 13.214-13.215L447.81 415.52c7.58 7.58 14.7 9.95 21.032 9.853 6.33-.096 12.216-2.88 16.62-7.41 8.805-9.06 12.096-23.49-2.255-37.84L259.97 156.88l13.214-13.214 33.08 33.08c46.988-3.724 84.773-17.932 102.148-33.6 8.914-8.04 12.147-15.414 11.424-22.306-.644-6.142-5.172-13.675-15.865-21.79-52.33 22.22-109.035 19.23-162.685 2.538-54.338-16.908-105.852-47.735-148.47-81.406h-74.35z\"/>\r\n</svg>"
/***/ }),
/* 26 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 329.928 329.928\">\r\n <path d=\"M232.478 13.406c-24.56 0-48.827 9.248-67.51 25.28-18.69-16.033-42.957-25.28-67.517-25.28C42.807 13.406 0 56.212 0 110.856c0 66.056 45.99 106.43 115.604 167.544 5.95 5.224 12.09 10.614 18.41 16.202l.13.115 21.02 18.155c2.815 2.433 6.31 3.65 9.805 3.65s6.99-1.218 9.806-3.65l21.014-18.155.13-.114c41.606-36.796 72.8-64.966 95.37-92.44 26.36-32.088 38.638-61.1 38.638-91.305 0-54.646-42.805-97.452-97.45-97.452zM176.113 272.07l-11.146 9.63-11.143-9.626c-6.325-5.593-12.472-10.99-18.43-16.22C69.672 198.157 30 163.33 30 110.858c0-38.454 28.998-67.45 67.45-67.45 20.926 0 42.408 10.03 56.066 26.175 2.85 3.37 7.04 5.313 11.454 5.313 4.414 0 8.603-1.944 11.453-5.315 13.652-16.145 35.13-26.174 56.056-26.174 38.45 0 67.448 28.997 67.448 67.45 0 49.296-44.74 91.28-123.815 161.214z\"/>\r\n <path d=\"M184.964 94.964h-40v40h-40v40h40v40h40v-40h40v-40h-40\"/>\r\n</svg>"
/***/ }),
/* 27 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 290.226 290.226\">\r\n <path d=\"M63.95 243.575c-1.944-3.578-4.4-6.907-7.362-9.87-3.106-3.1-6.626-5.632-10.4-7.63-4.51-2.386-.945-7.5-.945-7.5 4.616-7.022 8.825-14.078 12.305-20.225l-23.363-23.344h-22.68c-4.363 0-7.9-3.54-7.9-7.902 0-4.36 3.537-7.9 7.9-7.9H37.45c2.1 0 4.108.832 5.59 2.312l85.378 85.29c1.483 1.484 2.315 3.496 2.315 5.59v26.073c0 4.364-3.537 7.896-7.9 7.896-4.367 0-7.904-3.53-7.904-7.897v-22.8l-23.27-23.24c-6.282 3.708-13.583 8.253-20.817 13.25 0 0-4.145 2.95-6.892-2.105zM26.61 237.102c-7.106 0-13.784 2.764-18.812 7.784C2.778 249.9.016 256.572.016 263.664c0 7.097 2.764 13.762 7.782 18.776 5.027 5.016 11.706 7.783 18.812 7.785 7.102 0 13.78-2.77 18.804-7.785 5.023-5.015 7.79-11.682 7.79-18.776 0-7.093-2.768-13.764-7.79-18.778-5.022-5.02-11.702-7.784-18.804-7.784zM100.985 182.318c-3.502 3.5-9.232 3.5-12.734 0l-8.81-8.8c-3.5-3.498-3.5-9.223 0-12.72L229.833 10.563c3.502-3.498 10.4-6.727 15.33-7.175L282.024.036c4.93-.448 8.596 3.218 8.148 8.148l-3.346 36.79c-.448 4.93-3.68 11.826-7.182 15.325l-150.4 150.25c-3.502 3.5-9.232 3.5-12.734 0l-8.822-8.812c-3.502-3.498-3.502-9.223 0-12.722l125.92-125.803c1.854-1.848 1.856-4.852.003-6.702-1.847-1.852-4.852-1.852-6.708 0L100.985 182.317z\"/>\r\n</svg>"
/***/ }),
/* 28 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 485.202 485.202\">\r\n <path d=\"M318.416 106.132c8.378 0 15.163 6.784 15.163 15.166 0 8.38-6.786 15.16-15.164 15.16H166.788c-8.384 0-15.166-6.78-15.166-15.16 0-8.382 6.782-15.166 15.166-15.166h151.628zm8.765 45.488H158.005C82.887 206.41 30.32 322.526 30.32 396.27c0 99.182 95.036 88.605 212.28 88.605 117.24 0 212.282 10.576 212.282-88.604 0-73.744-52.566-189.86-127.7-244.65zM158.005 90.97H327.18s67.05-58.49 36.722-84.076C333.58-18.693 266.294 35.324 242.6 33.43c-23.692 1.894-90.978-52.123-121.302-26.536C90.97 32.48 158.004 90.97 158.004 90.97z\"/>\r\n</svg>"
/***/ }),
/* 29 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.012 512.012\">\r\n <path d=\"M505.756 475.587l-225.26-225.26 14.145-14.143c8.32-8.34 8.32-21.845 0-30.165l-7.636-7.638c13.035-6.656 46.293-8.384 90.453 7.7 5.952 2.156 12.63 1.558 18.112-1.663s9.258-8.726 10.24-15.02c.554-3.307 12.394-81.94-46.892-141.205C299.698-11.048 221.04.792 217.734 1.305c-6.293 1.002-11.797 4.778-15.02 10.26-3.22 5.483-3.84 12.117-1.642 18.09 16.98 46.72 18.54 82.69 13.312 96.108l-7.424-7.424c-3.99-4.012-9.408-6.252-15.083-6.252s-11.072 2.24-15.083 6.25l-58.453 58.454c-4.01 4.01-6.25 9.43-6.25 15.083s2.24 11.093 6.25 15.083l7.425 7.424c-13.42 5.227-49.344 3.67-96.085-13.333-5.952-2.177-12.63-1.558-18.112 1.642-5.483 3.243-9.26 8.747-10.26 15.02-.534 3.306-12.374 81.94 46.91 141.204 41.708 41.728 92.993 48.213 120.897 48.213 11.733 0 19.307-1.153 20.288-1.324 6.293-1.003 11.797-4.757 15.02-10.24 3.22-5.483 3.84-12.117 1.642-18.112-16.043-44.16-14.336-77.44-7.68-90.453l7.637 7.638c4.18 4.16 9.62 6.25 15.083 6.25 5.46 0 10.923-2.09 15.083-6.25l14.144-14.144L475.59 505.752c4.16 4.16 9.62 6.25 15.083 6.25s10.923-2.09 15.083-6.25c8.34-8.34 8.34-21.824 0-30.165z\"/>\r\n</svg>"
/***/ }),
/* 30 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 265.2 459\">\r\n <path d=\"M265.2 423.3L71.4 229.5 214.2 86.7V204h51V0h-204v51h117.3L0 229.5 229.5 459\"/>\r\n</svg>"
/***/ }),
/* 31 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 492.904 492.904\">\r\n <path d=\"M246.452.002C110.342.002 0 110.342 0 246.452c0 136.11 110.342 246.45 246.452 246.45s246.452-110.34 246.452-246.45c0-136.11-110.34-246.45-246.452-246.45zm197.16 246.45c0 44.22-14.81 84.942-39.488 117.867L271.097 231.264V51.002C368.2 63.195 443.61 146.108 443.61 246.452zM221.808 441.906c-37.144-4.66-71.115-19.607-98.89-42.022l98.89-98.885v140.907zm49.287-140.923l98.9 98.9c-27.788 22.415-61.757 37.362-98.9 42.022V300.982zM221.81 51.002v180.28L88.774 364.32C64.1 331.395 49.29 290.673 49.29 246.454c0-100.346 75.414-183.26 172.52-195.452z\"/>\r\n</svg>"
/***/ }),
/* 32 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 264.695 264.695\">\r\n <path d=\"M219.17 216.785c-4.76 0-10.32 2.3-16.67 6.88L167.287 210.7l35.734-12.978c6.003 3.888 11.558 5.833 16.682 5.833 5.64 0 9.347-2.917 11.117-8.733.352-1.235.528-2.57.528-3.98 0-7.398-4.766-11.38-14.295-11.9 3.876-3.883 5.828-7.688 5.828-11.393 0-3.87-2.038-7.15-6.09-9.797-2.12-1.05-4.326-1.584-6.616-1.584-7.77 0-13.064 6.258-15.887 18.797l-61.94 23.04-61.94-22.505c-2.824-12.885-8.126-19.332-15.886-19.332-2.292 0-4.5.535-6.62 1.584-3.875 2.647-5.82 5.926-5.82 9.797 0 3.705 1.945 7.51 5.82 11.392-9.7.52-14.554 4.502-14.554 11.9 0 1.41.18 2.746.526 3.98 1.946 5.816 5.65 8.733 11.122 8.733 5.113 0 10.67-1.945 16.677-5.832l36 12.978-35.477 12.698c-6.175-4.406-11.637-6.61-16.402-6.61-5.653 0-9.622 2.917-11.918 8.732-.348 1.235-.526 2.553-.526 3.975 0 7.405 4.853 11.385 14.555 11.907-3.875 3.883-5.82 7.688-5.82 11.393 0 3.87 1.945 7.134 5.82 9.797 2.478 1.412 4.855 2.105 7.154 2.105 7.227 0 12.443-6.176 15.62-18.525l61.672-22.504 61.678 22.504c3.178 12.35 8.475 18.525 15.882 18.525 2.12 0 4.407-.693 6.884-2.105 4.052-2.663 6.092-5.928 6.092-9.797 0-3.705-1.953-7.51-5.828-11.393 9.528-.522 14.295-4.502 14.295-11.907 0-1.422-.178-2.74-.528-3.975-2.12-5.816-6.002-8.733-11.65-8.733z\"/>\r\n <path d=\"M48.436 128.904c9.703 11.114 23.38 19.242 41.035 24.346v3.986c0 4.936 1.673 9.086 5.026 12.433 3.35 3.357 7.498 5.21 12.44 5.562 5.117.357 8.906-.528 11.38-2.646 3.878 2.817 8.203 4.23 12.973 4.23 4.41 0 8.473-1.317 12.174-3.964 2.47 1.934 6.087 2.738 10.856 2.38 4.937-.527 9.09-2.425 12.44-5.688 3.35-3.28 5.025-7.37 5.025-12.307v-2.91c19.057-4.945 33.795-13.237 44.21-24.898 10.06-11.11 15.087-24.254 15.087-39.436 0-3.36-.355-6.886-1.063-10.597-3.526-22.57-13.94-41.2-31.23-55.844C180.612 7.856 158.464 0 132.347 0c-26.123 0-48.27 7.767-66.44 23.282C48.61 38.118 38.29 56.825 34.937 79.396c-.71 3.71-1.064 7.238-1.064 10.597 0 14.824 4.85 27.785 14.563 38.91zm104.43-68.155c5.205-6.086 11.513-9.13 18.92-9.13 7.593 0 13.987 3.044 19.195 9.13 5.2 6.075 7.81 13.445 7.81 22.086 0 8.65-2.608 16.02-7.81 22.108-5.207 6.097-11.602 9.13-19.193 9.13-7.408 0-13.716-3.033-18.922-9.13-5.21-6.087-7.814-13.46-7.814-22.108 0-8.64 2.604-16.01 7.815-22.087zm-28.06 60.678c2.555-3.307 5.064-4.968 7.54-4.968 2.47 0 4.803 1.83 7.013 5.51 2.204 3.66 3.316 7.144 3.316 10.468 0 5.062-3.36 7.58-10.067 7.58-4.415 0-7.678-1.135-9.793-3.395-1.237-1.41-1.85-3.147-1.85-5.25.002-3.308 1.278-6.62 3.838-9.945zm-53.34-60.68c5.294-6.084 11.65-9.13 19.058-9.13 7.406 0 13.762 3.046 19.06 9.13 5.296 6.077 7.948 13.447 7.948 22.088 0 8.65-2.65 16.02-7.948 22.108-5.297 6.097-11.654 9.13-19.06 9.13-7.41 0-13.764-3.033-19.06-9.13-5.29-6.087-7.943-13.46-7.943-22.108 0-8.64 2.653-16.01 7.945-22.087z\"/>\r\n</svg>"
/***/ }),
/* 33 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 383.344 383.345\">\r\n <path d=\"M273.217 106.9C246.037 62.034 215.804 23.205 200.2 4.052 198.114 1.488 194.98 0 191.674 0c-3.308 0-6.44 1.49-8.53 4.054-15.6 19.16-45.833 58-73.014 102.87-35.03 57.822-52.79 105.63-52.79 142.09 0 74.07 60.26 134.33 134.332 134.33s134.332-60.26 134.332-134.33c0-36.485-17.758-84.3-52.787-142.115zm-63.11 226.968c-7.845 2.006-15.987 3.022-24.206 3.022-50.185 0-91.014-37.93-91.014-84.55 0-11.255 2.97-24.405 8.825-39.083.99-2.48 3.808-3.895 6.586-3.295 2.776.598 4.64 3.018 4.354 5.65-.342 3.148-.516 6.223-.516 9.136 0 50.735 40.88 93.22 95.093 98.82 2.698.28 4.803 2.298 5.018 4.813.216 2.516-1.522 4.818-4.14 5.488z\"/>\r\n</svg>"
/***/ }),
/* 34 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <path d=\"M231.97 25.5c-82.09.7-162.87 37.735-213.314 103.625 26.08-22.208 57.052-38.305 90.063-47.5-62.24 53.704-94.583 139.09-79.626 225.28 1.09-28.258 7.8-55.66 19.28-80.655 1.154 51.488 18.492 102.143 52.22 143.344-38.003-76.004-22.756-193.02 39.844-240.313 11.657-5.955 24.047-10.833 37.093-14.436C284.597 85.27 394.467 151.13 423.157 261.5c16.562 63.723 2.315 128.343-33.25 177.313-4.68 4.68-9.852 8.942-15.47 12.875-5.947-1.8-11.324-4.187-16.03-7.22-12.01-7.737-19.51-19.947-20.656-33.624-2.096-24.99 14.13-53.014 46.53-80.53l-29.717-22.095c-16.038 39.73-38.954 61.946-64.188 65.186-13.836 1.777-27.648-2.677-39.03-11.844-8.41-6.77-15.634-16.017-21.5-27.406-16.69 19.306-20.72 43.155-16 67.28 5.483 28.04 23.502 55.683 47.28 72.252 21.973 15.312 49.595 21.202 74.813 16.375 9.043-1.732 17.75-4.832 25.843-9.344 18.055-8.925 34.396-20.126 47.25-35 65.17-57.975 96.26-151.12 72.47-242.658C453.52 95.415 358.743 24.782 255.47 25.875c-1.612.017-3.23.042-4.845.094-6.22-.368-12.44-.523-18.656-.47zm-90.657 145.125c-12.53-.06-18.07 15.934-6.063 23.656l188.688 133.032c4.29-6.45 8.42-14.145 12.25-23.187L150.968 173.53c-3.503-2.022-6.764-2.89-9.655-2.905z\"/>\r\n</svg>"
/***/ }),
/* 35 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 488.683 488.683\">\r\n <path d=\"M478.467 376.122l-58.143-58.19c-14.212-14.218-27.14-29.663-38.648-46.16L253.872 88.378c-2.153-3.087-5.68-4.93-9.45-4.93-3.765 0-7.292 1.842-9.444 4.93l-127.81 183.36c-11.518 16.513-24.463 31.982-38.706 46.216l-58.08 58.087c-8.526 8.53-12.058 20.86-9.32 32.6l15.92 68.343c1.22 5.213 5.857 8.9 11.204 8.9h173.7l42.553-220.375 42.54 220.377h173.665c5.35 0 9.985-3.688 11.205-8.9l15.92-68.272c2.74-11.743-.776-24.063-9.303-32.593zM60.264 120.473c18.454 0 34.895-8.325 45.94-21.39.812-.956.966-2.31.398-3.425-.568-1.116-1.756-1.78-3.023-1.684-1.363.11-2.753.165-4.147.165-33.28 0-60.264-26.983-60.264-60.263 0-9.56 2.28-18.57 6.25-26.587.554-1.124.398-2.468-.428-3.41-.822-.952-2.117-1.315-3.305-.936C17.505 10.78 0 33.426 0 60.21c0 33.28 26.982 60.263 60.264 60.263zM155.23 45.522c.398.38.588.936.493 1.472l-2.185 12.692c-.11.626.143 1.26.663 1.63.51.372 1.19.42 1.76.128l11.393-5.997c.492-.254 1.06-.254 1.553 0l11.393 5.997c.57.292 1.25.244 1.758-.127.52-.372.774-1.005.663-1.63l-2.183-12.693c-.096-.536.095-1.09.492-1.472l9.206-8.99c.445-.434.62-1.097.413-1.7-.192-.6-.712-1.044-1.348-1.13L176.58 31.85c-.552-.08-1.013-.42-1.25-.91l-5.713-11.544c-.27-.57-.854-.927-1.485-.927-.636 0-1.22.357-1.49.926l-5.71 11.545c-.24.49-.7.83-1.252.91l-12.723 1.85c-.636.088-1.156.53-1.347 1.133-.206.602-.03 1.265.413 1.7l9.207 8.99zM333.158 56.348c.392.38.567.934.488 1.472l-2.185 12.69c-.106.626.144 1.26.668 1.63.505.372 1.188.42 1.756.128l11.395-5.998c.488-.254 1.06-.254 1.55 0l11.395 5.998c.567.292 1.247.244 1.755-.127.52-.37.775-1.004.664-1.63l-2.186-12.69c-.075-.538.096-1.092.493-1.472l9.212-8.99c.44-.434.6-1.1.41-1.7-.188-.603-.712-1.046-1.344-1.133l-12.725-1.85c-.553-.08-1.014-.42-1.248-.91L347.54 30.22c-.267-.57-.854-.925-1.486-.925-.635 0-1.22.355-1.49.925l-5.71 11.545c-.24.49-.696.83-1.252.91l-12.723 1.85c-.633.087-1.156.53-1.348 1.132-.187.602-.03 1.267.413 1.702l9.213 8.988zM411.48 203.222c.392.38.583.936.487 1.472l-2.185 12.693c-.11.625.143 1.26.667 1.63.504.372 1.183.42 1.755.127l11.392-5.998c.493-.254 1.06-.254 1.554 0l11.393 5.998c.57.292 1.25.245 1.76-.127.52-.37.774-1.005.663-1.63l-2.185-12.693c-.095-.536.096-1.09.493-1.472l9.21-8.988c.442-.435.617-1.1.41-1.7-.19-.602-.71-1.045-1.346-1.132l-12.723-1.85c-.553-.08-1.014-.42-1.252-.91l-5.71-11.546c-.272-.57-.855-.927-1.487-.927-.635 0-1.22.356-1.49.926l-5.71 11.545c-.24.492-.696.83-1.252.91l-12.723 1.852c-.636.087-1.155.53-1.347 1.132-.206.602-.03 1.265.414 1.7l9.212 8.988z\"/>\r\n</svg>"
/***/ }),
/* 36 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <path d=\"M495.664 318.553l-17.338-31.233-67.478 37.458-24.212-13.98 24.58-12.152-15.833-32.02-45.925 22.71-29.963-17.3c1.298-5.134 1.993-10.504 1.993-16.036s-.695-10.902-1.993-16.035l29.963-17.3 45.925 22.71 15.833-32.02-24.58-12.155 24.212-13.98 67.478 37.46 17.338-31.232-48.74-27.056 39.708-22.924-17.86-30.934-39.707 22.924.938-55.737-35.716-.6-1.298 77.168-24.213 13.98 1.765-27.363-35.647-2.3-3.297 51.127-30.004 17.323c-7.675-7.455-17.163-13.044-27.733-16.046v-34.612l42.63-28.42-19.815-29.723-22.814 15.21V87.507L340.04 47.8l-18.38-30.63-47.8 28.68V0h-35.72v45.85l-47.8-28.68-18.38 30.63 66.18 39.708v27.956l-22.814-15.21-19.814 29.722 42.628 28.42v34.61c-10.57 3.003-20.057 8.592-27.733 16.047l-30.004-17.323-3.297-51.126-35.647 2.3 1.764 27.36-24.212-13.978-1.298-77.167-35.716.6.938 55.736-39.707-22.923-17.86 30.934 39.706 22.924-48.74 27.058 17.34 31.23 67.477-37.457 24.212 13.98-24.58 12.154 15.833 32.02 45.925-22.71 29.963 17.3c-1.298 5.134-1.993 10.504-1.993 16.036s.695 10.902 1.993 16.035l-29.963 17.3-45.925-22.71-15.833 32.02 24.58 12.154-24.212 13.978-67.48-37.458-17.337 31.23 48.74 27.057-39.708 22.926 17.86 30.934 39.707-22.924-.938 55.737 35.716.6 1.298-77.167 24.213-13.98-1.765 27.363 35.647 2.3 3.297-51.127 30.004-17.324c7.675 7.455 17.163 13.044 27.733 16.046v34.61l-42.63 28.42 19.815 29.722 22.814-15.208v27.956L171.96 464.2l18.378 30.63 47.8-28.68V512h35.722v-45.85l47.8 28.68 18.38-30.63-66.18-39.708v-27.956l22.814 15.21 19.814-29.722-42.628-28.42v-34.61c10.57-3.003 20.057-8.592 27.733-16.047l30.004 17.323 3.297 51.126 35.647-2.3-1.764-27.36 24.212 13.978 1.298 77.167 35.716-.6-.938-55.736 39.707 22.924 17.86-30.934-39.706-22.924 48.74-27.057z\"/>\r\n</svg>"
/***/ }),
/* 37 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <path d=\"M169.53 16.344L259.345 88 337 92.28l-1.03 18.657-161.376-8.906-118.78-4.904 227.28 68.03-197.72 246.75-14.53-17.655-49.22 96.626 248.69-202.78 51.81 11.592-38.78 40.594L270.5 329.5l-57.28 84.125L444.843 273.47 328 241.06l100.22-81.718c1.132.46 2.3.898 3.5 1.22 23.324 6.248 49.764-16.835 59.06-51.533 9.298-34.696-2.08-67.875-25.405-74.125-23.325-6.25-49.765 16.802-59.063 51.5-1.467 5.476-2.403 10.918-2.875 16.22L169.53 16.343z\"/>\r\n</svg>"
/***/ }),
/* 38 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <path d=\"M164.188 40.375c-168.48 35.59-220.94 167.97-17 187.47-13.147 35.014-21.172 74.948-22.22 114.218-35.694 33.01-59.593 66.343-59.593 66.343l47.72 47.72-39.345 26.218h113.28c-73.368-73.383-21.278-104.5 65.626-104.5 88.096 0 134.175 35.905 65.594 104.5h114.5l-40.563-26.22 47.72-47.718s-22.25-31.027-55.844-62.844c-.65-40.39-8.807-81.663-22.344-117.718 203.953-19.496 151.482-151.878-17-187.47-40.813 30.863 6.55 79.75 43.717 44.626 36.908 54.048 8.752 99.845-71.937 65.594-.02-.022-.042-.04-.063-.063-9.66 28.054-33.333 48.47-61.968 48.47-28.637 0-52.332-20.416-62-48.47l-.064.064C111.736 184.826 83.596 139.042 120.5 85c37.168 35.125 84.5-13.763 43.688-44.625zm90.28 24.063c-25.736 0-48 25.088-48 57.937 0 32.85 22.264 57.938 48 57.938 25.738 0 47.97-25.086 47.97-57.938 0-32.852-22.232-57.938-47.97-57.938z\"/>\r\n</svg>"
/***/ }),
/* 39 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 69.406 69.407\">\r\n <path d=\"M32.95 34.21H3.84c-1.138 0-2.163-.686-2.597-1.74-.43-1.053-.178-2.25.63-3.054L26.1 5.604H3.84c-1.55 0-2.8-1.267-2.8-2.802C1.04 1.248 2.29 0 3.84 0h29.11c1.136 0 2.163.69 2.592 1.743.432 1.053.18 2.252-.627 3.053L10.687 28.61H32.95c1.545 0 2.802 1.26 2.802 2.802 0 1.55-1.262 2.8-2.803 2.8zm32.612 5.757H51.85l15.687-15.42c.812-.807 1.05-2 .63-3.053-.43-1.053-1.466-1.747-2.604-1.747H44.995c-1.538 0-2.802 1.255-2.802 2.8 0 1.536 1.264 2.803 2.802 2.803h13.72L43.028 40.766c-.818.81-1.058 1.998-.627 3.054.434 1.062 1.456 1.75 2.595 1.75H65.56c1.55 0 2.803-1.258 2.803-2.8 0-1.545-1.253-2.803-2.8-2.803zM33.935 63.804H24.37L35.9 52.477c.814-.8 1.06-2.01.63-3.063-.432-1.052-1.46-1.74-2.596-1.74h-16.41c-1.547 0-2.803 1.257-2.803 2.8s1.257 2.803 2.804 2.803h9.565L15.556 64.602c-.812.81-1.06 1.998-.627 3.054.43 1.056 1.456 1.75 2.595 1.75h16.41c1.548 0 2.802-1.258 2.802-2.8s-1.243-2.802-2.802-2.802z\"/>\r\n</svg>"
/***/ }),
/* 40 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 209.841 209.841\">\r\n <path d=\"M209.572 57.2c2.77-26.837-16.525-41.194-27.115-45.036-2.348-.854-5.24-.063-6.402 2.15-1.134 2.16-.8 4.6 1.106 6.065.552.878 3.11 5.73 2.414 19.116-.13 2.48-.472 9.068-13.93 9.07-1.47 0-2.824-.09-3.93-.2-.957-2-2.527-4.618-4.926-8.26-3.986-6.054-10.233-9.253-18.067-9.253-4.53 0-9.62 1.157-13.967 3.175-4.647 2.158-15.527 3.447-19.834 3.81-4.308-.362-15.187-1.65-19.834-3.81-4.346-2.018-9.437-3.175-13.968-3.175-7.834 0-14.08 3.2-18.067 9.252-2.397 3.643-3.968 6.262-4.926 8.26-1.105.11-2.46.2-3.93.2-13.457 0-13.8-6.59-13.93-9.07C29.57 26.11 32.128 21.26 32.68 20.38c1.907-1.466 2.24-3.906 1.106-6.065-1.162-2.213-4.052-3.005-6.402-2.15C16.794 16.004-2.5 30.364.27 57.2 2.185 75.776 10.485 83.244 17.58 86.198c-5.747 5.5-11.913 12.858-12.09 19.237-.123 4.396 1.027 7.87 3.417 10.328 2.53 2.602 6.18 3.866 11.16 3.866 2.266 0 4.866-.256 7.95-.78 7.076-1.204 14.068-2.94 18.456-4.112 2.317 6.3 6.745 17.98 10.533 25.902 4.03 8.428 5.998 16.358 6.57 18.91-.758 4.618-2.663 20.932 6.328 29.922 7.06 7.06 20.983 8.542 31.42 8.542 1.763 0 3.045-.05 3.592-.075.548.025 1.83.075 3.59.075 10.44 0 24.364-1.482 31.423-8.542 8.99-8.99 7.086-25.303 6.328-29.92.574-2.56 2.542-10.486 6.572-18.912 3.788-7.922 8.216-19.602 10.533-25.902 4.388 1.173 11.38 2.907 18.456 4.11 3.085.526 5.686.782 7.95.782 4.98 0 8.632-1.265 11.162-3.866 2.39-2.457 3.54-5.932 3.418-10.33-.178-6.377-6.344-13.735-12.09-19.235 7.096-2.954 15.395-10.42 17.312-28.997zM59.048 101.576c0-4.13 1.86-7.97 5.106-10.54 1.89-1.5 4.578-1.433 6.396.153l12.5 10.927c1.816 1.588 2.24 4.245 1.01 6.318-2.417 4.065-6.847 6.59-11.562 6.59-7.416.002-13.45-6.033-13.45-13.45zm25.42 82.566c-.9.35-1.843.527-2.804.527-4.59 0-8.6-3.99-9.976-9.93-1.582-6.825.796-13.148 5.654-15.035.9-.35 1.845-.527 2.804-.527 4.59 0 8.6 3.99 9.976 9.93 1.582 6.824-.796 13.147-5.654 15.034zm53.83-9.402c-1.377 5.938-5.386 9.93-9.976 9.93-.96 0-1.904-.178-2.805-.528-4.857-1.886-7.235-8.21-5.653-15.034 1.377-5.938 5.386-9.93 9.976-9.93.96 0 1.902.178 2.803.527 4.86 1.887 7.237 8.21 5.655 15.035zm-.955-59.713c-4.715 0-9.145-2.525-11.56-6.59-1.232-2.074-.81-4.73 1.007-6.32l12.5-10.927c1.818-1.586 4.507-1.652 6.397-.154 3.245 2.57 5.106 6.412 5.106 10.54 0 7.416-6.034 13.45-13.45 13.45z\"/>\r\n</svg>"
/***/ }),
/* 41 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 105.144 105.144\">\r\n <path d=\"M98.126 30.812c-9.885-11.406-33.412-10.61-35.012-1.417-1.328 7.66 6.71 11.943 10.554 15.915 4.445 4.592 5.2 12.01 1.535 17.07-1.528 2.102-10.65 11.332-7.938 20.447 1.378 4.624 4.48 6.696 8.54 7.537 13.495 2.81 14.92-7.9 15.06-12.65.124-4.46.79-8.794 2.626-12.878 4.507-10.246 11.34-26.286 4.636-34.024zM63.99.045c3.054-.49 6.167 3.114 6.958 8.045.79 4.932-1.034 9.33-4.083 9.82-3.053.49-6.163-3.114-6.957-8.045-.788-4.932 1.037-9.33 4.083-9.82zM81.83 9.37c.186 3.455-1.39 6.346-3.522 6.464-2.137.115-4.015-2.59-4.205-6.045s1.393-6.346 3.523-6.464c2.133-.114 4.015 2.592 4.205 6.045zm8.96 2.492c.155 2.802-1.126 5.154-2.862 5.247-1.736.092-3.257-2.102-3.41-4.908-.155-2.806 1.123-5.154 2.86-5.25 1.735-.097 3.263 2.104 3.413 4.91zm5.527 4.144c-.147 2.072-1.306 3.68-2.588 3.586-1.28-.09-2.2-1.843-2.054-3.915s1.303-3.68 2.588-3.586c1.278.09 2.202 1.844 2.055 3.916zm3.915 4.89c-.115 1.652-1.04 2.934-2.065 2.862-1.02-.075-1.757-1.474-1.643-3.128.118-1.653 1.045-2.935 2.07-2.863 1.023.075 1.756 1.478 1.638 3.128zM42.027 43.71c-1.6-9.194-25.127-9.985-35.008 1.417-6.704 7.737.12 23.78 4.634 34.024 1.836 4.088 2.498 8.415 2.627 12.874.14 4.753 1.57 15.46 15.06 12.658 4.06-.845 7.162-2.913 8.537-7.54 2.713-9.116-6.406-18.346-7.934-20.447-3.668-5.06-2.913-12.476 1.532-17.07 3.842-3.972 11.88-8.256 10.552-15.915zM34.186 22.41c.795-4.933 3.908-8.537 6.954-8.046 3.046.49 4.874 4.885 4.083 9.82-.795 4.932-3.908 8.536-6.954 8.045-3.05-.49-4.875-4.886-4.084-9.82zm-3.14 1.692c-.185 3.454-2.07 6.16-4.204 6.04-2.137-.114-3.715-3.01-3.525-6.462.19-3.454 2.072-6.16 4.205-6.04 2.133.116 3.715 3.012 3.525 6.462zm-10.42 2.42c-.154 2.805-1.678 5-3.41 4.906-1.73-.093-3.01-2.444-2.857-5.247.15-2.805 1.677-5.002 3.41-4.91 1.73.097 3.006 2.45 2.856 5.25zm-7.158 3.47c.147 2.072-.773 3.826-2.05 3.915s-2.438-1.517-2.585-3.59.773-3.826 2.05-3.915c1.282-.09 2.438 1.518 2.585 3.59zm-4.86 4.96c.118 1.654-.616 3.057-1.64 3.13-1.02.07-1.942-1.21-2.06-2.864-.118-1.653.616-3.056 1.636-3.128 1.023-.075 1.946 1.206 2.064 2.863z\"/>\r\n</svg>"
/***/ }),
/* 42 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\r\n <path d=\"M437.034 437.002C483.352 390.676 512 326.682 512 256c0-70.6-28.583-134.526-74.806-180.84-.06-.06-.11-.126-.17-.187-.06-.06-.126-.11-.187-.17C390.523 28.583 326.6 0 256 0S121.477 28.582 75.164 74.804c-.06.06-.128.11-.188.17-.06.06-.11.127-.17.188C28.584 121.474 0 185.4 0 256c0 70.683 28.648 134.676 74.966 181.002l.014.015c.005.005.01.01.015.013C121.32 483.35 185.315 512 256 512s134.68-28.65 181.005-74.97l.015-.012.014-.016zM43.726 277.332H151.47c2.765 13.618 8.127 26.29 15.542 37.484l-76.188 76.188c-25.865-31.606-42.838-70.767-47.098-113.67zm47.1-156.34l76.187 76.19c-7.415 11.195-12.78 23.867-15.544 37.485H43.725c4.26-42.905 21.234-82.067 47.1-113.674zm377.448 113.675H360.53c-2.764-13.618-8.127-26.29-15.543-37.486l76.188-76.186c25.865 31.606 42.84 70.768 47.1 113.673zm-167.024 66.58c-.022.023-.04.047-.062.07C289.61 312.86 273.638 320 256 320s-33.61-7.14-45.188-18.684c-.022-.022-.04-.046-.062-.068-.022-.022-.046-.04-.067-.06C199.14 289.61 192 273.637 192 256c0-35.343 28.657-64 64-64s64 28.657 64 64c0 17.638-7.14 33.61-18.683 45.187-.02.022-.045.04-.067.06zm13.567-134.236c-11.195-7.413-23.867-12.776-37.483-15.54V43.725c42.904 4.26 82.065 21.234 113.67 47.098l-76.187 76.187zm-80.15-15.54c-13.617 2.764-26.288 8.126-37.483 15.54l-76.188-76.187c31.606-25.864 70.767-42.838 113.67-47.098V151.47zM197.18 344.986c11.197 7.415 23.87 12.78 37.487 15.544v107.745c-42.905-4.26-82.067-21.235-113.674-47.1l76.188-76.188zm80.153 15.544c13.618-2.764 26.29-8.127 37.486-15.543l76.187 76.188c-31.607 25.865-70.77 42.84-113.674 47.1V360.53zm67.656-45.713c7.413-11.195 12.776-23.867 15.54-37.483h107.745c-4.26 42.904-21.234 82.065-47.098 113.67l-76.188-76.187z\"/>\r\n</svg>"
/***/ }),
/* 43 */
/***/ (function(module, exports) {
module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 297.288 297.288\">\r\n <path d=\"M.207 83.397c8.326 37.91 36.12 147.72 36.12 147.72 1.455 5.892 6.74 9.964 12.743 9.964.262 0 .524-.017.79-.032 6.322-.377 11.475-5.22 12.25-11.505l9.982-80.853 13.583 9.816c4.592 3.32 10.793 3.32 15.388 0l20.256-14.643 20.255 14.642c2.297 1.66 4.995 2.49 7.693 2.49 2.697 0 5.396-.83 7.692-2.49l20.26-14.644 20.26 14.646c4.593 3.318 10.796 3.318 15.387 0l12.602-9.107 9.9 80.28c.774 6.286 5.93 11.124 12.252 11.5.265.017.526.024.787.024 6.003 0 11.29-4.093 12.743-9.986 0 0 27.42-110.076 35.896-146.174 1.657-7.062-5.69-14.236-12.943-14.236H13.374c-7.252 0-14.722 5.506-13.167 12.59zm44.56 72.635L30.142 96.807h21.934l-7.31 59.224zm160.41-24.374l-20.264-14.644c-4.593-3.32-10.795-3.32-15.386 0l-20.26 14.643-20.255-14.642c-4.594-3.32-10.795-3.32-15.388 0L93.37 131.658l-17.606-12.545 2.776-22.306h140.4l2.86 23.017-16.624 11.836zm47.54 24.448l-7.313-59.3h21.94l-14.628 59.3zM78.41 271.02c-3.456 0-6.84 1.394-9.286 3.84-2.444 2.444-3.848 5.83-3.848 9.294 0 3.455 1.403 6.84 3.848 9.284 2.445 2.445 5.83 3.85 9.285 3.85 3.452 0 6.836-1.404 9.28-3.85 2.445-2.444 3.85-5.83 3.85-9.283 0-3.464-1.404-6.85-3.85-9.294-2.444-2.444-5.83-3.837-9.282-3.837z\"/>\r\n <path d=\"M100.046 179.227c-3.454 0-6.84 1.405-9.284 3.85-2.444 2.445-3.85 5.828-3.85 9.283 0 3.456 1.405 6.84 3.85 9.284 2.445 2.444 5.83 3.85 9.284 3.85 3.455 0 6.84-1.405 9.283-3.85 2.444-2.444 3.85-5.828 3.85-9.284 0-3.455-1.405-6.838-3.85-9.283-2.446-2.445-5.83-3.85-9.285-3.85zm96.294-41.205c-3.455 0-6.84 1.404-9.285 3.85-2.444 2.443-3.85 5.827-3.85 9.283 0 3.455 1.405 6.84 3.85 9.283 2.445 2.445 5.83 3.85 9.284 3.85 3.453 0 6.837-1.404 9.28-3.85 2.446-2.444 3.85-5.828 3.85-9.283 0-3.456-1.403-6.84-3.85-9.284-2.443-2.443-5.827-3.847-9.282-3.847zm43.277 93.252c-3.455 0-6.84 1.403-9.284 3.848-2.444 2.445-3.85 5.83-3.85 9.285s1.405 6.838 3.85 9.284c2.444 2.446 5.84 3.85 9.284 3.85 3.455 0 6.84-1.403 9.283-3.85 2.455-2.444 3.85-5.827 3.85-9.282s-1.405-6.84-3.85-9.285c-2.444-2.445-5.828-3.848-9.283-3.848z\"/>\r\n</svg>"
/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var stylesInDom = {},
memoize = function(fn) {
var memo;
return function () {
if (typeof memo === "undefined") memo = fn.apply(this, arguments);
return memo;
};
},
isOldIE = memoize(function() {
return /msie [6-9]\b/.test(self.navigator.userAgent.toLowerCase());
}),
getHeadElement = memoize(function () {
return document.head || document.getElementsByTagName("head")[0];
}),
singletonElement = null,
singletonCounter = 0,
styleElementsInsertedAtTop = [],
fixUrls = __webpack_require__(45);
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 <style>
// tags it will allow on a page
if (typeof options.singleton === "undefined") options.singleton = isOldIE();
// By default, add <style> tags to the bottom of <head>.
if (typeof options.insertAt === "undefined") options.insertAt = "bottom";
var styles = listToStyles(list);
addStylesToDom(styles, options);
return function update(newList) {
var mayRemove = [];
for(var i = 0; i < styles.length; i++) {
var item = styles[i];
var domStyle = stylesInDom[item.id];
domStyle.refs--;
mayRemove.push(domStyle);
}
if(newList) {
var newStyles = listToStyles(newList);
addStylesToDom(newStyles, options);
}
for(var i = 0; i < mayRemove.length; i++) {
var domStyle = mayRemove[i];
if(domStyle.refs === 0) {
for(var j = 0; j < domStyle.parts.length; j++)
domStyle.parts[j]();
delete stylesInDom[domStyle.id];
}
}
};
};
function addStylesToDom(styles, options) {
for(var i = 0; i < styles.length; i++) {
var item = styles[i];
var domStyle = stylesInDom[item.id];
if(domStyle) {
domStyle.refs++;
for(var j = 0; j < domStyle.parts.length; j++) {
domStyle.parts[j](item.parts[j]);
}
for(; j < item.parts.length; j++) {
domStyle.parts.push(addStyle(item.parts[j], options));
}
} else {
var parts = [];
for(var j = 0; j < item.parts.length; j++) {
parts.push(addStyle(item.parts[j], options));
}
stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
}
}
}
function listToStyles(list) {
var styles = [];
var newStyles = {};
for(var i = 0; i < list.length; i++) {
var item = list[i];
var id = item[0];
var css = item[1];
var media = item[2];
var sourceMap = item[3];
var part = {css: css, media: media, sourceMap: sourceMap};
if(!newStyles[id])
styles.push(newStyles[id] = {id: id, parts: [part]});
else
newStyles[id].parts.push(part);
}
return styles;
}
function insertStyleElement(options, styleElement) {
var head = getHeadElement();
var lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];
if (options.insertAt === "top") {
if(!lastStyleElementInsertedAtTop) {
head.insertBefore(styleElement, head.firstChild);
} else if(lastStyleElementInsertedAtTop.nextSibling) {
head.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);
} else {
head.appendChild(styleElement);
}
styleElementsInsertedAtTop.push(styleElement);
} else if (options.insertAt === "bottom") {
head.appendChild(styleElement);
} else {
throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
}
}
function removeStyleElement(styleElement) {
styleElement.parentNode.removeChild(styleElement);
var idx = styleElementsInsertedAtTop.indexOf(styleElement);
if(idx >= 0) {
styleElementsInsertedAtTop.splice(idx, 1);
}
}
function createStyleElement(options) {
var styleElement = document.createElement("style");
options.attrs.type = "text/css";
attachTagAttrs(styleElement, options.attrs);
insertStyleElement(options, styleElement);
return styleElement;
}
function createLinkElement(options) {
var linkElement = document.createElement("link");
options.attrs.type = "text/css";
options.attrs.rel = "stylesheet";
attachTagAttrs(linkElement, options.attrs);
insertStyleElement(options, linkElement);
return linkElement;
}
function attachTagAttrs(element, attrs) {
Object.keys(attrs).forEach(function (key) {
element.setAttribute(key, attrs[key]);
});
}
function addStyle(obj, options) {
var styleElement, update, remove;
if (options.singleton) {
var styleIndex = singletonCounter++;
styleElement = singletonElement || (singletonElement = createStyleElement(options));
update = applyToSingletonTag.bind(null, styleElement, styleIndex, false);
remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);
} else if(obj.sourceMap &&
typeof URL === "function" &&
typeof URL.createObjectURL === "function" &&
typeof URL.revokeObjectURL === "function" &&
typeof Blob === "function" &&
typeof btoa === "function") {
styleElement = createLinkElement(options);
update = updateLink.bind(null, styleElement, options);
remove = function() {
removeStyleElement(styleElement);
if(styleElement.href)
URL.revokeObjectURL(styleElement.href);
};
} else {
styleElement = createStyleElement(options);
update = applyToTag.bind(null, styleElement);
remove = function() {
removeStyleElement(styleElement);
};
}
update(obj);
return function updateStyle(newObj) {
if(newObj) {
if(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)
return;
update(obj = newObj);
} else {
remove();
}
};
}
var replaceText = (function () {
var textStore = [];
return function (index, replacement) {
textStore[index] = replacement;
return textStore.filter(Boolean).join('\n');
};
})();
function applyToSingletonTag(styleElement, index, remove, obj) {
var css = remove ? "" : obj.css;
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = replaceText(index, css);
} else {
var cssNode = document.createTextNode(css);
var childNodes = styleElement.childNodes;
if (childNodes[index]) styleElement.removeChild(childNodes[index]);
if (childNodes.length) {
styleElement.insertBefore(cssNode, childNodes[index]);
} else {
styleElement.appendChild(cssNode);
}
}
}
function applyToTag(styleElement, obj) {
var css = obj.css;
var media = obj.media;
if(media) {
styleElement.setAttribute("media", media)
}
if(styleElement.styleSheet) {
styleElement.styleSheet.cssText = css;
} else {
while(styleElement.firstChild) {
styleElement.removeChild(styleElement.firstChild);
}
styleElement.appendChild(document.createTextNode(css));
}
}
function updateLink(linkElement, options, obj) {
var css = obj.css;
var sourceMap = obj.sourceMap;
/* If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
and there is no publicPath defined then lets turn convertToAbsoluteUrls
on by default. Otherwise default to the convertToAbsoluteUrls option
directly
*/
var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
if (options.convertToAbsoluteUrls || autoFixUrls){
css = fixUrls(css);
}
if(sourceMap) {
// http://stackoverflow.com/a/26603875
css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
}
var blob = new Blob([css], { type: "text/css" });
var oldSrc = linkElement.href;
linkElement.href = URL.createObjectURL(blob);
if(oldSrc)
URL.revokeObjectURL(oldSrc);
}
/***/ }),
/* 45 */
/***/ (function(module, exports) {
/**
* When source maps are enabled, `style-loader` uses a link element with a data-uri to
* embed the css on the page. This breaks all relative urls because now they are relative to a
* bundle instead of the current page.
*
* One solution is to only use full urls, but that may be impossible.
*
* Instead, this function "fixes" the relative urls to be absolute according to the current page location.
*
* A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
*
*/
module.exports = function (css) {
// get current location
var location = typeof window !== "undefined" && window.location;
if (!location) {
throw new Error("fixUrls requires window.location");
}
// blank or null?
if (!css || typeof css !== "string") {
return css;
}
var baseUrl = location.protocol + "//" + location.host;
var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
// convert each url(...)
var fixedCss = css.replace(/url *\( *(.+?) *\)/g, function(fullMatch, origUrl) {
// strip quotes (if they exist)
var unquotedOrigUrl = origUrl
.replace(/^"(.*)"$/, function(o, $1){ return $1; })
.replace(/^'(.*)'$/, function(o, $1){ return $1; });
// already a full url? no change
if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) {
return fullMatch;
}
// convert the url to a full url
var newUrl;
if (unquotedOrigUrl.indexOf("//") === 0) {
//TODO: should we add protocol?
newUrl = unquotedOrigUrl;
} else if (unquotedOrigUrl.indexOf("/") === 0) {
// path should be relative to the base url
newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
} else {
// path should be relative to current directory
newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
}
// send back the fixed url(...)
return "url(" + JSON.stringify(newUrl) + ")";
});
// send back the fixed css
return fixedCss;
};
/***/ }),
/* 46 */
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(14);
if(typeof content === 'string') content = [[module.i, content, '']];
// add the styles to the DOM
var update = __webpack_require__(44)(content, {});
if(content.locals) module.exports = content.locals;
// Hot Module Replacement
if(false) {
// When the styles change, update the <style> tags
if(!content.locals) {
module.hot.accept("!!../node_modules/css-loader/index.js??ref--2-1!../node_modules/postcss-loader/index.js!./ext.css", function() {
var newContent = require("!!../node_modules/css-loader/index.js??ref--2-1!../node_modules/postcss-loader/index.js!./ext.css");
if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
update(newContent);
});
}
// When the module is disposed, remove the <style> tags
module.hot.dispose(function() { update(); });
}
/***/ }),
/* 47 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__storage_storage__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__notifications_sendNotify__ = __webpack_require__(3);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_const_texts__ = __webpack_require__(9);
///<reference path="../typings.d.ts"/>
class Auto {
constructor() {
this.lastquest = '';
}
check(hero, settingsValues) {
setTimeout(() => {
this.checkHero(hero, settingsValues);
this.checkQuest(hero, settingsValues);
}, 1000);
}
checkHero(hero, settingsValues) {
const actionType = hero.action.type;
const actionPercent = hero.action.percents;
const energy = hero.energy.value;
let energyBonus = settingsValues.autohelpEnergyBonus ? hero.energy.bonus - settingsValues.autohelpEnergyBonusMax : 0;
if (energyBonus < 0)
energyBonus = 0;
if (energy + energyBonus < 4)
return;
const isFight = actionType === 3 /* fight */;
const isRest = actionType < 10 && actionType !== 3 /* fight */;
const isBoss = !!hero.action.is_boss;
if (settingsValues.autohelpHp &&
hero.base.health < settingsValues.autohelpHpLowerValue &&
isFight &&
(!settingsValues.autohelpHpBoss || isBoss)) {
godHelp(`Низкое здоровье: ${hero.base.health}`);
return;
}
const isHeplingCompanion = actionType === 15 /* companionHeal */;
if (settingsValues.autohelpCompanion && isHeplingCompanion && hero.companion.health < settingsValues.autohelpCompanionHp) {
godHelp(`Низкое здоровье спутника: ${hero.companion.health}`);
return;
}
if (settingsValues.autohelpEnergy && energy > settingsValues.autohelpEnergyGreaterValue && ((settingsValues.autohelpEnergyFight && isFight) ||
(settingsValues.autohelpEnergyRest && isRest) ||
(settingsValues.autohelpEnergyWalk && actionType === 2 /* walk */) ||
(settingsValues.autohelpEnergyTradeMed && (actionType === 8 /* trade */ || actionType === 10 /* energy */)))) {
godHelp(`Накопилась энергия: ${energy}`);
return;
}
if (settingsValues.autohelpIdle && actionType === 0 && !isFight && actionPercent > 0 && actionPercent < 0.8) {
godHelp('Герой бездействует');
return;
}
if (settingsValues.autohelpDead && actionType === 4 && !isFight && actionPercent > 0 && actionPercent < 0.8) {
godHelp('Герой умер');
return;
}
const hasCard = !$('.pgf-get-card-button').hasClass('pgf-hidden');
if (settingsValues.autocard && hasCard) {
$('.pgf-get-card-button a').trigger('click');
return;
}
return;
function godHelp(msg) {
const ability = 'help';
console.log(`god ${ability}!`, actionType, msg, Object.assign({}, hero));
if (settingsValues.autohelpNotify) {
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__notifications_sendNotify__["a" /* sendNotify */])(`The Tale Extended - ${__WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].heroName}`, {
tag: 'autohelp',
body: `Сработала автоматическая помощь
${msg}
Текущее действие: ${__WEBPACK_IMPORTED_MODULE_2__utils_const_texts__["a" /* ACTION_TYPE_TEXTS */][actionType]}`,
addTime: true,
});
}
if (!settingsValues.autohelp) {
return;
}
// return;
const url = `/game/abilities/${ability}/api/use?api_version=1.0&api_client=${window.API_CLIENT}`;
hero.energy.value -= 4;
// const csrf = document.head.innerHTML.match(/"X-CSRFToken"[^"]*(".*")/)[1].replace(/"/g, '');
$.ajax({
url,
dataType: 'json',
type: 'post',
// beforeSend: function(xhr) {
// xhr.setRequestHeader('X-CSRFToken', csrf);
// },
data: {},
});
}
}
checkQuest(hero, settingsValues) {
const selectChoices = {
peacePlus: settingsValues.autoquestPeacePlus,
peaceMinus: settingsValues.autoquestPeaceMinus,
honorPlus: settingsValues.autoquestHonorPlus,
honorMinus: settingsValues.autoquestHonorMinus,
};
const quests = hero.quests.quests;
const line = quests[1].line;
for (let i = 0; i < line.length; i++) {
const q = line[i];
for (let choiceIndex = 0; choiceIndex < q.choice_alternatives.length; choiceIndex++) {
const choiceName = q.choice_alternatives[choiceIndex][1];
const option_uid = q.choice_alternatives[choiceIndex][0];
for (const reward in Auto.CHOICES) {
if (selectChoices[reward] &&
Auto.CHOICES.hasOwnProperty(reward) &&
Auto.CHOICES[reward].includes(choiceName)) {
chooseQuest(option_uid, choiceName);
}
}
}
}
function chooseQuest(uid, name) {
if (settingsValues.autoquestNotify && this.lastquest !== name) {
this.lastquest = name;
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__notifications_sendNotify__["a" /* sendNotify */])(`The Tale Extended - ${__WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].heroName}`, {
tag: 'autoquest',
body: `Сделан выбор! \n— ${name}`,
addTime: true,
icon: `${window.extPath}img/quest/caravan.png`,
});
}
if (!settingsValues.autoquest) {
return;
}
// const csrf = document.head.innerHTML.match(/("X-CSRFToken")(.*)(".*")/, 'g')[3].replace(/"/g, '');
$.ajax({
url: `/game/quests/api/choose?api_version=1.0&api_client=${window.API_CLIENT}&option_uid=${encodeURIComponent(uid)}`,
dataType: 'json',
type: 'post',
// beforeSend: function(xhr) {
// xhr.setRequestHeader('X-CSRFToken', csrf);
// },
data: {},
});
}
}
}
/* harmony export (immutable) */ __webpack_exports__["a"] = Auto;
Auto.CHOICES = {
/* peacefullnes */
peacePlus: [
'прибегнуть к дипломатии',
],
peaceMinus: [
'задействовать грубую силу',
],
honorPlus: [
'довести дело до конца',
'защищать торговца',
'честно выполнить свои обязательства',
],
honorMinus: [
'поддаться укорам совести и раскрыться',
'шантажировать самостоятельно',
'присвоить письмо и продать',
'украсть-украсть-украсть',
'подделать письмо',
],
};
/***/ }),
/* 48 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__storage_storage__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sendNotify__ = __webpack_require__(3);
///<reference path="../typings.d.ts"/>
class Notifications {
constructor() {
this.lastNotifyMessagesText = '';
}
check(hero, settingsValues) {
if (!settingsValues.notify)
return;
this.checkHero(hero, settingsValues);
this.checkQuests(hero.quests.quests, settingsValues);
}
checkHero(hero, settingsValues) {
if (!settingsValues.notify)
return;
const notifyMessages = [];
const minHp = settingsValues.notifyHeroHpLowerValue;
if (settingsValues.notifyHeroHp && minHp) {
const health = hero.base.health;
if (health < minHp) {
notifyMessages.push(`Низкое здоровье: ${health} HP`);
}
}
const maxEnergy = settingsValues.notifyHeroEnergyGreaterValue;
if (settingsValues.notifyHeroEnergy && maxEnergy) {
const energy = hero.energy.value;
if (energy > maxEnergy) {
notifyMessages.push(`Энергия накопилась: ${energy}`);
}
}
if (settingsValues.notifyHeroIdle) {
const actionType = hero.action.type;
if (actionType === 0) {
notifyMessages.push('Герой бездействует');
}
}
if (notifyMessages.length) {
const notifyMessagesText = notifyMessages.join('\n');
if (notifyMessagesText !== this.lastNotifyMessagesText) {
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__sendNotify__["a" /* sendNotify */])(`The Tale Extended - ${__WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].heroName}`, {
tag: 'send',
body: notifyMessagesText,
});
}
this.lastNotifyMessagesText = notifyMessagesText;
}
}
checkQuests(quests, settingsValues) {
const line = quests[1].line;
const lineOld = this.lastQuests && this.lastQuests[1] && this.lastQuests[1].line || [];
const newLines = [];
for (let i = 0; i < line.length; i++) {
const q = line[i];
const qOld = lineOld[i];
if (!qOld || !Notifications.isSameQuest(q, qOld)) {
if (settingsValues.notify &&
settingsValues.notifyQuestChoose &&
q.choice_alternatives &&
q.choice_alternatives.length) {
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__sendNotify__["a" /* sendNotify */])(q.name, {
tag: 'quest',
body: `${__WEBPACK_IMPORTED_MODULE_0__storage_storage__["a" /* default */].heroName} ${q.action}!`,
icon: `${window.extPath}img/quest/caravan.png`,
addTime: true,
});
}
newLines.push(q);
}
}
this.lastQuests = quests;
}
static isSameQuest(q1, q2) {
return Notifications.questTests.every(key => q1[key] === q2[key]);
}
}
/* harmony export (immutable) */ __webpack_exports__["a"] = Notifications;
Notifications.questTests = ['action', 'choice', 'name', 'type', 'uid'];
/***/ }),
/* 49 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
const setsAuto = [{
title: 'Помощь герою (<span class="link-ajax" data-auto="rest">миролюбие</span>/<span class="link-ajax" data-auto="fight">агрессия</span>)',
fields: [{
label: 'Автоматическая помощь',
note: 'Внимание! Настройки применяются в момент нажатия',
name: 'autohelp',
isToggle: true,
value: false,
subs: [{
label: 'Уведомлять о помощи',
name: 'autohelpNotify',
isToggle: true,
value: false,
}, {
label: 'Использовать бонусную энергию, оставить',
note: 'Указанный запас энергии тратиться не будет',
name: 'autohelpEnergyBonus',
isToggle: true,
value: false,
inputs: [{
name: 'autohelpEnergyBonusMax',
type: 'num',
value: 0,
}],
}, {
label: 'Герой бездействует',
name: 'autohelpIdle',
isToggle: true,
value: true,
}, {
label: 'Герой воскресает',
name: 'autohelpDead',
isToggle: true,
value: true,
}, {
label: 'Здоровье в бою ниже ',
name: 'autohelpHp',
isToggle: true,
value: true,
inputs: [{
type: 'num',
name: 'autohelpHpLowerValue',
value: 200,
}],
subs: [{
label: 'только против босса',
name: 'autohelpHpBoss',
isToggle: true,
isInline: true,
value: true,
}],
}, {
label: 'Лечение спутника, если его здоровье меньше',
name: 'autohelpCompanion',
isToggle: true,
isInline: true,
value: true,
inputs: [{
type: 'num',
name: 'autohelpCompanionHp',
isInline: true,
value: 20,
}],
}, {
label: 'Энергия выше ',
name: 'autohelpEnergy',
isToggle: true,
value: true,
inputs: [{
type: 'num',
name: 'autohelpEnergyGreaterValue',
value: 10,
}],
subs: [{
label: 'в бою',
name: 'autohelpEnergyFight',
isToggle: true,
isInline: true,
value: false,
}, {
label: 'вне боя',
name: 'autohelpEnergyRest',
isToggle: true,
isInline: true,
value: false,
}, {
label: 'в пути',
name: 'autohelpEnergyWalk',
isToggle: true,
isInline: true,
value: true,
}, {
label: 'торг/медитация',
name: 'autohelpEnergyTradeMed',
isToggle: true,
isInline: true,
value: true,
},
],
}],
}, {
label: 'Автоматический выбор в задании',
name: 'autoquest',
isToggle: true,
value: false,
subs: [{
label: 'Уведомлять о выборе',
name: 'autoquestNotify',
isToggle: true,
value: false,
}, {
label: 'Задания, влияющие на честь',
// note: 'Доставка, сопроводить караван, пошпионить',
name: 'autoquestHonor',
isToggle: true,
value: true,
subs: [{
label: 'честно',
name: 'autoquestHonorPlus',
isToggle: true,
isInline: true,
value: true,
}, {
label: 'бесчестно',
name: 'autoquestHonorMinus',
isToggle: true,
isInline: true,
value: false,
}],
}, {
label: 'Задания, влияющие на миролюбие',
// note: 'Выбить долг',
name: 'autoquestPeace',
isToggle: true,
value: true,
subs: [{
label: 'миролюбиво',
name: 'autoquestPeacePlus',
isToggle: true,
isInline: true,
value: true,
}, {
label: 'воинственно',
name: 'autoquestPeaceMinus',
isToggle: true,
isInline: true,
value: false,
}],
}],
}, {
label: 'Брать карты',
name: 'autocard',
isToggle: true,
value: false,
}],
}];
/* harmony export (immutable) */ __webpack_exports__["a"] = setsAuto;
/***/ }),
/* 50 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
const MAX_LOG_LENGTH = 100000;
const setsGame = [
{
title: 'Уведомления',
fields: [{
label: 'Отправлять уведомления (<span class="link-ajax" id="test-notifications">тест</span>)',
name: 'notify',
isToggle: true,
value: true,
subs: [{
label: 'Выбор в задании',
name: 'notifyQuestChoose',
isToggle: true,
value: true,
}, {
label: 'Герой бездействует',
name: 'notifyHeroIdle',
isToggle: true,
value: true,
}, {
label: 'Здоровье ниже ',
name: 'notifyHeroHp',
isToggle: true,
value: true,
inputs: [{
type: 'num',
name: 'notifyHeroHpLowerValue',
value: 200,
}],
}, {
label: 'Энергия выше ',
name: 'notifyHeroEnergy',
isToggle: true,
value: true,
inputs: [{
type: 'num',
name: 'notifyHeroEnergyGreaterValue',
value: 9,
}],
}],
}],
},
{
title: 'Отображение',
fields: [{
label: 'Использовать глобальные стили расширения',
name: 'extHtml',
isToggle: true,
value: true,
}],
},
{
title: 'Хранилище <span id="storage-size"></span>',
fields: [{
label: 'Сохранять последние сообщения:',
name: '',
inputs: [{
name: 'maxLogLength',
type: 'num',
value: MAX_LOG_LENGTH,
}],
}, {
name: '',
label: '<span class="link-ajax" id="reset-stats">Очистить хранилище</span>',
}],
},
];
/* harmony export (immutable) */ __webpack_exports__["a"] = setsGame;
/***/ }),
/* 51 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tabs__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_phraseToHtml__ = __webpack_require__(60);
/**
* @typedef {[number, string, string, number, object]} Message - сообщения журнала из API
*/
class ShortMessages {
constructor() {
this.tab = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__tabs__["a" /* createTab */])('кратко');
this.$root = this.tab.$content;
this.$list = $(`<ul class="unstyled pgf-log-list"></ul>`).appendTo(this.$root);
this.$prevGroup = null;
}
addMessages(messages) {
for (let i = 0; i < messages.length; i++) {
const message = messages[i];
this.addMessage(message);
}
}
addMessage(message) {
const act = __WEBPACK_IMPORTED_MODULE_1__utils_phraseToHtml__["a" /* actsByIds */][message[3 /* PhraseId */]];
const html = act
? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils_phraseToHtml__["b" /* actToHtmlShort */])(act, message)
: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils_phraseToHtml__["c" /* actToHtmlDefault */])(message);
const type = act && act.type || 'block';
if (type === 'inline') {
if (!this.$prevGroup) {
this.$prevGroup = this.createRecord(html, true);
}
else {
this.addToRecord(html, this.$prevGroup);
}
}
else {
this.createRecord(html, false);
this.$prevGroup = null;
}
}
createRecord(html, isShort) {
return $(`<li class="log-record ${isShort ? 'ext' : ''}">` +
`<div class="time">↓</div>` +
`<div class="pgf-message message">` +
`<span class="submessage">` +
`${html}` +
`</span>` +
`</div>` +
`</li>`).prependTo(this.$list);
}
addToRecord(html, $record) {
$record.find('.submessage').prepend(html);
}
clear() {
this.$list.html('');
}
}
/* harmony export (immutable) */ __webpack_exports__["a"] = ShortMessages;
/***/ }),
/* 52 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tabs__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_act_act_fight__ = __webpack_require__(7);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_const_texts__ = __webpack_require__(9);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_const_vars__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils_const_icons__ = __webpack_require__(0);
///<reference path="../../typings.d.ts"/>
class Stats {
constructor() {
this.tab = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__tabs__["a" /* createTab */])('статистика');
this.statistics = [];
}
addToStats(messages) {
this.addPhrases(messages);
this.drawStats();
// console.log('phrasesById', this.phrasesById)
}
addPhrases(messages) {
for (let i = 0; i < messages.length; i++) {
const message = messages[i];
const phraseId = message[3 /* PhraseId */];
if (statsList.includes(phraseId)) {
this.addPhrase(message);
}
}
}
addPhrase(message) {
const phraseSting = message[2 /* PhraseSting */];
const phraseId = message[3 /* PhraseId */];
const phraseData = message[4 /* PhraseData */];
const phraseMeta = message[5 /* PhraseMeta */];
const owner = phraseMeta.owner;
const statInList = this.statistics.find(s => s.owner === owner && s.phraseId === phraseId);
if (!statInList) {
this.statistics.push({
owner: owner,
phraseId: phraseId,
count: 1,
example: phraseSting,
phraseData: phraseData,
});
}
else {
statInList.count++;
for (let i = 0; i < __WEBPACK_IMPORTED_MODULE_3__utils_const_vars__["a" /* PHRASE_NUMBER_KEYS */].length; i++) {
const numberKey = __WEBPACK_IMPORTED_MODULE_3__utils_const_vars__["a" /* PHRASE_NUMBER_KEYS */][i];
const value = phraseData[numberKey];
if (value) {
statInList.phraseData[numberKey] = (statInList.phraseData[numberKey] || 0) + value;
}
}
}
}
drawStats() {
const phraseIds = [];
for (let i = 0; i < this.statistics.length; i++) {
const stat = this.statistics[i];
if (!phraseIds.includes(stat.phraseId))
phraseIds.push(stat.phraseId);
}
phraseIds.sort((a, b) => a - b);
let html = ``;
let countMe = 0;
let countCompanion = 0;
let countMob = 0;
for (let i = 0; i < phraseIds.length; i++) {
const phraseId = phraseIds[i];
const text = __WEBPACK_IMPORTED_MODULE_2__utils_const_texts__["b" /* PHRASE_ID_TO_TEXT */][phraseId];
const statsMe = this.statistics.find(s => s.owner === 0 /* me */ && s.phraseId === phraseId);
const statsCompanion = this.statistics.find(s => s.owner === 2 /* companion */ && s.phraseId === phraseId);
const statsMob = this.statistics.find(s => s.owner === 1 /* mob */ && s.phraseId === phraseId);
if (statsMe)
countMe += statsMe.count;
if (statsCompanion)
countCompanion += statsCompanion.count;
if (statsMob)
countMob += statsMob.count;
html +=
`<tr>` +
`<th>${text}</th>` +
`<td>${Stats.drawCellByStat(statsMe) +
(statsMe && statsCompanion ? `<br>` : '') +
Stats.drawCellByStat(statsCompanion)}</td>` +
`<td>${Stats.drawCellByStat(statsMob)}</td>` +
`</tr>`;
}
html +=
`<tr>` +
`<th>Всего кол-во</th>` +
`<td>${Stats.drawTotalCount(countMe) +
(countCompanion
? `<br>${Stats.drawTotalCount(countCompanion, __WEBPACK_IMPORTED_MODULE_4__utils_const_icons__["a" /* default */].companion)}`
: '')}</td>` +
`<td>${Stats.drawTotalCount(countMob)}</td>` +
`</tr>`;
const $root = this.tab.$content;
$root.html(`<table class="table-stats">` +
`<thead>` +
`<tr>` +
`<td></td>` +
`<td>Герой</td>` +
`<td>Моб</td>` +
`</tr>` +
`</thead>` +
`<tbody>` +
html +
`</tbody>` +
`</table>`
// `<pre>${JSON.stringify(this.statistics, null, 2)}</pre>`
);
}
static drawCellByStat(stat) {
if (!stat)
return '';
const phraseId = stat.phraseId;
const averagePhraseData = {};
Object.keys(stat.phraseData).forEach((key) => {
const value = stat.phraseData[key];
if (__WEBPACK_IMPORTED_MODULE_3__utils_const_vars__["a" /* PHRASE_NUMBER_KEYS */].includes(key)) {
if (value) {
averagePhraseData[key] = Math.round(value / stat.count);
}
}
else {
averagePhraseData[key] = value;
}
});
const cell = `<span title="${stat.example}\n${JSON.stringify(averagePhraseData).replace(/"/g, '"')}">` +
`${__WEBPACK_IMPORTED_MODULE_1__utils_act_act_fight__["a" /* default */][phraseId].fn(averagePhraseData)}x${stat.count}` +
`</span>`;
return cell;
}
static drawTotalCount(count, icon = '') {
return `<span class="act">${icon}x${count}</span>`;
}
clear() {
this.statistics = [];
this.tab.$content.html('');
}
}
/* harmony export (immutable) */ __webpack_exports__["a"] = Stats;
const statsList = [
1,
11,
12,
280000,
280001,
280002,
280003,
280004,
280005,
280006,
280007,
280008,
280009,
280010,
280011,
280012,
280013,
280014,
280015,
280016,
280017,
280018,
280019,
580003,
580004,
];
/***/ }),
/* 53 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_EventEmitter__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_const_vars__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__storage_storage__ = __webpack_require__(1);
///<reference path="../typings.d.ts"/>
const NEGATIVE_PHRASE_ID = [
1,
11,
12,
280001,
280004,
280010,
280014,
280016,
280019,
];
const COMPANION_PHRASE_ID = [
580003,
580004,
];
__WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].remove('messagesLog');
/**
* Позволяет подписаться на обновление данных
*/
class Tracking {
constructor() {
this.messagesLog = __WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].get('ext_log') || [];
this.onNewTurn = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_EventEmitter__["a" /* default */])();
this.onNewMessages = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_EventEmitter__["a" /* default */])();
this.onLoad = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__utils_EventEmitter__["a" /* default */])();
this.onLoadDone = false;
this.setMaxLogLength = (value) => {
this.maxLogLength = value;
};
this.emitLoad();
}
getMessagesLog() {
return this.messagesLog.map(Tracking.convertMessageFromRaw);
}
static convertMessageFromRaw(messageRaw) {
return [
messageRaw[0 /* TimeStamp */],
messageRaw[1 /* TimeSting */],
messageRaw[2 /* PhraseSting */],
messageRaw[3 /* PhraseId */],
Tracking.convertPhraseDataFromRaw(messageRaw[4 /* PhraseData */]),
Tracking.getMeta(messageRaw),
];
}
static convertPhraseDataFromRaw(phraseDataRaw) {
const phraseData = Object.assign({}, phraseDataRaw);
for (let i = 0; i < __WEBPACK_IMPORTED_MODULE_1__utils_const_vars__["a" /* PHRASE_NUMBER_KEYS */].length; i++) {
const key = __WEBPACK_IMPORTED_MODULE_1__utils_const_vars__["a" /* PHRASE_NUMBER_KEYS */][i];
if (typeof phraseDataRaw[key] === 'string')
phraseData[key] = +phraseDataRaw[key];
}
return phraseData;
}
static getMeta(message) {
const phraseId = message[3 /* PhraseId */];
const phraseDataRaw = message[4 /* PhraseData */];
const actor = phraseDataRaw.attacker || phraseDataRaw.actor;
const isMyName = actor === __WEBPACK_IMPORTED_MODULE_3__storage_storage__["a" /* default */].heroName;
const isMe = isMyName !== NEGATIVE_PHRASE_ID.includes(phraseId);
const isCompanion = !isMyName && actor === __WEBPACK_IMPORTED_MODULE_3__storage_storage__["a" /* default */].companionName || COMPANION_PHRASE_ID.includes(phraseId);
const owner = isMe
? 0 /* me */
: isCompanion
? 2 /* companion */
: 1 /* mob */;
return { owner: owner };
}
track(game_data) {
if (!this.onLoadDone)
return;
const hero = game_data.account.hero;
if (!hero)
return;
const messagesLog = this.messagesLog;
const lastLog = messagesLog[messagesLog.length - 1] || [];
const lastTimestamp = lastLog[0 /* TimeStamp */];
const messages = hero.messages;
const messagesNew = [];
for (let i = 0; i < messages.length; i++) {
const messageRaw = messages[i];
const message = Tracking.convertMessageFromRaw(messageRaw);
// console.log('time>', lastTimestamp, message[0], message[0] > lastTimestamp, lastLog[1], message[1]);
if (!lastTimestamp || message[0 /* TimeStamp */] > lastTimestamp) {
messagesLog.push(messageRaw);
messagesNew.push(message);
}
}
this.messagesLog = messagesLog.slice(this.maxLogLength ? messagesLog.length - this.maxLogLength : 0);
__WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].set('ext_log', this.messagesLog);
this.onNewTurn.emit(hero);
if (messagesNew.length) {
this.onNewMessages.emit(messagesNew);
}
}
emitMessages() {
$(document).on(`${pgf.game.events.DATA_REFRESHED}.ext-tracking`, (e, game_data) => {
this.track(game_data);
});
}
emitLoad() {
this.onLoadDone = false;
$(document).on('ajaxSuccess.ext', (event, XMLHttpRequest, setting, result) => {
if (this.onLoadDone || setting.url.indexOf('/game/api/info') !== 0) {
return;
}
const game_data = result.data;
if (game_data.account.is_old) {
return;
}
this.onLoadDone = true;
const hero = game_data.account.hero;
__WEBPACK_IMPORTED_MODULE_3__storage_storage__["a" /* default */].heroName = hero.base.name;
__WEBPACK_IMPORTED_MODULE_3__storage_storage__["a" /* default */].companionName = hero.companion && hero.companion.name.toLowerCase();
this.onLoad.emit(game_data);
this.track(game_data);
this.emitMessages();
$(document).off('ajaxSuccess.ext');
});
}
clear() {
__WEBPACK_IMPORTED_MODULE_2__utils_clientStorage__["a" /* default */].remove('ext_log');
this.messagesLog = [];
}
}
/* harmony export (immutable) */ __webpack_exports__["a"] = Tracking;
/***/ }),
/* 54 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__const_icons__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__act__ = __webpack_require__(2);
///<reference path="../../typings.d.ts"/>
const CRIT = '!';
/* harmony default export */ __webpack_exports__["a"] = {
// 240002: {fn: test, type: 'block'}, // Журнал: Вызов ремонтника
// 240003: {fn: test, type: 'block'}, // Журнал: Вызов ремонтника (критический эффект)
// 240004: {fn: test, type: 'block'}, // Журнал: Выкинуть самый дешёвый предмет из рюкзака
// 240005: {fn: test, type: 'block'}, // Журнал: Выкинуть самый дешёвый предмет из рюкзака (критическое срабатывание)
240006: { fn: abilityExp(), type: 'block' },
240008: { fn: abilityHeal(''), type: 'inline' },
240009: { fn: abilityHeal('', CRIT), type: 'inline' },
240010: { fn: abilityDamage(), type: 'inline' },
240011: { fn: abilityDamage(CRIT), type: 'inline' },
240012: { fn: abilityCoins(), type: 'inline' },
240013: { fn: abilityCoins(CRIT), type: 'inline' },
240014: { fn: abilityText('воскрешение'), type: 'block' },
240015: { fn: abilityMove('телепорт'), type: 'block' },
240016: { fn: abilityMove('телепорт', CRIT), type: 'block' },
240017: { fn: abilityMove('начало задания'), type: 'block' },
240018: { fn: abilityText('запасение энергии'), type: 'block' },
240019: { fn: abilityText('запасение энергии', CRIT), type: 'block' },
240020: { fn: abilityHeal(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].companion), type: 'inline' },
240021: { fn: abilityHeal(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].companion, CRIT), type: 'inline' },
300006: { fn: abilityGiftReturn(), type: 'block' },
};
function abilityText(text, crit = '') {
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('god', `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].god}${text}${crit}`);
}
function abilityGiftReturn() {
// hero герой
// artifact артефакт
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('god', `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].god}${phraseData.artifact}→вернулся ребёнку`);
}
function abilityMove(text, crit = '') {
// hero герой
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('god', `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].god}${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].travel}${text}${crit}`);
}
function abilityExp(crit = '') {
// hero герой
// experience количество опыта
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('god', `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].god}+${phraseData.experience}${crit} опыта`);
}
function abilityCoins(crit = '') {
// coins количество монет
// hero герой
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('god', `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].god}${phraseData.coins}${crit}${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].trade}`);
}
function abilityHeal(icon, crit = '') {
// hero герой
// health количество здоровья
// companion? спутник
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('god', `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].god}${phraseData.health}${crit}${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].heal}${icon}`);
}
function abilityDamage(crit = '') {
// attacker атакующий
// damage количество урона
// defender защищающийся
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('god', `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].god}<span class="damage">${phraseData.damage}${crit}</span>${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].hit}`);
}
/***/ }),
/* 55 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__const_icons__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__act__ = __webpack_require__(2);
///<reference path="../../typings.d.ts"/>
/* harmony default export */ __webpack_exports__["a"] = {
120001: { fn: travel(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].travel), type: 'block' },
120002: { fn: travel(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].travel), type: 'block' },
120003: { fn: travel(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].travelWagon), type: 'block' },
180001: { fn: rest(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].rest), type: 'inline' },
220001: { fn: tradeSell, type: 'inline' },
80001: { fn: tradeBuy, type: 'inline' },
80002: { fn: tradeChange, type: 'inline' },
80003: { fn: tradeChange, type: 'inline' },
};
function tradeSell(phraseData) {
// coins количество монет
// hero герой
// artifact предмет
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('trade', `<span class="artifact">${phraseData.artifact}</span>→<span class="coins">${phraseData.coins}${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].trade}</span>`);
}
function tradeBuy(phraseData) {
// coins количество монет
// hero герой
// artifact предмет
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('trade', `<span class="coins">${phraseData.coins}${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].trade}→<span class="artifact">${phraseData.artifact}</span></span>`);
}
function tradeChange(phraseData) {
// sell_price цена продажи
// hero герой
// old_artifact? старый артефакт
// coins количество монет
// artifact предмет
return (tradeSell({
artifact: phraseData.old_artifact || phraseData.artifact,
hero: phraseData.hero,
coins: phraseData.sell_price,
}) +
'|' +
tradeBuy({
artifact: phraseData.artifact,
hero: phraseData.hero,
coins: phraseData.coins,
}));
}
function rest(icon) {
// hero герой
// health количество здоровья
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('positive', `${icon}<span class="heal">${phraseData.health}</span>`);
}
function travel(icon) {
// destination конечное место назначения
// hero герой
// current_destination текущее место назначения
return (phraseData) => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__act__["c" /* act */])('', `${icon} ${phraseData.destination}`);
}
/***/ }),
/* 56 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__const_icons__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__const_mobs__ = __webpack_require__(58);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__const_artifacts__ = __webpack_require__(57);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__act__ = __webpack_require__(2);
///<reference path="../../typings.d.ts"/>
/* harmony default export */ __webpack_exports__["a"] = {
// 3: {fn: fn, type: 'block'}, // Дневник: Герой убит'
// 4: {fn: fn, type: 'block'}, // Дневник: Получить опыт за убийство монстра'
// 5: {fn: fn, type: 'block'}, // Журнал: Герой убит'
6: { fn: flightStart(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].fight, __WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].death), type: 'block' },
7: { fn: flightStart(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].fight, __WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].travel), type: 'block' },
8: { fn: mobAct(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].death), type: 'inline' },
9: { fn: lootEmpty, type: 'block' },
10: { fn: flightStart(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].peace), type: 'block' },
13: { fn: loot(''), type: 'block' },
14: { fn: loot('drop', ' (нет места)'), type: 'block' },
15: { fn: flightStart(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].fight), type: 'block' },
16: { fn: flightStart(__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].fight, __WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].companion), type: 'block' },
};
function flightStart(icon, icon2 = '') {
// mob монстр
// hero герой
// companion? спутник
return (phraseData) => {
const mob = __WEBPACK_IMPORTED_MODULE_1__const_mobs__["a" /* default */].filter(m => m.name === phraseData.mob)[0];
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__act__["c" /* act */])('', `${icon} ${icon2} ${phraseData.mob} (уровень ${mob.level}) <a href="/guide/mobs/${mob.id}">#</a>`);
};
}
function mobAct(icon) {
// mob монстр
// hero герой
return (phraseData) => {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__act__["c" /* act */])('', `${icon} ${phraseData.mob}`);
};
}
function lootEmpty(phraseData) {
// mob монстр
// hero герой
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__act__["c" /* act */])('loot empty', `нет добычи`);
}
function loot(modificator, msg = '') {
// mob монстр
// hero герой
// artifact предмет
return (phraseData) => {
const artifact = __WEBPACK_IMPORTED_MODULE_2__const_artifacts__["a" /* default */].filter(m => m.name === phraseData.artifact)[0];
const artifactHtml = artifact
? `<a href="/guide/artifacts/${artifact.id}">${phraseData.artifact}</a>`
: phraseData.artifact;
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__act__["c" /* act */])(`loot ${modificator}`, `${__WEBPACK_IMPORTED_MODULE_0__const_icons__["a" /* default */].loot} <span class="artifact">${artifactHtml}</span>${msg}`);
};
}
/***/ }),
/* 57 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/*
NOTE со страницы: http://the-tale.org/guide/artifacts/
$('table').eq(1)
.find('tbody tr')
.filter((i, tr) => $(tr).children().eq(3).text().trim() !== 'хлам')
.map((i, tr) => ({
name: $(tr).children().eq(1).text().trim(),
id: +$(tr).children().eq(1).find('a').attr('href').replace('/guide/artifacts/', ''),
level: +$(tr).children().eq(0).text().trim(),
}))
.get()
.sort((a, b) => a.id - b.id);
*/
/* harmony default export */ __webpack_exports__["a"] = [
{ name: 'портки', id: 1, level: 1 },
{ name: 'лапти', id: 2, level: 1 },
{ name: 'роба', id: 3, level: 1 },
{ name: 'рукавицы', id: 4, level: 1 },
{ name: 'дубинка', id: 5, level: 1 },
{ name: 'оленьи рога', id: 6, level: 1 },
{ name: 'волшебные штаны', id: 7, level: 2 },
{ name: 'осиное жало', id: 8, level: 4 },
{ name: 'живой корень', id: 9, level: 5 },
{ name: 'пятачок', id: 10, level: 7 },
{ name: 'дубина', id: 11, level: 8 },
{ name: 'волчьи клыки', id: 12, level: 10 },
{ name: 'сердце леса', id: 13, level: 11 },
{ name: 'боевая помада', id: 14, level: 13 },
{ name: 'короткое копьё', id: 15, level: 14 },
{ name: 'медвежья лапа', id: 16, level: 15 },
{ name: 'тонкие перчатки', id: 17, level: 17 },
{ name: 'налобный рог', id: 18, level: 18 },
{ name: 'призрачные наплечники', id: 19, level: 19 },
{ name: 'магическая броня', id: 20, level: 21 },
{ name: 'мёртвый головастик', id: 21, level: 1 },
{ name: 'тулуп поползня', id: 22, level: 1 },
{ name: 'звёздный венок', id: 23, level: 3 },
{ name: 'склизкие сапоги', id: 24, level: 4 },
{ name: 'болотные сапоги', id: 25, level: 6 },
{ name: 'пасть росянки', id: 26, level: 7 },
{ name: 'химический доспех', id: 27, level: 9 },
{ name: 'мозговой слизень', id: 28, level: 10 },
{ name: 'кожаные штаны', id: 29, level: 12 },
{ name: 'галстук из щупальца', id: 30, level: 13 },
{ name: 'пропитанный химией плащ', id: 31, level: 15 },
{ name: 'рваные перчатки', id: 32, level: 16 },
{ name: 'рваньё', id: 33, level: 17 },
{ name: 'глиняные штаны', id: 34, level: 19 },
{ name: 'белый халат', id: 35, level: 20 },
{ name: 'узкие штаны', id: 36, level: 21 },
{ name: 'сверкающий плащ', id: 37, level: 21 },
{ name: 'метла', id: 38, level: 1 },
{ name: 'волшебное зёрнышко', id: 39, level: 2 },
{ name: 'меч справедливости', id: 40, level: 4 },
{ name: 'выеденный плащ', id: 41, level: 5 },
{ name: 'резиновые перчатки', id: 42, level: 7 },
{ name: 'джокер', id: 43, level: 8 },
{ name: 'лапа богомола', id: 44, level: 10 },
{ name: 'отравленный кинжал', id: 45, level: 11 },
{ name: 'одержалка', id: 46, level: 13 },
{ name: 'шипованный хвост', id: 47, level: 14 },
{ name: 'рунный топор', id: 48, level: 15 },
{ name: 'молот атеистов', id: 49, level: 17 },
{ name: 'стальные трусы', id: 50, level: 18 },
{ name: 'убивалка', id: 51, level: 19 },
{ name: 'разумный обруч', id: 52, level: 21 },
{ name: 'шкура шакала', id: 53, level: 1 },
{ name: 'жало скорпиона', id: 54, level: 1 },
{ name: 'добротные штаны', id: 55, level: 3 },
{ name: 'пламенный воротник', id: 56, level: 4 },
{ name: 'большой-большой меч', id: 57, level: 6 },
{ name: 'высушенный скарабей', id: 58, level: 7 },
{ name: 'погремушка', id: 59, level: 9 },
{ name: 'огненный плащ', id: 60, level: 10 },
{ name: 'доспех из чешуек дракона', id: 61, level: 12 },
{ name: 'волшебная лампа', id: 62, level: 13 },
{ name: 'концентрированная ярость', id: 63, level: 15 },
{ name: 'ветреные сапоги', id: 64, level: 16 },
{ name: 'волшебный посох', id: 65, level: 17 },
{ name: 'пергамент', id: 66, level: 19 },
{ name: 'корона', id: 67, level: 1 },
{ name: 'дряхлый доспех', id: 68, level: 1 },
{ name: 'цепи', id: 69, level: 7 },
{ name: 'каска', id: 70, level: 15 },
{ name: 'разбитый щит', id: 138, level: 1 },
{ name: 'старое кольцо', id: 139, level: 1 },
{ name: 'мех подыльника', id: 140, level: 3 },
{ name: 'гербовый щит', id: 142, level: 24 },
{ name: 'перчатки из кожи наги', id: 144, level: 18 },
{ name: 'боевая плеть', id: 146, level: 24 },
{ name: 'катар', id: 149, level: 25 },
{ name: 'каменный нож', id: 150, level: 1 },
{ name: 'кусочек янтаря', id: 152, level: 1 },
{ name: 'лопатки додо', id: 155, level: 1 },
{ name: 'перепончатые крылья', id: 157, level: 1 },
{ name: 'бхулава', id: 158, level: 1 },
{ name: 'маска гвиллиона', id: 161, level: 1 },
{ name: 'ухо вилаха', id: 162, level: 1 },
{ name: 'туманные наплечники', id: 164, level: 1 },
{ name: 'боевой цеп', id: 167, level: 1 },
{ name: 'колечко с камушком', id: 168, level: 1 },
{ name: 'песчаное кольцо', id: 170, level: 3 },
{ name: 'угольное кольцо', id: 172, level: 3 },
{ name: 'медное кольцо', id: 174, level: 1 },
{ name: 'печатка жихаря', id: 176, level: 2 },
{ name: 'могильный перстень', id: 178, level: 10 },
{ name: 'солидное кольцо', id: 180, level: 19 },
{ name: 'чистый щит', id: 182, level: 43 },
{ name: 'фамильный перстень', id: 184, level: 21 },
{ name: 'кольцо зверя', id: 186, level: 24 },
{ name: 'плащ зверя', id: 188, level: 41 },
{ name: 'горячее кольцо', id: 190, level: 28 },
{ name: 'хрустальный коготь', id: 192, level: 43 },
{ name: 'чёрный волос', id: 194, level: 22 },
{ name: 'кольцо первородного', id: 196, level: 42 },
{ name: 'паучий щит', id: 199, level: 42 },
{ name: 'доспех из дэры', id: 201, level: 23 },
{ name: 'гринделевые ботинки', id: 203, level: 22 },
{ name: 'гримовый хопеш', id: 204, level: 40 },
{ name: 'кагирские перчатки', id: 206, level: 37 },
{ name: 'друджийская сабля', id: 208, level: 30 },
{ name: 'дасийские наплечники', id: 210, level: 36 },
{ name: 'слёзы ичетики', id: 212, level: 28 },
{ name: 'теневой плащ', id: 215, level: 24 },
{ name: 'кудово кольцо', id: 217, level: 37 },
{ name: 'топор ларвы', id: 218, level: 29 },
{ name: 'белая туника', id: 220, level: 27 },
{ name: 'скалистая накидка', id: 222, level: 38 },
{ name: 'мясорез', id: 224, level: 35 },
{ name: 'голова ламашту', id: 226, level: 40 },
{ name: 'лахамовый плащ', id: 228, level: 26 },
{ name: 'лезвие', id: 231, level: 22 },
{ name: 'поцелуй смерти', id: 232, level: 32 },
{ name: 'обувь мертвеца', id: 234, level: 26 },
{ name: 'седые чикчиры', id: 236, level: 27 },
{ name: 'плетёнки', id: 239, level: 32 },
{ name: 'зубастая кожа', id: 240, level: 30 },
{ name: 'холодные наручи', id: 242, level: 31 },
{ name: 'червивы', id: 244, level: 39 },
{ name: 'тёплые сандалии', id: 247, level: 36 },
{ name: 'шнурок-лекарь', id: 249, level: 38 },
{ name: 'холерные наплечники', id: 250, level: 39 },
{ name: 'буро-зелёные штаны', id: 252, level: 31 },
{ name: 'крылья гиены', id: 254, level: 44 },
{ name: 'мраморный мантлет', id: 256, level: 33 },
{ name: 'язвенный гиматий', id: 258, level: 41 },
{ name: 'цветик', id: 260, level: 33 },
{ name: 'жирник', id: 263, level: 35 },
{ name: 'бульгово зеркало', id: 265, level: 41 },
{ name: 'белокостник', id: 267, level: 34 },
{ name: 'базальтовый шар', id: 268, level: 26 },
{ name: 'виринки', id: 271, level: 9 },
{ name: 'тигриная шкура', id: 272, level: 9 },
{ name: 'пятки барбегаза', id: 275, level: 12 },
{ name: 'болотная искра', id: 277, level: 2 },
{ name: 'диадема зрячего', id: 278, level: 23 },
{ name: 'лягушачья кожа', id: 281, level: 24 },
{ name: 'луговые наплечники', id: 282, level: 9 },
{ name: 'роуч', id: 284, level: 18 },
{ name: 'братец-топор', id: 287, level: 28 },
{ name: 'золочёная шпага', id: 288, level: 45 },
{ name: 'морозная пика', id: 290, level: 41 },
{ name: 'тараканий щит', id: 292, level: 12 },
{ name: 'гюрзовые ботинки', id: 294, level: 8 },
{ name: 'костяной щит', id: 296, level: 15 },
{ name: 'снежные наплечники', id: 299, level: 30 },
{ name: 'лёгкий коготь', id: 300, level: 2 },
{ name: 'горная мантия', id: 303, level: 13 },
{ name: 'красный капюшон', id: 304, level: 33 },
{ name: 'белая кираса', id: 306, level: 43 },
{ name: 'костяной нож', id: 308, level: 1 },
{ name: 'мясник', id: 310, level: 44 },
{ name: 'ониксовый марион', id: 313, level: 38 },
{ name: 'радужная кольчуга', id: 314, level: 38 },
{ name: 'крылатое манто', id: 315, level: 11 },
{ name: 'гомункуловые перчатки', id: 317, level: 10 },
{ name: 'печатка праха', id: 319, level: 46 },
{ name: 'амулет смерти', id: 320, level: 46 },
{ name: 'тагарин', id: 322, level: 52 },
{ name: 'кольцо очарования', id: 324, level: 50 },
{ name: 'пушистая шкура', id: 327, level: 48 },
{ name: 'лесной оберег', id: 328, level: 50 },
{ name: 'глаза мёртвого', id: 330, level: 56 },
{ name: 'болотный оберег', id: 333, level: 55 },
{ name: 'чёрный плащ', id: 335, level: 45 },
{ name: 'шрам атача', id: 336, level: 51 },
{ name: 'кисы', id: 338, level: 50 },
{ name: 'светящийся глаз', id: 345, level: 61 },
{ name: 'шотоковая капелина', id: 347, level: 58 },
{ name: 'хрустальная шкура', id: 349, level: 56 },
{ name: 'шипованная плеть', id: 351, level: 48 },
{ name: 'сапоги мертвеца', id: 354, level: 65 },
{ name: 'изгилии', id: 356, level: 61 },
{ name: 'кеньги', id: 357, level: 47 },
{ name: 'железные копыта', id: 359, level: 53 },
{ name: 'каменные чётки', id: 361, level: 54 },
{ name: 'костяной цеп', id: 363, level: 60 },
{ name: 'чешуйчатые руки', id: 366, level: 45 },
{ name: 'сверкающий хлыст', id: 367, level: 40 },
{ name: 'заговорённый балахон', id: 370, level: 35 },
{ name: 'зоркий камень', id: 372, level: 33 },
{ name: 'баклеранер', id: 373, level: 25 }
];
/***/ }),
/* 58 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/*
$('table tbody tr').map((i, tr) => ({
name: $(tr).children().eq(1).text().trim(),
id: +$(tr).children().eq(1).find('a').attr('href').replace('/guide/mobs/', ''),
level: +$(tr).children().eq(0).text().trim(),
})).get()
.sort((a, b) => a.id - b.id);
*/
/* harmony default export */ __webpack_exports__["a"] = [
{ name: "олень", id: 1, level: 1 },
{ name: "одичавшая одежда", id: 2, level: 2 },
{ name: "осы", id: 3, level: 4 },
{ name: "хищный кустик", id: 4, level: 5 },
{ name: "кабан-секач", id: 5, level: 7 },
{ name: "бродячий дуб", id: 6, level: 8 },
{ name: "волк", id: 7, level: 10 },
{ name: "дух леса", id: 8, level: 11 },
{ name: "оскорблённая эльфийка", id: 9, level: 13 },
{ name: "блюститель природы", id: 10, level: 14 },
{ name: "медведь", id: 11, level: 15 },
{ name: "аристократ", id: 12, level: 17 },
{ name: "единорог", id: 13, level: 18 },
{ name: "призрачный волк", id: 14, level: 19 },
{ name: "астральный охотник", id: 15, level: 21 },
{ name: "головастик", id: 16, level: 1 },
{ name: "домашний поползень", id: 17, level: 1 },
{ name: "одичавшие светлячки", id: 18, level: 3 },
{ name: "ползун", id: 19, level: 4 },
{ name: "пиявка", id: 20, level: 6 },
{ name: "гигантская росянка", id: 21, level: 7 },
{ name: "сбежавший эксперимент", id: 22, level: 9 },
{ name: "слизь", id: 23, level: 10 },
{ name: "гидра", id: 24, level: 12 },
{ name: "щупальце", id: 25, level: 13 },
{ name: "химический мусорник", id: 26, level: 15 },
{ name: "упырь", id: 27, level: 16 },
{ name: "кикимора", id: 28, level: 17 },
{ name: "бесхозный голем", id: 29, level: 19 },
{ name: "охотник за реагентами", id: 30, level: 20 },
{ name: "мутировавший гоблин", id: 31, level: 21 },
{ name: "василиск", id: 32, level: 21 },
{ name: "ожившее пугало", id: 33, level: 1 },
{ name: "хищный хомяк", id: 34, level: 2 },
{ name: "борец за справедливость", id: 35, level: 4 },
{ name: "саранча", id: 36, level: 5 },
{ name: "маньяк-извращенец", id: 37, level: 7 },
{ name: "карточный шулер", id: 38, level: 8 },
{ name: "богомол", id: 39, level: 10 },
{ name: "благородный разбойник", id: 40, level: 11 },
{ name: "одержимый колдун", id: 41, level: 13 },
{ name: "механический дракончик", id: 42, level: 14 },
{ name: "дварф-изгнанник", id: 43, level: 15 },
{ name: "неистовый сектант", id: 44, level: 17 },
{ name: "механический голем", id: 45, level: 18 },
{ name: "убийца", id: 46, level: 19 },
{ name: "полоумный маг", id: 47, level: 21 },
{ name: "шакал", id: 48, level: 1 },
{ name: "скорпион", id: 49, level: 1 },
{ name: "налётчик", id: 50, level: 3 },
{ name: "огненная лиса", id: 51, level: 4 },
{ name: "орк-изгнанник", id: 52, level: 6 },
{ name: "скарабей", id: 53, level: 7 },
{ name: "гремучая змея", id: 54, level: 9 },
{ name: "саламандра", id: 55, level: 10 },
{ name: "пустынный дракончик", id: 56, level: 12 },
{ name: "джинн", id: 57, level: 13 },
{ name: "берсерк", id: 58, level: 15 },
{ name: "смерч", id: 59, level: 16 },
{ name: "заблудший шаман", id: 60, level: 17 },
{ name: "шайтан", id: 61, level: 19 },
{ name: "крыса", id: 62, level: 1 },
{ name: "бандит", id: 63, level: 1 },
{ name: "призрак", id: 64, level: 7 },
{ name: "неупокоенный", id: 65, level: 15 },
{ name: "гремлин", id: 66, level: 1 },
{ name: "подыльник", id: 67, level: 3 },
{ name: "странствующий рыцарь", id: 68, level: 24 },
{ name: "нага", id: 69, level: 18 },
{ name: "охотник за головами", id: 70, level: 24 },
{ name: "суккуб", id: 71, level: 25 },
{ name: "вирика", id: 72, level: 1 },
{ name: "див", id: 73, level: 1 },
{ name: "додо", id: 74, level: 1 },
{ name: "ангиак", id: 75, level: 1 },
{ name: "бхут", id: 76, level: 1 },
{ name: "гвиллион", id: 77, level: 1 },
{ name: "вилах", id: 78, level: 1 },
{ name: "вендиго", id: 79, level: 1 },
{ name: "галд", id: 80, level: 1 },
{ name: "ачери", id: 81, level: 1 },
{ name: "земляная даппи", id: 82, level: 3 },
{ name: "огненная даппи", id: 83, level: 3 },
{ name: "анчутка", id: 84, level: 1 },
{ name: "жихарь", id: 85, level: 2 },
{ name: "йиена", id: 86, level: 10 },
{ name: "мара", id: 87, level: 19 },
{ name: "боец Серого Ордена", id: 88, level: 43 },
{ name: "спятивший лорд", id: 89, level: 21 },
{ name: "волколак", id: 90, level: 24 },
{ name: "медвелак", id: 91, level: 41 },
{ name: "аколит огня", id: 92, level: 28 },
{ name: "ламия", id: 93, level: 43 },
{ name: "баргест", id: 94, level: 22 },
{ name: "вий", id: 95, level: 42 },
{ name: "гьюнальский паук", id: 96, level: 42 },
{ name: "дэра", id: 97, level: 23 },
{ name: "гриндель", id: 98, level: 22 },
{ name: "грим", id: 99, level: 40 },
{ name: "кагир", id: 100, level: 37 },
{ name: "друджи", id: 101, level: 30 },
{ name: "даса", id: 102, level: 36 },
{ name: "стая ичетик", id: 103, level: 28 },
{ name: "кера", id: 104, level: 24 },
{ name: "куд", id: 105, level: 37 },
{ name: "ларва", id: 106, level: 29 },
{ name: "егви", id: 107, level: 27 },
{ name: "каменный великан", id: 108, level: 38 },
{ name: "каннибал", id: 109, level: 35 },
{ name: "ламашту", id: 110, level: 40 },
{ name: "лахама", id: 111, level: 26 },
{ name: "наркоман", id: 112, level: 22 },
{ name: "бывший палач", id: 113, level: 32 },
{ name: "мародёр", id: 114, level: 26 },
{ name: "страхолев", id: 115, level: 27 },
{ name: "злоцвет", id: 116, level: 32 },
{ name: "варвар", id: 117, level: 30 },
{ name: "ночная хныка", id: 118, level: 31 },
{ name: "омерзень", id: 119, level: 39 },
{ name: "смрадень", id: 120, level: 36 },
{ name: "глыдень", id: 121, level: 38 },
{ name: "песчаный холерник", id: 122, level: 39 },
{ name: "мать анаконд", id: 123, level: 31 },
{ name: "белая гиена", id: 124, level: 44 },
{ name: "мраморный бык", id: 125, level: 33 },
{ name: "язвомор", id: 126, level: 41 },
{ name: "лишайница", id: 127, level: 33 },
{ name: "жирница", id: 128, level: 35 },
{ name: "бульг", id: 129, level: 41 },
{ name: "костогрыз", id: 130, level: 34 },
{ name: "каменник", id: 131, level: 26 },
{ name: "вирница", id: 132, level: 9 },
{ name: "тигр", id: 133, level: 9 },
{ name: "барбегаз", id: 134, level: 12 },
{ name: "бродячий огонек", id: 135, level: 2 },
{ name: "скальник", id: 136, level: 23 },
{ name: "пупырник", id: 137, level: 24 },
{ name: "стогница", id: 138, level: 9 },
{ name: "куропатка гуанила", id: 139, level: 18 },
{ name: "пёстробородый", id: 140, level: 28 },
{ name: "капитан Серых Плащей", id: 141, level: 45 },
{ name: "аколит льда", id: 142, level: 41 },
{ name: "семиглаз", id: 143, level: 12 },
{ name: "гюрза", id: 144, level: 8 },
{ name: "медвежук", id: 145, level: 15 },
{ name: "снежная росомаха", id: 146, level: 30 },
{ name: "койот", id: 147, level: 2 },
{ name: "горный манул", id: 148, level: 13 },
{ name: "мастер огня", id: 149, level: 33 },
{ name: "мастер льда", id: 150, level: 43 },
{ name: "кобольд", id: 151, level: 1 },
{ name: "пожиратель плоти", id: 152, level: 44 },
{ name: "главарь пёстробородых", id: 153, level: 38 },
{ name: "ученик Силы", id: 154, level: 11 },
{ name: "гомункул", id: 155, level: 10 },
{ name: "некромант", id: 156, level: 46 },
{ name: "тагар", id: 157, level: 52 },
{ name: "стрига", id: 158, level: 50 },
{ name: "приземник", id: 159, level: 48 },
{ name: "лесной тролль", id: 160, level: 50 },
{ name: "вурдалак", id: 161, level: 56 },
{ name: "болотный тролль", id: 162, level: 55 },
{ name: "бескуд", id: 163, level: 45 },
{ name: "атач", id: 164, level: 51 },
{ name: "камелопард", id: 165, level: 50 },
{ name: "невиданная тварь", id: 166, level: 1 },
{ name: "ырка", id: 167, level: 61 },
{ name: "шоток", id: 168, level: 58 },
{ name: "хрустальный барс", id: 169, level: 56 },
{ name: "галлу", id: 170, level: 48 },
{ name: "джудцгу", id: 171, level: 65 },
{ name: "изг", id: 172, level: 61 },
{ name: "ведомый", id: 182, level: 40 },
{ name: "комол", id: 189, level: 47 },
{ name: "ледяной тур", id: 190, level: 53 },
{ name: "нахцерер", id: 191, level: 54 },
{ name: "склеповник", id: 192, level: 60 },
{ name: "хала", id: 193, level: 45 },
{ name: "кумо", id: 194, level: 35 },
{ name: "мботата", id: 195, level: 33 },
{ name: "ракопаук", id: 196, level: 25 },
];
/***/ }),
/* 59 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (immutable) */ __webpack_exports__["a"] = fixHtml;
function fixHtml(isFix) {
$('html').toggleClass('ext-html', isFix);
}
/***/ }),
/* 60 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__act_act_fight__ = __webpack_require__(7);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__act_group_fight__ = __webpack_require__(56);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__act_act_travel__ = __webpack_require__(55);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__act_act_god_abilities__ = __webpack_require__(54);
/* harmony export (immutable) */ __webpack_exports__["b"] = actToHtmlShort;
/* harmony export (immutable) */ __webpack_exports__["c"] = actToHtmlDefault;
///<reference path="../typings.d.ts"/>
const actsByIds = Object.assign({}, __WEBPACK_IMPORTED_MODULE_1__act_group_fight__["a" /* default */], __WEBPACK_IMPORTED_MODULE_0__act_act_fight__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__act_act_travel__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__act_act_god_abilities__["a" /* default */]);
/* harmony export (immutable) */ __webpack_exports__["a"] = actsByIds;
function actToHtmlShort(act, message) {
return `<span title="${details(message)}">${act.fn(message[4 /* PhraseData */])}</span>`;
}
function actToHtmlDefault(message) {
return `<span title="${details(message)}">${message[2 /* PhraseSting */]}</span>`;
}
function details(message) {
const timeSting = message[1 /* TimeSting */];
const phraseSting = message[2 /* PhraseSting */];
const phraseId = message[3 /* PhraseId */];
const phraseData = message[4 /* PhraseData */];
return `[${timeSting}] ${phraseSting}\n${phraseId}: ${JSON.stringify(phraseData).replace(/"/g, '"')}`;
}
/***/ }),
/* 61 */
/***/ (function(module, exports) {
module.exports = "data:image/png;base64,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"
/***/ }),
/* 62 */
/***/ (function(module, exports) {
var g;
// This works in non-strict mode
g = (function() {
return this;
})();
try {
// This works if eval is allowed (see CSP)
g = g || Function("return this")() || (1,eval)("this");
} catch(e) {
// This works if the window reference is available
if(typeof window === "object")
g = window;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module.exports = g;
/***/ }),
/* 63 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(64);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);
//console.log('tables.js')
window.tables = ((_tables => {
'use strict';
function makeSortable($table) {
const $head = $table.find('thead tr').first();
const $rows = $table.find('tbody tr');
$head.children('th')
.wrapInner('<span class="sort" />')
.each(function() {
const $th = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this);
const thIndex = $th.index();
$th.children('.sort').click(function() {
$th.siblings('th').children('.sort').attr('class', 'sort');
const inverse = __WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).hasClass('sort-up');
__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).attr('class', `sort sort-${inverse ? 'down' : 'up'}`);
const arr = [];
$rows.each(function() {
const valueText = __WEBPACK_IMPORTED_MODULE_0_jquery___default.a.trim(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this).children('td').eq(thIndex).text());
const value = (-valueText) || parseDate(valueText) || valueText;
arr.push({
$item: this,
value,
});
});
arr.sort((a, b) => {
if (a.value === b.value) {
return 0;
}
return a.value > b.value
? inverse ? 1 : -1
: inverse ? -1 : 1;
});
arr.forEach(item => {
$table.append(item.$item);
});
});
});
}
__WEBPACK_IMPORTED_MODULE_0_jquery___default()('.table').each(function() {
makeSortable(__WEBPACK_IMPORTED_MODULE_0_jquery___default()(this));
});
__WEBPACK_IMPORTED_MODULE_0_jquery___default.a.extend(_tables, {
makeSortable,
});
function parseDate(str) { //02.04.2014 10:50
const p = /(\d{2})\.(\d{2})\.(\d{4})\s(\d{1,2}):(\d{2})/.exec(str);
if (!p) {
return 0;
}
return +new Date(p[3], p[2] - 1, p[1], p[4], p[5]);
}
return _tables;
}))({});
/***/ }),
/* 64 */
/***/ (function(module, exports) {
module.exports = jQuery;
/***/ }),
/* 65 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ext__ = __webpack_require__(11);
/***/ })
/******/ ]);