Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

2gl

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

2gl - npm Package Compare versions

Comparing version 0.3.1 to 0.3.2

BufferChannel.js

420

Buffer.js
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
value: true
});

@@ -19,241 +19,248 @@

var Buffer = function () {
function Buffer(array, itemSize) {
_classCallCheck(this, Buffer);
function Buffer(array, itemSize) {
_classCallCheck(this, Buffer);
this._array = array;
this._array = array;
/**
* Размерность данных
* @type {Number}
*/
this.itemSize = itemSize;
/**
* Размерность данных
* @type {Number}
*/
this.itemSize = itemSize;
/**
* Количество элементов в массиве данных
* @type {Number}
*/
this.length = array.length / itemSize;
/**
* Количество элементов в массиве данных
* @type {Number}
*/
this.length = array.length / itemSize;
/**
* Тип буфера. Буфер может использоваться для передачи массива данных,
* так и для передачи индексов элементов из данных.
* @type {Buffer.ArrayBuffer | Buffer.ElementArrayBuffer}
*/
this.type = Buffer.ArrayBuffer;
/**
* Тип буфера. Буфер может использоваться для передачи массива данных,
* так и для передачи индексов элементов из данных.
* @type {Buffer.ArrayBuffer | Buffer.ElementArrayBuffer}
*/
this.type = Buffer.ArrayBuffer;
/**
* Указывает, как часто данные буфера будут изменяться.
* @type {Buffer.StaticDraw | Buffer.DynamicDraw}
*/
this.drawType = Buffer.StaticDraw;
/**
* Указывает, как часто данные буфера будут изменяться.
* @type {Buffer.StaticDraw | Buffer.DynamicDraw}
*/
this.drawType = Buffer.StaticDraw;
/**
* Тип данных в буффере: float, int, short и т.д.
* @type {Buffer.Float | Buffer.UnsignedByte}
*/
this.dataType = Buffer.Float;
/**
* Тип данных в буффере: float, int, short и т.д.
* @type {Buffer.Float | Buffer.UnsignedByte}
*/
this.dataType = Buffer.Float;
/**
* Используется для целочисленных типов. Если выставлен в true, то
* значения имеющие тип BYTE от -128 до 128 будут переведены от -1.0 до 1.0.
* @type {Boolean}
*/
this.normalized = false;
/**
* Используется для целочисленных типов. Если выставлен в true, то
* значения имеющие тип BYTE от -128 до 128 будут переведены от -1.0 до 1.0.
* @type {Boolean}
*/
this.normalized = false;
/**
* Инициализация буфера происходит в момент первого рендеринга.
* Текущий WebGl контекст сохраняется в этой переменной.
* Если контекст меняется, буфер необходимо инициализировать заново.
* @type {?WebGLRenderingContext}
* @ignore
*/
this._preparedGlContext = null;
}
/**
* Инициализация буфера происходит в момент первого рендеринга.
* Текущий WebGl контекст сохраняется в этой переменной.
* Если контекст меняется, буфер необходимо инициализировать заново.
* @type {?WebGLRenderingContext}
* @ignore
* Связывает данные с контекстом WebGL.
*
* В случае Buffer.ArrayBuffer связывает с атрибутами шейдера.
* А в случае Buffer.ElementArrayBuffer связывает массив индексов.
*
* Если используется первый раз, добавляет данные в контекст WebGL.
*
* @param {WebGLRenderingContext} gl
* @param {?Number} location Положение аттрибута для связывания данных с переменными в шейдере
* @param {?BufferBindOptions} options Параметры передаваемые в функцию vertexAttribPointer, если их нет,
* то используются параметры конкретного буфера. Параметры должны быть переданы все.
*/
this._preparedGlContext = null;
}
/**
* Связывает данные с контекстом WebGL.
*
* В случае Buffer.ArrayBuffer связывает с атрибутами шейдера.
* А в случае Buffer.ElementArrayBuffer связывает массив индексов.
*
* Если используется первый раз, добавляет данные в контекст WebGL.
*
* @param {WebGLRenderingContext} gl
* @param {?Number} attribute Аттрибут для связывания данных с переменными в шейдере
*/
_createClass(Buffer, [{
key: "bind",
value: function bind(gl, location, options) {
if (this._preparedGlContext !== gl) {
this._unprepare(this._preparedGlContext);
}
_createClass(Buffer, [{
key: "bind",
value: function bind(gl, attribute) {
if (this._preparedGlContext !== gl) {
this._unprepare(this._preparedGlContext);
}
if (!this._glBuffer) {
this._prepare(gl);
}
if (!this._glBuffer) {
this._prepare(gl);
}
if (this.type === Buffer.ArrayBuffer) {
gl.bindBuffer(gl.ARRAY_BUFFER, this._glBuffer);
if (this.type === Buffer.ArrayBuffer) {
gl.bindBuffer(gl.ARRAY_BUFFER, this._glBuffer);
gl.vertexAttribPointer(attribute, this.itemSize, this._toGlParam(gl, this.dataType), this.normalized, 0, 0);
} else if (this.type === Buffer.ElementArrayBuffer) {
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._glBuffer);
}
if (options) {
gl.vertexAttribPointer(location, options.itemSize, this._toGlParam(gl, options.dataType), options.normalized, options.stride, options.offset);
} else {
gl.vertexAttribPointer(location, this.itemSize, this._toGlParam(gl, this.dataType), this.normalized, 0, 0);
}
} else if (this.type === Buffer.ElementArrayBuffer) {
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._glBuffer);
}
return this;
}
return this;
}
/**
* Удаляет данные из контекста WebGL.
* @param {WebGLRenderingContext} gl
*/
/**
* Удаляет данные из контекста WebGL.
* @param {WebGLRenderingContext} gl
*/
}, {
key: "remove",
value: function remove(gl) {
this._unprepare(gl);
}, {
key: "remove",
value: function remove(gl) {
this._unprepare(gl);
return this;
}
return this;
}
/**
* Возвращает массив данных
* @returns {TypedArray}
*/
/**
* Возвращает массив данных
* @returns {TypedArray}
*/
}, {
key: "getArray",
value: function getArray() {
return this._array;
}
}, {
key: "getArray",
value: function getArray() {
return this._array;
}
/**
* Возвращает элемент из массива данных
* @param {Number} index Номер элемента в массиве данных
* @returns {TypedArray}
*/
/**
* Возвращает элемент из массива данных
* @param {Number} index Номер элемента в массиве данных
* @returns {TypedArray}
*/
}, {
key: "getElement",
value: function getElement(index) {
return this._array.subarray(index * this.itemSize, (index + 1) * this.itemSize);
}
}, {
key: "getElement",
value: function getElement(index) {
return this._array.subarray(index * this.itemSize, (index + 1) * this.itemSize);
}
/**
* Возвращает тройку элементов из массива данных
* @param {Number} index Индекс
* @returns {TypedArray[]}
*/
/**
* Возвращает тройку элементов из массива данных
* @param {Number} index Индекс
* @returns {TypedArray[]}
*/
}, {
key: "getTriangle",
value: function getTriangle(index) {
index *= 3;
}, {
key: "getTriangle",
value: function getTriangle(index) {
index *= 3;
return [this.getElement(index), this.getElement(index + 1), this.getElement(index + 2)];
}
return [this.getElement(index), this.getElement(index + 1), this.getElement(index + 2)];
}
/**
* Конкатенирует данный буфер с другим.
* Осторожно, метод не проверяет одинаковой размерности данные или нет.
* @param {Buffer} buffer
*/
/**
* Конкатенирует данный буфер с другим.
* Осторожно, метод не проверяет одинаковой размерности данные или нет.
* @param {Buffer} buffer
*/
}, {
key: "concat",
value: function concat(buffer) {
var addArray = buffer.getArray();
var newArray = new this._array.constructor(this._array.length + addArray.length);
newArray.set(this._array, 0);
newArray.set(addArray, this._array.length);
}, {
key: "concat",
value: function concat(buffer) {
var addArray = buffer.getArray();
var newArray = new this._array.constructor(this._array.length + addArray.length);
newArray.set(this._array, 0);
newArray.set(addArray, this._array.length);
this._array = newArray;
this.length = newArray.length / this.itemSize;
this._array = newArray;
this.length = newArray.length / this.itemSize;
return this;
}
return this;
}
/**
* Заменяет часть буфера новыми данными и отправляет их в видеокарту
* @param {WebGLRenderingContext} gl
* @param {Number} index Индекс, с которого начать замену
* @param {TypedArray} data Новые данные
*/
/**
* Заменяет часть буфера новыми данными и отправляет их в видеокарту
* @param {WebGLRenderingContext} gl
* @param {Number} index Индекс, с которого начать замену
* @param {TypedArray} data Новые данные
*/
}, {
key: "subData",
value: function subData(gl, index, data) {
gl.bindBuffer(this._toGlParam(gl, this.type), this._glBuffer);
gl.bufferSubData(this._toGlParam(gl, this.type), index * this.itemSize, data);
}, {
key: "subData",
value: function subData(gl, index, data) {
gl.bindBuffer(this._toGlParam(gl, this.type), this._glBuffer);
gl.bufferSubData(this._toGlParam(gl, this.type), index * this.itemSize, data);
return this;
}
return this;
}
/**
* Кладёт данные в видеокарту
* @param {WebGLRenderingContext} gl
* @ignore
*/
/**
* Кладёт данные в видеокарту
* @param {WebGLRenderingContext} gl
* @ignore
*/
}, {
key: "_prepare",
value: function _prepare(gl) {
this._glBuffer = gl.createBuffer();
gl.bindBuffer(this._toGlParam(gl, this.type), this._glBuffer);
gl.bufferData(this._toGlParam(gl, this.type), this._array, this._toGlParam(gl, this.drawType));
this._preparedGlContext = gl;
}
}, {
key: "_prepare",
value: function _prepare(gl) {
this._glBuffer = gl.createBuffer();
gl.bindBuffer(this._toGlParam(gl, this.type), this._glBuffer);
gl.bufferData(this._toGlParam(gl, this.type), this._array, this._toGlParam(gl, this.drawType));
this._preparedGlContext = gl;
}
/**
* Удаляет данные из видеокарты
* @param {WebGLRenderingContext} gl
* @ignore
*/
/**
* Удаляет данные из видеокарты
* @param {WebGLRenderingContext} gl
* @ignore
*/
}, {
key: "_unprepare",
value: function _unprepare(gl) {
if (!gl) {
return;
}
}, {
key: "_unprepare",
value: function _unprepare(gl) {
if (!gl) {
return;
}
if (this._glBuffer) {
gl.deleteBuffer(this._glBuffer);
}
this._glBuffer = null;
}
if (this._glBuffer) {
gl.deleteBuffer(this._glBuffer);
}
this._glBuffer = null;
}
/**
* Преобразовывает параметры буфера в параметры WebGL
* @param {WebGLRenderingContext} gl
* @param {Buffer.ArrayBuffer | Buffer.ElementArrayBuffer} param
* @ignore
*/
/**
* Преобразовывает параметры буфера в параметры WebGL
* @param {WebGLRenderingContext} gl
* @param {Buffer.ArrayBuffer | Buffer.ElementArrayBuffer} param
* @ignore
*/
}, {
key: "_toGlParam",
value: function _toGlParam(gl, param) {
if (param === Buffer.ArrayBuffer) {
return gl.ARRAY_BUFFER;
}
if (param === Buffer.ElementArrayBuffer) {
return gl.ELEMENT_ARRAY_BUFFER;
}
if (param === Buffer.StaticDraw) {
return gl.STATIC_DRAW;
}
if (param === Buffer.DynamicDraw) {
return gl.DYNAMIC_DRAW;
}
if (param === Buffer.Float) {
return gl.FLOAT;
}
if (param === Buffer.UnsignedByte) {
return gl.UNSIGNED_BYTE;
}
}
}]);
}, {
key: "_toGlParam",
value: function _toGlParam(gl, param) {
if (param === Buffer.ArrayBuffer) {
return gl.ARRAY_BUFFER;
}
if (param === Buffer.ElementArrayBuffer) {
return gl.ELEMENT_ARRAY_BUFFER;
}
if (param === Buffer.StaticDraw) {
return gl.STATIC_DRAW;
}
if (param === Buffer.DynamicDraw) {
return gl.DYNAMIC_DRAW;
}
if (param === Buffer.Float) {
return gl.FLOAT;
}
if (param === Buffer.UnsignedByte) {
return gl.UNSIGNED_BYTE;
}
}
}]);
return Buffer;
return Buffer;
}();

@@ -271,3 +278,16 @@

exports.default = Buffer;
/**
* Параметры передаваемые в функцию vertexAttribPointer.
*
* @typedef {Object} BufferBindOptions
* @property {Number} itemSize Размерность элементов в буфере
* @property {Buffer.Float | Buffer.UnsignedByte} dataType Тип данных в буфере
* @property {Boolean} normalized Используется для целочисленных типов. Если выставлен в true, то
* значения имеющие тип BYTE от -128 до 128 будут переведены от -1.0 до 1.0.
* @property {Number} stride
* @property {Number} offset
*/
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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QUFrQjtBQUNoRCxVQUFJLFVBQVUsT0FBTyxZQUFyQixFQUFtQztBQUFFLGVBQU8sR0FBRyxhQUFWO0FBQTBCO0FBQ2xFOzs7Ozs7QUFHTCxPQUFPLFdBQVAsR0FBcUIsQ0FBckI7QUFDQSxPQUFPLGtCQUFQLEdBQTRCLENBQTVCOztBQUVBLE9BQU8sVUFBUCxHQUFvQixFQUFwQjtBQUNBLE9BQU8sV0FBUCxHQUFxQixFQUFyQjs7QUFFQSxPQUFPLEtBQVAsR0FBZSxFQUFmO0FBQ0EsT0FBTyxZQUFQLEdBQXNCLEVBQXRCOztrQkFFZSxNIiwiZmlsZSI6IkJ1ZmZlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDRhdGA0LDQvdC10L3QuNGPINC4INC/0L7QtNCz0L7RgtC+0LLQutC4INC00LDQvdC90YvRhSDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQsiDQsNGC0YDQuNCx0YPRgtGLINGI0LXQudC00LXRgNCwXG4gKlxuICogQHBhcmFtIHtUeXBlZEFycmF5fSBhcnJheSDQotC40L/QuNC30LjRgNC+0LLQsNC90L3Ri9C5INC80LDRgdGB0LjQsiDQtNCw0L3QvdGL0YUsINC90LDQv9GA0LjQvNC10YAsINC60L7QvtGA0LTQuNC90LDRgiDQstC10YDRiNC40L1cbiAqIEBwYXJhbSB7TnVtYmVyfSBpdGVtU2l6ZSDQoNCw0LfQvNC10YDQvdC+0YHRgtGMINC00LDQvdC90YvRhSwg0L3QsNC/0YDQuNC80LXRgCwgMyAtINC00LvRjyDQutC+0L7QtNC40L3QsNGCINCy0LXRgNGI0LjQvVxuICovXG5jbGFzcyBCdWZmZXIge1xuICAgIGNvbnN0cnVjdG9yKGFycmF5LCBpdGVtU2l6ZSkge1xuICAgICAgICB0aGlzLl9hcnJheSA9IGFycmF5O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQoNCw0LfQvNC10YDQvdC+0YHRgtGMINC00LDQvdC90YvRhVxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pdGVtU2l6ZSA9IGl0ZW1TaXplO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmtC+0LvQuNGH0LXRgdGC0LLQviDRjdC70LXQvNC10L3RgtC+0LIg0LIg0LzQsNGB0YHQuNCy0LUg0LTQsNC90L3Ri9GFXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGFycmF5Lmxlbmd0aCAvIGl0ZW1TaXplO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQotC40L8g0LHRg9GE0LXRgNCwLiDQkdGD0YTQtdGAINC80L7QttC10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM0YHRjyDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQvNCw0YHRgdC40LLQsCDQtNCw0L3QvdGL0YUsXG4gICAgICAgICAqINGC0LDQuiDQuCDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQuNC90LTQtdC60YHQvtCyINGN0LvQtdC80LXQvdGC0L7QsiDQuNC3INC00LDQvdC90YvRhS5cbiAgICAgICAgICogQHR5cGUge0J1ZmZlci5BcnJheUJ1ZmZlciB8IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBCdWZmZXIuQXJyYXlCdWZmZXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCj0LrQsNC30YvQstCw0LXRgiwg0LrQsNC6INGH0LDRgdGC0L4g0LTQsNC90L3Ri9C1INCx0YPRhNC10YDQsCDQsdGD0LTRg9GCINC40LfQvNC10L3Rj9GC0YzRgdGPLlxuICAgICAgICAgKiBAdHlwZSB7QnVmZmVyLlN0YXRpY0RyYXcgfCBCdWZmZXIuRHluYW1pY0RyYXd9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmRyYXdUeXBlID0gQnVmZmVyLlN0YXRpY0RyYXc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCi0LjQvyDQtNCw0L3QvdGL0YUg0LIg0LHRg9GE0YTQtdGA0LU6IGZsb2F0LCBpbnQsIHNob3J0INC4INGCLtC0LlxuICAgICAgICAgKiBAdHlwZSB7QnVmZmVyLkZsb2F0IHwgQnVmZmVyLlVuc2lnbmVkQnl0ZX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZGF0YVR5cGUgPSBCdWZmZXIuRmxvYXQ7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YbQtdC70L7Rh9C40YHQu9C10L3QvdGL0YUg0YLQuNC/0L7Qsi4g0JXRgdC70Lgg0LLRi9GB0YLQsNCy0LvQtdC9INCyIHRydWUsINGC0L5cbiAgICAgICAgICog0LfQvdCw0YfQtdC90LjRjyDQuNC80LXRjtGJ0LjQtSDRgtC40L8gQllURSDQvtGCIC0xMjgg0LTQviAxMjgg0LHRg9C00YPRgiDQv9C10YDQtdCy0LXQtNC10L3RiyDQvtGCIC0xLjAg0LTQviAxLjAuXG4gICAgICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ub3JtYWxpemVkID0gZmFsc2U7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGPINCx0YPRhNC10YDQsCDQv9GA0L7QuNGB0YXQvtC00LjRgiDQsiDQvNC+0LzQtdC90YIg0L/QtdGA0LLQvtCz0L4g0YDQtdC90LTQtdGA0LjQvdCz0LAuXG4gICAgICAgICAqINCi0LXQutGD0YnQuNC5IFdlYkdsINC60L7QvdGC0LXQutGB0YIg0YHQvtGF0YDQsNC90Y/QtdGC0YHRjyDQsiDRjdGC0L7QuSDQv9C10YDQtdC80LXQvdC90L7QuS5cbiAgICAgICAgICog0JXRgdC70Lgg0LrQvtC90YLQtdC60YHRgiDQvNC10L3Rj9C10YLRgdGPLCDQsdGD0YTQtdGAINC90LXQvtCx0YXQvtC00LjQvNC+INC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDRgtGMINC30LDQvdC+0LLQvi5cbiAgICAgICAgICogQHR5cGUgez9XZWJHTFJlbmRlcmluZ0NvbnRleHR9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3ByZXBhcmVkR2xDb250ZXh0ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodCy0Y/Qt9GL0LLQsNC10YIg0LTQsNC90L3Ri9C1INGBINC60L7QvdGC0LXQutGB0YLQvtC8IFdlYkdMLlxuICAgICAqXG4gICAgICog0JIg0YHQu9GD0YfQsNC1IEJ1ZmZlci5BcnJheUJ1ZmZlciDRgdCy0Y/Qt9GL0LLQsNC10YIg0YEg0LDRgtGA0LjQsdGD0YLQsNC80Lgg0YjQtdC50LTQtdGA0LAuXG4gICAgICog0JAg0LIg0YHQu9GD0YfQsNC1IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXIg0YHQstGP0LfRi9Cy0LDQtdGCINC80LDRgdGB0LjQsiDQuNC90LTQtdC60YHQvtCyLlxuICAgICAqXG4gICAgICog0JXRgdC70Lgg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC/0LXRgNCy0YvQuSDRgNCw0LcsINC00L7QsdCw0LLQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LIg0LrQvtC90YLQtdC60YHRgiBXZWJHTC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7P051bWJlcn0gYXR0cmlidXRlINCQ0YLRgtGA0LjQsdGD0YIg0LTQu9GPINGB0LLRj9C30YvQstCw0L3QuNGPINC00LDQvdC90YvRhSDRgSDQv9C10YDQtdC80LXQvdC90YvQvNC4INCyINGI0LXQudC00LXRgNC1XG4gICAgICovXG4gICAgYmluZChnbCwgYXR0cmlidXRlKSB7XG4gICAgICAgIGlmICh0aGlzLl9wcmVwYXJlZEdsQ29udGV4dCAhPT0gZ2wpIHtcbiAgICAgICAgICAgIHRoaXMuX3VucHJlcGFyZSh0aGlzLl9wcmVwYXJlZEdsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX2dsQnVmZmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IEJ1ZmZlci5BcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRoaXMuX2dsQnVmZmVyKTtcbiAgICAgICAgICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoYXR0cmlidXRlLCB0aGlzLml0ZW1TaXplLCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMuZGF0YVR5cGUpLCB0aGlzLm5vcm1hbGl6ZWQsIDAsIDApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gQnVmZmVyLkVsZW1lbnRBcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgdGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LTQsNC90L3Ri9C1INC40Lcg0LrQvtC90YLQtdC60YHRgtCwIFdlYkdMLlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIHJlbW92ZShnbCkge1xuICAgICAgICB0aGlzLl91bnByZXBhcmUoZ2wpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiDQtNCw0L3QvdGL0YVcbiAgICAgKiBAcmV0dXJucyB7VHlwZWRBcnJheX1cbiAgICAgKi9cbiAgICBnZXRBcnJheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGN0LvQtdC80LXQvdGCINC40Lcg0LzQsNGB0YHQuNCy0LAg0LTQsNC90L3Ri9GFXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGluZGV4INCd0L7QvNC10YAg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw0YHRgdC40LLQtSDQtNCw0L3QvdGL0YVcbiAgICAgKiBAcmV0dXJucyB7VHlwZWRBcnJheX1cbiAgICAgKi9cbiAgICBnZXRFbGVtZW50KGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcnJheS5zdWJhcnJheShpbmRleCAqIHRoaXMuaXRlbVNpemUsIChpbmRleCArIDEpICogdGhpcy5pdGVtU2l6ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLRgNC+0LnQutGDINGN0LvQtdC80LXQvdGC0L7QsiDQuNC3INC80LDRgdGB0LjQstCwINC00LDQvdC90YvRhVxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBpbmRleCDQmNC90LTQtdC60YFcbiAgICAgKiBAcmV0dXJucyB7VHlwZWRBcnJheVtdfVxuICAgICAqL1xuICAgIGdldFRyaWFuZ2xlKGluZGV4KSB7XG4gICAgICAgIGluZGV4ICo9IDM7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudChpbmRleCksXG4gICAgICAgICAgICB0aGlzLmdldEVsZW1lbnQoaW5kZXggKyAxKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudChpbmRleCArIDIpXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JrQvtC90LrQsNGC0LXQvdC40YDRg9C10YIg0LTQsNC90L3Ri9C5INCx0YPRhNC10YAg0YEg0LTRgNGD0LPQuNC8LlxuICAgICAqINCe0YHRgtC+0YDQvtC20L3Qviwg0LzQtdGC0L7QtCDQvdC1INC/0YDQvtCy0LXRgNGP0LXRgiDQvtC00LjQvdCw0LrQvtCy0L7QuSDRgNCw0LfQvNC10YDQvdC+0YHRgtC4INC00LDQvdC90YvQtSDQuNC70Lgg0L3QtdGCLlxuICAgICAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXJcbiAgICAgKi9cbiAgICBjb25jYXQoYnVmZmVyKSB7XG4gICAgICAgIGNvbnN0IGFkZEFycmF5ID0gYnVmZmVyLmdldEFycmF5KCk7XG4gICAgICAgIGNvbnN0IG5ld0FycmF5ID0gbmV3IHRoaXMuX2FycmF5LmNvbnN0cnVjdG9yKHRoaXMuX2FycmF5Lmxlbmd0aCArIGFkZEFycmF5Lmxlbmd0aCk7XG4gICAgICAgIG5ld0FycmF5LnNldCh0aGlzLl9hcnJheSwgMCk7XG4gICAgICAgIG5ld0FycmF5LnNldChhZGRBcnJheSwgdGhpcy5fYXJyYXkubGVuZ3RoKTtcblxuICAgICAgICB0aGlzLl9hcnJheSA9IG5ld0FycmF5O1xuICAgICAgICB0aGlzLmxlbmd0aCA9IG5ld0FycmF5Lmxlbmd0aCAvIHRoaXMuaXRlbVNpemU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC80LXQvdGP0LXRgiDRh9Cw0YHRgtGMINCx0YPRhNC10YDQsCDQvdC+0LLRi9C80Lgg0LTQsNC90L3Ri9C80Lgg0Lgg0L7RgtC/0YDQsNCy0LvRj9C10YIg0LjRhSDQsiDQstC40LTQtdC+0LrQsNGA0YLRg1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBpbmRleCDQmNC90LTQtdC60YEsINGBINC60L7RgtC+0YDQvtCz0L4g0L3QsNGH0LDRgtGMINC30LDQvNC10L3Rg1xuICAgICAqIEBwYXJhbSB7VHlwZWRBcnJheX0gZGF0YSDQndC+0LLRi9C1INC00LDQvdC90YvQtVxuICAgICAqL1xuICAgIHN1YkRhdGEoZ2wsIGluZGV4LCBkYXRhKSB7XG4gICAgICAgIGdsLmJpbmRCdWZmZXIodGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLnR5cGUpLCB0aGlzLl9nbEJ1ZmZlcik7XG4gICAgICAgIGdsLmJ1ZmZlclN1YkRhdGEodGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLnR5cGUpLCBpbmRleCAqIHRoaXMuaXRlbVNpemUsIGRhdGEpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCa0LvQsNC00ZHRgiDQtNCw0L3QvdGL0LUg0LIg0LLQuNC00LXQvtC60LDRgNGC0YNcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fZ2xCdWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTtcbiAgICAgICAgZ2wuYmluZEJ1ZmZlcih0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMudHlwZSksIHRoaXMuX2dsQnVmZmVyKTtcbiAgICAgICAgZ2wuYnVmZmVyRGF0YSh0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMudHlwZSksIHRoaXMuX2FycmF5LCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMuZHJhd1R5cGUpKTtcbiAgICAgICAgdGhpcy5fcHJlcGFyZWRHbENvbnRleHQgPSBnbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LjQtyDQstC40LTQtdC+0LrQsNGA0YLRi1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBfdW5wcmVwYXJlKGdsKSB7XG4gICAgICAgIGlmICghZ2wpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2dsQnVmZmVyKSB7XG4gICAgICAgICAgICBnbC5kZWxldGVCdWZmZXIodGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2dsQnVmZmVyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LXQvtCx0YDQsNC30L7QstGL0LLQsNC10YIg0L/QsNGA0LDQvNC10YLRgNGLINCx0YPRhNC10YDQsCDQsiDQv9Cw0YDQsNC80LXRgtGA0YsgV2ViR0xcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge0J1ZmZlci5BcnJheUJ1ZmZlciB8IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXJ9IHBhcmFtXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIF90b0dsUGFyYW0oZ2wsIHBhcmFtKSB7XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkFycmF5QnVmZmVyKSB7IHJldHVybiBnbC5BUlJBWV9CVUZGRVI7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuRWxlbWVudEFycmF5QnVmZmVyKSB7IHJldHVybiBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUjsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5TdGF0aWNEcmF3KSB7IHJldHVybiBnbC5TVEFUSUNfRFJBVzsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5EeW5hbWljRHJhdykgeyByZXR1cm4gZ2wuRFlOQU1JQ19EUkFXOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkZsb2F0KSB7IHJldHVybiBnbC5GTE9BVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5VbnNpZ25lZEJ5dGUpIHsgcmV0dXJuIGdsLlVOU0lHTkVEX0JZVEU7IH1cbiAgICB9XG59XG5cbkJ1ZmZlci5BcnJheUJ1ZmZlciA9IDE7XG5CdWZmZXIuRWxlbWVudEFycmF5QnVmZmVyID0gMjtcblxuQnVmZmVyLlN0YXRpY0RyYXcgPSAxMDtcbkJ1ZmZlci5EeW5hbWljRHJhdyA9IDExO1xuXG5CdWZmZXIuRmxvYXQgPSAyMDtcbkJ1ZmZlci5VbnNpZ25lZEJ5dGUgPSAyMTtcblxuZXhwb3J0IGRlZmF1bHQgQnVmZmVyO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9CdWZmZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7Ozs7O0lBTU0sTTtBQUNGLG9CQUFZLEtBQVosRUFBbUIsUUFBbkIsRUFBNkI7QUFBQTs7QUFDekIsYUFBSyxNQUFMLEdBQWMsS0FBZDs7QUFFQTs7OztBQUlBLGFBQUssUUFBTCxHQUFnQixRQUFoQjs7QUFFQTs7OztBQUlBLGFBQUssTUFBTCxHQUFjLE1BQU0sTUFBTixHQUFlLFFBQTdCOztBQUVBOzs7OztBQUtBLGFBQUssSUFBTCxHQUFZLE9BQU8sV0FBbkI7O0FBRUE7Ozs7QUFJQSxhQUFLLFFBQUwsR0FBZ0IsT0FBTyxVQUF2Qjs7QUFFQTs7OztBQUlBLGFBQUssUUFBTCxHQUFnQixPQUFPLEtBQXZCOztBQUVBOzs7OztBQUtBLGFBQUssVUFBTCxHQUFrQixLQUFsQjs7QUFFQTs7Ozs7OztBQU9BLGFBQUssa0JBQUwsR0FBMEIsSUFBMUI7QUFDSDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7NkJBYUssRSxFQUFJLFEsRUFBVSxPLEVBQVM7QUFDeEIsZ0JBQUksS0FBSyxrQkFBTCxLQUE0QixFQUFoQyxFQUFvQztBQUNoQyxxQkFBSyxVQUFMLENBQWdCLEtBQUssa0JBQXJCO0FBQ0g7O0FBRUQsZ0JBQUksQ0FBQyxLQUFLLFNBQVYsRUFBcUI7QUFDakIscUJBQUssUUFBTCxDQUFjLEVBQWQ7QUFDSDs7QUFFRCxnQkFBSSxLQUFLLElBQUwsS0FBYyxPQUFPLFdBQXpCLEVBQXNDO0FBQ2xDLG1CQUFHLFVBQUgsQ0FBYyxHQUFHLFlBQWpCLEVBQStCLEtBQUssU0FBcEM7O0FBRUEsb0JBQUksT0FBSixFQUFhO0FBQ1QsdUJBQUcsbUJBQUgsQ0FBdUIsUUFBdkIsRUFBaUMsUUFBUSxRQUF6QyxFQUNJLEtBQUssVUFBTCxDQUFnQixFQUFoQixFQUFvQixRQUFRLFFBQTVCLENBREosRUFDMkMsUUFBUSxVQURuRCxFQUMrRCxRQUFRLE1BRHZFLEVBQytFLFFBQVEsTUFEdkY7QUFFSCxpQkFIRCxNQUdPO0FBQ0gsdUJBQUcsbUJBQUgsQ0FBdUIsUUFBdkIsRUFBaUMsS0FBSyxRQUF0QyxFQUNJLEtBQUssVUFBTCxDQUFnQixFQUFoQixFQUFvQixLQUFLLFFBQXpCLENBREosRUFDd0MsS0FBSyxVQUQ3QyxFQUN5RCxDQUR6RCxFQUM0RCxDQUQ1RDtBQUVIO0FBQ0osYUFWRCxNQVVPLElBQUksS0FBSyxJQUFMLEtBQWMsT0FBTyxrQkFBekIsRUFBNkM7QUFDaEQsbUJBQUcsVUFBSCxDQUFjLEdBQUcsb0JBQWpCLEVBQXVDLEtBQUssU0FBNUM7QUFDSDs7QUFFRCxtQkFBTyxJQUFQO0FBQ0g7O0FBRUQ7Ozs7Ozs7K0JBSU8sRSxFQUFJO0FBQ1AsaUJBQUssVUFBTCxDQUFnQixFQUFoQjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7O0FBRUQ7Ozs7Ozs7bUNBSVc7QUFDUCxtQkFBTyxLQUFLLE1BQVo7QUFDSDs7QUFFRDs7Ozs7Ozs7bUNBS1csSyxFQUFPO0FBQ2QsbUJBQU8sS0FBSyxNQUFMLENBQVksUUFBWixDQUFxQixRQUFRLEtBQUssUUFBbEMsRUFBNEMsQ0FBQyxRQUFRLENBQVQsSUFBYyxLQUFLLFFBQS9ELENBQVA7QUFDSDs7QUFFRDs7Ozs7Ozs7b0NBS1ksSyxFQUFPO0FBQ2YscUJBQVMsQ0FBVDs7QUFFQSxtQkFBTyxDQUNILEtBQUssVUFBTCxDQUFnQixLQUFoQixDQURHLEVBRUgsS0FBSyxVQUFMLENBQWdCLFFBQVEsQ0FBeEIsQ0FGRyxFQUdILEtBQUssVUFBTCxDQUFnQixRQUFRLENBQXhCLENBSEcsQ0FBUDtBQUtIOztBQUVEOzs7Ozs7OzsrQkFLTyxNLEVBQVE7QUFDWCxnQkFBTSxXQUFXLE9BQU8sUUFBUCxFQUFqQjtBQUNBLGdCQUFNLFdBQVcsSUFBSSxLQUFLLE1BQUwsQ0FBWSxXQUFoQixDQUE0QixLQUFLLE1BQUwsQ0FBWSxNQUFaLEdBQXFCLFNBQVMsTUFBMUQsQ0FBakI7QUFDQSxxQkFBUyxHQUFULENBQWEsS0FBSyxNQUFsQixFQUEwQixDQUExQjtBQUNBLHFCQUFTLEdBQVQsQ0FBYSxRQUFiLEVBQXVCLEtBQUssTUFBTCxDQUFZLE1BQW5DOztBQUVBLGlCQUFLLE1BQUwsR0FBYyxRQUFkO0FBQ0EsaUJBQUssTUFBTCxHQUFjLFNBQVMsTUFBVCxHQUFrQixLQUFLLFFBQXJDOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7QUFFRDs7Ozs7Ozs7O2dDQU1RLEUsRUFBSSxLLEVBQU8sSSxFQUFNO0FBQ3JCLGVBQUcsVUFBSCxDQUFjLEtBQUssVUFBTCxDQUFnQixFQUFoQixFQUFvQixLQUFLLElBQXpCLENBQWQsRUFBOEMsS0FBSyxTQUFuRDtBQUNBLGVBQUcsYUFBSCxDQUFpQixLQUFLLFVBQUwsQ0FBZ0IsRUFBaEIsRUFBb0IsS0FBSyxJQUF6QixDQUFqQixFQUFpRCxRQUFRLEtBQUssUUFBOUQsRUFBd0UsSUFBeEU7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7OztpQ0FLUyxFLEVBQUk7QUFDVCxpQkFBSyxTQUFMLEdBQWlCLEdBQUcsWUFBSCxFQUFqQjtBQUNBLGVBQUcsVUFBSCxDQUFjLEtBQUssVUFBTCxDQUFnQixFQUFoQixFQUFvQixLQUFLLElBQXpCLENBQWQsRUFBOEMsS0FBSyxTQUFuRDtBQUNBLGVBQUcsVUFBSCxDQUFjLEtBQUssVUFBTCxDQUFnQixFQUFoQixFQUFvQixLQUFLLElBQXpCLENBQWQsRUFBOEMsS0FBSyxNQUFuRCxFQUEyRCxLQUFLLFVBQUwsQ0FBZ0IsRUFBaEIsRUFBb0IsS0FBSyxRQUF6QixDQUEzRDtBQUNBLGlCQUFLLGtCQUFMLEdBQTBCLEVBQTFCO0FBQ0g7O0FBRUQ7Ozs7Ozs7O21DQUtXLEUsRUFBSTtBQUNYLGdCQUFJLENBQUMsRUFBTCxFQUFTO0FBQUU7QUFBUzs7QUFFcEIsZ0JBQUksS0FBSyxTQUFULEVBQW9CO0FBQ2hCLG1CQUFHLFlBQUgsQ0FBZ0IsS0FBSyxTQUFyQjtBQUNIO0FBQ0QsaUJBQUssU0FBTCxHQUFpQixJQUFqQjtBQUNIOztBQUVEOzs7Ozs7Ozs7bUNBTVcsRSxFQUFJLEssRUFBTztBQUNsQixnQkFBSSxVQUFVLE9BQU8sV0FBckIsRUFBa0M7QUFBRSx1QkFBTyxHQUFHLFlBQVY7QUFBeUI7QUFDN0QsZ0JBQUksVUFBVSxPQUFPLGtCQUFyQixFQUF5QztBQUFFLHVCQUFPLEdBQUcsb0JBQVY7QUFBaUM7QUFDNUUsZ0JBQUksVUFBVSxPQUFPLFVBQXJCLEVBQWlDO0FBQUUsdUJBQU8sR0FBRyxXQUFWO0FBQXdCO0FBQzNELGdCQUFJLFVBQVUsT0FBTyxXQUFyQixFQUFrQztBQUFFLHVCQUFPLEdBQUcsWUFBVjtBQUF5QjtBQUM3RCxnQkFBSSxVQUFVLE9BQU8sS0FBckIsRUFBNEI7QUFBRSx1QkFBTyxHQUFHLEtBQVY7QUFBa0I7QUFDaEQsZ0JBQUksVUFBVSxPQUFPLFlBQXJCLEVBQW1DO0FBQUUsdUJBQU8sR0FBRyxhQUFWO0FBQTBCO0FBQ2xFOzs7Ozs7QUFHTCxPQUFPLFdBQVAsR0FBcUIsQ0FBckI7QUFDQSxPQUFPLGtCQUFQLEdBQTRCLENBQTVCOztBQUVBLE9BQU8sVUFBUCxHQUFvQixFQUFwQjtBQUNBLE9BQU8sV0FBUCxHQUFxQixFQUFyQjs7QUFFQSxPQUFPLEtBQVAsR0FBZSxFQUFmO0FBQ0EsT0FBTyxZQUFQLEdBQXNCLEVBQXRCOztrQkFFZSxNOztBQUVmIiwiZmlsZSI6IkJ1ZmZlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDRhdGA0LDQvdC10L3QuNGPINC4INC/0L7QtNCz0L7RgtC+0LLQutC4INC00LDQvdC90YvRhSDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQsiDQsNGC0YDQuNCx0YPRgtGLINGI0LXQudC00LXRgNCwXG4gKlxuICogQHBhcmFtIHtUeXBlZEFycmF5fSBhcnJheSDQotC40L/QuNC30LjRgNC+0LLQsNC90L3Ri9C5INC80LDRgdGB0LjQsiDQtNCw0L3QvdGL0YUsINC90LDQv9GA0LjQvNC10YAsINC60L7QvtGA0LTQuNC90LDRgiDQstC10YDRiNC40L1cbiAqIEBwYXJhbSB7TnVtYmVyfSBpdGVtU2l6ZSDQoNCw0LfQvNC10YDQvdC+0YHRgtGMINC00LDQvdC90YvRhSwg0L3QsNC/0YDQuNC80LXRgCwgMyAtINC00LvRjyDQutC+0L7QtNC40L3QsNGCINCy0LXRgNGI0LjQvVxuICovXG5jbGFzcyBCdWZmZXIge1xuICAgIGNvbnN0cnVjdG9yKGFycmF5LCBpdGVtU2l6ZSkge1xuICAgICAgICB0aGlzLl9hcnJheSA9IGFycmF5O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQoNCw0LfQvNC10YDQvdC+0YHRgtGMINC00LDQvdC90YvRhVxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pdGVtU2l6ZSA9IGl0ZW1TaXplO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmtC+0LvQuNGH0LXRgdGC0LLQviDRjdC70LXQvNC10L3RgtC+0LIg0LIg0LzQsNGB0YHQuNCy0LUg0LTQsNC90L3Ri9GFXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGFycmF5Lmxlbmd0aCAvIGl0ZW1TaXplO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQotC40L8g0LHRg9GE0LXRgNCwLiDQkdGD0YTQtdGAINC80L7QttC10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM0YHRjyDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQvNCw0YHRgdC40LLQsCDQtNCw0L3QvdGL0YUsXG4gICAgICAgICAqINGC0LDQuiDQuCDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQuNC90LTQtdC60YHQvtCyINGN0LvQtdC80LXQvdGC0L7QsiDQuNC3INC00LDQvdC90YvRhS5cbiAgICAgICAgICogQHR5cGUge0J1ZmZlci5BcnJheUJ1ZmZlciB8IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBCdWZmZXIuQXJyYXlCdWZmZXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCj0LrQsNC30YvQstCw0LXRgiwg0LrQsNC6INGH0LDRgdGC0L4g0LTQsNC90L3Ri9C1INCx0YPRhNC10YDQsCDQsdGD0LTRg9GCINC40LfQvNC10L3Rj9GC0YzRgdGPLlxuICAgICAgICAgKiBAdHlwZSB7QnVmZmVyLlN0YXRpY0RyYXcgfCBCdWZmZXIuRHluYW1pY0RyYXd9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmRyYXdUeXBlID0gQnVmZmVyLlN0YXRpY0RyYXc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCi0LjQvyDQtNCw0L3QvdGL0YUg0LIg0LHRg9GE0YTQtdGA0LU6IGZsb2F0LCBpbnQsIHNob3J0INC4INGCLtC0LlxuICAgICAgICAgKiBAdHlwZSB7QnVmZmVyLkZsb2F0IHwgQnVmZmVyLlVuc2lnbmVkQnl0ZX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZGF0YVR5cGUgPSBCdWZmZXIuRmxvYXQ7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YbQtdC70L7Rh9C40YHQu9C10L3QvdGL0YUg0YLQuNC/0L7Qsi4g0JXRgdC70Lgg0LLRi9GB0YLQsNCy0LvQtdC9INCyIHRydWUsINGC0L5cbiAgICAgICAgICog0LfQvdCw0YfQtdC90LjRjyDQuNC80LXRjtGJ0LjQtSDRgtC40L8gQllURSDQvtGCIC0xMjgg0LTQviAxMjgg0LHRg9C00YPRgiDQv9C10YDQtdCy0LXQtNC10L3RiyDQvtGCIC0xLjAg0LTQviAxLjAuXG4gICAgICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ub3JtYWxpemVkID0gZmFsc2U7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGPINCx0YPRhNC10YDQsCDQv9GA0L7QuNGB0YXQvtC00LjRgiDQsiDQvNC+0LzQtdC90YIg0L/QtdGA0LLQvtCz0L4g0YDQtdC90LTQtdGA0LjQvdCz0LAuXG4gICAgICAgICAqINCi0LXQutGD0YnQuNC5IFdlYkdsINC60L7QvdGC0LXQutGB0YIg0YHQvtGF0YDQsNC90Y/QtdGC0YHRjyDQsiDRjdGC0L7QuSDQv9C10YDQtdC80LXQvdC90L7QuS5cbiAgICAgICAgICog0JXRgdC70Lgg0LrQvtC90YLQtdC60YHRgiDQvNC10L3Rj9C10YLRgdGPLCDQsdGD0YTQtdGAINC90LXQvtCx0YXQvtC00LjQvNC+INC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDRgtGMINC30LDQvdC+0LLQvi5cbiAgICAgICAgICogQHR5cGUgez9XZWJHTFJlbmRlcmluZ0NvbnRleHR9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3ByZXBhcmVkR2xDb250ZXh0ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodCy0Y/Qt9GL0LLQsNC10YIg0LTQsNC90L3Ri9C1INGBINC60L7QvdGC0LXQutGB0YLQvtC8IFdlYkdMLlxuICAgICAqXG4gICAgICog0JIg0YHQu9GD0YfQsNC1IEJ1ZmZlci5BcnJheUJ1ZmZlciDRgdCy0Y/Qt9GL0LLQsNC10YIg0YEg0LDRgtGA0LjQsdGD0YLQsNC80Lgg0YjQtdC50LTQtdGA0LAuXG4gICAgICog0JAg0LIg0YHQu9GD0YfQsNC1IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXIg0YHQstGP0LfRi9Cy0LDQtdGCINC80LDRgdGB0LjQsiDQuNC90LTQtdC60YHQvtCyLlxuICAgICAqXG4gICAgICog0JXRgdC70Lgg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC/0LXRgNCy0YvQuSDRgNCw0LcsINC00L7QsdCw0LLQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LIg0LrQvtC90YLQtdC60YHRgiBXZWJHTC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7P051bWJlcn0gbG9jYXRpb24g0J/QvtC70L7QttC10L3QuNC1INCw0YLRgtGA0LjQsdGD0YLQsCDQtNC70Y8g0YHQstGP0LfRi9Cy0LDQvdC40Y8g0LTQsNC90L3Ri9GFINGBINC/0LXRgNC10LzQtdC90L3Ri9C80Lgg0LIg0YjQtdC50LTQtdGA0LVcbiAgICAgKiBAcGFyYW0gez9CdWZmZXJCaW5kT3B0aW9uc30gb3B0aW9ucyDQn9Cw0YDQsNC80LXRgtGA0Ysg0L/QtdGA0LXQtNCw0LLQsNC10LzRi9C1INCyINGE0YPQvdC60YbQuNGOIHZlcnRleEF0dHJpYlBvaW50ZXIsINC10YHQu9C4INC40YUg0L3QtdGCLFxuICAgICAqINGC0L4g0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINC/0LDRgNCw0LzQtdGC0YDRiyDQutC+0L3QutGA0LXRgtC90L7Qs9C+INCx0YPRhNC10YDQsC4g0J/QsNGA0LDQvNC10YLRgNGLINC00L7Qu9C20L3RiyDQsdGL0YLRjCDQv9C10YDQtdC00LDQvdGLINCy0YHQtS5cbiAgICAgKi9cbiAgICBiaW5kKGdsLCBsb2NhdGlvbiwgb3B0aW9ucykge1xuICAgICAgICBpZiAodGhpcy5fcHJlcGFyZWRHbENvbnRleHQgIT09IGdsKSB7XG4gICAgICAgICAgICB0aGlzLl91bnByZXBhcmUodGhpcy5fcHJlcGFyZWRHbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9nbEJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBCdWZmZXIuQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB0aGlzLl9nbEJ1ZmZlcik7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihsb2NhdGlvbiwgb3B0aW9ucy5pdGVtU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdG9HbFBhcmFtKGdsLCBvcHRpb25zLmRhdGFUeXBlKSwgb3B0aW9ucy5ub3JtYWxpemVkLCBvcHRpb25zLnN0cmlkZSwgb3B0aW9ucy5vZmZzZXQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGxvY2F0aW9uLCB0aGlzLml0ZW1TaXplLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMuZGF0YVR5cGUpLCB0aGlzLm5vcm1hbGl6ZWQsIDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gQnVmZmVyLkVsZW1lbnRBcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgdGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LTQsNC90L3Ri9C1INC40Lcg0LrQvtC90YLQtdC60YHRgtCwIFdlYkdMLlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIHJlbW92ZShnbCkge1xuICAgICAgICB0aGlzLl91bnByZXBhcmUoZ2wpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiDQtNCw0L3QvdGL0YVcbiAgICAgKiBAcmV0dXJucyB7VHlwZWRBcnJheX1cbiAgICAgKi9cbiAgICBnZXRBcnJheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGN0LvQtdC80LXQvdGCINC40Lcg0LzQsNGB0YHQuNCy0LAg0LTQsNC90L3Ri9GFXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGluZGV4INCd0L7QvNC10YAg0Y3Qu9C10LzQtdC90YLQsCDQsiDQvNCw0YHRgdC40LLQtSDQtNCw0L3QvdGL0YVcbiAgICAgKiBAcmV0dXJucyB7VHlwZWRBcnJheX1cbiAgICAgKi9cbiAgICBnZXRFbGVtZW50KGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcnJheS5zdWJhcnJheShpbmRleCAqIHRoaXMuaXRlbVNpemUsIChpbmRleCArIDEpICogdGhpcy5pdGVtU2l6ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLRgNC+0LnQutGDINGN0LvQtdC80LXQvdGC0L7QsiDQuNC3INC80LDRgdGB0LjQstCwINC00LDQvdC90YvRhVxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBpbmRleCDQmNC90LTQtdC60YFcbiAgICAgKiBAcmV0dXJucyB7VHlwZWRBcnJheVtdfVxuICAgICAqL1xuICAgIGdldFRyaWFuZ2xlKGluZGV4KSB7XG4gICAgICAgIGluZGV4ICo9IDM7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudChpbmRleCksXG4gICAgICAgICAgICB0aGlzLmdldEVsZW1lbnQoaW5kZXggKyAxKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudChpbmRleCArIDIpXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JrQvtC90LrQsNGC0LXQvdC40YDRg9C10YIg0LTQsNC90L3Ri9C5INCx0YPRhNC10YAg0YEg0LTRgNGD0LPQuNC8LlxuICAgICAqINCe0YHRgtC+0YDQvtC20L3Qviwg0LzQtdGC0L7QtCDQvdC1INC/0YDQvtCy0LXRgNGP0LXRgiDQvtC00LjQvdCw0LrQvtCy0L7QuSDRgNCw0LfQvNC10YDQvdC+0YHRgtC4INC00LDQvdC90YvQtSDQuNC70Lgg0L3QtdGCLlxuICAgICAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXJcbiAgICAgKi9cbiAgICBjb25jYXQoYnVmZmVyKSB7XG4gICAgICAgIGNvbnN0IGFkZEFycmF5ID0gYnVmZmVyLmdldEFycmF5KCk7XG4gICAgICAgIGNvbnN0IG5ld0FycmF5ID0gbmV3IHRoaXMuX2FycmF5LmNvbnN0cnVjdG9yKHRoaXMuX2FycmF5Lmxlbmd0aCArIGFkZEFycmF5Lmxlbmd0aCk7XG4gICAgICAgIG5ld0FycmF5LnNldCh0aGlzLl9hcnJheSwgMCk7XG4gICAgICAgIG5ld0FycmF5LnNldChhZGRBcnJheSwgdGhpcy5fYXJyYXkubGVuZ3RoKTtcblxuICAgICAgICB0aGlzLl9hcnJheSA9IG5ld0FycmF5O1xuICAgICAgICB0aGlzLmxlbmd0aCA9IG5ld0FycmF5Lmxlbmd0aCAvIHRoaXMuaXRlbVNpemU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC80LXQvdGP0LXRgiDRh9Cw0YHRgtGMINCx0YPRhNC10YDQsCDQvdC+0LLRi9C80Lgg0LTQsNC90L3Ri9C80Lgg0Lgg0L7RgtC/0YDQsNCy0LvRj9C10YIg0LjRhSDQsiDQstC40LTQtdC+0LrQsNGA0YLRg1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBpbmRleCDQmNC90LTQtdC60YEsINGBINC60L7RgtC+0YDQvtCz0L4g0L3QsNGH0LDRgtGMINC30LDQvNC10L3Rg1xuICAgICAqIEBwYXJhbSB7VHlwZWRBcnJheX0gZGF0YSDQndC+0LLRi9C1INC00LDQvdC90YvQtVxuICAgICAqL1xuICAgIHN1YkRhdGEoZ2wsIGluZGV4LCBkYXRhKSB7XG4gICAgICAgIGdsLmJpbmRCdWZmZXIodGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLnR5cGUpLCB0aGlzLl9nbEJ1ZmZlcik7XG4gICAgICAgIGdsLmJ1ZmZlclN1YkRhdGEodGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLnR5cGUpLCBpbmRleCAqIHRoaXMuaXRlbVNpemUsIGRhdGEpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCa0LvQsNC00ZHRgiDQtNCw0L3QvdGL0LUg0LIg0LLQuNC00LXQvtC60LDRgNGC0YNcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fZ2xCdWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTtcbiAgICAgICAgZ2wuYmluZEJ1ZmZlcih0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMudHlwZSksIHRoaXMuX2dsQnVmZmVyKTtcbiAgICAgICAgZ2wuYnVmZmVyRGF0YSh0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMudHlwZSksIHRoaXMuX2FycmF5LCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMuZHJhd1R5cGUpKTtcbiAgICAgICAgdGhpcy5fcHJlcGFyZWRHbENvbnRleHQgPSBnbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LjQtyDQstC40LTQtdC+0LrQsNGA0YLRi1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBfdW5wcmVwYXJlKGdsKSB7XG4gICAgICAgIGlmICghZ2wpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2dsQnVmZmVyKSB7XG4gICAgICAgICAgICBnbC5kZWxldGVCdWZmZXIodGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2dsQnVmZmVyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LXQvtCx0YDQsNC30L7QstGL0LLQsNC10YIg0L/QsNGA0LDQvNC10YLRgNGLINCx0YPRhNC10YDQsCDQsiDQv9Cw0YDQsNC80LXRgtGA0YsgV2ViR0xcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge0J1ZmZlci5BcnJheUJ1ZmZlciB8IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXJ9IHBhcmFtXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIF90b0dsUGFyYW0oZ2wsIHBhcmFtKSB7XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkFycmF5QnVmZmVyKSB7IHJldHVybiBnbC5BUlJBWV9CVUZGRVI7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuRWxlbWVudEFycmF5QnVmZmVyKSB7IHJldHVybiBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUjsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5TdGF0aWNEcmF3KSB7IHJldHVybiBnbC5TVEFUSUNfRFJBVzsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5EeW5hbWljRHJhdykgeyByZXR1cm4gZ2wuRFlOQU1JQ19EUkFXOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkZsb2F0KSB7IHJldHVybiBnbC5GTE9BVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5VbnNpZ25lZEJ5dGUpIHsgcmV0dXJuIGdsLlVOU0lHTkVEX0JZVEU7IH1cbiAgICB9XG59XG5cbkJ1ZmZlci5BcnJheUJ1ZmZlciA9IDE7XG5CdWZmZXIuRWxlbWVudEFycmF5QnVmZmVyID0gMjtcblxuQnVmZmVyLlN0YXRpY0RyYXcgPSAxMDtcbkJ1ZmZlci5EeW5hbWljRHJhdyA9IDExO1xuXG5CdWZmZXIuRmxvYXQgPSAyMDtcbkJ1ZmZlci5VbnNpZ25lZEJ5dGUgPSAyMTtcblxuZXhwb3J0IGRlZmF1bHQgQnVmZmVyO1xuXG4vKipcbiAqINCf0LDRgNCw0LzQtdGC0YDRiyDQv9C10YDQtdC00LDQstCw0LXQvNGL0LUg0LIg0YTRg9C90LrRhtC40Y4gdmVydGV4QXR0cmliUG9pbnRlci5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCdWZmZXJCaW5kT3B0aW9uc1xuICogQHByb3BlcnR5IHtOdW1iZXJ9IGl0ZW1TaXplINCg0LDQt9C80LXRgNC90L7RgdGC0Ywg0Y3Qu9C10LzQtdC90YLQvtCyINCyINCx0YPRhNC10YDQtVxuICogQHByb3BlcnR5IHtCdWZmZXIuRmxvYXQgfCBCdWZmZXIuVW5zaWduZWRCeXRlfSBkYXRhVHlwZSDQotC40L8g0LTQsNC90L3Ri9GFINCyINCx0YPRhNC10YDQtVxuICogQHByb3BlcnR5IHtCb29sZWFufSBub3JtYWxpemVkINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YbQtdC70L7Rh9C40YHQu9C10L3QvdGL0YUg0YLQuNC/0L7Qsi4g0JXRgdC70Lgg0LLRi9GB0YLQsNCy0LvQtdC9INCyIHRydWUsINGC0L5cbiAqINC30L3QsNGH0LXQvdC40Y8g0LjQvNC10Y7RidC40LUg0YLQuNC/IEJZVEUg0L7RgiAtMTI4INC00L4gMTI4INCx0YPQtNGD0YIg0L/QtdGA0LXQstC10LTQtdC90Ysg0L7RgiAtMS4wINC00L4gMS4wLlxuICogQHByb3BlcnR5IHtOdW1iZXJ9IHN0cmlkZVxuICogQHByb3BlcnR5IHtOdW1iZXJ9IG9mZnNldFxuICovXG4iXX0=

@@ -147,2 +147,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYW1lcmFzL0NhbWVyYS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztJQU9NLE07OztBQUNGLG9CQUFjO0FBQUE7Ozs7Ozs7QUFBQTs7QUFPVixVQUFLLEVBQUwsR0FBVSxlQUFLLFVBQUwsQ0FBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsQ0FBVjs7Ozs7O0FBTUEsVUFBSyxnQkFBTCxHQUF3QixlQUFLLE1BQUwsRUFBeEI7Ozs7OztBQU1BLFVBQUssZUFBTCxHQUF1QixlQUFLLE1BQUwsRUFBdkI7Ozs7OztBQU1BLFVBQUssa0JBQUwsR0FBMEIsZUFBSyxNQUFMLEVBQTFCO0FBekJVO0FBMEJiOzs7Ozs7Ozs7OzZDQU13QixDQUFFOzs7Ozs7Ozt3Q0FLUDtBQUNoQjs7QUFFQSxxQkFBSyxNQUFMLENBQVksS0FBSyxrQkFBakIsRUFBcUMsS0FBSyxXQUExQztBQUNBLHFCQUFLLFFBQUwsQ0FBYyxLQUFLLGVBQW5CLEVBQW9DLEtBQUssZ0JBQXpDLEVBQTJELEtBQUssa0JBQWhFO0FBQ0g7Ozs7Ozs7Ozs7NEJBT08sTSxFQUFRO0FBQ1osVUFBTSxTQUFTLGVBQUssTUFBTCxFQUFmO0FBQ0EscUJBQUssYUFBTCxDQUFtQixNQUFuQixFQUEyQixNQUEzQixFQUFtQyxLQUFLLGVBQXhDO0FBQ0EsYUFBTyxNQUFQO0FBQ0g7Ozs7Ozs7Ozs7OEJBT1MsTSxFQUFRO0FBQ2QsVUFBTSxTQUFTLGVBQUssTUFBTCxFQUFmO0FBQ0EsVUFBTSxnQkFBZ0IsZUFBSyxNQUFMLEVBQXRCO0FBQ0EsVUFBTSxTQUFTLGVBQUssTUFBTCxFQUFmOztBQUVBLHFCQUFLLE1BQUwsQ0FBWSxhQUFaLEVBQTJCLEtBQUssZ0JBQWhDO0FBQ0EscUJBQUssR0FBTCxDQUFTLE1BQVQsRUFBaUIsS0FBSyxXQUF0QixFQUFtQyxhQUFuQztBQUNBLHFCQUFLLGFBQUwsQ0FBbUIsTUFBbkIsRUFBMkIsTUFBM0IsRUFBbUMsTUFBbkM7O0FBRUEsYUFBTyxNQUFQO0FBQ0g7Ozs7Ozs7OzsyQkFNTSxRLEVBQVU7QUFDYixVQUFNLFVBQVUsZUFBSyxNQUFMLEVBQWhCO0FBQ0EsVUFBTSxVQUFVLGVBQUssTUFBTCxFQUFoQjtBQUNBLHFCQUFLLE1BQUwsQ0FBWSxPQUFaLEVBQXFCLEtBQUssUUFBMUIsRUFBb0MsUUFBcEMsRUFBOEMsS0FBSyxFQUFuRDtBQUNBLHFCQUFLLFNBQUwsQ0FBZSxPQUFmLEVBQXdCLE9BQXhCO0FBQ0EscUJBQUssUUFBTCxDQUFjLE9BQWQsRUFBdUIsT0FBdkI7QUFDQSxxQkFBSyxRQUFMLENBQWMsS0FBSyxVQUFuQixFQUErQixPQUEvQjs7QUFFQSxhQUFPLElBQVA7QUFDSDs7Ozs7O2tCQUdVLE0iLCJmaWxlIjoiQ2FtZXJhLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4uL09iamVjdDNEJztcbmltcG9ydCB7dmVjMywgbWF0MywgbWF0NCwgcXVhdH0gZnJvbSAnZ2wtbWF0cml4JztcblxuLyoqXG4gKiDQmtCw0LzQtdGA0LBcbiAqXG4gKiBAZXh0ZW5kcyBPYmplY3QzRFxuICovXG5jbGFzcyBDYW1lcmEgZXh0ZW5kcyBPYmplY3QzRCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCh0L/QtdGG0LjRhNC40YfQvdGL0Lkg0LTQu9GPINC60LDQvNC10YDRiyDQstC10LrRgtC+0YAsINC/0L7QvNC+0LPQsNGO0YnQuNC5INC+0L/RgNC10LTQtdC70LjRgtGMINC10ZEg0L/QvtC70L7QttC10L3QuNC1XG4gICAgICAgICAqIEB0eXBlIHt2ZWMzfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy51cCA9IHZlYzMuZnJvbVZhbHVlcygwLCAxLCAwKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/RgNC+0LXQutGG0LjQvtC90L3QsNGPINC80LDRgtGA0LjRhtCwXG4gICAgICAgICAqIEB0eXBlIHttYXQ0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wcm9qZWN0aW9uTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQsNGC0YDQuNGG0LAg0LzQvtC00LXQu9GMLdCy0LjQtNCwINC40YHQv9C+0LvRjNC30YPRjtGJ0LDRj9GB0Y8g0LIg0YjQtdC50LTQtdGA0LDRhSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC60L7QvdC10YfQvdC+0LPQviDQuNC30L7QsdGA0LDQttC10L3QuNGPXG4gICAgICAgICAqIEB0eXBlIHttYXQ0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tb2RlbFZpZXdNYXRyaXggPSBtYXQ0LmNyZWF0ZSgpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNCw0YLRgNC40YbQsCwg0L7QsdGA0LDRgtC90LDRjyDQuiB3b3JsZE1hdHJpeFxuICAgICAgICAgKiBAdHlwZSB7bWF0NH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMud29ybGRJbnZlcnNlTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0L/RgNC+0LXQutGG0LjQvtC90L3Rg9GOINC80LDRgtGA0LjRhtGDLiDQntCx0YvRh9C90L4g0Y3RgtC+INC90YPQttC90L4g0L/QvtGB0LvQtSDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0LDQvNC10YLRgNC+0LIg0LrQsNC80LXRgNGLLlxuICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQsiDQvdCw0YHQu9C10LTRg9C10LzRi9GFINC60LvQsNGB0YHQsNGFLlxuICAgICAqL1xuICAgIHVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSB7fVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINCz0LvQvtCx0LDQu9GM0L3Rg9GOINC80LDRgtGA0LjRhtGDINC+0LHRitC10LrRgtCwINC4INC80LDRgtGA0LjRhtGDINC80L7QtNC10LvRjC3QstC40LTQsC5cbiAgICAgKiAqL1xuICAgIHVwZGF0ZVdvcmxkTWF0cml4KCkge1xuICAgICAgICBzdXBlci51cGRhdGVXb3JsZE1hdHJpeCgpO1xuXG4gICAgICAgIG1hdDQuaW52ZXJ0KHRoaXMud29ybGRJbnZlcnNlTWF0cml4LCB0aGlzLndvcmxkTWF0cml4KTtcbiAgICAgICAgbWF0NC5tdWx0aXBseSh0aGlzLm1vZGVsVmlld01hdHJpeCwgdGhpcy5wcm9qZWN0aW9uTWF0cml4LCB0aGlzLndvcmxkSW52ZXJzZU1hdHJpeCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LXRhtC40YDRg9C10YIg0LLQtdC60YLQvtGAINC40Lcg0LPQu9C+0LHQsNC70YzQvdC+0Lkg0YHQuNGB0YLQtdC80Ysg0LrQvtC+0YDQtNC40L3QsNGCINC90LAg0Y3QutGA0LDQvVxuICAgICAqIEBwYXJhbSB7dmVjM30gdmVjdG9yXG4gICAgICogQHJldHVybnMge3ZlYzN9XG4gICAgICovXG4gICAgcHJvamVjdCh2ZWN0b3IpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdmVjMy5jcmVhdGUoKTtcbiAgICAgICAgdmVjMy50cmFuc2Zvcm1NYXQ0KHJlc3VsdCwgdmVjdG9yLCB0aGlzLm1vZGVsVmlld01hdHJpeCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LXRhtC40YDRg9C10YIg0LLQtdC60YLQvtGAINC40Lcg0YHQuNGB0YLQtdC80Ysg0LrQvtC+0YDQtNC40L3QsNGCINGN0LrRgNCw0L3QsCDQsiDQs9C70L7QsdCw0LvRjNC90YPRjlxuICAgICAqIEBwYXJhbSB7dmVjM30gdmVjdG9yXG4gICAgICogQHJldHVybnMge3ZlYzN9XG4gICAgICovXG4gICAgdW5wcm9qZWN0KHZlY3Rvcikge1xuICAgICAgICBjb25zdCBtYXRyaXggPSBtYXQ0LmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBpbnZlcnNlTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdmVjMy5jcmVhdGUoKTtcblxuICAgICAgICBtYXQ0LmludmVydChpbnZlcnNlTWF0cml4LCB0aGlzLnByb2plY3Rpb25NYXRyaXgpO1xuICAgICAgICBtYXQ0Lm11bChtYXRyaXgsIHRoaXMud29ybGRNYXRyaXgsIGludmVyc2VNYXRyaXgpO1xuICAgICAgICB2ZWMzLnRyYW5zZm9ybU1hdDQocmVzdWx0LCB2ZWN0b3IsIG1hdHJpeCk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LLQvtGA0LDRh9C40LLQsNC10YIg0LrQsNC80LXRgNGDINGC0LDQuiwg0YfRgtC+0LHRiyDRhtC10L3RgtGAINGN0LrRgNCw0L3QsCDRgtC+0YfQvdC+INGB0LzQvtGC0YDQtdC7INC90LAg0YPQutCw0LfQsNC90L3Rg9GOINC/0L7Qt9C40YbQuNGOXG4gICAgICogQHBhcmFtIHt2ZWMzfSBwb3NpdGlvblxuICAgICAqL1xuICAgIGxvb2tBdChwb3NpdGlvbikge1xuICAgICAgICBjb25zdCBtYXRyaXg0ID0gbWF0NC5jcmVhdGUoKTtcbiAgICAgICAgY29uc3QgbWF0cml4MyA9IG1hdDMuY3JlYXRlKCk7XG4gICAgICAgIG1hdDQubG9va0F0KG1hdHJpeDQsIHRoaXMucG9zaXRpb24sIHBvc2l0aW9uLCB0aGlzLnVwKTtcbiAgICAgICAgbWF0NC50cmFuc3Bvc2UobWF0cml4NCwgbWF0cml4NCk7XG4gICAgICAgIG1hdDMuZnJvbU1hdDQobWF0cml4MywgbWF0cml4NCk7XG4gICAgICAgIHF1YXQuZnJvbU1hdDModGhpcy5xdWF0ZXJuaW9uLCBtYXRyaXgzKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENhbWVyYTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYW1lcmFzL0NhbWVyYS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7OztBQUVBOzs7Ozs7SUFLTSxNOzs7QUFDRixvQkFBYztBQUFBOztBQUdWOzs7OztBQUhVOztBQU9WLFVBQUssRUFBTCxHQUFVLGVBQUssVUFBTCxDQUFnQixDQUFoQixFQUFtQixDQUFuQixFQUFzQixDQUF0QixDQUFWOztBQUVBOzs7O0FBSUEsVUFBSyxnQkFBTCxHQUF3QixlQUFLLE1BQUwsRUFBeEI7O0FBRUE7Ozs7QUFJQSxVQUFLLGVBQUwsR0FBdUIsZUFBSyxNQUFMLEVBQXZCOztBQUVBOzs7O0FBSUEsVUFBSyxrQkFBTCxHQUEwQixlQUFLLE1BQUwsRUFBMUI7QUF6QlU7QUEwQmI7O0FBRUQ7Ozs7Ozs7OzZDQUl5QixDQUFFOztBQUUzQjs7Ozs7O3dDQUdvQjtBQUNoQjs7QUFFQSxxQkFBSyxNQUFMLENBQVksS0FBSyxrQkFBakIsRUFBcUMsS0FBSyxXQUExQztBQUNBLHFCQUFLLFFBQUwsQ0FBYyxLQUFLLGVBQW5CLEVBQW9DLEtBQUssZ0JBQXpDLEVBQTJELEtBQUssa0JBQWhFO0FBQ0g7O0FBRUQ7Ozs7Ozs7OzRCQUtRLE0sRUFBUTtBQUNaLFVBQU0sU0FBUyxlQUFLLE1BQUwsRUFBZjtBQUNBLHFCQUFLLGFBQUwsQ0FBbUIsTUFBbkIsRUFBMkIsTUFBM0IsRUFBbUMsS0FBSyxlQUF4QztBQUNBLGFBQU8sTUFBUDtBQUNIOztBQUVEOzs7Ozs7Ozs4QkFLVSxNLEVBQVE7QUFDZCxVQUFNLFNBQVMsZUFBSyxNQUFMLEVBQWY7QUFDQSxVQUFNLGdCQUFnQixlQUFLLE1BQUwsRUFBdEI7QUFDQSxVQUFNLFNBQVMsZUFBSyxNQUFMLEVBQWY7O0FBRUEscUJBQUssTUFBTCxDQUFZLGFBQVosRUFBMkIsS0FBSyxnQkFBaEM7QUFDQSxxQkFBSyxHQUFMLENBQVMsTUFBVCxFQUFpQixLQUFLLFdBQXRCLEVBQW1DLGFBQW5DO0FBQ0EscUJBQUssYUFBTCxDQUFtQixNQUFuQixFQUEyQixNQUEzQixFQUFtQyxNQUFuQzs7QUFFQSxhQUFPLE1BQVA7QUFDSDs7QUFFRDs7Ozs7OzsyQkFJTyxRLEVBQVU7QUFDYixVQUFNLFVBQVUsZUFBSyxNQUFMLEVBQWhCO0FBQ0EsVUFBTSxVQUFVLGVBQUssTUFBTCxFQUFoQjtBQUNBLHFCQUFLLE1BQUwsQ0FBWSxPQUFaLEVBQXFCLEtBQUssUUFBMUIsRUFBb0MsUUFBcEMsRUFBOEMsS0FBSyxFQUFuRDtBQUNBLHFCQUFLLFNBQUwsQ0FBZSxPQUFmLEVBQXdCLE9BQXhCO0FBQ0EscUJBQUssUUFBTCxDQUFjLE9BQWQsRUFBdUIsT0FBdkI7QUFDQSxxQkFBSyxRQUFMLENBQWMsS0FBSyxVQUFuQixFQUErQixPQUEvQjs7QUFFQSxhQUFPLElBQVA7QUFDSDs7Ozs7O2tCQUdVLE0iLCJmaWxlIjoiQ2FtZXJhLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4uL09iamVjdDNEJztcbmltcG9ydCB7dmVjMywgbWF0MywgbWF0NCwgcXVhdH0gZnJvbSAnZ2wtbWF0cml4JztcblxuLyoqXG4gKiDQmtCw0LzQtdGA0LBcbiAqXG4gKiBAZXh0ZW5kcyBPYmplY3QzRFxuICovXG5jbGFzcyBDYW1lcmEgZXh0ZW5kcyBPYmplY3QzRCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCh0L/QtdGG0LjRhNC40YfQvdGL0Lkg0LTQu9GPINC60LDQvNC10YDRiyDQstC10LrRgtC+0YAsINC/0L7QvNC+0LPQsNGO0YnQuNC5INC+0L/RgNC10LTQtdC70LjRgtGMINC10ZEg0L/QvtC70L7QttC10L3QuNC1XG4gICAgICAgICAqIEB0eXBlIHt2ZWMzfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy51cCA9IHZlYzMuZnJvbVZhbHVlcygwLCAxLCAwKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/RgNC+0LXQutGG0LjQvtC90L3QsNGPINC80LDRgtGA0LjRhtCwXG4gICAgICAgICAqIEB0eXBlIHttYXQ0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wcm9qZWN0aW9uTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQsNGC0YDQuNGG0LAg0LzQvtC00LXQu9GMLdCy0LjQtNCwINC40YHQv9C+0LvRjNC30YPRjtGJ0LDRj9GB0Y8g0LIg0YjQtdC50LTQtdGA0LDRhSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC60L7QvdC10YfQvdC+0LPQviDQuNC30L7QsdGA0LDQttC10L3QuNGPXG4gICAgICAgICAqIEB0eXBlIHttYXQ0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tb2RlbFZpZXdNYXRyaXggPSBtYXQ0LmNyZWF0ZSgpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNCw0YLRgNC40YbQsCwg0L7QsdGA0LDRgtC90LDRjyDQuiB3b3JsZE1hdHJpeFxuICAgICAgICAgKiBAdHlwZSB7bWF0NH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMud29ybGRJbnZlcnNlTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0L/RgNC+0LXQutGG0LjQvtC90L3Rg9GOINC80LDRgtGA0LjRhtGDLiDQntCx0YvRh9C90L4g0Y3RgtC+INC90YPQttC90L4g0L/QvtGB0LvQtSDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0LDQvNC10YLRgNC+0LIg0LrQsNC80LXRgNGLLlxuICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQsiDQvdCw0YHQu9C10LTRg9C10LzRi9GFINC60LvQsNGB0YHQsNGFLlxuICAgICAqL1xuICAgIHVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSB7fVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINCz0LvQvtCx0LDQu9GM0L3Rg9GOINC80LDRgtGA0LjRhtGDINC+0LHRitC10LrRgtCwINC4INC80LDRgtGA0LjRhtGDINC80L7QtNC10LvRjC3QstC40LTQsC5cbiAgICAgKiAqL1xuICAgIHVwZGF0ZVdvcmxkTWF0cml4KCkge1xuICAgICAgICBzdXBlci51cGRhdGVXb3JsZE1hdHJpeCgpO1xuXG4gICAgICAgIG1hdDQuaW52ZXJ0KHRoaXMud29ybGRJbnZlcnNlTWF0cml4LCB0aGlzLndvcmxkTWF0cml4KTtcbiAgICAgICAgbWF0NC5tdWx0aXBseSh0aGlzLm1vZGVsVmlld01hdHJpeCwgdGhpcy5wcm9qZWN0aW9uTWF0cml4LCB0aGlzLndvcmxkSW52ZXJzZU1hdHJpeCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LXRhtC40YDRg9C10YIg0LLQtdC60YLQvtGAINC40Lcg0LPQu9C+0LHQsNC70YzQvdC+0Lkg0YHQuNGB0YLQtdC80Ysg0LrQvtC+0YDQtNC40L3QsNGCINC90LAg0Y3QutGA0LDQvVxuICAgICAqIEBwYXJhbSB7dmVjM30gdmVjdG9yXG4gICAgICogQHJldHVybnMge3ZlYzN9XG4gICAgICovXG4gICAgcHJvamVjdCh2ZWN0b3IpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdmVjMy5jcmVhdGUoKTtcbiAgICAgICAgdmVjMy50cmFuc2Zvcm1NYXQ0KHJlc3VsdCwgdmVjdG9yLCB0aGlzLm1vZGVsVmlld01hdHJpeCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LXRhtC40YDRg9C10YIg0LLQtdC60YLQvtGAINC40Lcg0YHQuNGB0YLQtdC80Ysg0LrQvtC+0YDQtNC40L3QsNGCINGN0LrRgNCw0L3QsCDQsiDQs9C70L7QsdCw0LvRjNC90YPRjlxuICAgICAqIEBwYXJhbSB7dmVjM30gdmVjdG9yXG4gICAgICogQHJldHVybnMge3ZlYzN9XG4gICAgICovXG4gICAgdW5wcm9qZWN0KHZlY3Rvcikge1xuICAgICAgICBjb25zdCBtYXRyaXggPSBtYXQ0LmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBpbnZlcnNlTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdmVjMy5jcmVhdGUoKTtcblxuICAgICAgICBtYXQ0LmludmVydChpbnZlcnNlTWF0cml4LCB0aGlzLnByb2plY3Rpb25NYXRyaXgpO1xuICAgICAgICBtYXQ0Lm11bChtYXRyaXgsIHRoaXMud29ybGRNYXRyaXgsIGludmVyc2VNYXRyaXgpO1xuICAgICAgICB2ZWMzLnRyYW5zZm9ybU1hdDQocmVzdWx0LCB2ZWN0b3IsIG1hdHJpeCk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LLQvtGA0LDRh9C40LLQsNC10YIg0LrQsNC80LXRgNGDINGC0LDQuiwg0YfRgtC+0LHRiyDRhtC10L3RgtGAINGN0LrRgNCw0L3QsCDRgtC+0YfQvdC+INGB0LzQvtGC0YDQtdC7INC90LAg0YPQutCw0LfQsNC90L3Rg9GOINC/0L7Qt9C40YbQuNGOXG4gICAgICogQHBhcmFtIHt2ZWMzfSBwb3NpdGlvblxuICAgICAqL1xuICAgIGxvb2tBdChwb3NpdGlvbikge1xuICAgICAgICBjb25zdCBtYXRyaXg0ID0gbWF0NC5jcmVhdGUoKTtcbiAgICAgICAgY29uc3QgbWF0cml4MyA9IG1hdDMuY3JlYXRlKCk7XG4gICAgICAgIG1hdDQubG9va0F0KG1hdHJpeDQsIHRoaXMucG9zaXRpb24sIHBvc2l0aW9uLCB0aGlzLnVwKTtcbiAgICAgICAgbWF0NC50cmFuc3Bvc2UobWF0cml4NCwgbWF0cml4NCk7XG4gICAgICAgIG1hdDMuZnJvbU1hdDQobWF0cml4MywgbWF0cml4NCk7XG4gICAgICAgIHF1YXQuZnJvbU1hdDModGhpcy5xdWF0ZXJuaW9uLCBtYXRyaXgzKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENhbWVyYTtcbiJdfQ==

@@ -107,2 +107,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYW1lcmFzL09ydGhvZ3JhcGhpY0NhbWVyYS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9NLGtCOzs7Ozs7Ozs7Ozs7QUFTRiw4QkFBWSxJQUFaLEVBQWtCLEtBQWxCLEVBQXlCLEdBQXpCLEVBQThCLE1BQTlCLEVBQXNDLElBQXRDLEVBQTRDLEdBQTVDLEVBQWlEO0FBQUE7Ozs7Ozs7QUFBQTs7QUFPN0MsVUFBSyxJQUFMLEdBQVksSUFBWjs7Ozs7O0FBTUEsVUFBSyxLQUFMLEdBQWEsS0FBYjs7Ozs7O0FBTUEsVUFBSyxHQUFMLEdBQVcsR0FBWDs7Ozs7O0FBTUEsVUFBSyxNQUFMLEdBQWMsTUFBZDs7Ozs7O0FBTUEsVUFBSyxJQUFMLEdBQVksSUFBWjs7Ozs7O0FBTUEsVUFBSyxHQUFMLEdBQVcsR0FBWDs7Ozs7O0FBTUEsVUFBSyxJQUFMLEdBQVksdUJBQWEsbUJBQXpCO0FBM0M2QztBQTRDaEQ7Ozs7NkNBRXdCO0FBQ3JCLHFCQUFLLEtBQUwsQ0FBVyxLQUFLLGdCQUFoQixFQUFrQyxLQUFLLElBQXZDLEVBQTZDLEtBQUssS0FBbEQsRUFBeUQsS0FBSyxNQUE5RCxFQUFzRSxLQUFLLEdBQTNFLEVBQWdGLEtBQUssSUFBckYsRUFBMkYsS0FBSyxHQUFoRztBQUNIOzs7Ozs7a0JBR1Usa0IiLCJmaWxlIjoiT3J0aG9ncmFwaGljQ2FtZXJhLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttYXQ0fSBmcm9tICdnbC1tYXRyaXgnO1xuaW1wb3J0IENhbWVyYSBmcm9tICcuL0NhbWVyYSc7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5cbi8qKlxuICog0JfQsNC00LDRkdGCINC+0YDRhNC+0LPRgNCw0YTQuNGH0LXRgdC60YPRjiDQutCw0LzQtdGA0YNcbiAqXG4gKiBAZXh0ZW5kcyBDYW1lcmFcbiAqL1xuY2xhc3MgT3J0aG9ncmFwaGljQ2FtZXJhIGV4dGVuZHMgQ2FtZXJhIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gbGVmdCDQm9C10LLQsNGPINC/0LvQvtGB0LrQvtGB0YLRjCDQutCw0LzQtdGA0YtcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gcmlnaHQg0J/RgNCw0LLQsNGPINC/0LvQvtGB0LrQvtGB0YLRjCDQutCw0LzQtdGA0YtcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gdG9wINCS0LXRgNGF0L3Rj9GPINC/0LvQvtGB0LrQvtGB0YLRjCDQutCw0LzQtdGA0YtcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gYm90dG9tINCd0LjQttC90Y/RjyDQv9C70L7RgdC60L7RgdGC0Ywg0LrQsNC80LXRgNGLXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IG5lYXIg0JzQuNC90LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGZhciDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQutCw0LzQtdGA0Ysg0LTQviDQvtCx0YrQtdC60YLQvtCyLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRj1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSwgbmVhciwgZmFyKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCb0LXQstCw0Y8g0L/Qu9C+0YHQutC+0YHRgtGMINC60LDQvNC10YDRi1xuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5sZWZ0ID0gbGVmdDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/RgNCw0LLQsNGPINC/0LvQvtGB0LrQvtGB0YLRjCDQutCw0LzQtdGA0YtcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucmlnaHQgPSByaWdodDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JLQtdGA0YXQvdGP0Y8g0L/Qu9C+0YHQutC+0YHRgtGMINC60LDQvNC10YDRi1xuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50b3AgPSB0b3A7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCd0LjQttC90Y/RjyDQv9C70L7RgdC60L7RgdGC0Ywg0LrQsNC80LXRgNGLXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJvdHRvbSA9IGJvdHRvbTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQuNC90LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5lYXIgPSBuZWFyO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQutCw0LzQtdGA0Ysg0LTQviDQvtCx0YrQtdC60YLQvtCyLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRj1xuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mYXIgPSBmYXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQutCw0LzQtdGA0YtcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5PUlRIT0dSQVBISUNfQ0FNRVJBO1xuICAgIH1cblxuICAgIHVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKSB7XG4gICAgICAgIG1hdDQub3J0aG8odGhpcy5wcm9qZWN0aW9uTWF0cml4LCB0aGlzLmxlZnQsIHRoaXMucmlnaHQsIHRoaXMuYm90dG9tLCB0aGlzLnRvcCwgdGhpcy5uZWFyLCB0aGlzLmZhcik7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBPcnRob2dyYXBoaWNDYW1lcmE7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYW1lcmFzL09ydGhvZ3JhcGhpY0NhbWVyYS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7SUFLTSxrQjs7O0FBQ0Y7Ozs7Ozs7OztBQVFBLDhCQUFZLElBQVosRUFBa0IsS0FBbEIsRUFBeUIsR0FBekIsRUFBOEIsTUFBOUIsRUFBc0MsSUFBdEMsRUFBNEMsR0FBNUMsRUFBaUQ7QUFBQTs7QUFHN0M7Ozs7O0FBSDZDOztBQU83QyxVQUFLLElBQUwsR0FBWSxJQUFaOztBQUVBOzs7O0FBSUEsVUFBSyxLQUFMLEdBQWEsS0FBYjs7QUFFQTs7OztBQUlBLFVBQUssR0FBTCxHQUFXLEdBQVg7O0FBRUE7Ozs7QUFJQSxVQUFLLE1BQUwsR0FBYyxNQUFkOztBQUVBOzs7O0FBSUEsVUFBSyxJQUFMLEdBQVksSUFBWjs7QUFFQTs7OztBQUlBLFVBQUssR0FBTCxHQUFXLEdBQVg7O0FBRUE7Ozs7QUFJQSxVQUFLLElBQUwsR0FBWSx1QkFBYSxtQkFBekI7QUEzQzZDO0FBNENoRDs7Ozs2Q0FFd0I7QUFDckIscUJBQUssS0FBTCxDQUFXLEtBQUssZ0JBQWhCLEVBQWtDLEtBQUssSUFBdkMsRUFBNkMsS0FBSyxLQUFsRCxFQUF5RCxLQUFLLE1BQTlELEVBQXNFLEtBQUssR0FBM0UsRUFBZ0YsS0FBSyxJQUFyRixFQUEyRixLQUFLLEdBQWhHO0FBQ0g7Ozs7OztrQkFHVSxrQiIsImZpbGUiOiJPcnRob2dyYXBoaWNDYW1lcmEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21hdDR9IGZyb20gJ2dsLW1hdHJpeCc7XG5pbXBvcnQgQ2FtZXJhIGZyb20gJy4vQ2FtZXJhJztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcblxuLyoqXG4gKiDQl9Cw0LTQsNGR0YIg0L7RgNGE0L7Qs9GA0LDRhNC40YfQtdGB0LrRg9GOINC60LDQvNC10YDRg1xuICpcbiAqIEBleHRlbmRzIENhbWVyYVxuICovXG5jbGFzcyBPcnRob2dyYXBoaWNDYW1lcmEgZXh0ZW5kcyBDYW1lcmEge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBsZWZ0INCb0LXQstCw0Y8g0L/Qu9C+0YHQutC+0YHRgtGMINC60LDQvNC10YDRi1xuICAgICAqIEBwYXJhbSB7TnVtYmVyfSByaWdodCDQn9GA0LDQstCw0Y8g0L/Qu9C+0YHQutC+0YHRgtGMINC60LDQvNC10YDRi1xuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB0b3Ag0JLQtdGA0YXQvdGP0Y8g0L/Qu9C+0YHQutC+0YHRgtGMINC60LDQvNC10YDRi1xuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBib3R0b20g0J3QuNC20L3Rj9GPINC/0LvQvtGB0LrQvtGB0YLRjCDQutCw0LzQtdGA0YtcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gbmVhciDQnNC40L3QuNC80LDQu9GM0L3QvtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1INC+0YIg0LrQsNC80LXRgNGLINC00L4g0L7QsdGK0LXQutGC0L7Qsiwg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQvtGC0L7QsdGA0LDQttCw0YLRjNGB0Y9cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gZmFyINCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tLCBuZWFyLCBmYXIpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JvQtdCy0LDRjyDQv9C70L7RgdC60L7RgdGC0Ywg0LrQsNC80LXRgNGLXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQn9GA0LDQstCw0Y8g0L/Qu9C+0YHQutC+0YHRgtGMINC60LDQvNC10YDRi1xuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQktC10YDRhdC90Y/RjyDQv9C70L7RgdC60L7RgdGC0Ywg0LrQsNC80LXRgNGLXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnRvcCA9IHRvcDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J3QuNC20L3Rj9GPINC/0LvQvtGB0LrQvtGB0YLRjCDQutCw0LzQtdGA0YtcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYm90dG9tID0gYm90dG9tO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNC40L3QuNC80LDQu9GM0L3QvtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1INC+0YIg0LrQsNC80LXRgNGLINC00L4g0L7QsdGK0LXQutGC0L7Qsiwg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQvtGC0L7QsdGA0LDQttCw0YLRjNGB0Y9cbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubmVhciA9IG5lYXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCc0LDQutGB0LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmZhciA9IGZhcjtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC60LDQvNC10YDRi1xuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLk9SVEhPR1JBUEhJQ19DQU1FUkE7XG4gICAgfVxuXG4gICAgdXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpIHtcbiAgICAgICAgbWF0NC5vcnRobyh0aGlzLnByb2plY3Rpb25NYXRyaXgsIHRoaXMubGVmdCwgdGhpcy5yaWdodCwgdGhpcy5ib3R0b20sIHRoaXMudG9wLCB0aGlzLm5lYXIsIHRoaXMuZmFyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9ydGhvZ3JhcGhpY0NhbWVyYTtcbiJdfQ==

@@ -95,2 +95,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYW1lcmFzL1BlcnNwZWN0aXZlQ2FtZXJhLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT00saUI7Ozs7Ozs7Ozs7QUFPRiw2QkFBWSxHQUFaLEVBQWlCLE1BQWpCLEVBQXlCLElBQXpCLEVBQStCLEdBQS9CLEVBQW9DO0FBQUE7Ozs7Ozs7QUFBQTs7QUFPaEMsVUFBSyxHQUFMLEdBQVcsR0FBWDs7Ozs7O0FBTUEsVUFBSyxNQUFMLEdBQWMsTUFBZDs7Ozs7O0FBTUEsVUFBSyxJQUFMLEdBQVksSUFBWjs7Ozs7O0FBTUEsVUFBSyxHQUFMLEdBQVcsR0FBWDs7Ozs7O0FBTUEsVUFBSyxJQUFMLEdBQVksdUJBQWEsa0JBQXpCO0FBL0JnQztBQWdDbkM7Ozs7NkNBRXdCO0FBQ3JCLHFCQUFLLFdBQUwsQ0FBaUIsS0FBSyxnQkFBdEIsRUFBd0Msb0JBQVMsS0FBSyxHQUFkLENBQXhDLEVBQTRELEtBQUssTUFBakUsRUFBeUUsS0FBSyxJQUE5RSxFQUFvRixLQUFLLEdBQXpGO0FBQ0g7Ozs7OztrQkFHVSxpQiIsImZpbGUiOiJQZXJzcGVjdGl2ZUNhbWVyYS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWF0NH0gZnJvbSAnZ2wtbWF0cml4JztcbmltcG9ydCBDYW1lcmEgZnJvbSAnLi9DYW1lcmEnO1xuaW1wb3J0IHtkZWdUb1JhZH0gZnJvbSAnLi4vbWF0aC9NYXRoJztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcblxuLyoqXG4gKiDQl9Cw0LTQsNGR0YIg0L/QtdGA0YHQv9C10LrRgtC40LLQvdGD0Y4g0LrQsNC80LXRgNGDXG4gKlxuICogQGV4dGVuZHMgQ2FtZXJhXG4gKi9cbmNsYXNzIFBlcnNwZWN0aXZlQ2FtZXJhIGV4dGVuZHMgQ2FtZXJhIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gZm92INCj0LPQuyDQvtCx0LfQvtGA0LAg0LrQsNC80LXRgNGLINCyINCz0YDQsNC00YPRgdCw0YVcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gYXNwZWN0INCh0L7QvtGC0L3QvtGI0LXQvdC40LUg0YHRgtC+0YDQvtC9XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IG5lYXIg0JzQuNC90LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGZhciDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQutCw0LzQtdGA0Ysg0LTQviDQvtCx0YrQtdC60YLQvtCyLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRj1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGZvdiwgYXNwZWN0LCBuZWFyLCBmYXIpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KPQs9C7INC+0LHQt9C+0YDQsCDQutCw0LzQtdGA0Ysg0LIg0LPRgNCw0LTRg9GB0LDRhVxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mb3YgPSBmb3Y7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCh0L7QvtGC0L3QvtGI0LXQvdC40LUg0YHRgtC+0YDQvtC9XG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmFzcGVjdCA9IGFzcGVjdDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQuNC90LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5lYXIgPSBuZWFyO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQutCw0LzQtdGA0Ysg0LTQviDQvtCx0YrQtdC60YLQvtCyLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRj1xuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mYXIgPSBmYXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQutCw0LzQtdGA0YtcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5QRVJTUEVDVElWRV9DQU1FUkE7XG4gICAgfVxuXG4gICAgdXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpIHtcbiAgICAgICAgbWF0NC5wZXJzcGVjdGl2ZSh0aGlzLnByb2plY3Rpb25NYXRyaXgsIGRlZ1RvUmFkKHRoaXMuZm92KSwgdGhpcy5hc3BlY3QsIHRoaXMubmVhciwgdGhpcy5mYXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGVyc3BlY3RpdmVDYW1lcmE7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYW1lcmFzL1BlcnNwZWN0aXZlQ2FtZXJhLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7OztJQUtNLGlCOzs7QUFDRjs7Ozs7OztBQU1BLDZCQUFZLEdBQVosRUFBaUIsTUFBakIsRUFBeUIsSUFBekIsRUFBK0IsR0FBL0IsRUFBb0M7QUFBQTs7QUFHaEM7Ozs7O0FBSGdDOztBQU9oQyxVQUFLLEdBQUwsR0FBVyxHQUFYOztBQUVBOzs7O0FBSUEsVUFBSyxNQUFMLEdBQWMsTUFBZDs7QUFFQTs7OztBQUlBLFVBQUssSUFBTCxHQUFZLElBQVo7O0FBRUE7Ozs7QUFJQSxVQUFLLEdBQUwsR0FBVyxHQUFYOztBQUVBOzs7O0FBSUEsVUFBSyxJQUFMLEdBQVksdUJBQWEsa0JBQXpCO0FBL0JnQztBQWdDbkM7Ozs7NkNBRXdCO0FBQ3JCLHFCQUFLLFdBQUwsQ0FBaUIsS0FBSyxnQkFBdEIsRUFBd0Msb0JBQVMsS0FBSyxHQUFkLENBQXhDLEVBQTRELEtBQUssTUFBakUsRUFBeUUsS0FBSyxJQUE5RSxFQUFvRixLQUFLLEdBQXpGO0FBQ0g7Ozs7OztrQkFHVSxpQiIsImZpbGUiOiJQZXJzcGVjdGl2ZUNhbWVyYS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWF0NH0gZnJvbSAnZ2wtbWF0cml4JztcbmltcG9ydCBDYW1lcmEgZnJvbSAnLi9DYW1lcmEnO1xuaW1wb3J0IHtkZWdUb1JhZH0gZnJvbSAnLi4vbWF0aC9NYXRoJztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcblxuLyoqXG4gKiDQl9Cw0LTQsNGR0YIg0L/QtdGA0YHQv9C10LrRgtC40LLQvdGD0Y4g0LrQsNC80LXRgNGDXG4gKlxuICogQGV4dGVuZHMgQ2FtZXJhXG4gKi9cbmNsYXNzIFBlcnNwZWN0aXZlQ2FtZXJhIGV4dGVuZHMgQ2FtZXJhIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gZm92INCj0LPQuyDQvtCx0LfQvtGA0LAg0LrQsNC80LXRgNGLINCyINCz0YDQsNC00YPRgdCw0YVcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gYXNwZWN0INCh0L7QvtGC0L3QvtGI0LXQvdC40LUg0YHRgtC+0YDQvtC9XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IG5lYXIg0JzQuNC90LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGZhciDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQutCw0LzQtdGA0Ysg0LTQviDQvtCx0YrQtdC60YLQvtCyLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRj1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGZvdiwgYXNwZWN0LCBuZWFyLCBmYXIpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KPQs9C7INC+0LHQt9C+0YDQsCDQutCw0LzQtdGA0Ysg0LIg0LPRgNCw0LTRg9GB0LDRhVxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mb3YgPSBmb3Y7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCh0L7QvtGC0L3QvtGI0LXQvdC40LUg0YHRgtC+0YDQvtC9XG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmFzcGVjdCA9IGFzcGVjdDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQuNC90LjQvNCw0LvRjNC90L7QtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCINC60LDQvNC10YDRiyDQtNC+INC+0LHRitC10LrRgtC+0LIsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5lYXIgPSBuZWFyO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQutCw0LzQtdGA0Ysg0LTQviDQvtCx0YrQtdC60YLQvtCyLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRj1xuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mYXIgPSBmYXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQutCw0LzQtdGA0YtcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5QRVJTUEVDVElWRV9DQU1FUkE7XG4gICAgfVxuXG4gICAgdXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpIHtcbiAgICAgICAgbWF0NC5wZXJzcGVjdGl2ZSh0aGlzLnByb2plY3Rpb25NYXRyaXgsIGRlZ1RvUmFkKHRoaXMuZm92KSwgdGhpcy5hc3BlY3QsIHRoaXMubmVhciwgdGhpcy5mYXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGVyc3BlY3RpdmVDYW1lcmE7XG4iXX0=

@@ -163,2 +163,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9HZW9tZXRyeS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7SUFNTSxRO0FBQ0Ysd0JBQWM7QUFBQTs7Ozs7O0FBS1YsYUFBSyxPQUFMLEdBQWUsRUFBZjs7Ozs7OztBQU9BLGFBQUssWUFBTCxHQUFvQixJQUFwQjtBQUNIOzs7Ozs7Ozs7OztrQ0FPUyxJLEVBQU0sTSxFQUFRO0FBQ3BCLGlCQUFLLE9BQUwsQ0FBYSxJQUFiLElBQXFCLE1BQXJCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7OztrQ0FPUyxJLEVBQU07QUFDWixtQkFBTyxLQUFLLE9BQUwsQ0FBYSxJQUFiLENBQVA7QUFDSDs7Ozs7Ozs7eUNBS2dCO0FBQ2IsZ0JBQU0saUJBQWlCLEtBQUssT0FBTCxDQUFhLFFBQXBDOztBQUVBLGdCQUFJLENBQUMsY0FBTCxFQUFxQjtBQUFFLHVCQUFPLElBQVA7QUFBYzs7QUFFckMsZ0JBQU0sVUFBVSxJQUFJLFlBQUosQ0FBaUIsZUFBZSxNQUFmLEdBQXdCLGVBQWUsUUFBeEQsQ0FBaEI7O0FBRUEsZ0JBQU0sS0FBSyxlQUFLLE1BQUwsRUFBWDtBQUNBLGdCQUFNLEtBQUssZUFBSyxNQUFMLEVBQVg7QUFDQSxnQkFBTSxJQUFJLGVBQUssTUFBTCxFQUFWOztBQUVBLGlCQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksZUFBZSxNQUFuQyxFQUEyQyxLQUFLLENBQWhELEVBQW1EO0FBQy9DLG9CQUFNLFdBQVcsZUFBZSxXQUFmLENBQTJCLElBQUksQ0FBL0IsQ0FBakI7O0FBRUEsK0JBQUssR0FBTCxDQUFTLEVBQVQsRUFBYSxTQUFTLENBQVQsQ0FBYixFQUEwQixTQUFTLENBQVQsQ0FBMUI7QUFDQSwrQkFBSyxHQUFMLENBQVMsRUFBVCxFQUFhLFNBQVMsQ0FBVCxDQUFiLEVBQTBCLFNBQVMsQ0FBVCxDQUExQjtBQUNBLCtCQUFLLEtBQUwsQ0FBVyxDQUFYLEVBQWMsRUFBZCxFQUFrQixFQUFsQjtBQUNBLCtCQUFLLFNBQUwsQ0FBZSxDQUFmLEVBQWtCLENBQWxCOztBQUVBLHdCQUFRLEdBQVIsQ0FBWSxDQUFaLEVBQWUsSUFBSSxDQUFuQjtBQUNBLHdCQUFRLEdBQVIsQ0FBWSxDQUFaLEVBQWUsQ0FBQyxJQUFJLENBQUwsSUFBVSxDQUF6QjtBQUNBLHdCQUFRLEdBQVIsQ0FBWSxDQUFaLEVBQWUsQ0FBQyxJQUFJLENBQUwsSUFBVSxDQUF6QjtBQUNIOztBQUVELGlCQUFLLFNBQUwsQ0FBZSxRQUFmLEVBQXlCLHFCQUFXLE9BQVgsRUFBb0IsQ0FBcEIsQ0FBekI7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7eUNBTWdCO0FBQ2IsZ0JBQUksQ0FBQyxLQUFLLFlBQVYsRUFBd0I7QUFDcEIscUJBQUssa0JBQUw7QUFDSDs7QUFFRCxtQkFBTyxLQUFLLFlBQVo7QUFDSDs7Ozs7Ozs7OzZDQU1vQjtBQUNqQixnQkFBTSxjQUFjLEtBQUssWUFBTCxHQUFvQixtQkFBeEM7QUFDQSxnQkFBTSxpQkFBaUIsS0FBSyxPQUFMLENBQWEsUUFBcEM7O0FBRUEsZ0JBQUksY0FBSixFQUFvQjtBQUNoQixxQkFBSyxJQUFJLElBQUksQ0FBYixFQUFnQixJQUFJLGVBQWUsTUFBbkMsRUFBMkMsR0FBM0MsRUFBZ0Q7QUFDNUMsZ0NBQVksYUFBWixDQUEwQixlQUFlLFVBQWYsQ0FBMEIsQ0FBMUIsQ0FBMUI7QUFDSDtBQUNKO0FBQ0o7Ozs7Ozs7Ozs7K0JBT00sUSxFQUFVO0FBQ2IsaUJBQUssSUFBTSxJQUFYLElBQW1CLEtBQUssT0FBeEIsRUFBaUM7QUFDN0IscUJBQUssT0FBTCxDQUFhLElBQWIsRUFBbUIsTUFBbkIsQ0FBMEIsU0FBUyxPQUFULENBQWlCLElBQWpCLENBQTFCO0FBQ0g7QUFDSjs7Ozs7O2tCQUdVLFEiLCJmaWxlIjoiR2VvbWV0cnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3ZlYzN9IGZyb20gJ2dsLW1hdHJpeCc7XG5pbXBvcnQgQnVmZmVyIGZyb20gJy4vQnVmZmVyJztcbmltcG9ydCBCb3ggZnJvbSAnLi9tYXRoL0JveCc7XG5cbi8qKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQt9Cw0LTQsNC90LjRjyDQs9C10L7QvNC10YLRgNC40Lkg0L7QsdGK0LXQutGC0L7Qsi5cbiAqINCSINC60LDRh9C10YHRgtCy0LUg0LTQsNC90L3Ri9GFINC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyB7QGxpbmsgQnVmZmVyfS5cbiAqL1xuY2xhc3MgR2VvbWV0cnkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICog0KHQu9C+0LLQsNGA0Ywg0LLQuNC00LA6INC90LDQt9Cy0LDQvdC40LUg0LHRg9GE0LXRgNCwIC0gQnVmZmVyXG4gICAgICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJ1ZmZlcnMgPSB7fTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/QsNGA0LDQu9C70LXQu9C10L/QuNC/0LXQtCDQvtC/0LjRgdGL0LLQsNGO0YnQuNC5INC00LDQvdC90YPRjiDQs9C10L7QvNC10YLRgNC40Y5cbiAgICAgICAgICogQHR5cGUgez9Cb3h9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2JvdW5kaW5nQm94ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0YXRgNCw0L3Rj9C10YIg0LHRg9GE0LXRgCDQsiDQs9C10L7QvNC10YLRgNC40Y5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSDQndCw0LfQstCw0L3QuNC1INCx0YPRhNC10YDQsFxuICAgICAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXJcbiAgICAgKi9cbiAgICBzZXRCdWZmZXIobmFtZSwgYnVmZmVyKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyc1tuYW1lXSA9IGJ1ZmZlcjtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQsdGD0YTQtdGAINC40Lcg0LPQtdC+0LzQtdGC0YDQuNC4XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUg0J3QsNC30LLQsNC90LjQtSDQsdGD0YTQtdGA0LBcbiAgICAgKiBAcmV0dXJucyB7QnVmZmVyfVxuICAgICAqL1xuICAgIGdldEJ1ZmZlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlcnNbbmFtZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9GH0LjRgdC70Y/QtdGCINCx0YPRhNC10YAg0L3QvtGA0LzQsNC70LXQuSDQvdCwINC+0YHQvdC+0LLQtSDQsdGD0YTQtdGA0LAg0LrQvtC+0YDQtNC40L3QsNGCINCy0LXRgNGI0LjQvSAocG9zaXRpb24pXG4gICAgICovXG4gICAgY29tcHV0ZU5vcm1hbHMoKSB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQnVmZmVyID0gdGhpcy5idWZmZXJzLnBvc2l0aW9uO1xuXG4gICAgICAgIGlmICghcG9zaXRpb25CdWZmZXIpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICBjb25zdCBub3JtYWxzID0gbmV3IEZsb2F0MzJBcnJheShwb3NpdGlvbkJ1ZmZlci5sZW5ndGggKiBwb3NpdGlvbkJ1ZmZlci5pdGVtU2l6ZSk7XG5cbiAgICAgICAgY29uc3QgYWIgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBjYiA9IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIGNvbnN0IG4gPSB2ZWMzLmNyZWF0ZSgpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9zaXRpb25CdWZmZXIubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyaWFuZ2xlID0gcG9zaXRpb25CdWZmZXIuZ2V0VHJpYW5nbGUoaSAvIDMpO1xuXG4gICAgICAgICAgICB2ZWMzLnN1YihhYiwgdHJpYW5nbGVbMF0sIHRyaWFuZ2xlWzFdKTtcbiAgICAgICAgICAgIHZlYzMuc3ViKGNiLCB0cmlhbmdsZVsyXSwgdHJpYW5nbGVbMV0pO1xuICAgICAgICAgICAgdmVjMy5jcm9zcyhuLCBhYiwgY2IpO1xuICAgICAgICAgICAgdmVjMy5ub3JtYWxpemUobiwgbik7XG5cbiAgICAgICAgICAgIG5vcm1hbHMuc2V0KG4sIGkgKiAzKTtcbiAgICAgICAgICAgIG5vcm1hbHMuc2V0KG4sIChpICsgMSkgKiAzKTtcbiAgICAgICAgICAgIG5vcm1hbHMuc2V0KG4sIChpICsgMikgKiAzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0QnVmZmVyKCdub3JtYWwnLCBuZXcgQnVmZmVyKG5vcm1hbHMsIDMpKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9Cw0YDQsNC70LvQtdC70LXQv9C40L/QtdC0INC+0L/QuNGB0YvQstCw0Y7RidC40Lkg0LTQsNC90L3Rg9GOINCz0LXQvtC80LXRgtGA0LjRjlxuICAgICAqIEByZXR1cm5zIHtCb3h9XG4gICAgICovXG4gICAgZ2V0Qm91bmRpbmdCb3goKSB7XG4gICAgICAgIGlmICghdGhpcy5fYm91bmRpbmdCb3gpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fYm91bmRpbmdCb3g7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9GH0LjRgdC70Y/QtdGCINC/0LDRgNCw0LvQu9C10LvQtdC/0LjQv9C10LQg0L7Qv9C40YHRi9Cy0LDRjtGJ0LjQuSDQtNCw0L3QvdGD0Y4g0LPQtdC+0LzQtdGC0YDQuNGOINC90LAg0L7RgdC90L7QstC1INCx0YPRhNC10YDQsCDQutC+0L7RgNC00LjQvdCw0YIg0LLQtdGA0YjQuNC9IChwb3NpdGlvbilcbiAgICAgKiBAcmV0dXJucyB7Qm94fVxuICAgICAqL1xuICAgIGNvbXB1dGVCb3VuZGluZ0JveCgpIHtcbiAgICAgICAgY29uc3QgYm91bmRpbmdCb3ggPSB0aGlzLl9ib3VuZGluZ0JveCA9IG5ldyBCb3goKTtcbiAgICAgICAgY29uc3QgcG9zaXRpb25CdWZmZXIgPSB0aGlzLmJ1ZmZlcnMucG9zaXRpb247XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uQnVmZmVyKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvc2l0aW9uQnVmZmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChwb3NpdGlvbkJ1ZmZlci5nZXRFbGVtZW50KGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7QtdC00LjQvdGP0LXRgiDQtNCw0L3QvdGD0Y4g0LPQtdC+0LzQtdGC0YDQuNGOINGBINC00YDRg9Cz0L7QuS5cbiAgICAgKiDQntGB0YLQvtGA0L7QttC90L4sINCz0LXQvtC80LXRgtGA0LjQuCDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L/QvtC00L7QsdC90YssINGCLtC1LiDRgdC+0LTQtdGA0LbQsNGC0Ywg0L7QtNC40L3QsNC60L7QstGL0LUg0LHRg9GE0LXRgNGLLlxuICAgICAqIEBwYXJhbSB7R2VvbWV0cnl9IGdlb21ldHJ5XG4gICAgICovXG4gICAgY29uY2F0KGdlb21ldHJ5KSB7XG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLmJ1ZmZlcnMpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyc1t0eXBlXS5jb25jYXQoZ2VvbWV0cnkuYnVmZmVyc1t0eXBlXSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEdlb21ldHJ5O1xuIl19
//# sourceMappingURL=data:application/json;base64,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YzN9IGZyb20gJ2dsLW1hdHJpeCc7XG5pbXBvcnQgQnVmZmVyIGZyb20gJy4vQnVmZmVyJztcbmltcG9ydCBCb3ggZnJvbSAnLi9tYXRoL0JveCc7XG5cbi8qKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQt9Cw0LTQsNC90LjRjyDQs9C10L7QvNC10YLRgNC40Lkg0L7QsdGK0LXQutGC0L7Qsi5cbiAqINCSINC60LDRh9C10YHRgtCy0LUg0LTQsNC90L3Ri9GFINC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyB7QGxpbmsgQnVmZmVyfS5cbiAqL1xuY2xhc3MgR2VvbWV0cnkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICog0KHQu9C+0LLQsNGA0Ywg0LLQuNC00LA6INC90LDQt9Cy0LDQvdC40LUg0LHRg9GE0LXRgNCwIC0gQnVmZmVyXG4gICAgICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJ1ZmZlcnMgPSB7fTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/QsNGA0LDQu9C70LXQu9C10L/QuNC/0LXQtCDQvtC/0LjRgdGL0LLQsNGO0YnQuNC5INC00LDQvdC90YPRjiDQs9C10L7QvNC10YLRgNC40Y5cbiAgICAgICAgICogQHR5cGUgez9Cb3h9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2JvdW5kaW5nQm94ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0YXRgNCw0L3Rj9C10YIg0LHRg9GE0LXRgCDQsiDQs9C10L7QvNC10YLRgNC40Y5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSDQndCw0LfQstCw0L3QuNC1INCx0YPRhNC10YDQsFxuICAgICAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXJcbiAgICAgKi9cbiAgICBzZXRCdWZmZXIobmFtZSwgYnVmZmVyKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyc1tuYW1lXSA9IGJ1ZmZlcjtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQsdGD0YTQtdGAINC40Lcg0LPQtdC+0LzQtdGC0YDQuNC4XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUg0J3QsNC30LLQsNC90LjQtSDQsdGD0YTQtdGA0LBcbiAgICAgKiBAcmV0dXJucyB7QnVmZmVyfVxuICAgICAqL1xuICAgIGdldEJ1ZmZlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlcnNbbmFtZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9GH0LjRgdC70Y/QtdGCINCx0YPRhNC10YAg0L3QvtGA0LzQsNC70LXQuSDQvdCwINC+0YHQvdC+0LLQtSDQsdGD0YTQtdGA0LAg0LrQvtC+0YDQtNC40L3QsNGCINCy0LXRgNGI0LjQvSAocG9zaXRpb24pXG4gICAgICovXG4gICAgY29tcHV0ZU5vcm1hbHMoKSB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQnVmZmVyID0gdGhpcy5idWZmZXJzLnBvc2l0aW9uO1xuXG4gICAgICAgIGlmICghcG9zaXRpb25CdWZmZXIpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICBjb25zdCBub3JtYWxzID0gbmV3IEZsb2F0MzJBcnJheShwb3NpdGlvbkJ1ZmZlci5sZW5ndGggKiBwb3NpdGlvbkJ1ZmZlci5pdGVtU2l6ZSk7XG5cbiAgICAgICAgY29uc3QgYWIgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBjYiA9IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIGNvbnN0IG4gPSB2ZWMzLmNyZWF0ZSgpO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9zaXRpb25CdWZmZXIubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyaWFuZ2xlID0gcG9zaXRpb25CdWZmZXIuZ2V0VHJpYW5nbGUoaSAvIDMpO1xuXG4gICAgICAgICAgICB2ZWMzLnN1YihhYiwgdHJpYW5nbGVbMF0sIHRyaWFuZ2xlWzFdKTtcbiAgICAgICAgICAgIHZlYzMuc3ViKGNiLCB0cmlhbmdsZVsyXSwgdHJpYW5nbGVbMV0pO1xuICAgICAgICAgICAgdmVjMy5jcm9zcyhuLCBhYiwgY2IpO1xuICAgICAgICAgICAgdmVjMy5ub3JtYWxpemUobiwgbik7XG5cbiAgICAgICAgICAgIG5vcm1hbHMuc2V0KG4sIGkgKiAzKTtcbiAgICAgICAgICAgIG5vcm1hbHMuc2V0KG4sIChpICsgMSkgKiAzKTtcbiAgICAgICAgICAgIG5vcm1hbHMuc2V0KG4sIChpICsgMikgKiAzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0QnVmZmVyKCdub3JtYWwnLCBuZXcgQnVmZmVyKG5vcm1hbHMsIDMpKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9Cw0YDQsNC70LvQtdC70LXQv9C40L/QtdC0INC+0L/QuNGB0YvQstCw0Y7RidC40Lkg0LTQsNC90L3Rg9GOINCz0LXQvtC80LXRgtGA0LjRjlxuICAgICAqIEByZXR1cm5zIHtCb3h9XG4gICAgICovXG4gICAgZ2V0Qm91bmRpbmdCb3goKSB7XG4gICAgICAgIGlmICghdGhpcy5fYm91bmRpbmdCb3gpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZUJvdW5kaW5nQm94KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fYm91bmRpbmdCb3g7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9GH0LjRgdC70Y/QtdGCINC/0LDRgNCw0LvQu9C10LvQtdC/0LjQv9C10LQg0L7Qv9C40YHRi9Cy0LDRjtGJ0LjQuSDQtNCw0L3QvdGD0Y4g0LPQtdC+0LzQtdGC0YDQuNGOINC90LAg0L7RgdC90L7QstC1INCx0YPRhNC10YDQsCDQutC+0L7RgNC00LjQvdCw0YIg0LLQtdGA0YjQuNC9IChwb3NpdGlvbilcbiAgICAgKiBAcmV0dXJucyB7Qm94fVxuICAgICAqL1xuICAgIGNvbXB1dGVCb3VuZGluZ0JveCgpIHtcbiAgICAgICAgY29uc3QgYm91bmRpbmdCb3ggPSB0aGlzLl9ib3VuZGluZ0JveCA9IG5ldyBCb3goKTtcbiAgICAgICAgY29uc3QgcG9zaXRpb25CdWZmZXIgPSB0aGlzLmJ1ZmZlcnMucG9zaXRpb247XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uQnVmZmVyKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvc2l0aW9uQnVmZmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYm91bmRpbmdCb3guZXhwYW5kQnlQb2ludChwb3NpdGlvbkJ1ZmZlci5nZXRFbGVtZW50KGkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0L7QtdC00LjQvdGP0LXRgiDQtNCw0L3QvdGD0Y4g0LPQtdC+0LzQtdGC0YDQuNGOINGBINC00YDRg9Cz0L7QuS5cbiAgICAgKiDQntGB0YLQvtGA0L7QttC90L4sINCz0LXQvtC80LXRgtGA0LjQuCDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L/QvtC00L7QsdC90YssINGCLtC1LiDRgdC+0LTQtdGA0LbQsNGC0Ywg0L7QtNC40L3QsNC60L7QstGL0LUg0LHRg9GE0LXRgNGLLlxuICAgICAqIEBwYXJhbSB7R2VvbWV0cnl9IGdlb21ldHJ5XG4gICAgICovXG4gICAgY29uY2F0KGdlb21ldHJ5KSB7XG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLmJ1ZmZlcnMpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyc1t0eXBlXS5jb25jYXQoZ2VvbWV0cnkuYnVmZmVyc1t0eXBlXSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEdlb21ldHJ5O1xuIl19

@@ -27,2 +27,6 @@ 'use strict';

var _BufferChannel = require('./BufferChannel');
var _BufferChannel2 = _interopRequireDefault(_BufferChannel);
var _Geometry = require('./Geometry');

@@ -32,2 +36,6 @@

var _Shader = require('./Shader');
var _Shader2 = _interopRequireDefault(_Shader);
var _ShaderProgram = require('./ShaderProgram');

@@ -133,2 +141,3 @@

Buffer: _Buffer2.default,
BufferChannel: _BufferChannel2.default,
Geometry: _Geometry2.default,

@@ -138,2 +147,3 @@ Mesh: _Mesh2.default,

MultiSprite: _MultiSprite2.default,
Shader: _Shader2.default,
ShaderProgram: _ShaderProgram2.default,

@@ -164,2 +174,2 @@ BasicMeshMaterial: _BasicMeshMaterial2.default,

module.exports = dgl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0lBQVksSTs7QUFDWjs7OztBQUNBOzs7Ozs7Ozs7OztBQUdBLG1CQUFTLFVBQVQsR0FBdUIsT0FBTyxZQUFQLEtBQXdCLFdBQXpCLEdBQXdDLFlBQXhDLEdBQXVELEtBQTdFOztBQUVBLElBQU0sTUFBTTtBQUNSLGdDQURRO0FBRVIsNENBRlE7QUFHUixnQ0FIUTtBQUlSLGtEQUpRO0FBS1Isb0RBTFE7QUFNUiw0QkFOUTtBQU9SLGdDQVBRO0FBUVIsd0JBUlE7QUFTUiw0QkFUUTtBQVVSLHNDQVZRO0FBV1IsMENBWFE7QUFZUixrREFaUTtBQWFSLHNEQWJRO0FBY1IsNENBZFE7QUFlUixzREFmUTtBQWdCUiwwQkFoQlE7QUFpQlIsOEJBakJRO0FBa0JSLHdDQWxCUTtBQW1CUixnREFuQlE7QUFvQlIsa0NBcEJRO0FBcUJSLHdDQXJCUTtBQXNCUixzQkF0QlE7QUF1QlIsMEJBdkJRO0FBd0JSLDhCQXhCUTtBQXlCUixzQkF6QlE7QUEwQlIseUJBMUJRO0FBMkJSLFVBQU0sSUEzQkU7QUE0QlIsd0JBNUJRO0FBNkJSLHdCQTdCUTtBQThCUix3QkE5QlE7QUErQlIsd0JBL0JRO0FBZ0NSO0FBaENRLENBQVo7O0FBbUNBLE9BQU8sT0FBUCxHQUFpQixHQUFqQiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0JzQvtC00YPQu9GMINC/0L7QtNC60LvRjtGH0LDQtdGCINCy0YHQtSDQutC+0LzQv9C+0L3QtdC90YLRiyAyZ2wg0LTQu9GPINGC0L7Qs9C+LCDRh9GC0L7QsdGLINC40YUg0LzQvtC20L3QviDQsdGL0LvQviDRgdC+0LHRgNCw0YLRjCDQsiDQvtC00LjQvSDQsdCw0L3QtNC7INCyIGRpc3RcbiAqL1xuXG5pbXBvcnQgUmVuZGVyZXIgZnJvbSAnLi9SZW5kZXJlcic7XG5pbXBvcnQgUmVuZGVyZXJQbHVnaW4gZnJvbSAnLi9SZW5kZXJlclBsdWdpbic7XG5pbXBvcnQgT2JqZWN0M0QgZnJvbSAnLi9PYmplY3QzRCc7XG5pbXBvcnQgUGVyc3BlY3RpdmVDYW1lcmEgZnJvbSAnLi9jYW1lcmFzL1BlcnNwZWN0aXZlQ2FtZXJhJztcbmltcG9ydCBPcnRob2dyYXBoaWNDYW1lcmEgZnJvbSAnLi9jYW1lcmFzL09ydGhvZ3JhcGhpY0NhbWVyYSc7XG5pbXBvcnQgQnVmZmVyIGZyb20gJy4vQnVmZmVyJztcbmltcG9ydCBHZW9tZXRyeSBmcm9tICcuL0dlb21ldHJ5JztcbmltcG9ydCBTaGFkZXJQcm9ncmFtIGZyb20gJy4vU2hhZGVyUHJvZ3JhbSc7XG5pbXBvcnQgQmFzaWNNZXNoTWF0ZXJpYWwgZnJvbSAnLi9tYXRlcmlhbHMvQmFzaWNNZXNoTWF0ZXJpYWwnO1xuaW1wb3J0IENvbXBsZXhNZXNoTWF0ZXJpYWwgZnJvbSAnLi9tYXRlcmlhbHMvQ29tcGxleE1lc2hNYXRlcmlhbCc7XG5pbXBvcnQgU3ByaXRlTWF0ZXJpYWwgZnJvbSAnLi9tYXRlcmlhbHMvU3ByaXRlTWF0ZXJpYWwnO1xuaW1wb3J0IE11bHRpU3ByaXRlTWF0ZXJpYWwgZnJvbSAnLi9tYXRlcmlhbHMvTXVsdGlTcHJpdGVNYXRlcmlhbCc7XG5pbXBvcnQgTWVzaCBmcm9tICcuL01lc2gnO1xuaW1wb3J0IFNwcml0ZSBmcm9tICcuL1Nwcml0ZSc7XG5pbXBvcnQgTXVsdGlTcHJpdGUgZnJvbSAnLi9NdWx0aVNwcml0ZSc7XG5pbXBvcnQgU2NlbmUgZnJvbSAnLi9TY2VuZSc7XG5pbXBvcnQgVGV4dHVyZSBmcm9tICcuL1RleHR1cmUnO1xuaW1wb3J0IEFtYmllbnRMaWdodCBmcm9tICcuL2xpZ2h0cy9BbWJpZW50TGlnaHQnO1xuaW1wb3J0IERpcmVjdGlvbmFsTGlnaHQgZnJvbSAnLi9saWdodHMvRGlyZWN0aW9uYWxMaWdodCc7XG5pbXBvcnQgUmF5Y2FzdGVyIGZyb20gJy4vUmF5Y2FzdGVyJztcbmltcG9ydCBSZW5kZXJUYXJnZXQgZnJvbSAnLi9SZW5kZXJUYXJnZXQnO1xuaW1wb3J0IFJheSBmcm9tICcuL21hdGgvUmF5JztcbmltcG9ydCBQbGFuZSBmcm9tICcuL21hdGgvUGxhbmUnO1xuaW1wb3J0IEJveCBmcm9tICcuL21hdGgvQm94JztcbmltcG9ydCBGcnVzdHVtIGZyb20gJy4vbWF0aC9GcnVzdHVtJztcbmltcG9ydCAqIGFzIG1hdGggZnJvbSAnLi9tYXRoL01hdGgnO1xuaW1wb3J0IExpbmUzIGZyb20gJy4vbWF0aC9MaW5lMyc7XG5pbXBvcnQge3ZlYzMsIG1hdDMsIHZlYzIsIG1hdDQsIHF1YXQsIGdsTWF0cml4fSBmcm9tICdnbC1tYXRyaXgnO1xuXG4vLyB3aXRoIEZsb2F0MzJBcnJheSB3ZSBoYXZlIGVycm9ycyB3aXRoIHJheWNhc3RcbmdsTWF0cml4LkFSUkFZX1RZUEUgPSAodHlwZW9mIEZsb2F0NjRBcnJheSAhPT0gJ3VuZGVmaW5lZCcpID8gRmxvYXQ2NEFycmF5IDogQXJyYXk7XG5cbmNvbnN0IGRnbCA9IHtcbiAgICBSZW5kZXJlcixcbiAgICBSZW5kZXJlclBsdWdpbixcbiAgICBPYmplY3QzRCxcbiAgICBQZXJzcGVjdGl2ZUNhbWVyYSxcbiAgICBPcnRob2dyYXBoaWNDYW1lcmEsXG4gICAgQnVmZmVyLFxuICAgIEdlb21ldHJ5LFxuICAgIE1lc2gsXG4gICAgU3ByaXRlLFxuICAgIE11bHRpU3ByaXRlLFxuICAgIFNoYWRlclByb2dyYW0sXG4gICAgQmFzaWNNZXNoTWF0ZXJpYWwsXG4gICAgQ29tcGxleE1lc2hNYXRlcmlhbCxcbiAgICBTcHJpdGVNYXRlcmlhbCxcbiAgICBNdWx0aVNwcml0ZU1hdGVyaWFsLFxuICAgIFNjZW5lLFxuICAgIFRleHR1cmUsXG4gICAgQW1iaWVudExpZ2h0LFxuICAgIERpcmVjdGlvbmFsTGlnaHQsXG4gICAgUmF5Y2FzdGVyLFxuICAgIFJlbmRlclRhcmdldCxcbiAgICBSYXksXG4gICAgUGxhbmUsXG4gICAgRnJ1c3R1bSxcbiAgICBCb3gsXG4gICAgTGluZTMsXG4gICAgTWF0aDogbWF0aCxcbiAgICB2ZWMzLFxuICAgIG1hdDMsXG4gICAgdmVjMixcbiAgICBtYXQ0LFxuICAgIHF1YXRcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZGdsO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztJQUFZLEk7O0FBQ1o7Ozs7QUFDQTs7Ozs7O0FBRUE7QUFuQ0E7Ozs7QUFvQ0EsbUJBQVMsVUFBVCxHQUF1QixPQUFPLFlBQVAsS0FBd0IsV0FBekIsR0FBd0MsWUFBeEMsR0FBdUQsS0FBN0U7O0FBRUEsSUFBTSxNQUFNO0FBQ1IsZ0NBRFE7QUFFUiw0Q0FGUTtBQUdSLGdDQUhRO0FBSVIsa0RBSlE7QUFLUixvREFMUTtBQU1SLDRCQU5RO0FBT1IsMENBUFE7QUFRUixnQ0FSUTtBQVNSLHdCQVRRO0FBVVIsNEJBVlE7QUFXUixzQ0FYUTtBQVlSLDRCQVpRO0FBYVIsMENBYlE7QUFjUixrREFkUTtBQWVSLHNEQWZRO0FBZ0JSLDRDQWhCUTtBQWlCUixzREFqQlE7QUFrQlIsMEJBbEJRO0FBbUJSLDhCQW5CUTtBQW9CUix3Q0FwQlE7QUFxQlIsZ0RBckJRO0FBc0JSLGtDQXRCUTtBQXVCUix3Q0F2QlE7QUF3QlIsc0JBeEJRO0FBeUJSLDBCQXpCUTtBQTBCUiw4QkExQlE7QUEyQlIsc0JBM0JRO0FBNEJSLHlCQTVCUTtBQTZCUixVQUFNLElBN0JFO0FBOEJSLHdCQTlCUTtBQStCUix3QkEvQlE7QUFnQ1Isd0JBaENRO0FBaUNSLHdCQWpDUTtBQWtDUjtBQWxDUSxDQUFaOztBQXFDQSxPQUFPLE9BQVAsR0FBaUIsR0FBakIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCc0L7QtNGD0LvRjCDQv9C+0LTQutC70Y7Rh9Cw0LXRgiDQstGB0LUg0LrQvtC80L/QvtC90LXQvdGC0YsgMmdsINC00LvRjyDRgtC+0LPQviwg0YfRgtC+0LHRiyDQuNGFINC80L7QttC90L4g0LHRi9C70L4g0YHQvtCx0YDQsNGC0Ywg0LIg0L7QtNC40L0g0LHQsNC90LTQuyDQsiBkaXN0XG4gKi9cblxuaW1wb3J0IFJlbmRlcmVyIGZyb20gJy4vUmVuZGVyZXInO1xuaW1wb3J0IFJlbmRlcmVyUGx1Z2luIGZyb20gJy4vUmVuZGVyZXJQbHVnaW4nO1xuaW1wb3J0IE9iamVjdDNEIGZyb20gJy4vT2JqZWN0M0QnO1xuaW1wb3J0IFBlcnNwZWN0aXZlQ2FtZXJhIGZyb20gJy4vY2FtZXJhcy9QZXJzcGVjdGl2ZUNhbWVyYSc7XG5pbXBvcnQgT3J0aG9ncmFwaGljQ2FtZXJhIGZyb20gJy4vY2FtZXJhcy9PcnRob2dyYXBoaWNDYW1lcmEnO1xuaW1wb3J0IEJ1ZmZlciBmcm9tICcuL0J1ZmZlcic7XG5pbXBvcnQgQnVmZmVyQ2hhbm5lbCBmcm9tICcuL0J1ZmZlckNoYW5uZWwnO1xuaW1wb3J0IEdlb21ldHJ5IGZyb20gJy4vR2VvbWV0cnknO1xuaW1wb3J0IFNoYWRlciBmcm9tICcuL1NoYWRlcic7XG5pbXBvcnQgU2hhZGVyUHJvZ3JhbSBmcm9tICcuL1NoYWRlclByb2dyYW0nO1xuaW1wb3J0IEJhc2ljTWVzaE1hdGVyaWFsIGZyb20gJy4vbWF0ZXJpYWxzL0Jhc2ljTWVzaE1hdGVyaWFsJztcbmltcG9ydCBDb21wbGV4TWVzaE1hdGVyaWFsIGZyb20gJy4vbWF0ZXJpYWxzL0NvbXBsZXhNZXNoTWF0ZXJpYWwnO1xuaW1wb3J0IFNwcml0ZU1hdGVyaWFsIGZyb20gJy4vbWF0ZXJpYWxzL1Nwcml0ZU1hdGVyaWFsJztcbmltcG9ydCBNdWx0aVNwcml0ZU1hdGVyaWFsIGZyb20gJy4vbWF0ZXJpYWxzL011bHRpU3ByaXRlTWF0ZXJpYWwnO1xuaW1wb3J0IE1lc2ggZnJvbSAnLi9NZXNoJztcbmltcG9ydCBTcHJpdGUgZnJvbSAnLi9TcHJpdGUnO1xuaW1wb3J0IE11bHRpU3ByaXRlIGZyb20gJy4vTXVsdGlTcHJpdGUnO1xuaW1wb3J0IFNjZW5lIGZyb20gJy4vU2NlbmUnO1xuaW1wb3J0IFRleHR1cmUgZnJvbSAnLi9UZXh0dXJlJztcbmltcG9ydCBBbWJpZW50TGlnaHQgZnJvbSAnLi9saWdodHMvQW1iaWVudExpZ2h0JztcbmltcG9ydCBEaXJlY3Rpb25hbExpZ2h0IGZyb20gJy4vbGlnaHRzL0RpcmVjdGlvbmFsTGlnaHQnO1xuaW1wb3J0IFJheWNhc3RlciBmcm9tICcuL1JheWNhc3Rlcic7XG5pbXBvcnQgUmVuZGVyVGFyZ2V0IGZyb20gJy4vUmVuZGVyVGFyZ2V0JztcbmltcG9ydCBSYXkgZnJvbSAnLi9tYXRoL1JheSc7XG5pbXBvcnQgUGxhbmUgZnJvbSAnLi9tYXRoL1BsYW5lJztcbmltcG9ydCBCb3ggZnJvbSAnLi9tYXRoL0JveCc7XG5pbXBvcnQgRnJ1c3R1bSBmcm9tICcuL21hdGgvRnJ1c3R1bSc7XG5pbXBvcnQgKiBhcyBtYXRoIGZyb20gJy4vbWF0aC9NYXRoJztcbmltcG9ydCBMaW5lMyBmcm9tICcuL21hdGgvTGluZTMnO1xuaW1wb3J0IHt2ZWMzLCBtYXQzLCB2ZWMyLCBtYXQ0LCBxdWF0LCBnbE1hdHJpeH0gZnJvbSAnZ2wtbWF0cml4JztcblxuLy8gd2l0aCBGbG9hdDMyQXJyYXkgd2UgaGF2ZSBlcnJvcnMgd2l0aCByYXljYXN0XG5nbE1hdHJpeC5BUlJBWV9UWVBFID0gKHR5cGVvZiBGbG9hdDY0QXJyYXkgIT09ICd1bmRlZmluZWQnKSA/IEZsb2F0NjRBcnJheSA6IEFycmF5O1xuXG5jb25zdCBkZ2wgPSB7XG4gICAgUmVuZGVyZXIsXG4gICAgUmVuZGVyZXJQbHVnaW4sXG4gICAgT2JqZWN0M0QsXG4gICAgUGVyc3BlY3RpdmVDYW1lcmEsXG4gICAgT3J0aG9ncmFwaGljQ2FtZXJhLFxuICAgIEJ1ZmZlcixcbiAgICBCdWZmZXJDaGFubmVsLFxuICAgIEdlb21ldHJ5LFxuICAgIE1lc2gsXG4gICAgU3ByaXRlLFxuICAgIE11bHRpU3ByaXRlLFxuICAgIFNoYWRlcixcbiAgICBTaGFkZXJQcm9ncmFtLFxuICAgIEJhc2ljTWVzaE1hdGVyaWFsLFxuICAgIENvbXBsZXhNZXNoTWF0ZXJpYWwsXG4gICAgU3ByaXRlTWF0ZXJpYWwsXG4gICAgTXVsdGlTcHJpdGVNYXRlcmlhbCxcbiAgICBTY2VuZSxcbiAgICBUZXh0dXJlLFxuICAgIEFtYmllbnRMaWdodCxcbiAgICBEaXJlY3Rpb25hbExpZ2h0LFxuICAgIFJheWNhc3RlcixcbiAgICBSZW5kZXJUYXJnZXQsXG4gICAgUmF5LFxuICAgIFBsYW5lLFxuICAgIEZydXN0dW0sXG4gICAgQm94LFxuICAgIExpbmUzLFxuICAgIE1hdGg6IG1hdGgsXG4gICAgdmVjMyxcbiAgICBtYXQzLFxuICAgIHZlYzIsXG4gICAgbWF0NCxcbiAgICBxdWF0XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRnbDtcbiJdfQ==

@@ -33,2 +33,2 @@ "use strict";

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9saWJDb25zdGFudHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O2tCQUllO0FBQ1gseUJBQXFCLENBRFY7QUFFWCx3QkFBb0IsQ0FGVDs7QUFJWCxtQkFBZSxDQUpKO0FBS1gsdUJBQW1CLENBTFI7O0FBT1gseUJBQXFCLENBUFY7QUFRWCwyQkFBdUIsQ0FSWjtBQVNYLHFCQUFpQixDQVROO0FBVVgsMkJBQXVCLENBVlo7O0FBWVgsVUFBTSxDQVpLO0FBYVgsWUFBUSxFQWJHO0FBY1gsa0JBQWMsRUFkSDtBQWVYLGVBQVcsRUFmQTs7QUFpQlgscUJBQWlCLEVBakJOO0FBa0JYLDBCQUFzQixFQWxCWDtBQW1CWCxxQkFBaUIsRUFuQk47QUFvQlgsMkJBQXVCO0FBcEJaLEMiLCJmaWxlIjoibGliQ29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqINCh0L7QtNC10YDQttC40YIg0YDQsNC30L3Ri9C1INC60L7QvdGB0YLQsNC90YLRiy5cbiAqINCd0LDQv9GA0LjQvNC10YAsIE9SVEhPR1JBUEhJQ19DQU1FUkEgLSDQv9C+0LzQvtCz0LDQtdGCINC+0L/RgNC10LTQtdC70LjRgtGMINGC0LjQvyDQutCw0LzQtdGA0Ysg0LHQtdC3INGC0L7Qs9C+LCDRh9GC0L7QsdGLINGA0LXQutCy0LDQudGA0LjRgtGMINCy0LXRgdGMINC80L7QtNGD0LvRjC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAgIE9SVEhPR1JBUEhJQ19DQU1FUkE6IDEsXG4gICAgUEVSU1BFQ1RJVkVfQ0FNRVJBOiAyLFxuXG4gICAgQU1CSUVOVF9MSUdIVDogMyxcbiAgICBESVJFQ1RJT05BTF9MSUdIVDogNCxcblxuICAgIEJBU0lDX01FU0hfTUFURVJJQUw6IDUsXG4gICAgQ09NUExFWF9NRVNIX01BVEVSSUFMOiA2LFxuICAgIFNQUklURV9NQVRFUklBTDogNyxcbiAgICBNVUxUSV9TUFJJVEVfTUFURVJJQUw6IDgsXG5cbiAgICBNRVNIOiA5LFxuICAgIFNQUklURTogMTAsXG4gICAgTVVMVElfU1BSSVRFOiAxMSxcbiAgICBPQkpFQ1RfM0Q6IDEyLFxuXG4gICAgQ09NTU9OX1JFTkRFUkVSOiAxMyxcbiAgICBUUkFOU1BBUkVOVF9SRU5ERVJFUjogMTQsXG4gICAgU1BSSVRFX1JFTkRFUkVSOiAxNSxcbiAgICBNVUxUSV9TUFJJVEVfUkVOREVSRVI6IDE2XG59O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9saWJDb25zdGFudHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7OztrQkFJZTtBQUNYLHlCQUFxQixDQURWO0FBRVgsd0JBQW9CLENBRlQ7O0FBSVgsbUJBQWUsQ0FKSjtBQUtYLHVCQUFtQixDQUxSOztBQU9YLHlCQUFxQixDQVBWO0FBUVgsMkJBQXVCLENBUlo7QUFTWCxxQkFBaUIsQ0FUTjtBQVVYLDJCQUF1QixDQVZaOztBQVlYLFVBQU0sQ0FaSztBQWFYLFlBQVEsRUFiRztBQWNYLGtCQUFjLEVBZEg7QUFlWCxlQUFXLEVBZkE7O0FBaUJYLHFCQUFpQixFQWpCTjtBQWtCWCwwQkFBc0IsRUFsQlg7QUFtQlgscUJBQWlCLEVBbkJOO0FBb0JYLDJCQUF1QjtBQXBCWixDIiwiZmlsZSI6ImxpYkNvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiDQodC+0LTQtdGA0LbQuNGCINGA0LDQt9C90YvQtSDQutC+0L3RgdGC0LDQvdGC0YsuXG4gKiDQndCw0L/RgNC40LzQtdGALCBPUlRIT0dSQVBISUNfQ0FNRVJBIC0g0L/QvtC80L7Qs9Cw0LXRgiDQvtC/0YDQtdC00LXQu9C40YLRjCDRgtC40L8g0LrQsNC80LXRgNGLINCx0LXQtyDRgtC+0LPQviwg0YfRgtC+0LHRiyDRgNC10LrQstCw0LnRgNC40YLRjCDQstC10YHRjCDQvNC+0LTRg9C70YwuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBPUlRIT0dSQVBISUNfQ0FNRVJBOiAxLFxuICAgIFBFUlNQRUNUSVZFX0NBTUVSQTogMixcblxuICAgIEFNQklFTlRfTElHSFQ6IDMsXG4gICAgRElSRUNUSU9OQUxfTElHSFQ6IDQsXG5cbiAgICBCQVNJQ19NRVNIX01BVEVSSUFMOiA1LFxuICAgIENPTVBMRVhfTUVTSF9NQVRFUklBTDogNixcbiAgICBTUFJJVEVfTUFURVJJQUw6IDcsXG4gICAgTVVMVElfU1BSSVRFX01BVEVSSUFMOiA4LFxuXG4gICAgTUVTSDogOSxcbiAgICBTUFJJVEU6IDEwLFxuICAgIE1VTFRJX1NQUklURTogMTEsXG4gICAgT0JKRUNUXzNEOiAxMixcblxuICAgIENPTU1PTl9SRU5ERVJFUjogMTMsXG4gICAgVFJBTlNQQVJFTlRfUkVOREVSRVI6IDE0LFxuICAgIFNQUklURV9SRU5ERVJFUjogMTUsXG4gICAgTVVMVElfU1BSSVRFX1JFTkRFUkVSOiAxNlxufTtcbiJdfQ==

@@ -51,2 +51,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWdodHMvQW1iaWVudExpZ2h0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9NLFk7OztBQUNGLHdCQUFZLEtBQVosRUFBbUI7QUFBQTs7Ozs7OztBQUFBLGdHQUNULEtBRFM7O0FBT2YsVUFBSyxJQUFMLEdBQVksdUJBQWEsYUFBekI7QUFQZTtBQVFsQjs7Ozs7a0JBR1UsWSIsImZpbGUiOiJBbWJpZW50TGlnaHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5pbXBvcnQgTGlnaHQgZnJvbSAnLi9MaWdodCc7XG5cbi8qKlxuICog0JjRgdGC0L7Rh9C90LjQuiDQv9C+0YHRgtC+0Y/QvdC90L7Qs9C+INGB0LLQtdGC0LAuINCU0LXQudGB0YLQstGD0LXRgiDQvdCwINCy0YHQtSDQvtCx0YrQtdC60YLRiyDQuCDQstC+INCy0YHQtdGFINC90LDQv9GA0LDQstC70LXQvdC40Y/RhS5cbiAqXG4gKiBAZXh0ZW5kcyBMaWdodFxuICovXG5jbGFzcyBBbWJpZW50TGlnaHQgZXh0ZW5kcyBMaWdodCB7XG4gICAgY29uc3RydWN0b3IoY29sb3IpIHtcbiAgICAgICAgc3VwZXIoY29sb3IpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0YHQstC10YLQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLkFNQklFTlRfTElHSFQ7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBbWJpZW50TGlnaHQ7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWdodHMvQW1iaWVudExpZ2h0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7SUFLTSxZOzs7QUFDRix3QkFBWSxLQUFaLEVBQW1CO0FBQUE7O0FBR2Y7Ozs7O0FBSGUsZ0dBQ1QsS0FEUzs7QUFPZixVQUFLLElBQUwsR0FBWSx1QkFBYSxhQUF6QjtBQVBlO0FBUWxCOzs7OztrQkFHVSxZIiwiZmlsZSI6IkFtYmllbnRMaWdodC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcbmltcG9ydCBMaWdodCBmcm9tICcuL0xpZ2h0JztcblxuLyoqXG4gKiDQmNGB0YLQvtGH0L3QuNC6INC/0L7RgdGC0L7Rj9C90L3QvtCz0L4g0YHQstC10YLQsC4g0JTQtdC50YHRgtCy0YPQtdGCINC90LAg0LLRgdC1INC+0LHRitC10LrRgtGLINC4INCy0L4g0LLRgdC10YUg0L3QsNC/0YDQsNCy0LvQtdC90LjRj9GFLlxuICpcbiAqIEBleHRlbmRzIExpZ2h0XG4gKi9cbmNsYXNzIEFtYmllbnRMaWdodCBleHRlbmRzIExpZ2h0IHtcbiAgICBjb25zdHJ1Y3Rvcihjb2xvcikge1xuICAgICAgICBzdXBlcihjb2xvcik7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDRgdCy0LXRgtCwXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuQU1CSUVOVF9MSUdIVDtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFtYmllbnRMaWdodDtcbiJdfQ==

@@ -52,2 +52,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWdodHMvRGlyZWN0aW9uYWxMaWdodC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBUU0sZ0I7OztBQUNGLDRCQUFZLEtBQVosRUFBbUI7QUFBQTs7Ozs7OztBQUFBLG9HQUNULEtBRFM7O0FBT2YsVUFBSyxJQUFMLEdBQVksdUJBQWEsaUJBQXpCO0FBUGU7QUFRbEI7Ozs7O2tCQUdVLGdCIiwiZmlsZSI6IkRpcmVjdGlvbmFsTGlnaHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5pbXBvcnQgTGlnaHQgZnJvbSAnLi9MaWdodCc7XG5cbi8qKlxuICog0JjRgdGC0L7Rh9C90LjQuiDQvdCw0L/RgNCw0LLQu9C10L3QvdC+0LPQviDQvtGB0LLQtdGJ0LXQvdC40Y8uXG4gKiDQlNC70Y8g0Y3RgtC+0LPQviDRgtC40L/QsCDRgdCy0LXRgtCwINCy0LDQttC90L4g0L3QsNC/0YDQsNCy0LvQtdC90LjQtS5cbiAqXG4gKiBAZXh0ZW5kcyBMaWdodFxuICovXG5jbGFzcyBEaXJlY3Rpb25hbExpZ2h0IGV4dGVuZHMgTGlnaHQge1xuICAgIGNvbnN0cnVjdG9yKGNvbG9yKSB7XG4gICAgICAgIHN1cGVyKGNvbG9yKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINGB0LLQtdGC0LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5ESVJFQ1RJT05BTF9MSUdIVDtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERpcmVjdGlvbmFsTGlnaHQ7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWdodHMvRGlyZWN0aW9uYWxMaWdodC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTs7Ozs7OztJQU1NLGdCOzs7QUFDRiw0QkFBWSxLQUFaLEVBQW1CO0FBQUE7O0FBR2Y7Ozs7O0FBSGUsb0dBQ1QsS0FEUzs7QUFPZixVQUFLLElBQUwsR0FBWSx1QkFBYSxpQkFBekI7QUFQZTtBQVFsQjs7Ozs7a0JBR1UsZ0IiLCJmaWxlIjoiRGlyZWN0aW9uYWxMaWdodC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcbmltcG9ydCBMaWdodCBmcm9tICcuL0xpZ2h0JztcblxuLyoqXG4gKiDQmNGB0YLQvtGH0L3QuNC6INC90LDQv9GA0LDQstC70LXQvdC90L7Qs9C+INC+0YHQstC10YnQtdC90LjRjy5cbiAqINCU0LvRjyDRjdGC0L7Qs9C+INGC0LjQv9CwINGB0LLQtdGC0LAg0LLQsNC20L3QviDQvdCw0L/RgNCw0LLQu9C10L3QuNC1LlxuICpcbiAqIEBleHRlbmRzIExpZ2h0XG4gKi9cbmNsYXNzIERpcmVjdGlvbmFsTGlnaHQgZXh0ZW5kcyBMaWdodCB7XG4gICAgY29uc3RydWN0b3IoY29sb3IpIHtcbiAgICAgICAgc3VwZXIoY29sb3IpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0YHQstC10YLQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLkRJUkVDVElPTkFMX0xJR0hUO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRGlyZWN0aW9uYWxMaWdodDtcbiJdfQ==

@@ -52,2 +52,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWdodHMvTGlnaHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFRTSxLOzs7Ozs7O0FBSUYsaUJBQVksS0FBWixFQUFtQjtBQUFBOzs7Ozs7O0FBQUE7O0FBT2YsVUFBSyxLQUFMLEdBQWEsS0FBYjtBQVBlO0FBUWxCOzs7OztrQkFHVSxLIiwiZmlsZSI6IkxpZ2h0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4uL09iamVjdDNEJztcblxuLyoqXG4gKiDQkdCw0LfQvtCy0YvQuSDQutC70LDRgdGBINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC40YHRgtC+0YfQvdC40LrQsCDRgdCy0LXRgtCwLlxuICog0KHQsNC8INC/0L4g0YHQtdCx0LUg0L3QtSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8uXG4gKlxuICogQGV4dGVuZHMgT2JqZWN0M0RcbiAqL1xuY2xhc3MgTGlnaHQgZXh0ZW5kcyBPYmplY3QzRCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtBcnJheX0gY29sb3Ig0KbQstC10YIg0LIg0YTQvtGA0LzQsNGC0LUgUkdCXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY29sb3IpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KbQstC10YIg0LIg0YTQvtGA0LzQsNGC0LUgUkdCXG4gICAgICAgICAqIEB0eXBlIHtBcnJheX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcjtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpZ2h0O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWdodHMvTGlnaHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7O0lBTU0sSzs7O0FBQ0Y7Ozs7QUFHQSxpQkFBWSxLQUFaLEVBQW1CO0FBQUE7O0FBR2Y7Ozs7O0FBSGU7O0FBT2YsVUFBSyxLQUFMLEdBQWEsS0FBYjtBQVBlO0FBUWxCOzs7OztrQkFHVSxLIiwiZmlsZSI6IkxpZ2h0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4uL09iamVjdDNEJztcblxuLyoqXG4gKiDQkdCw0LfQvtCy0YvQuSDQutC70LDRgdGBINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC40YHRgtC+0YfQvdC40LrQsCDRgdCy0LXRgtCwLlxuICog0KHQsNC8INC/0L4g0YHQtdCx0LUg0L3QtSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8uXG4gKlxuICogQGV4dGVuZHMgT2JqZWN0M0RcbiAqL1xuY2xhc3MgTGlnaHQgZXh0ZW5kcyBPYmplY3QzRCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtBcnJheX0gY29sb3Ig0KbQstC10YIg0LIg0YTQvtGA0LzQsNGC0LUgUkdCXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoY29sb3IpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KbQstC10YIg0LIg0YTQvtGA0LzQsNGC0LUgUkdCXG4gICAgICAgICAqIEB0eXBlIHtBcnJheX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcjtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpZ2h0O1xuIl19

@@ -9,9 +9,9 @@ 'use strict';

var _basicFrag = require('../shaders/basic.frag.js');
var _basicFragGlsl = require('../shaders/basic.frag.glsl.js');
var _basicFrag2 = _interopRequireDefault(_basicFrag);
var _basicFragGlsl2 = _interopRequireDefault(_basicFragGlsl);
var _basicVert = require('../shaders/basic.vert.js');
var _basicVertGlsl = require('../shaders/basic.vert.glsl.js');
var _basicVert2 = _interopRequireDefault(_basicVert);
var _basicVertGlsl2 = _interopRequireDefault(_basicVertGlsl);

@@ -35,4 +35,4 @@ var _Material2 = require('./Material');

var shader = {
fragment: _basicFrag2.default,
vertex: _basicVert2.default
fragment: _basicFragGlsl2.default,
vertex: _basicVertGlsl2.default
};

@@ -102,2 +102,2 @@

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvQmFzaWNNZXNoTWF0ZXJpYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTSxTQUFTO0FBQ1gsaUNBRFc7QUFFWDtBQUZXLENBQWY7Ozs7Ozs7OztJQVdNLGlCOzs7QUFDRixpQ0FBYztBQUFBOztBQUFBOztBQUdWLGNBQUssV0FBTCxHQUFtQixDQUFDLEVBQUMsTUFBTSxVQUFQLEVBQUQsQ0FBbkI7QUFDQSxjQUFLLFNBQUwsR0FBaUIsQ0FDYixFQUFDLE1BQU0sYUFBUCxFQUFzQixNQUFNLElBQTVCLEVBRGEsRUFFYixFQUFDLE1BQU0sU0FBUCxFQUFrQixNQUFNLE1BQXhCLEVBRmEsRUFHYixFQUFDLE1BQU0sV0FBUCxFQUFvQixNQUFNLE1BQTFCLEVBSGEsRUFJYixFQUFDLE1BQU0sUUFBUCxFQUFpQixNQUFNLEtBQXZCLEVBSmEsQ0FBakI7O0FBT0EsY0FBSyxPQUFMLEdBQWUsTUFBZjs7Ozs7O0FBTUEsY0FBSyxLQUFMLEdBQWEsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsQ0FBYjs7Ozs7O0FBTUEsY0FBSyxJQUFMLEdBQVksdUJBQWEsbUJBQXpCO0FBdkJVO0FBd0JiOzs7O2lEQUV3QztBQUFBLGdCQUFyQixFQUFxQixRQUFyQixFQUFxQjtBQUFBLGdCQUFqQixNQUFpQixRQUFqQixNQUFpQjtBQUFBLGdCQUFULE1BQVMsUUFBVCxNQUFTOztBQUNyQyxnQkFBTSxhQUFhLEVBQW5CO0FBQ0EsaUJBQUssV0FBTCxDQUFpQixPQUFqQixDQUF5QixlQUFPO0FBQzVCLDJCQUFXLElBQUksSUFBZixJQUF1QixPQUFPLFFBQVAsQ0FBZ0IsU0FBaEIsQ0FBMEIsSUFBSSxJQUE5QixDQUF2QjtBQUNILGFBRkQ7O0FBSUEsZ0JBQU0sV0FBVztBQUNiLDZCQUFhLEtBQUssT0FETDtBQUViLDJCQUFXLElBQUksWUFBSixDQUFpQixPQUFPLFdBQXhCLENBRkU7QUFHYix5QkFBUyxJQUFJLFlBQUosQ0FBaUIsT0FBTyxlQUF4QixDQUhJO0FBSWIsd0JBQVEsS0FBSztBQUpBLGFBQWpCOztBQU9BLGlCQUFLLGNBQUwsQ0FBb0IsSUFBcEIsQ0FBeUIsRUFBekIsRUFBNkIsUUFBN0IsRUFBdUMsVUFBdkM7QUFDSDs7Ozs7O2tCQUdVLGlCIiwiZmlsZSI6IkJhc2ljTWVzaE1hdGVyaWFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZyYWdtZW50U2hhZGVyIGZyb20gJy4uL3NoYWRlcnMvYmFzaWMuZnJhZy5qcyc7XG5pbXBvcnQgdmVydGV4U2hhZGVyIGZyb20gJy4uL3NoYWRlcnMvYmFzaWMudmVydC5qcyc7XG5pbXBvcnQgTWF0ZXJpYWwgZnJvbSAnLi9NYXRlcmlhbCc7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5cbmNvbnN0IHNoYWRlciA9IHtcbiAgICBmcmFnbWVudDogZnJhZ21lbnRTaGFkZXIsXG4gICAgdmVydGV4OiB2ZXJ0ZXhTaGFkZXJcbn07XG5cbi8qKlxuICog0J/RgNC+0YHRgtC+0Lkg0LzQsNGC0LXRgNC40LDQuyDQtNC70Y8ge0BsaW5rIE1lc2h9LiDQoNCw0YHQutGA0LDRiNC40LLQsNC10YIg0LLQtdGB0Ywg0L7QsdGK0LXQutGCINCyINC+0LTQuNC9INC30LDQtNCw0L3QvdGL0Lkg0YbQstC10YIuXG4gKiB7QGxpbmsgR2VvbWV0cnl9INC80LXRiNCwINC40YHQv9C+0LvRjNC30YPRjtGJ0LXQs9C+INGN0YLQvtGCINC80LDRgtC10YDQuNCw0Lsg0LTQvtC70LbQvdCwINGB0L7QtNC10YDQttCw0YLRjCDQsdGD0YTQtdGAINCy0LXRgNGI0LjQvS5cbiAqXG4gKiBAZXh0ZW5kcyBNYXRlcmlhbFxuICovXG5jbGFzcyBCYXNpY01lc2hNYXRlcmlhbCBleHRlbmRzIE1hdGVyaWFsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzID0gW3tuYW1lOiAncG9zaXRpb24nfV07XG4gICAgICAgIHRoaXMuX3VuaWZvcm1zID0gW1xuICAgICAgICAgICAge25hbWU6ICd1Q29sb3JBbHBoYScsIHR5cGU6ICcxZid9LFxuICAgICAgICAgICAge25hbWU6ICd1Q2FtZXJhJywgdHlwZTogJ21hdDQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAndVBvc2l0aW9uJywgdHlwZTogJ21hdDQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAndUNvbG9yJywgdHlwZTogJzNmdid9XG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyID0gc2hhZGVyO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQptCy0LXRgiDQsiDRhNC+0YDQvNCw0YLQtSBSR0JcbiAgICAgICAgICogQHR5cGUge051bWJlcltdfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jb2xvciA9IFswLCAwLCAwXTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC80LDRgtC10YDQuNCw0LvQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLkJBU0lDX01FU0hfTUFURVJJQUw7XG4gICAgfVxuXG4gICAgX3NoYWRlclByb2dyYW1CaW5kKHtnbCwgb2JqZWN0LCBjYW1lcmF9KSB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlcy5mb3JFYWNoKG9iaiA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzW29iai5uYW1lXSA9IG9iamVjdC5nZW9tZXRyeS5nZXRCdWZmZXIob2JqLm5hbWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB1bmlmb3JtcyA9IHtcbiAgICAgICAgICAgIHVDb2xvckFscGhhOiB0aGlzLm9wYWNpdHksXG4gICAgICAgICAgICB1UG9zaXRpb246IG5ldyBGbG9hdDMyQXJyYXkob2JqZWN0LndvcmxkTWF0cml4KSxcbiAgICAgICAgICAgIHVDYW1lcmE6IG5ldyBGbG9hdDMyQXJyYXkoY2FtZXJhLm1vZGVsVmlld01hdHJpeCksXG4gICAgICAgICAgICB1Q29sb3I6IHRoaXMuY29sb3JcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtLmJpbmQoZ2wsIHVuaWZvcm1zLCBhdHRyaWJ1dGVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJhc2ljTWVzaE1hdGVyaWFsO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvQmFzaWNNZXNoTWF0ZXJpYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTSxTQUFTO0FBQ1gscUNBRFc7QUFFWDtBQUZXLENBQWY7O0FBS0E7Ozs7Ozs7SUFNTSxpQjs7O0FBQ0YsaUNBQWM7QUFBQTs7QUFBQTs7QUFHVixjQUFLLFdBQUwsR0FBbUIsQ0FBQyxFQUFDLE1BQU0sVUFBUCxFQUFELENBQW5CO0FBQ0EsY0FBSyxTQUFMLEdBQWlCLENBQ2IsRUFBQyxNQUFNLGFBQVAsRUFBc0IsTUFBTSxJQUE1QixFQURhLEVBRWIsRUFBQyxNQUFNLFNBQVAsRUFBa0IsTUFBTSxNQUF4QixFQUZhLEVBR2IsRUFBQyxNQUFNLFdBQVAsRUFBb0IsTUFBTSxNQUExQixFQUhhLEVBSWIsRUFBQyxNQUFNLFFBQVAsRUFBaUIsTUFBTSxLQUF2QixFQUphLENBQWpCOztBQU9BLGNBQUssT0FBTCxHQUFlLE1BQWY7O0FBRUE7Ozs7QUFJQSxjQUFLLEtBQUwsR0FBYSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxDQUFiOztBQUVBOzs7O0FBSUEsY0FBSyxJQUFMLEdBQVksdUJBQWEsbUJBQXpCO0FBdkJVO0FBd0JiOzs7O2lEQUV3QztBQUFBLGdCQUFyQixFQUFxQixRQUFyQixFQUFxQjtBQUFBLGdCQUFqQixNQUFpQixRQUFqQixNQUFpQjtBQUFBLGdCQUFULE1BQVMsUUFBVCxNQUFTOztBQUNyQyxnQkFBTSxhQUFhLEVBQW5CO0FBQ0EsaUJBQUssV0FBTCxDQUFpQixPQUFqQixDQUF5QixlQUFPO0FBQzVCLDJCQUFXLElBQUksSUFBZixJQUF1QixPQUFPLFFBQVAsQ0FBZ0IsU0FBaEIsQ0FBMEIsSUFBSSxJQUE5QixDQUF2QjtBQUNILGFBRkQ7O0FBSUEsZ0JBQU0sV0FBVztBQUNiLDZCQUFhLEtBQUssT0FETDtBQUViLDJCQUFXLElBQUksWUFBSixDQUFpQixPQUFPLFdBQXhCLENBRkU7QUFHYix5QkFBUyxJQUFJLFlBQUosQ0FBaUIsT0FBTyxlQUF4QixDQUhJO0FBSWIsd0JBQVEsS0FBSztBQUpBLGFBQWpCOztBQU9BLGlCQUFLLGNBQUwsQ0FBb0IsSUFBcEIsQ0FBeUIsRUFBekIsRUFBNkIsUUFBN0IsRUFBdUMsVUFBdkM7QUFDSDs7Ozs7O2tCQUdVLGlCIiwiZmlsZSI6IkJhc2ljTWVzaE1hdGVyaWFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZyYWdtZW50U2hhZGVyIGZyb20gJy4uL3NoYWRlcnMvYmFzaWMuZnJhZy5nbHNsLmpzJztcbmltcG9ydCB2ZXJ0ZXhTaGFkZXIgZnJvbSAnLi4vc2hhZGVycy9iYXNpYy52ZXJ0Lmdsc2wuanMnO1xuaW1wb3J0IE1hdGVyaWFsIGZyb20gJy4vTWF0ZXJpYWwnO1xuaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG5jb25zdCBzaGFkZXIgPSB7XG4gICAgZnJhZ21lbnQ6IGZyYWdtZW50U2hhZGVyLFxuICAgIHZlcnRleDogdmVydGV4U2hhZGVyXG59O1xuXG4vKipcbiAqINCf0YDQvtGB0YLQvtC5INC80LDRgtC10YDQuNCw0Lsg0LTQu9GPIHtAbGluayBNZXNofS4g0KDQsNGB0LrRgNCw0YjQuNCy0LDQtdGCINCy0LXRgdGMINC+0LHRitC10LrRgiDQsiDQvtC00LjQvSDQt9Cw0LTQsNC90L3Ri9C5INGG0LLQtdGCLlxuICoge0BsaW5rIEdlb21ldHJ5fSDQvNC10YjQsCDQuNGB0L/QvtC70YzQt9GD0Y7RidC10LPQviDRjdGC0L7RgiDQvNCw0YLQtdGA0LjQsNC7INC00L7Qu9C20L3QsCDRgdC+0LTQtdGA0LbQsNGC0Ywg0LHRg9GE0LXRgCDQstC10YDRiNC40L0uXG4gKlxuICogQGV4dGVuZHMgTWF0ZXJpYWxcbiAqL1xuY2xhc3MgQmFzaWNNZXNoTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IFt7bmFtZTogJ3Bvc2l0aW9uJ31dO1xuICAgICAgICB0aGlzLl91bmlmb3JtcyA9IFtcbiAgICAgICAgICAgIHtuYW1lOiAndUNvbG9yQWxwaGEnLCB0eXBlOiAnMWYnfSxcbiAgICAgICAgICAgIHtuYW1lOiAndUNhbWVyYScsIHR5cGU6ICdtYXQ0J30sXG4gICAgICAgICAgICB7bmFtZTogJ3VQb3NpdGlvbicsIHR5cGU6ICdtYXQ0J30sXG4gICAgICAgICAgICB7bmFtZTogJ3VDb2xvcicsIHR5cGU6ICczZnYnfVxuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX3NoYWRlciA9IHNoYWRlcjtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KbQstC10YIg0LIg0YTQvtGA0LzQsNGC0LUgUkdCXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJbXX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29sb3IgPSBbMCwgMCwgMF07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQvNCw0YLQtdGA0LjQsNC70LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5CQVNJQ19NRVNIX01BVEVSSUFMO1xuICAgIH1cblxuICAgIF9zaGFkZXJQcm9ncmFtQmluZCh7Z2wsIG9iamVjdCwgY2FtZXJhfSkge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0ge307XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgYXR0cmlidXRlc1tvYmoubmFtZV0gPSBvYmplY3QuZ2VvbWV0cnkuZ2V0QnVmZmVyKG9iai5uYW1lKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdW5pZm9ybXMgPSB7XG4gICAgICAgICAgICB1Q29sb3JBbHBoYTogdGhpcy5vcGFjaXR5LFxuICAgICAgICAgICAgdVBvc2l0aW9uOiBuZXcgRmxvYXQzMkFycmF5KG9iamVjdC53b3JsZE1hdHJpeCksXG4gICAgICAgICAgICB1Q2FtZXJhOiBuZXcgRmxvYXQzMkFycmF5KGNhbWVyYS5tb2RlbFZpZXdNYXRyaXgpLFxuICAgICAgICAgICAgdUNvbG9yOiB0aGlzLmNvbG9yXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbS5iaW5kKGdsLCB1bmlmb3JtcywgYXR0cmlidXRlcyk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCYXNpY01lc2hNYXRlcmlhbDtcbiJdfQ==

@@ -11,9 +11,9 @@ 'use strict';

var _complexFrag = require('../shaders/complex.frag.js');
var _complexFragGlsl = require('../shaders/complex.frag.glsl.js');
var _complexFrag2 = _interopRequireDefault(_complexFrag);
var _complexFragGlsl2 = _interopRequireDefault(_complexFragGlsl);
var _complexVert = require('../shaders/complex.vert.js');
var _complexVertGlsl = require('../shaders/complex.vert.glsl.js');
var _complexVert2 = _interopRequireDefault(_complexVert);
var _complexVertGlsl2 = _interopRequireDefault(_complexVertGlsl);

@@ -39,4 +39,4 @@ var _glMatrix = require('gl-matrix');

var shader = {
fragment: _complexFrag2.default,
vertex: _complexVert2.default
fragment: _complexFragGlsl2.default,
vertex: _complexVertGlsl2.default
};

@@ -212,2 +212,2 @@

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvQ29tcGxleE1lc2hNYXRlcmlhbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBLElBQU0sU0FBUztBQUNYLG1DQURXO0FBRVg7QUFGVyxDQUFmOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFvQk0sbUI7OztBQUNGLG1DQUFjO0FBQUE7O0FBQUE7O0FBR1YsY0FBSyxXQUFMLEdBQW1CLENBQUMsRUFBQyxNQUFNLFVBQVAsRUFBRCxFQUFxQixFQUFDLE1BQU0sT0FBUCxFQUFyQixFQUFzQyxFQUFDLE1BQU0sVUFBUCxFQUF0QyxDQUFuQjtBQUNBLGNBQUssU0FBTCxHQUFpQixDQUNiLEVBQUMsTUFBTSxhQUFQLEVBQXNCLE1BQU0sSUFBNUIsRUFEYSxFQUViLEVBQUMsTUFBTSxTQUFQLEVBQWtCLE1BQU0sTUFBeEIsRUFGYSxFQUdiLEVBQUMsTUFBTSxXQUFQLEVBQW9CLE1BQU0sTUFBMUIsRUFIYSxFQUliLEVBQUMsTUFBTSxvQkFBUCxFQUE2QixNQUFNLEtBQW5DLEVBSmEsQ0FBakI7O0FBT0EsY0FBSyxPQUFMLEdBQWUsTUFBZjtBQUNBLGNBQUssUUFBTCxHQUFnQixJQUFoQjs7Ozs7O0FBTUEsY0FBSyxJQUFMLEdBQVksdUJBQWEscUJBQXpCO0FBbEJVO0FBbUJiOzs7Ozs7Ozs7O21DQU1VLE8sRUFBUztBQUNoQixpQkFBSyxRQUFMLEdBQWdCLE9BQWhCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7O3FDQU1ZO0FBQ1QsbUJBQU8sS0FBSyxRQUFaO0FBQ0g7OztpQ0FFUSxLLEVBQU87QUFDWixpQkFBSyxZQUFMLENBQWtCLEtBQWxCOztBQUVBLGdCQUFJLEtBQUssUUFBVCxFQUFtQjtBQUNmLHFCQUFLLGNBQUw7QUFDSDs7QUFFRCxvR0FBZSxLQUFmO0FBQ0g7OzsyQ0FFcUI7QUFBQSxnQkFBUixLQUFRLFFBQVIs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QUNBLDZCQUFTLHdCQUFULEdBQW9DLElBQUksWUFBSixDQUFpQix1QkFBakIsQ0FBcEM7QUExQmU7QUEyQmxCOztBQUVELGlCQUFLLFdBQUwsQ0FBaUIsT0FBakIsQ0FBeUIsZUFBTztBQUM1QixvQkFBSSxJQUFJLElBQUosS0FBYSxRQUFqQixFQUEyQjtBQUN2QiwrQkFBVyxJQUFJLElBQWYsSUFBdUIsT0FBTyxRQUFQLENBQWdCLFNBQWhCLENBQTBCLElBQUksSUFBOUIsQ0FBdkI7QUFDSDtBQUNKLGFBSkQ7O0FBTUEscUJBQVMsU0FBVCxHQUFxQixJQUFJLFlBQUosQ0FBaUIsT0FBTyxXQUF4QixDQUFyQjtBQUNBLHFCQUFTLE9BQVQsR0FBbUIsSUFBSSxZQUFKLENBQWlCLE9BQU8sZUFBeEIsQ0FBbkI7QUFDQSxxQkFBUyxXQUFULEdBQXVCLEtBQUssT0FBNUI7O0FBRUEsaUJBQUssY0FBTCxDQUFvQixJQUFwQixDQUF5QixFQUF6QixFQUE2QixRQUE3QixFQUF1QyxVQUF2QztBQUNIOzs7Ozs7a0JBR1UsbUIiLCJmaWxlIjoiQ29tcGxleE1lc2hNYXRlcmlhbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcmFnbWVudFNoYWRlciBmcm9tICcuLi9zaGFkZXJzL2NvbXBsZXguZnJhZy5qcyc7XG5pbXBvcnQgdmVydGV4U2hhZGVyIGZyb20gJy4uL3NoYWRlcnMvY29tcGxleC52ZXJ0LmpzJztcbmltcG9ydCB7dmVjMywgbWF0M30gZnJvbSAnZ2wtbWF0cml4JztcbmltcG9ydCBNYXRlcmlhbCBmcm9tICcuL01hdGVyaWFsJztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcblxuY29uc3Qgc2hhZGVyID0ge1xuICAgIGZyYWdtZW50OiBmcmFnbWVudFNoYWRlcixcbiAgICB2ZXJ0ZXg6IHZlcnRleFNoYWRlclxufTtcblxuLyoqXG4gKiDQkdC+0LvQtdC1INGB0LvQvtC20L3Ri9C5INC80LDRgtC10YDQuNCw0Lsg0LTQu9GPIHtAbGluayBNZXNofS5cbiAqXG4gKiB7QGxpbmsgR2VvbWV0cnl9INC80LXRiNCwINC40YHQv9C+0LvRjNC30YPRjtGJ0LXQs9C+INGN0YLQvtGCINC80LDRgtC10YDQuNCw0Lsg0LTQvtC70LbQvdCwINGB0L7QtNC10YDQttCw0YLRjCDRgdC70LXQtNGD0Y7RidC40LUg0LHRg9GE0LXRgNGLOlxuICogMS4gcG9zaXRpb24gLSDQutC+0L7RgNC00LjQvdCw0YLRiyDQstC10YDRiNC40L1cbiAqIDIuIGNvbG9yIC0g0LTQuNGE0YTRg9C30L3QsNGPINGB0L7RgdGC0LDQstC70Y/RjtGJ0LDRjyDRhtCy0LXRgtCwINCyIFJHQiDQtNC70Y8g0LrQsNC20LTQvtC5INC40Lcg0LLQtdGA0YjQuNC9LCDQvdCwINC90LXRkSDQstC70LjRj9C10YIg0L7RgdCy0LXRidC10L3QuNC1XG4gKiAzLiBlbWlzc2l2ZSAtINGE0L7QvdC+0LLQsNGPINGB0L7RgdGC0LDQstC70Y/RjtGJ0LDRjyDRhtCy0LXRgtCwINCyIFJHQiwg0L3QsCDQvdC10ZEg0L3QtSDQstC70LjRj9C10YIg0L7RgdCy0LXRidC10L3QuNC1XG4gKlxuICog0JXRgdC70Lgg0LzQsNGC0LXRgNC40LDQu9GDINC30LDQtNCw0L3QsCDRgtC10LrRgdGC0YPRgNCwLCDRgtC+INGC0LDQutC20LUg0LTQvtC70LbQtdC9INCx0YvRgtGMINC00L7RgdGC0YPQv9C90Ysg0LHRg9GE0LXRgNGLOlxuICogNS4gdGV4dHVyZSAtIDLRhSDQvNC10YDQvdGL0LUg0LrQvtC+0YDQtNC40L3QsNGC0Ysg0YHQvtC/0L7RgdGC0LDQstC70Y/RjtGJ0LjQtSDQutC+0L7RgNC00LjQvdCw0YLRiyDQs9GA0LDQvdC4INC6INC60L7QvtGA0LTQuNC90LDRgtCw0Lwg0YLQtdC60YHRgtGD0YDRi1xuICogNi4gdGV4dHVyZUVuYWJsZSAtINCx0YPQtNC10YIg0LvQuCDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINGC0LXQutGB0YLRg9GA0LAg0LTQu9GPINC00LDQvdC90L7QuSDQstC10YDRiNC40L3RiyxcbiAqINC/0YDQuNC90LjQvNCw0LXRgiDQtNCy0LAg0LfQvdCw0YfQsNC10L3QuNGPOiAwIC0g0L3QtdGCLCAxIC0g0LTQsFxuICpcbiAqIEBleHRlbmRzIE1hdGVyaWFsXG4gKi9cbmNsYXNzIENvbXBsZXhNZXNoTWF0ZXJpYWwgZXh0ZW5kcyBNYXRlcmlhbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IFt7bmFtZTogJ3Bvc2l0aW9uJ30sIHtuYW1lOiAnY29sb3InfSwge25hbWU6ICdlbWlzc2l2ZSd9XTtcbiAgICAgICAgdGhpcy5fdW5pZm9ybXMgPSBbXG4gICAgICAgICAgICB7bmFtZTogJ3VDb2xvckFscGhhJywgdHlwZTogJzFmJ30sXG4gICAgICAgICAgICB7bmFtZTogJ3VDYW1lcmEnLCB0eXBlOiAnbWF0NCd9LFxuICAgICAgICAgICAge25hbWU6ICd1UG9zaXRpb24nLCB0eXBlOiAnbWF0NCd9LFxuICAgICAgICAgICAge25hbWU6ICd1QW1iaWVudExpZ2h0Q29sb3InLCB0eXBlOiAnM2Z2J31cbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLl9zaGFkZXIgPSBzaGFkZXI7XG4gICAgICAgIHRoaXMuX3RleHR1cmUgPSBudWxsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0LzQsNGC0LXRgNC40LDQu9CwXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuQ09NUExFWF9NRVNIX01BVEVSSUFMO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQtNCw0ZHRgiDRgtC10LrRgdGC0YPRgNGDINC80LDRgtC10YDQuNCw0LvRg1xuICAgICAqIEBwYXJhbSB7VGV4dHVyZX0gdGV4dHVyZVxuICAgICAqL1xuICAgIHNldFRleHR1cmUodGV4dHVyZSkge1xuICAgICAgICB0aGlzLl90ZXh0dXJlID0gdGV4dHVyZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0YPRjiDRgtC10LrRgdGC0YPRgNGDXG4gICAgICogQHJldHVybnMgez9UZXh0dXJlfVxuICAgICAqL1xuICAgIGdldFRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0dXJlO1xuICAgIH1cblxuICAgIF9wcmVwYXJlKHN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2VuYWJsZUxpZ2h0KHN0YXRlKTtcblxuICAgICAgICBpZiAodGhpcy5fdGV4dHVyZSkge1xuICAgICAgICAgICAgdGhpcy5fZW5hYmxlVGV4dHVyZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIuX3ByZXBhcmUoc3RhdGUpO1xuICAgIH1cblxuICAgIF9lbmFibGVMaWdodCh7c2NlbmV9KSB7XG4gICAgICAgIGxldCBkaXJlY3Rpb25MaWdodE51bWJlciA9IDA7XG5cbiAgICAgICAgc2NlbmUuZ2V0TGlnaHRzKCkuZm9yRWFjaChsID0+IHtcbiAgICAgICAgICAgIGlmIChsLnR5cGUgPT09IGxpYkNvbnN0YW50cy5ESVJFQ1RJT05BTF9MSUdIVCkge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbkxpZ2h0TnVtYmVyKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGVmaW5lKCdkaXJlY3Rpb25MaWdodHMnLCBkaXJlY3Rpb25MaWdodE51bWJlcik7XG5cbiAgICAgICAgaWYgKGRpcmVjdGlvbkxpZ2h0TnVtYmVyID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fYXR0cmlidXRlcy5wdXNoKHtuYW1lOiAnbm9ybWFsJ30pO1xuICAgICAgICAgICAgdGhpcy5fdW5pZm9ybXMucHVzaChcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VEaXJlY3Rpb25MaWdodENvbG9ycycsIHR5cGU6ICczZnYnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VEaXJlY3Rpb25MaWdodFBvc2l0aW9ucycsIHR5cGU6ICczZnYnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VOb3JtYWxNYXRyaXgnLCB0eXBlOiAnbWF0Myd9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2VuYWJsZVRleHR1cmUoKSB7XG4gICAgICAgIHRoaXMuZGVmaW5lKCd0ZXh0dXJlJyk7XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMucHVzaCh7bmFtZTogJ3RleHR1cmUnfSwge25hbWU6ICd0ZXh0dXJlRW5hYmxlJ30pO1xuICAgICAgICB0aGlzLl91bmlmb3Jtcy5wdXNoKHtuYW1lOiAndVRleHR1cmUnLCB0eXBlOiAnMWknfSk7XG4gICAgfVxuXG4gICAgX3NoYWRlclByb2dyYW1CaW5kKHtnbCwgc2NlbmUsIGNhbWVyYSwgb2JqZWN0fSkge1xuICAgICAgICBjb25zdCB1bmlmb3JtcyA9IHt9O1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0ge307XG5cbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUuZW5hYmxlKGdsLCB0cnVlKTtcbiAgICAgICAgICAgIHVuaWZvcm1zLnVUZXh0dXJlID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxpZ2h0cyA9IHNjZW5lLmdldExpZ2h0cygpO1xuXG4gICAgICAgIGlmIChsaWdodHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgZGlyZWN0aW9uTGlnaHRzQ29sb3IgPSBbXTtcbiAgICAgICAgICAgIGxldCBkaXJlY3Rpb25MaWdodHNQb3NpdGlvbiA9IFtdO1xuXG4gICAgICAgICAgICBsaWdodHMuZm9yRWFjaChsaWdodCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGxpZ2h0LnR5cGUgPT09IGxpYkNvbnN0YW50cy5BTUJJRU5UX0xJR0hUKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnVBbWJpZW50TGlnaHRDb2xvciA9IGxpZ2h0LmNvbG9yO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGlnaHQudHlwZSA9PT0gbGliQ29uc3RhbnRzLkRJUkVDVElPTkFMX0xJR0hUKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbkxpZ2h0c0NvbG9yID0gZGlyZWN0aW9uTGlnaHRzQ29sb3IuY29uY2F0KGxpZ2h0LmNvbG9yKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZlcnRlZCA9IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHZlYzMuc2NhbGUocmV2ZXJ0ZWQsIGxpZ2h0LnBvc2l0aW9uLCAtMSk7XG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbkxpZ2h0c1Bvc2l0aW9uID0gZGlyZWN0aW9uTGlnaHRzUG9zaXRpb24uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJldmVydGVkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb25MaWdodHNDb2xvci5sZW5ndGggJiYgZGlyZWN0aW9uTGlnaHRzUG9zaXRpb24ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsTWF0cml4ID0gbWF0My5jcmVhdGUoKTtcbiAgICAgICAgICAgICAgICBtYXQzLmZyb21NYXQ0KG5vcm1hbE1hdHJpeCwgb2JqZWN0LndvcmxkTWF0cml4KTtcbiAgICAgICAgICAgICAgICBtYXQzLmludmVydChub3JtYWxNYXRyaXgsIG5vcm1hbE1hdHJpeCk7XG4gICAgICAgICAgICAgICAgbWF0My50cmFuc3Bvc2Uobm9ybWFsTWF0cml4LCBub3JtYWxNYXRyaXgpO1xuICAgICAgICAgICAgICAgIHVuaWZvcm1zLnVOb3JtYWxNYXRyaXggPSBuZXcgRmxvYXQzMkFycmF5KG5vcm1hbE1hdHJpeCk7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlcy5ub3JtYWwgPSBvYmplY3QuZ2VvbWV0cnkuZ2V0QnVmZmVyKCdub3JtYWwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdW5pZm9ybXMudURpcmVjdGlvbkxpZ2h0Q29sb3JzID0gbmV3IEZsb2F0MzJBcnJheShkaXJlY3Rpb25MaWdodHNDb2xvcik7XG4gICAgICAgICAgICB1bmlmb3Jtcy51RGlyZWN0aW9uTGlnaHRQb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGRpcmVjdGlvbkxpZ2h0c1Bvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgaWYgKG9iai5uYW1lICE9PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNbb2JqLm5hbWVdID0gb2JqZWN0Lmdlb21ldHJ5LmdldEJ1ZmZlcihvYmoubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVuaWZvcm1zLnVQb3NpdGlvbiA9IG5ldyBGbG9hdDMyQXJyYXkob2JqZWN0LndvcmxkTWF0cml4KTtcbiAgICAgICAgdW5pZm9ybXMudUNhbWVyYSA9IG5ldyBGbG9hdDMyQXJyYXkoY2FtZXJhLm1vZGVsVmlld01hdHJpeCk7XG4gICAgICAgIHVuaWZvcm1zLnVDb2xvckFscGhhID0gdGhpcy5vcGFjaXR5O1xuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0uYmluZChnbCwgdW5pZm9ybXMsIGF0dHJpYnV0ZXMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcGxleE1lc2hNYXRlcmlhbDtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvQ29tcGxleE1lc2hNYXRlcmlhbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBLElBQU0sU0FBUztBQUNYLHVDQURXO0FBRVg7QUFGVyxDQUFmOztBQUtBOzs7Ozs7Ozs7Ozs7Ozs7O0lBZU0sbUI7OztBQUNGLG1DQUFjO0FBQUE7O0FBQUE7O0FBR1YsY0FBSyxXQUFMLEdBQW1CLENBQUMsRUFBQyxNQUFNLFVBQVAsRUFBRCxFQUFxQixFQUFDLE1BQU0sT0FBUCxFQUFyQixFQUFzQyxFQUFDLE1BQU0sVUFBUCxFQUF0QyxDQUFuQjtBQUNBLGNBQUssU0FBTCxHQUFpQixDQUNiLEVBQUMsTUFBTSxhQUFQLEVBQXNCLE1BQU0sSUFBNUIsRUFEYSxFQUViLEVBQUMsTUFBTSxTQUFQLEVBQWtCLE1BQU0sTUFBeEIsRUFGYSxFQUdiLEVBQUMsTUFBTSxXQUFQLEVBQW9CLE1BQU0sTUFBMUIsRUFIYSxFQUliLEVBQUMsTUFBTSxvQkFBUCxFQUE2QixNQUFNLEtBQW5DLEVBSmEsQ0FBakI7O0FBT0EsY0FBSyxPQUFMLEdBQWUsTUFBZjtBQUNBLGNBQUssUUFBTCxHQUFnQixJQUFoQjs7QUFFQTs7OztBQUlBLGNBQUssSUFBTCxHQUFZLHVCQUFhLHFCQUF6QjtBQWxCVTtBQW1CYjs7QUFFRDs7Ozs7Ozs7bUNBSVcsTyxFQUFTO0FBQ2hCLGlCQUFLLFFBQUwsR0FBZ0IsT0FBaEI7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7O3FDQUlhO0FBQ1QsbUJBQU8sS0FBSyxRQUFaO0FBQ0g7OztpQ0FFUSxLLEVBQU87QUFDWixpQkFBSyxZQUFMLENBQWtCLEtBQWxCOztBQUVBLGdCQUFJLEtBQUssUUFBVCxFQUFtQjtBQUNmLHFCQUFLLGNBQUw7QUFDSDs7QUFFRCxvR0FBZSxLQUFmO0FBQ0g7OzsyQ0FFcUI7QUFBQSxn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LG9CQUFqQixDQUFqQztBQUNBLDZCQUFTLHdCQUFULEdBQW9DLElBQUksWUFBSixDQUFpQix1QkFBakIsQ0FBcEM7QUExQmU7QUEyQmxCOztBQUVELGlCQUFLLFdBQUwsQ0FBaUIsT0FBakIsQ0FBeUIsZUFBTztBQUM1QixvQkFBSSxJQUFJLElBQUosS0FBYSxRQUFqQixFQUEyQjtBQUN2QiwrQkFBVyxJQUFJLElBQWYsSUFBdUIsT0FBTyxRQUFQLENBQWdCLFNBQWhCLENBQTBCLElBQUksSUFBOUIsQ0FBdkI7QUFDSDtBQUNKLGFBSkQ7O0FBTUEscUJBQVMsU0FBVCxHQUFxQixJQUFJLFlBQUosQ0FBaUIsT0FBTyxXQUF4QixDQUFyQjtBQUNBLHFCQUFTLE9BQVQsR0FBbUIsSUFBSSxZQUFKLENBQWlCLE9BQU8sZUFBeEIsQ0FBbkI7QUFDQSxxQkFBUyxXQUFULEdBQXVCLEtBQUssT0FBNUI7O0FBRUEsaUJBQUssY0FBTCxDQUFvQixJQUFwQixDQUF5QixFQUF6QixFQUE2QixRQUE3QixFQUF1QyxVQUF2QztBQUNIOzs7Ozs7a0JBR1UsbUIiLCJmaWxlIjoiQ29tcGxleE1lc2hNYXRlcmlhbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcmFnbWVudFNoYWRlciBmcm9tICcuLi9zaGFkZXJzL2NvbXBsZXguZnJhZy5nbHNsLmpzJztcbmltcG9ydCB2ZXJ0ZXhTaGFkZXIgZnJvbSAnLi4vc2hhZGVycy9jb21wbGV4LnZlcnQuZ2xzbC5qcyc7XG5pbXBvcnQge3ZlYzMsIG1hdDN9IGZyb20gJ2dsLW1hdHJpeCc7XG5pbXBvcnQgTWF0ZXJpYWwgZnJvbSAnLi9NYXRlcmlhbCc7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5cbmNvbnN0IHNoYWRlciA9IHtcbiAgICBmcmFnbWVudDogZnJhZ21lbnRTaGFkZXIsXG4gICAgdmVydGV4OiB2ZXJ0ZXhTaGFkZXJcbn07XG5cbi8qKlxuICog0JHQvtC70LXQtSDRgdC70L7QttC90YvQuSDQvNCw0YLQtdGA0LjQsNC7INC00LvRjyB7QGxpbmsgTWVzaH0uXG4gKlxuICoge0BsaW5rIEdlb21ldHJ5fSDQvNC10YjQsCDQuNGB0L/QvtC70YzQt9GD0Y7RidC10LPQviDRjdGC0L7RgiDQvNCw0YLQtdGA0LjQsNC7INC00L7Qu9C20L3QsCDRgdC+0LTQtdGA0LbQsNGC0Ywg0YHQu9C10LTRg9GO0YnQuNC1INCx0YPRhNC10YDRizpcbiAqIDEuIHBvc2l0aW9uIC0g0LrQvtC+0YDQtNC40L3QsNGC0Ysg0LLQtdGA0YjQuNC9XG4gKiAyLiBjb2xvciAtINC00LjRhNGE0YPQt9C90LDRjyDRgdC+0YHRgtCw0LLQu9GP0Y7RidCw0Y8g0YbQstC10YLQsCDQsiBSR0Ig0LTQu9GPINC60LDQttC00L7QuSDQuNC3INCy0LXRgNGI0LjQvSwg0L3QsCDQvdC10ZEg0LLQu9C40Y/QtdGCINC+0YHQstC10YnQtdC90LjQtVxuICogMy4gZW1pc3NpdmUgLSDRhNC+0L3QvtCy0LDRjyDRgdC+0YHRgtCw0LLQu9GP0Y7RidCw0Y8g0YbQstC10YLQsCDQsiBSR0IsINC90LAg0L3QtdGRINC90LUg0LLQu9C40Y/QtdGCINC+0YHQstC10YnQtdC90LjQtVxuICpcbiAqINCV0YHQu9C4INC80LDRgtC10YDQuNCw0LvRgyDQt9Cw0LTQsNC90LAg0YLQtdC60YHRgtGD0YDQsCwg0YLQviDRgtCw0LrQttC1INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQtNC+0YHRgtGD0L/QvdGLINCx0YPRhNC10YDRizpcbiAqIDUuIHRleHR1cmUgLSAy0YUg0LzQtdGA0L3Ri9C1INC60L7QvtGA0LTQuNC90LDRgtGLINGB0L7Qv9C+0YHRgtCw0LLQu9GP0Y7RidC40LUg0LrQvtC+0YDQtNC40L3QsNGC0Ysg0LPRgNCw0L3QuCDQuiDQutC+0L7RgNC00LjQvdCw0YLQsNC8INGC0LXQutGB0YLRg9GA0YtcbiAqIDYuIHRleHR1cmVFbmFibGUgLSDQsdGD0LTQtdGCINC70Lgg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM0YHRjyDRgtC10LrRgdGC0YPRgNCwINC00LvRjyDQtNCw0L3QvdC+0Lkg0LLQtdGA0YjQuNC90YssXG4gKiDQv9GA0LjQvdC40LzQsNC10YIg0LTQstCwINC30L3QsNGH0LDQtdC90LjRjzogMCAtINC90LXRgiwgMSAtINC00LBcbiAqXG4gKiBAZXh0ZW5kcyBNYXRlcmlhbFxuICovXG5jbGFzcyBDb21wbGV4TWVzaE1hdGVyaWFsIGV4dGVuZHMgTWF0ZXJpYWwge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSBbe25hbWU6ICdwb3NpdGlvbid9LCB7bmFtZTogJ2NvbG9yJ30sIHtuYW1lOiAnZW1pc3NpdmUnfV07XG4gICAgICAgIHRoaXMuX3VuaWZvcm1zID0gW1xuICAgICAgICAgICAge25hbWU6ICd1Q29sb3JBbHBoYScsIHR5cGU6ICcxZid9LFxuICAgICAgICAgICAge25hbWU6ICd1Q2FtZXJhJywgdHlwZTogJ21hdDQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAndVBvc2l0aW9uJywgdHlwZTogJ21hdDQnfSxcbiAgICAgICAgICAgIHtuYW1lOiAndUFtYmllbnRMaWdodENvbG9yJywgdHlwZTogJzNmdid9XG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyID0gc2hhZGVyO1xuICAgICAgICB0aGlzLl90ZXh0dXJlID0gbnVsbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC80LDRgtC10YDQuNCw0LvQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLkNPTVBMRVhfTUVTSF9NQVRFUklBTDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0LTQsNGR0YIg0YLQtdC60YHRgtGD0YDRgyDQvNCw0YLQtdGA0LjQsNC70YNcbiAgICAgKiBAcGFyYW0ge1RleHR1cmV9IHRleHR1cmVcbiAgICAgKi9cbiAgICBzZXRUZXh0dXJlKHRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IHRleHR1cmU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLQtdC60YPRidGD0Y4g0YLQtdC60YHRgtGD0YDRg1xuICAgICAqIEByZXR1cm5zIHs/VGV4dHVyZX1cbiAgICAgKi9cbiAgICBnZXRUZXh0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dHVyZTtcbiAgICB9XG5cbiAgICBfcHJlcGFyZShzdGF0ZSkge1xuICAgICAgICB0aGlzLl9lbmFibGVMaWdodChzdGF0ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VuYWJsZVRleHR1cmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLl9wcmVwYXJlKHN0YXRlKTtcbiAgICB9XG5cbiAgICBfZW5hYmxlTGlnaHQoe3NjZW5lfSkge1xuICAgICAgICBsZXQgZGlyZWN0aW9uTGlnaHROdW1iZXIgPSAwO1xuXG4gICAgICAgIHNjZW5lLmdldExpZ2h0cygpLmZvckVhY2gobCA9PiB7XG4gICAgICAgICAgICBpZiAobC50eXBlID09PSBsaWJDb25zdGFudHMuRElSRUNUSU9OQUxfTElHSFQpIHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25MaWdodE51bWJlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRlZmluZSgnZGlyZWN0aW9uTGlnaHRzJywgZGlyZWN0aW9uTGlnaHROdW1iZXIpO1xuXG4gICAgICAgIGlmIChkaXJlY3Rpb25MaWdodE51bWJlciA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMucHVzaCh7bmFtZTogJ25vcm1hbCd9KTtcbiAgICAgICAgICAgIHRoaXMuX3VuaWZvcm1zLnB1c2goXG4gICAgICAgICAgICAgICAge25hbWU6ICd1RGlyZWN0aW9uTGlnaHRDb2xvcnMnLCB0eXBlOiAnM2Z2J30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1RGlyZWN0aW9uTGlnaHRQb3NpdGlvbnMnLCB0eXBlOiAnM2Z2J30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1Tm9ybWFsTWF0cml4JywgdHlwZTogJ21hdDMnfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9lbmFibGVUZXh0dXJlKCkge1xuICAgICAgICB0aGlzLmRlZmluZSgndGV4dHVyZScpO1xuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzLnB1c2goe25hbWU6ICd0ZXh0dXJlJ30sIHtuYW1lOiAndGV4dHVyZUVuYWJsZSd9KTtcbiAgICAgICAgdGhpcy5fdW5pZm9ybXMucHVzaCh7bmFtZTogJ3VUZXh0dXJlJywgdHlwZTogJzFpJ30pO1xuICAgIH1cblxuICAgIF9zaGFkZXJQcm9ncmFtQmluZCh7Z2wsIHNjZW5lLCBjYW1lcmEsIG9iamVjdH0pIHtcbiAgICAgICAgY29uc3QgdW5pZm9ybXMgPSB7fTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHt9O1xuXG4gICAgICAgIGlmICh0aGlzLl90ZXh0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLl90ZXh0dXJlLmVuYWJsZShnbCwgdHJ1ZSk7XG4gICAgICAgICAgICB1bmlmb3Jtcy51VGV4dHVyZSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsaWdodHMgPSBzY2VuZS5nZXRMaWdodHMoKTtcblxuICAgICAgICBpZiAobGlnaHRzLmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IGRpcmVjdGlvbkxpZ2h0c0NvbG9yID0gW107XG4gICAgICAgICAgICBsZXQgZGlyZWN0aW9uTGlnaHRzUG9zaXRpb24gPSBbXTtcblxuICAgICAgICAgICAgbGlnaHRzLmZvckVhY2gobGlnaHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChsaWdodC50eXBlID09PSBsaWJDb25zdGFudHMuQU1CSUVOVF9MSUdIVCkge1xuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy51QW1iaWVudExpZ2h0Q29sb3IgPSBsaWdodC5jb2xvcjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpZ2h0LnR5cGUgPT09IGxpYkNvbnN0YW50cy5ESVJFQ1RJT05BTF9MSUdIVCkge1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb25MaWdodHNDb2xvciA9IGRpcmVjdGlvbkxpZ2h0c0NvbG9yLmNvbmNhdChsaWdodC5jb2xvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2ZXJ0ZWQgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB2ZWMzLnNjYWxlKHJldmVydGVkLCBsaWdodC5wb3NpdGlvbiwgLTEpO1xuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb25MaWdodHNQb3NpdGlvbiA9IGRpcmVjdGlvbkxpZ2h0c1Bvc2l0aW9uLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZXZlcnRlZCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9uTGlnaHRzQ29sb3IubGVuZ3RoICYmIGRpcmVjdGlvbkxpZ2h0c1Bvc2l0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbE1hdHJpeCA9IG1hdDMuY3JlYXRlKCk7XG4gICAgICAgICAgICAgICAgbWF0My5mcm9tTWF0NChub3JtYWxNYXRyaXgsIG9iamVjdC53b3JsZE1hdHJpeCk7XG4gICAgICAgICAgICAgICAgbWF0My5pbnZlcnQobm9ybWFsTWF0cml4LCBub3JtYWxNYXRyaXgpO1xuICAgICAgICAgICAgICAgIG1hdDMudHJhbnNwb3NlKG5vcm1hbE1hdHJpeCwgbm9ybWFsTWF0cml4KTtcbiAgICAgICAgICAgICAgICB1bmlmb3Jtcy51Tm9ybWFsTWF0cml4ID0gbmV3IEZsb2F0MzJBcnJheShub3JtYWxNYXRyaXgpO1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMubm9ybWFsID0gb2JqZWN0Lmdlb21ldHJ5LmdldEJ1ZmZlcignbm9ybWFsJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVuaWZvcm1zLnVEaXJlY3Rpb25MaWdodENvbG9ycyA9IG5ldyBGbG9hdDMyQXJyYXkoZGlyZWN0aW9uTGlnaHRzQ29sb3IpO1xuICAgICAgICAgICAgdW5pZm9ybXMudURpcmVjdGlvbkxpZ2h0UG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShkaXJlY3Rpb25MaWdodHNQb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzLmZvckVhY2gob2JqID0+IHtcbiAgICAgICAgICAgIGlmIChvYmoubmFtZSAhPT0gJ25vcm1hbCcpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzW29iai5uYW1lXSA9IG9iamVjdC5nZW9tZXRyeS5nZXRCdWZmZXIob2JqLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB1bmlmb3Jtcy51UG9zaXRpb24gPSBuZXcgRmxvYXQzMkFycmF5KG9iamVjdC53b3JsZE1hdHJpeCk7XG4gICAgICAgIHVuaWZvcm1zLnVDYW1lcmEgPSBuZXcgRmxvYXQzMkFycmF5KGNhbWVyYS5tb2RlbFZpZXdNYXRyaXgpO1xuICAgICAgICB1bmlmb3Jtcy51Q29sb3JBbHBoYSA9IHRoaXMub3BhY2l0eTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtLmJpbmQoZ2wsIHVuaWZvcm1zLCBhdHRyaWJ1dGVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBsZXhNZXNoTWF0ZXJpYWw7XG4iXX0=

@@ -21,2 +21,6 @@ 'use strict';

var _Shader = require('../Shader');
var _Shader2 = _interopRequireDefault(_Shader);
require('../rendererPlugins/CommonPlugin');

@@ -151,7 +155,6 @@

this._shaderProgram = new _ShaderProgram2.default({
vertex: this._shader.vertex,
fragment: this._shader.fragment,
vertex: new _Shader2.default('vertex', this._shader.vertex, this._definitions),
fragment: new _Shader2.default('fragment', this._shader.fragment, this._definitions),
uniforms: this._uniforms,
attributes: this._attributes,
definitions: this._definitions
attributes: this._attributes
});

@@ -188,2 +191,2 @@

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvTWF0ZXJpYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsSUFBTSxpQkFBaUIsRUFBdkI7Ozs7OztJQUtNLFE7QUFDRix3QkFBYztBQUFBOztBQUNWLGFBQUssV0FBTCxHQUFtQixFQUFuQjtBQUNBLGFBQUssU0FBTCxHQUFpQixDQUFDO0FBQ2Qsa0JBQU0sYUFEUTtBQUVkLGtCQUFNO0FBRlEsU0FBRCxDQUFqQjs7QUFLQSxhQUFLLFlBQUwsR0FBb0IsRUFBcEI7QUFDQSxhQUFLLE9BQUwsR0FBZSxJQUFmOzs7Ozs7QUFNQSxhQUFLLE9BQUwsR0FBZSxDQUFmO0FBQ0g7Ozs7Ozs7Ozs7K0JBTU0sSyxFQUFPO0FBQ1YsZ0JBQUksQ0FBQyxLQUFLLGNBQVYsRUFBMEI7QUFDdEIscUJBQUssUUFBTCxDQUFjLEtBQWQ7QUFDSDs7QUFFRCxpQkFBSyxjQUFMLENBQW9CLE1BQXBCLENBQTJCLE1BQU0sRUFBakM7O0FBRUEsaUJBQUssa0JBQUwsQ0FBd0IsS0FBeEI7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7Z0NBTU8sRSxFQUFJO0FBQ1IsZ0JBQUksS0FBSyxjQUFULEVBQXlCO0FBQ3JCLHFCQUFLLGNBQUwsQ0FBb0IsT0FBcEIsQ0FBNEIsRUFBNUI7QUFDSDtBQUNELG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7OzsrQkFPTSxJLEVBQU0sSyxFQUFPO0FBQ2hCLGdCQUFJLHNCQUFZLElBQVosQ0FBSixFQUF1QjtBQUNuQixxQkFBSyxZQUFMLENBQWtCLElBQWxCLENBQXVCLEVBQUMsTUFBTSxzQkFBWSxJQUFaLENBQVAsRUFBMEIsT0FBTyxLQUFqQyxFQUF2QjtBQUNIOztBQUVELG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7Ozs7Ozt3Q0FVZSxhLEVBQWUsTSxFQUFRO0FBQ25DLGdCQUFJLEtBQUssT0FBTCxLQUFpQixDQUFyQixFQUF3QjtBQUNwQiw4QkFBYyx1QkFBYSxlQUEzQixFQUE0QyxTQUE1QyxDQUFzRCxNQUF0RDtBQUNILGFBRkQsTUFFTztBQUNILDhCQUFjLHVCQUFhLG9CQUEzQixFQUFpRCxTQUFqRCxDQUEyRCxNQUEzRDtBQUNIO0FBQ0o7OzsrQ0FFc0I7QUFDbkIsZ0JBQUksTUFBTSxLQUFLLFdBQUwsQ0FBaUIsSUFBM0I7O0FBRUEsaUJBQUssWUFBTCxDQUFrQixPQUFsQixDQUEwQixlQUFPO0FBQzdCLHVCQUFPLE1BQU0sSUFBSSxJQUFWLEdBQWlCLEdBQWpCLElBQXdCLElBQUksS0FBSixJQUFhLEVBQXJDLENBQVA7QUFDSCxhQUZEOztBQUlBLG1CQUFPLEdBQVA7QUFDSDs7OzRDQUVtQjtBQUNoQixtQkFBTyxlQUFlLEtBQUssb0JBQUwsRUFBZixDQUFQO0FBQ0g7OztpQ0FFUSxFLEVBQUk7QUFDVCxnQkFBTSxnQkFBZ0IsS0FBSyxpQkFBTCxFQUF0Qjs7QUFFQSxnQkFBSSxpQkFBaUIsT0FBTyxjQUFjLFNBQTFDLEVBQXFEO0FBQ2pELHFCQUFLLGNBQUwsR0FBc0IsY0FBYyxPQUFwQztBQUNBO0FBQ0g7O0FBRUQsaUJBQUssY0FBTCxHQUFzQiw0QkFBa0I7QUFDcEMsd0JBQVEsS0FBSyxPQUFMLENBQWEsTUFEZTtBQUVwQywwQkFBVSxLQUFLLE9BQUwsQ0FBYSxRQUZhO0FBR3BDLDBCQUFVLEtBQUssU0FIcUI7QUFJcEMsNEJBQVksS0FBSyxXQUptQjtBQUtwQyw2QkFBYSxLQUFLO0FBTGtCLGFBQWxCLENBQXRCOztBQVFBLDJCQUFlLEtBQUssb0JBQUwsRUFBZixJQUE4QztBQUMxQywyQkFBVyxFQUQrQjtBQUUxQyx5QkFBUyxLQUFLO0FBRjRCLGFBQTlDO0FBSUg7OztpREFFZ0M7QUFBQSxnQkFBYixFQUFhLFFBQWIsRUFBYTtBQUFBLGdCQUFULE1BQVMsUUFBVCxNQUFTOztBQUM3QixnQkFBTSxhQUFhLEVBQW5CO0FBQ0EsaUJBQUssV0FBTCxDQUFpQixPQUFqQixDQUF5QixlQUFPO0FBQzVCLDJCQUFXLElBQUksSUFBZixJQUF1QixPQUFPLFFBQVAsQ0FBZ0IsU0FBaEIsQ0FBMEIsSUFBSSxJQUE5QixDQUF2QjtBQUNILGFBRkQ7O0FBSUEsZ0JBQU0sV0FBVztBQUNiLDZCQUFhLEtBQUs7QUFETCxhQUFqQjs7QUFJQSxpQkFBSyxjQUFMLENBQW9CLElBQXBCLENBQXlCLEVBQXpCLEVBQTZCLFFBQTdCLEVBQXVDLFVBQXZDO0FBQ0g7Ozs7OztrQkFHVSxRIiwiZmlsZSI6Ik1hdGVyaWFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlZmluaXRpb25zIGZyb20gJy4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IFNoYWRlclByb2dyYW0gZnJvbSAnLi4vU2hhZGVyUHJvZ3JhbSc7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5pbXBvcnQgJy4uL3JlbmRlcmVyUGx1Z2lucy9Db21tb25QbHVnaW4nO1xuaW1wb3J0ICcuLi9yZW5kZXJlclBsdWdpbnMvVHJhbnNwYXJlbnRQbHVnaW4nO1xuXG5jb25zdCBjYWNoZWRQcm9ncmFtcyA9IHt9O1xuXG4vKipcbiAqINCR0LDQt9C+0LLRi9C5INC60LvQsNGB0YEg0LTQu9GPINC80LDRgtC10YDQuNCw0LvQvtCyXG4gKi9cbmNsYXNzIE1hdGVyaWFsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IFtdO1xuICAgICAgICB0aGlzLl91bmlmb3JtcyA9IFt7XG4gICAgICAgICAgICBuYW1lOiAndUNvbG9yQWxwaGEnLFxuICAgICAgICAgICAgdHlwZTogJzFmJ1xuICAgICAgICB9XTtcblxuICAgICAgICB0aGlzLl9kZWZpbml0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLl9zaGFkZXIgPSBudWxsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQn9GA0L7Qt9GA0LDRh9C90L7RgdGC0Ywg0L7QsdGK0LXQutGC0LAg0L7RgtGA0LjRgdC+0LLQsNC90L3QvtCz0L4g0YEg0L/QvtC80L7RidGM0Y4g0LTQsNC90L3QvtC5INC80LDRgtC10YDQuNCw0LvQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGI0LXQudC00LXRgNC90YPRjiDQv9GA0L7Qs9GA0LDQvNC80YNcbiAgICAgKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICAgICAqL1xuICAgIGVuYWJsZShzdGF0ZSkge1xuICAgICAgICBpZiAoIXRoaXMuX3NoYWRlclByb2dyYW0pIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmUoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbS5lbmFibGUoc3RhdGUuZ2wpO1xuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1CaW5kKHN0YXRlKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntGC0LrQu9GO0YfQsNC10YIg0YjQtdC50LTQtdGA0L3Rg9GOINC/0YDQvtCz0YDQsNC80LzRg1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIGRpc2FibGUoZ2wpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NoYWRlclByb2dyYW0pIHtcbiAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0uZGlzYWJsZShnbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JTQvtCx0LDQstC70Y/QtdGCIGRlZmluaXRpb25zINCyINC60L7QtCDRiNC10LnQtNC10YDQvtCyLiDQktGB0LUg0LTQvtCx0LDQstC70LXQvdC40Y8g0LTQvtC70LbQvdGLINCx0YvRgtGMINGB0LTQtdC70LDQvdGLINC00L4g0L/QtdGA0LLQvtC5INC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gICAgICogQHBhcmFtIHtOdW1iZXIgfCBTdHJpbmd9IHZhbHVlXG4gICAgICovXG4gICAgZGVmaW5lKHR5cGUsIHZhbHVlKSB7XG4gICAgICAgIGlmIChkZWZpbml0aW9uc1t0eXBlXSkge1xuICAgICAgICAgICAgdGhpcy5fZGVmaW5pdGlvbnMucHVzaCh7dHlwZTogZGVmaW5pdGlvbnNbdHlwZV0sIHZhbHVlOiB2YWx1ZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgtGB0Y8g0L7QsdGK0LXQutGC0L7QvCDQuNGB0L/QvtC70YzQt9GD0Y7RidGD0Y4g0LTQsNC90L3Ri9C5INC80LDRgtC10YDQuNCw0LssXG4gICAgICog0YfRgtC+0LHRiyDQvtC/0YDQtdC00LXQu9C40YLRjCDQuiDQutCw0LrQvtC80YMg0YLQuNC/0YMg0YDQtdC90LTQtdGA0LAg0L/RgNC40L3QsNC00LvQtdC20LjRgiDQvtCx0YrQtdC60YIuXG4gICAgICog0KHQsNC80L7QtSDQv9GA0L7RgdGC0L7QtSDRgNCw0LfQtNC10LvQtdC90LjQtTog0L3QsCDQv9GA0L7Qt9GA0LDRh9C90YvQtSDQuCDQvdC10YIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcmVuZGVyUGx1Z2luc1xuICAgICAqIEBwYXJhbSB7T2JqZWN0M0R9IG9iamVjdFxuICAgICAqL1xuICAgIHR5cGlmeUZvclJlbmRlcihyZW5kZXJQbHVnaW5zLCBvYmplY3QpIHtcbiAgICAgICAgaWYgKHRoaXMub3BhY2l0eSA9PT0gMSkge1xuICAgICAgICAgICAgcmVuZGVyUGx1Z2luc1tsaWJDb25zdGFudHMuQ09NTU9OX1JFTkRFUkVSXS5hZGRPYmplY3Qob2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbmRlclBsdWdpbnNbbGliQ29uc3RhbnRzLlRSQU5TUEFSRU5UX1JFTkRFUkVSXS5hZGRPYmplY3Qob2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9nZXRDYWNoZWRQcm9ncmFtS2V5KCkge1xuICAgICAgICBsZXQga2V5ID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgICAgIHRoaXMuX2RlZmluaXRpb25zLmZvckVhY2goZGVmID0+IHtcbiAgICAgICAgICAgIGtleSArPSAnOicgKyBkZWYudHlwZSArICc6JyArIChkZWYudmFsdWUgfHwgJycpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIF9nZXRDYWNoZWRQcm9ncmFtKCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUHJvZ3JhbXNbdGhpcy5fZ2V0Q2FjaGVkUHJvZ3JhbUtleSgpXTtcbiAgICB9XG5cbiAgICBfcHJlcGFyZShnbCkge1xuICAgICAgICBjb25zdCBjYWNoZWRQcm9ncmFtID0gdGhpcy5fZ2V0Q2FjaGVkUHJvZ3JhbSgpO1xuXG4gICAgICAgIGlmIChjYWNoZWRQcm9ncmFtICYmIGdsID09PSBjYWNoZWRQcm9ncmFtLmdsQ29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbSA9IGNhY2hlZFByb2dyYW0ucHJvZ3JhbTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0gPSBuZXcgU2hhZGVyUHJvZ3JhbSh7XG4gICAgICAgICAgICB2ZXJ0ZXg6IHRoaXMuX3NoYWRlci52ZXJ0ZXgsXG4gICAgICAgICAgICBmcmFnbWVudDogdGhpcy5fc2hhZGVyLmZyYWdtZW50LFxuICAgICAgICAgICAgdW5pZm9ybXM6IHRoaXMuX3VuaWZvcm1zLFxuICAgICAgICAgICAgYXR0cmlidXRlczogdGhpcy5fYXR0cmlidXRlcyxcbiAgICAgICAgICAgIGRlZmluaXRpb25zOiB0aGlzLl9kZWZpbml0aW9uc1xuICAgICAgICB9KTtcblxuICAgICAgICBjYWNoZWRQcm9ncmFtc1t0aGlzLl9nZXRDYWNoZWRQcm9ncmFtS2V5KCldID0ge1xuICAgICAgICAgICAgZ2xDb250ZXh0OiBnbCxcbiAgICAgICAgICAgIHByb2dyYW06IHRoaXMuX3NoYWRlclByb2dyYW1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBfc2hhZGVyUHJvZ3JhbUJpbmQoe2dsLCBvYmplY3R9KSB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlcy5mb3JFYWNoKG9iaiA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzW29iai5uYW1lXSA9IG9iamVjdC5nZW9tZXRyeS5nZXRCdWZmZXIob2JqLm5hbWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB1bmlmb3JtcyA9IHtcbiAgICAgICAgICAgIHVDb2xvckFscGhhOiB0aGlzLm9wYWNpdHlcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtLmJpbmQoZ2wsIHVuaWZvcm1zLCBhdHRyaWJ1dGVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hdGVyaWFsO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvTWF0ZXJpYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOztBQUNBOzs7Ozs7QUFFQSxJQUFNLGlCQUFpQixFQUF2Qjs7QUFFQTs7OztJQUdNLFE7QUFDRix3QkFBYztBQUFBOztBQUNWLGFBQUssV0FBTCxHQUFtQixFQUFuQjtBQUNBLGFBQUssU0FBTCxHQUFpQixDQUFDO0FBQ2Qsa0JBQU0sYUFEUTtBQUVkLGtCQUFNO0FBRlEsU0FBRCxDQUFqQjs7QUFLQSxhQUFLLFlBQUwsR0FBb0IsRUFBcEI7QUFDQSxhQUFLLE9BQUwsR0FBZSxJQUFmOztBQUVBOzs7O0FBSUEsYUFBSyxPQUFMLEdBQWUsQ0FBZjtBQUNIOztBQUVEOzs7Ozs7OzsrQkFJTyxLLEVBQU87QUFDVixnQkFBSSxDQUFDLEtBQUssY0FBVixFQUEwQjtBQUN0QixxQkFBSyxRQUFMLENBQWMsS0FBZDtBQUNIOztBQUVELGlCQUFLLGNBQUwsQ0FBb0IsTUFBcEIsQ0FBMkIsTUFBTSxFQUFqQzs7QUFFQSxpQkFBSyxrQkFBTCxDQUF3QixLQUF4Qjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7O0FBRUQ7Ozs7Ozs7Z0NBSVEsRSxFQUFJO0FBQ1IsZ0JBQUksS0FBSyxjQUFULEVBQXlCO0FBQ3JCLHFCQUFLLGNBQUwsQ0FBb0IsT0FBcEIsQ0FBNEIsRUFBNUI7QUFDSDtBQUNELG1CQUFPLElBQVA7QUFDSDs7QUFFRDs7Ozs7Ozs7K0JBS08sSSxFQUFNLEssRUFBTztBQUNoQixnQkFBSSxzQkFBWSxJQUFaLENBQUosRUFBdUI7QUFDbkIscUJBQUssWUFBTCxDQUFrQixJQUFsQixDQUF1QixFQUFDLE1BQU0sc0JBQVksSUFBWixDQUFQLEVBQTBCLE9BQU8sS0FBakMsRUFBdkI7QUFDSDs7QUFFRCxtQkFBTyxJQUFQO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7O3dDQVFnQixhLEVBQWUsTSxFQUFRO0FBQ25DLGdCQUFJLEtBQUssT0FBTCxLQUFpQixDQUFyQixFQUF3QjtBQUNwQiw4QkFBYyx1QkFBYSxlQUEzQixFQUE0QyxTQUE1QyxDQUFzRCxNQUF0RDtBQUNILGFBRkQsTUFFTztBQUNILDhCQUFjLHVCQUFhLG9CQUEzQixFQUFpRCxTQUFqRCxDQUEyRCxNQUEzRDtBQUNIO0FBQ0o7OzsrQ0FFc0I7QUFDbkIsZ0JBQUksTUFBTSxLQUFLLFdBQUwsQ0FBaUIsSUFBM0I7O0FBRUEsaUJBQUssWUFBTCxDQUFrQixPQUFsQixDQUEwQixlQUFPO0FBQzdCLHVCQUFPLE1BQU0sSUFBSSxJQUFWLEdBQWlCLEdBQWpCLElBQXdCLElBQUksS0FBSixJQUFhLEVBQXJDLENBQVA7QUFDSCxhQUZEOztBQUlBLG1CQUFPLEdBQVA7QUFDSDs7OzRDQUVtQjtBQUNoQixtQkFBTyxlQUFlLEtBQUssb0JBQUwsRUFBZixDQUFQO0FBQ0g7OztpQ0FFUSxFLEVBQUk7QUFDVCxnQkFBTSxnQkFBZ0IsS0FBSyxpQkFBTCxFQUF0Qjs7QUFFQSxnQkFBSSxpQkFBaUIsT0FBTyxjQUFjLFNBQTFDLEVBQXFEO0FBQ2pELHFCQUFLLGNBQUwsR0FBc0IsY0FBYyxPQUFwQztBQUNBO0FBQ0g7O0FBRUQsaUJBQUssY0FBTCxHQUFzQiw0QkFBa0I7QUFDcEMsd0JBQVEscUJBQVcsUUFBWCxFQUFxQixLQUFLLE9BQUwsQ0FBYSxNQUFsQyxFQUEwQyxLQUFLLFlBQS9DLENBRDRCO0FBRXBDLDBCQUFVLHFCQUFXLFVBQVgsRUFBdUIsS0FBSyxPQUFMLENBQWEsUUFBcEMsRUFBOEMsS0FBSyxZQUFuRCxDQUYwQjtBQUdwQywwQkFBVSxLQUFLLFNBSHFCO0FBSXBDLDRCQUFZLEtBQUs7QUFKbUIsYUFBbEIsQ0FBdEI7O0FBT0EsMkJBQWUsS0FBSyxvQkFBTCxFQUFmLElBQThDO0FBQzFDLDJCQUFXLEVBRCtCO0FBRTFDLHlCQUFTLEtBQUs7QUFGNEIsYUFBOUM7QUFJSDs7O2lEQUVnQztBQUFBLGdCQUFiLEVBQWEsUUFBYixFQUFhO0FBQUEsZ0JBQVQsTUFBUyxRQUFULE1BQVM7O0FBQzdCLGdCQUFNLGFBQWEsRUFBbkI7QUFDQSxpQkFBSyxXQUFMLENBQWlCLE9BQWpCLENBQXlCLGVBQU87QUFDNUIsMkJBQVcsSUFBSSxJQUFmLElBQXVCLE9BQU8sUUFBUCxDQUFnQixTQUFoQixDQUEwQixJQUFJLElBQTlCLENBQXZCO0FBQ0gsYUFGRDs7QUFJQSxnQkFBTSxXQUFXO0FBQ2IsNkJBQWEsS0FBSztBQURMLGFBQWpCOztBQUlBLGlCQUFLLGNBQUwsQ0FBb0IsSUFBcEIsQ0FBeUIsRUFBekIsRUFBNkIsUUFBN0IsRUFBdUMsVUFBdkM7QUFDSDs7Ozs7O2tCQUdVLFEiLCJmaWxlIjoiTWF0ZXJpYWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVmaW5pdGlvbnMgZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgU2hhZGVyUHJvZ3JhbSBmcm9tICcuLi9TaGFkZXJQcm9ncmFtJztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcbmltcG9ydCBTaGFkZXIgZnJvbSAnLi4vU2hhZGVyJztcblxuaW1wb3J0ICcuLi9yZW5kZXJlclBsdWdpbnMvQ29tbW9uUGx1Z2luJztcbmltcG9ydCAnLi4vcmVuZGVyZXJQbHVnaW5zL1RyYW5zcGFyZW50UGx1Z2luJztcblxuY29uc3QgY2FjaGVkUHJvZ3JhbXMgPSB7fTtcblxuLyoqXG4gKiDQkdCw0LfQvtCy0YvQuSDQutC70LDRgdGBINC00LvRjyDQvNCw0YLQtdGA0LjQsNC70L7QslxuICovXG5jbGFzcyBNYXRlcmlhbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSBbXTtcbiAgICAgICAgdGhpcy5fdW5pZm9ybXMgPSBbe1xuICAgICAgICAgICAgbmFtZTogJ3VDb2xvckFscGhhJyxcbiAgICAgICAgICAgIHR5cGU6ICcxZidcbiAgICAgICAgfV07XG5cbiAgICAgICAgdGhpcy5fZGVmaW5pdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5fc2hhZGVyID0gbnVsbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/RgNC+0LfRgNCw0YfQvdC+0YHRgtGMINC+0LHRitC10LrRgtCwINC+0YLRgNC40YHQvtCy0LDQvdC90L7Qs9C+INGBINC/0L7QvNC+0YnRjNGOINC00LDQvdC90L7QuSDQvNCw0YLQtdGA0LjQsNC70LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3BhY2l0eSA9IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRiNC10LnQtNC10YDQvdGD0Y4g0L/RgNC+0LPRgNCw0LzQvNGDXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAgICAgKi9cbiAgICBlbmFibGUoc3RhdGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zaGFkZXJQcm9ncmFtKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0uZW5hYmxlKHN0YXRlLmdsKTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtQmluZChzdGF0ZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7RgtC60LvRjtGH0LDQtdGCINGI0LXQudC00LXRgNC90YPRjiDQv9GA0L7Qs9GA0LDQvNC80YNcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICBkaXNhYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl9zaGFkZXJQcm9ncmFtKSB7XG4gICAgICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtLmRpc2FibGUoZ2wpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCU0L7QsdCw0LLQu9GP0LXRgiBkZWZpbml0aW9ucyDQsiDQutC+0LQg0YjQtdC50LTQtdGA0L7Qsi4g0JLRgdC1INC00L7QsdCw0LLQu9C10L3QuNGPINC00L7Qu9C20L3RiyDQsdGL0YLRjCDRgdC00LXQu9Cw0L3RiyDQtNC+INC/0LXRgNCy0L7QuSDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjQuC5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICAgICAqIEBwYXJhbSB7TnVtYmVyIHwgU3RyaW5nfSB2YWx1ZVxuICAgICAqL1xuICAgIGRlZmluZSh0eXBlLCB2YWx1ZSkge1xuICAgICAgICBpZiAoZGVmaW5pdGlvbnNbdHlwZV0pIHtcbiAgICAgICAgICAgIHRoaXMuX2RlZmluaXRpb25zLnB1c2goe3R5cGU6IGRlZmluaXRpb25zW3R5cGVdLCB2YWx1ZTogdmFsdWV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQt9GL0LLQsNC10YLRgdGPINC+0LHRitC10LrRgtC+0Lwg0LjRgdC/0L7Qu9GM0LfRg9GO0YnRg9GOINC00LDQvdC90YvQuSDQvNCw0YLQtdGA0LjQsNC7LFxuICAgICAqINGH0YLQvtCx0Ysg0L7Qv9GA0LXQtNC10LvQuNGC0Ywg0Log0LrQsNC60L7QvNGDINGC0LjQv9GDINGA0LXQvdC00LXRgNCwINC/0YDQuNC90LDQtNC70LXQttC40YIg0L7QsdGK0LXQutGCLlxuICAgICAqINCh0LDQvNC+0LUg0L/RgNC+0YHRgtC+0LUg0YDQsNC30LTQtdC70LXQvdC40LU6INC90LAg0L/RgNC+0LfRgNCw0YfQvdGL0LUg0Lgg0L3QtdGCLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHJlbmRlclBsdWdpbnNcbiAgICAgKiBAcGFyYW0ge09iamVjdDNEfSBvYmplY3RcbiAgICAgKi9cbiAgICB0eXBpZnlGb3JSZW5kZXIocmVuZGVyUGx1Z2lucywgb2JqZWN0KSB7XG4gICAgICAgIGlmICh0aGlzLm9wYWNpdHkgPT09IDEpIHtcbiAgICAgICAgICAgIHJlbmRlclBsdWdpbnNbbGliQ29uc3RhbnRzLkNPTU1PTl9SRU5ERVJFUl0uYWRkT2JqZWN0KG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZW5kZXJQbHVnaW5zW2xpYkNvbnN0YW50cy5UUkFOU1BBUkVOVF9SRU5ERVJFUl0uYWRkT2JqZWN0KG9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfZ2V0Q2FjaGVkUHJvZ3JhbUtleSgpIHtcbiAgICAgICAgbGV0IGtleSA9IHRoaXMuY29uc3RydWN0b3IubmFtZTtcblxuICAgICAgICB0aGlzLl9kZWZpbml0aW9ucy5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICAgICAgICBrZXkgKz0gJzonICsgZGVmLnR5cGUgKyAnOicgKyAoZGVmLnZhbHVlIHx8ICcnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG5cbiAgICBfZ2V0Q2FjaGVkUHJvZ3JhbSgpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFByb2dyYW1zW3RoaXMuX2dldENhY2hlZFByb2dyYW1LZXkoKV07XG4gICAgfVxuXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgY29uc3QgY2FjaGVkUHJvZ3JhbSA9IHRoaXMuX2dldENhY2hlZFByb2dyYW0oKTtcblxuICAgICAgICBpZiAoY2FjaGVkUHJvZ3JhbSAmJiBnbCA9PT0gY2FjaGVkUHJvZ3JhbS5nbENvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0gPSBjYWNoZWRQcm9ncmFtLnByb2dyYW07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtID0gbmV3IFNoYWRlclByb2dyYW0oe1xuICAgICAgICAgICAgdmVydGV4OiBuZXcgU2hhZGVyKCd2ZXJ0ZXgnLCB0aGlzLl9zaGFkZXIudmVydGV4LCB0aGlzLl9kZWZpbml0aW9ucyksXG4gICAgICAgICAgICBmcmFnbWVudDogbmV3IFNoYWRlcignZnJhZ21lbnQnLCB0aGlzLl9zaGFkZXIuZnJhZ21lbnQsIHRoaXMuX2RlZmluaXRpb25zKSxcbiAgICAgICAgICAgIHVuaWZvcm1zOiB0aGlzLl91bmlmb3JtcyxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuX2F0dHJpYnV0ZXNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2FjaGVkUHJvZ3JhbXNbdGhpcy5fZ2V0Q2FjaGVkUHJvZ3JhbUtleSgpXSA9IHtcbiAgICAgICAgICAgIGdsQ29udGV4dDogZ2wsXG4gICAgICAgICAgICBwcm9ncmFtOiB0aGlzLl9zaGFkZXJQcm9ncmFtXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgX3NoYWRlclByb2dyYW1CaW5kKHtnbCwgb2JqZWN0fSkge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0ge307XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgYXR0cmlidXRlc1tvYmoubmFtZV0gPSBvYmplY3QuZ2VvbWV0cnkuZ2V0QnVmZmVyKG9iai5uYW1lKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdW5pZm9ybXMgPSB7XG4gICAgICAgICAgICB1Q29sb3JBbHBoYTogdGhpcy5vcGFjaXR5XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbS5iaW5kKGdsLCB1bmlmb3JtcywgYXR0cmlidXRlcyk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXRlcmlhbDtcbiJdfQ==

@@ -85,2 +85,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvTXVsdGlTcHJpdGVNYXRlcmlhbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7OztJQU9NLG1CO0FBQ0YsbUNBQWM7QUFBQTs7QUFDVixhQUFLLFNBQUwsR0FBaUIsQ0FBakI7QUFDQSxhQUFLLFFBQUwsR0FBZ0IsSUFBaEI7Ozs7OztBQU1BLGFBQUssSUFBTCxHQUFZLHVCQUFhLHFCQUF6QjtBQUNIOzs7Ozs7Ozs7O21DQU1VLE8sRUFBUztBQUNoQixpQkFBSyxRQUFMLEdBQWdCLE9BQWhCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7O3FDQU1ZO0FBQ1QsbUJBQU8sS0FBSyxRQUFaO0FBQ0g7OztxQ0FFMkI7QUFBQSxnQkFBcEIsRUFBb0IsUUFBcEIsRUFBb0I7QUFBQSxnQkFBaEIsYUFBZ0IsUUFBaEIsYUFBZ0I7O0FBQ3hCLDBCQUFjLElBQWQsQ0FBbUIsRUFBbkIsRUFBdUI7QUFDbkIsNEJBQVksS0FBSztBQURFLGFBQXZCOztBQUlBLGdCQUFJLEtBQUssUUFBVCxFQUFtQjtBQUNmLHFCQUFLLFFBQUwsQ0FBYyxNQUFkLENBQXFCLEVBQXJCO0FBQ0g7QUFDSjs7O2tDQUVTLENBQUU7Ozs7OztrQkFHRCxtQiIsImZpbGUiOiJNdWx0aVNwcml0ZU1hdGVyaWFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCc0LDRgtC10YDQuNCw0Lsg0LTQu9GPINC80YPQu9GM0YLQuNGB0L/RgNCw0LnRgtC+0LIuINCe0L3QsCDQvdC1INC90LDRgdC70LXQtNGD0Y7RgtGB0Y8g0L7RgiB7QGxpbmsgTWF0ZXJpYWx9XG4gKiDQuCDQstGL0L/QvtC70L3Rj9C10YIg0YLQvtC70YzQutC+INGB0LLRj9C30YvQstCw0L3QuNC1INGI0LXQudC00LXRgNCwINGBINGD0L3QuNGE0L7RgNC80LDQvNC4LlxuICog0J7RgdGC0LDQstC70LXQvdCwINC00LvRjyDQtdC00LjQvdC+0L7QsdGA0LDQt9C40Y8g0YHQuNC90YLQsNC60YHQuNGB0LAuXG4gKi9cbmNsYXNzIE11bHRpU3ByaXRlTWF0ZXJpYWwge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNtb290aGluZyA9IDE7XG4gICAgICAgIHRoaXMuX3RleHR1cmUgPSBudWxsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0LzQsNGC0LXRgNC40LDQu9CwXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuTVVMVElfU1BSSVRFX01BVEVSSUFMO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGC0LXQutGB0YLRg9GA0YMg0LTQu9GPINGB0L/RgNCw0LnRgtCwXG4gICAgICogQHBhcmFtIHtUZXh0dXJlfSB0ZXh0dXJlXG4gICAgICovXG4gICAgc2V0VGV4dHVyZSh0ZXh0dXJlKSB7XG4gICAgICAgIHRoaXMuX3RleHR1cmUgPSB0ZXh0dXJlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGC0LXQutGD0YnRg9GOINGC0LXQutGB0YLRg9GA0YNcbiAgICAgKiBAcmV0dXJucyB7P1RleHR1cmV9XG4gICAgICovXG4gICAgZ2V0VGV4dHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHR1cmU7XG4gICAgfVxuXG4gICAgZW5hYmxlKHtnbCwgc2hhZGVyUHJvZ3JhbX0pIHtcbiAgICAgICAgc2hhZGVyUHJvZ3JhbS5iaW5kKGdsLCB7XG4gICAgICAgICAgICB1U21vb3RoaW5nOiB0aGlzLnNtb290aGluZ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5fdGV4dHVyZSkge1xuICAgICAgICAgICAgdGhpcy5fdGV4dHVyZS5lbmFibGUoZ2wpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzYWJsZSgpIHt9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE11bHRpU3ByaXRlTWF0ZXJpYWw7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvTXVsdGlTcHJpdGVNYXRlcmlhbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7OztBQUVBOzs7Ozs7SUFLTSxtQjtBQUNGLG1DQUFjO0FBQUE7O0FBQ1YsYUFBSyxTQUFMLEdBQWlCLENBQWpCO0FBQ0EsYUFBSyxRQUFMLEdBQWdCLElBQWhCOztBQUVBOzs7O0FBSUEsYUFBSyxJQUFMLEdBQVksdUJBQWEscUJBQXpCO0FBQ0g7O0FBRUQ7Ozs7Ozs7O21DQUlXLE8sRUFBUztBQUNoQixpQkFBSyxRQUFMLEdBQWdCLE9BQWhCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7QUFFRDs7Ozs7OztxQ0FJYTtBQUNULG1CQUFPLEtBQUssUUFBWjtBQUNIOzs7cUNBRTJCO0FBQUEsZ0JBQXBCLEVBQW9CLFFBQXBCLEVBQW9CO0FBQUEsZ0JBQWhCLGFBQWdCLFFBQWhCLGFBQWdCOztBQUN4QiwwQkFBYyxJQUFkLENBQW1CLEVBQW5CLEVBQXVCO0FBQ25CLDRCQUFZLEtBQUs7QUFERSxhQUF2Qjs7QUFJQSxnQkFBSSxLQUFLLFFBQVQsRUFBbUI7QUFDZixxQkFBSyxRQUFMLENBQWMsTUFBZCxDQUFxQixFQUFyQjtBQUNIO0FBQ0o7OztrQ0FFUyxDQUFFOzs7Ozs7a0JBR0QsbUIiLCJmaWxlIjoiTXVsdGlTcHJpdGVNYXRlcmlhbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcblxuLyoqXG4gKiDQnNCw0YLQtdGA0LjQsNC7INC00LvRjyDQvNGD0LvRjNGC0LjRgdC/0YDQsNC50YLQvtCyLiDQntC90LAg0L3QtSDQvdCw0YHQu9C10LTRg9GO0YLRgdGPINC+0YIge0BsaW5rIE1hdGVyaWFsfVxuICog0Lgg0LLRi9C/0L7Qu9C90Y/QtdGCINGC0L7Qu9GM0LrQviDRgdCy0Y/Qt9GL0LLQsNC90LjQtSDRiNC10LnQtNC10YDQsCDRgSDRg9C90LjRhNC+0YDQvNCw0LzQuC5cbiAqINCe0YHRgtCw0LLQu9C10L3QsCDQtNC70Y8g0LXQtNC40L3QvtC+0LHRgNCw0LfQuNGPINGB0LjQvdGC0LDQutGB0LjRgdCwLlxuICovXG5jbGFzcyBNdWx0aVNwcml0ZU1hdGVyaWFsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zbW9vdGhpbmcgPSAxO1xuICAgICAgICB0aGlzLl90ZXh0dXJlID0gbnVsbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC80LDRgtC10YDQuNCw0LvQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLk1VTFRJX1NQUklURV9NQVRFUklBTDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgtC10LrRgdGC0YPRgNGDINC00LvRjyDRgdC/0YDQsNC50YLQsFxuICAgICAqIEBwYXJhbSB7VGV4dHVyZX0gdGV4dHVyZVxuICAgICAqL1xuICAgIHNldFRleHR1cmUodGV4dHVyZSkge1xuICAgICAgICB0aGlzLl90ZXh0dXJlID0gdGV4dHVyZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0YPRjiDRgtC10LrRgdGC0YPRgNGDXG4gICAgICogQHJldHVybnMgez9UZXh0dXJlfVxuICAgICAqL1xuICAgIGdldFRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0dXJlO1xuICAgIH1cblxuICAgIGVuYWJsZSh7Z2wsIHNoYWRlclByb2dyYW19KSB7XG4gICAgICAgIHNoYWRlclByb2dyYW0uYmluZChnbCwge1xuICAgICAgICAgICAgdVNtb290aGluZzogdGhpcy5zbW9vdGhpbmdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUuZW5hYmxlKGdsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc2FibGUoKSB7fVxufVxuXG5leHBvcnQgZGVmYXVsdCBNdWx0aVNwcml0ZU1hdGVyaWFsO1xuIl19

@@ -95,2 +95,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvU3ByaXRlTWF0ZXJpYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7SUFPTSxjO0FBQ0YsOEJBQWM7QUFBQTs7QUFDVixhQUFLLE9BQUwsR0FBZSxDQUFmO0FBQ0EsYUFBSyxTQUFMLEdBQWlCLENBQWpCO0FBQ0EsYUFBSyxRQUFMLEdBQWdCLElBQWhCOzs7Ozs7QUFNQSxhQUFLLElBQUwsR0FBWSx1QkFBYSxlQUF6QjtBQUNIOzs7Ozs7Ozs7O21DQU1VLE8sRUFBUztBQUNoQixpQkFBSyxRQUFMLEdBQWdCLE9BQWhCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7O3FDQU1ZO0FBQ1QsbUJBQU8sS0FBSyxRQUFaO0FBQ0g7OztxQ0FFNkM7QUFBQSxnQkFBdEMsRUFBc0MsUUFBdEMsRUFBc0M7QUFBQSxnQkFBbEMsTUFBa0MsUUFBbEMsTUFBa0M7QUFBQSxnQkFBMUIsYUFBMEIsUUFBMUIsYUFBMEI7QUFBQSxnQkFBWCxRQUFXLFFBQVgsUUFBVzs7QUFDMUMsZ0JBQU0sT0FBTyxTQUFTLE9BQVQsRUFBYjs7QUFFQSwwQkFBYyxJQUFkLENBQW1CLEVBQW5CLEVBQXVCO0FBQ25CLDZCQUFhLEtBQUssT0FEQztBQUVuQiw0QkFBWSxLQUFLLFNBRkU7QUFHbkIsMkJBQVcsQ0FBQyxLQUFLLENBQUwsSUFBVSxDQUFYLEVBQWMsS0FBSyxDQUFMLElBQVUsQ0FBeEIsQ0FIUTtBQUluQix5QkFBUyxPQUFPLE1BSkc7QUFLbkIsd0JBQVEsT0FBTyxLQUxJO0FBTW5CLDJCQUFXLENBQUMsT0FBTyxXQUFQLENBQW1CLEVBQW5CLENBQUQsRUFBeUIsT0FBTyxXQUFQLENBQW1CLEVBQW5CLENBQXpCLEVBQWlELE9BQU8sV0FBUCxDQUFtQixFQUFuQixDQUFqRDtBQU5RLGFBQXZCOztBQVNBLGdCQUFJLEtBQUssUUFBVCxFQUFtQjtBQUNmLHFCQUFLLFFBQUwsQ0FBYyxNQUFkLENBQXFCLEVBQXJCO0FBQ0g7QUFDSjs7O2tDQUVTLENBQUU7Ozs7OztrQkFHRCxjIiwiZmlsZSI6IlNwcml0ZU1hdGVyaWFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCc0LDRgtC10YDQuNCw0Lsg0LTQu9GPINGB0L/RgNCw0LnRgtC+0LIuINCe0L3QsCDQvdC1INC90LDRgdC70LXQtNGD0Y7RgtGB0Y8g0L7RgiB7QGxpbmsgTWF0ZXJpYWx9XG4gKiDQuCDQstGL0L/QvtC70L3Rj9C10YIg0YLQvtC70YzQutC+INGB0LLRj9C30YvQstCw0L3QuNC1INGI0LXQudC00LXRgNCwINGBINGD0L3QuNGE0L7RgNC80LDQvNC4LlxuICog0J7RgdGC0LDQstC70LXQvdCwINC00LvRjyDQtdC00LjQvdC+0L7QsdGA0LDQt9C40Y8g0YHQuNC90YLQsNC60YHQuNGB0LAuXG4gKi9cbmNsYXNzIFNwcml0ZU1hdGVyaWFsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vcGFjaXR5ID0gMTtcbiAgICAgICAgdGhpcy5zbW9vdGhpbmcgPSAwO1xuICAgICAgICB0aGlzLl90ZXh0dXJlID0gbnVsbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC80LDRgtC10YDQuNCw0LvQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLlNQUklURV9NQVRFUklBTDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgtC10LrRgdGC0YPRgNGDINC00LvRjyDRgdC/0YDQsNC50YLQsFxuICAgICAqIEBwYXJhbSB7VGV4dHVyZX0gdGV4dHVyZVxuICAgICAqL1xuICAgIHNldFRleHR1cmUodGV4dHVyZSkge1xuICAgICAgICB0aGlzLl90ZXh0dXJlID0gdGV4dHVyZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0YPRjiDRgtC10LrRgdGC0YPRgNGDXG4gICAgICogQHJldHVybnMgez9UZXh0dXJlfVxuICAgICAqL1xuICAgIGdldFRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0dXJlO1xuICAgIH1cblxuICAgIGVuYWJsZSh7Z2wsIG9iamVjdCwgc2hhZGVyUHJvZ3JhbSwgcmVuZGVyZXJ9KSB7XG4gICAgICAgIGNvbnN0IHNpemUgPSByZW5kZXJlci5nZXRTaXplKCk7XG5cbiAgICAgICAgc2hhZGVyUHJvZ3JhbS5iaW5kKGdsLCB7XG4gICAgICAgICAgICB1Q29sb3JBbHBoYTogdGhpcy5vcGFjaXR5LFxuICAgICAgICAgICAgdVNtb290aGluZzogdGhpcy5zbW9vdGhpbmcsXG4gICAgICAgICAgICB1SGFsZlNpemU6IFtzaXplWzBdIC8gMiwgc2l6ZVsxXSAvIDJdLFxuICAgICAgICAgICAgdU9mZnNldDogb2JqZWN0Lm9mZnNldCxcbiAgICAgICAgICAgIHVTY2FsZTogb2JqZWN0LnNjYWxlLFxuICAgICAgICAgICAgdVBvc2l0aW9uOiBbb2JqZWN0LndvcmxkTWF0cml4WzEyXSwgb2JqZWN0LndvcmxkTWF0cml4WzEzXSwgb2JqZWN0LndvcmxkTWF0cml4WzE0XV1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUuZW5hYmxlKGdsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc2FibGUoKSB7fVxufVxuXG5leHBvcnQgZGVmYXVsdCBTcHJpdGVNYXRlcmlhbDtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRlcmlhbHMvU3ByaXRlTWF0ZXJpYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7QUFFQTs7Ozs7O0lBS00sYztBQUNGLDhCQUFjO0FBQUE7O0FBQ1YsYUFBSyxPQUFMLEdBQWUsQ0FBZjtBQUNBLGFBQUssU0FBTCxHQUFpQixDQUFqQjtBQUNBLGFBQUssUUFBTCxHQUFnQixJQUFoQjs7QUFFQTs7OztBQUlBLGFBQUssSUFBTCxHQUFZLHVCQUFhLGVBQXpCO0FBQ0g7O0FBRUQ7Ozs7Ozs7O21DQUlXLE8sRUFBUztBQUNoQixpQkFBSyxRQUFMLEdBQWdCLE9BQWhCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7QUFFRDs7Ozs7OztxQ0FJYTtBQUNULG1CQUFPLEtBQUssUUFBWjtBQUNIOzs7cUNBRTZDO0FBQUEsZ0JBQXRDLEVBQXNDLFFBQXRDLEVBQXNDO0FBQUEsZ0JBQWxDLE1BQWtDLFFBQWxDLE1BQWtDO0FBQUEsZ0JBQTFCLGFBQTBCLFFBQTFCLGFBQTBCO0FBQUEsZ0JBQVgsUUFBVyxRQUFYLFFBQVc7O0FBQzFDLGdCQUFNLE9BQU8sU0FBUyxPQUFULEVBQWI7O0FBRUEsMEJBQWMsSUFBZCxDQUFtQixFQUFuQixFQUF1QjtBQUNuQiw2QkFBYSxLQUFLLE9BREM7QUFFbkIsNEJBQVksS0FBSyxTQUZFO0FBR25CLDJCQUFXLENBQUMsS0FBSyxDQUFMLElBQVUsQ0FBWCxFQUFjLEtBQUssQ0FBTCxJQUFVLENBQXhCLENBSFE7QUFJbkIseUJBQVMsT0FBTyxNQUpHO0FBS25CLHdCQUFRLE9BQU8sS0FMSTtBQU1uQiwyQkFBVyxDQUFDLE9BQU8sV0FBUCxDQUFtQixFQUFuQixDQUFELEVBQXlCLE9BQU8sV0FBUCxDQUFtQixFQUFuQixDQUF6QixFQUFpRCxPQUFPLFdBQVAsQ0FBbUIsRUFBbkIsQ0FBakQ7QUFOUSxhQUF2Qjs7QUFTQSxnQkFBSSxLQUFLLFFBQVQsRUFBbUI7QUFDZixxQkFBSyxRQUFMLENBQWMsTUFBZCxDQUFxQixFQUFyQjtBQUNIO0FBQ0o7OztrQ0FFUyxDQUFFOzs7Ozs7a0JBR0QsYyIsImZpbGUiOiJTcHJpdGVNYXRlcmlhbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcblxuLyoqXG4gKiDQnNCw0YLQtdGA0LjQsNC7INC00LvRjyDRgdC/0YDQsNC50YLQvtCyLiDQntC90LAg0L3QtSDQvdCw0YHQu9C10LTRg9GO0YLRgdGPINC+0YIge0BsaW5rIE1hdGVyaWFsfVxuICog0Lgg0LLRi9C/0L7Qu9C90Y/QtdGCINGC0L7Qu9GM0LrQviDRgdCy0Y/Qt9GL0LLQsNC90LjQtSDRiNC10LnQtNC10YDQsCDRgSDRg9C90LjRhNC+0YDQvNCw0LzQuC5cbiAqINCe0YHRgtCw0LLQu9C10L3QsCDQtNC70Y8g0LXQtNC40L3QvtC+0LHRgNCw0LfQuNGPINGB0LjQvdGC0LDQutGB0LjRgdCwLlxuICovXG5jbGFzcyBTcHJpdGVNYXRlcmlhbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMub3BhY2l0eSA9IDE7XG4gICAgICAgIHRoaXMuc21vb3RoaW5nID0gMDtcbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IG51bGw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQvNCw0YLQtdGA0LjQsNC70LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5TUFJJVEVfTUFURVJJQUw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YLQtdC60YHRgtGD0YDRgyDQtNC70Y8g0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge1RleHR1cmV9IHRleHR1cmVcbiAgICAgKi9cbiAgICBzZXRUZXh0dXJlKHRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IHRleHR1cmU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLQtdC60YPRidGD0Y4g0YLQtdC60YHRgtGD0YDRg1xuICAgICAqIEByZXR1cm5zIHs/VGV4dHVyZX1cbiAgICAgKi9cbiAgICBnZXRUZXh0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dHVyZTtcbiAgICB9XG5cbiAgICBlbmFibGUoe2dsLCBvYmplY3QsIHNoYWRlclByb2dyYW0sIHJlbmRlcmVyfSkge1xuICAgICAgICBjb25zdCBzaXplID0gcmVuZGVyZXIuZ2V0U2l6ZSgpO1xuXG4gICAgICAgIHNoYWRlclByb2dyYW0uYmluZChnbCwge1xuICAgICAgICAgICAgdUNvbG9yQWxwaGE6IHRoaXMub3BhY2l0eSxcbiAgICAgICAgICAgIHVTbW9vdGhpbmc6IHRoaXMuc21vb3RoaW5nLFxuICAgICAgICAgICAgdUhhbGZTaXplOiBbc2l6ZVswXSAvIDIsIHNpemVbMV0gLyAyXSxcbiAgICAgICAgICAgIHVPZmZzZXQ6IG9iamVjdC5vZmZzZXQsXG4gICAgICAgICAgICB1U2NhbGU6IG9iamVjdC5zY2FsZSxcbiAgICAgICAgICAgIHVQb3NpdGlvbjogW29iamVjdC53b3JsZE1hdHJpeFsxMl0sIG9iamVjdC53b3JsZE1hdHJpeFsxM10sIG9iamVjdC53b3JsZE1hdHJpeFsxNF1dXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLl90ZXh0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLl90ZXh0dXJlLmVuYWJsZShnbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNhYmxlKCkge31cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3ByaXRlTWF0ZXJpYWw7XG4iXX0=

@@ -66,2 +66,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL0JveC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7Ozs7O0lBT00sRzs7Ozs7OztBQU1GLGVBQVksR0FBWixFQUFpQixHQUFqQixFQUFzQjtBQUFBOztBQUNsQixTQUFLLEdBQUwsR0FBVyxPQUFPLGVBQUssTUFBTCxFQUFsQjtBQUNBLFNBQUssR0FBTCxHQUFXLE9BQU8sZUFBSyxNQUFMLEVBQWxCO0FBQ0g7Ozs7Ozs7Ozs7O2tDQU9hLEssRUFBTztBQUNqQixhQUFPLE1BQU0sQ0FBTixJQUFXLEtBQUssR0FBTCxDQUFTLENBQVQsQ0FBWCxJQUEwQixNQUFNLENBQU4sSUFBVyxLQUFLLEdBQUwsQ0FBUyxDQUFULENBQXJDLElBQ0gsTUFBTSxDQUFOLElBQVcsS0FBSyxHQUFMLENBQVMsQ0FBVCxDQURSLElBQ3VCLE1BQU0sQ0FBTixJQUFXLEtBQUssR0FBTCxDQUFTLENBQVQsQ0FEbEMsSUFFSCxNQUFNLENBQU4sSUFBVyxLQUFLLEdBQUwsQ0FBUyxDQUFULENBRlIsSUFFdUIsTUFBTSxDQUFOLElBQVcsS0FBSyxHQUFMLENBQVMsQ0FBVCxDQUZ6QztBQUdIOzs7Ozs7Ozs7a0NBTWEsSyxFQUFPO0FBQ2pCLHFCQUFLLEdBQUwsQ0FBUyxLQUFLLEdBQWQsRUFBbUIsS0FBSyxHQUF4QixFQUE2QixLQUE3QjtBQUNBLHFCQUFLLEdBQUwsQ0FBUyxLQUFLLEdBQWQsRUFBbUIsS0FBSyxHQUF4QixFQUE2QixLQUE3Qjs7QUFFQSxhQUFPLElBQVA7QUFDSDs7Ozs7O2tCQUdVLEciLCJmaWxlIjoiQm94LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2ZWMzfSBmcm9tICdnbC1tYXRyaXgnO1xuXG4vKipcbiAqINCe0LHRitC10LrRgiDQv9Cw0YDQsNC70LvQtdC70LXQv9C40L/QtdC00LBcbiAqXG4gKiDQktC30Y/RgtC+INC40LcgW3RocmVlLmpzXShodHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2Jsb2IvbWFzdGVyL3NyYy9tYXRoL0JveDMuanMpXG4gKi9cbmNsYXNzIEJveCB7XG4gICAgLyoqXG4gICAgICog0J/QsNGA0LDQu9C70LXQu9C10L/QuNC/0LXQtCDQt9Cw0LTQsNGR0YLRgdGPINC00LLRg9C80Y8g0YLQvtGH0LrQsNC80LhcbiAgICAgKiBAcGFyYW0ge3ZlYzN9IG1pbiDQnNC40L3QuNC80LDQu9GM0L3QsNGPXG4gICAgICogQHBhcmFtIHt2ZWMzfSBtYXgg0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWluLCBtYXgpIHtcbiAgICAgICAgdGhpcy5taW4gPSBtaW4gfHwgdmVjMy5jcmVhdGUoKTtcbiAgICAgICAgdGhpcy5tYXggPSBtYXggfHwgdmVjMy5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIg0YHQvtC00LXRgNC20LjRgiDQu9C4INC/0LDRgNCw0LvQu9C10LvQtdC/0LjQv9C10LQg0LfQsNC00LDQvdC90YPRjiDRgtC+0YfQutGDXG4gICAgICogQHBhcmFtIHt2ZWMzfSBwb2ludFxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufVxuICAgICAqL1xuICAgIGNvbnRhaW5zUG9pbnQocG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIHBvaW50WzBdID4gdGhpcy5taW5bMF0gJiYgcG9pbnRbMF0gPCB0aGlzLm1heFswXSAmJlxuICAgICAgICAgICAgcG9pbnRbMV0gPiB0aGlzLm1pblsxXSAmJiBwb2ludFsxXSA8IHRoaXMubWF4WzFdICYmXG4gICAgICAgICAgICBwb2ludFsyXSA+IHRoaXMubWluWzJdICYmIHBvaW50WzJdIDwgdGhpcy5tYXhbMl07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KDQsNGB0YjQuNGA0Y/QtdGCINC/0LDRgNCw0LvQu9C10LvQtdC/0LjQv9C10LQg0LTQviDQt9Cw0LTQsNC90L3QvtC5INGC0L7Rh9C60LhcbiAgICAgKiBAcGFyYW0ge3ZlYzN9IHBvaW50XG4gICAgICovXG4gICAgZXhwYW5kQnlQb2ludChwb2ludCkge1xuICAgICAgICB2ZWMzLm1pbih0aGlzLm1pbiwgdGhpcy5taW4sIHBvaW50KTtcbiAgICAgICAgdmVjMy5tYXgodGhpcy5tYXgsIHRoaXMubWF4LCBwb2ludCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCb3g7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL0JveC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBRUE7Ozs7OztJQUtNLEc7QUFDRjs7Ozs7O0FBS0EsZUFBWSxHQUFaLEVBQWlCLEdBQWpCLEVBQXNCO0FBQUE7O0FBQ2xCLFNBQUssR0FBTCxHQUFXLE9BQU8sZUFBSyxNQUFMLEVBQWxCO0FBQ0EsU0FBSyxHQUFMLEdBQVcsT0FBTyxlQUFLLE1BQUwsRUFBbEI7QUFDSDs7QUFFRDs7Ozs7Ozs7O2tDQUtjLEssRUFBTztBQUNqQixhQUFPLE1BQU0sQ0FBTixJQUFXLEtBQUssR0FBTCxDQUFTLENBQVQsQ0FBWCxJQUEwQixNQUFNLENBQU4sSUFBVyxLQUFLLEdBQUwsQ0FBUyxDQUFULENBQXJDLElBQ0gsTUFBTSxDQUFOLElBQVcsS0FBSyxHQUFMLENBQVMsQ0FBVCxDQURSLElBQ3VCLE1BQU0sQ0FBTixJQUFXLEtBQUssR0FBTCxDQUFTLENBQVQsQ0FEbEMsSUFFSCxNQUFNLENBQU4sSUFBVyxLQUFLLEdBQUwsQ0FBUyxDQUFULENBRlIsSUFFdUIsTUFBTSxDQUFOLElBQVcsS0FBSyxHQUFMLENBQVMsQ0FBVCxDQUZ6QztBQUdIOztBQUVEOzs7Ozs7O2tDQUljLEssRUFBTztBQUNqQixxQkFBSyxHQUFMLENBQVMsS0FBSyxHQUFkLEVBQW1CLEtBQUssR0FBeEIsRUFBNkIsS0FBN0I7QUFDQSxxQkFBSyxHQUFMLENBQVMsS0FBSyxHQUFkLEVBQW1CLEtBQUssR0FBeEIsRUFBNkIsS0FBN0I7O0FBRUEsYUFBTyxJQUFQO0FBQ0g7Ozs7OztrQkFHVSxHIiwiZmlsZSI6IkJveC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dmVjM30gZnJvbSAnZ2wtbWF0cml4JztcblxuLyoqXG4gKiDQntCx0YrQtdC60YIg0L/QsNGA0LDQu9C70LXQu9C10L/QuNC/0LXQtNCwXG4gKlxuICog0JLQt9GP0YLQviDQuNC3IFt0aHJlZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL21hc3Rlci9zcmMvbWF0aC9Cb3gzLmpzKVxuICovXG5jbGFzcyBCb3gge1xuICAgIC8qKlxuICAgICAqINCf0LDRgNCw0LvQu9C10LvQtdC/0LjQv9C10LQg0LfQsNC00LDRkdGC0YHRjyDQtNCy0YPQvNGPINGC0L7Rh9C60LDQvNC4XG4gICAgICogQHBhcmFtIHt2ZWMzfSBtaW4g0JzQuNC90LjQvNCw0LvRjNC90LDRj1xuICAgICAqIEBwYXJhbSB7dmVjM30gbWF4INCc0LDQutGB0LjQvNCw0LvRjNC90LDRj1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1pbiwgbWF4KSB7XG4gICAgICAgIHRoaXMubWluID0gbWluIHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIHRoaXMubWF4ID0gbWF4IHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINGB0L7QtNC10YDQttC40YIg0LvQuCDQv9Cw0YDQsNC70LvQtdC70LXQv9C40L/QtdC0INC30LDQtNCw0L3QvdGD0Y4g0YLQvtGH0LrRg1xuICAgICAqIEBwYXJhbSB7dmVjM30gcG9pbnRcbiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAgICAgKi9cbiAgICBjb250YWluc1BvaW50KHBvaW50KSB7XG4gICAgICAgIHJldHVybiBwb2ludFswXSA+IHRoaXMubWluWzBdICYmIHBvaW50WzBdIDwgdGhpcy5tYXhbMF0gJiZcbiAgICAgICAgICAgIHBvaW50WzFdID4gdGhpcy5taW5bMV0gJiYgcG9pbnRbMV0gPCB0aGlzLm1heFsxXSAmJlxuICAgICAgICAgICAgcG9pbnRbMl0gPiB0aGlzLm1pblsyXSAmJiBwb2ludFsyXSA8IHRoaXMubWF4WzJdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LDRgdGI0LjRgNGP0LXRgiDQv9Cw0YDQsNC70LvQtdC70LXQv9C40L/QtdC0INC00L4g0LfQsNC00LDQvdC90L7QuSDRgtC+0YfQutC4XG4gICAgICogQHBhcmFtIHt2ZWMzfSBwb2ludFxuICAgICAqL1xuICAgIGV4cGFuZEJ5UG9pbnQocG9pbnQpIHtcbiAgICAgICAgdmVjMy5taW4odGhpcy5taW4sIHRoaXMubWluLCBwb2ludCk7XG4gICAgICAgIHZlYzMubWF4KHRoaXMubWF4LCB0aGlzLm1heCwgcG9pbnQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQm94O1xuIl19

@@ -102,2 +102,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL0ZydXN0dW0uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7SUFPTSxPOzs7OztBQUlGLHFCQUFZLE1BQVosRUFBb0I7QUFBQTs7QUFDaEIsYUFBSyxNQUFMLEdBQWMsTUFBZDs7QUFFQSxZQUFJLENBQUMsS0FBSyxNQUFOLElBQWdCLEtBQUssTUFBTCxDQUFZLE1BQVosS0FBdUIsQ0FBM0MsRUFBOEM7QUFDMUMsaUJBQUssTUFBTCxHQUFjLENBQ1YscUJBRFUsRUFFVixxQkFGVSxFQUdWLHFCQUhVLEVBSVYscUJBSlUsRUFLVixxQkFMVSxFQU1WLHFCQU5VLENBQWQ7QUFRSDtBQUNKOzs7Ozs7Ozs7O3NDQU1hLEMsRUFBRztBQUNiLGdCQUFNLFNBQVMsS0FBSyxNQUFwQjs7QUFFQSxtQkFBTyxDQUFQLEVBQVUsYUFBVixDQUF3QixFQUFFLENBQUYsSUFBTyxFQUFFLENBQUYsQ0FBL0IsRUFBcUMsRUFBRSxDQUFGLElBQU8sRUFBRSxDQUFGLENBQTVDLEVBQWtELEVBQUUsRUFBRixJQUFRLEVBQUUsQ0FBRixDQUExRCxFQUFnRSxFQUFFLEVBQUYsSUFBUSxFQUFFLEVBQUYsQ0FBeEUsRUFBK0UsU0FBL0U7QUFDQSxtQkFBTyxDQUFQLEVBQVUsYUFBVixDQUF3QixFQUFFLENBQUYsSUFBTyxFQUFFLENBQUYsQ0FBL0IsRUFBcUMsRUFBRSxDQUFGLElBQU8sRUFBRSxDQUFGLENBQTVDLEVBQWtELEVBQUUsRUFBRixJQUFRLEVBQUUsQ0FBRixDQUExRCxFQUFnRSxFQUFFLEVBQUYsSUFBUSxFQUFFLEVBQUYsQ0FBeEUsRUFBK0UsU0FBL0U7QUFDQSxtQkFBTyxDQUFQLEVBQVUsYUFBVixDQUF3QixFQUFFLENBQUYsSUFBTyxFQUFFLENBQUYsQ0FBL0IsRUFBcUMsRUFBRSxDQUFGLElBQU8sRUFBRSxDQUFGLENBQTVDLEVBQWtELEVBQUUsRUFBRixJQUFRLEVBQUUsQ0FBRixDQUEx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aXgnO1xuaW1wb3J0IFBsYW5lIGZyb20gJy4vUGxhbmUnO1xuXG4vKipcbiAqINCX0LDQtNCw0ZHRgiBmcnVzdHVtINCyINGC0YDRkdGF0LzQtdGA0L3QvtC8INC/0YDQvtGB0YLRgNCw0L3RgdGC0LLQtVxuICpcbiAqINCS0LfRj9GC0L4g0LjQtyBbdGhyZWUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvYmxvYi9tYXN0ZXIvc3JjL21hdGgvRnJ1c3R1bS5qcylcbiAqL1xuY2xhc3MgRnJ1c3R1bSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGxhbmVzINCc0LDRgdGB0LjQsiDQuNC3INGI0LXRgdGC0Lgg0L/Qu9C+0YHQutC+0YHRgtC10LksINGE0L7RgNC80LjRgNGD0Y7RidC40YUgZnJ1c3R1bVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHBsYW5lcykge1xuICAgICAgICB0aGlzLnBsYW5lcyA9IHBsYW5lcztcblxuICAgICAgICBpZiAoIXRoaXMucGxhbmVzIHx8IHRoaXMucGxhbmVzLmxlbmd0aCAhPT0gNikge1xuICAgICAgICAgICAgdGhpcy5wbGFuZXMgPSBbXG4gICAgICAgICAgICAgICAgbmV3IFBsYW5lKCksXG4gICAgICAgICAgICAgICAgbmV3IFBsYW5lKCksXG4gICAgICAgICAgICAgICAgbmV3IFBsYW5lKCksXG4gICAgICAgICAgICAgICAgbmV3IFBsYW5lKCksXG4gICAgICAgICAgICAgICAgbmV3IFBsYW5lKCksXG4gICAgICAgICAgICAgICAgbmV3IFBsYW5lKClcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQv9C70L7RgdC60L7RgdGC0LggZnJ1c3R1bSDQsiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40LUg0YEg0LzQsNGC0YDQuNGG0LXQuVxuICAgICAqIEBwYXJhbSB7bWF0NH0gbVxuICAgICAqL1xuICAgIHNldEZyb21NYXRyaXgobSkge1xuICAgICAgICBjb25zdCBwbGFuZXMgPSB0aGlzLnBsYW5lcztcblxuICAgICAgICBwbGFuZXNbMF0uc2V0Q29tcG9uZW50cyhtWzNdIC0gbVswXSwgbVs3XSAtIG1bNF0sIG1bMTFdIC0gbVs4XSwgbVsxNV0gLSBtWzEyXSkubm9ybWFsaXplKCk7XG4gICAgICAgIHBsYW5lc1sxXS5zZXRDb21wb25lbnRzKG1bM10gKyBtWzBdLCBtWzddICsgbVs0XSwgbVsxMV0gKyBtWzhdLCBtWzE1XSArIG1bMTJdKS5ub3JtYWxpemUoKTtcbiAgICAgICAgcGxhbmVzWzJdLnNldENvbXBvbmVudHMobVszXSArIG1bMV0sIG1bN10gKyBtWzVdLCBtWzExXSArIG1bOV0sIG1bMTVdICsgbVsxM10pLm5vcm1hbGl6ZSgpO1xuICAgICAgICBwbGFuZXNbM10uc2V0Q29tcG9uZW50cyhtWzNdIC0gbVsxXSwgbVs3XSAtIG1bNV0sIG1bMTFdIC0gbVs5XSwgbVsxNV0gLSBtWzEzXSkubm9ybWFsaXplKCk7XG4gICAgICAgIHBsYW5lc1s0XS5zZXRDb21wb25lbnRzKG1bM10gLSBtWzJdLCBtWzddIC0gbVs2XSwgbVsxMV0gLSBtWzEwXSwgbVsxNV0gLSBtWzE0XSkubm9ybWFsaXplKCk7XG4gICAgICAgIHBsYW5lc1s1XS5zZXRDb21wb25lbnRzKG1bM10gKyBtWzJdLCBtWzddICsgbVs2XSwgbVsxMV0gKyBtWzEwXSwgbVsxNV0gKyBtWzE0XSkubm9ybWFsaXplKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCLCDQvdCw0YXQvtC00LjRgtGB0Y8g0LvQuCB7QGxpbmsgQm94fSDQsiDQvtCx0LvQsNGB0YLQuCBmcnVzdHVtXG4gICAgICogQHBhcmFtIHtCb3h9IGJveFxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufVxuICAgICAqL1xuICAgIGludGVyc2VjdHNCb3goYm94KSB7XG4gICAgICAgIGNvbnN0IHAxID0gdmVjMy5jcmVhdGUoKTtcbiAgICAgICAgY29uc3QgcDIgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBwbGFuZXMgPSB0aGlzLnBsYW5lcztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDY7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgcGxhbmUgPSBwbGFuZXNbaV07XG5cbiAgICAgICAgICAgIHAxWzBdID0gcGxhbmUubm9ybWFsWzBdID4gMCA/IGJveC5taW5bMF0gOiBib3gubWF4WzBdO1xuICAgICAgICAgICAgcDJbMF0gPSBwbGFuZS5ub3JtYWxbMF0gPiAwID8gYm94Lm1heFswXSA6IGJveC5taW5bMF07XG4gICAgICAgICAgICBwMVsxXSA9IHBsYW5lLm5vcm1hbFsxXSA+IDAgPyBib3gubWluWzFdIDogYm94Lm1heFsxXTtcbiAgICAgICAgICAgIHAyWzFdID0gcGxhbmUubm9ybWFsWzFdID4gMCA/IGJveC5tYXhbMV0gOiBib3gubWluWzFdO1xuICAgICAgICAgICAgcDFbMl0gPSBwbGFuZS5ub3JtYWxbMl0gPiAwID8gYm94Lm1pblsyXSA6IGJveC5tYXhbMl07XG4gICAgICAgICAgICBwMlsyXSA9IHBsYW5lLm5vcm1hbFsyXSA+IDAgPyBib3gubWF4WzJdIDogYm94Lm1pblsyXTtcblxuICAgICAgICAgICAgY29uc3QgZDEgPSBwbGFuZS5kaXN0YW5jZVRvUG9pbnQocDEpO1xuICAgICAgICAgICAgY29uc3QgZDIgPSBwbGFuZS5kaXN0YW5jZVRvUG9pbnQocDIpO1xuXG4gICAgICAgICAgICAvLyBpZiBib3RoIG91dHNpZGUgcGxhbmUsIG5vIGludGVyc2VjdGlvblxuICAgICAgICAgICAgaWYgKGQxIDwgMCAmJiBkMiA8IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZydXN0dW07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL0ZydXN0dW0uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7Ozs7QUFFQTs7Ozs7O0lBS00sTztBQUNGOzs7O0FBR0EscUJBQVksTUFBWixFQUFvQjtBQUFBOztBQUNoQixhQUFLLE1BQUwsR0FBYyxNQUFkOztBQUVBLFlBQUksQ0FBQyxLQUFLLE1BQU4sSUFBZ0IsS0FBSyxNQUFMLENBQVksTUFBWixLQUF1QixDQUEzQyxFQUE4QztBQUMxQyxpQkFBSyxNQUFMLEdBQWMsQ0FDVixxQkFEVSxFQUVWLHFCQUZVLEVBR1YscUJBSFUsRUFJVixxQkFKVSxFQUtWLHFCQUxVLEVBTVYscUJBTlUsQ0FBZDtBQVFIO0FBQ0o7O0FBRUQ7Ozs7Ozs7O3NDQUljLEMsRUFBRztBQUNiLGdCQUFNLFNBQVMsS0FBSyxNQUFwQjs7QUFFQSxtQkFBTyxDQUFQLEVBQVUsYUFBVixDQUF3QixFQUFFLENBQUYsSUFBTyxFQUFFLENBQUYsQ0FBL0IsRUFBcUMsRUFBRSxDQUFGLElBQU8sRUFBRSxDQUFGLENBQTVDLEVBQWtELEVBQUUsRUFBRixJQUFRLEVBQUUsQ0FBRixDQUExRCxFQUFnRSxFQUFFLEVBQUYsSUFBUSxFQUFFLEVBQUYsQ0FBeEUsRUFBK0UsU0FBL0U7QUFDQSxtQkFBTyxDQUFQLEVBQVUsYUFBVixDQUF3QixFQUFFLENBQUYsSUFBTyxFQUFFLENBQUYsQ0FBL0IsRUFBcUMsRUFBRSxDQUFGLElBQU8sRUFBRSxDQUFGLENBQTVDLEVBQWtELEVBQUUsRUFBRixJQUFRLEVBQUUsQ0FBRixDQUExRCxFQUFnRSxFQUFFLEVBQUYsSUFBUSxFQUFFLEVBQUYsQ0FBeEUsRUFBK0UsU0FBL0U7QUFDQSxtQkFBTyxDQUFQLEVBQVUsYUFBVixDQUF3QixFQUFFLENBQUYsSUFBTyxFQUFFLENBQUYsQ0FBL0IsRUFBcUMsRUFBRSxDQUFGLElBQU8sRUFBRSxDQUFGLENBQTVDLEVBQWtELEVBQUUsRUFBRixJQUFRLEVB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e3ZlYzN9IGZyb20gJ2dsLW1hdHJpeCc7XG5pbXBvcnQgUGxhbmUgZnJvbSAnLi9QbGFuZSc7XG5cbi8qKlxuICog0JfQsNC00LDRkdGCIGZydXN0dW0g0LIg0YLRgNGR0YXQvNC10YDQvdC+0Lwg0L/RgNC+0YHRgtGA0LDQvdGB0YLQstC1XG4gKlxuICog0JLQt9GP0YLQviDQuNC3IFt0aHJlZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL21hc3Rlci9zcmMvbWF0aC9GcnVzdHVtLmpzKVxuICovXG5jbGFzcyBGcnVzdHVtIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwbGFuZXMg0JzQsNGB0YHQuNCyINC40Lcg0YjQtdGB0YLQuCDQv9C70L7RgdC60L7RgdGC0LXQuSwg0YTQvtGA0LzQuNGA0YPRjtGJ0LjRhSBmcnVzdHVtXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocGxhbmVzKSB7XG4gICAgICAgIHRoaXMucGxhbmVzID0gcGxhbmVzO1xuXG4gICAgICAgIGlmICghdGhpcy5wbGFuZXMgfHwgdGhpcy5wbGFuZXMubGVuZ3RoICE9PSA2KSB7XG4gICAgICAgICAgICB0aGlzLnBsYW5lcyA9IFtcbiAgICAgICAgICAgICAgICBuZXcgUGxhbmUoKSxcbiAgICAgICAgICAgICAgICBuZXcgUGxhbmUoKSxcbiAgICAgICAgICAgICAgICBuZXcgUGxhbmUoKSxcbiAgICAgICAgICAgICAgICBuZXcgUGxhbmUoKSxcbiAgICAgICAgICAgICAgICBuZXcgUGxhbmUoKSxcbiAgICAgICAgICAgICAgICBuZXcgUGxhbmUoKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC/0LvQvtGB0LrQvtGB0YLQuCBmcnVzdHVtINCyINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjQtSDRgSDQvNCw0YLRgNC40YbQtdC5XG4gICAgICogQHBhcmFtIHttYXQ0fSBtXG4gICAgICovXG4gICAgc2V0RnJvbU1hdHJpeChtKSB7XG4gICAgICAgIGNvbnN0IHBsYW5lcyA9IHRoaXMucGxhbmVzO1xuXG4gICAgICAgIHBsYW5lc1swXS5zZXRDb21wb25lbnRzKG1bM10gLSBtWzBdLCBtWzddIC0gbVs0XSwgbVsxMV0gLSBtWzhdLCBtWzE1XSAtIG1bMTJdKS5ub3JtYWxpemUoKTtcbiAgICAgICAgcGxhbmVzWzFdLnNldENvbXBvbmVudHMobVszXSArIG1bMF0sIG1bN10gKyBtWzRdLCBtWzExXSArIG1bOF0sIG1bMTVdICsgbVsxMl0pLm5vcm1hbGl6ZSgpO1xuICAgICAgICBwbGFuZXNbMl0uc2V0Q29tcG9uZW50cyhtWzNdICsgbVsxXSwgbVs3XSArIG1bNV0sIG1bMTFdICsgbVs5XSwgbVsxNV0gKyBtWzEzXSkubm9ybWFsaXplKCk7XG4gICAgICAgIHBsYW5lc1szXS5zZXRDb21wb25lbnRzKG1bM10gLSBtWzFdLCBtWzddIC0gbVs1XSwgbVsxMV0gLSBtWzldLCBtWzE1XSAtIG1bMTNdKS5ub3JtYWxpemUoKTtcbiAgICAgICAgcGxhbmVzWzRdLnNldENvbXBvbmVudHMobVszXSAtIG1bMl0sIG1bN10gLSBtWzZdLCBtWzExXSAtIG1bMTBdLCBtWzE1XSAtIG1bMTRdKS5ub3JtYWxpemUoKTtcbiAgICAgICAgcGxhbmVzWzVdLnNldENvbXBvbmVudHMobVszXSArIG1bMl0sIG1bN10gKyBtWzZdLCBtWzExXSArIG1bMTBdLCBtWzE1XSArIG1bMTRdKS5ub3JtYWxpemUoKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIsINC90LDRhdC+0LTQuNGC0YHRjyDQu9C4IHtAbGluayBCb3h9INCyINC+0LHQu9Cw0YHRgtC4IGZydXN0dW1cbiAgICAgKiBAcGFyYW0ge0JveH0gYm94XG4gICAgICogQHJldHVybnMge0Jvb2xlYW59XG4gICAgICovXG4gICAgaW50ZXJzZWN0c0JveChib3gpIHtcbiAgICAgICAgY29uc3QgcDEgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBwMiA9IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIGNvbnN0IHBsYW5lcyA9IHRoaXMucGxhbmVzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwbGFuZSA9IHBsYW5lc1tpXTtcblxuICAgICAgICAgICAgcDFbMF0gPSBwbGFuZS5ub3JtYWxbMF0gPiAwID8gYm94Lm1pblswXSA6IGJveC5tYXhbMF07XG4gICAgICAgICAgICBwMlswXSA9IHBsYW5lLm5vcm1hbFswXSA+IDAgPyBib3gubWF4WzBdIDogYm94Lm1pblswXTtcbiAgICAgICAgICAgIHAxWzFdID0gcGxhbmUubm9ybWFsWzFdID4gMCA/IGJveC5taW5bMV0gOiBib3gubWF4WzFdO1xuICAgICAgICAgICAgcDJbMV0gPSBwbGFuZS5ub3JtYWxbMV0gPiAwID8gYm94Lm1heFsxXSA6IGJveC5taW5bMV07XG4gICAgICAgICAgICBwMVsyXSA9IHBsYW5lLm5vcm1hbFsyXSA+IDAgPyBib3gubWluWzJdIDogYm94Lm1heFsyXTtcbiAgICAgICAgICAgIHAyWzJdID0gcGxhbmUubm9ybWFsWzJdID4gMCA/IGJveC5tYXhbMl0gOiBib3gubWluWzJdO1xuXG4gICAgICAgICAgICBjb25zdCBkMSA9IHBsYW5lLmRpc3RhbmNlVG9Qb2ludChwMSk7XG4gICAgICAgICAgICBjb25zdCBkMiA9IHBsYW5lLmRpc3RhbmNlVG9Qb2ludChwMik7XG5cbiAgICAgICAgICAgIC8vIGlmIGJvdGggb3V0c2lkZSBwbGFuZSwgbm8gaW50ZXJzZWN0aW9uXG4gICAgICAgICAgICBpZiAoZDEgPCAwICYmIGQyIDwgMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRnJ1c3R1bTtcbiJdfQ==

@@ -106,2 +106,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL0xpbmUzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7SUFPTSxLOzs7Ozs7QUFLRixtQkFBWSxLQUFaLEVBQW1CLEdBQW5CLEVBQXdCO0FBQUE7O0FBQ3BCLGFBQUssS0FBTCxHQUFhLFNBQVMsZUFBSyxNQUFMLEVBQXRCO0FBQ0EsYUFBSyxHQUFMLEdBQVcsT0FBTyxlQUFLLE1BQUwsRUFBbEI7QUFDSDs7Ozs7Ozs7Ozs7OztxREFTNEIsSyxFQUFPLFcsRUFBYTtBQUM3QyxnQkFBTSxTQUFTLGVBQUssTUFBTCxFQUFmO0FBQ0EsZ0JBQU0sV0FBVyxlQUFLLE1BQUwsRUFBakI7O0FBRUEsMkJBQUssR0FBTCxDQUFTLE1BQVQsRUFBaUIsS0FBakIsRUFBd0IsS0FBSyxLQUE3QjtBQUNBLDJCQUFLLEdBQUwsQ0FBUyxRQUFULEVBQW1CLEtBQUssR0FBeEIsRUFBNkIsS0FBSyxLQUFsQzs7QUFFQSxnQkFBTSxZQUFZLGVBQUssR0FBTCxDQUFTLFFBQVQsRUFBbUIsUUFBbkIsQ0FBbEI7QUFDQSxnQkFBTSxpQkFBaUIsZUFBSyxHQUFMLENBQVMsUUFBVCxFQUFtQixNQUFuQixDQUF2Qjs7QUFFQSxnQkFBSSxJQUFJLGlCQUFpQixTQUF6Qjs7QUFFQSxnQkFBSSxXQUFKLEVBQWlCO0FBQ2Isb0JBQUksaUJBQU0sQ0FBTixFQUFTLENBQVQsRUFBWSxDQUFaLENBQUo7QUFDSDs7QUFFRCxtQkFBTyxDQUFQO0FBQ0g7Ozs7Ozs7Ozs7Ozs7NENBVW1CLEssRUFBTyxXLEVBQWEsYyxFQUFnQjtBQUNwRCxnQkFBTSxJQUFJLEtBQUssNEJBQUwsQ0FBa0MsS0FBbEMsRUFBeUMsV0FBekMsQ0FBVjs7QUFFQSxnQkFBSSxTQUFTLGtCQUFrQixlQUFLLE1BQUwsRUFBL0I7QUFDQSxxQkFBUyxLQUFLLEtBQUwsQ0FBVyxNQUFYLENBQVQ7QUFDQSwyQkFBSyxLQUFMLENBQVcsTUFBWCxFQUFtQixNQUFuQixFQUEyQixDQUEzQjtBQUNBLDJCQUFLLEdBQUwsQ0FBUyxNQUFULEVBQWlCLE1BQWpCLEVBQXlCLEtBQUssS0FBOUI7O0FBRUEsbUJBQU8sTUFBUDtBQUVIOzs7Ozs7Ozs7OzhCQU9LLGMsRUFBZ0I7QUFDbEIsZ0JBQU0sU0FBUyxrQkFBa0IsZUFBSyxNQUFMLEVBQWpDO0FBQ0EsMkJBQUssR0FBTCxDQUFTLE1BQVQsRUFBaUIsS0FBSyxHQUF0QixFQUEyQixLQUFLLEtBQWhDO0FBQ0EsbUJBQU8sTUFBUDtBQUNIOzs7Ozs7a0JBR1UsSyIsImZpbGUiOiJMaW5lMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dmVjM30gZnJvbSAnZ2wtbWF0cml4JztcbmltcG9ydCB7Y2xhbXB9IGZyb20gJy4vTWF0aC5qcyc7XG5cbi8qKlxuICog0JrQu9Cw0YHRgSDQtNC70Y8g0LvQuNC90LjQuVxuICpcbiAqINCS0LfRj9GC0L4g0LjQtyBbdGhyZWUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvYmxvYi9tYXN0ZXIvc3JjL21hdGgvTGluZTMuanMpXG4gKi9cbmNsYXNzIExpbmUzIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3ZlYzN9IHN0YXJ0INCd0LDRh9Cw0LvQvlxuICAgICAqIEBwYXJhbSB7dmVjM30gZW5kINCa0L7QvdC10YZcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzdGFydCwgZW5kKSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydCB8fCB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB0aGlzLmVuZCA9IGVuZCB8fCB2ZWMzLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0LDRgNCw0LzQtdGC0YAg0L7RgdC90L7QstCw0L3QvdGL0Lkg0L3QsCDQv9GA0L7QtdC60YbQuNC4INCx0LvQuNC20LDQudGI0LXQuSDRgtC+0YfQutC4INC6INC70LjQvdC40LguXG4gICAgICog0JXRgdC70LggY2xhbXBUb0xpbmUgPSB0cnVlLCDQstC+0LfQstGA0LDRidCw0LXRgiDQv9Cw0YDQsNC80LXRgtGAINC80LXQttC00YMgMCDQuCAxLlxuICAgICAqIEBwYXJhbSB7dmVjM30gcG9pbnRcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGNsYW1wVG9MaW5lXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKi9cbiAgICBjbG9zZXN0UG9pbnRUb1BvaW50UGFyYW1ldGVyKHBvaW50LCBjbGFtcFRvTGluZSkge1xuICAgICAgICBjb25zdCBzdGFydFAgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBzdGFydEVuZCA9IHZlYzMuY3JlYXRlKCk7XG5cbiAgICAgICAgdmVjMy5zdWIoc3RhcnRQLCBwb2ludCwgdGhpcy5zdGFydCk7XG4gICAgICAgIHZlYzMuc3ViKHN0YXJ0RW5kLCB0aGlzLmVuZCwgdGhpcy5zdGFydCk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRFbmQyID0gdmVjMy5kb3Qoc3RhcnRFbmQsIHN0YXJ0RW5kKTtcbiAgICAgICAgY29uc3Qgc3RhcnRFbmRTdGFydFAgPSB2ZWMzLmRvdChzdGFydEVuZCwgc3RhcnRQKTtcblxuICAgICAgICBsZXQgdCA9IHN0YXJ0RW5kU3RhcnRQIC8gc3RhcnRFbmQyO1xuXG4gICAgICAgIGlmIChjbGFtcFRvTGluZSkge1xuICAgICAgICAgICAgdCA9IGNsYW1wKHQsIDAsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LHQu9C40LbQsNC50YjRg9GOINGC0L7Rh9C60YMg0L3QsCDQv9GA0Y/QvNC+0Lkg0LfQsNC00LDQvdC90YPRjiDQu9C40L3QuNC10LkuINCV0YHQu9C4IGNsYW1wVG9MaW5lID0gdHJ1ZSwg0LLQvtC30LLRgNCw0YnQsNC10YIg0YLQvtGH0LrRg1xuICAgICAqINC70LXQttCw0YnRg9GOINCyINC/0YDQtdC00LXQu9Cw0YUg0LvQuNC90LjQuC5cbiAgICAgKiBAcGFyYW0ge3ZlYzN9IHBvaW50XG4gICAgICogQHBhcmFtIHtCb29sZWFufSBjbGFtcFRvTGluZVxuICAgICAqIEBwYXJhbSB7P3ZlYzN9IG9wdGlvbmFsVGFyZ2V0INCV0YHQu9C4INGD0LrQsNC30LDRgtGMINC/0LDRgNCw0LzQtdGC0YAsINGC0L4g0YDQtdC30YPQu9GM0YLQsNGCINCx0YPQtNC10YIg0LfQsNC/0LjRgdCw0L0g0LIg0L3QtdCz0L5cbiAgICAgKiBAcmV0dXJucyB7dmVjM31cbiAgICAgKi9cbiAgICBjbG9zZXN0UG9pbnRUb1BvaW50KHBvaW50LCBjbGFtcFRvTGluZSwgb3B0aW9uYWxUYXJnZXQpIHtcbiAgICAgICAgY29uc3QgdCA9IHRoaXMuY2xvc2VzdFBvaW50VG9Qb2ludFBhcmFtZXRlcihwb2ludCwgY2xhbXBUb0xpbmUpO1xuXG4gICAgICAgIGxldCByZXN1bHQgPSBvcHRpb25hbFRhcmdldCB8fCB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICByZXN1bHQgPSB0aGlzLmRlbHRhKHJlc3VsdCk7XG4gICAgICAgIHZlYzMuc2NhbGUocmVzdWx0LCByZXN1bHQsIHQpO1xuICAgICAgICB2ZWMzLmFkZChyZXN1bHQsIHJlc3VsdCwgdGhpcy5zdGFydCk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvRh9C40YLQsNC10YIg0LLQtdC60YLQvtGAINC90LDRh9Cw0LvQsCDQu9C40L3QuNC4INC40Lcg0LrQvtC90YbQsFxuICAgICAqIEBwYXJhbSB7P3ZlYzN9IG9wdGlvbmFsVGFyZ2V0INCV0YHQu9C4INGD0LrQsNC30LDRgtGMINC/0LDRgNCw0LzQtdGC0YAsINGC0L4g0YDQtdC30YPQu9GM0YLQsNGCINCx0YPQtNC10YIg0LfQsNC/0LjRgdCw0L0g0LIg0L3QtdCz0L5cbiAgICAgKiBAcmV0dXJucyB7dmVjM31cbiAgICAgKi9cbiAgICBkZWx0YShvcHRpb25hbFRhcmdldCkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBvcHRpb25hbFRhcmdldCB8fCB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB2ZWMzLnN1YihyZXN1bHQsIHRoaXMuZW5kLCB0aGlzLnN0YXJ0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpbmUzO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL0xpbmUzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFFQTs7Ozs7O0lBS00sSztBQUNGOzs7OztBQUlBLG1CQUFZLEtBQVosRUFBbUIsR0FBbkIsRUFBd0I7QUFBQTs7QUFDcEIsYUFBSyxLQUFMLEdBQWEsU0FBUyxlQUFLLE1BQUwsRUFBdEI7QUFDQSxhQUFLLEdBQUwsR0FBVyxPQUFPLGVBQUssTUFBTCxFQUFsQjtBQUNIOztBQUVEOzs7Ozs7Ozs7OztxREFPNkIsSyxFQUFPLFcsRUFBYTtBQUM3QyxnQkFBTSxTQUFTLGVBQUssTUFBTCxFQUFmO0FBQ0EsZ0JBQU0sV0FBVyxlQUFLLE1BQUwsRUFBakI7O0FBRUEsMkJBQUssR0FBTCxDQUFTLE1BQVQsRUFBaUIsS0FBakIsRUFBd0IsS0FBSyxLQUE3QjtBQUNBLDJCQUFLLEdBQUwsQ0FBUyxRQUFULEVBQW1CLEtBQUssR0FBeEIsRUFBNkIsS0FBSyxLQUFsQzs7QUFFQSxnQkFBTSxZQUFZLGVBQUssR0FBTCxDQUFTLFFBQVQsRUFBbUIsUUFBbkIsQ0FBbEI7QUFDQSxnQkFBTSxpQkFBaUIsZUFBSyxHQUFMLENBQVMsUUFBVCxFQUFtQixNQUFuQixDQUF2Qjs7QUFFQSxnQkFBSSxJQUFJLGlCQUFpQixTQUF6Qjs7QUFFQSxnQkFBSSxXQUFKLEVBQWlCO0FBQ2Isb0JBQUksaUJBQU0sQ0FBTixFQUFTLENBQVQsRUFBWSxDQUFaLENBQUo7QUFDSDs7QUFFRCxtQkFBTyxDQUFQO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7OzRDQVFvQixLLEVBQU8sVyxFQUFhLGMsRUFBZ0I7QUFDcEQsZ0JBQU0sSUFBSSxLQUFLLDRCQUFMLENBQWtDLEtBQWxDLEVBQXlDLFdBQXpDLENBQVY7O0FBRUEsZ0JBQUksU0FBUyxrQkFBa0IsZUFBSyxNQUFMLEVBQS9CO0FBQ0EscUJBQVMsS0FBSyxLQUFMLENBQVcsTUFBWCxDQUFUO0FBQ0EsMkJBQUssS0FBTCxDQUFXLE1BQVgsRUFBbUIsTUFBbkIsRUFBMkIsQ0FBM0I7QUFDQSwyQkFBSyxHQUFMLENBQVMsTUFBVCxFQUFpQixNQUFqQixFQUF5QixLQUFLLEtBQTlCOztBQUVBLG1CQUFPLE1BQVA7QUFFSDs7QUFFRDs7Ozs7Ozs7OEJBS00sYyxFQUFnQjtBQUNsQixnQkFBTSxTQUFTLGtCQUFrQixlQUFLLE1BQUwsRUFBakM7QUFDQSwyQkFBSyxHQUFMLENBQVMsTUFBVCxFQUFpQixLQUFLLEdBQXRCLEVBQTJCLEtBQUssS0FBaEM7QUFDQSxtQkFBTyxNQUFQO0FBQ0g7Ozs7OztrQkFHVSxLIiwiZmlsZSI6IkxpbmUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2ZWMzfSBmcm9tICdnbC1tYXRyaXgnO1xuaW1wb3J0IHtjbGFtcH0gZnJvbSAnLi9NYXRoLmpzJztcblxuLyoqXG4gKiDQmtC70LDRgdGBINC00LvRjyDQu9C40L3QuNC5XG4gKlxuICog0JLQt9GP0YLQviDQuNC3IFt0aHJlZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL21hc3Rlci9zcmMvbWF0aC9MaW5lMy5qcylcbiAqL1xuY2xhc3MgTGluZTMge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7dmVjM30gc3RhcnQg0J3QsNGH0LDQu9C+XG4gICAgICogQHBhcmFtIHt2ZWMzfSBlbmQg0JrQvtC90LXRhlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0IHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIHRoaXMuZW5kID0gZW5kIHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/QsNGA0LDQvNC10YLRgCDQvtGB0L3QvtCy0LDQvdC90YvQuSDQvdCwINC/0YDQvtC10LrRhtC40Lgg0LHQu9C40LbQsNC50YjQtdC5INGC0L7Rh9C60Lgg0Log0LvQuNC90LjQuC5cbiAgICAgKiDQldGB0LvQuCBjbGFtcFRvTGluZSA9IHRydWUsINCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0LDRgNCw0LzQtdGC0YAg0LzQtdC20LTRgyAwINC4IDEuXG4gICAgICogQHBhcmFtIHt2ZWMzfSBwb2ludFxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gY2xhbXBUb0xpbmVcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgICAqL1xuICAgIGNsb3Nlc3RQb2ludFRvUG9pbnRQYXJhbWV0ZXIocG9pbnQsIGNsYW1wVG9MaW5lKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0UCA9IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIGNvbnN0IHN0YXJ0RW5kID0gdmVjMy5jcmVhdGUoKTtcblxuICAgICAgICB2ZWMzLnN1YihzdGFydFAsIHBvaW50LCB0aGlzLnN0YXJ0KTtcbiAgICAgICAgdmVjMy5zdWIoc3RhcnRFbmQsIHRoaXMuZW5kLCB0aGlzLnN0YXJ0KTtcblxuICAgICAgICBjb25zdCBzdGFydEVuZDIgPSB2ZWMzLmRvdChzdGFydEVuZCwgc3RhcnRFbmQpO1xuICAgICAgICBjb25zdCBzdGFydEVuZFN0YXJ0UCA9IHZlYzMuZG90KHN0YXJ0RW5kLCBzdGFydFApO1xuXG4gICAgICAgIGxldCB0ID0gc3RhcnRFbmRTdGFydFAgLyBzdGFydEVuZDI7XG5cbiAgICAgICAgaWYgKGNsYW1wVG9MaW5lKSB7XG4gICAgICAgICAgICB0ID0gY2xhbXAodCwgMCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQsdC70LjQttCw0LnRiNGD0Y4g0YLQvtGH0LrRgyDQvdCwINC/0YDRj9C80L7QuSDQt9Cw0LTQsNC90L3Rg9GOINC70LjQvdC40LXQuS4g0JXRgdC70LggY2xhbXBUb0xpbmUgPSB0cnVlLCDQstC+0LfQstGA0LDRidCw0LXRgiDRgtC+0YfQutGDXG4gICAgICog0LvQtdC20LDRidGD0Y4g0LIg0L/RgNC10LTQtdC70LDRhSDQu9C40L3QuNC4LlxuICAgICAqIEBwYXJhbSB7dmVjM30gcG9pbnRcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGNsYW1wVG9MaW5lXG4gICAgICogQHBhcmFtIHs/dmVjM30gb3B0aW9uYWxUYXJnZXQg0JXRgdC70Lgg0YPQutCw0LfQsNGC0Ywg0L/QsNGA0LDQvNC10YLRgCwg0YLQviDRgNC10LfRg9C70YzRgtCw0YIg0LHRg9C00LXRgiDQt9Cw0L/QuNGB0LDQvSDQsiDQvdC10LPQvlxuICAgICAqIEByZXR1cm5zIHt2ZWMzfVxuICAgICAqL1xuICAgIGNsb3Nlc3RQb2ludFRvUG9pbnQocG9pbnQsIGNsYW1wVG9MaW5lLCBvcHRpb25hbFRhcmdldCkge1xuICAgICAgICBjb25zdCB0ID0gdGhpcy5jbG9zZXN0UG9pbnRUb1BvaW50UGFyYW1ldGVyKHBvaW50LCBjbGFtcFRvTGluZSk7XG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IG9wdGlvbmFsVGFyZ2V0IHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZGVsdGEocmVzdWx0KTtcbiAgICAgICAgdmVjMy5zY2FsZShyZXN1bHQsIHJlc3VsdCwgdCk7XG4gICAgICAgIHZlYzMuYWRkKHJlc3VsdCwgcmVzdWx0LCB0aGlzLnN0YXJ0KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9GH0LjRgtCw0LXRgiDQstC10LrRgtC+0YAg0L3QsNGH0LDQu9CwINC70LjQvdC40Lgg0LjQtyDQutC+0L3RhtCwXG4gICAgICogQHBhcmFtIHs/dmVjM30gb3B0aW9uYWxUYXJnZXQg0JXRgdC70Lgg0YPQutCw0LfQsNGC0Ywg0L/QsNGA0LDQvNC10YLRgCwg0YLQviDRgNC10LfRg9C70YzRgtCw0YIg0LHRg9C00LXRgiDQt9Cw0L/QuNGB0LDQvSDQsiDQvdC10LPQvlxuICAgICAqIEByZXR1cm5zIHt2ZWMzfVxuICAgICAqL1xuICAgIGRlbHRhKG9wdGlvbmFsVGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG9wdGlvbmFsVGFyZ2V0IHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIHZlYzMuc3ViKHJlc3VsdCwgdGhpcy5lbmQsIHRoaXMuc3RhcnQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGluZTM7XG4iXX0=

@@ -50,2 +50,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL01hdGguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFpQmdCLEssR0FBQSxLO1FBc0JBLFEsR0FBQSxROzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF0QlQsU0FBUyxLQUFULENBQWUsQ0FBZixFQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QjtBQUMzQixRQUFJLElBQUksQ0FBUixFQUFXO0FBQ1AsZUFBTyxDQUFQO0FBQ0g7O0FBRUQsUUFBSSxJQUFJLENBQVIsRUFBVztBQUNQLGVBQU8sQ0FBUDtBQUNIOztBQUVELFdBQU8sQ0FBUDtBQUNIOzs7Ozs7Ozs7Ozs7QUFZTSxTQUFTLFFBQVQsQ0FBa0IsT0FBbEIsRUFBMkI7QUFDOUIsV0FBTyxVQUFVLEtBQUssRUFBZixHQUFvQixHQUEzQjtBQUNIIiwiZmlsZSI6Ik1hdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBuYW1lc3BhY2UgTWF0aFxuICovXG5cbi8qKlxuICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/QtdGA0LXQtNCw0L3QvdC+0LUg0LfQvdCw0YfQtdC90LjQtSwg0LXRgdC70Lgg0L7QvdC+INC/0L7Qv9Cw0LTQsNC10YIg0LIg0L/QtdGA0LXQtNCw0L3QvdGL0LUg0LPRgNCw0L3QuNGG0YssXG4gKiDQuNC70Lgg0LHQu9C40LbQsNC50YjRg9GOINC40Lcg0LPRgNCw0L3QuNGGLlxuICpcbiAqIEBtZW1iZXJvZiBNYXRoXG4gKiBAbmFtZSBjbGFtcFxuICogQGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IHgg0JfQvdCw0YfQtdC90LjQtVxuICogQHBhcmFtIHtOdW1iZXJ9IGEg0JzQuNC90LjQvNCw0LvRjNC90L7QtSDQt9C90LDRh9C10L3QuNC1XG4gKiBAcGFyYW0ge051bWJlcn0gYiDQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtVxuICogQHJldHVybnMge051bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYW1wKHgsIGEsIGIpIHtcbiAgICBpZiAoeCA8IGEpIHtcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxuXG4gICAgaWYgKHggPiBiKSB7XG4gICAgICAgIHJldHVybiBiO1xuICAgIH1cblxuICAgIHJldHVybiB4O1xufVxuXG4vKipcbiAqINCf0LXRgNC10LLQvtC00LjRgiDQs9GA0LDQtNGD0YHRiyDQsiDRgNCw0LTQuNCw0L3Ri1xuICpcbiAqIEBtZW1iZXJvZiBNYXRoXG4gKiBAbmFtZSBkZWdUb1JhZFxuICogQGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGRlZ3JlZXNcbiAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWdUb1JhZChkZWdyZWVzKSB7XG4gICAgcmV0dXJuIGRlZ3JlZXMgKiBNYXRoLlBJIC8gMTgwO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL01hdGguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFpQmdCLEssR0FBQSxLO1FBc0JBLFEsR0FBQSxRO0FBdkNoQjs7OztBQUlBOzs7Ozs7Ozs7Ozs7O0FBYU8sU0FBUyxLQUFULENBQWUsQ0FBZixFQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QjtBQUMzQixRQUFJLElBQUksQ0FBUixFQUFXO0FBQ1AsZUFBTyxDQUFQO0FBQ0g7O0FBRUQsUUFBSSxJQUFJLENBQVIsRUFBVztBQUNQLGVBQU8sQ0FBUDtBQUNIOztBQUVELFdBQU8sQ0FBUDtBQUNIOztBQUVEOzs7Ozs7Ozs7O0FBVU8sU0FBUyxRQUFULENBQWtCLE9BQWxCLEVBQTJCO0FBQzlCLFdBQU8sVUFBVSxLQUFLLEVBQWYsR0FBb0IsR0FBM0I7QUFDSCIsImZpbGUiOiJNYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbmFtZXNwYWNlIE1hdGhcbiAqL1xuXG4vKipcbiAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC/0LXRgNC10LTQsNC90L3QvtC1INC30L3QsNGH0LXQvdC40LUsINC10YHQu9C4INC+0L3QviDQv9C+0L/QsNC00LDQtdGCINCyINC/0LXRgNC10LTQsNC90L3Ri9C1INCz0YDQsNC90LjRhtGLLFxuICog0LjQu9C4INCx0LvQuNC20LDQudGI0YPRjiDQuNC3INCz0YDQsNC90LjRhi5cbiAqXG4gKiBAbWVtYmVyb2YgTWF0aFxuICogQG5hbWUgY2xhbXBcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSB4INCX0L3QsNGH0LXQvdC40LVcbiAqIEBwYXJhbSB7TnVtYmVyfSBhINCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtVxuICogQHBhcmFtIHtOdW1iZXJ9IGIg0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LVcbiAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGFtcCh4LCBhLCBiKSB7XG4gICAgaWYgKHggPCBhKSB7XG4gICAgICAgIHJldHVybiBhO1xuICAgIH1cblxuICAgIGlmICh4ID4gYikge1xuICAgICAgICByZXR1cm4gYjtcbiAgICB9XG5cbiAgICByZXR1cm4geDtcbn1cblxuLyoqXG4gKiDQn9C10YDQtdCy0L7QtNC40YIg0LPRgNCw0LTRg9GB0Ysg0LIg0YDQsNC00LjQsNC90YtcbiAqXG4gKiBAbWVtYmVyb2YgTWF0aFxuICogQG5hbWUgZGVnVG9SYWRcbiAqIEBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBkZWdyZWVzXG4gKiBAcmV0dXJucyB7TnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVnVG9SYWQoZGVncmVlcykge1xuICAgIHJldHVybiBkZWdyZWVzICogTWF0aC5QSSAvIDE4MDtcbn1cbiJdfQ==

@@ -80,2 +80,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL1BsYW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7SUFPTSxLOzs7Ozs7QUFLRixpQkFBWSxNQUFaLEVBQW9CLFFBQXBCLEVBQThCO0FBQUE7O0FBQzFCLFNBQUssTUFBTCxHQUFjLFVBQVUsZUFBSyxNQUFMLEVBQXhCO0FBQ0EsU0FBSyxRQUFMLEdBQWdCLFlBQVksQ0FBNUI7QUFDSDs7Ozs7Ozs7Ozs7b0NBT2UsSyxFQUFPO0FBQ25CLGFBQU8sZUFBSyxHQUFMLENBQVMsS0FBSyxNQUFkLEVBQXNCLEtBQXRCLElBQStCLEtBQUssUUFBM0M7QUFDSDs7Ozs7Ozs7Ozs7O2tDQVNhLEMsRUFBRyxDLEVBQUcsQyxFQUFHLEMsRUFBRztBQUN0QixxQkFBSyxHQUFMLENBQVMsS0FBSyxNQUFkLEVBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsV0FBSyxRQUFMLEdBQWdCLENBQWhCO0FBQ0EsYUFBTyxJQUFQO0FBQ0g7Ozs7Ozs7O2dDQUtXO0FBQ1IsVUFBTSxzQkFBc0IsTUFBTSxlQUFLLEdBQUwsQ0FBUyxLQUFLLE1BQWQsQ0FBbEM7QUFDQSxxQkFBSyxLQUFMLENBQVcsS0FBSyxNQUFoQixFQUF3QixLQUFLLE1BQTdCLEVBQXFDLG1CQUFyQztBQUNBLFdBQUssUUFBTCxJQUFpQixtQkFBakI7QUFDQSxhQUFPLElBQVA7QUFDSDs7Ozs7O2tCQUdVLEsiLCJmaWxlIjoiUGxhbmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3ZlYzN9IGZyb20gJ2dsLW1hdHJpeCc7XG5cbi8qKlxuICog0JfQsNC00LDRkdGCINC/0LvQvtGB0LrQvtGB0YLRjCDQsiDRgtGA0ZHRhdC80LXRgNC90L7QvCDQv9GA0L7RgdGC0YDQsNC90YHRgtCy0LVcbiAqXG4gKiDQktC30Y/RgtC+INC40LcgW3RocmVlLmpzXShodHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2Jsb2IvbWFzdGVyL3NyYy9tYXRoL1BsYW5lLmpzKVxuICovXG5jbGFzcyBQbGFuZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHt2ZWMzfSBub3JtYWwg0J3QvtGA0LzQsNC70Ywg0Log0L/Qu9C+0YHQutC+0YHRgtC4XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IFtjb25zdGFudD0wXSDQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDRgdC80LXRidC10L3QuNC1INC/0LvQvtGB0LrQvtGB0YLQuCDQstC00L7Qu9GMINC90L7RgNC80LDQu9C4XG4gICAgICovXG4gICAgY29uc3RydWN0b3Iobm9ybWFsLCBjb25zdGFudCkge1xuICAgICAgICB0aGlzLm5vcm1hbCA9IG5vcm1hbCB8fCB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB0aGlzLmNvbnN0YW50ID0gY29uc3RhbnQgfHwgMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNGJ0LXRgiDQvNC40L3QuNC80LDQu9GM0L3QvtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1INC80LXQttC00YMg0YLQvtGH0LrQvtC5INC4INC/0LvQvtGB0LrQvtGB0YLRjNGOXG4gICAgICogQHBhcmFtIHt2ZWMzfSBwb2ludFxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAgICovXG4gICAgZGlzdGFuY2VUb1BvaW50KHBvaW50KSB7XG4gICAgICAgIHJldHVybiB2ZWMzLmRvdCh0aGlzLm5vcm1hbCwgcG9pbnQpICsgdGhpcy5jb25zdGFudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQt9C90LDRh9C10L3QuNGPINC90L7RgNC80LDQu9C4INC4INGB0LzQtdGI0LXQvdC40LUg0L/Qu9C+0YHQutC+0YHRgtC4XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHhcbiAgICAgKiBAcGFyYW0ge051bWJlcn0geVxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB6XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHdcbiAgICAgKi9cbiAgICBzZXRDb21wb25lbnRzKHgsIHksIHosIHcpIHtcbiAgICAgICAgdmVjMy5zZXQodGhpcy5ub3JtYWwsIHgsIHksIHopO1xuICAgICAgICB0aGlzLmNvbnN0YW50ID0gdztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J3QvtGA0LzQsNC70LjQt9GD0LXRgiDQvdC+0YDQvNCw0LvRjCDQv9C70L7RgdC60L7RgdGC0Lgg0Lgg0L/RgNC40LLQvtC00LjRgiDQsiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40LUg0LXRkSDQutC+0L3RgdGC0LDQvdGC0YNcbiAgICAgKi9cbiAgICBub3JtYWxpemUoKSB7XG4gICAgICAgIGNvbnN0IGludmVyc2VOb3JtYWxMZW5ndGggPSAxLjAgLyB2ZWMzLmxlbih0aGlzLm5vcm1hbCk7XG4gICAgICAgIHZlYzMuc2NhbGUodGhpcy5ub3JtYWwsIHRoaXMubm9ybWFsLCBpbnZlcnNlTm9ybWFsTGVuZ3RoKTtcbiAgICAgICAgdGhpcy5jb25zdGFudCAqPSBpbnZlcnNlTm9ybWFsTGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBsYW5lO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXRoL1BsYW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFFQTs7Ozs7O0lBS00sSztBQUNGOzs7OztBQUlBLGlCQUFZLE1BQVosRUFBb0IsUUFBcEIsRUFBOEI7QUFBQTs7QUFDMUIsU0FBSyxNQUFMLEdBQWMsVUFBVSxlQUFLLE1BQUwsRUFBeEI7QUFDQSxTQUFLLFFBQUwsR0FBZ0IsWUFBWSxDQUE1QjtBQUNIOztBQUVEOzs7Ozs7Ozs7b0NBS2dCLEssRUFBTztBQUNuQixhQUFPLGVBQUssR0FBTCxDQUFTLEtBQUssTUFBZCxFQUFzQixLQUF0QixJQUErQixLQUFLLFFBQTNDO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7a0NBT2MsQyxFQUFHLEMsRUFBRyxDLEVBQUcsQyxFQUFHO0FBQ3RCLHFCQUFLLEdBQUwsQ0FBUyxLQUFLLE1BQWQsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsQ0FBNUI7QUFDQSxXQUFLLFFBQUwsR0FBZ0IsQ0FBaEI7QUFDQSxhQUFPLElBQVA7QUFDSDs7QUFFRDs7Ozs7O2dDQUdZO0FBQ1IsVUFBTSxzQkFBc0IsTUFBTSxlQUFLLEdBQUwsQ0FBUyxLQUFLLE1BQWQsQ0FBbEM7QUFDQSxxQkFBSyxLQUFMLENBQVcsS0FBSyxNQUFoQixFQUF3QixLQUFLLE1BQTdCLEVBQXFDLG1CQUFyQztBQUNBLFdBQUssUUFBTCxJQUFpQixtQkFBakI7QUFDQSxhQUFPLElBQVA7QUFDSDs7Ozs7O2tCQUdVLEsiLCJmaWxlIjoiUGxhbmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3ZlYzN9IGZyb20gJ2dsLW1hdHJpeCc7XG5cbi8qKlxuICog0JfQsNC00LDRkdGCINC/0LvQvtGB0LrQvtGB0YLRjCDQsiDRgtGA0ZHRhdC80LXRgNC90L7QvCDQv9GA0L7RgdGC0YDQsNC90YHRgtCy0LVcbiAqXG4gKiDQktC30Y/RgtC+INC40LcgW3RocmVlLmpzXShodHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2Jsb2IvbWFzdGVyL3NyYy9tYXRoL1BsYW5lLmpzKVxuICovXG5jbGFzcyBQbGFuZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHt2ZWMzfSBub3JtYWwg0J3QvtGA0LzQsNC70Ywg0Log0L/Qu9C+0YHQutC+0YHRgtC4XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IFtjb25zdGFudD0wXSDQntGC0YDQuNGG0LDRgtC10LvRjNC90L7QtSDRgdC80LXRidC10L3QuNC1INC/0LvQvtGB0LrQvtGB0YLQuCDQstC00L7Qu9GMINC90L7RgNC80LDQu9C4XG4gICAgICovXG4gICAgY29uc3RydWN0b3Iobm9ybWFsLCBjb25zdGFudCkge1xuICAgICAgICB0aGlzLm5vcm1hbCA9IG5vcm1hbCB8fCB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB0aGlzLmNvbnN0YW50ID0gY29uc3RhbnQgfHwgMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNGJ0LXRgiDQvNC40L3QuNC80LDQu9GM0L3QvtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1INC80LXQttC00YMg0YLQvtGH0LrQvtC5INC4INC/0LvQvtGB0LrQvtGB0YLRjNGOXG4gICAgICogQHBhcmFtIHt2ZWMzfSBwb2ludFxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAgICovXG4gICAgZGlzdGFuY2VUb1BvaW50KHBvaW50KSB7XG4gICAgICAgIHJldHVybiB2ZWMzLmRvdCh0aGlzLm5vcm1hbCwgcG9pbnQpICsgdGhpcy5jb25zdGFudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQt9C90LDRh9C10L3QuNGPINC90L7RgNC80LDQu9C4INC4INGB0LzQtdGI0LXQvdC40LUg0L/Qu9C+0YHQutC+0YHRgtC4XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHhcbiAgICAgKiBAcGFyYW0ge051bWJlcn0geVxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB6XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHdcbiAgICAgKi9cbiAgICBzZXRDb21wb25lbnRzKHgsIHksIHosIHcpIHtcbiAgICAgICAgdmVjMy5zZXQodGhpcy5ub3JtYWwsIHgsIHksIHopO1xuICAgICAgICB0aGlzLmNvbnN0YW50ID0gdztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J3QvtGA0LzQsNC70LjQt9GD0LXRgiDQvdC+0YDQvNCw0LvRjCDQv9C70L7RgdC60L7RgdGC0Lgg0Lgg0L/RgNC40LLQvtC00LjRgiDQsiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40LUg0LXRkSDQutC+0L3RgdGC0LDQvdGC0YNcbiAgICAgKi9cbiAgICBub3JtYWxpemUoKSB7XG4gICAgICAgIGNvbnN0IGludmVyc2VOb3JtYWxMZW5ndGggPSAxLjAgLyB2ZWMzLmxlbih0aGlzLm5vcm1hbCk7XG4gICAgICAgIHZlYzMuc2NhbGUodGhpcy5ub3JtYWwsIHRoaXMubm9ybWFsLCBpbnZlcnNlTm9ybWFsTGVuZ3RoKTtcbiAgICAgICAgdGhpcy5jb25zdGFudCAqPSBpbnZlcnNlTm9ybWFsTGVuZ3RoO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBsYW5lO1xuIl19

@@ -293,2 +293,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2ZWMzfSBmcm9tICdnbC1tYXRyaXgnO1xuXG4vKipcbiAqINCb0YPRh1xuICpcbiAqINCS0LfRj9GC0L4g0LjQtyBbdGhyZWUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvYmxvYi9tYXN0ZXIvc3JjL21hdGgvUmF5LmpzKVxuICovXG5jbGFzcyBSYXkge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7dmVjM30gb3JpZ2luINCf0L7Qt9C40YbQuNGPINC90LDRh9Cw0LvQsCDQu9GD0YfQsFxuICAgICAqIEBwYXJhbSB7dmVjM30gZGlyZWN0aW9uINCd0LDQv9GA0LDQstC70LXQvdC40LUg0LvRg9GH0LBcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGRpcmVjdGlvbikge1xuICAgICAgICAvKipcbiAgICAgICAgICog0J3QsNGH0LDQu9C+XG4gICAgICAgICAqIEB0eXBlIHt2ZWMzfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW4gfHwgdmVjMy5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J3QsNC/0YDQsNCy0LvQtdC90LjQtVxuICAgICAgICAgKiBAdHlwZSB7dmVjM31cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC/0LjRjiDQu9GD0YfQsFxuICAgICAqIEByZXR1cm5zIHtSYXl9XG4gICAgICovXG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmF5KHZlYzMuY2xvbmUodGhpcy5vcmlnaW4pLCB2ZWMzLmNsb25lKHRoaXMuZGlyZWN0aW9uKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjRidGR0YIg0YLQvtGH0LrRgyDQvdCwINC70YPRh9C1INGBINC30LDQtNCw0L3QvdGL0Lwg0LzQvdC+0LbQuNGC0LXQu9C10LxcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gdCDQnNC90L7QttC40YLQtdC70YxcbiAgICAgKiBAcmV0dXJucyB7dmVjM31cbiAgICAgKi9cbiAgICBhdCh0KSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIHZlYzMuc2NhbGVBbmRBZGQocmVzdWx0LCB0aGlzLm9yaWdpbiwgdGhpcy5kaXJlY3Rpb24sIHQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9C10YDQtdGB0LXQutCw0LXRgiDQu9C4INC70YPRhyDQv9Cw0YDQsNC70LXQu9C10L/QuNC/0LXQtFxuICAgICAqIEBwYXJhbSB7Qm94fSBib3hcbiAgICAgKiBAcmV0dXJucyB7P3ZlYzN9INCi0L7Rh9C60LAg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQuNC70LggbnVsbFxuICAgICAqL1xuICAgIGludGVyc2VjdEJveChib3gpIHtcbiAgICAgICAgbGV0IHRtaW4sIHRtYXgsIHR5bWluLCB0eW1heCwgdHptaW4sIHR6bWF4O1xuXG4gICAgICAgIGNvbnN0IGludmRpcnggPSAxIC8gdGhpcy5kaXJlY3Rpb25bMF07XG4gICAgICAgIGNvbnN0IGludmRpcnkgPSAxIC8gdGhpcy5kaXJlY3Rpb25bMV07XG4gICAgICAgIGNvbnN0IGludmRpcnogPSAxIC8gdGhpcy5kaXJlY3Rpb25bMl07XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5vcmlnaW47XG5cbiAgICAgICAgaWYgKGludmRpcnggPj0gMCkge1xuICAgICAgICAgICAgdG1pbiA9IChib3gubWluWzBdIC0gb3JpZ2luWzBdKSAqIGludmRpcng7XG4gICAgICAgICAgICB0bWF4ID0gKGJveC5tYXhbMF0gLSBvcmlnaW5bMF0pICogaW52ZGlyeDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRtaW4gPSAoYm94Lm1heFswXSAtIG9yaWdpblswXSkgKiBpbnZkaXJ4O1xuICAgICAgICAgICAgdG1heCA9IChib3gubWluWzBdIC0gb3JpZ2luWzBdKSAqIGludmRpcng7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW52ZGlyeSA+PSAwKSB7XG4gICAgICAgICAgICB0eW1pbiA9IChib3gubWluWzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgICAgICB0eW1heCA9IChib3gubWF4WzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eW1pbiA9IChib3gubWF4WzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgICAgICB0eW1heCA9IChib3gubWluWzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHRtaW4gPiB0eW1heCkgfHwgKHR5bWluID4gdG1heCkpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgICAvLyBUaGVzZSBsaW5lcyBhbHNvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0bWluIG9yIHRtYXggaXMgTmFOXG4gICAgICAgIC8vIChyZXN1bHQgb2YgMCAqIEluZmluaXR5KS4geCAhPT0geCByZXR1cm5zIHRydWUgaWYgeCBpcyBOYU5cbiAgICAgICAgaWYgKHR5bWluID4gdG1pbiB8fCB0bWluICE9PSB0bWluKSB7IHRtaW4gPSB0eW1pbjsgfVxuXG4gICAgICAgIGlmICh0eW1heCA8IHRtYXggfHwgdG1heCAhPT0gdG1heCkgeyB0bWF4ID0gdHltYXg7IH1cblxuICAgICAgICBpZiAoaW52ZGlyeiA+PSAwKSB7XG4gICAgICAgICAgICB0em1pbiA9IChib3gubWluWzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgICAgICB0em1heCA9IChib3gubWF4WzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0em1pbiA9IChib3gubWF4WzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgICAgICB0em1heCA9IChib3gubWluWzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHRtaW4gPiB0em1heCkgfHwgKHR6bWluID4gdG1heCkpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgICBpZiAodHptaW4gPiB0bWluIHx8IHRtaW4gIT09IHRtaW4pIHsgdG1pbiA9IHR6bWluOyB9XG5cbiAgICAgICAgaWYgKHR6bWF4IDwgdG1heCB8fCB0bWF4ICE9PSB0bWF4KSB7IHRtYXggPSB0em1heDsgfVxuXG4gICAgICAgIC8vIHJldHVybiBwb2ludCBjbG9zZXN0IHRvIHRoZSByYXkgKHBvc2l0aXZlIHNpZGUpXG4gICAgICAgIGlmICh0bWF4IDwgMCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmF0KHRtaW4gPj0gMCA/IHRtaW4gOiB0bWF4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC30LzQtdC90Y/QtdGCINC90LDQv9GA0LDQstC70LXQvdC40LUg0LvRg9GH0LAg0YEg0L/QvtC80L7RidGM0Y4g0LzQsNGC0YDQuNGG0YtcbiAgICAgKiBAcGFyYW0ge21hdDR9IG1hdHJpeFxuICAgICAqL1xuICAgIGFwcGx5TWF0cml4NChtYXRyaXgpIHtcbiAgICAgICAgdmVjMy5hZGQodGhpcy5kaXJlY3Rpb24sIHRoaXMuZGlyZWN0aW9uLCB0aGlzLm9yaWdpbik7XG4gICAgICAgIHZlYzMudHJhbnNmb3JtTWF0NCh0aGlzLmRpcmVjdGlvbiwgdGhpcy5kaXJlY3Rpb24sIG1hdHJpeCk7XG4gICAgICAgIHZlYzMudHJhbnNmb3JtTWF0NCh0aGlzLm9yaWdpbiwgdGhpcy5vcmlnaW4sIG1hdHJpeCk7XG4gICAgICAgIHZlYzMuc3ViKHRoaXMuZGlyZWN0aW9uLCB0aGlzLmRpcmVjdGlvbiwgdGhpcy5vcmlnaW4pO1xuICAgICAgICB2ZWMzLm5vcm1hbGl6ZSh0aGlzLmRpcmVjdGlvbiwgdGhpcy5kaXJlY3Rpb24pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9C10YDQtdGB0LXQutCw0LXRgiDQu9C4INC70YPRhyDQt9Cw0LTQsNC90L3Ri9C5INGC0YDQtdGD0LPQvtC70YzQvdC40LpcbiAgICAgKiBAcGFyYW0ge3ZlYzNbXX0gdHJpYW5nbGVcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtiYWNrZmFjZUN1bGxpbmc9ZmFsc2VdINCV0YHQu9C4IHRydWUsINGC0L4g0LvRg9GHINC80L7QttC10YIg0L/QtdGA0LXRgdC10YfRjCDRgtC+0LvRjNC60L4g0L/QtdGA0LXQtNC90Y7RjiDRgdGC0L7RgNC+0L3RgyDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC60LBcbiAgICAgKiBAcmV0dXJucyB7P3ZlYzN9INCi0L7Rh9C60LAg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQuNC70LggbnVsbFxuICAgICAqL1xuICAgIGludGVyc2VjdFRyaWFuZ2xlKHRyaWFuZ2xlLCBiYWNrZmFjZUN1bGxpbmcpIHtcbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgb2Zmc2V0IG9yaWdpbiwgZWRnZXMsIGFuZCBub3JtYWwuXG4gICAgICAgIGNvbnN0IGVkZ2UxID0gdmVjMy5jcmVhdGUoKTtcbiAgICAgICAgY29uc3QgZWRnZTIgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBub3JtYWwgPSB2ZWMzLmNyZWF0ZSgpO1xuXG4gICAgICAgIHZlYzMuc3ViKGVkZ2UxLCB0cmlhbmdsZVsxXSwgdHJpYW5nbGVbMF0pO1xuICAgICAgICB2ZWMzLnN1YihlZGdlMiwgdHJpYW5nbGVbMl0sIHRyaWFuZ2xlWzBdKTtcbiAgICAgICAgdmVjMy5jcm9zcyhub3JtYWwsIGVkZ2UxLCBlZGdlMik7XG5cbiAgICAgICAgLy8gU29sdmUgUSArIHQqRCA9IGIxKkUxICsgYjIqRTIgKFEgPSBrRGlmZiwgRCA9IHJheSBkaXJlY3Rpb24sXG4gICAgICAgIC8vIEUxID0ga0VkZ2UxLCBFMiA9IGtFZGdlMiwgTiA9IENyb3NzKEUxLEUyKSkgYnlcbiAgICAgICAgLy8gICB8RG90KEQsTil8ICogYjEgPSBzaWduKERvdChELCBOKSkgKiBEb3QoRCwgQ3Jvc3MoUSwgRTIpKVxuICAgICAgICAvLyAgIHxEb3QoRCxOKXwgKiBiMiA9IHNpZ24oRG90KEQsIE4pKSAqIERvdChELCBDcm9zcyhFMSwgUSkpXG4gICAgICAgIC8vICAgfERvdChELE4pfCAqIHQgPSAtc2lnbihEb3QoRCwgTikpICogRG90KFEsIE4pXG4gICAgICAgIGxldCBEZE4gPSB2ZWMzLmRvdCh0aGlzLmRpcmVjdGlvbiwgbm9ybWFsKTtcbiAgICAgICAgbGV0IHNpZ247XG5cbiAgICAgICAgaWYgKERkTiA+IDApIHtcbiAgICAgICAgICAgIGlmIChiYWNrZmFjZUN1bGxpbmcpIHsgcmV0dXJuIG51bGw7IH1cbiAgICAgICAgICAgIHNpZ24gPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKERkTiA8IDApIHtcbiAgICAgICAgICAgIHNpZ24gPSAtMTtcbiAgICAgICAgICAgIERkTiA9IC1EZE47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmYgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB2ZWMzLnN1YihkaWZmLCB0aGlzLm9yaWdpbiwgdHJpYW5nbGVbMF0pO1xuXG4gICAgICAgIGNvbnN0IGNkZTIgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB2ZWMzLmNyb3NzKGNkZTIsIGRpZmYsIGVkZ2UyKTtcblxuICAgICAgICBjb25zdCBEZFF4RTIgPSBzaWduICogdmVjMy5kb3QodGhpcy5kaXJlY3Rpb24sIGNkZTIpO1xuXG4gICAgICAgIC8vIGIxIDwgMCwgbm8gaW50ZXJzZWN0aW9uXG4gICAgICAgIGlmIChEZFF4RTIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNkZTEgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB2ZWMzLmNyb3NzKGNkZTEsIGVkZ2UxLCBkaWZmKTtcbiAgICAgICAgY29uc3QgRGRFMXhRID0gc2lnbiAqIHZlYzMuZG90KHRoaXMuZGlyZWN0aW9uLCBjZGUxKTtcblxuICAgICAgICAvLyBiMiA8IDAsIG5vIGludGVyc2VjdGlvblxuICAgICAgICBpZiAoRGRFMXhRIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBiMStiMiA+IDEsIG5vIGludGVyc2VjdGlvblxuICAgICAgICBpZiAoRGRReEUyICsgRGRFMXhRID4gRGROKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpbmUgaW50ZXJzZWN0cyB0cmlhbmdsZSwgY2hlY2sgaWYgcmF5IGRvZXMuXG4gICAgICAgIGNvbnN0IFFkTiA9IC1zaWduICogdmVjMy5kb3QoZGlmZiwgbm9ybWFsKTtcblxuICAgICAgICAvLyB0IDwgMCwgbm8gaW50ZXJzZWN0aW9uXG4gICAgICAgIGlmIChRZE4gPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJheSBpbnRlcnNlY3RzIHRyaWFuZ2xlLlxuICAgICAgICByZXR1cm4gdGhpcy5hdChRZE4gLyBEZE4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0YnQtdGCINGA0LDRgdGB0YLQvtGP0L3QuNC1INC+0YIg0L3QsNGH0LDQu9CwINC70YPRh9CwINC00L4g0L/Qu9C+0YHQutC+0YHRgtC4XG4gICAgICogQHBhcmFtIHtQbGFuZX0gcGxhbmVcbiAgICAgKiBAcmV0dXJucyB7P051bWJlcn1cbiAgICAgKi9cbiAgICBkaXN0YW5jZVRvUGxhbmUocGxhbmUpIHtcbiAgICAgICAgY29uc3QgZGVub21pbmF0b3IgPSB2ZWMzLmRvdChwbGFuZS5ub3JtYWwsIHRoaXMuZGlyZWN0aW9uKTtcblxuICAgICAgICBpZiAoZGVub21pbmF0b3IgPT09IDApIHtcbiAgICAgICAgICAgIC8vIGxpbmUgaXMgY29wbGFuYXIsIHJldHVybiBvcmlnaW5cbiAgICAgICAgICAgIGlmIChwbGFuZS5kaXN0YW5jZVRvUG9pbnQodGhpcy5vcmlnaW4pID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE51bGwgaXMgcHJlZmVyYWJsZSB0byB1bmRlZmluZWQgc2luY2UgdW5kZWZpbmVkIG1lYW5zLi4uLiBpdCBpcyB1bmRlZmluZWRcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdCA9IC0odmVjMy5kb3QodGhpcy5vcmlnaW4sIHBsYW5lLm5vcm1hbCkgKyBwbGFuZS5jb25zdGFudCkgLyBkZW5vbWluYXRvcjtcblxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIHJheSBuZXZlciBpbnRlcnNlY3RzIHRoZSBwbGFuZVxuICAgICAgICByZXR1cm4gdCA+PSAwID8gdCA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINC/0LXRgNC10YHQtdC60LDQtdGCINC70Lgg0LvRg9GHINC30LDQtNCw0L3QvdGD0Y4g0L/Qu9C+0YHQutC+0YHRgtGMXG4gICAgICogQHBhcmFtIHtQbGFuZX0gcGxhbmVcbiAgICAgKiBAcmV0dXJucyB7P3ZlYzN9INCi0L7Rh9C60LAg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQuNC70LggbnVsbFxuICAgICAqL1xuICAgIGludGVyc2VjdFBsYW5lKHBsYW5lKSB7XG4gICAgICAgIGNvbnN0IHQgPSB0aGlzLmRpc3RhbmNlVG9QbGFuZShwbGFuZSk7XG5cbiAgICAgICAgaWYgKHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXQodCk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSYXk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,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QUVBLGdCQUFJLE1BQU0sSUFBVixFQUFnQjtBQUNaLHVCQUFPLElBQVA7QUFDSDs7QUFFRCxtQkFBTyxLQUFLLEVBQUwsQ0FBUSxDQUFSLENBQVA7QUFDSDs7Ozs7O2tCQUdVLEciLCJmaWxlIjoiUmF5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2ZWMzfSBmcm9tICdnbC1tYXRyaXgnO1xuXG4vKipcbiAqINCb0YPRh1xuICpcbiAqINCS0LfRj9GC0L4g0LjQtyBbdGhyZWUuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvYmxvYi9tYXN0ZXIvc3JjL21hdGgvUmF5LmpzKVxuICovXG5jbGFzcyBSYXkge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7dmVjM30gb3JpZ2luINCf0L7Qt9C40YbQuNGPINC90LDRh9Cw0LvQsCDQu9GD0YfQsFxuICAgICAqIEBwYXJhbSB7dmVjM30gZGlyZWN0aW9uINCd0LDQv9GA0LDQstC70LXQvdC40LUg0LvRg9GH0LBcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIGRpcmVjdGlvbikge1xuICAgICAgICAvKipcbiAgICAgICAgICog0J3QsNGH0LDQu9C+XG4gICAgICAgICAqIEB0eXBlIHt2ZWMzfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW4gfHwgdmVjMy5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J3QsNC/0YDQsNCy0LvQtdC90LjQtVxuICAgICAgICAgKiBAdHlwZSB7dmVjM31cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8IHZlYzMuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LrQvtC/0LjRjiDQu9GD0YfQsFxuICAgICAqIEByZXR1cm5zIHtSYXl9XG4gICAgICovXG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmF5KHZlYzMuY2xvbmUodGhpcy5vcmlnaW4pLCB2ZWMzLmNsb25lKHRoaXMuZGlyZWN0aW9uKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjRidGR0YIg0YLQvtGH0LrRgyDQvdCwINC70YPRh9C1INGBINC30LDQtNCw0L3QvdGL0Lwg0LzQvdC+0LbQuNGC0LXQu9C10LxcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gdCDQnNC90L7QttC40YLQtdC70YxcbiAgICAgKiBAcmV0dXJucyB7dmVjM31cbiAgICAgKi9cbiAgICBhdCh0KSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHZlYzMuY3JlYXRlKCk7XG4gICAgICAgIHZlYzMuc2NhbGVBbmRBZGQocmVzdWx0LCB0aGlzLm9yaWdpbiwgdGhpcy5kaXJlY3Rpb24sIHQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9C10YDQtdGB0LXQutCw0LXRgiDQu9C4INC70YPRhyDQv9Cw0YDQsNC70LXQu9C10L/QuNC/0LXQtFxuICAgICAqIEBwYXJhbSB7Qm94fSBib3hcbiAgICAgKiBAcmV0dXJucyB7P3ZlYzN9INCi0L7Rh9C60LAg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQuNC70LggbnVsbFxuICAgICAqL1xuICAgIGludGVyc2VjdEJveChib3gpIHtcbiAgICAgICAgbGV0IHRtaW4sIHRtYXgsIHR5bWluLCB0eW1heCwgdHptaW4sIHR6bWF4O1xuXG4gICAgICAgIGNvbnN0IGludmRpcnggPSAxIC8gdGhpcy5kaXJlY3Rpb25bMF07XG4gICAgICAgIGNvbnN0IGludmRpcnkgPSAxIC8gdGhpcy5kaXJlY3Rpb25bMV07XG4gICAgICAgIGNvbnN0IGludmRpcnogPSAxIC8gdGhpcy5kaXJlY3Rpb25bMl07XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5vcmlnaW47XG5cbiAgICAgICAgaWYgKGludmRpcnggPj0gMCkge1xuICAgICAgICAgICAgdG1pbiA9IChib3gubWluWzBdIC0gb3JpZ2luWzBdKSAqIGludmRpcng7XG4gICAgICAgICAgICB0bWF4ID0gKGJveC5tYXhbMF0gLSBvcmlnaW5bMF0pICogaW52ZGlyeDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRtaW4gPSAoYm94Lm1heFswXSAtIG9yaWdpblswXSkgKiBpbnZkaXJ4O1xuICAgICAgICAgICAgdG1heCA9IChib3gubWluWzBdIC0gb3JpZ2luWzBdKSAqIGludmRpcng7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW52ZGlyeSA+PSAwKSB7XG4gICAgICAgICAgICB0eW1pbiA9IChib3gubWluWzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgICAgICB0eW1heCA9IChib3gubWF4WzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eW1pbiA9IChib3gubWF4WzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgICAgICB0eW1heCA9IChib3gubWluWzFdIC0gb3JpZ2luWzFdKSAqIGludmRpcnk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHRtaW4gPiB0eW1heCkgfHwgKHR5bWluID4gdG1heCkpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgICAvLyBUaGVzZSBsaW5lcyBhbHNvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0bWluIG9yIHRtYXggaXMgTmFOXG4gICAgICAgIC8vIChyZXN1bHQgb2YgMCAqIEluZmluaXR5KS4geCAhPT0geCByZXR1cm5zIHRydWUgaWYgeCBpcyBOYU5cbiAgICAgICAgaWYgKHR5bWluID4gdG1pbiB8fCB0bWluICE9PSB0bWluKSB7IHRtaW4gPSB0eW1pbjsgfVxuXG4gICAgICAgIGlmICh0eW1heCA8IHRtYXggfHwgdG1heCAhPT0gdG1heCkgeyB0bWF4ID0gdHltYXg7IH1cblxuICAgICAgICBpZiAoaW52ZGlyeiA+PSAwKSB7XG4gICAgICAgICAgICB0em1pbiA9IChib3gubWluWzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgICAgICB0em1heCA9IChib3gubWF4WzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0em1pbiA9IChib3gubWF4WzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgICAgICB0em1heCA9IChib3gubWluWzJdIC0gb3JpZ2luWzJdKSAqIGludmRpcno7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHRtaW4gPiB0em1heCkgfHwgKHR6bWluID4gdG1heCkpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgICBpZiAodHptaW4gPiB0bWluIHx8IHRtaW4gIT09IHRtaW4pIHsgdG1pbiA9IHR6bWluOyB9XG5cbiAgICAgICAgaWYgKHR6bWF4IDwgdG1heCB8fCB0bWF4ICE9PSB0bWF4KSB7IHRtYXggPSB0em1heDsgfVxuXG4gICAgICAgIC8vIHJldHVybiBwb2ludCBjbG9zZXN0IHRvIHRoZSByYXkgKHBvc2l0aXZlIHNpZGUpXG4gICAgICAgIGlmICh0bWF4IDwgMCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmF0KHRtaW4gPj0gMCA/IHRtaW4gOiB0bWF4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC30LzQtdC90Y/QtdGCINC90LDQv9GA0LDQstC70LXQvdC40LUg0LvRg9GH0LAg0YEg0L/QvtC80L7RidGM0Y4g0LzQsNGC0YDQuNGG0YtcbiAgICAgKiBAcGFyYW0ge21hdDR9IG1hdHJpeFxuICAgICAqL1xuICAgIGFwcGx5TWF0cml4NChtYXRyaXgpIHtcbiAgICAgICAgdmVjMy5hZGQodGhpcy5kaXJlY3Rpb24sIHRoaXMuZGlyZWN0aW9uLCB0aGlzLm9yaWdpbik7XG4gICAgICAgIHZlYzMudHJhbnNmb3JtTWF0NCh0aGlzLmRpcmVjdGlvbiwgdGhpcy5kaXJlY3Rpb24sIG1hdHJpeCk7XG4gICAgICAgIHZlYzMudHJhbnNmb3JtTWF0NCh0aGlzLm9yaWdpbiwgdGhpcy5vcmlnaW4sIG1hdHJpeCk7XG4gICAgICAgIHZlYzMuc3ViKHRoaXMuZGlyZWN0aW9uLCB0aGlzLmRpcmVjdGlvbiwgdGhpcy5vcmlnaW4pO1xuICAgICAgICB2ZWMzLm5vcm1hbGl6ZSh0aGlzLmRpcmVjdGlvbiwgdGhpcy5kaXJlY3Rpb24pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQv9C10YDQtdGB0LXQutCw0LXRgiDQu9C4INC70YPRhyDQt9Cw0LTQsNC90L3Ri9C5INGC0YDQtdGD0LPQvtC70YzQvdC40LpcbiAgICAgKiBAcGFyYW0ge3ZlYzNbXX0gdHJpYW5nbGVcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtiYWNrZmFjZUN1bGxpbmc9ZmFsc2VdINCV0YHQu9C4IHRydWUsINGC0L4g0LvRg9GHINC80L7QttC10YIg0L/QtdGA0LXRgdC10YfRjCDRgtC+0LvRjNC60L4g0L/QtdGA0LXQtNC90Y7RjiDRgdGC0L7RgNC+0L3RgyDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC60LBcbiAgICAgKiBAcmV0dXJucyB7P3ZlYzN9INCi0L7Rh9C60LAg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQuNC70LggbnVsbFxuICAgICAqL1xuICAgIGludGVyc2VjdFRyaWFuZ2xlKHRyaWFuZ2xlLCBiYWNrZmFjZUN1bGxpbmcpIHtcbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgb2Zmc2V0IG9yaWdpbiwgZWRnZXMsIGFuZCBub3JtYWwuXG4gICAgICAgIGNvbnN0IGVkZ2UxID0gdmVjMy5jcmVhdGUoKTtcbiAgICAgICAgY29uc3QgZWRnZTIgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICBjb25zdCBub3JtYWwgPSB2ZWMzLmNyZWF0ZSgpO1xuXG4gICAgICAgIHZlYzMuc3ViKGVkZ2UxLCB0cmlhbmdsZVsxXSwgdHJpYW5nbGVbMF0pO1xuICAgICAgICB2ZWMzLnN1YihlZGdlMiwgdHJpYW5nbGVbMl0sIHRyaWFuZ2xlWzBdKTtcbiAgICAgICAgdmVjMy5jcm9zcyhub3JtYWwsIGVkZ2UxLCBlZGdlMik7XG5cbiAgICAgICAgLy8gU29sdmUgUSArIHQqRCA9IGIxKkUxICsgYjIqRTIgKFEgPSBrRGlmZiwgRCA9IHJheSBkaXJlY3Rpb24sXG4gICAgICAgIC8vIEUxID0ga0VkZ2UxLCBFMiA9IGtFZGdlMiwgTiA9IENyb3NzKEUxLEUyKSkgYnlcbiAgICAgICAgLy8gICB8RG90KEQsTil8ICogYjEgPSBzaWduKERvdChELCBOKSkgKiBEb3QoRCwgQ3Jvc3MoUSwgRTIpKVxuICAgICAgICAvLyAgIHxEb3QoRCxOKXwgKiBiMiA9IHNpZ24oRG90KEQsIE4pKSAqIERvdChELCBDcm9zcyhFMSwgUSkpXG4gICAgICAgIC8vICAgfERvdChELE4pfCAqIHQgPSAtc2lnbihEb3QoRCwgTikpICogRG90KFEsIE4pXG4gICAgICAgIGxldCBEZE4gPSB2ZWMzLmRvdCh0aGlzLmRpcmVjdGlvbiwgbm9ybWFsKTtcbiAgICAgICAgbGV0IHNpZ247XG5cbiAgICAgICAgaWYgKERkTiA+IDApIHtcbiAgICAgICAgICAgIGlmIChiYWNrZmFjZUN1bGxpbmcpIHsgcmV0dXJuIG51bGw7IH1cbiAgICAgICAgICAgIHNpZ24gPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKERkTiA8IDApIHtcbiAgICAgICAgICAgIHNpZ24gPSAtMTtcbiAgICAgICAgICAgIERkTiA9IC1EZE47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmYgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB2ZWMzLnN1YihkaWZmLCB0aGlzLm9yaWdpbiwgdHJpYW5nbGVbMF0pO1xuXG4gICAgICAgIGNvbnN0IGNkZTIgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB2ZWMzLmNyb3NzKGNkZTIsIGRpZmYsIGVkZ2UyKTtcblxuICAgICAgICBjb25zdCBEZFF4RTIgPSBzaWduICogdmVjMy5kb3QodGhpcy5kaXJlY3Rpb24sIGNkZTIpO1xuXG4gICAgICAgIC8vIGIxIDwgMCwgbm8gaW50ZXJzZWN0aW9uXG4gICAgICAgIGlmIChEZFF4RTIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNkZTEgPSB2ZWMzLmNyZWF0ZSgpO1xuICAgICAgICB2ZWMzLmNyb3NzKGNkZTEsIGVkZ2UxLCBkaWZmKTtcbiAgICAgICAgY29uc3QgRGRFMXhRID0gc2lnbiAqIHZlYzMuZG90KHRoaXMuZGlyZWN0aW9uLCBjZGUxKTtcblxuICAgICAgICAvLyBiMiA8IDAsIG5vIGludGVyc2VjdGlvblxuICAgICAgICBpZiAoRGRFMXhRIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBiMStiMiA+IDEsIG5vIGludGVyc2VjdGlvblxuICAgICAgICBpZiAoRGRReEUyICsgRGRFMXhRID4gRGROKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpbmUgaW50ZXJzZWN0cyB0cmlhbmdsZSwgY2hlY2sgaWYgcmF5IGRvZXMuXG4gICAgICAgIGNvbnN0IFFkTiA9IC1zaWduICogdmVjMy5kb3QoZGlmZiwgbm9ybWFsKTtcblxuICAgICAgICAvLyB0IDwgMCwgbm8gaW50ZXJzZWN0aW9uXG4gICAgICAgIGlmIChRZE4gPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJheSBpbnRlcnNlY3RzIHRyaWFuZ2xlLlxuICAgICAgICByZXR1cm4gdGhpcy5hdChRZE4gLyBEZE4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0YnQtdGCINGA0LDRgdGB0YLQvtGP0L3QuNC1INC+0YIg0L3QsNGH0LDQu9CwINC70YPRh9CwINC00L4g0L/Qu9C+0YHQutC+0YHRgtC4XG4gICAgICogQHBhcmFtIHtQbGFuZX0gcGxhbmVcbiAgICAgKiBAcmV0dXJucyB7P051bWJlcn1cbiAgICAgKi9cbiAgICBkaXN0YW5jZVRvUGxhbmUocGxhbmUpIHtcbiAgICAgICAgY29uc3QgZGVub21pbmF0b3IgPSB2ZWMzLmRvdChwbGFuZS5ub3JtYWwsIHRoaXMuZGlyZWN0aW9uKTtcblxuICAgICAgICBpZiAoZGVub21pbmF0b3IgPT09IDApIHtcbiAgICAgICAgICAgIC8vIGxpbmUgaXMgY29wbGFuYXIsIHJldHVybiBvcmlnaW5cbiAgICAgICAgICAgIGlmIChwbGFuZS5kaXN0YW5jZVRvUG9pbnQodGhpcy5vcmlnaW4pID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE51bGwgaXMgcHJlZmVyYWJsZSB0byB1bmRlZmluZWQgc2luY2UgdW5kZWZpbmVkIG1lYW5zLi4uLiBpdCBpcyB1bmRlZmluZWRcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdCA9IC0odmVjMy5kb3QodGhpcy5vcmlnaW4sIHBsYW5lLm5vcm1hbCkgKyBwbGFuZS5jb25zdGFudCkgLyBkZW5vbWluYXRvcjtcblxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIHJheSBuZXZlciBpbnRlcnNlY3RzIHRoZSBwbGFuZVxuICAgICAgICByZXR1cm4gdCA+PSAwID8gdCA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINC/0LXRgNC10YHQtdC60LDQtdGCINC70Lgg0LvRg9GHINC30LDQtNCw0L3QvdGD0Y4g0L/Qu9C+0YHQutC+0YHRgtGMXG4gICAgICogQHBhcmFtIHtQbGFuZX0gcGxhbmVcbiAgICAgKiBAcmV0dXJucyB7P3ZlYzN9INCi0L7Rh9C60LAg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQuNC70LggbnVsbFxuICAgICAqL1xuICAgIGludGVyc2VjdFBsYW5lKHBsYW5lKSB7XG4gICAgICAgIGNvbnN0IHQgPSB0aGlzLmRpc3RhbmNlVG9QbGFuZShwbGFuZSk7XG5cbiAgICAgICAgaWYgKHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXQodCk7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSYXk7XG4iXX0=

@@ -15,4 +15,2 @@ 'use strict';

var _libConstants2 = _interopRequireDefault(_libConstants);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -59,6 +57,14 @@

/**
* Определяет порядок отрисовки объектов с выключенным фильтром глубины.
* Работает примерно также как и z-index у dom элементов.
* Также этот порядок учитывается при отрисовки прозрачных мешей.
* @type {number}
*/
_this.renderOrder = 0;
/**
* Используется для обозначения типа объекта
* @type {Number}
*/
_this.type = _libConstants2.default.MESH;
_this.type = _libConstants.MESH;
return _this;

@@ -125,2 +131,2 @@ }

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9NZXNoLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT00sSTs7Ozs7Ozs7QUFLRixnQkFBWSxRQUFaLEVBQXNCLFFBQXRCLEVBQWdDO0FBQUE7Ozs7Ozs7QUFBQTs7QUFPNUIsVUFBSyxRQUFMLEdBQWdCLFFBQWhCOzs7Ozs7QUFNQSxVQUFLLFFBQUwsR0FBZ0IsUUFBaEI7Ozs7OztBQU1BLFVBQUssSUFBTCxHQUFZLHVCQUFhLElBQXpCO0FBbkI0QjtBQW9CL0I7Ozs7Ozs7Ozs7MkJBTU0sSyxFQUFPO0FBQ1YsVUFBTSxLQUFLLE1BQU0sRUFBakI7O0FBRUEsVUFBSSxDQUFDLEtBQUssT0FBVixFQUFtQjtBQUFFLGVBQU8sSUFBUDtBQUFjOztBQUVuQyxVQUFJLEtBQUssc0JBQVQsRUFBaUM7QUFDN0IsYUFBSyxpQkFBTDtBQUNIOztBQUVELFlBQU0sTUFBTixHQUFlLElBQWY7QUFDQSxXQUFLLFFBQUwsQ0FBYyxNQUFkLENBQXFCLEtBQXJCOztBQUVBLFNBQUcsVUFBSCxDQUFjLEdBQUcsU0FBakIsRUFBNEIsQ0FBNUIsRUFBK0IsS0FBSyxRQUFMLENBQWMsU0FBZCxDQUF3QixVQUF4QixFQUFvQyxNQUFuRTs7QUFFQSxXQUFLLFFBQUwsQ0FBYyxPQUFkLENBQXNCLEVBQXRCOztBQUVBLGFBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7OztvQ0FRZSxhLEVBQWU7QUFDM0IsVUFBSSxDQUFDLEtBQUssT0FBVixFQUFtQjtBQUFFLGVBQU8sSUFBUDtBQUFjOztBQUVuQyxXQUFLLFFBQUwsQ0FBYyxlQUFkLENBQThCLGFBQTlCLEVBQTZDLElBQTdDOztBQUVBLFdBQUssUUFBTCxDQUFjLE9BQWQsQ0FBc0I7QUFBQSxlQUFTLE1BQU0sZUFBTixDQUFzQixhQUF0QixDQUFUO0FBQUEsT0FBdEI7O0FBRUEsYUFBTyxJQUFQO0FBQ0g7Ozs7OztrQkFHVSxJIiwiZmlsZSI6Ik1lc2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2JqZWN0M0QgZnJvbSAnLi9PYmplY3QzRCc7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4vbGliQ29uc3RhbnRzJztcblxuLyoqXG4gKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuCAzRCDQvtCx0YrQtdC60YLQvtCyLiDQmtCw0LbQtNC+0LzRgyDQvNC10YjRgyDQvdC10L7QsdGF0L7QtNC40LzQviDQt9Cw0LTQsNGC0Ywg0L/RgNC+0LPRgNCw0LzQvNGDINC4INCz0LXQvtC80LXRgtGA0LjRji5cbiAqXG4gKiBAZXh0ZW5kcyB7T2JqZWN0M0R9XG4gKi9cbmNsYXNzIE1lc2ggZXh0ZW5kcyBPYmplY3QzRCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtHZW9tZXRyeX0gZ2VvbWV0cnkg0JPQtdC+0LzQtdGC0YDQuNGPINC80LXRiNCwXG4gICAgICogQHBhcmFtIHtNYXRlcmlhbH0gbWF0ZXJpYWwg0J/RgNC+0LPRgNCw0LzQvNCwINC00LvRjyDQvtGC0YDQuNGB0L7QstC60Lgg0LzQtdGI0LBcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihnZW9tZXRyeSwgbWF0ZXJpYWwpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JPQtdC+0LzQtdGC0YDQuNGPINC80LXRiNCwXG4gICAgICAgICAqIEB0eXBlIHtHZW9tZXRyeX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZ2VvbWV0cnkgPSBnZW9tZXRyeTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/RgNC+0LPRgNCw0LzQvNCwINC00LvRjyDQvtGC0YDQuNGB0L7QstC60Lgg0LzQtdGI0LBcbiAgICAgICAgICogQHR5cGUge01hdGVyaWFsfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0L7QsdGK0LXQutGC0LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5NRVNIO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQt9GL0LLQsNC10YLRgdGPINGA0LXQvdC00LXRgNC+0Lwg0LTQu9GPINC/0L7QtNCz0L7RgtC+0LLQutC4INC4INC+0YLRgNC40YHQvtCy0LrQuCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZSDQotC10LrRg9GJ0LjQtSDRgdC+0YHRgtC+0Y/QvdC40LUg0YDQtdC90LTQtdGA0LBcbiAgICAgKi9cbiAgICByZW5kZXIoc3RhdGUpIHtcbiAgICAgICAgY29uc3QgZ2wgPSBzdGF0ZS5nbDtcblxuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkgeyByZXR1cm4gdGhpczsgfVxuXG4gICAgICAgIGlmICh0aGlzLndvcmxkTWF0cml4TmVlZHNVcGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlV29ybGRNYXRyaXgoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLm9iamVjdCA9IHRoaXM7XG4gICAgICAgIHRoaXMubWF0ZXJpYWwuZW5hYmxlKHN0YXRlKTtcblxuICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgdGhpcy5nZW9tZXRyeS5nZXRCdWZmZXIoJ3Bvc2l0aW9uJykubGVuZ3RoKTtcblxuICAgICAgICB0aGlzLm1hdGVyaWFsLmRpc2FibGUoZ2wpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQt9GL0LLQsNC10YLRgdGPINC90LAg0Y3RgtCw0L/QtSDRgNC10L3QtNC10YDQuNC90LPQsCwg0YfRgtC+0LHRiyDQvtC/0YDQtdC00LXQu9C40YLRjCDQuiDQutCw0LrQvtC80YMg0YLQuNC/0YMg0YDQtdC90LTQtdGA0LAg0L/RgNC40L3QsNC00LvQtdC20LjRgiDQvtCx0YrQtdC60YIuXG4gICAgICog0JzQtdGI0Lgg0YDQsNC30LTQtdC70Y/RjtGC0YHRjyDQvdCwINC/0YDQvtC30YDQsNGH0L3Ri9C1INC4INC90LXRgi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZW5kZXJQbHVnaW5zXG4gICAgICovXG4gICAgdHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICB0aGlzLm1hdGVyaWFsLnR5cGlmeUZvclJlbmRlcihyZW5kZXJQbHVnaW5zLCB0aGlzKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQudHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMpKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc2g7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9NZXNoLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7OztBQUVBOzs7Ozs7SUFLTSxJOzs7QUFDRjs7Ozs7QUFJQSxnQkFBWSxRQUFaLEVBQXNCLFFBQXRCLEVBQWdDO0FBQUE7O0FBRzVCOzs7OztBQUg0Qjs7QUFPNUIsVUFBSyxRQUFMLEdBQWdCLFFBQWhCOztBQUVBOzs7O0FBSUEsVUFBSyxRQUFMLEdBQWdCLFFBQWhCOztBQUVBOzs7Ozs7QUFNQSxVQUFLLFdBQUwsR0FBbUIsQ0FBbkI7O0FBRUE7Ozs7QUFJQSxVQUFLLElBQUw7QUEzQjRCO0FBNEIvQjs7QUFFRDs7Ozs7Ozs7MkJBSU8sSyxFQUFPO0FBQ1YsVUFBTSxLQUFLLE1BQU0sRUFBakI7O0FBRUEsVUFBSSxDQUFDLEtBQUssT0FBVixFQUFtQjtBQUFFLGVBQU8sSUFBUDtBQUFjOztBQUVuQyxVQUFJLEtBQUssc0JBQVQsRUFBaUM7QUFDN0IsYUFBSyxpQkFBTDtBQUNIOztBQUVELFlBQU0sTUFBTixHQUFlLElBQWY7QUFDQSxXQUFLLFFBQUwsQ0FBYyxNQUFkLENBQXFCLEtBQXJCOztBQUVBLFNBQUcsVUFBSCxDQUFjLEdBQUcsU0FBakIsRUFBNEIsQ0FBNUIsRUFBK0IsS0FBSyxRQUFMLENBQWMsU0FBZCxDQUF3QixVQUF4QixFQUFvQyxNQUFuRTs7QUFFQSxXQUFLLFFBQUwsQ0FBYyxPQUFkLENBQXNCLEVBQXRCOztBQUVBLGFBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7Ozs7b0NBTWdCLGEsRUFBZTtBQUMzQixVQUFJLENBQUMsS0FBSyxPQUFWLEVBQW1CO0FBQUUsZUFBTyxJQUFQO0FBQWM7O0FBRW5DLFdBQUssUUFBTCxDQUFjLGVBQWQsQ0FBOEIsYUFBOUIsRUFBNkMsSUFBN0M7O0FBRUEsV0FBSyxRQUFMLENBQWMsT0FBZCxDQUFzQjtBQUFBLGVBQVMsTUFBTSxlQUFOLENBQXNCLGFBQXRCLENBQVQ7QUFBQSxPQUF0Qjs7QUFFQSxhQUFPLElBQVA7QUFDSDs7Ozs7O2tCQUdVLEkiLCJmaWxlIjoiTWVzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3QzRCBmcm9tICcuL09iamVjdDNEJztcbmltcG9ydCB7TUVTSH0gZnJvbSAnLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7RgtGA0LjRgdC+0LLQutC4IDNEINC+0LHRitC10LrRgtC+0LIuINCa0LDQttC00L7QvNGDINC80LXRiNGDINC90LXQvtCx0YXQvtC00LjQvNC+INC30LDQtNCw0YLRjCDQv9GA0L7Qs9GA0LDQvNC80YMg0Lgg0LPQtdC+0LzQtdGC0YDQuNGOLlxuICpcbiAqIEBleHRlbmRzIHtPYmplY3QzRH1cbiAqL1xuY2xhc3MgTWVzaCBleHRlbmRzIE9iamVjdDNEIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0dlb21ldHJ5fSBnZW9tZXRyeSDQk9C10L7QvNC10YLRgNC40Y8g0LzQtdGI0LBcbiAgICAgKiBAcGFyYW0ge01hdGVyaWFsfSBtYXRlcmlhbCDQn9GA0L7Qs9GA0LDQvNC80LAg0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuCDQvNC10YjQsFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGdlb21ldHJ5LCBtYXRlcmlhbCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQk9C10L7QvNC10YLRgNC40Y8g0LzQtdGI0LBcbiAgICAgICAgICogQHR5cGUge0dlb21ldHJ5fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5nZW9tZXRyeSA9IGdlb21ldHJ5O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQn9GA0L7Qs9GA0LDQvNC80LAg0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuCDQvNC10YjQsFxuICAgICAgICAgKiBAdHlwZSB7TWF0ZXJpYWx9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm1hdGVyaWFsID0gbWF0ZXJpYWw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCe0L/RgNC10LTQtdC70Y/QtdGCINC/0L7RgNGP0LTQvtC6INC+0YLRgNC40YHQvtCy0LrQuCDQvtCx0YrQtdC60YLQvtCyINGBINCy0YvQutC70Y7Rh9C10L3QvdGL0Lwg0YTQuNC70YzRgtGA0L7QvCDQs9C70YPQsdC40L3Riy5cbiAgICAgICAgICog0KDQsNCx0L7RgtCw0LXRgiDQv9GA0LjQvNC10YDQvdC+INGC0LDQutC20LUg0LrQsNC6INC4IHotaW5kZXgg0YMgZG9tINGN0LvQtdC80LXQvdGC0L7Qsi5cbiAgICAgICAgICog0KLQsNC60LbQtSDRjdGC0L7RgiDQv9C+0YDRj9C00L7QuiDRg9GH0LjRgtGL0LLQsNC10YLRgdGPINC/0YDQuCDQvtGC0YDQuNGB0L7QstC60Lgg0L/RgNC+0LfRgNCw0YfQvdGL0YUg0LzQtdGI0LXQuS5cbiAgICAgICAgICogQHR5cGUge251bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucmVuZGVyT3JkZXIgPSAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0L7QsdGK0LXQutGC0LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IE1FU0g7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgtGB0Y8g0YDQtdC90LTQtdGA0L7QvCDQtNC70Y8g0L/QvtC00LPQvtGC0L7QstC60Lgg0Lgg0L7RgtGA0LjRgdC+0LLQutC4INC+0LHRitC10LrRgtCwLlxuICAgICAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlINCi0LXQutGD0YnQuNC1INGB0L7RgdGC0L7Rj9C90LjQtSDRgNC10L3QtNC10YDQsFxuICAgICAqL1xuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICBjb25zdCBnbCA9IHN0YXRlLmdsO1xuXG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgaWYgKHRoaXMud29ybGRNYXRyaXhOZWVkc1VwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVXb3JsZE1hdHJpeCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUub2JqZWN0ID0gdGhpcztcbiAgICAgICAgdGhpcy5tYXRlcmlhbC5lbmFibGUoc3RhdGUpO1xuXG4gICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCB0aGlzLmdlb21ldHJ5LmdldEJ1ZmZlcigncG9zaXRpb24nKS5sZW5ndGgpO1xuXG4gICAgICAgIHRoaXMubWF0ZXJpYWwuZGlzYWJsZShnbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgtGB0Y8g0L3QsCDRjdGC0LDQv9C1INGA0LXQvdC00LXRgNC40L3Qs9CwLCDRh9GC0L7QsdGLINC+0L/RgNC10LTQtdC70LjRgtGMINC6INC60LDQutC+0LzRgyDRgtC40L/RgyDRgNC10L3QtNC10YDQsCDQv9GA0LjQvdCw0LTQu9C10LbQuNGCINC+0LHRitC10LrRgi5cbiAgICAgKiDQnNC10YjQuCDRgNCw0LfQtNC10LvRj9GO0YLRgdGPINC90LAg0L/RgNC+0LfRgNCw0YfQvdGL0LUg0Lgg0L3QtdGCLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHJlbmRlclBsdWdpbnNcbiAgICAgKi9cbiAgICB0eXBpZnlGb3JSZW5kZXIocmVuZGVyUGx1Z2lucykge1xuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkgeyByZXR1cm4gdGhpczsgfVxuXG4gICAgICAgIHRoaXMubWF0ZXJpYWwudHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMsIHRoaXMpO1xuXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC50eXBpZnlGb3JSZW5kZXIocmVuZGVyUGx1Z2lucykpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVzaDtcbiJdfQ==

@@ -360,2 +360,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9NdWx0aVNwcml0ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQVNNLFc7Ozs7Ozs7O0FBS0YseUJBQVksT0FBWixFQUFxQixRQUFyQixFQUErQjtBQUFBOzs7Ozs7O0FBQUE7O0FBTzNCLGNBQUssUUFBTCxHQUFnQixRQUFoQjs7Ozs7O0FBTUEsY0FBSyxJQUFMLEdBQVksdUJBQWEsWUFBekI7O0FBRUEsY0FBSyxXQUFMLENBQWlCLE9BQWpCO0FBQ0EsY0FBSyxhQUFMO0FBaEIyQjtBQWlCOUI7Ozs7Ozs7Ozs7OzttQ0FRVSxXLEVBQWEsSyxFQUFPO0FBQzNCLGdCQUFNLE1BQU0sS0FBSyxLQUFMLENBQVcsVUFBWCxDQUFzQixLQUFsQztBQUNBLGdCQUFNLFFBQVEsY0FBYyxDQUE1Qjs7QUFFQSxnQkFBSSxLQUFKLElBQWEsS0FBYjtBQUNBLGdCQUFJLFFBQVEsQ0FBWixJQUFpQixLQUFqQjtBQUNBLGdCQUFJLFFBQVEsQ0FBWixJQUFpQixLQUFqQjtBQUNBLGdCQUFJLFFBQVEsQ0FBWixJQUFpQixLQUFqQjtBQUNBLGdCQUFJLFFBQVEsQ0FBWixJQUFpQixLQUFqQjtBQUNBLGdCQUFJLFFBQVEsQ0FBWixJQUFpQixLQUFqQjs7QUFFQSxpQkFBSyxLQUFMLENBQVcsVUFBWCxDQUFzQixLQUF0QixHQUE4QixJQUE5Qjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7Ozs7Ozs7Ozs7O29DQVFXLFcsRUFBYSxLLEVBQU87QUFDNUIsZ0JBQU0sTUFBTSxLQUFLLEtBQUwsQ0FBVyxRQUFYLENBQW9CLEtBQWhDO0FBQ0EsZ0JBQU0sUUFBUSxjQUFjLEVBQTVCOztBQUVBLGdCQUFJLEtBQUosSUFBYSxNQUFNLENBQU4sQ0FBYixDQUF1QixJQUFJLFFBQVEsQ0FBWixJQUFpQixNQUFNLENBQU4sQ0FBakI7QUFDdkIsZ0JBQUksUUFBUSxDQUFaLElB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LGlCQUQ5QixFQUVLLFNBRkwsQ0FFZSxTQUZmLEVBRTBCLGFBRjFCLEVBSUssU0FKTCxDQUllLFVBSmYsRUFJMkIsY0FKM0IsRUFLSyxTQUxMLENBS2UsT0FMZixFQUt3QixXQUx4QixFQU1LLFNBTkwsQ0FNZSxRQU5mLEVBTXlCLFlBTnpCLEVBT0ssU0FQTCxDQU9lLFlBUGYsRUFPNkIsZ0JBUDdCO0FBUUg7Ozs7OztrQkFHVSxXIiwiZmlsZSI6Ik11bHRpU3ByaXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4vT2JqZWN0M0QnO1xuaW1wb3J0IEdlb21ldHJ5IGZyb20gJy4vR2VvbWV0cnknO1xuaW1wb3J0IEJ1ZmZlciBmcm9tICcuL0J1ZmZlcic7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4vbGliQ29uc3RhbnRzJztcbmltcG9ydCAnLi9yZW5kZXJlclBsdWdpbnMvTXVsdGlTcHJpdGVQbHVnaW4nO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7RgtGA0LjRgdC+0LLQutC4INC80YPQu9GM0YLQuNGB0L/RgNCw0LnRgtC+0LIuINCc0YPQu9GM0YLQuNGB0L/RgNCw0LnRgiDQv9GA0LXQtNGB0YLQsNCy0LvRj9C10YIg0YHQvtCx0L7QuSDQvNC90L7QttC10YHRgtCy0L5cbiAqINGB0L/RgNCw0LnRgtC+0LIsINC60L7RgtC+0YDRi9C1INGA0LjRgdGD0Y7RgtGB0Y8g0LIg0L7QtNC40L0gZHJhdyBjYWxsLiDQodC/0YDQsNC50YLQsNC80Lgg0LIg0LzRg9C70YzRgtC40YHQv9GA0LDQudGC0LUg0LzQvtC20L3QvlxuICog0YPQv9GA0LDQstC70Y/RgtGMINC90LXQt9Cw0LLQuNGB0LjQvNC+INC00YDRg9CzINC+0YIg0LTRgNGD0LPQsC5cbiAqXG4gKiBAZXh0ZW5kcyB7T2JqZWN0M0R9XG4gKi9cbmNsYXNzIE11bHRpU3ByaXRlIGV4dGVuZHMgT2JqZWN0M0Qge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7U3ByaXRlRGVzY3JpcHRvcltdfSBzcHJpdGVzINCe0L/QuNGB0LDQvdC40LUg0YHQv9GA0LDQudGC0L7Qsiwg0LLRhdC+0LTRj9GJ0LjRhSDQsiDQvNGD0LvRjNGC0LjRgdC/0YDQsNC50YJcbiAgICAgKiBAcGFyYW0ge1Nwcml0ZU1hdGVyaWFsfSBtYXRlcmlhbFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNwcml0ZXMsIG1hdGVyaWFsKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0YDQvtCz0YDQsNC80LzQsCDQvtGC0YDQuNGB0L7QstC60Lgg0YHQv9GA0LDQudGC0LBcbiAgICAgICAgICogQHR5cGUge1Nwcml0ZU1hdGVyaWFsfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0L7QsdGK0LXQutGC0LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5NVUxUSV9TUFJJVEU7XG5cbiAgICAgICAgdGhpcy5faW5pdEFycmF5cyhzcHJpdGVzKTtcbiAgICAgICAgdGhpcy5faW5pdEdlb21ldHJ5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YHQv9GA0LDQudGC0YMgb3BhY2l0eVxuICAgICAqXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHNwcml0ZUluZGV4INCY0L3QtNC10LrRgSDRgdC/0YDQsNC50YLQsFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB2YWx1ZSAgICAgICDQndC+0LLQvtC1INC30L3QsNGH0LXQvdC40LUgb3BhY2l0eVxuICAgICAqL1xuICAgIHNldE9wYWNpdHkoc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEuY29sb3JBbHBoYS5hcnJheTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzcHJpdGVJbmRleCAqIDY7XG5cbiAgICAgICAgYXJyW3N0YXJ0XSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAxXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAyXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAzXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyA0XSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyA1XSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuX2RhdGEuY29sb3JBbHBoYS5kaXJ0eSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YHQv9GA0LDQudGC0YMg0L/QvtC30LjRhtC40Y5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge3ZlYzJ9ICAgdmFsdWUgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INC/0L7Qt9C40YbQuNC4XG4gICAgICovXG4gICAgc2V0UG9zaXRpb24oc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEucG9zaXRpb24uYXJyYXk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3ByaXRlSW5kZXggKiAxODtcblxuICAgICAgICBhcnJbc3RhcnRdID0gdmFsdWVbMF07IGFycltzdGFydCArIDFdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDNdID0gdmFsdWVbMF07IGFycltzdGFydCArIDRdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDZdID0gdmFsdWVbMF07IGFycltzdGFydCArIDddID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDldID0gdmFsdWVbMF07IGFycltzdGFydCArIDEwXSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyAxMl0gPSB2YWx1ZVswXTsgYXJyW3N0YXJ0ICsgMTNdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDE1XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAxNl0gPSB2YWx1ZVsxXTtcblxuICAgICAgICB0aGlzLl9kYXRhLnBvc2l0aW9uLmRpcnR5ID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC/0YDQsNC50YLRgyDQstGL0YHQvtGC0YNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gdmFsdWUgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INCy0YvRgdC+0YLRi1xuICAgICAqL1xuICAgIHNldEVsZXZhdGlvbihzcHJpdGVJbmRleCwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgYXJyID0gdGhpcy5fZGF0YS5wb3NpdGlvbi5hcnJheTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzcHJpdGVJbmRleCAqIDE4O1xuXG4gICAgICAgIGFycltzdGFydCArIDJdID0gdmFsdWU7XG4gICAgICAgIGFycltzdGFydCArIDVdID0gdmFsdWU7XG4gICAgICAgIGFycltzdGFydCArIDhdID0gdmFsdWU7XG4gICAgICAgIGFycltzdGFydCArIDExXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAxNF0gPSB2YWx1ZTtcbiAgICAgICAgYXJyW3N0YXJ0ICsgMTddID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5fZGF0YS5wb3NpdGlvbi5kaXJ0eSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YHQv9GA0LDQudGC0YMg0YDQsNC30LzQtdGAXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gc3ByaXRlSW5kZXgg0JjQvdC00LXQutGBINGB0L/RgNCw0LnRgtCwXG4gICAgICogQHBhcmFtIHt2ZWMyfSAgIHZhbHVlICAgICAgINCd0L7QstC+0LUg0LfQvdCw0YfQtdC90LjQtSDRgNCw0LfQvNC10YDQsFxuICAgICAqL1xuICAgIHNldFNpemUoc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEuc2NhbGUuYXJyYXk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3ByaXRlSW5kZXggKiAxMjtcblxuICAgICAgICBhcnJbc3RhcnRdID0gdmFsdWVbMF07IGFycltzdGFydCArIDFdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDJdID0gdmFsdWVbMF07IGFycltzdGFydCArIDNdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDRdID0gdmFsdWVbMF07IGFycltzdGFydCArIDVdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDZdID0gdmFsdWVbMF07IGFycltzdGFydCArIDddID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDhdID0gdmFsdWVbMF07IGFycltzdGFydCArIDldID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDEwXSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAxMV0gPSB2YWx1ZVsxXTtcblxuICAgICAgICB0aGlzLl9kYXRhLnNjYWxlLmRpcnR5ID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC/0YDQsNC50YLRgyBj0LzQtdGJ0LXQvdC40LVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge3ZlYzJ9ICAgdmFsdWUgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INGB0LzQtdGJ0LXQvdC40Y9cbiAgICAgKi9cbiAgICBzZXRPZmZzZXQoc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEub2Zmc2V0LmFycmF5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNwcml0ZUluZGV4ICogMTI7XG5cbiAgICAgICAgYXJyW3N0YXJ0XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAxXSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyAyXSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAzXSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA0XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyA1XSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA2XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyA3XSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA4XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyA5XSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyAxMF0gPSB2YWx1ZVswXTsgYXJyW3N0YXJ0ICsgMTFdID0gdmFsdWVbMV07XG5cbiAgICAgICAgdGhpcy5fZGF0YS5vZmZzZXQuZGlydHkgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGB0L/RgNCw0LnRgtGDINC90L7QstGL0LUgVVYt0LrQvtC+0YDQtNC40L3QsNGC0YtcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge0FycmF5fSAgYm91bmQgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INC60L7QvtGA0LTQuNC90LDRglxuICAgICAqL1xuICAgIHNldFVWKHNwcml0ZUluZGV4LCBib3VuZCkge1xuICAgICAgICBjb25zdCBhcnIgPSB0aGlzLl9kYXRhLnRleHR1cmUuYXJyYXk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3ByaXRlSW5kZXggKiAxMjtcblxuICAgICAgICBhcnJbc3RhcnRdID0gYm91bmRbMl07IGFycltzdGFydCArIDFdID0gMSAtIGJvdW5kWzNdO1xuICAgICAgICBhcnJbc3RhcnQgKyAyXSA9IGJvdW5kWzJdOyBhcnJbc3RhcnQgKyAzXSA9IDEgLSBib3VuZFsxXTtcbiAgICAgICAgYXJyW3N0YXJ0ICsgNF0gPSBib3VuZFswXTsgYXJyW3N0YXJ0ICsgNV0gPSAxIC0gYm91bmRbM107XG4gICAgICAgIGFycltzdGFydCArIDZdID0gYm91bmRbMF07IGFycltzdGFydCArIDddID0gMSAtIGJvdW5kWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA4XSA9IGJvdW5kWzBdOyBhcnJbc3RhcnQgKyA5XSA9IDEgLSBib3VuZFszXTtcbiAgICAgICAgYXJyW3N0YXJ0ICsgMTBdID0gYm91bmRbMl07IGFycltzdGFydCArIDExXSA9IDEgLSBib3VuZFsxXTtcblxuICAgICAgICB0aGlzLl9kYXRhLnRleHR1cmUuZGlydHkgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICBjb25zdCB7Z2wsIHNoYWRlclByb2dyYW19ID0gc3RhdGU7XG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gdGhpcy5fZ2VvbWV0cnk7XG5cbiAgICAgICAgc2hhZGVyUHJvZ3JhbS5iaW5kKGdsLCBudWxsLCB7XG4gICAgICAgICAgICB0ZXh0dXJlOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ3RleHR1cmUnKSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ3Bvc2l0aW9uJyksXG4gICAgICAgICAgICBjb2xvckFscGhhOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ2NvbG9yQWxwaGEnKSxcbiAgICAgICAgICAgIHNjYWxlOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ3NjYWxlJyksXG4gICAgICAgICAgICBvZmZzZXQ6IGdlb21ldHJ5LmdldEJ1ZmZlcignb2Zmc2V0JyksXG4gICAgICAgICAgICBkaXNwb3NpdGlvbjogZ2VvbWV0cnkuZ2V0QnVmZmVyKCdkaXNwb3NpdGlvbicpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuX2RhdGEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kYXRhW2tleV0uZGlydHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9nZW9tZXRyeS5nZXRCdWZmZXIoa2V5KS5zdWJEYXRhKGdsLCAwLCB0aGlzLl9kYXRhW2tleV0uYXJyYXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFba2V5XS5kaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYXRlcmlhbC5lbmFibGUoc3RhdGUpO1xuICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgdGhpcy5fZ2VvbWV0cnkuZ2V0QnVmZmVyKCdkaXNwb3NpdGlvbicpLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0ZXJpYWwuZGlzYWJsZSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQt9GL0LLQsNC10YLRgdGPINC90LAg0Y3RgtCw0L/QtSDRgNC10L3QtNC10YDQuNC90LPQsCwg0YfRgtC+0LHRiyDQvtC/0YDQtdC00LXQu9C40YLRjCDQuiDQutCw0LrQvtC80YMg0YLQuNC/0YMg0YDQtdC90LTQtdGA0LAg0L/RgNC40L3QsNC00LvQtdC20LjRgiDQvtCx0YrQtdC60YIuXG4gICAgICog0KHQv9GA0LDQudGC0Ysg0YDQuNGB0YPRjtGC0YHRjyDQvtGC0LTQtdC70YzQvdGL0Lwg0YDQtdC90LTQtdGA0L7QvC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZW5kZXJQbHVnaW5zXG4gICAgICovXG4gICAgdHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMpIHtcbiAgICAgICAgLy8g0JXRgdC70LggY9C/0YDQsNC50YIg0L3QtdCy0LjQtNC40Lwg0LjQu9C4INGDINC/0YDQvtCz0YDQsNC80LzRiyDRgdC/0YDQsNC50YLQsCDQvdC1INGD0YHRgtCw0L3QvtCy0LvQtdC90LAg0YLQtdC60YHRgtGD0YDQsCwg0YLQviDQvdC1INGA0LXQvdC00LXRgNC40Lwg0LXQs9C+XG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlIHx8ICF0aGlzLm1hdGVyaWFsLmdldFRleHR1cmUoKSkgeyByZXR1cm4gdGhpczsgfVxuXG4gICAgICAgIHJlbmRlclBsdWdpbnNbbGliQ29uc3RhbnRzLk1VTFRJX1NQUklURV9SRU5ERVJFUl0uYWRkT2JqZWN0KHRoaXMpO1xuXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC50eXBpZnlGb3JSZW5kZXIocmVuZGVyUGx1Z2lucykpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIF9pbml0QXJyYXlzKHNwcml0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3ByaXRlQ291bnQgPSBzcHJpdGVzLmxlbmd0aDtcblxuICAgICAgICBjb25zdCBlbGVtZW50RGlzcG9zaXRpb24gPSBbXG4gICAgICAgICAgICAwLjUsIC0wLjUsIDAsXG4gICAgICAgICAgICAwLjUsIDAuNSwgMCxcbiAgICAgICAgICAgIC0wLjUsIC0wLjUsIDAsXG5cbiAgICAgICAgICAgIC0wLjUsIDAuNSwgMCxcbiAgICAgICAgICAgIC0wLjUsIC0wLjUsIDAsXG4gICAgICAgICAgICAwLjUsIDAuNSwgMFxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGRpc3Bvc2l0aW9uQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTgpO1xuICAgICAgICBjb25zdCB0ZXh0dXJlQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTIpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTgpO1xuICAgICAgICBjb25zdCBzY2FsZUFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShzcHJpdGVDb3VudCAqIDEyKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTIpO1xuICAgICAgICBjb25zdCBjb2xvckFscGhhQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogNik7XG5cbiAgICAgICAgdGhpcy5fZGF0YSA9IHtcbiAgICAgICAgICAgIGRpc3Bvc2l0aW9uOiB7YXJyYXk6IGRpc3Bvc2l0aW9uQXJyYXksIGRpcnR5OiBmYWxzZX0sXG4gICAgICAgICAgICB0ZXh0dXJlOiB7YXJyYXk6IHRleHR1cmVBcnJheSwgZGlydHk6IGZhbHNlfSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7YXJyYXk6IHBvc2l0aW9uQXJyYXksIGRpcnR5OiBmYWxzZX0sXG4gICAgICAgICAgICBzY2FsZToge2FycmF5OiBzY2FsZUFycmF5LCBkaXJ0eTogZmFsc2V9LFxuICAgICAgICAgICAgb2Zmc2V0OiB7YXJyYXk6IG9mZnNldEFycmF5LCBkaXJ0eTogZmFsc2V9LFxuICAgICAgICAgICAgY29sb3JBbHBoYToge2FycmF5OiBjb2xvckFscGhhQXJyYXksIGRpcnR5OiBmYWxzZX1cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwcml0ZUNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHNwcml0ZSA9IHNwcml0ZXNbaV07XG5cbiAgICAgICAgICAgIGRpc3Bvc2l0aW9uQXJyYXkuc2V0KGVsZW1lbnREaXNwb3NpdGlvbiwgaSAqIDE4KTtcblxuICAgICAgICAgICAgdGhpcy5zZXRVVihpLCBzcHJpdGUudXYgfHwgWzAsIDAsIDEsIDFdKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U2l6ZShpLCBzcHJpdGUuc2l6ZSB8fCBbMCwgMF0pO1xuICAgICAgICAgICAgdGhpcy5zZXRPZmZzZXQoaSwgc3ByaXRlLm9mZnNldCB8fCBbMCwgMF0pO1xuICAgICAgICAgICAgdGhpcy5zZXRPcGFjaXR5KGksIHNwcml0ZS5vcGFjaXR5ICE9PSB1bmRlZmluZWQgPyBzcHJpdGUub3BhY2l0eSA6IDEpO1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbihpLCBzcHJpdGUucG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5zZXRFbGV2YXRpb24oaSwgc3ByaXRlLmVsZXZhdGlvbiB8fCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9pbml0R2VvbWV0cnkoKSB7XG4gICAgICAgIHRoaXMuX2dlb21ldHJ5ID0gbmV3IEdlb21ldHJ5KCk7XG5cbiAgICAgICAgY29uc3QgdGV4dHVyZUJ1ZmZlciA9IG5ldyBCdWZmZXIodGhpcy5fZGF0YS50ZXh0dXJlLmFycmF5LCAyKTtcbiAgICAgICAgdGV4dHVyZUJ1ZmZlci5kcmF3VHlwZSA9IEJ1ZmZlci5EeW5hbWljRHJhdztcblxuICAgICAgICBjb25zdCBwb3NpdGlvbkJ1ZmZlciA9IG5ldyBCdWZmZXIodGhpcy5fZGF0YS5wb3NpdGlvbi5hcnJheSwgMyk7XG4gICAgICAgIHBvc2l0aW9uQnVmZmVyLmRyYXdUeXBlID0gQnVmZmVyLkR5bmFtaWNEcmF3O1xuXG4gICAgICAgIGNvbnN0IHNjYWxlQnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLnNjYWxlLmFycmF5LCAyKTtcbiAgICAgICAgc2NhbGVCdWZmZXIuZHJhd1R5cGUgPSBCdWZmZXIuRHluYW1pY0RyYXc7XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0QnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLm9mZnNldC5hcnJheSwgMik7XG4gICAgICAgIG9mZnNldEJ1ZmZlci5kcmF3VHlwZSA9IEJ1ZmZlci5EeW5hbWljRHJhdztcblxuICAgICAgICBjb25zdCBjb2xvckFscGhhQnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLmNvbG9yQWxwaGEuYXJyYXksIDEpO1xuICAgICAgICBjb2xvckFscGhhQnVmZmVyLmRyYXdUeXBlID0gQnVmZmVyLkR5bmFtaWNEcmF3O1xuXG4gICAgICAgIGNvbnN0IGRpc3Bvc2l0aW9uQnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLmRpc3Bvc2l0aW9uLmFycmF5LCAzKTtcblxuICAgICAgICB0aGlzLl9nZW9tZXRyeVxuICAgICAgICAgICAgLnNldEJ1ZmZlcignZGlzcG9zaXRpb24nLCBkaXNwb3NpdGlvbkJ1ZmZlcilcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ3RleHR1cmUnLCB0ZXh0dXJlQnVmZmVyKVxuXG4gICAgICAgICAgICAuc2V0QnVmZmVyKCdwb3NpdGlvbicsIHBvc2l0aW9uQnVmZmVyKVxuICAgICAgICAgICAgLnNldEJ1ZmZlcignc2NhbGUnLCBzY2FsZUJ1ZmZlcilcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ29mZnNldCcsIG9mZnNldEJ1ZmZlcilcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ2NvbG9yQWxwaGEnLCBjb2xvckFscGhhQnVmZmVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE11bHRpU3ByaXRlO1xuXG4vKipcbiAqINCe0L/QuNGB0LDQvdC40LUg0YHQv9GA0LDQudGC0LAuINCc0LDRgdGB0LjQsiDRgtCw0LrQuNGFINC+0LHRitC10LrRgtC+0LIg0L/QtdGA0LXQtNCw0ZHRgtGB0Y8g0LIg0LrQvtC90YHRgtGA0YPQutGC0L7RgCDQutC70LDRgdGB0LBcbiAqIE11bHRpU3ByaXRlXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gU3ByaXRlRGVzY3JpcHRvclxuICogQHByb3BlcnR5IHt2ZWMyfSBwb3NpdGlvbiDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgdC/0YDQsNC50YLQsCDQsiDQv9C70L7RgdC60L7RgdGC0LggWFlcbiAqIEBwcm9wZXJ0eSB7dmVjMn0gc2l6ZSDQoNCw0LfQvNC10YAg0YHQv9GA0LDQudGC0LAg0LIg0L/QuNC60YHQtdC70Y/RhVxuICogQHByb3BlcnR5IHt2ZWMyfSBvZmZzZXQg0KHQvNC10YnQtdC90LjQtSDRgdC/0YDQsNC50YLQsCDQsiDQv9C40LrRgdC10LvRj9GFINCyINC/0LvQvtGB0LrQvtGB0YLQuCDRjdC60YDQsNC90LBcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBlbGV2YXRpb24g0JLRi9GB0L7RgtCwINGB0L/RgNCw0LnRgtCwINC/0L4g0L7RgdC4IFpcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBvcGFjaXR5INCe0L/QsNGB0LjRgtC4INGB0L/RgNCw0LnRgtCwXG4gKiBAcHJvcGVydHkge0FycmF5fSB1diDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgtC10LrRgdGC0YPRgNGLINGB0L/RgNCw0LnRgtCwXG4gKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9NdWx0aVNwcml0ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQTs7Ozs7Ozs7SUFPTSxXOzs7QUFDRjs7Ozs7QUFJQSx5QkFBWSxPQUFaLEVBQXFCLFFBQXJCLEVBQStCO0FBQUE7O0FBRzNCOzs7OztBQUgyQjs7QUFPM0IsY0FBSyxRQUFMLEdBQWdCLFFBQWhCOztBQUVBOzs7O0FBSUEsY0FBSyxJQUFMLEdBQVksdUJBQWEsWUFBekI7O0FBRUEsY0FBSyxXQUFMLENBQWlCLE9BQWpCO0FBQ0EsY0FBSyxhQUFMO0FBaEIyQjtBQWlCOUI7O0FBRUQ7Ozs7Ozs7Ozs7bUNBTVcsVyxFQUFhLEssRUFBTztBQUMzQixnQkFBTSxNQUFNLEtBQUssS0FBTCxDQUFXLFVBQVgsQ0FBc0IsS0FBbEM7QUFDQSxnQkFBTSxRQUFRLGNBQWMsQ0FBNUI7O0FBRUEsZ0JBQUksS0FBSixJQUFhLEtBQWI7QUFDQSxnQkFBSSxRQUFRLENBQVosSUFBaUIsS0FBakI7QUFDQSxnQkFBSSxRQUFRLENBQVosSUFBaUIsS0FBakI7QUFDQSxnQkFBSSxRQUFRLENBQVosSUFBaUIsS0FBakI7QUFDQSxnQkFBSSxRQUFRLENBQVosSUFBaUIsS0FBakI7QUFDQSxnQkFBSSxRQUFRLENBQVosSUFBaUIsS0FBakI7O0FBRUEsaUJBQUssS0FBTCxDQUFXLFVBQVgsQ0FBc0IsS0FBdEIsR0FBOEIsSUFBOUI7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7Ozs7b0NBTVksVyxFQUFhLEssRUFBTztBQUM1QixnQkFBTSxNQUFNLEtBQUssS0FBTCxDQUFXLFFBQVgsQ0FBb0IsS0FBaEM7QUFDQSxnQkFBTSxRQUFRLGNBQWMsRUFBNUI7O0FBRUEsZ0JBQUksS0FBSixJQUFhLE1BQU0sQ0FBTixDQUFiLENBQXVCLElBQUksUUFBUSxDQUFaLElBQWlCLE1BQU0sQ0FBTixDQUFq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ekMsQ0FBMUI7O0FBRUEsaUJBQUssU0FBTCxDQUNLLFNBREwsQ0FDZSxhQURmLEVBQzhCLGlCQUQ5QixFQUVLLFNBRkwsQ0FFZSxTQUZmLEVBRTBCLGFBRjFCLEVBSUssU0FKTCxDQUllLFVBSmYsRUFJMkIsY0FKM0IsRUFLSyxTQUxMLENBS2UsT0FMZixFQUt3QixXQUx4QixFQU1LLFNBTkwsQ0FNZSxRQU5mLEVBTXlCLFlBTnpCLEVBT0ssU0FQTCxDQU9lLFlBUGYsRUFPNkIsZ0JBUDdCO0FBUUg7Ozs7OztrQkFHVSxXOztBQUVmIiwiZmlsZSI6Ik11bHRpU3ByaXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4vT2JqZWN0M0QnO1xuaW1wb3J0IEdlb21ldHJ5IGZyb20gJy4vR2VvbWV0cnknO1xuaW1wb3J0IEJ1ZmZlciBmcm9tICcuL0J1ZmZlcic7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4vbGliQ29uc3RhbnRzJztcbmltcG9ydCAnLi9yZW5kZXJlclBsdWdpbnMvTXVsdGlTcHJpdGVQbHVnaW4nO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7RgtGA0LjRgdC+0LLQutC4INC80YPQu9GM0YLQuNGB0L/RgNCw0LnRgtC+0LIuINCc0YPQu9GM0YLQuNGB0L/RgNCw0LnRgiDQv9GA0LXQtNGB0YLQsNCy0LvRj9C10YIg0YHQvtCx0L7QuSDQvNC90L7QttC10YHRgtCy0L5cbiAqINGB0L/RgNCw0LnRgtC+0LIsINC60L7RgtC+0YDRi9C1INGA0LjRgdGD0Y7RgtGB0Y8g0LIg0L7QtNC40L0gZHJhdyBjYWxsLiDQodC/0YDQsNC50YLQsNC80Lgg0LIg0LzRg9C70YzRgtC40YHQv9GA0LDQudGC0LUg0LzQvtC20L3QvlxuICog0YPQv9GA0LDQstC70Y/RgtGMINC90LXQt9Cw0LLQuNGB0LjQvNC+INC00YDRg9CzINC+0YIg0LTRgNGD0LPQsC5cbiAqXG4gKiBAZXh0ZW5kcyB7T2JqZWN0M0R9XG4gKi9cbmNsYXNzIE11bHRpU3ByaXRlIGV4dGVuZHMgT2JqZWN0M0Qge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7U3ByaXRlRGVzY3JpcHRvcltdfSBzcHJpdGVzINCe0L/QuNGB0LDQvdC40LUg0YHQv9GA0LDQudGC0L7Qsiwg0LLRhdC+0LTRj9GJ0LjRhSDQsiDQvNGD0LvRjNGC0LjRgdC/0YDQsNC50YJcbiAgICAgKiBAcGFyYW0ge1Nwcml0ZU1hdGVyaWFsfSBtYXRlcmlhbFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNwcml0ZXMsIG1hdGVyaWFsKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0YDQvtCz0YDQsNC80LzQsCDQvtGC0YDQuNGB0L7QstC60Lgg0YHQv9GA0LDQudGC0LBcbiAgICAgICAgICogQHR5cGUge1Nwcml0ZU1hdGVyaWFsfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYXRlcmlhbCA9IG1hdGVyaWFsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0L7QsdGK0LXQutGC0LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5NVUxUSV9TUFJJVEU7XG5cbiAgICAgICAgdGhpcy5faW5pdEFycmF5cyhzcHJpdGVzKTtcbiAgICAgICAgdGhpcy5faW5pdEdlb21ldHJ5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YHQv9GA0LDQudGC0YMgb3BhY2l0eVxuICAgICAqXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHNwcml0ZUluZGV4INCY0L3QtNC10LrRgSDRgdC/0YDQsNC50YLQsFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB2YWx1ZSAgICAgICDQndC+0LLQvtC1INC30L3QsNGH0LXQvdC40LUgb3BhY2l0eVxuICAgICAqL1xuICAgIHNldE9wYWNpdHkoc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEuY29sb3JBbHBoYS5hcnJheTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzcHJpdGVJbmRleCAqIDY7XG5cbiAgICAgICAgYXJyW3N0YXJ0XSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAxXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAyXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAzXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyA0XSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyA1XSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuX2RhdGEuY29sb3JBbHBoYS5kaXJ0eSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YHQv9GA0LDQudGC0YMg0L/QvtC30LjRhtC40Y5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge3ZlYzJ9ICAgdmFsdWUgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INC/0L7Qt9C40YbQuNC4XG4gICAgICovXG4gICAgc2V0UG9zaXRpb24oc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEucG9zaXRpb24uYXJyYXk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3ByaXRlSW5kZXggKiAxODtcblxuICAgICAgICBhcnJbc3RhcnRdID0gdmFsdWVbMF07IGFycltzdGFydCArIDFdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDNdID0gdmFsdWVbMF07IGFycltzdGFydCArIDRdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDZdID0gdmFsdWVbMF07IGFycltzdGFydCArIDddID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDldID0gdmFsdWVbMF07IGFycltzdGFydCArIDEwXSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyAxMl0gPSB2YWx1ZVswXTsgYXJyW3N0YXJ0ICsgMTNdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDE1XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAxNl0gPSB2YWx1ZVsxXTtcblxuICAgICAgICB0aGlzLl9kYXRhLnBvc2l0aW9uLmRpcnR5ID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC/0YDQsNC50YLRgyDQstGL0YHQvtGC0YNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gdmFsdWUgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INCy0YvRgdC+0YLRi1xuICAgICAqL1xuICAgIHNldEVsZXZhdGlvbihzcHJpdGVJbmRleCwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgYXJyID0gdGhpcy5fZGF0YS5wb3NpdGlvbi5hcnJheTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzcHJpdGVJbmRleCAqIDE4O1xuXG4gICAgICAgIGFycltzdGFydCArIDJdID0gdmFsdWU7XG4gICAgICAgIGFycltzdGFydCArIDVdID0gdmFsdWU7XG4gICAgICAgIGFycltzdGFydCArIDhdID0gdmFsdWU7XG4gICAgICAgIGFycltzdGFydCArIDExXSA9IHZhbHVlO1xuICAgICAgICBhcnJbc3RhcnQgKyAxNF0gPSB2YWx1ZTtcbiAgICAgICAgYXJyW3N0YXJ0ICsgMTddID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5fZGF0YS5wb3NpdGlvbi5kaXJ0eSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YHQv9GA0LDQudGC0YMg0YDQsNC30LzQtdGAXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gc3ByaXRlSW5kZXgg0JjQvdC00LXQutGBINGB0L/RgNCw0LnRgtCwXG4gICAgICogQHBhcmFtIHt2ZWMyfSAgIHZhbHVlICAgICAgINCd0L7QstC+0LUg0LfQvdCw0YfQtdC90LjQtSDRgNCw0LfQvNC10YDQsFxuICAgICAqL1xuICAgIHNldFNpemUoc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEuc2NhbGUuYXJyYXk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3ByaXRlSW5kZXggKiAxMjtcblxuICAgICAgICBhcnJbc3RhcnRdID0gdmFsdWVbMF07IGFycltzdGFydCArIDFdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDJdID0gdmFsdWVbMF07IGFycltzdGFydCArIDNdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDRdID0gdmFsdWVbMF07IGFycltzdGFydCArIDVdID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDZdID0gdmFsdWVbMF07IGFycltzdGFydCArIDddID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDhdID0gdmFsdWVbMF07IGFycltzdGFydCArIDldID0gdmFsdWVbMV07XG4gICAgICAgIGFycltzdGFydCArIDEwXSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAxMV0gPSB2YWx1ZVsxXTtcblxuICAgICAgICB0aGlzLl9kYXRhLnNjYWxlLmRpcnR5ID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC/0YDQsNC50YLRgyBj0LzQtdGJ0LXQvdC40LVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge3ZlYzJ9ICAgdmFsdWUgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INGB0LzQtdGJ0LXQvdC40Y9cbiAgICAgKi9cbiAgICBzZXRPZmZzZXQoc3ByaXRlSW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGFyciA9IHRoaXMuX2RhdGEub2Zmc2V0LmFycmF5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNwcml0ZUluZGV4ICogMTI7XG5cbiAgICAgICAgYXJyW3N0YXJ0XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAxXSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyAyXSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyAzXSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA0XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyA1XSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA2XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyA3XSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA4XSA9IHZhbHVlWzBdOyBhcnJbc3RhcnQgKyA5XSA9IHZhbHVlWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyAxMF0gPSB2YWx1ZVswXTsgYXJyW3N0YXJ0ICsgMTFdID0gdmFsdWVbMV07XG5cbiAgICAgICAgdGhpcy5fZGF0YS5vZmZzZXQuZGlydHkgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGB0L/RgNCw0LnRgtGDINC90L7QstGL0LUgVVYt0LrQvtC+0YDQtNC40L3QsNGC0YtcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBzcHJpdGVJbmRleCDQmNC90LTQtdC60YEg0YHQv9GA0LDQudGC0LBcbiAgICAgKiBAcGFyYW0ge0FycmF5fSAgYm91bmQgICAgICAg0J3QvtCy0L7QtSDQt9C90LDRh9C10L3QuNC1INC60L7QvtGA0LTQuNC90LDRglxuICAgICAqL1xuICAgIHNldFVWKHNwcml0ZUluZGV4LCBib3VuZCkge1xuICAgICAgICBjb25zdCBhcnIgPSB0aGlzLl9kYXRhLnRleHR1cmUuYXJyYXk7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc3ByaXRlSW5kZXggKiAxMjtcblxuICAgICAgICBhcnJbc3RhcnRdID0gYm91bmRbMl07IGFycltzdGFydCArIDFdID0gMSAtIGJvdW5kWzNdO1xuICAgICAgICBhcnJbc3RhcnQgKyAyXSA9IGJvdW5kWzJdOyBhcnJbc3RhcnQgKyAzXSA9IDEgLSBib3VuZFsxXTtcbiAgICAgICAgYXJyW3N0YXJ0ICsgNF0gPSBib3VuZFswXTsgYXJyW3N0YXJ0ICsgNV0gPSAxIC0gYm91bmRbM107XG4gICAgICAgIGFycltzdGFydCArIDZdID0gYm91bmRbMF07IGFycltzdGFydCArIDddID0gMSAtIGJvdW5kWzFdO1xuICAgICAgICBhcnJbc3RhcnQgKyA4XSA9IGJvdW5kWzBdOyBhcnJbc3RhcnQgKyA5XSA9IDEgLSBib3VuZFszXTtcbiAgICAgICAgYXJyW3N0YXJ0ICsgMTBdID0gYm91bmRbMl07IGFycltzdGFydCArIDExXSA9IDEgLSBib3VuZFsxXTtcblxuICAgICAgICB0aGlzLl9kYXRhLnRleHR1cmUuZGlydHkgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICBjb25zdCB7Z2wsIHNoYWRlclByb2dyYW19ID0gc3RhdGU7XG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gdGhpcy5fZ2VvbWV0cnk7XG5cbiAgICAgICAgc2hhZGVyUHJvZ3JhbS5iaW5kKGdsLCBudWxsLCB7XG4gICAgICAgICAgICB0ZXh0dXJlOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ3RleHR1cmUnKSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ3Bvc2l0aW9uJyksXG4gICAgICAgICAgICBjb2xvckFscGhhOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ2NvbG9yQWxwaGEnKSxcbiAgICAgICAgICAgIHNjYWxlOiBnZW9tZXRyeS5nZXRCdWZmZXIoJ3NjYWxlJyksXG4gICAgICAgICAgICBvZmZzZXQ6IGdlb21ldHJ5LmdldEJ1ZmZlcignb2Zmc2V0JyksXG4gICAgICAgICAgICBkaXNwb3NpdGlvbjogZ2VvbWV0cnkuZ2V0QnVmZmVyKCdkaXNwb3NpdGlvbicpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuX2RhdGEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kYXRhW2tleV0uZGlydHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9nZW9tZXRyeS5nZXRCdWZmZXIoa2V5KS5zdWJEYXRhKGdsLCAwLCB0aGlzLl9kYXRhW2tleV0uYXJyYXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFba2V5XS5kaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYXRlcmlhbC5lbmFibGUoc3RhdGUpO1xuICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgdGhpcy5fZ2VvbWV0cnkuZ2V0QnVmZmVyKCdkaXNwb3NpdGlvbicpLmxlbmd0aCk7XG4gICAgICAgIHRoaXMubWF0ZXJpYWwuZGlzYWJsZSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQt9GL0LLQsNC10YLRgdGPINC90LAg0Y3RgtCw0L/QtSDRgNC10L3QtNC10YDQuNC90LPQsCwg0YfRgtC+0LHRiyDQvtC/0YDQtdC00LXQu9C40YLRjCDQuiDQutCw0LrQvtC80YMg0YLQuNC/0YMg0YDQtdC90LTQtdGA0LAg0L/RgNC40L3QsNC00LvQtdC20LjRgiDQvtCx0YrQtdC60YIuXG4gICAgICog0KHQv9GA0LDQudGC0Ysg0YDQuNGB0YPRjtGC0YHRjyDQvtGC0LTQtdC70YzQvdGL0Lwg0YDQtdC90LTQtdGA0L7QvC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZW5kZXJQbHVnaW5zXG4gICAgICovXG4gICAgdHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMpIHtcbiAgICAgICAgLy8g0JXRgdC70LggY9C/0YDQsNC50YIg0L3QtdCy0LjQtNC40Lwg0LjQu9C4INGDINC/0YDQvtCz0YDQsNC80LzRiyDRgdC/0YDQsNC50YLQsCDQvdC1INGD0YHRgtCw0L3QvtCy0LvQtdC90LAg0YLQtdC60YHRgtGD0YDQsCwg0YLQviDQvdC1INGA0LXQvdC00LXRgNC40Lwg0LXQs9C+XG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlIHx8ICF0aGlzLm1hdGVyaWFsLmdldFRleHR1cmUoKSkgeyByZXR1cm4gdGhpczsgfVxuXG4gICAgICAgIHJlbmRlclBsdWdpbnNbbGliQ29uc3RhbnRzLk1VTFRJX1NQUklURV9SRU5ERVJFUl0uYWRkT2JqZWN0KHRoaXMpO1xuXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC50eXBpZnlGb3JSZW5kZXIocmVuZGVyUGx1Z2lucykpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIF9pbml0QXJyYXlzKHNwcml0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3ByaXRlQ291bnQgPSBzcHJpdGVzLmxlbmd0aDtcblxuICAgICAgICBjb25zdCBlbGVtZW50RGlzcG9zaXRpb24gPSBbXG4gICAgICAgICAgICAwLjUsIC0wLjUsIDAsXG4gICAgICAgICAgICAwLjUsIDAuNSwgMCxcbiAgICAgICAgICAgIC0wLjUsIC0wLjUsIDAsXG5cbiAgICAgICAgICAgIC0wLjUsIDAuNSwgMCxcbiAgICAgICAgICAgIC0wLjUsIC0wLjUsIDAsXG4gICAgICAgICAgICAwLjUsIDAuNSwgMFxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGRpc3Bvc2l0aW9uQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTgpO1xuICAgICAgICBjb25zdCB0ZXh0dXJlQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTIpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTgpO1xuICAgICAgICBjb25zdCBzY2FsZUFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShzcHJpdGVDb3VudCAqIDEyKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogMTIpO1xuICAgICAgICBjb25zdCBjb2xvckFscGhhQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNwcml0ZUNvdW50ICogNik7XG5cbiAgICAgICAgdGhpcy5fZGF0YSA9IHtcbiAgICAgICAgICAgIGRpc3Bvc2l0aW9uOiB7YXJyYXk6IGRpc3Bvc2l0aW9uQXJyYXksIGRpcnR5OiBmYWxzZX0sXG4gICAgICAgICAgICB0ZXh0dXJlOiB7YXJyYXk6IHRleHR1cmVBcnJheSwgZGlydHk6IGZhbHNlfSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7YXJyYXk6IHBvc2l0aW9uQXJyYXksIGRpcnR5OiBmYWxzZX0sXG4gICAgICAgICAgICBzY2FsZToge2FycmF5OiBzY2FsZUFycmF5LCBkaXJ0eTogZmFsc2V9LFxuICAgICAgICAgICAgb2Zmc2V0OiB7YXJyYXk6IG9mZnNldEFycmF5LCBkaXJ0eTogZmFsc2V9LFxuICAgICAgICAgICAgY29sb3JBbHBoYToge2FycmF5OiBjb2xvckFscGhhQXJyYXksIGRpcnR5OiBmYWxzZX1cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwcml0ZUNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHNwcml0ZSA9IHNwcml0ZXNbaV07XG5cbiAgICAgICAgICAgIGRpc3Bvc2l0aW9uQXJyYXkuc2V0KGVsZW1lbnREaXNwb3NpdGlvbiwgaSAqIDE4KTtcblxuICAgICAgICAgICAgdGhpcy5zZXRVVihpLCBzcHJpdGUudXYgfHwgWzAsIDAsIDEsIDFdKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U2l6ZShpLCBzcHJpdGUuc2l6ZSB8fCBbMCwgMF0pO1xuICAgICAgICAgICAgdGhpcy5zZXRPZmZzZXQoaSwgc3ByaXRlLm9mZnNldCB8fCBbMCwgMF0pO1xuICAgICAgICAgICAgdGhpcy5zZXRPcGFjaXR5KGksIHNwcml0ZS5vcGFjaXR5ICE9PSB1bmRlZmluZWQgPyBzcHJpdGUub3BhY2l0eSA6IDEpO1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbihpLCBzcHJpdGUucG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5zZXRFbGV2YXRpb24oaSwgc3ByaXRlLmVsZXZhdGlvbiB8fCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9pbml0R2VvbWV0cnkoKSB7XG4gICAgICAgIHRoaXMuX2dlb21ldHJ5ID0gbmV3IEdlb21ldHJ5KCk7XG5cbiAgICAgICAgY29uc3QgdGV4dHVyZUJ1ZmZlciA9IG5ldyBCdWZmZXIodGhpcy5fZGF0YS50ZXh0dXJlLmFycmF5LCAyKTtcbiAgICAgICAgdGV4dHVyZUJ1ZmZlci5kcmF3VHlwZSA9IEJ1ZmZlci5EeW5hbWljRHJhdztcblxuICAgICAgICBjb25zdCBwb3NpdGlvbkJ1ZmZlciA9IG5ldyBCdWZmZXIodGhpcy5fZGF0YS5wb3NpdGlvbi5hcnJheSwgMyk7XG4gICAgICAgIHBvc2l0aW9uQnVmZmVyLmRyYXdUeXBlID0gQnVmZmVyLkR5bmFtaWNEcmF3O1xuXG4gICAgICAgIGNvbnN0IHNjYWxlQnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLnNjYWxlLmFycmF5LCAyKTtcbiAgICAgICAgc2NhbGVCdWZmZXIuZHJhd1R5cGUgPSBCdWZmZXIuRHluYW1pY0RyYXc7XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0QnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLm9mZnNldC5hcnJheSwgMik7XG4gICAgICAgIG9mZnNldEJ1ZmZlci5kcmF3VHlwZSA9IEJ1ZmZlci5EeW5hbWljRHJhdztcblxuICAgICAgICBjb25zdCBjb2xvckFscGhhQnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLmNvbG9yQWxwaGEuYXJyYXksIDEpO1xuICAgICAgICBjb2xvckFscGhhQnVmZmVyLmRyYXdUeXBlID0gQnVmZmVyLkR5bmFtaWNEcmF3O1xuXG4gICAgICAgIGNvbnN0IGRpc3Bvc2l0aW9uQnVmZmVyID0gbmV3IEJ1ZmZlcih0aGlzLl9kYXRhLmRpc3Bvc2l0aW9uLmFycmF5LCAzKTtcblxuICAgICAgICB0aGlzLl9nZW9tZXRyeVxuICAgICAgICAgICAgLnNldEJ1ZmZlcignZGlzcG9zaXRpb24nLCBkaXNwb3NpdGlvbkJ1ZmZlcilcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ3RleHR1cmUnLCB0ZXh0dXJlQnVmZmVyKVxuXG4gICAgICAgICAgICAuc2V0QnVmZmVyKCdwb3NpdGlvbicsIHBvc2l0aW9uQnVmZmVyKVxuICAgICAgICAgICAgLnNldEJ1ZmZlcignc2NhbGUnLCBzY2FsZUJ1ZmZlcilcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ29mZnNldCcsIG9mZnNldEJ1ZmZlcilcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ2NvbG9yQWxwaGEnLCBjb2xvckFscGhhQnVmZmVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE11bHRpU3ByaXRlO1xuXG4vKipcbiAqINCe0L/QuNGB0LDQvdC40LUg0YHQv9GA0LDQudGC0LAuINCc0LDRgdGB0LjQsiDRgtCw0LrQuNGFINC+0LHRitC10LrRgtC+0LIg0L/QtdGA0LXQtNCw0ZHRgtGB0Y8g0LIg0LrQvtC90YHRgtGA0YPQutGC0L7RgCDQutC70LDRgdGB0LBcbiAqIE11bHRpU3ByaXRlXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gU3ByaXRlRGVzY3JpcHRvclxuICogQHByb3BlcnR5IHt2ZWMyfSBwb3NpdGlvbiDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgdC/0YDQsNC50YLQsCDQsiDQv9C70L7RgdC60L7RgdGC0LggWFlcbiAqIEBwcm9wZXJ0eSB7dmVjMn0gc2l6ZSDQoNCw0LfQvNC10YAg0YHQv9GA0LDQudGC0LAg0LIg0L/QuNC60YHQtdC70Y/RhVxuICogQHByb3BlcnR5IHt2ZWMyfSBvZmZzZXQg0KHQvNC10YnQtdC90LjQtSDRgdC/0YDQsNC50YLQsCDQsiDQv9C40LrRgdC10LvRj9GFINCyINC/0LvQvtGB0LrQvtGB0YLQuCDRjdC60YDQsNC90LBcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBlbGV2YXRpb24g0JLRi9GB0L7RgtCwINGB0L/RgNCw0LnRgtCwINC/0L4g0L7RgdC4IFpcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBvcGFjaXR5INCe0L/QsNGB0LjRgtC4INGB0L/RgNCw0LnRgtCwXG4gKiBAcHJvcGVydHkge0FycmF5fSB1diDQmtC+0L7RgNC00LjQvdCw0YLRiyDRgtC10LrRgdGC0YPRgNGLINGB0L/RgNCw0LnRgtCwXG4gKi9cbiJdfQ==

@@ -13,8 +13,2 @@ 'use strict';

var _libConstants2 = _interopRequireDefault(_libConstants);
require('./rendererPlugins/CommonPlugin');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

@@ -51,10 +45,2 @@

/**
* Определяет порядок отрисовки объектов с выключенным фильтром глубины.
* Работает примерно также как и z-index у dom элементов.
* Также этот порядок учитывается при отрисовки прозрачных мешей.
* @type {number}
*/
this.renderOrder = 0;
/**
* Масштаб объекта

@@ -100,3 +86,3 @@ * @type {vec3}

*/
this.type = _libConstants2.default.OBJECT_3D;
this.type = _libConstants.OBJECT_3D;
}

@@ -257,3 +243,3 @@

renderPlugins[_libConstants2.default.COMMON_RENDERER].addObject(this);
renderPlugins[_libConstants.COMMON_RENDERER].addObject(this);

@@ -273,2 +259,2 @@ this.children.forEach(function (child) {

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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QVQ7QUFBQSxPQUF0Qjs7QUFFQSxhQUFPLElBQVA7QUFDSDs7Ozs7Ozs7O29DQU1lLFEsRUFBVTtBQUN0QixVQUFJLENBQUMsS0FBSyxPQUFWLEVBQW1CO0FBQUUsZUFBTyxJQUFQO0FBQWM7O0FBRW5DLGVBQVMsSUFBVDs7QUFFQSxXQUFLLFFBQUwsQ0FBYyxPQUFkLENBQXNCO0FBQUEsZUFBUyxNQUFNLGVBQU4sQ0FBc0IsUUFBdEIsQ0FBVDtBQUFBLE9BQXRCOztBQUVBLGFBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7b0NBTWUsYSxFQUFlO0FBQzNCLFVBQUksQ0FBQyxLQUFLLE9BQVYsRUFBbUI7QUFBRSxlQUFPLElBQVA7QUFBYzs7QUFFbkMsb0JBQWMsdUJBQWEsZUFBM0IsRUFBNEMsU0FBNUMsQ0FBc0QsSUFBdEQ7O0FBRUEsV0FBSyxRQUFMLENBQWMsT0FBZCxDQUFzQjtBQUFBLGVBQVMsTUFBTSxlQUFOLENBQXNCLGFBQXRCLENBQVQ7QUFBQSxPQUF0Qjs7QUFFQSxhQUFPLElBQVA7QUFDSDs7Ozs7O2tCQUdVLFEiLCJmaWxlIjoiT2JqZWN0M0QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3ZlYzMsIG1hdDQsIHF1YXR9IGZyb20gJ2dsLW1hdHJpeCc7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4vbGliQ29uc3RhbnRzJztcbmltcG9ydCAnLi9yZW5kZXJlclBsdWdpbnMvQ29tbW9uUGx1Z2luJztcblxuLyoqXG4gKiDQkdCw0LfQvtCy0YvQuSDQutC70LDRgdGBINC00LvRjyAzRCDQvtCx0YrQtdC60YLQvtCyLlxuICogQGNsYXNzIE9iamVjdDNEXG4gKiAqL1xuY2xhc3MgT2JqZWN0M0Qge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICog0JrQsNC20LTRi9C5IE9iamVjdDNEINC80L7QttC10YIg0LLQutC70Y7Rh9Cw0YLRjCDQsiDRgdC10LHRjyDQtNGA0YPQs9C40LUg0L7QsdGK0LXQutGC0YsuXG4gICAgICAgICAqINCf0L7Qt9C40YbQuNGPLCDQv9C+0LLQvtGA0L7RgiDQuCDQvNCw0YHRiNGC0LDQsSDQtNC+0YfQtdGA0L3QuNGFINC+0LHRitC10LrRgtC+0LIg0LHRg9C00LXRgiDQt9Cw0LLQuNGB0LXRgtGMINC+0YIg0YDQvtC00LjRgtC10LvRjy5cbiAgICAgICAgICogQHR5cGUge09iamVjdDNEW119XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCg0L7QtNC40YLQtdC70YwsINGCLtC1LiDQvtCx0YrQtdC60YIg0LIg0LrQvtGC0L7RgNC+0Lwg0LTQsNC90L3Ri9C5IE9iamVjdDNEINCx0YPQtNC10YIg0LTQvtGH0LXRgNC90LjQvFxuICAgICAgICAgKiBAdHlwZSB7P09iamVjdDNEfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wYXJlbnQgPSBudWxsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQkdGD0LTQtdGCINC70Lgg0L7QsdGK0LXQutGCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRjyDQvdCwINGB0YbQtdC90LUsINC10YHQu9C4INC90LXRgiwg0YLQviDQstGB0LUg0LTQvtGH0LXRgNC90LjQtSDQvtCx0YrQtdC60YLRiyDRgtC+0LbQtSDQvdC1INCx0YPQtNGD0YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPLlxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCe0L/RgNC10LTQtdC70Y/QtdGCINC/0L7RgNGP0LTQvtC6INC+0YLRgNC40YHQvtCy0LrQuCDQvtCx0YrQtdC60YLQvtCyINGBINCy0YvQutC70Y7Rh9C10L3QvdGL0Lwg0YTQuNC70YzRgtGA0L7QvCDQs9C70YPQsdC40L3Riy5cbiAgICAgICAgICog0KDQsNCx0L7RgtCw0LXRgiDQv9GA0LjQvNC10YDQvdC+INGC0LDQutC20LUg0LrQsNC6INC4IHotaW5kZXgg0YMgZG9tINGN0LvQtdC80LXQvdGC0L7Qsi5cbiAgICAgICAgICog0KLQsNC60LbQtSDRjdGC0L7RgiDQv9C+0YDRj9C00L7QuiDRg9GH0LjRgtGL0LLQsNC10YLRgdGPINC/0YDQuCDQvtGC0YDQuNGB0L7QstC60Lgg0L/RgNC+0LfRgNCw0YfQvdGL0YUg0LzQtdGI0LXQuS5cbiAgICAgICAgICogQHR5cGUge251bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucmVuZGVyT3JkZXIgPSAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNCw0YHRiNGC0LDQsSDQvtCx0YrQtdC60YLQsFxuICAgICAgICAgKiBAdHlwZSB7dmVjM31cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2NhbGUgPSB2ZWMzLmZyb21WYWx1ZXMoMSwgMSwgMSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0L7Qt9C40YbQuNGPINC+0LHRitC10LrRgtCwINCyINC70L7QutCw0LvRjNC90L7QuSDRgdC40YHRgtC10LzQtSDQutC+0L7RgNC00LjQvdCw0YIg0L7RgtC90L7RgdC40YLQtdC70YzQvdC+INGA0L7QtNC40YLQtdC70Y9cbiAgICAgICAgICogQHR5cGUge3ZlYzN9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnBvc2l0aW9uID0gdmVjMy5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J7RgtCy0LXRh9Cw0LXRgiDQt9CwINC/0L7QstC+0YDQvtGCINC+0LHRitC10LrRgtCwXG4gICAgICAgICAqIEB0eXBlIHtxdWF0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5xdWF0ZXJuaW9uID0gcXVhdC5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQsNGC0YDQuNGG0LAg0L7Qv9GA0LXQtNC10LvRj9GO0YnQsNGPINC/0L7QstC+0YDQvtGCLCDQvNCw0YHRiNGC0LDQsSDQuCDQv9C+0LfQuNGG0LjRjiDQvtCx0YrQtdC60YLQsCDQsiDQu9C+0LrQsNC70YzQvdC+0Lkg0YHQuNGB0YLQtdC80LUg0LrQvtC+0YDQtNC40L3QsNGCXG4gICAgICAgICAqINC+0YLQvdC+0YHQuNGC0LXQu9GM0L3QviDRgNC+0LTQuNGC0LXQu9GPLlxuICAgICAgICAgKiBAdHlwZSB7bWF0NH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubG9jYWxNYXRyaXggPSBtYXQ0LmNyZWF0ZSgpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQnNCw0YLRgNC40YbQsCDQvtC/0YDQtdC00LXQu9GP0Y7RidCw0Y8g0L/QvtCy0L7RgNC+0YIsINC80LDRgdGI0YLQsNCxINC4INC/0L7Qt9C40YbQuNGOINC+0LHRitC10LrRgtCwINCyINCz0LvQvtCx0LDQu9GM0L3QvtC5INGB0LjRgdGC0LXQvNC1INC60L7QvtGA0LTQuNC90LDRgi5cbiAgICAgICAgICogQHR5cGUge21hdDR9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLndvcmxkTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JXRgdC70LggdHJ1ZSwg0YLQviB3b3JsZE1hdHJpeCDQsdGD0LTQtdGCINC+0LHQvdC+0LLQu9C10L3QsCDQv9C10YDQtdC0INGA0LXQvdC00LXRgNC40L3Qs9C+0LxcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLndvcmxkTWF0cml4TmVlZHNVcGRhdGUgPSBmYWxzZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC+0LHRitC10LrRgtCwXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuT0JKRUNUXzNEO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCU0L7QsdCw0LLQu9GP0LXRgiDQtNC+0YfQtdGA0L3QuNC5INC+0LHRitC10LrRglxuICAgICAqIEBwYXJhbSB7T2JqZWN0M0R9IG9iamVjdCDQlNC+0YfQtdGA0L3QuNC5INC+0LHRitC10LrRglxuICAgICAqL1xuICAgIGFkZChvYmplY3QpIHtcbiAgICAgICAgaWYgKG9iamVjdC5wYXJlbnQpIHtcbiAgICAgICAgICAgIG9iamVjdC5wYXJlbnQucmVtb3ZlKG9iamVjdCk7XG4gICAgICAgIH1cblxuICAgICAgICBvYmplY3QucGFyZW50ID0gdGhpcztcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKG9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQsdC40YDQsNC10YIg0LTQvtGH0LXRgNC90LjQuSDQvtCx0YrQtdC60YJcbiAgICAgKiBAcGFyYW0ge09iamVjdDNEfSBvYmplY3Qg0JTQvtGH0LXRgNC90LjQuSDQvtCx0YrQtdC60YJcbiAgICAgKi9cbiAgICByZW1vdmUob2JqZWN0KSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKG9iamVjdCk7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgb2JqZWN0LnBhcmVudCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0LfRi9Cy0LDQtdGC0YHRjyDRgNC10L3QtNC10YDQvtC8INC00LvRjyDQv9C+0LTQs9C+0YLQvtCy0LrQuCDQuCDQvtGC0YDQuNGB0L7QstC60Lgg0L7QsdGK0LXQutGC0LAuXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGUg0KLQtdC60YPRidC40LUg0YHQvtGB0YLQvtGP0L3QuNC1INGA0LXQvdC00LXRgNCwXG4gICAgICovXG4gICAgcmVuZGVyKHN0YXRlKSB7XG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgaWYgKHRoaXMud29ybGRNYXRyaXhOZWVkc1VwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVXb3JsZE1hdHJpeCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC70L7QutCw0LvRjNC90YPRjiDQvNCw0YLRgNC40YbRgyDQvtCx0YrQtdC60YLQsC4g0J3QtdC+0LHRhdC+0LTQuNC80L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC60LDQttC00YvQuSDRgNCw0Lcg0L/QvtGB0LvQtSDQuNC30LzQtdC90LXQvdC40Y8gcG9zaXRpb24sIHNjYWxlXG4gICAgICog0LggcXVhdGVybmlvbi5cbiAgICAgKiAqL1xuICAgIHVwZGF0ZUxvY2FsTWF0cml4KCkge1xuICAgICAgICBtYXQ0LmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uU2NhbGUodGhpcy5sb2NhbE1hdHJpeCwgdGhpcy5xdWF0ZXJuaW9uLCB0aGlzLnBvc2l0aW9uLCB0aGlzLnNjYWxlKTtcblxuICAgICAgICB0aGlzLndvcmxkTWF0cml4TmVlZHNVcGRhdGUgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQs9C70L7QsdCw0LvRjNC90YPRjiDQvNCw0YLRgNC40YbRgyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKiAqL1xuICAgIHVwZGF0ZVdvcmxkTWF0cml4KCkge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIG1hdDQubXVsKHRoaXMud29ybGRNYXRyaXgsIHRoaXMucGFyZW50LndvcmxkTWF0cml4LCB0aGlzLmxvY2FsTWF0cml4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1hdDQuY29weSh0aGlzLndvcmxkTWF0cml4LCB0aGlzLmxvY2FsTWF0cml4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC51cGRhdGVXb3JsZE1hdHJpeCgpKTtcblxuICAgICAgICB0aGlzLndvcmxkTWF0cml4TmVlZHNVcGRhdGUgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9C+0LfQuNGG0LjRjiDQvtCx0YrQtdC60YLQsCDQvtGC0L3QvtGB0LjRgtC10LvRjNC90L4g0LPQu9C+0LHQsNC70YzQvdGL0YUg0LrQvtC+0YDQtNC40L3QsNGCLlxuICAgICAqL1xuICAgIGdldFdvcmxkUG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB2ZWMzLmZyb21WYWx1ZXModGhpcy53b3JsZE1hdHJpeFsxMl0sIHRoaXMud29ybGRNYXRyaXhbMTNdLCB0aGlzLndvcmxkTWF0cml4WzE0XSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgiDQv9C10YDQtdC00LDQvdC90YvQuSBjYWxsYmFjayDQtNC70Y8g0YHQtdCx0Y8g0Lgg0LTQu9GPINC60LDQttC00L7Qs9C+INC00L7Rh9C10YDQvdC10LPQviDQutC70LDRgdGB0LAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICAgKi9cbiAgICB0cmF2ZXJzZShjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayh0aGlzKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQudHJhdmVyc2UoY2FsbGJhY2spKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNCw0LHQvtGC0LDQtdGCINGC0LDQutC20LUg0LrQsNC6INC4IHtAbGluayBPYmplY3QzRCN0cmF2ZXJzZX0sINC90L4g0YLQvtC70YzQutC+INC00LvRjyDQvtCx0YrQtdC60YLQvtCyINGBIHZpc2libGUgPSB0cnVlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICAgKi9cbiAgICB0cmF2ZXJzZVZpc2libGUoY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICBjYWxsYmFjayh0aGlzKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQudHJhdmVyc2VWaXNpYmxlKGNhbGxiYWNrKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgtGB0Y8g0L3QsCDRjdGC0LDQv9C1INGA0LXQvdC00LXRgNC40L3Qs9CwLCDRh9GC0L7QsdGLINC+0L/RgNC10LTQtdC70LjRgtGMINC6INC60LDQutC+0LzRgyDRgtC40L/RgyDRgNC10L3QtNC10YDQsCDQv9GA0LjQvdCw0LTQu9C10LbQuNGCINC+0LHRitC10LrRgi5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcmVuZGVyUGx1Z2luc1xuICAgICAqL1xuICAgIHR5cGlmeUZvclJlbmRlcihyZW5kZXJQbHVnaW5zKSB7XG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgcmVuZGVyUGx1Z2luc1tsaWJDb25zdGFudHMuQ09NTU9OX1JFTkRFUkVSXS5hZGRPYmplY3QodGhpcyk7XG5cbiAgICAgICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IGNoaWxkLnR5cGlmeUZvclJlbmRlcihyZW5kZXJQbHVnaW5zKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBPYmplY3QzRDtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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QUFlLFFBQWYsQ0FBVDtBQUFBLE9BQXRCOztBQUVBLGFBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7O29DQUlnQixRLEVBQVU7QUFDdEIsVUFBSSxDQUFDLEtBQUssT0FBVixFQUFtQjtBQUFFLGVBQU8sSUFBUDtBQUFjOztBQUVuQyxlQUFTLElBQVQ7O0FBRUEsV0FBSyxRQUFMLENBQWMsT0FBZCxDQUFzQjtBQUFBLGVBQVMsTUFBTSxlQUFOLENBQXNCLFFBQXRCLENBQVQ7QUFBQSxPQUF0Qjs7QUFFQSxhQUFPLElBQVA7QUFDSDs7QUFFRDs7Ozs7OztvQ0FJZ0IsYSxFQUFlO0FBQzNCLFVBQUksQ0FBQyxLQUFLLE9BQVYsRUFBbUI7QUFBRSxlQUFPLElBQVA7QUFBYzs7QUFFbkMsbURBQStCLFNBQS9CLENBQXlDLElBQXpDOztBQUVBLFdBQUssUUFBTCxDQUFjLE9BQWQsQ0FBc0I7QUFBQSxlQUFTLE1BQU0sZUFBTixDQUFzQixhQUF0QixDQUFUO0FBQUEsT0FBdEI7O0FBRUEsYUFBTyxJQUFQO0FBQ0g7Ozs7OztrQkFHVSxRIiwiZmlsZSI6Ik9iamVjdDNELmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2ZWMzLCBtYXQ0LCBxdWF0fSBmcm9tICdnbC1tYXRyaXgnO1xuaW1wb3J0IHtPQkpFQ1RfM0QsIENPTU1PTl9SRU5ERVJFUn0gZnJvbSAnLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCR0LDQt9C+0LLRi9C5INC60LvQsNGB0YEg0LTQu9GPIDNEINC+0LHRitC10LrRgtC+0LIuXG4gKiBAY2xhc3MgT2JqZWN0M0RcbiAqICovXG5jbGFzcyBPYmplY3QzRCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmtCw0LbQtNGL0LkgT2JqZWN0M0Qg0LzQvtC20LXRgiDQstC60LvRjtGH0LDRgtGMINCyINGB0LXQsdGPINC00YDRg9Cz0LjQtSDQvtCx0YrQtdC60YLRiy5cbiAgICAgICAgICog0J/QvtC30LjRhtC40Y8sINC/0L7QstC+0YDQvtGCINC4INC80LDRgdGI0YLQsNCxINC00L7Rh9C10YDQvdC40YUg0L7QsdGK0LXQutGC0L7QsiDQsdGD0LTQtdGCINC30LDQstC40YHQtdGC0Ywg0L7RgiDRgNC+0LTQuNGC0LXQu9GPLlxuICAgICAgICAgKiBAdHlwZSB7T2JqZWN0M0RbXX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KDQvtC00LjRgtC10LvRjCwg0YIu0LUuINC+0LHRitC10LrRgiDQsiDQutC+0YLQvtGA0L7QvCDQtNCw0L3QvdGL0LkgT2JqZWN0M0Qg0LHRg9C00LXRgiDQtNC+0YfQtdGA0L3QuNC8XG4gICAgICAgICAqIEB0eXBlIHs/T2JqZWN0M0R9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnBhcmVudCA9IG51bGw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCR0YPQtNC10YIg0LvQuCDQvtCx0YrQtdC60YIg0L7RgtC+0LHRgNCw0LbQsNGC0YzRgdGPINC90LAg0YHRhtC10L3QtSwg0LXRgdC70Lgg0L3QtdGCLCDRgtC+INCy0YHQtSDQtNC+0YfQtdGA0L3QuNC1INC+0LHRitC10LrRgtGLINGC0L7QttC1INC90LUg0LHRg9C00YPRgiDQvtGC0L7QsdGA0LDQttCw0YLRjNGB0Y8uXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQsNGB0YjRgtCw0LEg0L7QsdGK0LXQutGC0LBcbiAgICAgICAgICogQHR5cGUge3ZlYzN9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNjYWxlID0gdmVjMy5mcm9tVmFsdWVzKDEsIDEsIDEpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQn9C+0LfQuNGG0LjRjyDQvtCx0YrQtdC60YLQsCDQsiDQu9C+0LrQsNC70YzQvdC+0Lkg0YHQuNGB0YLQtdC80LUg0LrQvtC+0YDQtNC40L3QsNGCINC+0YLQvdC+0YHQuNGC0LXQu9GM0L3QviDRgNC+0LTQuNGC0LXQu9GPXG4gICAgICAgICAqIEB0eXBlIHt2ZWMzfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHZlYzMuY3JlYXRlKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCe0YLQstC10YfQsNC10YIg0LfQsCDQv9C+0LLQvtGA0L7RgiDQvtCx0YrQtdC60YLQsFxuICAgICAgICAgKiBAdHlwZSB7cXVhdH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucXVhdGVybmlvbiA9IHF1YXQuY3JlYXRlKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCc0LDRgtGA0LjRhtCwINC+0L/RgNC10LTQtdC70Y/RjtGJ0LDRjyDQv9C+0LLQvtGA0L7Rgiwg0LzQsNGB0YjRgtCw0LEg0Lgg0L/QvtC30LjRhtC40Y4g0L7QsdGK0LXQutGC0LAg0LIg0LvQvtC60LDQu9GM0L3QvtC5INGB0LjRgdGC0LXQvNC1INC60L7QvtGA0LTQuNC90LDRglxuICAgICAgICAgKiDQvtGC0L3QvtGB0LjRgtC10LvRjNC90L4g0YDQvtC00LjRgtC10LvRjy5cbiAgICAgICAgICogQHR5cGUge21hdDR9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxvY2FsTWF0cml4ID0gbWF0NC5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JzQsNGC0YDQuNGG0LAg0L7Qv9GA0LXQtNC10LvRj9GO0YnQsNGPINC/0L7QstC+0YDQvtGCLCDQvNCw0YHRiNGC0LDQsSDQuCDQv9C+0LfQuNGG0LjRjiDQvtCx0YrQtdC60YLQsCDQsiDQs9C70L7QsdCw0LvRjNC90L7QuSDRgdC40YHRgtC10LzQtSDQutC+0L7RgNC00LjQvdCw0YIuXG4gICAgICAgICAqIEB0eXBlIHttYXQ0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy53b3JsZE1hdHJpeCA9IG1hdDQuY3JlYXRlKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCV0YHQu9C4IHRydWUsINGC0L4gd29ybGRNYXRyaXgg0LHRg9C00LXRgiDQvtCx0L3QvtCy0LvQtdC90LAg0L/QtdGA0LXQtCDRgNC10L3QtNC10YDQuNC90LPQvtC8XG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy53b3JsZE1hdHJpeE5lZWRzVXBkYXRlID0gZmFsc2U7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQvtCx0YrQtdC60YLQsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gT0JKRUNUXzNEO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCU0L7QsdCw0LLQu9GP0LXRgiDQtNC+0YfQtdGA0L3QuNC5INC+0LHRitC10LrRglxuICAgICAqIEBwYXJhbSB7T2JqZWN0M0R9IG9iamVjdCDQlNC+0YfQtdGA0L3QuNC5INC+0LHRitC10LrRglxuICAgICAqL1xuICAgIGFkZChvYmplY3QpIHtcbiAgICAgICAgaWYgKG9iamVjdC5wYXJlbnQpIHtcbiAgICAgICAgICAgIG9iamVjdC5wYXJlbnQucmVtb3ZlKG9iamVjdCk7XG4gICAgICAgIH1cblxuICAgICAgICBvYmplY3QucGFyZW50ID0gdGhpcztcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKG9iamVjdCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQsdC40YDQsNC10YIg0LTQvtGH0LXRgNC90LjQuSDQvtCx0YrQtdC60YJcbiAgICAgKiBAcGFyYW0ge09iamVjdDNEfSBvYmplY3Qg0JTQvtGH0LXRgNC90LjQuSDQvtCx0YrQtdC60YJcbiAgICAgKi9cbiAgICByZW1vdmUob2JqZWN0KSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKG9iamVjdCk7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgb2JqZWN0LnBhcmVudCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0LfRi9Cy0LDQtdGC0YHRjyDRgNC10L3QtNC10YDQvtC8INC00LvRjyDQv9C+0LTQs9C+0YLQvtCy0LrQuCDQuCDQvtGC0YDQuNGB0L7QstC60Lgg0L7QsdGK0LXQutGC0LAuXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGUg0KLQtdC60YPRidC40LUg0YHQvtGB0YLQvtGP0L3QuNC1INGA0LXQvdC00LXRgNCwXG4gICAgICovXG4gICAgcmVuZGVyKHN0YXRlKSB7XG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgaWYgKHRoaXMud29ybGRNYXRyaXhOZWVkc1VwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVXb3JsZE1hdHJpeCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC70L7QutCw0LvRjNC90YPRjiDQvNCw0YLRgNC40YbRgyDQvtCx0YrQtdC60YLQsC4g0J3QtdC+0LHRhdC+0LTQuNC80L4g0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC60LDQttC00YvQuSDRgNCw0Lcg0L/QvtGB0LvQtSDQuNC30LzQtdC90LXQvdC40Y8gcG9zaXRpb24sIHNjYWxlXG4gICAgICog0LggcXVhdGVybmlvbi5cbiAgICAgKiAqL1xuICAgIHVwZGF0ZUxvY2FsTWF0cml4KCkge1xuICAgICAgICBtYXQ0LmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uU2NhbGUodGhpcy5sb2NhbE1hdHJpeCwgdGhpcy5xdWF0ZXJuaW9uLCB0aGlzLnBvc2l0aW9uLCB0aGlzLnNjYWxlKTtcblxuICAgICAgICB0aGlzLndvcmxkTWF0cml4TmVlZHNVcGRhdGUgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQs9C70L7QsdCw0LvRjNC90YPRjiDQvNCw0YLRgNC40YbRgyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKiAqL1xuICAgIHVwZGF0ZVdvcmxkTWF0cml4KCkge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIG1hdDQubXVsKHRoaXMud29ybGRNYXRyaXgsIHRoaXMucGFyZW50LndvcmxkTWF0cml4LCB0aGlzLmxvY2FsTWF0cml4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1hdDQuY29weSh0aGlzLndvcmxkTWF0cml4LCB0aGlzLmxvY2FsTWF0cml4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC51cGRhdGVXb3JsZE1hdHJpeCgpKTtcblxuICAgICAgICB0aGlzLndvcmxkTWF0cml4TmVlZHNVcGRhdGUgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDQv9C+0LfQuNGG0LjRjiDQvtCx0YrQtdC60YLQsCDQvtGC0L3QvtGB0LjRgtC10LvRjNC90L4g0LPQu9C+0LHQsNC70YzQvdGL0YUg0LrQvtC+0YDQtNC40L3QsNGCLlxuICAgICAqL1xuICAgIGdldFdvcmxkUG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB2ZWMzLmZyb21WYWx1ZXModGhpcy53b3JsZE1hdHJpeFsxMl0sIHRoaXMud29ybGRNYXRyaXhbMTNdLCB0aGlzLndvcmxkTWF0cml4WzE0XSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgiDQv9C10YDQtdC00LDQvdC90YvQuSBjYWxsYmFjayDQtNC70Y8g0YHQtdCx0Y8g0Lgg0LTQu9GPINC60LDQttC00L7Qs9C+INC00L7Rh9C10YDQvdC10LPQviDQutC70LDRgdGB0LAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICAgKi9cbiAgICB0cmF2ZXJzZShjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayh0aGlzKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQudHJhdmVyc2UoY2FsbGJhY2spKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNCw0LHQvtGC0LDQtdGCINGC0LDQutC20LUg0LrQsNC6INC4IHtAbGluayBPYmplY3QzRCN0cmF2ZXJzZX0sINC90L4g0YLQvtC70YzQutC+INC00LvRjyDQvtCx0YrQtdC60YLQvtCyINGBIHZpc2libGUgPSB0cnVlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICAgKi9cbiAgICB0cmF2ZXJzZVZpc2libGUoY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICBjYWxsYmFjayh0aGlzKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQudHJhdmVyc2VWaXNpYmxlKGNhbGxiYWNrKSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgtGB0Y8g0L3QsCDRjdGC0LDQv9C1INGA0LXQvdC00LXRgNC40L3Qs9CwLCDRh9GC0L7QsdGLINC+0L/RgNC10LTQtdC70LjRgtGMINC6INC60LDQutC+0LzRgyDRgtC40L/RgyDRgNC10L3QtNC10YDQsCDQv9GA0LjQvdCw0LTQu9C10LbQuNGCINC+0LHRitC10LrRgi5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcmVuZGVyUGx1Z2luc1xuICAgICAqL1xuICAgIHR5cGlmeUZvclJlbmRlcihyZW5kZXJQbHVnaW5zKSB7XG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgcmVuZGVyUGx1Z2luc1tDT01NT05fUkVOREVSRVJdLmFkZE9iamVjdCh0aGlzKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQudHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMpKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9iamVjdDNEO1xuIl19
{
"name": "2gl",
"version": "0.3.1",
"version": "0.3.2",
"description": "WebGL library for 2GIS projects",

@@ -11,2 +11,5 @@ "repository": {

"license": "SEE LICENSE IN FILE",
"bin": {
"buildShaders": "buildShaders.js"
},
"dependencies": {

@@ -43,3 +46,3 @@ "gl-matrix": "2.3.1"

"build": "npm run build:shaders && npm run build:dist",
"build:shaders": "node buildShaders.js",
"build:shaders": "node buildShaders.js src",
"build:dist": "mkdir -p dist && npm run build:dist:bundle && npm run build:dist:uglify",

@@ -46,0 +49,0 @@ "build:dist:bundle": "browserify src/index.js -s dgl -d -o dist/2gl.js",

@@ -215,2 +215,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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QWdCO0FBQ1osOEJBQVUsUUFERTtBQUVaLDJCQUFPLGlCQUZLO0FBR1osNEJBQVE7QUFISSxpQkFBaEI7QUFLSDs7QUFFRCxnQkFBSSxTQUFKLEVBQWU7QUFDWCxxQkFBSyxnQkFBTCxDQUFzQixLQUFLLFFBQTNCLEVBQXFDLFNBQXJDLEVBQWdELFVBQWhEO0FBQ0g7O0FBRUQsbUJBQU8sVUFBUDtBQUNIOzs7a0NBRVMsQyxFQUFHLEMsRUFBRztBQUNaLG1CQUFPLEVBQUUsUUFBRixHQUFhLEVBQUUsUUFBdEI7QUFDSDs7Ozs7O2tCQUdVLFMiLCJmaWxlIjoiUmF5Y2FzdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2ZWMzLCBtYXQzLCBtYXQ0fSBmcm9tICdnbC1tYXRyaXgnO1xuaW1wb3J0IFJheSBmcm9tICcuL21hdGgvUmF5JztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQu9C10LPQutC+INC+0L/RgNC10LTQtdC70Y/RgtGMINC/0LXRgNC10YHQtdGH0LXQvdC40Y8g0LvRg9GH0LAg0YEg0L7QsdGK0LXQutGC0LDQvNC4LlxuICog0J3QsNC/0YDQuNC80LXRgCwg0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0LrQu9C40LrQsCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gKi9cbmNsYXNzIFJheWNhc3RlciB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHt2ZWMzfSBvcmlnaW4g0KLQvtGH0LrQsCDQvdCw0YfQsNC70LAg0LvRg9GH0LBcbiAgICAgKiBAcGFyYW0ge3ZlYzN9IGRpcmVjdGlvbiDQndCw0L/RgNCw0LLQu9C10L3QuNC1INC70YPRh9CwXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IFtuZWFyPTBdINCc0LjQvdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQvdCw0YfQsNC70LAg0LTQviDRgtC+0YfQutC4INC/0LXRgNC10YHQtdGH0LXQvdC40Y9cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gW2Zhcj1JbmZpbml0eV0g0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1INC+0YIg0L3QsNGH0LDQu9CwINC00L4g0YLQvtGH0LrQuCDQv9C10YDQtdGB0LXRh9C10L3QuNGPXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3JpZ2luLCBkaXJlY3Rpb24sIG5lYXIsIGZhcikge1xuICAgICAgICB0aGlzLnByZWNpc2lvbiA9IDAuMDAwMTtcbiAgICAgICAgdGhpcy5yYXkgPSBuZXcgUmF5KG9yaWdpbiwgZGlyZWN0aW9uKTtcbiAgICAgICAgdGhpcy5uZWFyID0gbmVhciB8fCAwO1xuICAgICAgICB0aGlzLmZhciA9IGZhciB8fCBJbmZpbml0eTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KHQv9C40YHQvtC6INC80LXRgtC+0LTQvtCyINC/0YDQvtCy0LXRgNC60Lgg0L/QtdGA0LXRgdC10YfQtdC90LjQuSDQtNC70Y8g0YDQsNC30L3Ri9GFINGC0LjQv9C+0LIg0L7QsdGK0LXQutGC0L7QslxuICAgICAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbnRlcnNlY3RNZXRob2RzQnlUeXBlID0ge1xuICAgICAgICAgICAgW2xpYkNvbnN0YW50cy5NRVNIXTogJ2ludGVyc2VjdE1lc2gnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0L3QsNGH0LDQu9C+INC70YPRh9CwINCyINC/0L7Qu9C+0LbQtdC90LjQtSDQutCw0LzQtdGA0YssINCwINC90LDQv9GA0LDQstC70LXQvdC40LUg0L/RgNC+0LXRhtC40YDRg9C10YIg0YEg0L/QtdGA0LXQtNCw0L3QvdGL0YUg0LrQvtC+0YDQtNC40L3QsNGCXG4gICAgICog0Y3QutGA0LDQvdCwINCyINGB0LjRgdGC0LXQvNGDINC60L7QvtGA0LTQuNC90LDRgiDQutCw0LzQtdGA0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3ZlYzN9IGNvb3JkaW5hdGVzXG4gICAgICogQHBhcmFtIHtDYW1lcmF9IGNhbWVyYVxuICAgICAqL1xuICAgIHNldEZyb21DYW1lcmEoY29vcmRpbmF0ZXMsIGNhbWVyYSkge1xuICAgICAgICBpZiAoY2FtZXJhLnR5cGUgPT09IGxpYkNvbnN0YW50cy5QRVJTUEVDVElWRV9DQU1FUkEpIHtcbiAgICAgICAgICAgIHRoaXMucmF5Lm9yaWdpbiA9IHZlYzMuY2xvbmUoY2FtZXJhLnBvc2l0aW9uKTtcblxuICAgICAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHZlYzMuZnJvbVZhbHVlcyhjb29yZGluYXRlc1swXSwgY29vcmRpbmF0ZXNbMV0sIDAuNSk7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSBjYW1lcmEudW5wcm9qZWN0KGRpcmVjdGlvbik7XG4gICAgICAgICAgICB2ZWMzLnN1YihkaXJlY3Rpb24sIGRpcmVjdGlvbiwgY2FtZXJhLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIHZlYzMubm9ybWFsaXplKGRpcmVjdGlvbiwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIHRoaXMucmF5LmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcblxuICAgICAgICB9IGVsc2UgaWYgKGNhbWVyYS50eXBlID09PSBsaWJDb25zdGFudHMuT1JUSE9HUkFQSElDX0NBTUVSQSkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdmVjMy5mcm9tVmFsdWVzKGNvb3JkaW5hdGVzWzBdLCBjb29yZGluYXRlc1sxXSwgLTEpO1xuICAgICAgICAgICAgdGhpcy5yYXkub3JpZ2luID0gY2FtZXJhLnVucHJvamVjdChvcmlnaW4pO1xuXG4gICAgICAgICAgICB0aGlzLnJheS5kaXJlY3Rpb24gPSB2ZWMzLmZyb21WYWx1ZXMoMCwgMCwgLTEpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRyaXgzID0gbWF0My5jcmVhdGUoKTtcbiAgICAgICAgICAgIG1hdDMuZnJvbU1hdDQobWF0cml4MywgY2FtZXJhLndvcmxkTWF0cml4KTtcbiAgICAgICAgICAgIHZlYzMudHJhbnNmb3JtTWF0Myh0aGlzLnJheS5kaXJlY3Rpb24sIHRoaXMucmF5LmRpcmVjdGlvbiwgbWF0cml4Myk7XG4gICAgICAgICAgICB2ZWMzLm5vcm1hbGl6ZSh0aGlzLnJheS5kaXJlY3Rpb24sIHRoaXMucmF5LmRpcmVjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNGJ0LXRgiDRgtC+0YfQutC4INC/0LXRgNC10YHQtdGH0LXQvdC40Y8g0LvRg9GH0LAg0YEg0L7QsdGK0LXQutGC0L7QvFxuICAgICAqIEBwYXJhbSB7T2JqZWN0M0R9IG9iamVjdFxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gW3JlY3Vyc2l2ZT1mYWxzZV0g0J/RgNC+0LLQtdGA0Y/RgtGMINC70Lgg0LTQvtGH0LXRgNC90LjQtSDQvtCx0YrQtdC60YLRi1xuICAgICAqIEBwYXJhbSB7SW50ZXJzZWN0W119IFtpbnRlcnNlY3RzXVxuICAgICAqIEByZXR1cm5zIHtJbnRlcnNlY3RbXX1cbiAgICAgKi9cbiAgICBpbnRlcnNlY3RPYmplY3Qob2JqZWN0LCByZWN1cnNpdmUsIGludGVyc2VjdHMpIHtcbiAgICAgICAgaW50ZXJzZWN0cyA9IGludGVyc2VjdHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgaW50ZXJzZWN0TWV0aG9kID0gdGhpcy5pbnRlcnNlY3RNZXRob2RzQnlUeXBlW29iamVjdC50eXBlXTtcblxuICAgICAgICBpZiAoaW50ZXJzZWN0TWV0aG9kICYmIHRoaXNbaW50ZXJzZWN0TWV0aG9kXSkge1xuICAgICAgICAgICAgdGhpc1tpbnRlcnNlY3RNZXRob2RdKG9iamVjdCwgcmVjdXJzaXZlLCBpbnRlcnNlY3RzKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZWN1cnNpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJzZWN0T2JqZWN0cyhvYmplY3QuY2hpbGRyZW4sIHJlY3Vyc2l2ZSwgaW50ZXJzZWN0cyk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnRlcnNlY3RzLnNvcnQodGhpcy5fZGVzY1NvcnQpO1xuXG4gICAgICAgIHJldHVybiBpbnRlcnNlY3RzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0YnQtdGCINGC0L7Rh9C60Lgg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQu9GD0YfQsCDRgSDQvNCw0YHRgdC40LLQvtC8INC+0LHRitC10LrRgtC+0LJcbiAgICAgKiBAcGFyYW0ge09iamVjdDNEW119IG9iamVjdHNcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWN1cnNpdmU9ZmFsc2VdINCf0YDQvtCy0LXRgNGP0YLRjCDQu9C4INC00L7Rh9C10YDQvdC40LUg0L7QsdGK0LXQutGC0YtcbiAgICAgKiBAcGFyYW0ge0ludGVyc2VjdFtdfSBbaW50ZXJzZWN0c11cbiAgICAgKiBAcmV0dXJucyB7SW50ZXJzZWN0W119XG4gICAgICovXG4gICAgaW50ZXJzZWN0T2JqZWN0cyhvYmplY3RzLCByZWN1cnNpdmUsIGludGVyc2VjdHMpIHtcbiAgICAgICAgaW50ZXJzZWN0cyA9IGludGVyc2VjdHMgfHwgW107XG5cbiAgICAgICAgb2JqZWN0cy5mb3JFYWNoKG9iaiA9PiB0aGlzLmludGVyc2VjdE9iamVjdChvYmosIHJlY3Vyc2l2ZSwgaW50ZXJzZWN0cykpO1xuXG4gICAgICAgIHJldHVybiBpbnRlcnNlY3RzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0YnQtdGCINGC0L7Rh9C60Lgg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQu9GD0YfQsCDRgSB7QGxpbmsgTWVzaH1cbiAgICAgKiBAcGFyYW0ge01lc2h9IG1lc2hcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWN1cnNpdmU9ZmFsc2VdINCf0YDQvtCy0LXRgNGP0YLRjCDQu9C4INC00L7Rh9C10YDQvdC40LUg0L7QsdGK0LXQutGC0YtcbiAgICAgKiBAcGFyYW0ge0ludGVyc2VjdFtdfSBbaW50ZXJzZWN0c11cbiAgICAgKiBAcmV0dXJucyB7SW50ZXJzZWN0W119XG4gICAgICovXG4gICAgaW50ZXJzZWN0TWVzaChtZXNoLCByZWN1cnNpdmUsIGludGVyc2VjdHMpIHtcbiAgICAgICAgaW50ZXJzZWN0cyA9IGludGVyc2VjdHMgfHwgW107XG5cbiAgICAgICAgLy8gZ2V0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL21hc3Rlci9zcmMvb2JqZWN0cy9NZXNoLmpzXG5cbiAgICAgICAgY29uc3QgaW52ZXJzZU1hdHJpeCA9IG1hdDQuY3JlYXRlKCk7XG4gICAgICAgIG1hdDQuaW52ZXJ0KGludmVyc2VNYXRyaXgsIG1lc2gud29ybGRNYXRyaXgpO1xuXG4gICAgICAgIGNvbnN0IHJheSA9IHRoaXMucmF5LmNsb25lKCk7XG4gICAgICAgIHJheS5hcHBseU1hdHJpeDQoaW52ZXJzZU1hdHJpeCk7XG5cbiAgICAgICAgY29uc3QgYm91bmRpbmdCb3ggPSBtZXNoLmdlb21ldHJ5LmdldEJvdW5kaW5nQm94KCk7XG5cbiAgICAgICAgaWYgKCFyYXkuaW50ZXJzZWN0Qm94KGJvdW5kaW5nQm94KSkgeyByZXR1cm4gbWVzaDsgfVxuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQnVmZmVyID0gbWVzaC5nZW9tZXRyeS5idWZmZXJzLnBvc2l0aW9uO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9zaXRpb25CdWZmZXIubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyaWFuZ2xlID0gcG9zaXRpb25CdWZmZXIuZ2V0VHJpYW5nbGUoaSAvIDMpO1xuXG4gICAgICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb25Qb2ludCA9IHJheS5pbnRlcnNlY3RUcmlhbmdsZSh0cmlhbmdsZSwgZmFsc2UpO1xuXG4gICAgICAgICAgICBpZiAoIWludGVyc2VjdGlvblBvaW50KSB7IGNvbnRpbnVlOyB9XG5cbiAgICAgICAgICAgIHZlYzMudHJhbnNmb3JtTWF0NChpbnRlcnNlY3Rpb25Qb2ludCwgaW50ZXJzZWN0aW9uUG9pbnQsIG1lc2gud29ybGRNYXRyaXgpO1xuXG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHZlYzMuZGlzdCh0aGlzLnJheS5vcmlnaW4sIGludGVyc2VjdGlvblBvaW50KTtcblxuICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgdGhpcy5wcmVjaXNpb24gfHwgZGlzdGFuY2UgPCB0aGlzLm5lYXIgfHwgZGlzdGFuY2UgPiB0aGlzLmZhcikgeyBjb250aW51ZTsgfVxuXG4gICAgICAgICAgICBpbnRlcnNlY3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlOiBkaXN0YW5jZSxcbiAgICAgICAgICAgICAgICBwb2ludDogaW50ZXJzZWN0aW9uUG9pbnQsXG4gICAgICAgICAgICAgICAgb2JqZWN0OiBtZXNoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWN1cnNpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJzZWN0T2JqZWN0cyhtZXNoLmNoaWxkcmVuLCByZWN1cnNpdmUsIGludGVyc2VjdHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGludGVyc2VjdHM7XG4gICAgfVxuXG4gICAgX2Rlc2NTb3J0KGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIGEuZGlzdGFuY2UgLSBiLmRpc3RhbmNlO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmF5Y2FzdGVyO1xuXG4vKipcbiAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdC80L7QtSDQt9C90LDRh9C10L3QuNC1INC80LXRgtC+0LTQvtCyIHJheWNhc3QuINCh0L7QtNC10YDQttC40YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YLQvtGH0LrQuCDQv9C10YDQtdGB0LXRh9C10L3QuNGPINGBINC+0LHRitC10LrRgtC+0LwuXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gSW50ZXJzZWN0XG4gKiBAcHJvcGVydHkge051bWJlcn0gZGlzdGFuY2Ug0KDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQvdCw0YfQsNC70LAg0LvRg9GH0LAg0LTQviDRgtC+0YfQutC4INC/0LXRgNC10YHQtdGH0LXQvdC40Y9cbiAqIEBwcm9wZXJ0eSB7dmVjM30gcG9pbnQg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YLQvtGH0LrQuCDQv9C10YDQtdGB0LXRh9C10L3QuNGPXG4gKiBAcHJvcGVydHkge09iamVjdDNEfSBvYmplY3Qg0J7QsdGK0LXQutGCINGBINC60L7RgtC+0YDRi9C8INC/0LXRgNC10YHQtdC60YHRjyDQu9GD0YdcbiAqL1xuIl19
//# sourceMappingURL=data:application/json;base64,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OEU7QUFBRTtBQUFXOztBQUUzRiwyQkFBVyxJQUFYLENBQWdCO0FBQ1osOEJBQVUsUUFERTtBQUVaLDJCQUFPLGlCQUZLO0FBR1osNEJBQVE7QUFISSxpQkFBaEI7QUFLSDs7QUFFRCxnQkFBSSxTQUFKLEVBQWU7QUFDWCxxQkFBSyxnQkFBTCxDQUFzQixLQUFLLFFBQTNCLEVBQXFDLFNBQXJDLEVBQWdELFVBQWhEO0FBQ0g7O0FBRUQsbUJBQU8sVUFBUDtBQUNIOzs7a0NBRVMsQyxFQUFHLEMsRUFBRztBQUNaLG1CQUFPLEVBQUUsUUFBRixHQUFhLEVBQUUsUUFBdEI7QUFDSDs7Ozs7O2tCQUdVLFM7O0FBRWYiLCJmaWxlIjoiUmF5Y2FzdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt2ZWMzLCBtYXQzLCBtYXQ0fSBmcm9tICdnbC1tYXRyaXgnO1xuaW1wb3J0IFJheSBmcm9tICcuL21hdGgvUmF5JztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQu9C10LPQutC+INC+0L/RgNC10LTQtdC70Y/RgtGMINC/0LXRgNC10YHQtdGH0LXQvdC40Y8g0LvRg9GH0LAg0YEg0L7QsdGK0LXQutGC0LDQvNC4LlxuICog0J3QsNC/0YDQuNC80LXRgCwg0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0LrQu9C40LrQsCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gKi9cbmNsYXNzIFJheWNhc3RlciB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHt2ZWMzfSBvcmlnaW4g0KLQvtGH0LrQsCDQvdCw0YfQsNC70LAg0LvRg9GH0LBcbiAgICAgKiBAcGFyYW0ge3ZlYzN9IGRpcmVjdGlvbiDQndCw0L/RgNCw0LLQu9C10L3QuNC1INC70YPRh9CwXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IFtuZWFyPTBdINCc0LjQvdC40LzQsNC70YzQvdC+0LUg0YDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQvdCw0YfQsNC70LAg0LTQviDRgtC+0YfQutC4INC/0LXRgNC10YHQtdGH0LXQvdC40Y9cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gW2Zhcj1JbmZpbml0eV0g0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INGA0LDRgdGB0YLQvtGP0L3QuNC1INC+0YIg0L3QsNGH0LDQu9CwINC00L4g0YLQvtGH0LrQuCDQv9C10YDQtdGB0LXRh9C10L3QuNGPXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3JpZ2luLCBkaXJlY3Rpb24sIG5lYXIsIGZhcikge1xuICAgICAgICB0aGlzLnByZWNpc2lvbiA9IDAuMDAwMTtcbiAgICAgICAgdGhpcy5yYXkgPSBuZXcgUmF5KG9yaWdpbiwgZGlyZWN0aW9uKTtcbiAgICAgICAgdGhpcy5uZWFyID0gbmVhciB8fCAwO1xuICAgICAgICB0aGlzLmZhciA9IGZhciB8fCBJbmZpbml0eTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KHQv9C40YHQvtC6INC80LXRgtC+0LTQvtCyINC/0YDQvtCy0LXRgNC60Lgg0L/QtdGA0LXRgdC10YfQtdC90LjQuSDQtNC70Y8g0YDQsNC30L3Ri9GFINGC0LjQv9C+0LIg0L7QsdGK0LXQutGC0L7QslxuICAgICAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbnRlcnNlY3RNZXRob2RzQnlUeXBlID0ge1xuICAgICAgICAgICAgW2xpYkNvbnN0YW50cy5NRVNIXTogJ2ludGVyc2VjdE1lc2gnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0L3QsNGH0LDQu9C+INC70YPRh9CwINCyINC/0L7Qu9C+0LbQtdC90LjQtSDQutCw0LzQtdGA0YssINCwINC90LDQv9GA0LDQstC70LXQvdC40LUg0L/RgNC+0LXRhtC40YDRg9C10YIg0YEg0L/QtdGA0LXQtNCw0L3QvdGL0YUg0LrQvtC+0YDQtNC40L3QsNGCXG4gICAgICog0Y3QutGA0LDQvdCwINCyINGB0LjRgdGC0LXQvNGDINC60L7QvtGA0LTQuNC90LDRgiDQutCw0LzQtdGA0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3ZlYzN9IGNvb3JkaW5hdGVzXG4gICAgICogQHBhcmFtIHtDYW1lcmF9IGNhbWVyYVxuICAgICAqL1xuICAgIHNldEZyb21DYW1lcmEoY29vcmRpbmF0ZXMsIGNhbWVyYSkge1xuICAgICAgICBpZiAoY2FtZXJhLnR5cGUgPT09IGxpYkNvbnN0YW50cy5QRVJTUEVDVElWRV9DQU1FUkEpIHtcbiAgICAgICAgICAgIHRoaXMucmF5Lm9yaWdpbiA9IHZlYzMuY2xvbmUoY2FtZXJhLnBvc2l0aW9uKTtcblxuICAgICAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHZlYzMuZnJvbVZhbHVlcyhjb29yZGluYXRlc1swXSwgY29vcmRpbmF0ZXNbMV0sIDAuNSk7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSBjYW1lcmEudW5wcm9qZWN0KGRpcmVjdGlvbik7XG4gICAgICAgICAgICB2ZWMzLnN1YihkaXJlY3Rpb24sIGRpcmVjdGlvbiwgY2FtZXJhLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIHZlYzMubm9ybWFsaXplKGRpcmVjdGlvbiwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIHRoaXMucmF5LmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcblxuICAgICAgICB9IGVsc2UgaWYgKGNhbWVyYS50eXBlID09PSBsaWJDb25zdGFudHMuT1JUSE9HUkFQSElDX0NBTUVSQSkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gdmVjMy5mcm9tVmFsdWVzKGNvb3JkaW5hdGVzWzBdLCBjb29yZGluYXRlc1sxXSwgLTEpO1xuICAgICAgICAgICAgdGhpcy5yYXkub3JpZ2luID0gY2FtZXJhLnVucHJvamVjdChvcmlnaW4pO1xuXG4gICAgICAgICAgICB0aGlzLnJheS5kaXJlY3Rpb24gPSB2ZWMzLmZyb21WYWx1ZXMoMCwgMCwgLTEpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRyaXgzID0gbWF0My5jcmVhdGUoKTtcbiAgICAgICAgICAgIG1hdDMuZnJvbU1hdDQobWF0cml4MywgY2FtZXJhLndvcmxkTWF0cml4KTtcbiAgICAgICAgICAgIHZlYzMudHJhbnNmb3JtTWF0Myh0aGlzLnJheS5kaXJlY3Rpb24sIHRoaXMucmF5LmRpcmVjdGlvbiwgbWF0cml4Myk7XG4gICAgICAgICAgICB2ZWMzLm5vcm1hbGl6ZSh0aGlzLnJheS5kaXJlY3Rpb24sIHRoaXMucmF5LmRpcmVjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNGJ0LXRgiDRgtC+0YfQutC4INC/0LXRgNC10YHQtdGH0LXQvdC40Y8g0LvRg9GH0LAg0YEg0L7QsdGK0LXQutGC0L7QvFxuICAgICAqIEBwYXJhbSB7T2JqZWN0M0R9IG9iamVjdFxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gW3JlY3Vyc2l2ZT1mYWxzZV0g0J/RgNC+0LLQtdGA0Y/RgtGMINC70Lgg0LTQvtGH0LXRgNC90LjQtSDQvtCx0YrQtdC60YLRi1xuICAgICAqIEBwYXJhbSB7SW50ZXJzZWN0W119IFtpbnRlcnNlY3RzXVxuICAgICAqIEByZXR1cm5zIHtJbnRlcnNlY3RbXX1cbiAgICAgKi9cbiAgICBpbnRlcnNlY3RPYmplY3Qob2JqZWN0LCByZWN1cnNpdmUsIGludGVyc2VjdHMpIHtcbiAgICAgICAgaW50ZXJzZWN0cyA9IGludGVyc2VjdHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgaW50ZXJzZWN0TWV0aG9kID0gdGhpcy5pbnRlcnNlY3RNZXRob2RzQnlUeXBlW29iamVjdC50eXBlXTtcblxuICAgICAgICBpZiAoaW50ZXJzZWN0TWV0aG9kICYmIHRoaXNbaW50ZXJzZWN0TWV0aG9kXSkge1xuICAgICAgICAgICAgdGhpc1tpbnRlcnNlY3RNZXRob2RdKG9iamVjdCwgcmVjdXJzaXZlLCBpbnRlcnNlY3RzKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZWN1cnNpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJzZWN0T2JqZWN0cyhvYmplY3QuY2hpbGRyZW4sIHJlY3Vyc2l2ZSwgaW50ZXJzZWN0cyk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnRlcnNlY3RzLnNvcnQodGhpcy5fZGVzY1NvcnQpO1xuXG4gICAgICAgIHJldHVybiBpbnRlcnNlY3RzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0YnQtdGCINGC0L7Rh9C60Lgg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQu9GD0YfQsCDRgSDQvNCw0YHRgdC40LLQvtC8INC+0LHRitC10LrRgtC+0LJcbiAgICAgKiBAcGFyYW0ge09iamVjdDNEW119IG9iamVjdHNcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWN1cnNpdmU9ZmFsc2VdINCf0YDQvtCy0LXRgNGP0YLRjCDQu9C4INC00L7Rh9C10YDQvdC40LUg0L7QsdGK0LXQutGC0YtcbiAgICAgKiBAcGFyYW0ge0ludGVyc2VjdFtdfSBbaW50ZXJzZWN0c11cbiAgICAgKiBAcmV0dXJucyB7SW50ZXJzZWN0W119XG4gICAgICovXG4gICAgaW50ZXJzZWN0T2JqZWN0cyhvYmplY3RzLCByZWN1cnNpdmUsIGludGVyc2VjdHMpIHtcbiAgICAgICAgaW50ZXJzZWN0cyA9IGludGVyc2VjdHMgfHwgW107XG5cbiAgICAgICAgb2JqZWN0cy5mb3JFYWNoKG9iaiA9PiB0aGlzLmludGVyc2VjdE9iamVjdChvYmosIHJlY3Vyc2l2ZSwgaW50ZXJzZWN0cykpO1xuXG4gICAgICAgIHJldHVybiBpbnRlcnNlY3RzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0YnQtdGCINGC0L7Rh9C60Lgg0L/QtdGA0LXRgdC10YfQtdC90LjRjyDQu9GD0YfQsCDRgSB7QGxpbmsgTWVzaH1cbiAgICAgKiBAcGFyYW0ge01lc2h9IG1lc2hcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWN1cnNpdmU9ZmFsc2VdINCf0YDQvtCy0LXRgNGP0YLRjCDQu9C4INC00L7Rh9C10YDQvdC40LUg0L7QsdGK0LXQutGC0YtcbiAgICAgKiBAcGFyYW0ge0ludGVyc2VjdFtdfSBbaW50ZXJzZWN0c11cbiAgICAgKiBAcmV0dXJucyB7SW50ZXJzZWN0W119XG4gICAgICovXG4gICAgaW50ZXJzZWN0TWVzaChtZXNoLCByZWN1cnNpdmUsIGludGVyc2VjdHMpIHtcbiAgICAgICAgaW50ZXJzZWN0cyA9IGludGVyc2VjdHMgfHwgW107XG5cbiAgICAgICAgLy8gZ2V0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9ibG9iL21hc3Rlci9zcmMvb2JqZWN0cy9NZXNoLmpzXG5cbiAgICAgICAgY29uc3QgaW52ZXJzZU1hdHJpeCA9IG1hdDQuY3JlYXRlKCk7XG4gICAgICAgIG1hdDQuaW52ZXJ0KGludmVyc2VNYXRyaXgsIG1lc2gud29ybGRNYXRyaXgpO1xuXG4gICAgICAgIGNvbnN0IHJheSA9IHRoaXMucmF5LmNsb25lKCk7XG4gICAgICAgIHJheS5hcHBseU1hdHJpeDQoaW52ZXJzZU1hdHJpeCk7XG5cbiAgICAgICAgY29uc3QgYm91bmRpbmdCb3ggPSBtZXNoLmdlb21ldHJ5LmdldEJvdW5kaW5nQm94KCk7XG5cbiAgICAgICAgaWYgKCFyYXkuaW50ZXJzZWN0Qm94KGJvdW5kaW5nQm94KSkgeyByZXR1cm4gbWVzaDsgfVxuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQnVmZmVyID0gbWVzaC5nZW9tZXRyeS5idWZmZXJzLnBvc2l0aW9uO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9zaXRpb25CdWZmZXIubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyaWFuZ2xlID0gcG9zaXRpb25CdWZmZXIuZ2V0VHJpYW5nbGUoaSAvIDMpO1xuXG4gICAgICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb25Qb2ludCA9IHJheS5pbnRlcnNlY3RUcmlhbmdsZSh0cmlhbmdsZSwgZmFsc2UpO1xuXG4gICAgICAgICAgICBpZiAoIWludGVyc2VjdGlvblBvaW50KSB7IGNvbnRpbnVlOyB9XG5cbiAgICAgICAgICAgIHZlYzMudHJhbnNmb3JtTWF0NChpbnRlcnNlY3Rpb25Qb2ludCwgaW50ZXJzZWN0aW9uUG9pbnQsIG1lc2gud29ybGRNYXRyaXgpO1xuXG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHZlYzMuZGlzdCh0aGlzLnJheS5vcmlnaW4sIGludGVyc2VjdGlvblBvaW50KTtcblxuICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgdGhpcy5wcmVjaXNpb24gfHwgZGlzdGFuY2UgPCB0aGlzLm5lYXIgfHwgZGlzdGFuY2UgPiB0aGlzLmZhcikgeyBjb250aW51ZTsgfVxuXG4gICAgICAgICAgICBpbnRlcnNlY3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlOiBkaXN0YW5jZSxcbiAgICAgICAgICAgICAgICBwb2ludDogaW50ZXJzZWN0aW9uUG9pbnQsXG4gICAgICAgICAgICAgICAgb2JqZWN0OiBtZXNoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZWN1cnNpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJzZWN0T2JqZWN0cyhtZXNoLmNoaWxkcmVuLCByZWN1cnNpdmUsIGludGVyc2VjdHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGludGVyc2VjdHM7XG4gICAgfVxuXG4gICAgX2Rlc2NTb3J0KGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIGEuZGlzdGFuY2UgLSBiLmRpc3RhbmNlO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmF5Y2FzdGVyO1xuXG4vKipcbiAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdC80L7QtSDQt9C90LDRh9C10L3QuNC1INC80LXRgtC+0LTQvtCyIHJheWNhc3QuINCh0L7QtNC10YDQttC40YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YLQvtGH0LrQuCDQv9C10YDQtdGB0LXRh9C10L3QuNGPINGBINC+0LHRitC10LrRgtC+0LwuXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gSW50ZXJzZWN0XG4gKiBAcHJvcGVydHkge051bWJlcn0gZGlzdGFuY2Ug0KDQsNGB0YHRgtC+0Y/QvdC40LUg0L7RgiDQvdCw0YfQsNC70LAg0LvRg9GH0LAg0LTQviDRgtC+0YfQutC4INC/0LXRgNC10YHQtdGH0LXQvdC40Y9cbiAqIEBwcm9wZXJ0eSB7dmVjM30gcG9pbnQg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YLQvtGH0LrQuCDQv9C10YDQtdGB0LXRh9C10L3QuNGPXG4gKiBAcHJvcGVydHkge09iamVjdDNEfSBvYmplY3Qg0J7QsdGK0LXQutGCINGBINC60L7RgtC+0YDRi9C8INC/0LXRgNC10YHQtdC60YHRjyDQu9GD0YdcbiAqL1xuIl19

@@ -236,3 +236,5 @@ 'use strict';

this._plugins.forEach(function (plugin) {
plugin.render(state);
if (plugin.haveObjects()) {
plugin.render(state);
}
});

@@ -261,3 +263,3 @@

Renderer.plugins.sort(function (a, b) {
return b.order < a.order;
return a.order - b.order;
});

@@ -301,2 +303,2 @@ }

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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c0NvbnRlbnQiOlsiLyoqXG4gKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGPIFdlYkdMINC60L7QvdGC0LXQutGB0YLQsCDQuCDQvtGC0YDQuNGB0L7QstC60Lgg0L7QsdGK0LXQutGC0L7Qsi5cbiAqINCU0LvRjyDQvdC10LrQvtGC0L7RgNGL0YUg0L7QsdGK0LXQutGC0L7QsiDQvNC+0LbQtdGCINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDRgdC/0LXRhtC40YTQuNGH0L3Ri9C1INGA0LXQvdC00LXRgNGLLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBbb3B0aW9ucy5jYW52YXNdINCt0LvQtdC80LXQvdGCIGNhbnZhc1xuICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IFtvcHRpb25zLmdsXSDQldGB0LvQuCDRjdC70LXQvNC10L3RgiBjYW52YXMg0L3QtSDRg9C60LDQt9Cw0L0sINGC0L4g0LzQvtC20L3QviDQvdCw0L/RgNGP0LzRg9GOINC/0LXRgNC10LTQsNGC0YwgV2ViR0wg0LrQvtC90YLQtdC60YHRglxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLnBpeGVsUmF0aW89MV0gUGl4ZWwgcmF0aW8g0Y3QutGA0LDQvdCwXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLmFudGlhbGlhcz10cnVlXSDQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LvQuCDQsNC90YLQuNCw0LvQuNCw0YHQuNC90LNcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuYXV0b0NsZWFyPXRydWVdINCh0YLQuNGA0LDRgtGMINC70Lgg0L/RgNC+0YjQu9GL0Lkg0LrQsNC00YAg0L/QtdGA0LXQtCDQvdC+0LLRi9C5INGA0LXQvdC00LXRgNC40L3Qs9C+0LxcbiAqIEBwYXJhbSB7QXJyYXl9IFtvcHRpb25zLmNsZWFyQ29sb3I9dHJ1ZV0g0KbQstC10YIg0LfQsNC70LjQstC60Lgg0LIg0YTQvtGA0LzQsNGC0LUgUkdCQVxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zLnNvcnRPYmplY3RzPXRydWVdINCd0YPQttC90L4g0LvQuCDRgdC+0YDRgtC40YDQvtCy0LDRgtGMINC/0YDQvtC30YDQsNGH0L3Ri9C1INC+0LHRitC10LrRgtGLINC/0L4g0YPQtNCw0LvQtdC90L3QvtGB0YLQuFxuICog0LjQu9C4INC/0L4gcmVuZGVyT3JkZXJcbiAqICovXG5jbGFzcyBSZW5kZXJlciB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICBpZiAob3B0aW9ucy5jYW52YXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQgPSB0eXBlb2Ygb3B0aW9ucy5jYW52YXMgPT09ICdzdHJpbmcnID9cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvcHRpb25zLmNhbnZhcykgOiBvcHRpb25zLmNhbnZhcztcblxuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHtcbiAgICAgICAgICAgICAgICBhbnRpYWxpYXM6IG9wdGlvbnMuYW50aWFsaWFzICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmFudGlhbGlhcyA6IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuX2dsID0gdGhpcy5fY2FudmFzRWxlbWVudC5nZXRDb250ZXh0KCd3ZWJnbCcsIGF0dHJpYnV0ZXMpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FudmFzRWxlbWVudC5nZXRDb250ZXh0KCdleHBlcmltZW50YWwtd2ViZ2wnLCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2dsID0gb3B0aW9ucy5nbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BpeGVsUmF0aW8gPSBvcHRpb25zLnBpeGVsUmF0aW8gfHwgMTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J7Qv9GA0LXQtNC10LvRj9C10YIg0YHRgtC40YDQsNGC0Ywg0LvQuCDQv9GA0L7RiNC70YvQuSDQutCw0LTRgCDQv9C10YDQtdC0INC90L7QstGL0Lwg0YDQtdC90LTQtdGA0LjQvdCz0L7QvFxuICAgICAgICAgKiBAdHlwZSB7Qm9vbGVhbn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYXV0b0NsZWFyID0gb3B0aW9ucy5hdXRvQ2xlYXIgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuYXV0b0NsZWFyIDogdHJ1ZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KbQstC10YIg0LfQsNC70LjQstC60Lgg0LIg0YTQvtGA0LzQsNGC0LUgUkdCQVxuICAgICAgICAgKiBAdHlwZSB7QXJyYXl9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNsZWFyQ29sb3IgPSBvcHRpb25zLmNsZWFyQ29sb3IgfHwgWzEsIDEsIDEsIDFdO1xuICAgICAgICB0aGlzLnNvcnRPYmplY3RzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9wbHVnaW5zID0gW107XG4gICAgICAgIHRoaXMuX3BsdWdpbnNCeVR5cGUgPSB7fTtcbiAgICAgICAgUmVuZGVyZXIucGx1Z2lucy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBlbC5QbHVnaW4odGhpcyk7XG4gICAgICAgICAgICB0aGlzLl9wbHVnaW5zLnB1c2gocGx1Z2luKTtcbiAgICAgICAgICAgIHRoaXMuX3BsdWdpbnNCeVR5cGVbcGx1Z2luLnR5cGVdID0gcGx1Z2luO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQv9Cw0YDQsNC80LXRgtGAIHBpeGVsIHJhdGlvXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHZhbHVlXG4gICAgICovXG4gICAgc2V0UGl4ZWxSYXRpbyh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9waXhlbFJhdGlvID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLQtdC60YPRidC40LkgcGl4ZWwgcmF0aW9cbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfVxuICAgICAqL1xuICAgIGdldFBpeGVsUmF0aW8oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9waXhlbFJhdGlvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGA0LDQt9C80LXRgNGLINGN0LvQtdC80LXQvdGC0YMgY2FudmFzINC4IHZpZXdwb3J0INC00LvRjyBXZWJHTFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB3aWR0aCDQqNC40YDQuNC90LAg0LIg0L/QuNC60YHQtdC70Y/RhVxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBoZWlnaHQg0JLRi9GB0L7RgtCwINCyINC/0LjQutGB0LXQu9GP0YVcbiAgICAgKi9cbiAgICBzZXRTaXplKHdpZHRoLCBoZWlnaHQpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IFtcbiAgICAgICAgICAgIHdpZHRoICogdGhpcy5fcGl4ZWxSYXRpbyxcbiAgICAgICAgICAgIGhlaWdodCAqIHRoaXMuX3BpeGVsUmF0aW9cbiAgICAgICAgXTtcblxuICAgICAgICBpZiAodGhpcy5fY2FudmFzRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fY2FudmFzRWxlbWVudC53aWR0aCA9IHRoaXMuX3NpemVbMF07XG4gICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LmhlaWdodCA9IHRoaXMuX3NpemVbMV07XG4gICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgICAgICAgICAgdGhpcy5fY2FudmFzRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWaWV3cG9ydCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHZpZXdwb3J0INC00LvRjyBXZWJHTFxuICAgICAqINCV0YHQu9C4INGA0LDQt9C80LXRgNGLINC90LUg0YPQutCw0LfQsNC90YssINGC0L4g0LLRi9GB0YLQsNCy0LvRj9C10YIg0YDQsNC30LzQtdGA0Ysg0YPQutCw0LfQsNC90L3Ri9C1INCyINGE0YPQvdC60YbQuNC4IHtAbGluayBSZW5kZXJlciNzZXRTaXplfVxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBbd2lkdGhdINCo0LjRgNC40L3QsCDQsiDQv9C40LrRgdC10LvRj9GFXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IFtoZWlnaHRdINCS0YvRgdC+0YLQsCDQsiDQv9C40LrRgdC10LvRj9GFXG4gICAgICovXG4gICAgc2V0Vmlld3BvcnQod2lkdGgsIGhlaWdodCkge1xuICAgICAgICBpZiAod2lkdGggIT09IHVuZGVmaW5lZCAmJiBoZWlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fZ2wudmlld3BvcnQoMCwgMCwgd2lkdGgsIGhlaWdodCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9nbC52aWV3cG9ydCgwLCAwLCB0aGlzLl9zaXplWzBdLCB0aGlzLl9zaXplWzFdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGC0LXQutGD0YnQuNC5IHZpZXdwb3J0IFdlYkdMXG4gICAgICogQHJldHVybnMge0FycmF5fVxuICAgICAqL1xuICAgIGdldFNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIFJlbmRlclRhcmdldFxuICAgICAqIEBwYXJhbSB7P1JlbmRlclRhcmdldH0gcmVuZGVyVGFyZ2V0XG4gICAgICovXG4gICAgc2V0UmVuZGVyVGFyZ2V0KHJlbmRlclRhcmdldCkge1xuICAgICAgICB0aGlzLl9yZW5kZXJUYXJnZXQgPSByZW5kZXJUYXJnZXQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0YfQuNGC0YvQstCw0LXRgiDRg9C60LDQt9Cw0L3QvdGD0Y4g0L7QsdC70LDRgdGC0Ywg0L/QuNC60YHQtdC70LXQuSDQsiDQvNCw0YHRgdC40LJcbiAgICAgKiBAcGFyYW0ge051bWJlcn0geCDQmtC+0L7RgNC00LjQvdCw0YLRiyDQvdCw0YfQsNC70LAg0L7QsdC70LDRgdGC0LhcbiAgICAgKiBAcGFyYW0ge051bWJlcn0geSDQmtC+0L7RgNC00LjQvdCw0YLRiyDQvdCw0YfQsNC70LAg0L7QsdC70LDRgdGC0LhcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gd2lkdGgg0KjQuNGA0LjQvdCwINC+0LHQu9Cw0YHRgtC4XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGhlaWdodCDQktGL0YHQvtGC0LAg0L7QsdC70LDRgdGC0LhcbiAgICAgKiBAcGFyYW0ge1R5cGVkQXJyYXl9IGFycmF5INCc0LDRgdGB0LjQsiDQtNC70Y8g0LfQsNC/0LjRgdC4INC00LDQvdC90YvRhVxuICAgICAqL1xuICAgIHJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgYXJyYXkpIHtcbiAgICAgICAgY29uc3QgZ2wgPSB0aGlzLl9nbDtcblxuICAgICAgICBpZiAodGhpcy5fcmVuZGVyVGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJUYXJnZXQuYmluZChnbCk7XG4gICAgICAgICAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGFycmF5KTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlclRhcmdldC51bmJpbmQoZ2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2wucmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBhcnJheSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntGH0LjRidCw0LXRgiDRgtC10LrRg9GJ0LjQuSDQutCw0LTRgCDQuCDQt9Cw0LvQuNCy0LDQtdGCINGG0LLQtdGC0L7QvCDRg9C60LDQt9Cw0L3QvdGL0Lwg0LIgY2xlYXJDb2xvclxuICAgICAqL1xuICAgIGNsZWFyKCkge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuX2dsO1xuXG4gICAgICAgIGdsLmNsZWFyQ29sb3IuYXBwbHkoZ2wsIHRoaXMuY2xlYXJDb2xvcik7XG4gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNC40YHRg9C10YIg0YHRhtC10L3Rg1xuICAgICAqIEBwYXJhbSB7U2NlbmV9IHNjZW5lINCh0YbQtdC90LBcbiAgICAgKiBAcGFyYW0ge0NhbWVyYX0gY2FtZXJhINCa0LDQvNC10YDQsFxuICAgICAqL1xuICAgIHJlbmRlcihzY2VuZSwgY2FtZXJhKSB7XG4gICAgICAgIGNvbnN0IGdsID0gdGhpcy5fZ2w7XG5cbiAgICAgICAgc2NlbmUudHlwaWZ5Rm9yUmVuZGVyKHRoaXMuX3BsdWdpbnNCeVR5cGUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9yZW5kZXJUYXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlclRhcmdldC5iaW5kKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7XG4gICAgICAgIGdsLmNsZWFyU3RlbmNpbCgwKTtcblxuICAgICAgICBpZiAodGhpcy5hdXRvQ2xlYXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbWVyYS51cGRhdGVMb2NhbE1hdHJpeCgpO1xuICAgICAgICBjYW1lcmEudXBkYXRlV29ybGRNYXRyaXgoKTtcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgICAgIHJlbmRlcmVyOiB0aGlzLFxuICAgICAgICAgICAgc2NlbmUsXG4gICAgICAgICAgICBjYW1lcmEsXG4gICAgICAgICAgICBnbFxuICAgICAgICB9O1xuICAgICAgICAvLyBUT0RPOiBtYWtlIHN0YXRlIGltbXV0YWJsZT9cblxuICAgICAgICB0aGlzLl9wbHVnaW5zLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgICAgIHBsdWdpbi5yZW5kZXIoc3RhdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5fcmVuZGVyVGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJUYXJnZXQudW5iaW5kKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCU0L7QsdCw0LLQu9GP0LXRgiB7QGxpbmsgUmVuZGVyZXJQbHVnaW59INC6INGA0LXQvdC00LXRgNGDLiDQmiDRgNC10L3QtNC10YDRgyDQvNC+0LbQtdGCINCx0YvRgtGMINC00L7QsdCw0LLQu9C10L0g0YLQvtC70YzQutC+INC+0LTQuNC9INC/0LvQsNCz0LjQvSDQutCw0LbQtNC+0LPQviDRgtC40L/QsC5cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gb3JkZXIg0JrQsNC20LTRi9C5INC/0LvQsNCz0LjQvSDQstGL0L/QvtC70L3Rj9C10YLRgdGPINC/0YDQuCDRgNC10L3QtNC10YDQuNC90LPQtSDQv9C+INCy0L7Qt9GA0LDRgdGC0LDQvdC40Y4gb3JkZXJcbiAgICAgKiBAcGFyYW0ge1BsdWdpbn0gUGx1Z2luINCa0LvQsNGB0YEg0L/Qu9Cw0LPQuNC90LBcbiAgICAgKi9cbiAgICBzdGF0aWMgYWRkUGx1Z2luKG9yZGVyLCBQbHVnaW4pIHtcbiAgICAgICAgUmVuZGVyZXIucGx1Z2lucy5wdXNoKHtcbiAgICAgICAgICAgIFBsdWdpbjogUGx1Z2luLFxuICAgICAgICAgICAgb3JkZXI6IG9yZGVyXG4gICAgICAgIH0pO1xuICAgICAgICBSZW5kZXJlci5wbHVnaW5zLnNvcnQoKGEsIGIpID0+IGIub3JkZXIgPCBhLm9yZGVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiB7QGxpbmsgUmVuZGVyZXJQbHVnaW59INC40Lcg0YDQtdC90LTQtdGA0LAuXG4gICAgICogQHBhcmFtIHtQbHVnaW59IFBsdWdpbiDQmtC70LDRgdGBINC/0LvQsNCz0LjQvdCwXG4gICAgICovXG4gICAgc3RhdGljIHJlbW92ZVBsdWdpbihQbHVnaW4pIHtcbiAgICAgICAgUmVuZGVyZXIucGx1Z2lucy5zb21lKChlbCwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVsLlBsdWdpbiA9PT0gUGx1Z2luKSB7XG4gICAgICAgICAgICAgICAgUmVuZGVyZXIucGx1Z2lucy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuUmVuZGVyZXIucGx1Z2lucyA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBSZW5kZXJlcjtcblxuLyoqXG4gKiDQodC+0YHRgtC+0Y/QvdC40LUg0YDQtdC90LTQtdGA0LAuINCf0LXRgNC10LTQsNC10YLRgdGPINC+0LHRitC10LrRgtCw0Lwg0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuC5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdGF0ZVxuICogQHByb3BlcnR5IHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gKiBAcHJvcGVydHkge1NjZW5lfSBzY2VuZVxuICogQHByb3BlcnR5IHtDYW1lcmF9IGNhbWVyYVxuICogQHByb3BlcnR5IHtSZW5kZXJlcn0gcmVuZGVyZXJcbiAqL1xuIl19
//# sourceMappingURL=data:application/json;base64,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QkFBTyxJQUFQO0FBQ0g7QUFDSixhQUxEO0FBTUg7Ozs7OztBQUdMLFNBQVMsT0FBVCxHQUFtQixFQUFuQjs7a0JBRWUsUTs7QUFFZiIsImZpbGUiOiJSZW5kZXJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjRjyBXZWJHTCDQutC+0L3RgtC10LrRgdGC0LAg0Lgg0L7RgtGA0LjRgdC+0LLQutC4INC+0LHRitC10LrRgtC+0LIuXG4gKiDQlNC70Y8g0L3QtdC60L7RgtC+0YDRi9GFINC+0LHRitC10LrRgtC+0LIg0LzQvtC20LXRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0YHQv9C10YbQuNGE0LjRh9C90YvQtSDRgNC10L3QtNC10YDRiy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gW29wdGlvbnMuY2FudmFzXSDQrdC70LXQvNC10L3RgiBjYW52YXNcbiAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBbb3B0aW9ucy5nbF0g0JXRgdC70Lgg0Y3Qu9C10LzQtdC90YIgY2FudmFzINC90LUg0YPQutCw0LfQsNC9LCDRgtC+INC80L7QttC90L4g0L3QsNC/0YDRj9C80YPRjiDQv9C10YDQtdC00LDRgtGMIFdlYkdMINC60L7QvdGC0LXQutGB0YJcbiAqIEBwYXJhbSB7TnVtYmVyfSBbb3B0aW9ucy5waXhlbFJhdGlvPTFdIFBpeGVsIHJhdGlvINGN0LrRgNCw0L3QsFxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5hbnRpYWxpYXM9dHJ1ZV0g0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC70Lgg0LDQvdGC0LjQsNC70LjQsNGB0LjQvdCzXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLmF1dG9DbGVhcj10cnVlXSDQodGC0LjRgNCw0YLRjCDQu9C4INC/0YDQvtGI0LvRi9C5INC60LDQtNGAINC/0LXRgNC10LQg0L3QvtCy0YvQuSDRgNC10L3QtNC10YDQuNC90LPQvtC8XG4gKiBAcGFyYW0ge0FycmF5fSBbb3B0aW9ucy5jbGVhckNvbG9yPXRydWVdINCm0LLQtdGCINC30LDQu9C40LLQutC4INCyINGE0L7RgNC80LDRgtC1IFJHQkFcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5zb3J0T2JqZWN0cz10cnVlXSDQndGD0LbQvdC+INC70Lgg0YHQvtGA0YLQuNGA0L7QstCw0YLRjCDQv9GA0L7Qt9GA0LDRh9C90YvQtSDQvtCx0YrQtdC60YLRiyDQv9C+INGD0LTQsNC70LXQvdC90L7RgdGC0LhcbiAqINC40LvQuCDQv9C+IHJlbmRlck9yZGVyXG4gKiAqL1xuY2xhc3MgUmVuZGVyZXIge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuY2FudmFzKSB7XG4gICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50ID0gdHlwZW9mIG9wdGlvbnMuY2FudmFzID09PSAnc3RyaW5nJyA/XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3B0aW9ucy5jYW52YXMpIDogb3B0aW9ucy5jYW52YXM7XG5cbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB7XG4gICAgICAgICAgICAgICAgYW50aWFsaWFzOiBvcHRpb25zLmFudGlhbGlhcyAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5hbnRpYWxpYXMgOiB0cnVlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLl9nbCA9IHRoaXMuX2NhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dCgnd2ViZ2wnLCBhdHRyaWJ1dGVzKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFsLXdlYmdsJywgYXR0cmlidXRlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9nbCA9IG9wdGlvbnMuZ2w7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9waXhlbFJhdGlvID0gb3B0aW9ucy5waXhlbFJhdGlvIHx8IDE7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCe0L/RgNC10LTQtdC70Y/QtdGCINGB0YLQuNGA0LDRgtGMINC70Lgg0L/RgNC+0YjQu9GL0Lkg0LrQsNC00YAg0L/QtdGA0LXQtCDQvdC+0LLRi9C8INGA0LXQvdC00LXRgNC40L3Qs9C+0LxcbiAgICAgICAgICogQHR5cGUge0Jvb2xlYW59XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmF1dG9DbGVhciA9IG9wdGlvbnMuYXV0b0NsZWFyICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmF1dG9DbGVhciA6IHRydWU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCm0LLQtdGCINC30LDQu9C40LLQutC4INCyINGE0L7RgNC80LDRgtC1IFJHQkFcbiAgICAgICAgICogQHR5cGUge0FycmF5fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jbGVhckNvbG9yID0gb3B0aW9ucy5jbGVhckNvbG9yIHx8IFsxLCAxLCAxLCAxXTtcbiAgICAgICAgdGhpcy5zb3J0T2JqZWN0cyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fcGx1Z2lucyA9IFtdO1xuICAgICAgICB0aGlzLl9wbHVnaW5zQnlUeXBlID0ge307XG4gICAgICAgIFJlbmRlcmVyLnBsdWdpbnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwbHVnaW4gPSBuZXcgZWwuUGx1Z2luKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5fcGx1Z2lucy5wdXNoKHBsdWdpbik7XG4gICAgICAgICAgICB0aGlzLl9wbHVnaW5zQnlUeXBlW3BsdWdpbi50eXBlXSA9IHBsdWdpbjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0L/QsNGA0LDQvNC10YLRgCBwaXhlbCByYXRpb1xuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB2YWx1ZVxuICAgICAqL1xuICAgIHNldFBpeGVsUmF0aW8odmFsdWUpIHtcbiAgICAgICAgdGhpcy5fcGl4ZWxSYXRpbyA9IHZhbHVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGC0LXQutGD0YnQuNC5IHBpeGVsIHJhdGlvXG4gICAgICogQHJldHVybnMge051bWJlcn1cbiAgICAgKi9cbiAgICBnZXRQaXhlbFJhdGlvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGl4ZWxSYXRpbztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgNCw0LfQvNC10YDRiyDRjdC70LXQvNC10L3RgtGDIGNhbnZhcyDQuCB2aWV3cG9ydCDQtNC70Y8gV2ViR0xcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gd2lkdGgg0KjQuNGA0LjQvdCwINCyINC/0LjQutGB0LXQu9GP0YVcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0INCS0YvRgdC+0YLQsCDQsiDQv9C40LrRgdC10LvRj9GFXG4gICAgICovXG4gICAgc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSBbXG4gICAgICAgICAgICB3aWR0aCAqIHRoaXMuX3BpeGVsUmF0aW8sXG4gICAgICAgICAgICBoZWlnaHQgKiB0aGlzLl9waXhlbFJhdGlvXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHRoaXMuX2NhbnZhc0VsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQud2lkdGggPSB0aGlzLl9zaXplWzBdO1xuICAgICAgICAgICAgdGhpcy5fY2FudmFzRWxlbWVudC5oZWlnaHQgPSB0aGlzLl9zaXplWzFdO1xuICAgICAgICAgICAgdGhpcy5fY2FudmFzRWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Vmlld3BvcnQoKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiB2aWV3cG9ydCDQtNC70Y8gV2ViR0xcbiAgICAgKiDQldGB0LvQuCDRgNCw0LfQvNC10YDRiyDQvdC1INGD0LrQsNC30LDQvdGLLCDRgtC+INCy0YvRgdGC0LDQstC70Y/QtdGCINGA0LDQt9C80LXRgNGLINGD0LrQsNC30LDQvdC90YvQtSDQsiDRhNGD0L3QutGG0LjQuCB7QGxpbmsgUmVuZGVyZXIjc2V0U2l6ZX1cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gW3dpZHRoXSDQqNC40YDQuNC90LAg0LIg0L/QuNC60YHQtdC70Y/RhVxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBbaGVpZ2h0XSDQktGL0YHQvtGC0LAg0LIg0L/QuNC60YHQtdC70Y/RhVxuICAgICAqL1xuICAgIHNldFZpZXdwb3J0KHdpZHRoLCBoZWlnaHQpIHtcbiAgICAgICAgaWYgKHdpZHRoICE9PSB1bmRlZmluZWQgJiYgaGVpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2dsLnZpZXdwb3J0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZ2wudmlld3BvcnQoMCwgMCwgdGhpcy5fc2l6ZVswXSwgdGhpcy5fc2l6ZVsxXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0LjQuSB2aWV3cG9ydCBXZWJHTFxuICAgICAqIEByZXR1cm5zIHtBcnJheX1cbiAgICAgKi9cbiAgICBnZXRTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBSZW5kZXJUYXJnZXRcbiAgICAgKiBAcGFyYW0gez9SZW5kZXJUYXJnZXR9IHJlbmRlclRhcmdldFxuICAgICAqL1xuICAgIHNldFJlbmRlclRhcmdldChyZW5kZXJUYXJnZXQpIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyVGFyZ2V0ID0gcmVuZGVyVGFyZ2V0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodGH0LjRgtGL0LLQsNC10YIg0YPQutCw0LfQsNC90L3Rg9GOINC+0LHQu9Cw0YHRgtGMINC/0LjQutGB0LXQu9C10Lkg0LIg0LzQsNGB0YHQuNCyXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHgg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0L3QsNGH0LDQu9CwINC+0LHQu9Cw0YHRgtC4XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHkg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0L3QsNGH0LDQu9CwINC+0LHQu9Cw0YHRgtC4XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHdpZHRoINCo0LjRgNC40L3QsCDQvtCx0LvQsNGB0YLQuFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBoZWlnaHQg0JLRi9GB0L7RgtCwINC+0LHQu9Cw0YHRgtC4XG4gICAgICogQHBhcmFtIHtUeXBlZEFycmF5fSBhcnJheSDQnNCw0YHRgdC40LIg0LTQu9GPINC30LDQv9C40YHQuCDQtNCw0L3QvdGL0YVcbiAgICAgKi9cbiAgICByZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGFycmF5KSB7XG4gICAgICAgIGNvbnN0IGdsID0gdGhpcy5fZ2w7XG5cbiAgICAgICAgaWYgKHRoaXMuX3JlbmRlclRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyVGFyZ2V0LmJpbmQoZ2wpO1xuICAgICAgICAgICAgZ2wucmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBhcnJheSk7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJUYXJnZXQudW5iaW5kKGdsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdsLnJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYXJyYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7Rh9C40YnQsNC10YIg0YLQtdC60YPRidC40Lkg0LrQsNC00YAg0Lgg0LfQsNC70LjQstCw0LXRgiDRhtCy0LXRgtC+0Lwg0YPQutCw0LfQsNC90L3Ri9C8INCyIGNsZWFyQ29sb3JcbiAgICAgKi9cbiAgICBjbGVhcigpIHtcbiAgICAgICAgY29uc3QgZ2wgPSB0aGlzLl9nbDtcblxuICAgICAgICBnbC5jbGVhckNvbG9yLmFwcGx5KGdsLCB0aGlzLmNsZWFyQ29sb3IpO1xuICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KDQuNGB0YPQtdGCINGB0YbQtdC90YNcbiAgICAgKiBAcGFyYW0ge1NjZW5lfSBzY2VuZSDQodGG0LXQvdCwXG4gICAgICogQHBhcmFtIHtDYW1lcmF9IGNhbWVyYSDQmtCw0LzQtdGA0LBcbiAgICAgKi9cbiAgICByZW5kZXIoc2NlbmUsIGNhbWVyYSkge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuX2dsO1xuXG4gICAgICAgIHNjZW5lLnR5cGlmeUZvclJlbmRlcih0aGlzLl9wbHVnaW5zQnlUeXBlKTtcblxuICAgICAgICBpZiAodGhpcy5fcmVuZGVyVGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJUYXJnZXQuYmluZChnbCk7XG4gICAgICAgIH1cblxuICAgICAgICBnbC5jbGVhckRlcHRoKDEpO1xuICAgICAgICBnbC5jbGVhclN0ZW5jaWwoMCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXV0b0NsZWFyKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjYW1lcmEudXBkYXRlTG9jYWxNYXRyaXgoKTtcbiAgICAgICAgY2FtZXJhLnVwZGF0ZVdvcmxkTWF0cml4KCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgICAgICByZW5kZXJlcjogdGhpcyxcbiAgICAgICAgICAgIHNjZW5lLFxuICAgICAgICAgICAgY2FtZXJhLFxuICAgICAgICAgICAgZ2xcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVE9ETzogbWFrZSBzdGF0ZSBpbW11dGFibGU/XG5cbiAgICAgICAgdGhpcy5fcGx1Z2lucy5mb3JFYWNoKHBsdWdpbiA9PiB7XG4gICAgICAgICAgICBpZiAocGx1Z2luLmhhdmVPYmplY3RzKCkpIHtcbiAgICAgICAgICAgICAgICBwbHVnaW4ucmVuZGVyKHN0YXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3JlbmRlclRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyVGFyZ2V0LnVuYmluZChnbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIge0BsaW5rIFJlbmRlcmVyUGx1Z2lufSDQuiDRgNC10L3QtNC10YDRgy4g0Jog0YDQtdC90LTQtdGA0YMg0LzQvtC20LXRgiDQsdGL0YLRjCDQtNC+0LHQsNCy0LvQtdC9INGC0L7Qu9GM0LrQviDQvtC00LjQvSDQv9C70LDQs9C40L0g0LrQsNC20LTQvtCz0L4g0YLQuNC/0LAuXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IG9yZGVyINCa0LDQttC00YvQuSDQv9C70LDQs9C40L0g0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQv9GA0Lgg0YDQtdC90LTQtdGA0LjQvdCz0LUg0L/QviDQstC+0LfRgNCw0YHRgtCw0L3QuNGOIG9yZGVyXG4gICAgICogQHBhcmFtIHtQbHVnaW59IFBsdWdpbiDQmtC70LDRgdGBINC/0LvQsNCz0LjQvdCwXG4gICAgICovXG4gICAgc3RhdGljIGFkZFBsdWdpbihvcmRlciwgUGx1Z2luKSB7XG4gICAgICAgIFJlbmRlcmVyLnBsdWdpbnMucHVzaCh7XG4gICAgICAgICAgICBQbHVnaW46IFBsdWdpbixcbiAgICAgICAgICAgIG9yZGVyOiBvcmRlclxuICAgICAgICB9KTtcbiAgICAgICAgUmVuZGVyZXIucGx1Z2lucy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIge0BsaW5rIFJlbmRlcmVyUGx1Z2lufSDQuNC3INGA0LXQvdC00LXRgNCwLlxuICAgICAqIEBwYXJhbSB7UGx1Z2lufSBQbHVnaW4g0JrQu9Cw0YHRgSDQv9C70LDQs9C40L3QsFxuICAgICAqL1xuICAgIHN0YXRpYyByZW1vdmVQbHVnaW4oUGx1Z2luKSB7XG4gICAgICAgIFJlbmRlcmVyLnBsdWdpbnMuc29tZSgoZWwsIGkpID0+IHtcbiAgICAgICAgICAgIGlmIChlbC5QbHVnaW4gPT09IFBsdWdpbikge1xuICAgICAgICAgICAgICAgIFJlbmRlcmVyLnBsdWdpbnMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cblJlbmRlcmVyLnBsdWdpbnMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgUmVuZGVyZXI7XG5cbi8qKlxuICog0KHQvtGB0YLQvtGP0L3QuNC1INGA0LXQvdC00LXRgNCwLiDQn9C10YDQtdC00LDQtdGC0YHRjyDQvtCx0YrQtdC60YLQsNC8INC00LvRjyDQvtGC0YDQuNGB0L7QstC60LguXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RhdGVcbiAqIEBwcm9wZXJ0eSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICogQHByb3BlcnR5IHtTY2VuZX0gc2NlbmVcbiAqIEBwcm9wZXJ0eSB7Q2FtZXJhfSBjYW1lcmFcbiAqIEBwcm9wZXJ0eSB7UmVuZGVyZXJ9IHJlbmRlcmVyXG4gKi9cbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
value: true
});

@@ -19,40 +19,45 @@

var RendererPlugin = function () {
function RendererPlugin() {
_classCallCheck(this, RendererPlugin);
function RendererPlugin() {
_classCallCheck(this, RendererPlugin);
this._objects = [];
this._objects = [];
/**
* Используется для обозначения типа плагина
* @type {Number}
*/
this.type = 0;
}
/**
* Используется для обозначения типа плагина
* @type {Number}
* Рисует сцену с помощью этого плагина
* @param {State} state
*/
this.type = 0;
}
/**
* Рисует сцену с помощью этого плагина
* @param {State} state
*/
_createClass(RendererPlugin, [{
key: "render",
value: function render() {
this._objects = [];
}
_createClass(RendererPlugin, [{
key: "render",
value: function render() {
this._objects = [];
}
/**
* Добавляет объект к плагину на этапе рендеринга
* @param {Object3D} object
*/
/**
* Добавляет объект к плагину на этапе рендеринга
* @param {Object3D} object
*/
}, {
key: "addObject",
value: function addObject(object) {
this._objects.push(object);
return this;
}
}, {
key: "haveObjects",
value: function haveObjects() {
return this._objects.length > 0;
}
}]);
}, {
key: "addObject",
value: function addObject(object) {
this._objects.push(object);
return this;
}
}]);
return RendererPlugin;
return RendererPlugin;
}();

@@ -62,2 +67,2 @@

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJlclBsdWdpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztJQU1NLGM7QUFDRiw0QkFBYztBQUFBOztBQUNWLFNBQUssUUFBTCxHQUFnQixFQUFoQjs7Ozs7O0FBTUEsU0FBSyxJQUFMLEdBQVksQ0FBWjtBQUNIOzs7Ozs7Ozs7OzZCQU1RO0FBQ0wsV0FBSyxRQUFMLEdBQWdCLEVBQWhCO0FBQ0g7Ozs7Ozs7Ozs4QkFNUyxNLEVBQVE7QUFDZCxXQUFLLFFBQUwsQ0FBYyxJQUFkLENBQW1CLE1BQW5CO0FBQ0EsYUFBTyxJQUFQO0FBQ0g7Ozs7OztrQkFHVSxjIiwiZmlsZSI6IlJlbmRlcmVyUGx1Z2luLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQoNC+0LTQuNGC0LXQu9GM0YHQutC40Lkg0LrQu9Cw0YHRgSDQtNC70Y8g0L/Qu9Cw0LPQuNC90L7QsiDRgNC10L3QtNC10YDQsC5cbiAqINCU0LvRjyDRgtC+0LPQviwg0YfRgtC+0LHRiyDQtNC+0LHQsNCy0LjRgtGMINC/0LvQsNCz0LjQvSDQuiDRgNC10L3QtNC10YDRgywg0L3Rg9C20L3QviDQstGL0LfRi9Cy0LDRgtGMIHtAbGluayBSZW5kZXJlciNhZGRQbHVnaW59LlxuICog0J3QsCDRjdGC0LDQv9C1INGA0LXQvdC00YDQuNC90LPQsCDQutCw0LbQtNGL0Lkg0L7QsdGK0LXQutGCINGB0LDQvCDQtNC+0LHQsNCy0LvRj9C10YLRgdGPINC6INC90YPQttC90L7QvNGDINC/0LvQsNCz0LjQvdGDINC00LvRjyDQvtGC0YDQuNGB0L7QstC60LguXG4gKiDQn9C+0YHQu9C1INC+0YLRgNC40YHQvtCy0LrQuCDQstGB0LXRhSDQvtCx0YrQtdC60YLQvtCyINGB0L/QuNGB0L7QuiDQvtCx0YrQtdC60YLQvtCyINCyINC/0LvQsNCz0LjQvdC1INC+0YfQuNGJ0LDQtdGC0YHRjy5cbiAqL1xuY2xhc3MgUmVuZGVyZXJQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9vYmplY3RzID0gW107XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQv9C70LDQs9C40L3QsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNC40YHRg9C10YIg0YHRhtC10L3RgyDRgSDQv9C+0LzQvtGJ0YzRjiDRjdGC0L7Qs9C+INC/0LvQsNCz0LjQvdCwXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAgICAgKi9cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMuX29iamVjdHMgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0L7QsdGK0LXQutGCINC6INC/0LvQsNCz0LjQvdGDINC90LAg0Y3RgtCw0L/QtSDRgNC10L3QtNC10YDQuNC90LPQsFxuICAgICAqIEBwYXJhbSB7T2JqZWN0M0R9IG9iamVjdFxuICAgICAqL1xuICAgIGFkZE9iamVjdChvYmplY3QpIHtcbiAgICAgICAgdGhpcy5fb2JqZWN0cy5wdXNoKG9iamVjdCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVuZGVyZXJQbHVnaW47XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJlclBsdWdpbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7SUFNTSxjO0FBQ0YsOEJBQWM7QUFBQTs7QUFDVixhQUFLLFFBQUwsR0FBZ0IsRUFBaEI7O0FBRUE7Ozs7QUFJQSxhQUFLLElBQUwsR0FBWSxDQUFaO0FBQ0g7O0FBRUQ7Ozs7Ozs7O2lDQUlTO0FBQ0wsaUJBQUssUUFBTCxHQUFnQixFQUFoQjtBQUNIOztBQUVEOzs7Ozs7O2tDQUlVLE0sRUFBUTtBQUNkLGlCQUFLLFFBQUwsQ0FBYyxJQUFkLENBQW1CLE1BQW5CO0FBQ0EsbUJBQU8sSUFBUDtBQUNIOzs7c0NBRWE7QUFDVixtQkFBTyxLQUFLLFFBQUwsQ0FBYyxNQUFkLEdBQXVCLENBQTlCO0FBQ0g7Ozs7OztrQkFHVSxjIiwiZmlsZSI6IlJlbmRlcmVyUGx1Z2luLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQoNC+0LTQuNGC0LXQu9GM0YHQutC40Lkg0LrQu9Cw0YHRgSDQtNC70Y8g0L/Qu9Cw0LPQuNC90L7QsiDRgNC10L3QtNC10YDQsC5cbiAqINCU0LvRjyDRgtC+0LPQviwg0YfRgtC+0LHRiyDQtNC+0LHQsNCy0LjRgtGMINC/0LvQsNCz0LjQvSDQuiDRgNC10L3QtNC10YDRgywg0L3Rg9C20L3QviDQstGL0LfRi9Cy0LDRgtGMIHtAbGluayBSZW5kZXJlciNhZGRQbHVnaW59LlxuICog0J3QsCDRjdGC0LDQv9C1INGA0LXQvdC00YDQuNC90LPQsCDQutCw0LbQtNGL0Lkg0L7QsdGK0LXQutGCINGB0LDQvCDQtNC+0LHQsNCy0LvRj9C10YLRgdGPINC6INC90YPQttC90L7QvNGDINC/0LvQsNCz0LjQvdGDINC00LvRjyDQvtGC0YDQuNGB0L7QstC60LguXG4gKiDQn9C+0YHQu9C1INC+0YLRgNC40YHQvtCy0LrQuCDQstGB0LXRhSDQvtCx0YrQtdC60YLQvtCyINGB0L/QuNGB0L7QuiDQvtCx0YrQtdC60YLQvtCyINCyINC/0LvQsNCz0LjQvdC1INC+0YfQuNGJ0LDQtdGC0YHRjy5cbiAqL1xuY2xhc3MgUmVuZGVyZXJQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9vYmplY3RzID0gW107XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7QsdC+0LfQvdCw0YfQtdC90LjRjyDRgtC40L/QsCDQv9C70LDQs9C40L3QsFxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50eXBlID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNC40YHRg9C10YIg0YHRhtC10L3RgyDRgSDQv9C+0LzQvtGJ0YzRjiDRjdGC0L7Qs9C+INC/0LvQsNCz0LjQvdCwXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAgICAgKi9cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMuX29iamVjdHMgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0L7QsdGK0LXQutGCINC6INC/0LvQsNCz0LjQvdGDINC90LAg0Y3RgtCw0L/QtSDRgNC10L3QtNC10YDQuNC90LPQsFxuICAgICAqIEBwYXJhbSB7T2JqZWN0M0R9IG9iamVjdFxuICAgICAqL1xuICAgIGFkZE9iamVjdChvYmplY3QpIHtcbiAgICAgICAgdGhpcy5fb2JqZWN0cy5wdXNoKG9iamVjdCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGhhdmVPYmplY3RzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0cy5sZW5ndGggPiAwO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVuZGVyZXJQbHVnaW47XG4iXX0=

@@ -96,2 +96,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvQ29tbW9uUGx1Z2luLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFPTSxZOzs7QUFDRiw0QkFBYztBQUFBOzs7Ozs7O0FBQUE7O0FBT1YsY0FBSyxJQUFMLEdBQVksdUJBQWEsZUFBekI7QUFQVTtBQVFiOzs7Ozs7Ozs7OytCQU1NLEssRUFBTztBQUNWLGdCQUFNLEtBQUssTUFBTSxFQUFqQjs7QUFFQSxlQUFHLE1BQUgsQ0FBVSxHQUFHLFVBQWI7QUFDQSxlQUFHLFNBQUgsQ0FBYSxHQUFHLE1BQWhCOztBQUVBLGVBQUcsU0FBSCxDQUFhLEdBQUcsR0FBaEI7QUFDQSxlQUFHLFFBQUgsQ0FBWSxHQUFHLElBQWY7QUFDQSxlQUFHLE1BQUgsQ0FBVSxHQUFHLFNBQWI7QUFDQSxlQUFHLE9BQUgsQ0FBVyxHQUFHLEtBQWQ7O0FBRUEsZ0JBQUksTUFBTSxRQUFOLENBQWUsV0FBbkIsRUFBZ0M7QUFDNUIscUJBQUssUUFBTCxDQUFjLElBQWQsQ0FBbUIsS0FBSyxnQkFBeEI7QUFDSDs7QUFFRCxpQkFBSyxRQUFMLENBQWMsT0FBZCxDQUFzQjtBQUFBLHVCQUFVLE9BQU8sTUFBUCxDQUFjLEtBQWQsQ0FBVjtBQUFBLGFBQXRCO0FBQ0EsaUJBQUssUUFBTCxHQUFnQixFQUFoQjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7Ozt5Q0FFZ0IsQyxFQUFHLEMsRUFBRztBQUNuQixtQkFBTyxFQUFFLFdBQUYsR0FBZ0IsRUFBRSxXQUF6QjtBQUNIOzs7Ozs7QUFHTCxtQkFBUyxTQUFULENBQW1CLENBQW5CLEVBQXNCLFlBQXRCOztrQkFFZSxZIiwiZmlsZSI6IkNvbW1vblBsdWdpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZW5kZXJlclBsdWdpbiBmcm9tICcuLi9SZW5kZXJlclBsdWdpbic7XG5pbXBvcnQgUmVuZGVyZXIgZnJvbSAnLi4vUmVuZGVyZXInO1xuaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCf0LvQsNCz0LjQvSDQtNC70Y8g0YDQtdC90LTQtdGA0LAg0L/RgNC+0YHRgtGL0YUg0L7QsdGK0LXQutGC0L7Qsi5cbiAqINCU0LvRjyDRgtC+0LPQviwg0YfRgtC+0LHRiyDQvtC9INC00L7QsdCw0LLQuNC70YHRjyDQuiDRgNC10L3QtNC10YDRgywg0LzQvtC00YPQu9GMINC90YPQttC90L4g0LfQsNGA0LXQutCy0LDQudGA0LjRgtGMLlxuICog0JTQu9GPIHtAbGluayBCYXNpY01lc2hNYXRlcmlhbH0g0Lgge0BsaW5rIENvbXBsZXhNZXNoTWF0ZXJpYWx9INC80L7QtNGD0LvRjCDQv9C+0LTQutC70Y7Rh9Cw0LXRgtGB0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LguXG4gKi9cbmNsYXNzIENvbW1vblBsdWdpbiBleHRlbmRzIFJlbmRlcmVyUGx1Z2luIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC/0LvQsNCz0LjQvdCwXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuQ09NTU9OX1JFTkRFUkVSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LjRgdGD0LXRgiDRgdGG0LXQvdGDINGBINC/0L7QvNC+0YnRjNGOINGN0YLQvtCz0L4g0L/Qu9Cw0LPQuNC90LBcbiAgICAgKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICAgICAqL1xuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICBjb25zdCBnbCA9IHN0YXRlLmdsO1xuXG4gICAgICAgIGdsLmVuYWJsZShnbC5ERVBUSF9URVNUKTtcbiAgICAgICAgZ2wuZGVwdGhGdW5jKGdsLkxFUVVBTCk7XG5cbiAgICAgICAgZ2wuZnJvbnRGYWNlKGdsLkNDVyk7XG4gICAgICAgIGdsLmN1bGxGYWNlKGdsLkJBQ0spO1xuICAgICAgICBnbC5lbmFibGUoZ2wuQ1VMTF9GQUNFKTtcbiAgICAgICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7XG5cbiAgICAgICAgaWYgKHN0YXRlLnJlbmRlcmVyLnNvcnRPYmplY3RzKSB7XG4gICAgICAgICAgICB0aGlzLl9vYmplY3RzLnNvcnQodGhpcy5fcmVuZGVyT3JkZXJTb3J0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29iamVjdHMuZm9yRWFjaChvYmplY3QgPT4gb2JqZWN0LnJlbmRlcihzdGF0ZSkpO1xuICAgICAgICB0aGlzLl9vYmplY3RzID0gW107XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgX3JlbmRlck9yZGVyU29ydChhLCBiKSB7XG4gICAgICAgIHJldHVybiBhLnJlbmRlck9yZGVyIC0gYi5yZW5kZXJPcmRlcjtcbiAgICB9XG59XG5cblJlbmRlcmVyLmFkZFBsdWdpbigwLCBDb21tb25QbHVnaW4pO1xuXG5leHBvcnQgZGVmYXVsdCBDb21tb25QbHVnaW47XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvQ29tbW9uUGx1Z2luLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTs7Ozs7O0lBS00sWTs7O0FBQ0YsNEJBQWM7QUFBQTs7QUFHVjs7Ozs7QUFIVTs7QUFPVixjQUFLLElBQUwsR0FBWSx1QkFBYSxlQUF6QjtBQVBVO0FBUWI7O0FBRUQ7Ozs7Ozs7OytCQUlPLEssRUFBTztBQUNWLGdCQUFNLEtBQUssTUFBTSxFQUFqQjs7QUFFQSxlQUFHLE1BQUgsQ0FBVSxHQUFHLFVBQWI7QUFDQSxlQUFHLFNBQUgsQ0FBYSxHQUFHLE1BQWhCOztBQUVBLGVBQUcsU0FBSCxDQUFhLEdBQUcsR0FBaEI7QUFDQSxlQUFHLFFBQUgsQ0FBWSxHQUFHLElBQWY7QUFDQSxlQUFHLE1BQUgsQ0FBVSxHQUFHLFNBQWI7QUFDQSxlQUFHLE9BQUgsQ0FBVyxHQUFHLEtBQWQ7O0FBRUEsZ0JBQUksTUFBTSxRQUFOLENBQWUsV0FBbkIsRUFBZ0M7QUFDNUIscUJBQUssUUFBTCxDQUFjLElBQWQsQ0FBbUIsS0FBSyxnQkFBeEI7QUFDSDs7QUFFRCxpQkFBSyxRQUFMLENBQWMsT0FBZCxDQUFzQjtBQUFBLHVCQUFVLE9BQU8sTUFBUCxDQUFjLEtBQWQsQ0FBVjtBQUFBLGFBQXRCO0FBQ0EsaUJBQUssUUFBTCxHQUFnQixFQUFoQjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7Ozt5Q0FFZ0IsQyxFQUFHLEMsRUFBRztBQUNuQixtQkFBTyxFQUFFLFdBQUYsR0FBZ0IsRUFBRSxXQUF6QjtBQUNIOzs7Ozs7QUFHTCxtQkFBUyxTQUFULENBQW1CLENBQW5CLEVBQXNCLFlBQXRCOztrQkFFZSxZIiwiZmlsZSI6IkNvbW1vblBsdWdpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZW5kZXJlclBsdWdpbiBmcm9tICcuLi9SZW5kZXJlclBsdWdpbic7XG5pbXBvcnQgUmVuZGVyZXIgZnJvbSAnLi4vUmVuZGVyZXInO1xuaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCf0LvQsNCz0LjQvSDQtNC70Y8g0YDQtdC90LTQtdGA0LAg0L/RgNC+0YHRgtGL0YUg0L7QsdGK0LXQutGC0L7Qsi5cbiAqINCU0LvRjyDRgtC+0LPQviwg0YfRgtC+0LHRiyDQvtC9INC00L7QsdCw0LLQuNC70YHRjyDQuiDRgNC10L3QtNC10YDRgywg0LzQvtC00YPQu9GMINC90YPQttC90L4g0LfQsNGA0LXQutCy0LDQudGA0LjRgtGMLlxuICog0JTQu9GPIHtAbGluayBCYXNpY01lc2hNYXRlcmlhbH0g0Lgge0BsaW5rIENvbXBsZXhNZXNoTWF0ZXJpYWx9INC80L7QtNGD0LvRjCDQv9C+0LTQutC70Y7Rh9Cw0LXRgtGB0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LguXG4gKi9cbmNsYXNzIENvbW1vblBsdWdpbiBleHRlbmRzIFJlbmRlcmVyUGx1Z2luIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC/0LvQsNCz0LjQvdCwXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuQ09NTU9OX1JFTkRFUkVSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LjRgdGD0LXRgiDRgdGG0LXQvdGDINGBINC/0L7QvNC+0YnRjNGOINGN0YLQvtCz0L4g0L/Qu9Cw0LPQuNC90LBcbiAgICAgKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICAgICAqL1xuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICBjb25zdCBnbCA9IHN0YXRlLmdsO1xuXG4gICAgICAgIGdsLmVuYWJsZShnbC5ERVBUSF9URVNUKTtcbiAgICAgICAgZ2wuZGVwdGhGdW5jKGdsLkxFUVVBTCk7XG5cbiAgICAgICAgZ2wuZnJvbnRGYWNlKGdsLkNDVyk7XG4gICAgICAgIGdsLmN1bGxGYWNlKGdsLkJBQ0spO1xuICAgICAgICBnbC5lbmFibGUoZ2wuQ1VMTF9GQUNFKTtcbiAgICAgICAgZ2wuZGlzYWJsZShnbC5CTEVORCk7XG5cbiAgICAgICAgaWYgKHN0YXRlLnJlbmRlcmVyLnNvcnRPYmplY3RzKSB7XG4gICAgICAgICAgICB0aGlzLl9vYmplY3RzLnNvcnQodGhpcy5fcmVuZGVyT3JkZXJTb3J0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29iamVjdHMuZm9yRWFjaChvYmplY3QgPT4gb2JqZWN0LnJlbmRlcihzdGF0ZSkpO1xuICAgICAgICB0aGlzLl9vYmplY3RzID0gW107XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgX3JlbmRlck9yZGVyU29ydChhLCBiKSB7XG4gICAgICAgIHJldHVybiBhLnJlbmRlck9yZGVyIC0gYi5yZW5kZXJPcmRlcjtcbiAgICB9XG59XG5cblJlbmRlcmVyLmFkZFBsdWdpbigwLCBDb21tb25QbHVnaW4pO1xuXG5leHBvcnQgZGVmYXVsdCBDb21tb25QbHVnaW47XG4iXX0=

@@ -9,9 +9,9 @@ 'use strict';

var _multiSpriteFrag = require('../shaders/multiSprite.frag.js');
var _multiSpriteFragGlsl = require('../shaders/multiSprite.frag.glsl.js');
var _multiSpriteFrag2 = _interopRequireDefault(_multiSpriteFrag);
var _multiSpriteFragGlsl2 = _interopRequireDefault(_multiSpriteFragGlsl);
var _multiSpriteVert = require('../shaders/multiSprite.vert.js');
var _multiSpriteVertGlsl = require('../shaders/multiSprite.vert.glsl.js');
var _multiSpriteVert2 = _interopRequireDefault(_multiSpriteVert);
var _multiSpriteVertGlsl2 = _interopRequireDefault(_multiSpriteVertGlsl);

@@ -30,2 +30,6 @@ var _ShaderProgram = require('../ShaderProgram');

var _Shader = require('../Shader');
var _Shader2 = _interopRequireDefault(_Shader);
var _libConstants = require('../libConstants');

@@ -58,4 +62,4 @@

_this._shaderProgram = new _ShaderProgram2.default({
vertex: _multiSpriteVert2.default,
fragment: _multiSpriteFrag2.default,
vertex: new _Shader2.default('vertex', _multiSpriteVertGlsl2.default),
fragment: new _Shader2.default('fragment', _multiSpriteFragGlsl2.default),
uniforms: [{ name: 'uPCamera', type: 'mat4' }, { name: 'uHalfSize', type: '2f' }, { name: 'uTexture', type: '1i' }, { name: 'uSmoothing', type: '1f' }],

@@ -117,2 +121,2 @@ attributes: [{ name: 'disposition' }, { name: 'texture' }, { name: 'position' }, { name: 'colorAlpha' }, { name: 'scale' }, { name: 'offset' }]

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvTXVsdGlTcHJpdGVQbHVnaW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7SUFLTSxpQjs7O0FBQ0YsK0JBQVksUUFBWixFQUFzQjtBQUFBOztBQUFBOztBQUdsQixjQUFLLFNBQUwsR0FBaUIsUUFBakI7O0FBRUEsY0FBSyxjQUFMLEdBQXNCLDRCQUFrQjtBQUNwQyw2Q0FEb0M7QUFFcEMsK0NBRm9DO0FBR3BDLHNCQUFVLENBQ04sRUFBQyxNQUFNLFVBQVAsRUFBbUIsTUFBTSxNQUF6QixFQURNLEVBRU4sRUFBQyxNQUFNLFdBQVAsRUFBb0IsTUFBTSxJQUExQixFQUZNLEVBR04sRUFBQyxNQUFNLFVBQVAsRUFBbUIsTUFBTSxJQUF6QixFQUhNLEVBSU4sRUFBQyxNQUFNLFlBQVAsRUFBcUIsTUFBTSxJQUEzQixFQUpNLENBSDBCO0FBU3BDLHdCQUFZLENBQ1IsRUFBQyxNQUFNLGFBQVAsRUFEUSxFQUVSLEVBQUMsTUFBTSxTQUFQLEVBRlEsRUFHUixFQUFDLE1BQU0sVUFBUCxFQUhRLEVBSVIsRUFBQyxNQUFNLFlBQVAsRUFKUSxFQUtSLEVBQUMsTUFBTSxPQUFQLEVBTFEsRUFNUixFQUFDLE1BQU0sUUFBUCxFQU5RO0FBVHdCLFNBQWxCLENBQXRCOztBQW1CQSxjQUFLLElBQUwsR0FBWSx1QkFBYSxxQkFBekI7QUF4QmtCO0FBeUJyQjs7Ozs7Ozs7OzsrQkFNTSxLLEVBQU87QUFDVixnQkFBTSxPQUFPLEtBQUssU0FBTCxDQUFlLE9BQWYsRUFBYjtBQURVLGdCQUVILEVBRkcsR0FFVyxLQUZYLENBRUgsRUFGRztBQUFBLGdCQUVDLE1BRkQsR0FFVyxLQUZYLENBRUMsTUFGRDs7O0FBSVYsa0JBQU0sYUFBTixHQUFzQixLQUFLLGNBQTNCOztBQUVBLGVBQUcsT0FBSCxDQUFXLEdBQUcsVUFBZDs7QUFFQSxlQUFHLE1BQUgsQ0FBVSxHQUFHLEtBQWI7QUFDQSxlQUFHLGFBQUgsQ0FBaUIsR0FBRyxRQUFwQjtBQUNBLGVBQUcsU0FBSCxDQUFhLEdBQUcsR0FBaEIsRUFBcUIsR0FBRyxtQkFBeEI7O0FBRUEsaUJBQUssY0FBTCxDQUNLLE1BREwsQ0FDWSxFQURaLEVBRUssSUFGTCxDQUVVLEVBRlYsRUFFYztBQUNOLDBCQUFVLElBQUksWUFBSixDQUFpQixPQUFPLGVBQXhCLENBREo7QUFFTiwyQkFBVyxDQUFDLEtBQUssQ0FBTCxJQUFVLENBQVgsRUFBYyxLQUFLLENBQUwsSUFBVSxDQUF4QixDQUZMO0FBR04sMEJBQVU7QUFISixhQUZkOztBQVFBLGVBQUcsYUFBSCxDQUFpQixHQUFHLFFBQXBCOztBQUVBLGlCQUFLLFFBQUwsQ0FBYyxPQUFkLENBQXNCO0FBQUEsdUJBQVUsT0FBTyxNQUFQLENBQWMsS0FBZCxDQUFWO0FBQUEsYUFBdEI7QUFDQSxpQkFBSyxRQUFMLEdBQWdCLEVBQWhCOztBQUVBLGlCQUFLLGNBQUwsQ0FBb0IsT0FBcEIsQ0FBNEIsRUFBNUI7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOzs7Ozs7QUFHTCxtQkFBUyxTQUFULENBQW1CLEVBQW5CLEVBQXVCLGlCQUF2Qjs7a0JBRWUsaUIiLCJmaWxlIjoiTXVsdGlTcHJpdGVQbHVnaW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnJhZ21lbnRTaGFkZXIgZnJvbSAnLi4vc2hhZGVycy9tdWx0aVNwcml0ZS5mcmFnLmpzJztcbmltcG9ydCB2ZXJ0ZXhTaGFkZXIgZnJvbSAnLi4vc2hhZGVycy9tdWx0aVNwcml0ZS52ZXJ0LmpzJztcbmltcG9ydCBTaGFkZXJQcm9ncmFtIGZyb20gJy4uL1NoYWRlclByb2dyYW0nO1xuaW1wb3J0IFJlbmRlcmVyUGx1Z2luIGZyb20gJy4uL1JlbmRlcmVyUGx1Z2luJztcbmltcG9ydCBSZW5kZXJlciBmcm9tICcuLi9SZW5kZXJlcic7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5cbi8qKlxuICogINCf0LvQsNCz0LjQvSDQtNC70Y8g0YDQtdC90LTQtdGA0LAge0BNdWx0aVNwcml0ZX0g0L7QsdGK0LXQutGC0L7Qsiwg0LTQvtCx0LDQstC70Y/QtdGC0YHRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQv9GA0Lgg0LjRhSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQuC5cbiAqL1xuY2xhc3MgTXVsdGlTcHJpdGVQbHVnaW4gZXh0ZW5kcyBSZW5kZXJlclBsdWdpbiB7XG4gICAgY29uc3RydWN0b3IocmVuZGVyZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlciA9IHJlbmRlcmVyO1xuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0gPSBuZXcgU2hhZGVyUHJvZ3JhbSh7XG4gICAgICAgICAgICB2ZXJ0ZXg6IHZlcnRleFNoYWRlcixcbiAgICAgICAgICAgIGZyYWdtZW50OiBmcmFnbWVudFNoYWRlcixcbiAgICAgICAgICAgIHVuaWZvcm1zOiBbXG4gICAgICAgICAgICAgICAge25hbWU6ICd1UENhbWVyYScsIHR5cGU6ICdtYXQ0J30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1SGFsZlNpemUnLCB0eXBlOiAnMmYnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VUZXh0dXJlJywgdHlwZTogJzFpJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1U21vb3RoaW5nJywgdHlwZTogJzFmJ31cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXG4gICAgICAgICAgICAgICAge25hbWU6ICdkaXNwb3NpdGlvbid9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAndGV4dHVyZSd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAncG9zaXRpb24nfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2NvbG9yQWxwaGEnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3NjYWxlJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICdvZmZzZXQnfVxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuTVVMVElfU1BSSVRFX1JFTkRFUkVSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LjRgdGD0LXRgiDRgdGG0LXQvdGDINGBINC/0L7QvNC+0YnRjNGOINGN0YLQvtCz0L4g0L/Qu9Cw0LPQuNC90LBcbiAgICAgKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICAgICAqL1xuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5fcmVuZGVyZXIuZ2V0U2l6ZSgpO1xuICAgICAgICBjb25zdCB7Z2wsIGNhbWVyYX0gPSBzdGF0ZTtcblxuICAgICAgICBzdGF0ZS5zaGFkZXJQcm9ncmFtID0gdGhpcy5fc2hhZGVyUHJvZ3JhbTtcblxuICAgICAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpO1xuXG4gICAgICAgIGdsLmVuYWJsZShnbC5CTEVORCk7XG4gICAgICAgIGdsLmJsZW5kRXF1YXRpb24oZ2wuRlVOQ19BREQpO1xuICAgICAgICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtXG4gICAgICAgICAgICAuZW5hYmxlKGdsKVxuICAgICAgICAgICAgLmJpbmQoZ2wsIHtcbiAgICAgICAgICAgICAgICB1UENhbWVyYTogbmV3IEZsb2F0MzJBcnJheShjYW1lcmEubW9kZWxWaWV3TWF0cml4KSxcbiAgICAgICAgICAgICAgICB1SGFsZlNpemU6IFtzaXplWzBdIC8gMiwgc2l6ZVsxXSAvIDJdLFxuICAgICAgICAgICAgICAgIHVUZXh0dXJlOiAwXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwKTtcblxuICAgICAgICB0aGlzLl9vYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IG9iamVjdC5yZW5kZXIoc3RhdGUpKTtcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0uZGlzYWJsZShnbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG5SZW5kZXJlci5hZGRQbHVnaW4oMzAsIE11bHRpU3ByaXRlUGx1Z2luKTtcblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlTcHJpdGVQbHVnaW47XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvTXVsdGlTcHJpdGVQbHVnaW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7SUFHTSxpQjs7O0FBQ0YsK0JBQVksUUFBWixFQUFzQjtBQUFBOztBQUFBOztBQUdsQixjQUFLLFNBQUwsR0FBaUIsUUFBakI7O0FBRUEsY0FBSyxjQUFMLEdBQXNCLDRCQUFrQjtBQUNwQyxvQkFBUSxxQkFBVyxRQUFYLGdDQUQ0QjtBQUVwQyxzQkFBVSxxQkFBVyxVQUFYLGdDQUYwQjtBQUdwQyxzQkFBVSxDQUNOLEVBQUMsTUFBTSxVQUFQLEVBQW1CLE1BQU0sTUFBekIsRUFETSxFQUVOLEVBQUMsTUFBTSxXQUFQLEVBQW9CLE1BQU0sSUFBMUIsRUFGTSxFQUdOLEVBQUMsTUFBTSxVQUFQLEVBQW1CLE1BQU0sSUFBekIsRUFITSxFQUlOLEVBQUMsTUFBTSxZQUFQLEVBQXFCLE1BQU0sSUFBM0IsRUFKTSxDQUgwQjtBQVNwQyx3QkFBWSxDQUNSLEVBQUMsTUFBTSxhQUFQLEVBRFEsRUFFUixFQUFDLE1BQU0sU0FBUCxFQUZRLEVBR1IsRUFBQyxNQUFNLFVBQVAsRUFIUSxFQUlSLEVBQUMsTUFBTSxZQUFQLEVBSlEsRUFLUixFQUFDLE1BQU0sT0FBUCxFQUxRLEVBTVIsRUFBQyxNQUFNLFFBQVAsRUFOUTtBQVR3QixTQUFsQixDQUF0Qjs7QUFtQkEsY0FBSyxJQUFMLEdBQVksdUJBQWEscUJBQXpCO0FBeEJrQjtBQXlCckI7O0FBRUQ7Ozs7Ozs7OytCQUlPLEssRUFBTztBQUNWLGdCQUFNLE9BQU8sS0FBSyxTQUFMLENBQWUsT0FBZixFQUFiO0FBRFUsZ0JBRUgsRUFGRyxHQUVXLEtBRlgsQ0FFSCxFQUZHO0FBQUEsZ0JBRUMsTUFGRCxHQUVXLEtBRlgsQ0FFQyxNQUZEOzs7QUFJVixrQkFBTSxhQUFOLEdBQXNCLEtBQUssY0FBM0I7O0FBRUEsZUFBRyxPQUFILENBQVcsR0FBRyxVQUFkOztBQUVBLGVBQUcsTUFBSCxDQUFVLEdBQUcsS0FBYjtBQUNBLGVBQUcsYUFBSCxDQUFpQixHQUFHLFFBQXBCO0FBQ0EsZUFBRyxTQUFILENBQWEsR0FBRyxHQUFoQixFQUFxQixHQUFHLG1CQUF4Qjs7QUFFQSxpQkFBSyxjQUFMLENBQ0ssTUFETCxDQUNZLEVBRFosRUFFSyxJQUZMLENBRVUsRUFGVixFQUVjO0FBQ04sMEJBQVUsSUFBSSxZQUFKLENBQWlCLE9BQU8sZUFBeEIsQ0FESjtBQUVOLDJCQUFXLENBQUMsS0FBSyxDQUFMLElBQVUsQ0FBWCxFQUFjLEtBQUssQ0FBTCxJQUFVLENBQXhCLENBRkw7QUFHTiwwQkFBVTtBQUhKLGFBRmQ7O0FBUUEsZUFBRyxhQUFILENBQWlCLEdBQUcsUUFBcEI7O0FBRUEsaUJBQUssUUFBTCxDQUFjLE9BQWQsQ0FBc0I7QUFBQSx1QkFBVSxPQUFPLE1BQVAsQ0FBYyxLQUFkLENBQVY7QUFBQSxhQUF0QjtBQUNBLGlCQUFLLFFBQUwsR0FBZ0IsRUFBaEI7O0FBRUEsaUJBQUssY0FBTCxDQUFvQixPQUFwQixDQUE0QixFQUE1Qjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7Ozs7OztBQUdMLG1CQUFTLFNBQVQsQ0FBbUIsRUFBbkIsRUFBdUIsaUJBQXZCOztrQkFFZSxpQiIsImZpbGUiOiJNdWx0aVNwcml0ZVBsdWdpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcmFnbWVudFNoYWRlciBmcm9tICcuLi9zaGFkZXJzL211bHRpU3ByaXRlLmZyYWcuZ2xzbC5qcyc7XG5pbXBvcnQgdmVydGV4U2hhZGVyIGZyb20gJy4uL3NoYWRlcnMvbXVsdGlTcHJpdGUudmVydC5nbHNsLmpzJztcbmltcG9ydCBTaGFkZXJQcm9ncmFtIGZyb20gJy4uL1NoYWRlclByb2dyYW0nO1xuaW1wb3J0IFJlbmRlcmVyUGx1Z2luIGZyb20gJy4uL1JlbmRlcmVyUGx1Z2luJztcbmltcG9ydCBSZW5kZXJlciBmcm9tICcuLi9SZW5kZXJlcic7XG5pbXBvcnQgU2hhZGVyIGZyb20gJy4uL1NoYWRlcic7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4uL2xpYkNvbnN0YW50cyc7XG5cbi8qKlxuICogINCf0LvQsNCz0LjQvSDQtNC70Y8g0YDQtdC90LTQtdGA0LAge0BNdWx0aVNwcml0ZX0g0L7QsdGK0LXQutGC0L7Qsiwg0LTQvtCx0LDQstC70Y/QtdGC0YHRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQv9GA0Lgg0LjRhSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQuC5cbiAqL1xuY2xhc3MgTXVsdGlTcHJpdGVQbHVnaW4gZXh0ZW5kcyBSZW5kZXJlclBsdWdpbiB7XG4gICAgY29uc3RydWN0b3IocmVuZGVyZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlciA9IHJlbmRlcmVyO1xuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0gPSBuZXcgU2hhZGVyUHJvZ3JhbSh7XG4gICAgICAgICAgICB2ZXJ0ZXg6IG5ldyBTaGFkZXIoJ3ZlcnRleCcsIHZlcnRleFNoYWRlciksXG4gICAgICAgICAgICBmcmFnbWVudDogbmV3IFNoYWRlcignZnJhZ21lbnQnLCBmcmFnbWVudFNoYWRlciksXG4gICAgICAgICAgICB1bmlmb3JtczogW1xuICAgICAgICAgICAgICAgIHtuYW1lOiAndVBDYW1lcmEnLCB0eXBlOiAnbWF0NCd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAndUhhbGZTaXplJywgdHlwZTogJzJmJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1VGV4dHVyZScsIHR5cGU6ICcxaSd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAndVNtb290aGluZycsIHR5cGU6ICcxZid9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgICAgICAgIHtuYW1lOiAnZGlzcG9zaXRpb24nfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3RleHR1cmUnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3Bvc2l0aW9uJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICdjb2xvckFscGhhJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICdzY2FsZSd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnb2Zmc2V0J31cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50eXBlID0gbGliQ29uc3RhbnRzLk1VTFRJX1NQUklURV9SRU5ERVJFUjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNC40YHRg9C10YIg0YHRhtC10L3RgyDRgSDQv9C+0LzQvtGJ0YzRjiDRjdGC0L7Qs9C+INC/0LvQsNCz0LjQvdCwXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAgICAgKi9cbiAgICByZW5kZXIoc3RhdGUpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuX3JlbmRlcmVyLmdldFNpemUoKTtcbiAgICAgICAgY29uc3Qge2dsLCBjYW1lcmF9ID0gc3RhdGU7XG5cbiAgICAgICAgc3RhdGUuc2hhZGVyUHJvZ3JhbSA9IHRoaXMuX3NoYWRlclByb2dyYW07XG5cbiAgICAgICAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTtcblxuICAgICAgICBnbC5lbmFibGUoZ2wuQkxFTkQpO1xuICAgICAgICBnbC5ibGVuZEVxdWF0aW9uKGdsLkZVTkNfQUREKTtcbiAgICAgICAgZ2wuYmxlbmRGdW5jKGdsLk9ORSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbVxuICAgICAgICAgICAgLmVuYWJsZShnbClcbiAgICAgICAgICAgIC5iaW5kKGdsLCB7XG4gICAgICAgICAgICAgICAgdVBDYW1lcmE6IG5ldyBGbG9hdDMyQXJyYXkoY2FtZXJhLm1vZGVsVmlld01hdHJpeCksXG4gICAgICAgICAgICAgICAgdUhhbGZTaXplOiBbc2l6ZVswXSAvIDIsIHNpemVbMV0gLyAyXSxcbiAgICAgICAgICAgICAgICB1VGV4dHVyZTogMFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCk7XG5cbiAgICAgICAgdGhpcy5fb2JqZWN0cy5mb3JFYWNoKG9iamVjdCA9PiBvYmplY3QucmVuZGVyKHN0YXRlKSk7XG4gICAgICAgIHRoaXMuX29iamVjdHMgPSBbXTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtLmRpc2FibGUoZ2wpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuUmVuZGVyZXIuYWRkUGx1Z2luKDMwLCBNdWx0aVNwcml0ZVBsdWdpbik7XG5cbmV4cG9ydCBkZWZhdWx0IE11bHRpU3ByaXRlUGx1Z2luO1xuIl19

@@ -9,9 +9,9 @@ 'use strict';

var _spriteFrag = require('../shaders/sprite.frag.js');
var _spriteFragGlsl = require('../shaders/sprite.frag.glsl.js');
var _spriteFrag2 = _interopRequireDefault(_spriteFrag);
var _spriteFragGlsl2 = _interopRequireDefault(_spriteFragGlsl);
var _spriteVert = require('../shaders/sprite.vert.js');
var _spriteVertGlsl = require('../shaders/sprite.vert.glsl.js');
var _spriteVert2 = _interopRequireDefault(_spriteVert);
var _spriteVertGlsl2 = _interopRequireDefault(_spriteVertGlsl);

@@ -34,2 +34,6 @@ var _ShaderProgram = require('../ShaderProgram');

var _Shader = require('../Shader');
var _Shader2 = _interopRequireDefault(_Shader);
var _Buffer = require('../Buffer');

@@ -69,4 +73,4 @@

_this._shaderProgram = new _ShaderProgram2.default({
vertex: _spriteVert2.default,
fragment: _spriteFrag2.default,
vertex: new _Shader2.default('vertex', _spriteVertGlsl2.default),
fragment: new _Shader2.default('fragment', _spriteFragGlsl2.default),
uniforms: [{ name: 'uPCamera', type: 'mat4' }, { name: 'uPosition', type: '3f' }, { name: 'uColorAlpha', type: '1f' }, { name: 'uScale', type: '2f' }, { name: 'uTexture', type: '1i' }, { name: 'uHalfSize', type: '2f' }, { name: 'uOffset', type: '2f' }, { name: 'uSmoothing', type: '1f' }],

@@ -130,2 +134,2 @@ attributes: [{ name: 'position' }, { name: 'texture' }, { name: 'index', index: true }]

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvU3ByaXRlUGx1Z2luLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztJQUtNLFk7OztBQUNGLDRCQUFjO0FBQUE7O0FBQUE7O0FBR1YsY0FBSyxTQUFMLEdBQWlCLHdCQUFqQjtBQUNBLGNBQUssU0FBTCxDQUNLLFNBREwsQ0FDZSxVQURmLEVBQzJCLHFCQUFXLElBQUksWUFBSixDQUFpQixDQUMvQyxDQUFDLEdBRDhDLEVBQ3pDLENBQUMsR0FEd0MsRUFDbkMsQ0FEbUMsRUFFL0MsR0FGK0MsRUFFMUMsQ0FBQyxHQUZ5QyxFQUVwQyxDQUZvQyxFQUcvQyxHQUgrQyxFQUcxQyxHQUgwQyxFQUdyQyxDQUhxQyxFQUkvQyxDQUFDLEdBSjhDLEVBSXpDLEdBSnlDLEVBSXBDLENBSm9DLENBQWpCLENBQVgsRUFLbkIsQ0FMbUIsQ0FEM0IsRUFPSyxTQVBMLENBT2UsU0FQZixFQU8wQixxQkFBVyxJQUFJLFlBQUosQ0FBaUIsQ0FDOUMsQ0FEOEMsRUFDM0MsQ0FEMkMsRUFFOUMsQ0FGOEMsRUFFM0MsQ0FGMkMsRUFHOUMsQ0FIOEMsRUFHM0MsQ0FIMkMsRUFJOUMsQ0FKOEMsRUFJM0MsQ0FKMkMsQ0FBakIsQ0FBWCxFQUtsQixDQUxrQixDQVAxQixFQWFLLFNBYkwsQ0FhZSxPQWJmLEVBYXdCLHFCQUFXLElBQUksV0FBSixDQUFnQixDQUMzQyxDQUQyQyxFQUN4QyxDQUR3QyxFQUNyQyxDQURxQyxFQUUzQyxDQUYyQyxFQUV4QyxDQUZ3QyxFQUVyQyxDQUZxQyxDQUFoQixDQUFYLEVBR2hCLENBSGdCLENBYnhCOztBQWtCQSxjQUFLLFNBQUwsQ0FBZSxTQUFmLENBQXlCLE9BQXpCLEVBQWtDLElBQWxDLEdBQXlDLGlCQUFPLGtCQUFoRDs7QUFFQSxjQUFLLGNBQUwsR0FBc0IsNEJBQWtCO0FBQ3BDLHdDQURvQztBQUVwQywwQ0FGb0M7QUFHcEMsc0JBQVUsQ0FDTixFQUFDLE1BQU0sVUFBUCxFQUFtQixNQUFNLE1BQXpCLEVBRE0sRUFFTixFQUFDLE1BQU0sV0FBUCxFQUFvQixNQUFNLElBQTFCLEVBRk0sRUFHTixFQUFDLE1BQU0sYUFBUCxFQUFzQixNQUFNLElBQTVCLEVBSE0sRUFJTixFQUFDLE1BQU0sUUFBUCxFQUFpQixNQUFNLElBQXZCLEVBSk0sRUFLTixFQUFDLE1BQU0sVUFBUCxFQUFtQixNQUFNLElBQXpCLEVBTE0sRUFNTixFQUFDLE1BQU0sV0FBUCxFQUFvQixNQUFNLElBQTFCLEVBTk0sRUFPTixFQUFDLE1BQU0sU0FBUCxFQUFrQixNQUFNLElBQXhCLEVBUE0sRUFRTixFQUFDLE1BQU0sWUFBUCxFQUFxQixNQUFNLElBQTNCLEVBUk0sQ0FIMEI7QUFhcEMsd0JBQVksQ0FDUixFQUFDLE1BQU0sVUFBUCxFQURRLEVBRVIsRUFBQyxNQUFNLFNBQVAsRUFGUSxFQUdSLEVBQUMsTUFBTSxPQUFQLEVBQWdCLE9BQU8sSUFBdkIsRUFIUTtBQWJ3QixTQUFsQixDQUF0Qjs7QUFvQkEsY0FBSyxJQUFMLEdBQVksdUJBQWEsZUFBekI7QUE1Q1U7QUE2Q2I7Ozs7Ozs7Ozs7K0JBTU0sSyxFQUFPO0FBQUEsZ0JBQ0gsRUFERyxHQUNXLEtBRFgsQ0FDSCxFQURHO0FBQUEsZ0JBQ0MsTUFERCxHQUNXLEtBRFgsQ0FDQyxNQUREOzs7QUFHVixrQkFBTSxhQUFOLEdBQXNCLEtBQUssY0FBM0I7O0FBRUEsZUFBRyxPQUFILENBQVcsR0FBRyxVQUFkOztBQUVBLGVBQUcsTUFBSCxDQUFVLEdBQUcsS0FBYjtBQUNBLGVBQUcsYUFBSCxDQUFpQixHQUFHLFFBQXBCO0FBQ0EsZUFBRyxTQUFILENBQWEsR0FBRyxHQUFoQixFQUFxQixHQUFHLG1CQUF4Qjs7QUFFQSxpQkFBSyxjQUFMLENBQ0ssTUFETCxDQUNZLEVBRFosRUFFSyxJQUZMLENBRVUsRUFGVixFQUVjO0FBQ04sMEJBQVUsSUFBSSxZQUFKLENBQWlCLE9BQU8sZUFBeEIsQ0FESjtBQUVOLDBCQUFVO0FBRkosYUFGZCxFQUtPO0FBQ0MsMEJBQVUsS0FBSyxTQUFMLENBQWUsU0FBZixDQUF5QixVQUF6QixDQURYO0FBRUMseUJBQVMsS0FBSyxTQUFMLENBQWUsU0FBZixDQUF5QixTQUF6QixDQUZWO0FBR0MsdUJBQU8sS0FBSyxTQUFMLENBQWUsU0FBZixDQUF5QixPQUF6QjtBQUhSLGFBTFA7O0FBV0EsZUFBRyxhQUFILENBQWlCLEdBQUcsUUFBcEI7O0FBRUEsaUJBQUssUUFBTCxDQUFjLE9BQWQsQ0FBc0I7QUFBQSx1QkFBVSxPQUFPLE1BQVAsQ0FBYyxLQUFkLENBQVY7QUFBQSxhQUF0QjtBQUNBLGlCQUFLLFFBQUwsR0FBZ0IsRUFBaEI7O0FBRUEsaUJBQUssY0FBTCxDQUFvQixPQUFwQixDQUE0QixFQUE1Qjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7Ozs7OztBQUdMLG1CQUFTLFNBQVQsQ0FBbUIsRUFBbkIsRUFBdUIsWUFBdkI7O2tCQUVlLFkiLCJmaWxlIjoiU3ByaXRlUGx1Z2luLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZyYWdtZW50U2hhZGVyIGZyb20gJy4uL3NoYWRlcnMvc3ByaXRlLmZyYWcuanMnO1xuaW1wb3J0IHZlcnRleFNoYWRlciBmcm9tICcuLi9zaGFkZXJzL3Nwcml0ZS52ZXJ0LmpzJztcbmltcG9ydCBTaGFkZXJQcm9ncmFtIGZyb20gJy4uL1NoYWRlclByb2dyYW0nO1xuaW1wb3J0IFJlbmRlcmVyUGx1Z2luIGZyb20gJy4uL1JlbmRlcmVyUGx1Z2luJztcbmltcG9ydCBHZW9tZXRyeSBmcm9tICcuLi9HZW9tZXRyeSc7XG5pbXBvcnQgUmVuZGVyZXIgZnJvbSAnLi4vUmVuZGVyZXInO1xuaW1wb3J0IEJ1ZmZlciBmcm9tICcuLi9CdWZmZXInO1xuaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqICDQn9C70LDQs9C40L0g0LTQu9GPINGA0LXQvdC00LXRgNCwIHtAU3ByaXRlfSDQvtCx0YrQtdC60YLQvtCyLCDQtNC+0LHQsNCy0LvRj9C10YLRgdGPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC/0YDQuCDQuNGFINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC4LlxuICovXG5jbGFzcyBTcHJpdGVQbHVnaW4gZXh0ZW5kcyBSZW5kZXJlclBsdWdpbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5fZ2VvbWV0cnkgPSBuZXcgR2VvbWV0cnkoKTtcbiAgICAgICAgdGhpcy5fZ2VvbWV0cnlcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ3Bvc2l0aW9uJywgbmV3IEJ1ZmZlcihuZXcgRmxvYXQzMkFycmF5KFtcbiAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAwLFxuICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgMCxcbiAgICAgICAgICAgICAgICAwLjUsIDAuNSwgMCxcbiAgICAgICAgICAgICAgICAtMC41LCAwLjUsIDBcbiAgICAgICAgICAgIF0pLCAzKSlcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ3RleHR1cmUnLCBuZXcgQnVmZmVyKG5ldyBGbG9hdDMyQXJyYXkoW1xuICAgICAgICAgICAgICAgIDAsIDAsXG4gICAgICAgICAgICAgICAgMSwgMCxcbiAgICAgICAgICAgICAgICAxLCAxLFxuICAgICAgICAgICAgICAgIDAsIDFcbiAgICAgICAgICAgIF0pLCAyKSlcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ2luZGV4JywgbmV3IEJ1ZmZlcihuZXcgVWludDE2QXJyYXkoW1xuICAgICAgICAgICAgICAgIDEsIDIsIDAsXG4gICAgICAgICAgICAgICAgMywgMCwgMlxuICAgICAgICAgICAgXSksIDEpKTtcblxuICAgICAgICB0aGlzLl9nZW9tZXRyeS5nZXRCdWZmZXIoJ2luZGV4JykudHlwZSA9IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXI7XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbSA9IG5ldyBTaGFkZXJQcm9ncmFtKHtcbiAgICAgICAgICAgIHZlcnRleDogdmVydGV4U2hhZGVyLFxuICAgICAgICAgICAgZnJhZ21lbnQ6IGZyYWdtZW50U2hhZGVyLFxuICAgICAgICAgICAgdW5pZm9ybXM6IFtcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VQQ2FtZXJhJywgdHlwZTogJ21hdDQnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VQb3NpdGlvbicsIHR5cGU6ICczZid9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAndUNvbG9yQWxwaGEnLCB0eXBlOiAnMWYnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VTY2FsZScsIHR5cGU6ICcyZid9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAndVRleHR1cmUnLCB0eXBlOiAnMWknfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VIYWxmU2l6ZScsIHR5cGU6ICcyZid9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAndU9mZnNldCcsIHR5cGU6ICcyZid9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAndVNtb290aGluZycsIHR5cGU6ICcxZid9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgICAgICAgIHtuYW1lOiAncG9zaXRpb24nfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3RleHR1cmUnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2luZGV4JywgaW5kZXg6IHRydWV9XG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5TUFJJVEVfUkVOREVSRVI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KDQuNGB0YPQtdGCINGB0YbQtdC90YMg0YEg0L/QvtC80L7RidGM0Y4g0Y3RgtC+0LPQviDQv9C70LDQs9C40L3QsFxuICAgICAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gICAgICovXG4gICAgcmVuZGVyKHN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHtnbCwgY2FtZXJhfSA9IHN0YXRlO1xuXG4gICAgICAgIHN0YXRlLnNoYWRlclByb2dyYW0gPSB0aGlzLl9zaGFkZXJQcm9ncmFtO1xuXG4gICAgICAgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7XG5cbiAgICAgICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTtcbiAgICAgICAgZ2wuYmxlbmRFcXVhdGlvbihnbC5GVU5DX0FERCk7XG4gICAgICAgIGdsLmJsZW5kRnVuYyhnbC5PTkUsIGdsLk9ORV9NSU5VU19TUkNfQUxQSEEpO1xuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW1cbiAgICAgICAgICAgIC5lbmFibGUoZ2wpXG4gICAgICAgICAgICAuYmluZChnbCwge1xuICAgICAgICAgICAgICAgIHVQQ2FtZXJhOiBuZXcgRmxvYXQzMkFycmF5KGNhbWVyYS5tb2RlbFZpZXdNYXRyaXgpLFxuICAgICAgICAgICAgICAgIHVUZXh0dXJlOiAwXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHRoaXMuX2dlb21ldHJ5LmdldEJ1ZmZlcigncG9zaXRpb24nKSxcbiAgICAgICAgICAgICAgICB0ZXh0dXJlOiB0aGlzLl9nZW9tZXRyeS5nZXRCdWZmZXIoJ3RleHR1cmUnKSxcbiAgICAgICAgICAgICAgICBpbmRleDogdGhpcy5fZ2VvbWV0cnkuZ2V0QnVmZmVyKCdpbmRleCcpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwKTtcblxuICAgICAgICB0aGlzLl9vYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IG9iamVjdC5yZW5kZXIoc3RhdGUpKTtcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IFtdO1xuXG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0uZGlzYWJsZShnbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG5SZW5kZXJlci5hZGRQbHVnaW4oMjAsIFNwcml0ZVBsdWdpbik7XG5cbmV4cG9ydCBkZWZhdWx0IFNwcml0ZVBsdWdpbjtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvU3ByaXRlUGx1Z2luLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTs7OztJQUdNLFk7OztBQUNGLDRCQUFjO0FBQUE7O0FBQUE7O0FBR1YsY0FBSyxTQUFMLEdBQWlCLHdCQUFqQjtBQUNBLGNBQUssU0FBTCxDQUNLLFNBREwsQ0FDZSxVQURmLEVBQzJCLHFCQUFXLElBQUksWUFBSixDQUFpQixDQUMvQyxDQUFDLEdBRDhDLEVBQ3pDLENBQUMsR0FEd0MsRUFDbkMsQ0FEbUMsRUFFL0MsR0FGK0MsRUFFMUMsQ0FBQyxHQUZ5QyxFQUVwQyxDQUZvQyxFQUcvQyxHQUgrQyxFQUcxQyxHQUgwQyxFQUdyQyxDQUhxQyxFQUkvQyxDQUFDLEdBSjhDLEVBSXpDLEdBSnlDLEVBSXBDLENBSm9DLENBQWpCLENBQVgsRUFLbkIsQ0FMbUIsQ0FEM0IsRUFPSyxTQVBMLENBT2UsU0FQZixFQU8wQixxQkFBVyxJQUFJLFlBQUosQ0FBaUIsQ0FDOUMsQ0FEOEMsRUFDM0MsQ0FEMkMsRUFFOUMsQ0FGOEMsRUFFM0MsQ0FGMkMsRUFHOUMsQ0FIOEMsRUFHM0MsQ0FIMkMsRUFJOUMsQ0FKOEMsRUFJM0MsQ0FKMkMsQ0FBakIsQ0FBWCxFQUtsQixDQUxrQixDQVAxQixFQWFLLFNBYkwsQ0FhZSxPQWJmLEVBYXdCLHFCQUFXLElBQUksV0FBSixDQUFnQixDQUMzQyxDQUQyQyxFQUN4QyxDQUR3QyxFQUNyQyxDQURxQyxFQUUzQyxDQUYyQyxFQUV4QyxDQUZ3QyxFQUVyQyxDQUZxQyxDQUFoQixDQUFYLEVBR2hCLENBSGdCLENBYnhCOztBQWtCQSxjQUFLLFNBQUwsQ0FBZSxTQUFmLENBQXlCLE9BQXpCLEVBQWtDLElBQWxDLEdBQXlDLGlCQUFPLGtCQUFoRDs7QUFFQSxjQUFLLGNBQUwsR0FBc0IsNEJBQWtCO0FBQ3BDLG9CQUFRLHFCQUFXLFFBQVgsMkJBRDRCO0FBRXBDLHNCQUFVLHFCQUFXLFVBQVgsMkJBRjBCO0FBR3BDLHNCQUFVLENBQ04sRUFBQyxNQUFNLFVBQVAsRUFBbUIsTUFBTSxNQUF6QixFQURNLEVBRU4sRUFBQyxNQUFNLFdBQVAsRUFBb0IsTUFBTSxJQUExQixFQUZNLEVBR04sRUFBQyxNQUFNLGFBQVAsRUFBc0IsTUFBTSxJQUE1QixFQUhNLEVBSU4sRUFBQyxNQUFNLFFBQVAsRUFBaUIsTUFBTSxJQUF2QixFQUpNLEVBS04sRUFBQyxNQUFNLFVBQVAsRUFBbUIsTUFBTSxJQUF6QixFQUxNLEVBTU4sRUFBQyxNQUFNLFdBQVAsRUFBb0IsTUFBTSxJQUExQixFQU5NLEVBT04sRUFBQyxNQUFNLFNBQVAsRUFBa0IsTUFBTSxJQUF4QixFQVBNLEVBUU4sRUFBQyxNQUFNLFlBQVAsRUFBcUIsTUFBTSxJQUEzQixFQVJNLENBSDBCO0FBYXBDLHdCQUFZLENBQ1IsRUFBQyxNQUFNLFVBQVAsRUFEUSxFQUVSLEVBQUMsTUFBTSxTQUFQLEVBRlEsRUFHUixFQUFDLE1BQU0sT0FBUCxFQUFnQixPQUFPLElBQXZCLEVBSFE7QUFid0IsU0FBbEIsQ0FBdEI7O0FBb0JBLGNBQUssSUFBTCxHQUFZLHVCQUFhLGVBQXpCO0FBNUNVO0FBNkNiOztBQUVEOzs7Ozs7OzsrQkFJTyxLLEVBQU87QUFBQSxnQkFDSCxFQURHLEdBQ1csS0FEWCxDQUNILEVBREc7QUFBQSxnQkFDQyxNQURELEdBQ1csS0FEWCxDQUNDLE1BREQ7OztBQUdWLGtCQUFNLGFBQU4sR0FBc0IsS0FBSyxjQUEzQjs7QUFFQSxlQUFHLE9BQUgsQ0FBVyxHQUFHLFVBQWQ7O0FBRUEsZUFBRyxNQUFILENBQVUsR0FBRyxLQUFiO0FBQ0EsZUFBRyxhQUFILENBQWlCLEdBQUcsUUFBcEI7QUFDQSxlQUFHLFNBQUgsQ0FBYSxHQUFHLEdBQWhCLEVBQXFCLEdBQUcsbUJBQXhCOztBQUVBLGlCQUFLLGNBQUwsQ0FDSyxNQURMLENBQ1ksRUFEWixFQUVLLElBRkwsQ0FFVSxFQUZWLEVBRWM7QUFDTiwwQkFBVSxJQUFJLFlBQUosQ0FBaUIsT0FBTyxlQUF4QixDQURKO0FBRU4sMEJBQVU7QUFGSixhQUZkLEVBS087QUFDQywwQkFBVSxLQUFLLFNBQUwsQ0FBZSxTQUFmLENBQXlCLFVBQXpCLENBRFg7QUFFQyx5QkFBUyxLQUFLLFNBQUwsQ0FBZSxTQUFmLENBQXlCLFNBQXpCLENBRlY7QUFHQyx1QkFBTyxLQUFLLFNBQUwsQ0FBZSxTQUFmLENBQXlCLE9BQXpCO0FBSFIsYUFMUDs7QUFXQSxlQUFHLGFBQUgsQ0FBaUIsR0FBRyxRQUFwQjs7QUFFQSxpQkFBSyxRQUFMLENBQWMsT0FBZCxDQUFzQjtBQUFBLHVCQUFVLE9BQU8sTUFBUCxDQUFjLEtBQWQsQ0FBVjtBQUFBLGFBQXRCO0FBQ0EsaUJBQUssUUFBTCxHQUFnQixFQUFoQjs7QUFFQSxpQkFBSyxjQUFMLENBQW9CLE9BQXBCLENBQTRCLEVBQTVCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7Ozs7O0FBR0wsbUJBQVMsU0FBVCxDQUFtQixFQUFuQixFQUF1QixZQUF2Qjs7a0JBRWUsWSIsImZpbGUiOiJTcHJpdGVQbHVnaW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnJhZ21lbnRTaGFkZXIgZnJvbSAnLi4vc2hhZGVycy9zcHJpdGUuZnJhZy5nbHNsLmpzJztcbmltcG9ydCB2ZXJ0ZXhTaGFkZXIgZnJvbSAnLi4vc2hhZGVycy9zcHJpdGUudmVydC5nbHNsLmpzJztcbmltcG9ydCBTaGFkZXJQcm9ncmFtIGZyb20gJy4uL1NoYWRlclByb2dyYW0nO1xuaW1wb3J0IFJlbmRlcmVyUGx1Z2luIGZyb20gJy4uL1JlbmRlcmVyUGx1Z2luJztcbmltcG9ydCBHZW9tZXRyeSBmcm9tICcuLi9HZW9tZXRyeSc7XG5pbXBvcnQgUmVuZGVyZXIgZnJvbSAnLi4vUmVuZGVyZXInO1xuaW1wb3J0IFNoYWRlciBmcm9tICcuLi9TaGFkZXInO1xuaW1wb3J0IEJ1ZmZlciBmcm9tICcuLi9CdWZmZXInO1xuaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqICDQn9C70LDQs9C40L0g0LTQu9GPINGA0LXQvdC00LXRgNCwIHtAU3ByaXRlfSDQvtCx0YrQtdC60YLQvtCyLCDQtNC+0LHQsNCy0LvRj9C10YLRgdGPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC/0YDQuCDQuNGFINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC4LlxuICovXG5jbGFzcyBTcHJpdGVQbHVnaW4gZXh0ZW5kcyBSZW5kZXJlclBsdWdpbiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5fZ2VvbWV0cnkgPSBuZXcgR2VvbWV0cnkoKTtcbiAgICAgICAgdGhpcy5fZ2VvbWV0cnlcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ3Bvc2l0aW9uJywgbmV3IEJ1ZmZlcihuZXcgRmxvYXQzMkFycmF5KFtcbiAgICAgICAgICAgICAgICAtMC41LCAtMC41LCAwLFxuICAgICAgICAgICAgICAgIDAuNSwgLTAuNSwgMCxcbiAgICAgICAgICAgICAgICAwLjUsIDAuNSwgMCxcbiAgICAgICAgICAgICAgICAtMC41LCAwLjUsIDBcbiAgICAgICAgICAgIF0pLCAzKSlcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ3RleHR1cmUnLCBuZXcgQnVmZmVyKG5ldyBGbG9hdDMyQXJyYXkoW1xuICAgICAgICAgICAgICAgIDAsIDAsXG4gICAgICAgICAgICAgICAgMSwgMCxcbiAgICAgICAgICAgICAgICAxLCAxLFxuICAgICAgICAgICAgICAgIDAsIDFcbiAgICAgICAgICAgIF0pLCAyKSlcbiAgICAgICAgICAgIC5zZXRCdWZmZXIoJ2luZGV4JywgbmV3IEJ1ZmZlcihuZXcgVWludDE2QXJyYXkoW1xuICAgICAgICAgICAgICAgIDEsIDIsIDAsXG4gICAgICAgICAgICAgICAgMywgMCwgMlxuICAgICAgICAgICAgXSksIDEpKTtcblxuICAgICAgICB0aGlzLl9nZW9tZXRyeS5nZXRCdWZmZXIoJ2luZGV4JykudHlwZSA9IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXI7XG5cbiAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbSA9IG5ldyBTaGFkZXJQcm9ncmFtKHtcbiAgICAgICAgICAgIHZlcnRleDogbmV3IFNoYWRlcigndmVydGV4JywgdmVydGV4U2hhZGVyKSxcbiAgICAgICAgICAgIGZyYWdtZW50OiBuZXcgU2hhZGVyKCdmcmFnbWVudCcsIGZyYWdtZW50U2hhZGVyKSxcbiAgICAgICAgICAgIHVuaWZvcm1zOiBbXG4gICAgICAgICAgICAgICAge25hbWU6ICd1UENhbWVyYScsIHR5cGU6ICdtYXQ0J30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1UG9zaXRpb24nLCB0eXBlOiAnM2YnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VDb2xvckFscGhhJywgdHlwZTogJzFmJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1U2NhbGUnLCB0eXBlOiAnMmYnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VUZXh0dXJlJywgdHlwZTogJzFpJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd1SGFsZlNpemUnLCB0eXBlOiAnMmYnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VPZmZzZXQnLCB0eXBlOiAnMmYnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3VTbW9vdGhpbmcnLCB0eXBlOiAnMWYnfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtcbiAgICAgICAgICAgICAgICB7bmFtZTogJ3Bvc2l0aW9uJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICd0ZXh0dXJlJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICdpbmRleCcsIGluZGV4OiB0cnVlfVxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuU1BSSVRFX1JFTkRFUkVSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LjRgdGD0LXRgiDRgdGG0LXQvdGDINGBINC/0L7QvNC+0YnRjNGOINGN0YLQvtCz0L4g0L/Qu9Cw0LPQuNC90LBcbiAgICAgKiBAcGFyYW0ge1N0YXRlfSBzdGF0ZVxuICAgICAqL1xuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICBjb25zdCB7Z2wsIGNhbWVyYX0gPSBzdGF0ZTtcblxuICAgICAgICBzdGF0ZS5zaGFkZXJQcm9ncmFtID0gdGhpcy5fc2hhZGVyUHJvZ3JhbTtcblxuICAgICAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpO1xuXG4gICAgICAgIGdsLmVuYWJsZShnbC5CTEVORCk7XG4gICAgICAgIGdsLmJsZW5kRXF1YXRpb24oZ2wuRlVOQ19BREQpO1xuICAgICAgICBnbC5ibGVuZEZ1bmMoZ2wuT05FLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtXG4gICAgICAgICAgICAuZW5hYmxlKGdsKVxuICAgICAgICAgICAgLmJpbmQoZ2wsIHtcbiAgICAgICAgICAgICAgICB1UENhbWVyYTogbmV3IEZsb2F0MzJBcnJheShjYW1lcmEubW9kZWxWaWV3TWF0cml4KSxcbiAgICAgICAgICAgICAgICB1VGV4dHVyZTogMFxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLl9nZW9tZXRyeS5nZXRCdWZmZXIoJ3Bvc2l0aW9uJyksXG4gICAgICAgICAgICAgICAgdGV4dHVyZTogdGhpcy5fZ2VvbWV0cnkuZ2V0QnVmZmVyKCd0ZXh0dXJlJyksXG4gICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuX2dlb21ldHJ5LmdldEJ1ZmZlcignaW5kZXgnKVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCk7XG5cbiAgICAgICAgdGhpcy5fb2JqZWN0cy5mb3JFYWNoKG9iamVjdCA9PiBvYmplY3QucmVuZGVyKHN0YXRlKSk7XG4gICAgICAgIHRoaXMuX29iamVjdHMgPSBbXTtcblxuICAgICAgICB0aGlzLl9zaGFkZXJQcm9ncmFtLmRpc2FibGUoZ2wpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuUmVuZGVyZXIuYWRkUGx1Z2luKDIwLCBTcHJpdGVQbHVnaW4pO1xuXG5leHBvcnQgZGVmYXVsdCBTcHJpdGVQbHVnaW47XG4iXX0=

@@ -106,2 +106,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvVHJhbnNwYXJlbnRQbHVnaW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9NLGlCOzs7QUFDRixpQ0FBYztBQUFBOztBQUFBOztBQUdWLGNBQUssSUFBTCxHQUFZLHVCQUFhLG9CQUF6QjtBQUhVO0FBSWI7Ozs7Ozs7Ozs7K0JBTU0sSyxFQUFPO0FBQ1YsZ0JBQU0sS0FBSyxNQUFNLEVBQWpCOztBQUVBLGVBQUcsTUFBSCxDQUFVLEdBQUcsS0FBYjtBQUNBLGVBQUcsYUFBSCxDQUFpQixHQUFHLFFBQXBCO0FBQ0EsZUFBRyxTQUFILENBQWEsR0FBRyxTQUFoQixFQUEyQixHQUFHLG1CQUE5Qjs7QUFFQSxlQUFHLHFCQUFILENBQXlCLEdBQUcsUUFBNUIsRUFBc0MsR0FBRyxRQUF6QztBQUNBLGVBQUcsaUJBQUgsQ0FBcUIsR0FBRyxTQUF4QixFQUFtQyxHQUFHLG1CQUF0QyxFQUEyRCxHQUFHLEdBQTlELEVBQW1FLEdBQUcsbUJBQXRFOztBQUVBLGdCQUFJLE1BQU0sUUFBTixDQUFlLFdBQW5CLEVBQWdDO0FBQzVCLHFCQUFLLFlBQUwsQ0FBa0IsS0FBbEI7QUFDSDs7QUFFRCxpQkFBSyxRQUFMLENBQWMsT0FBZCxDQUFzQjtBQUFBLHVCQUFVLE9BQU8sTUFBUCxDQUFjLEtBQWQsQ0FBVjtBQUFBLGFBQXRCO0FBQ0EsaUJBQUssUUFBTCxHQUFnQixFQUFoQjs7QUFFQSxtQkFBTyxJQUFQO0FBQ0g7OzsyQ0FFc0I7QUFBQSxnQkFBVCxNQUFTLFFBQVQsTUFBUzs7QUFDbkIsZ0JBQU0sU0FBUyxLQUFLLHlCQUFMLENBQStCLElBQS9CLENBQW9DLElBQXBDLEVBQTBDLE1BQTFDLENBQWY7O0FBRUEsaUJBQUssUUFBTCxDQUFjLElBQWQsQ0FBbUIsTUFBbkI7QUFDSDs7O2tEQUV5QixNLEVBQVEsQyxFQUFHLEMsRUFBRztBQUNwQyxnQkFBSSxFQUFFLFdBQUYsS0FBa0IsRUFBRSxXQUF4QixFQUFxQztBQUNqQyx1QkFBTyxFQUFFLFdBQUYsR0FBZ0IsRUFBRSxXQUF6QjtBQUNIOztBQUVELGdCQUFNLEtBQUssT0FBTyxPQUFQLENBQWUsRUFBRSxnQkFBRixFQUFmLEVBQXFDLENBQXJDLENBQVg7QUFDQSxnQkFBTSxLQUFLLE9BQU8sT0FBUCxDQUFlLEVBQUUsZ0JBQUYsRUFBZixFQUFxQyxDQUFyQyxDQUFYOztBQUVBLG1CQUFPLEtBQUssRUFBWjtBQUNIOzs7Ozs7QUFHTCxtQkFBUyxTQUFULENBQW1CLEVBQW5CLEVBQXVCLGlCQUF2Qjs7a0JBRWUsaUIiLCJmaWxlIjoiVHJhbnNwYXJlbnRQbHVnaW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVuZGVyZXJQbHVnaW4gZnJvbSAnLi4vUmVuZGVyZXJQbHVnaW4nO1xuaW1wb3J0IFJlbmRlcmVyIGZyb20gJy4uL1JlbmRlcmVyJztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi4vbGliQ29uc3RhbnRzJztcblxuLyoqXG4gKiDQn9C70LDQs9C40L0g0LTQu9GPINGA0LXQvdC00LXRgNCwINC/0YDQvtC30YDQsNGH0L3Ri9GFINC+0LHRitC10LrRgtC+0LIuXG4gKiDQlNC70Y8g0YLQvtCz0L4sINGH0YLQvtCx0Ysg0L7QvSDQtNC+0LHQsNCy0LjQu9GB0Y8g0Log0YDQtdC90LTQtdGA0YMsINC80L7QtNGD0LvRjCDQvdGD0LbQvdC+INC30LDRgNC10LrQstCw0LnRgNC40YLRjC5cbiAqINCU0LvRjyB7QGxpbmsgQmFzaWNNZXNoTWF0ZXJpYWx9INC4IHtAbGluayBDb21wbGV4TWVzaE1hdGVyaWFsfSDQvNC+0LTRg9C70Ywg0L/QvtC00LrQu9GO0YfQsNC10YLRgdGPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4LlxuICovXG5jbGFzcyBUcmFuc3BhcmVudFBsdWdpbiBleHRlbmRzIFJlbmRlcmVyUGx1Z2luIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuVFJBTlNQQVJFTlRfUkVOREVSRVI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KDQuNGB0YPQtdGCINGB0YbQtdC90YMg0YEg0L/QvtC80L7RidGM0Y4g0Y3RgtC+0LPQviDQv9C70LDQs9C40L3QsFxuICAgICAqIEBwYXJhbSB7U3RhdGV9IHN0YXRlXG4gICAgICovXG4gICAgcmVuZGVyKHN0YXRlKSB7XG4gICAgICAgIGNvbnN0IGdsID0gc3RhdGUuZ2w7XG5cbiAgICAgICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTtcbiAgICAgICAgZ2wuYmxlbmRFcXVhdGlvbihnbC5GVU5DX0FERCk7XG4gICAgICAgIGdsLmJsZW5kRnVuYyhnbC5TUkNfQUxQSEEsIGdsLk9ORV9NSU5VU19TUkNfQUxQSEEpO1xuXG4gICAgICAgIGdsLmJsZW5kRXF1YXRpb25TZXBhcmF0ZShnbC5GVU5DX0FERCwgZ2wuRlVOQ19BREQpO1xuICAgICAgICBnbC5ibGVuZEZ1bmNTZXBhcmF0ZShnbC5TUkNfQUxQSEEsIGdsLk9ORV9NSU5VU19TUkNfQUxQSEEsIGdsLk9ORSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7XG5cbiAgICAgICAgaWYgKHN0YXRlLnJlbmRlcmVyLnNvcnRPYmplY3RzKSB7XG4gICAgICAgICAgICB0aGlzLl9zb3J0T2JqZWN0cyhzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IG9iamVjdC5yZW5kZXIoc3RhdGUpKTtcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IFtdO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIF9zb3J0T2JqZWN0cyh7Y2FtZXJhfSkge1xuICAgICAgICBjb25zdCBzb3J0ZXIgPSB0aGlzLl9yZXZlcnNlUGFpbnRlclNvcnRTdGFibGUuYmluZCh0aGlzLCBjYW1lcmEpO1xuXG4gICAgICAgIHRoaXMuX29iamVjdHMuc29ydChzb3J0ZXIpO1xuICAgIH1cblxuICAgIF9yZXZlcnNlUGFpbnRlclNvcnRTdGFibGUoY2FtZXJhLCBhLCBiKSB7XG4gICAgICAgIGlmIChhLnJlbmRlck9yZGVyICE9PSBiLnJlbmRlck9yZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gYS5yZW5kZXJPcmRlciAtIGIucmVuZGVyT3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhWiA9IGNhbWVyYS5wcm9qZWN0KGEuZ2V0V29ybGRQb3NpdGlvbigpKVsyXTtcbiAgICAgICAgY29uc3QgYlogPSBjYW1lcmEucHJvamVjdChiLmdldFdvcmxkUG9zaXRpb24oKSlbMl07XG5cbiAgICAgICAgcmV0dXJuIGJaIC0gYVo7XG4gICAgfVxufVxuXG5SZW5kZXJlci5hZGRQbHVnaW4oMTAsIFRyYW5zcGFyZW50UGx1Z2luKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhbnNwYXJlbnRQbHVnaW47XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJlclBsdWdpbnMvVHJhbnNwYXJlbnRQbHVnaW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7SUFLTSxpQjs7O0FBQ0YsaUNBQWM7QUFBQTs7QUFBQTs7QUFHVixjQUFLLElBQUwsR0FBWSx1QkFBYSxvQkFBekI7QUFIVTtBQUliOztBQUVEOzs7Ozs7OzsrQkFJTyxLLEVBQU87QUFDVixnQkFBTSxLQUFLLE1BQU0sRUFBakI7O0FBRUEsZUFBRyxNQUFILENBQVUsR0FBRyxLQUFiO0FBQ0EsZUFBRyxhQUFILENBQWlCLEdBQUcsUUFBcEI7QUFDQSxlQUFHLFNBQUgsQ0FBYSxHQUFHLFNBQWhCLEVBQTJCLEdBQUcsbUJBQTlCOztBQUVBLGVBQUcscUJBQUgsQ0FBeUIsR0FBRyxRQUE1QixFQUFzQyxHQUFHLFFBQXpDO0FBQ0EsZUFBRyxpQkFBSCxDQUFxQixHQUFHLFNBQXhCLEVBQW1DLEdBQUcsbUJBQXRDLEVBQTJELEdBQUcsR0FBOUQsRUFBbUUsR0FBRyxtQkFBdEU7O0FBRUEsZ0JBQUksTUFBTSxRQUFOLENBQWUsV0FBbkIsRUFBZ0M7QUFDNUIscUJBQUssWUFBTCxDQUFrQixLQUFsQjtBQUNIOztBQUVELGlCQUFLLFFBQUwsQ0FBYyxPQUFkLENBQXNCO0FBQUEsdUJBQVUsT0FBTyxNQUFQLENBQWMsS0FBZCxDQUFWO0FBQUEsYUFBdEI7QUFDQSxpQkFBSyxRQUFMLEdBQWdCLEVBQWhCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7OzJDQUVzQjtBQUFBLGdCQUFULE1BQVMsUUFBVCxNQUFTOztBQUNuQixnQkFBTSxTQUFTLEtBQUsseUJBQUwsQ0FBK0IsSUFBL0IsQ0FBb0MsSUFBcEMsRUFBMEMsTUFBMUMsQ0FBZjs7QUFFQSxpQkFBSyxRQUFMLENBQWMsSUFBZCxDQUFtQixNQUFuQjtBQUNIOzs7a0RBRXlCLE0sRUFBUSxDLEVBQUcsQyxFQUFHO0FBQ3BDLGdCQUFJLEVBQUUsV0FBRixLQUFrQixFQUFFLFdBQXhCLEVBQXFDO0FBQ2pDLHVCQUFPLEVBQUUsV0FBRixHQUFnQixFQUFFLFdBQXpCO0FBQ0g7O0FBRUQsZ0JBQU0sS0FBSyxPQUFPLE9BQVAsQ0FBZSxFQUFFLGdCQUFGLEVBQWYsRUFBcUMsQ0FBckMsQ0FBWDtBQUNBLGdCQUFNLEtBQUssT0FBTyxPQUFQLENBQWUsRUFBRSxnQkFBRixFQUFmLEVBQXFDLENBQXJDLENBQVg7O0FBRUEsbUJBQU8sS0FBSyxFQUFaO0FBQ0g7Ozs7OztBQUdMLG1CQUFTLFNBQVQsQ0FBbUIsRUFBbkIsRUFBdUIsaUJBQXZCOztrQkFFZSxpQiIsImZpbGUiOiJUcmFuc3BhcmVudFBsdWdpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZW5kZXJlclBsdWdpbiBmcm9tICcuLi9SZW5kZXJlclBsdWdpbic7XG5pbXBvcnQgUmVuZGVyZXIgZnJvbSAnLi4vUmVuZGVyZXInO1xuaW1wb3J0IGxpYkNvbnN0YW50cyBmcm9tICcuLi9saWJDb25zdGFudHMnO1xuXG4vKipcbiAqINCf0LvQsNCz0LjQvSDQtNC70Y8g0YDQtdC90LTQtdGA0LAg0L/RgNC+0LfRgNCw0YfQvdGL0YUg0L7QsdGK0LXQutGC0L7Qsi5cbiAqINCU0LvRjyDRgtC+0LPQviwg0YfRgtC+0LHRiyDQvtC9INC00L7QsdCw0LLQuNC70YHRjyDQuiDRgNC10L3QtNC10YDRgywg0LzQvtC00YPQu9GMINC90YPQttC90L4g0LfQsNGA0LXQutCy0LDQudGA0LjRgtGMLlxuICog0JTQu9GPIHtAbGluayBCYXNpY01lc2hNYXRlcmlhbH0g0Lgge0BsaW5rIENvbXBsZXhNZXNoTWF0ZXJpYWx9INC80L7QtNGD0LvRjCDQv9C+0LTQutC70Y7Rh9Cw0LXRgtGB0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LguXG4gKi9cbmNsYXNzIFRyYW5zcGFyZW50UGx1Z2luIGV4dGVuZHMgUmVuZGVyZXJQbHVnaW4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5UUkFOU1BBUkVOVF9SRU5ERVJFUjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNC40YHRg9C10YIg0YHRhtC10L3RgyDRgSDQv9C+0LzQvtGJ0YzRjiDRjdGC0L7Qs9C+INC/0LvQsNCz0LjQvdCwXG4gICAgICogQHBhcmFtIHtTdGF0ZX0gc3RhdGVcbiAgICAgKi9cbiAgICByZW5kZXIoc3RhdGUpIHtcbiAgICAgICAgY29uc3QgZ2wgPSBzdGF0ZS5nbDtcblxuICAgICAgICBnbC5lbmFibGUoZ2wuQkxFTkQpO1xuICAgICAgICBnbC5ibGVuZEVxdWF0aW9uKGdsLkZVTkNfQUREKTtcbiAgICAgICAgZ2wuYmxlbmRGdW5jKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7XG5cbiAgICAgICAgZ2wuYmxlbmRFcXVhdGlvblNlcGFyYXRlKGdsLkZVTkNfQURELCBnbC5GVU5DX0FERCk7XG4gICAgICAgIGdsLmJsZW5kRnVuY1NlcGFyYXRlKGdsLlNSQ19BTFBIQSwgZ2wuT05FX01JTlVTX1NSQ19BTFBIQSwgZ2wuT05FLCBnbC5PTkVfTUlOVVNfU1JDX0FMUEhBKTtcblxuICAgICAgICBpZiAoc3RhdGUucmVuZGVyZXIuc29ydE9iamVjdHMpIHtcbiAgICAgICAgICAgIHRoaXMuX3NvcnRPYmplY3RzKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29iamVjdHMuZm9yRWFjaChvYmplY3QgPT4gb2JqZWN0LnJlbmRlcihzdGF0ZSkpO1xuICAgICAgICB0aGlzLl9vYmplY3RzID0gW107XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgX3NvcnRPYmplY3RzKHtjYW1lcmF9KSB7XG4gICAgICAgIGNvbnN0IHNvcnRlciA9IHRoaXMuX3JldmVyc2VQYWludGVyU29ydFN0YWJsZS5iaW5kKHRoaXMsIGNhbWVyYSk7XG5cbiAgICAgICAgdGhpcy5fb2JqZWN0cy5zb3J0KHNvcnRlcik7XG4gICAgfVxuXG4gICAgX3JldmVyc2VQYWludGVyU29ydFN0YWJsZShjYW1lcmEsIGEsIGIpIHtcbiAgICAgICAgaWYgKGEucmVuZGVyT3JkZXIgIT09IGIucmVuZGVyT3JkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBhLnJlbmRlck9yZGVyIC0gYi5yZW5kZXJPcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFaID0gY2FtZXJhLnByb2plY3QoYS5nZXRXb3JsZFBvc2l0aW9uKCkpWzJdO1xuICAgICAgICBjb25zdCBiWiA9IGNhbWVyYS5wcm9qZWN0KGIuZ2V0V29ybGRQb3NpdGlvbigpKVsyXTtcblxuICAgICAgICByZXR1cm4gYlogLSBhWjtcbiAgICB9XG59XG5cblJlbmRlcmVyLmFkZFBsdWdpbigxMCwgVHJhbnNwYXJlbnRQbHVnaW4pO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFuc3BhcmVudFBsdWdpbjtcbiJdfQ==

@@ -173,2 +173,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJUYXJnZXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBUU0sWTtBQUNGLDRCQUEwQjtBQUFBLFlBQWQsT0FBYyx5REFBSixFQUFJOztBQUFBOztBQUN0QixhQUFLLEtBQUwsR0FBYSxRQUFRLElBQXJCO0FBQ0g7Ozs7Ozs7Ozs7NkJBTUksRSxFQUFJO0FBQ0wsZ0JBQUksS0FBSyxZQUFULEVBQXVCO0FBQ25CLHFCQUFLLFVBQUwsQ0FBZ0IsRUFBaEI7QUFDQSxxQkFBSyxZQUFMLEdBQW9CLEtBQXBCO0FBQ0g7O0FBRUQsZ0JBQUksQ0FBQyxLQUFLLFlBQVYsRUFBd0I7QUFDcEIscUJBQUssUUFBTCxDQUFjLEVBQWQ7QUFDSDs7QUFFRCxlQUFHLGVBQUgsQ0FBbUIsR0FBRyxXQUF0QixFQUFtQyxLQUFLLFlBQXhDOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7OytCQU1NLEUsRUFBSTtBQUNQLGVBQUcsZUFBSCxDQUFtQixHQUFHLFdBQXRCLEVBQW1DLElBQW5DO0FBQ0EsbUJBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7K0JBTU0sRSxFQUFJO0FBQ1AsaUJBQUssVUFBTCxDQUFnQixFQUFoQjtBQUNBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7O2dDQU1PLEksRUFBTTtBQUNWLGlCQUFLLEtBQUwsR0FBYSxJQUFiO0FBQ0EsaUJBQUssWUFBTCxHQUFvQixJQUFwQjtBQUNBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7OztpQ0FPUSxFLEVBQUk7QUFDVCxpQkFBSyxRQUFMLEdBQWdCLHVCQUFoQjtBQUNBLGlCQUFLLFFBQUwsQ0FBYyxlQUFkLEdBQWdDLEtBQWhDO0FBQ0EsaUJBQUssUUFBTCxDQUFjLElBQWQsR0FBcUIsS0FBSyxLQUExQjs7QUFFQSxpQkFBSyxRQUFMLENBQWMsUUFBZCxDQUF1QixFQUF2Qjs7QUFFQSxpQkFBSyxZQUFMLEdBQW9CLEdBQUcsaUJBQUgsRUFBcEI7QUFDQSxlQUFHLGVBQUgsQ0FBbUIsR0FBRyxXQUF0QixFQUFtQyxLQUFLLFlBQXhDOztBQUVBLGlCQUFLLGFBQUwsR0FBcUIsR0FBRyxrQkFBSCxFQUFyQjtBQUNBLGVBQUcsZ0JBQUgsQ0FBb0IsR0FBRyxZQUF2QixFQUFxQyxLQUFLLGFBQTFDO0FBQ0EsZUFBRyxtQkFBSCxDQUF1QixHQUFHLFlBQTFCLEVBQXdDLEdBQUcsaUJBQTNDLEVBQThELEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBOUQsRUFBNkUsS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUE3RTs7QUFFQSxlQUFHLG9CQUFILENBQXdCLEdBQUcsV0FBM0IsRUFBd0MsR0FBRyxpQkFBM0MsRUFBOEQsR0FBRyxVQUFqRSxFQUE2RSxLQUFLLFFBQUwsQ0FBYyxRQUEzRixFQUFxRyxDQUFyRztBQUNBLGVBQUcsdUJBQUgsQ0FBMkIsR0FBRyxXQUE5QixFQUEyQyxHQUFHLGdCQUE5QyxFQUFnRSxHQUFHLFlBQW5FLEVBQWlGLEtBQUssYUFBdEY7O0FBRUEsaUJBQUssY0FBTCxDQUFvQixFQUFwQjs7QUFFQSxlQUFHLGdCQUFILENBQW9CLEdBQUcsWUFBdkIsRUFBcUMsSUFBckM7QUFDQSxlQUFHLGVBQUgsQ0FBbUIsR0FBRyxXQUF0QixFQUFtQyxJQUFuQztBQUNIOzs7Ozs7Ozs7O21DQU9VLEUsRUFBSTtBQUNYLGdCQUFJLEtBQUssWUFBVCxFQUF1QjtBQUNuQixxQkFBSyxRQUFMLENBQWMsTUFBZCxDQUFxQixFQUFyQjtBQUNBLG1CQUFHLGlCQUFILENBQXFCLEtBQUssWUFBMUI7QUFDQSxtQkFBRyxrQkFBSCxDQUFzQixLQUFLLGFBQTNCO0FBQ0EscUJBQUssWUFBTCxHQUFvQixJQUFwQjtBQUNIO0FBQ0o7Ozs7Ozs7Ozs7dUNBT2MsRSxFQUFJO0FBQ2YsZ0JBQU0sU0FBUyxHQUFHLHNCQUFILENBQTBCLEdBQUcsV0FBN0IsQ0FBZjs7QUFFQSxnQkFBSSxXQUFXLEdBQUcsb0JBQWxCLEVBQXdDO0FBQ3BDO0FBQ0gsYUFGRCxNQUVPLElBQUksV0FBVyxHQUFHLHVCQUFsQixFQUEyQztBQUM5Qyx3QkFBUSxHQUFSLENBQVksNEJBQVo7QUFDSCxhQUZNLE1BRUEsSUFBSSxXQUFXLEdBQUcsaUNBQWxCLEVBQXFEO0FBQ3hELHdCQUFRLEdBQVIsQ0FBWSxtQ0FBWjtBQUNILGFBRk0sTUFFQSxJQUFJLFdBQVcsR0FBRyxpQ0FBbEIsRUFBcUQ7QUFDeEQsd0JBQVEsR0FBUixDQUFZLG1DQUFaO0FBQ0gsYUFGTSxNQUVBLElBQUksV0FBVyxHQUFHLHlDQUFsQixFQUE2RDtBQUNoRSx3QkFBUSxHQUFSLENBQVksMkNBQVo7QUFDSCxhQUZNLE1BRUE7QUFDSCx3QkFBUSxHQUFSLENBQVksb0NBQW9DLE1BQWhEO0FBQ0g7QUFDSjs7Ozs7O2tCQUdVLFkiLCJmaWxlIjoiUmVuZGVyVGFyZ2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRleHR1cmUgZnJvbSAnLi9UZXh0dXJlJztcblxuLyoqXG4gKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0YTRgNC10LnQvNCx0YPRhNC10YDQsCwg0LrRg9C00LAg0LzQvtC20L3QviDQvtGC0YDQtdC90LTQtdGA0LjRgtGMINC60LDQtNGALlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge3ZlYzJ9IFtvcHRpb25zLnNpemVdINCg0LDQt9C80LXRgCDRhNGA0LXQudC80LHRg9GE0LXRgNCwXG4gKi9cbmNsYXNzIFJlbmRlclRhcmdldCB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSBvcHRpb25zLnNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQstGP0LfRi9Cy0LDQtdGCINC60L7QvNC/0L7QvdC10L3RgtGLINGBINC60L7QvdGC0LXQutGB0YLQvtC8IFdlYkdMXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgYmluZChnbCkge1xuICAgICAgICBpZiAodGhpcy5fc2l6ZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3VucHJlcGFyZShnbCk7XG4gICAgICAgICAgICB0aGlzLl9zaXplQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9mcmFtZUJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRoaXMuX2ZyYW1lQnVmZmVyKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQv9GD0YHRgtC+0Lkg0YTRgNC10LnQvNCx0YPRhNC10YAg0YMg0LrQvtC90YLQtdC60YHRgtCwIFdlYkdMXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgdW5iaW5kKGdsKSB7XG4gICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINGE0YDQtdC50LzQsdGD0YTQtdGAINC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICByZW1vdmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fdW5wcmVwYXJlKGdsKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YDQsNC30LzQtdGAINGE0YDQtdC50LzQsdGD0YTQtdGA0YNcbiAgICAgKiBAcGFyYW0ge3ZlYzJ9IHNpemVcbiAgICAgKi9cbiAgICBzZXRTaXplKHNpemUpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemU7XG4gICAgICAgIHRoaXMuX3NpemVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRhNGA0LXQudC80LHRg9GE0LXRgCwg0YLQtdC60YHRgtGD0YDRiyDQuCDRgNC10L3QtNC10YDQsdGD0YTQtdGAXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIF9wcmVwYXJlKGdsKSB7XG4gICAgICAgIHRoaXMuX3RleHR1cmUgPSBuZXcgVGV4dHVyZSgpO1xuICAgICAgICB0aGlzLl90ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl90ZXh0dXJlLnNpemUgPSB0aGlzLl9zaXplO1xuXG4gICAgICAgIHRoaXMuX3RleHR1cmUuX3ByZXBhcmUoZ2wpO1xuXG4gICAgICAgIHRoaXMuX2ZyYW1lQnVmZmVyID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTtcbiAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCB0aGlzLl9mcmFtZUJ1ZmZlcik7XG5cbiAgICAgICAgdGhpcy5fcmVuZGVyQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7XG4gICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCB0aGlzLl9yZW5kZXJCdWZmZXIpO1xuICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIHRoaXMuX3NpemVbMF0sIHRoaXMuX3NpemVbMV0pO1xuXG4gICAgICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGhpcy5fdGV4dHVyZS5fdGV4dHVyZSwgMCk7XG4gICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBnbC5SRU5ERVJCVUZGRVIsIHRoaXMuX3JlbmRlckJ1ZmZlcik7XG5cbiAgICAgICAgdGhpcy5fY2hlY2tDb21wbGV0ZShnbCk7XG5cbiAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIG51bGwpO1xuICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIG51bGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINC00LDQvdC90YvQtSDQuNC3INCy0LjQtNC10L7QutCw0YDRgtGLXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIF91bnByZXBhcmUoZ2wpIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZyYW1lQnVmZmVyKSB7XG4gICAgICAgICAgICB0aGlzLl90ZXh0dXJlLnJlbW92ZShnbCk7XG4gICAgICAgICAgICBnbC5kZWxldGVGcmFtZWJ1ZmZlcih0aGlzLl9mcmFtZUJ1ZmZlcik7XG4gICAgICAgICAgICBnbC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5fcmVuZGVyQnVmZmVyKTtcbiAgICAgICAgICAgIHRoaXMuX2ZyYW1lQnVmZmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjRjiDRhNGA0LXQudC80LHRg9GE0LXRgNCwXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIF9jaGVja0NvbXBsZXRlKGdsKSB7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpO1xuXG4gICAgICAgIGlmIChzdGF0dXMgPT09IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZyYW1lYnVmZmVyIGlzIHVuc3VwcG9ydGVkJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIGF0dGFjaG1lbnQnKTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZyYW1lYnVmZmVyIGluY29tcGxldGUgZGltZW5zaW9ucycpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIG1pc3NpbmcgYXR0YWNobWVudCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1VuZXhwZWN0ZWQgZnJhbWVidWZmZXIgc3RhdHVzOiAnICsgc3RhdHVzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVuZGVyVGFyZ2V0O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJUYXJnZXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7QUFFQTs7Ozs7OztJQU1NLFk7QUFDRiw0QkFBMEI7QUFBQSxZQUFkLE9BQWMseURBQUosRUFBSTs7QUFBQTs7QUFDdEIsYUFBSyxLQUFMLEdBQWEsUUFBUSxJQUFyQjtBQUNIOztBQUVEOzs7Ozs7Ozs2QkFJSyxFLEVBQUk7QUFDTCxnQkFBSSxLQUFLLFlBQVQsRUFBdUI7QUFDbkIscUJBQUssVUFBTCxDQUFnQixFQUFoQjtBQUNBLHFCQUFLLFlBQUwsR0FBb0IsS0FBcEI7QUFDSDs7QUFFRCxnQkFBSSxDQUFDLEtBQUssWUFBVixFQUF3QjtBQUNwQixxQkFBSyxRQUFMLENBQWMsRUFBZDtBQUNIOztBQUVELGVBQUcsZUFBSCxDQUFtQixHQUFHLFdBQXRCLEVBQW1DLEtBQUssWUFBeEM7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7OytCQUlPLEUsRUFBSTtBQUNQLGVBQUcsZUFBSCxDQUFtQixHQUFHLFdBQXRCLEVBQW1DLElBQW5DO0FBQ0EsbUJBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7OytCQUlPLEUsRUFBSTtBQUNQLGlCQUFLLFVBQUwsQ0FBZ0IsRUFBaEI7QUFDQSxtQkFBTyxJQUFQO0FBQ0g7O0FBRUQ7Ozs7Ozs7Z0NBSVEsSSxFQUFNO0FBQ1YsaUJBQUssS0FBTCxHQUFhLElBQWI7QUFDQSxpQkFBSyxZQUFMLEdBQW9CLElBQXBCO0FBQ0EsbUJBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7OztpQ0FLUyxFLEVBQUk7QUFDVCxpQkFBSyxRQUFMLEdBQWdCLHVCQUFoQjtBQUNBLGlCQUFLLFFBQUwsQ0FBYyxlQUFkLEdBQWdDLEtBQWhDO0FBQ0EsaUJBQUssUUFBTCxDQUFjLElBQWQsR0FBcUIsS0FBSyxLQUExQjs7QUFFQSxpQkFBSyxRQUFMLENBQWMsUUFBZCxDQUF1QixFQUF2Qjs7QUFFQSxpQkFBSyxZQUFMLEdBQW9CLEdBQUcsaUJBQUgsRUFBcEI7QUFDQSxlQUFHLGVBQUgsQ0FBbUIsR0FBRyxXQUF0QixFQUFtQyxLQUFLLFlBQXhDOztBQUVBLGlCQUFLLGFBQUwsR0FBcUIsR0FBRyxrQkFBSCxFQUFyQjtBQUNBLGVBQUcsZ0JBQUgsQ0FBb0IsR0FBRyxZQUF2QixFQUFxQyxLQUFLLGFBQTFDO0FBQ0EsZUFBRyxtQkFBSCxDQUF1QixHQUFHLFlBQTFCLEVBQXdDLEdBQUcsaUJBQTNDLEVBQThELEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBOUQsRUFBNkUsS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUE3RTs7QUFFQSxlQUFHLG9CQUFILENBQXdCLEdBQUcsV0FBM0IsRUFBd0MsR0FBRyxpQkFBM0MsRUFBOEQsR0FBRyxVQUFqRSxFQUE2RSxLQUFLLFFBQUwsQ0FBYyxRQUEzRixFQUFxRyxDQUFyRztBQUNBLGVBQUcsdUJBQUgsQ0FBMkIsR0FBRyxXQUE5QixFQUEyQyxHQUFHLGdCQUE5QyxFQUFnRSxHQUFHLFlBQW5FLEVBQWlGLEtBQUssYUFBdEY7O0FBRUEsaUJBQUssY0FBTCxDQUFvQixFQUFwQjs7QUFFQSxlQUFHLGdCQUFILENBQW9CLEdBQUcsWUFBdkIsRUFBcUMsSUFBckM7QUFDQSxlQUFHLGVBQUgsQ0FBbUIsR0FBRyxXQUF0QixFQUFtQyxJQUFuQztBQUNIOztBQUVEOzs7Ozs7OzttQ0FLVyxFLEVBQUk7QUFDWCxnQkFBSSxLQUFLLFlBQVQsRUFBdUI7QUFDbkIscUJBQUssUUFBTCxDQUFjLE1BQWQsQ0FBcUIsRUFBckI7QUFDQSxtQkFBRyxpQkFBSCxDQUFxQixLQUFLLFlBQTFCO0FBQ0EsbUJBQUcsa0JBQUgsQ0FBc0IsS0FBSyxhQUEzQjtBQUNBLHFCQUFLLFlBQUwsR0FBb0IsSUFBcEI7QUFDSDtBQUNKOztBQUVEOzs7Ozs7Ozt1Q0FLZSxFLEVBQUk7QUFDZixnQkFBTSxTQUFTLEdBQUcsc0JBQUgsQ0FBMEIsR0FBRyxXQUE3QixDQUFmOztBQUVBLGdCQUFJLFdBQVcsR0FBRyxvQkFBbEIsRUFBd0M7QUFDcEM7QUFDSCxhQUZELE1BRU8sSUFBSSxXQUFXLEdBQUcsdUJBQWxCLEVBQTJDO0FBQzlDLHdCQUFRLEdBQVIsQ0FBWSw0QkFBWjtBQUNILGFBRk0sTUFFQSxJQUFJLFdBQVcsR0FBRyxpQ0FBbEIsRUFBcUQ7QUFDeEQsd0JBQVEsR0FBUixDQUFZLG1DQUFaO0FBQ0gsYUFGTSxNQUVBLElBQUksV0FBVyxHQUFHLGlDQUFsQixFQUFxRDtBQUN4RCx3QkFBUSxHQUFSLENBQVksbUNBQVo7QUFDSCxhQUZNLE1BRUEsSUFBSSxXQUFXLEdBQUcseUNBQWxCLEVBQTZEO0FBQ2hFLHdCQUFRLEdBQVIsQ0FBWSwyQ0FBWjtBQUNILGFBRk0sTUFFQTtBQUNILHdCQUFRLEdBQVIsQ0FBWSxvQ0FBb0MsTUFBaEQ7QUFDSDtBQUNKOzs7Ozs7a0JBR1UsWSIsImZpbGUiOiJSZW5kZXJUYXJnZXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGV4dHVyZSBmcm9tICcuL1RleHR1cmUnO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDRhNGA0LXQudC80LHRg9GE0LXRgNCwLCDQutGD0LTQsCDQvNC+0LbQvdC+INC+0YLRgNC10L3QtNC10YDQuNGC0Ywg0LrQsNC00YAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBwYXJhbSB7dmVjMn0gW29wdGlvbnMuc2l6ZV0g0KDQsNC30LzQtdGAINGE0YDQtdC50LzQsdGD0YTQtdGA0LBcbiAqL1xuY2xhc3MgUmVuZGVyVGFyZ2V0IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IG9wdGlvbnMuc2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodCy0Y/Qt9GL0LLQsNC10YIg0LrQvtC80L/QvtC90LXQvdGC0Ysg0YEg0LrQvtC90YLQtdC60YHRgtC+0LwgV2ViR0xcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICBiaW5kKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl9zaXplQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fdW5wcmVwYXJlKGdsKTtcbiAgICAgICAgICAgIHRoaXMuX3NpemVDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX2ZyYW1lQnVmZmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGhpcy5fZnJhbWVCdWZmZXIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC/0YPRgdGC0L7QuSDRhNGA0LXQudC80LHRg9GE0LXRgCDRgyDQutC+0L3RgtC10LrRgdGC0LAgV2ViR0xcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICB1bmJpbmQoZ2wpIHtcbiAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YTRgNC10LnQvNCx0YPRhNC10YAg0LjQtyDQstC40LTQtdC+0LrQsNGA0YLRi1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIHJlbW92ZShnbCkge1xuICAgICAgICB0aGlzLl91bnByZXBhcmUoZ2wpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgNCw0LfQvNC10YAg0YTRgNC10LnQvNCx0YPRhNC10YDRg1xuICAgICAqIEBwYXJhbSB7dmVjMn0gc2l6ZVxuICAgICAqL1xuICAgIHNldFNpemUoc2l6ZSkge1xuICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5fc2l6ZUNoYW5nZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGE0YDQtdC50LzQsdGD0YTQtdGALCDRgtC10LrRgdGC0YPRgNGLINC4INGA0LXQvdC00LXRgNCx0YPRhNC10YBcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IG5ldyBUZXh0dXJlKCk7XG4gICAgICAgIHRoaXMuX3RleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3RleHR1cmUuc2l6ZSA9IHRoaXMuX3NpemU7XG5cbiAgICAgICAgdGhpcy5fdGV4dHVyZS5fcHJlcGFyZShnbCk7XG5cbiAgICAgICAgdGhpcy5fZnJhbWVCdWZmZXIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpO1xuICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRoaXMuX2ZyYW1lQnVmZmVyKTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTtcbiAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHRoaXMuX3JlbmRlckJ1ZmZlcik7XG4gICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgdGhpcy5fc2l6ZVswXSwgdGhpcy5fc2l6ZVsxXSk7XG5cbiAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0aGlzLl90ZXh0dXJlLl90ZXh0dXJlLCAwKTtcbiAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgdGhpcy5fcmVuZGVyQnVmZmVyKTtcblxuICAgICAgICB0aGlzLl9jaGVja0NvbXBsZXRlKGdsKTtcblxuICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgbnVsbCk7XG4gICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LTQsNC90L3Ri9C1INC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3VucHJlcGFyZShnbCkge1xuICAgICAgICBpZiAodGhpcy5fZnJhbWVCdWZmZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUucmVtb3ZlKGdsKTtcbiAgICAgICAgICAgIGdsLmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuX2ZyYW1lQnVmZmVyKTtcbiAgICAgICAgICAgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcih0aGlzLl9yZW5kZXJCdWZmZXIpO1xuICAgICAgICAgICAgdGhpcy5fZnJhbWVCdWZmZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGOINGE0YDQtdC50LzQsdGD0YTQtdGA0LBcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX2NoZWNrQ29tcGxldGUoZ2wpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUik7XG5cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRnJhbWVidWZmZXIgaXMgdW5zdXBwb3J0ZWQnKTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZyYW1lYnVmZmVyIGluY29tcGxldGUgYXR0YWNobWVudCcpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBkaW1lbnNpb25zJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZyYW1lYnVmZmVyIGluY29tcGxldGUgbWlzc2luZyBhdHRhY2htZW50Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnVW5leHBlY3RlZCBmcmFtZWJ1ZmZlciBzdGF0dXM6ICcgKyBzdGF0dXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZW5kZXJUYXJnZXQ7XG4iXX0=

@@ -70,2 +70,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TY2VuZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFPTSxLOzs7QUFDRixxQkFBYztBQUFBOztBQUFBOztBQUdWLGNBQUssT0FBTCxHQUFlLEVBQWY7QUFIVTtBQUliOzs7Ozs7Ozs7O2lDQU1RLEssRUFBTztBQUNaLGlCQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWtCLEtBQWxCOztBQUVBLG1CQUFPLElBQVA7QUFDSDs7Ozs7Ozs7O29DQU1XO0FBQ1IsbUJBQU8sS0FBSyxPQUFaO0FBQ0g7Ozs7OztrQkFHVSxLIiwiZmlsZSI6IlNjZW5lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4vT2JqZWN0M0QnO1xuXG4vKipcbiAqINCh0YbQtdC90LAg0LLQutC70Y7Rh9Cw0LXRgiDQsiDRgdC10LHRjyDQstGB0LUg0L7QsdGK0LXQutGC0Ysg0L3QtdC+0LHRhdC+0LTQuNC80YvQtSDQtNC70Y8g0YDQtdC90LTQtdGA0LjQvdCz0LBcbiAqXG4gKiBAZXh0ZW5kcyBPYmplY3QzRFxuICovXG5jbGFzcyBTY2VuZSBleHRlbmRzIE9iamVjdDNEIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLl9saWdodHMgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0LjRgdGC0L7Rh9C90LjQuiDRgdCy0LXRgtCwINC90LAg0YHRhtC10L3Rg1xuICAgICAqIEBwYXJhbSB7TGlnaHR9IGxpZ2h0XG4gICAgICovXG4gICAgYWRkTGlnaHQobGlnaHQpIHtcbiAgICAgICAgdGhpcy5fbGlnaHRzLnB1c2gobGlnaHQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINCy0YHQtSDQuNGB0YLQvtGH0L3QuNC60Lgg0YHQstC10YLQsCDRgdGG0LXQvdGLXG4gICAgICogQHJldHVybnMge0xpZ2h0W119XG4gICAgICovXG4gICAgZ2V0TGlnaHRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGlnaHRzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2NlbmU7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TY2VuZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7QUFFQTs7Ozs7O0lBS00sSzs7O0FBQ0YscUJBQWM7QUFBQTs7QUFBQTs7QUFHVixjQUFLLE9BQUwsR0FBZSxFQUFmO0FBSFU7QUFJYjs7QUFFRDs7Ozs7Ozs7aUNBSVMsSyxFQUFPO0FBQ1osaUJBQUssT0FBTCxDQUFhLElBQWIsQ0FBa0IsS0FBbEI7O0FBRUEsbUJBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7O29DQUlZO0FBQ1IsbUJBQU8sS0FBSyxPQUFaO0FBQ0g7Ozs7OztrQkFHVSxLIiwiZmlsZSI6IlNjZW5lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdDNEIGZyb20gJy4vT2JqZWN0M0QnO1xuXG4vKipcbiAqINCh0YbQtdC90LAg0LLQutC70Y7Rh9Cw0LXRgiDQsiDRgdC10LHRjyDQstGB0LUg0L7QsdGK0LXQutGC0Ysg0L3QtdC+0LHRhdC+0LTQuNC80YvQtSDQtNC70Y8g0YDQtdC90LTQtdGA0LjQvdCz0LBcbiAqXG4gKiBAZXh0ZW5kcyBPYmplY3QzRFxuICovXG5jbGFzcyBTY2VuZSBleHRlbmRzIE9iamVjdDNEIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLl9saWdodHMgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0LHQsNCy0LvRj9C10YIg0LjRgdGC0L7Rh9C90LjQuiDRgdCy0LXRgtCwINC90LAg0YHRhtC10L3Rg1xuICAgICAqIEBwYXJhbSB7TGlnaHR9IGxpZ2h0XG4gICAgICovXG4gICAgYWRkTGlnaHQobGlnaHQpIHtcbiAgICAgICAgdGhpcy5fbGlnaHRzLnB1c2gobGlnaHQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINCy0YHQtSDQuNGB0YLQvtGH0L3QuNC60Lgg0YHQstC10YLQsCDRgdGG0LXQvdGLXG4gICAgICogQHJldHVybnMge0xpZ2h0W119XG4gICAgICovXG4gICAgZ2V0TGlnaHRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGlnaHRzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2NlbmU7XG4iXX0=

@@ -65,2 +65,2 @@ "use strict";

*/
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXJBdHRyaWJ1dGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQU1NLGU7QUFDRiw2QkFBWSxPQUFaLEVBQXFCO0FBQUE7O0FBQ2pCLGFBQUssSUFBTCxHQUFZLFFBQVEsSUFBcEI7QUFDQSxhQUFLLEtBQUwsR0FBYSxRQUFRLEtBQXJCO0FBQ0EsYUFBSyxRQUFMLEdBQWdCLENBQUMsQ0FBakI7QUFDSDs7OztvQ0FFVyxFLEVBQUksYSxFQUFlO0FBQzNCLGlCQUFLLFFBQUwsR0FBZ0IsR0FBRyxpQkFBSCxDQUFxQixhQUFyQixFQUFvQyxLQUFLLElBQXpDLENBQWhCO0FBQ0EsbUJBQU8sSUFBUDtBQUNIOzs7K0JBRU0sRSxFQUFJO0FBQ1AsZ0JBQUksS0FBSyxLQUFMLEtBQWUsSUFBbkIsRUFBeUI7QUFDckIsbUJBQUcsdUJBQUgsQ0FBMkIsS0FBSyxRQUFoQztBQUNIO0FBQ0QsbUJBQU8sSUFBUDtBQUNIOzs7NkJBRUksRSxFQUFJLE0sRUFBUTtBQUNiLG1CQUFPLElBQVAsQ0FBWSxFQUFaLEVBQWdCLEtBQUssUUFBckI7QUFDQSxtQkFBTyxJQUFQO0FBQ0g7OztnQ0FFTyxFLEVBQUk7QUFDUixnQkFBSSxLQUFLLEtBQUwsS0FBZSxJQUFuQixFQUF5QjtBQUNyQixtQkFBRyx3QkFBSCxDQUE0QixLQUFLLFFBQWpDO0FBQ0g7QUFDRCxtQkFBTyxJQUFQO0FBQ0g7Ozs7OztBQUdMLE9BQU8sT0FBUCxHQUFpQixlQUFqQiIsImZpbGUiOiJTaGFkZXJBdHRyaWJ1dGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCo0LXQudC00LXRgNC90YvQuSDQsNGC0YDQuNCx0YPRgiwg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviB7QGxpbmsgU2hhZGVyUHJvZ3JhbX1cbiAqXG4gKiBAcGFyYW0ge0F0dHJpYnV0ZURlZmluaXRpb259IG9wdGlvbnNcbiAqIEBpZ25vcmVcbiAqL1xuY2xhc3MgU2hhZGVyQXR0cmlidXRlIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICAgICAgdGhpcy5pbmRleCA9IG9wdGlvbnMuaW5kZXg7XG4gICAgICAgIHRoaXMubG9jYXRpb24gPSAtMTtcbiAgICB9XG5cbiAgICBzZXRMb2NhdGlvbihnbCwgc2hhZGVyUHJvZ3JhbSkge1xuICAgICAgICB0aGlzLmxvY2F0aW9uID0gZ2wuZ2V0QXR0cmliTG9jYXRpb24oc2hhZGVyUHJvZ3JhbSwgdGhpcy5uYW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZW5hYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSh0aGlzLmxvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBiaW5kKGdsLCBidWZmZXIpIHtcbiAgICAgICAgYnVmZmVyLmJpbmQoZ2wsIHRoaXMubG9jYXRpb24pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBkaXNhYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBnbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkodGhpcy5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFNoYWRlckF0dHJpYnV0ZTtcblxuLyoqXG4gKiDQntC/0LjRgdCw0L3QuNC1INGI0LXQudC00LXRgNC90L7Qs9C+INCw0YLRgNC40LHRg9GC0LBcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBBdHRyaWJ1dGVEZWZpbml0aW9uXG4gKiBAcHJvcGVydHkge1N0cmluZ30gbmFtZSDQndCw0LfQstCw0L3QuNC1INCw0YLRgNC40LHRg9GC0LBcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gW2luZGV4XSDQldGB0LvQuCDQsNGC0YDQuNCx0YPRgiDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC/0LXRgNC10LTQsNGH0Lgg0LjQvdC00LXQutGB0L7Qsiwg0YLQviB0cnVlXG4gKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXJBdHRyaWJ1dGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7Ozs7SUFNTSxlO0FBQ0YsNkJBQVksT0FBWixFQUFxQjtBQUFBOztBQUNqQixhQUFLLElBQUwsR0FBWSxRQUFRLElBQXBCO0FBQ0EsYUFBSyxLQUFMLEdBQWEsUUFBUSxLQUFyQjtBQUNBLGFBQUssUUFBTCxHQUFnQixDQUFDLENBQWpCO0FBQ0g7Ozs7b0NBRVcsRSxFQUFJLGEsRUFBZTtBQUMzQixpQkFBSyxRQUFMLEdBQWdCLEdBQUcsaUJBQUgsQ0FBcUIsYUFBckIsRUFBb0MsS0FBSyxJQUF6QyxDQUFoQjtBQUNBLG1CQUFPLElBQVA7QUFDSDs7OytCQUVNLEUsRUFBSTtBQUNQLGdCQUFJLEtBQUssS0FBTCxLQUFlLElBQW5CLEVBQXlCO0FBQ3JCLG1CQUFHLHVCQUFILENBQTJCLEtBQUssUUFBaEM7QUFDSDtBQUNELG1CQUFPLElBQVA7QUFDSDs7OzZCQUVJLEUsRUFBSSxNLEVBQVE7QUFDYixtQkFBTyxJQUFQLENBQVksRUFBWixFQUFnQixLQUFLLFFBQXJCO0FBQ0EsbUJBQU8sSUFBUDtBQUNIOzs7Z0NBRU8sRSxFQUFJO0FBQ1IsZ0JBQUksS0FBSyxLQUFMLEtBQWUsSUFBbkIsRUFBeUI7QUFDckIsbUJBQUcsd0JBQUgsQ0FBNEIsS0FBSyxRQUFqQztBQUNIO0FBQ0QsbUJBQU8sSUFBUDtBQUNIOzs7Ozs7QUFHTCxPQUFPLE9BQVAsR0FBaUIsZUFBakI7O0FBRUEiLCJmaWxlIjoiU2hhZGVyQXR0cmlidXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQqNC10LnQtNC10YDQvdGL0Lkg0LDRgtGA0LjQsdGD0YIsINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDRgtC+0LvRjNC60L4ge0BsaW5rIFNoYWRlclByb2dyYW19XG4gKlxuICogQHBhcmFtIHtBdHRyaWJ1dGVEZWZpbml0aW9ufSBvcHRpb25zXG4gKiBAaWdub3JlXG4gKi9cbmNsYXNzIFNoYWRlckF0dHJpYnV0ZSB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICB0aGlzLm5hbWUgPSBvcHRpb25zLm5hbWU7XG4gICAgICAgIHRoaXMuaW5kZXggPSBvcHRpb25zLmluZGV4O1xuICAgICAgICB0aGlzLmxvY2F0aW9uID0gLTE7XG4gICAgfVxuXG4gICAgc2V0TG9jYXRpb24oZ2wsIHNoYWRlclByb2dyYW0pIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbiA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHNoYWRlclByb2dyYW0sIHRoaXMubmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGVuYWJsZShnbCkge1xuICAgICAgICBpZiAodGhpcy5pbmRleCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodGhpcy5sb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYmluZChnbCwgYnVmZmVyKSB7XG4gICAgICAgIGJ1ZmZlci5iaW5kKGdsLCB0aGlzLmxvY2F0aW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZGlzYWJsZShnbCkge1xuICAgICAgICBpZiAodGhpcy5pbmRleCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgZ2wuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KHRoaXMubG9jYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTaGFkZXJBdHRyaWJ1dGU7XG5cbi8qKlxuICog0J7Qv9C40YHQsNC90LjQtSDRiNC10LnQtNC10YDQvdC+0LPQviDQsNGC0YDQuNCx0YPRgtCwXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gQXR0cmlidXRlRGVmaW5pdGlvblxuICogQHByb3BlcnR5IHtTdHJpbmd9IG5hbWUg0J3QsNC30LLQsNC90LjQtSDQsNGC0YDQuNCx0YPRgtCwXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IFtpbmRleF0g0JXRgdC70Lgg0LDRgtGA0LjQsdGD0YIg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQv9C10YDQtdC00LDRh9C4INC40L3QtNC10LrRgdC+0LIsINGC0L4gdHJ1ZVxuICovXG4iXX0=

@@ -21,7 +21,6 @@ 'use strict';

* @param {Object} options
* @param {String} vertex Код вершинного шейдера
* @param {String} fragment Код фрагментного шейдера
* @param {Shader} vertex Вершинный шейдер
* @param {Shader} fragment Фрагментный шейдер
* @param {UniformDefinition[]} [options.uniforms=[]] Описание юниформ
* @param {AttributeDefinition[]} [options.attributes=[]] Описание атрибутов
* @param {Object[]} [options.definitions=[]]
*/

@@ -37,4 +36,4 @@

this._vertexShaderCode = options.vertex || '';
this._fragmentShaderCode = options.fragment || '';
this._vertexShader = options.vertex;
this._fragmentShader = options.fragment;

@@ -53,4 +52,2 @@ this._uniforms = {};

this._definitions = options.definitions || [];
this._status = ShaderProgram.NOT_READY;

@@ -130,32 +127,12 @@ }

value: function _prepare(gl) {
this._prepareShaders(gl);
this._prepareAttributes(gl);
this._prepareUniforms(gl);
}
}, {
key: '_prepareShaders',
value: function _prepareShaders(gl) {
var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fragmentShader, this._addDefinitions(this._fragmentShaderCode));
gl.compileShader(fragmentShader);
this._webglProgram = gl.createProgram();
if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
console.log(gl.getShaderInfoLog(fragmentShader));
this._status = ShaderProgram.FAILED;
return;
if (this._vertexShader) {
gl.attachShader(this._webglProgram, this._vertexShader.get(gl));
}
var vertexShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vertexShader, this._addDefinitions(this._vertexShaderCode));
gl.compileShader(vertexShader);
if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
console.log(gl.getShaderInfoLog(vertexShader));
this._status = ShaderProgram.FAILED;
return;
if (this._fragmentShader) {
gl.attachShader(this._webglProgram, this._fragmentShader.get(gl));
}
this._webglProgram = gl.createProgram();
gl.attachShader(this._webglProgram, vertexShader);
gl.attachShader(this._webglProgram, fragmentShader);
gl.linkProgram(this._webglProgram);

@@ -170,28 +147,9 @@

this._status = ShaderProgram.READY;
this._fragmentShaderCode = null;
this._vertexShaderCode = null;
}
}, {
key: '_addDefinitions',
value: function _addDefinitions(shader) {
return this._definitions.map(function (def) {
if (def.value !== undefined) {
return '#define ' + def.type + ' ' + def.value;
} else {
return '#define ' + def.type;
}
}).join('\n') + '\n' + shader;
}
}, {
key: '_prepareAttributes',
value: function _prepareAttributes(gl) {
for (var name in this._attributes) {
this._attributes[name].setLocation(gl, this._webglProgram);
}
}
}, {
key: '_prepareUniforms',
value: function _prepareUniforms(gl) {
for (var name in this._uniforms) {
this._uniforms[name].setLocation(gl, this._webglProgram);
for (var _name2 in this._uniforms) {
this._uniforms[_name2].setLocation(gl, this._webglProgram);
}

@@ -209,2 +167,2 @@ }

module.exports = ShaderProgram;
//# sourceMappingURL=data:application/json;base64,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QixlQUFPO0FBQ2hDLG9CQUFJLElBQUksS0FBSixLQUFjLFNBQWxCLEVBQTZCO0FBQ3pCLDJCQUFPLGFBQWEsSUFBSSxJQUFqQixHQUF3QixHQUF4QixHQUE4QixJQUFJLEtBQXpDO0FBQ0gsaUJBRkQsTUFFTztBQUNILDJCQUFPLGFBQWEsSUFBSSxJQUF4QjtBQUNIO0FBQ0osYUFOTSxFQU1KLElBTkksQ0FNQyxJQU5ELElBTVMsSUFOVCxHQU1nQixNQU52QjtBQU9IOzs7MkNBRWtCLEUsRUFBSTtBQUNuQixpQkFBSyxJQUFNLElBQVgsSUFBbUIsS0FBSyxXQUF4QixFQUFxQztBQUNqQyxxQkFBSyxXQUFMLENBQWlCLElBQWpCLEVBQXVCLFdBQXZCLENBQW1DLEVBQW5DLEVBQXVDLEtBQUssYUFBNUM7QUFDSDtBQUNKOzs7eUNBRWdCLEUsRUFBSTtBQUNqQixpQkFBSyxJQUFNLElBQVgsSUFBbUIsS0FBSyxTQUF4QixFQUFtQztBQUMvQixxQkFBSyxTQUFMLENBQWUsSUFBZixFQUFxQixXQUFyQixDQUFpQyxFQUFqQyxFQUFxQyxLQUFLLGFBQTFDO0FBQ0g7QUFDSjs7Ozs7O0FBR0wsY0FBYyxTQUFkLEdBQTBCLENBQTFCO0FBQ0EsY0FBYyxLQUFkLEdBQXNCLENBQXRCO0FBQ0EsY0FBYyxNQUFkLEdBQXVCLENBQXZCOztBQUVBLE9BQU8sT0FBUCxHQUFpQixhQUFqQiIsImZpbGUiOiJTaGFkZXJQcm9ncmFtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNoYWRlckF0dHJpYnV0ZSBmcm9tICcuL1NoYWRlckF0dHJpYnV0ZSc7XG5pbXBvcnQgU2hhZGVyVW5pZm9ybSBmcm9tICcuL1NoYWRlclVuaWZvcm0nO1xuXG4vKipcbiAqINCo0LXQudC00LXRgNC90LDRjyDQv9GA0L7Qs9GA0LDQvNC80LAg0LjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRiNC10LnQtNC10YDRiywg0L/QvtC00LPQvtGC0LDQstC70LjQstCw0LXRgiDQuCDRgdCy0Y/Qt9GL0LLQsNC10YIg0LTQsNC90L3Ri9C1INGBIFdlYkdMLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdmVydGV4INCa0L7QtCDQstC10YDRiNC40L3QvdC+0LPQviDRiNC10LnQtNC10YDQsFxuICogQHBhcmFtIHtTdHJpbmd9IGZyYWdtZW50INCa0L7QtCDRhNGA0LDQs9C80LXQvdGC0L3QvtCz0L4g0YjQtdC50LTQtdGA0LBcbiAqIEBwYXJhbSB7VW5pZm9ybURlZmluaXRpb25bXX0gW29wdGlvbnMudW5pZm9ybXM9W11dINCe0L/QuNGB0LDQvdC40LUg0Y7QvdC40YTQvtGA0LxcbiAqIEBwYXJhbSB7QXR0cmlidXRlRGVmaW5pdGlvbltdfSBbb3B0aW9ucy5hdHRyaWJ1dGVzPVtdXSDQntC/0LjRgdCw0L3QuNC1INCw0YLRgNC40LHRg9GC0L7QslxuICogQHBhcmFtIHtPYmplY3RbXX0gW29wdGlvbnMuZGVmaW5pdGlvbnM9W11dXG4gKi9cbmNsYXNzIFNoYWRlclByb2dyYW0ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgdGhpcy5fdmVydGV4U2hhZGVyQ29kZSA9IG9wdGlvbnMudmVydGV4IHx8ICcnO1xuICAgICAgICB0aGlzLl9mcmFnbWVudFNoYWRlckNvZGUgPSBvcHRpb25zLmZyYWdtZW50IHx8ICcnO1xuXG4gICAgICAgIHRoaXMuX3VuaWZvcm1zID0ge307XG4gICAgICAgIG9wdGlvbnMudW5pZm9ybXMgPSBvcHRpb25zLnVuaWZvcm1zIHx8IFtdO1xuICAgICAgICBvcHRpb25zLnVuaWZvcm1zLmZvckVhY2gob2JqID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3VuaWZvcm1zW29iai5uYW1lXSA9IG5ldyBTaGFkZXJVbmlmb3JtKG9iaik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVzID0gb3B0aW9ucy5hdHRyaWJ1dGVzIHx8IFtdO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgdGhpcy5fYXR0cmlidXRlc1tvYmoubmFtZV0gPSBuZXcgU2hhZGVyQXR0cmlidXRlKG9iaik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2RlZmluaXRpb25zID0gb3B0aW9ucy5kZWZpbml0aW9ucyB8fCBbXTtcblxuICAgICAgICB0aGlzLl9zdGF0dXMgPSBTaGFkZXJQcm9ncmFtLk5PVF9SRUFEWTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINC/0YDQvtCz0YDQsNC80LzRgyDRgSDQutC+0L3RgtC10LrRgdGC0L7QvCBXZWJHbFxuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgZW5hYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl9zdGF0dXMgPT09IFNoYWRlclByb2dyYW0uTk9UX1JFQURZKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9zdGF0dXMgIT09IFNoYWRlclByb2dyYW0uUkVBRFkpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICBnbC51c2VQcm9ncmFtKHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMuX2F0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV0uZW5hYmxlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiDRjtC90LjRhNC+0YDQvNGLINC4INCw0YLRgNC40LHRg9GC0Ysg0L/RgNC+0LPRgNCw0LzQvNGLINGBINC60L7QvdGC0LXQutGB0YLQvtC8IFdlYkdsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3VuaWZvcm1zXSBLZXktdmFsdWUg0L7QsdGK0LXQutGCINGB0L7QtNC10YDQttCw0YnQuNC5INC30L3QsNGH0LXQvdC40Y8g0Y7QvdC40YTQvtGA0LxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2F0dHJpYnV0ZXNdIEtleS12YWx1ZSDQvtCx0YrQtdC60YIg0YHQvtC00LXRgNC20LDRidC40Lkg0LfQvdCw0YfQtdC90LjRjyDQsNGC0YDQuNCx0YPRgtC+0LJcbiAgICAgKi9cbiAgICBiaW5kKGdsLCB1bmlmb3JtcywgYXR0cmlidXRlcykge1xuICAgICAgICBpZiAodW5pZm9ybXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB1bmlmb3Jtcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VuaWZvcm1zW25hbWVdLmJpbmQoZ2wsIHVuaWZvcm1zW25hbWVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV0uYmluZChnbCwgYXR0cmlidXRlc1tuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0LrQu9GO0YfQsNC10YIg0L/RgNC+0LPRgNCw0LzQvNGDXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICBkaXNhYmxlKGdsKSB7XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB0aGlzLl9hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzW25hbWVdLmRpc2FibGUoZ2wpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZVNoYWRlcnMoZ2wpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlQXR0cmlidXRlcyhnbCk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVVbmlmb3JtcyhnbCk7XG4gICAgfVxuXG4gICAgX3ByZXBhcmVTaGFkZXJzKGdsKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7XG4gICAgICAgIGdsLnNoYWRlclNvdXJjZShmcmFnbWVudFNoYWRlciwgdGhpcy5fYWRkRGVmaW5pdGlvbnModGhpcy5fZnJhZ21lbnRTaGFkZXJDb2RlKSk7XG4gICAgICAgIGdsLmNvbXBpbGVTaGFkZXIoZnJhZ21lbnRTaGFkZXIpO1xuXG4gICAgICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKGZyYWdtZW50U2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGdsLmdldFNoYWRlckluZm9Mb2coZnJhZ21lbnRTaGFkZXIpKTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXR1cyA9IFNoYWRlclByb2dyYW0uRkFJTEVEO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmVydGV4U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpO1xuICAgICAgICBnbC5zaGFkZXJTb3VyY2UodmVydGV4U2hhZGVyLCB0aGlzLl9hZGREZWZpbml0aW9ucyh0aGlzLl92ZXJ0ZXhTaGFkZXJDb2RlKSk7XG4gICAgICAgIGdsLmNvbXBpbGVTaGFkZXIodmVydGV4U2hhZGVyKTtcblxuICAgICAgICBpZiAoIWdsLmdldFNoYWRlclBhcmFtZXRlcih2ZXJ0ZXhTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZ2wuZ2V0U2hhZGVySW5mb0xvZyh2ZXJ0ZXhTaGFkZXIpKTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXR1cyA9IFNoYWRlclByb2dyYW0uRkFJTEVEO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2ViZ2xQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpO1xuICAgICAgICBnbC5hdHRhY2hTaGFkZXIodGhpcy5fd2ViZ2xQcm9ncmFtLCB2ZXJ0ZXhTaGFkZXIpO1xuICAgICAgICBnbC5hdHRhY2hTaGFkZXIodGhpcy5fd2ViZ2xQcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7XG4gICAgICAgIGdsLmxpbmtQcm9ncmFtKHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG5cbiAgICAgICAgaWYgKCFnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHRoaXMuX3dlYmdsUHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ291bGQgbm90IGluaXRpYWxpemUgc2hhZGVycycpO1xuICAgICAgICAgICAgdGhpcy5fc3RhdHVzID0gU2hhZGVyUHJvZ3JhbS5GQUlMRUQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdGF0dXMgPSBTaGFkZXJQcm9ncmFtLlJFQURZO1xuICAgICAgICB0aGlzLl9mcmFnbWVudFNoYWRlckNvZGUgPSBudWxsO1xuICAgICAgICB0aGlzLl92ZXJ0ZXhTaGFkZXJDb2RlID0gbnVsbDtcbiAgICB9XG5cbiAgICBfYWRkRGVmaW5pdGlvbnMoc2hhZGVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWZpbml0aW9ucy5tYXAoZGVmID0+IHtcbiAgICAgICAgICAgIGlmIChkZWYudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnI2RlZmluZSAnICsgZGVmLnR5cGUgKyAnICcgKyBkZWYudmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnI2RlZmluZSAnICsgZGVmLnR5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmpvaW4oJ1xcbicpICsgJ1xcbicgKyBzaGFkZXI7XG4gICAgfVxuXG4gICAgX3ByZXBhcmVBdHRyaWJ1dGVzKGdsKSB7XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB0aGlzLl9hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzW25hbWVdLnNldExvY2F0aW9uKGdsLCB0aGlzLl93ZWJnbFByb2dyYW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3ByZXBhcmVVbmlmb3JtcyhnbCkge1xuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy5fdW5pZm9ybXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3VuaWZvcm1zW25hbWVdLnNldExvY2F0aW9uKGdsLCB0aGlzLl93ZWJnbFByb2dyYW0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5TaGFkZXJQcm9ncmFtLk5PVF9SRUFEWSA9IDE7XG5TaGFkZXJQcm9ncmFtLlJFQURZID0gMjtcblNoYWRlclByb2dyYW0uRkFJTEVEID0gMztcblxubW9kdWxlLmV4cG9ydHMgPSBTaGFkZXJQcm9ncmFtO1xuIl19
//# sourceMappingURL=data:application/json;base64,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QkFBSCxDQUF1QixLQUFLLGFBQTVCLEVBQTJDLEdBQUcsV0FBOUMsQ0FBTCxFQUFpRTtBQUM3RCx3QkFBUSxHQUFSLENBQVksOEJBQVo7QUFDQSxxQkFBSyxPQUFMLEdBQWUsY0FBYyxNQUE3QjtBQUNBO0FBQ0g7O0FBRUQsaUJBQUssT0FBTCxHQUFlLGNBQWMsS0FBN0I7O0FBRUEsaUJBQUssSUFBTSxJQUFYLElBQW1CLEtBQUssV0FBeEIsRUFBcUM7QUFDakMscUJBQUssV0FBTCxDQUFpQixJQUFqQixFQUF1QixXQUF2QixDQUFtQyxFQUFuQyxFQUF1QyxLQUFLLGFBQTVDO0FBQ0g7O0FBRUQsaUJBQUssSUFBTSxNQUFYLElBQW1CLEtBQUssU0FBeEIsRUFBbUM7QUFDL0IscUJBQUssU0FBTCxDQUFlLE1BQWYsRUFBcUIsV0FBckIsQ0FBaUMsRUFBakMsRUFBcUMsS0FBSyxhQUExQztBQUNIO0FBQ0o7Ozs7OztBQUdMLGNBQWMsU0FBZCxHQUEwQixDQUExQjtBQUNBLGNBQWMsS0FBZCxHQUFzQixDQUF0QjtBQUNBLGNBQWMsTUFBZCxHQUF1QixDQUF2Qjs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsYUFBakIiLCJmaWxlIjoiU2hhZGVyUHJvZ3JhbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTaGFkZXJBdHRyaWJ1dGUgZnJvbSAnLi9TaGFkZXJBdHRyaWJ1dGUnO1xuaW1wb3J0IFNoYWRlclVuaWZvcm0gZnJvbSAnLi9TaGFkZXJVbmlmb3JtJztcblxuLyoqXG4gKiDQqNC10LnQtNC10YDQvdCw0Y8g0L/RgNC+0LPRgNCw0LzQvNCwINC40L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0YjQtdC50LTQtdGA0YssINC/0L7QtNCz0L7RgtCw0LLQu9C40LLQsNC10YIg0Lgg0YHQstGP0LfRi9Cy0LDQtdGCINC00LDQvdC90YvQtSDRgSBXZWJHTC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtTaGFkZXJ9IHZlcnRleCDQktC10YDRiNC40L3QvdGL0Lkg0YjQtdC50LTQtdGAXG4gKiBAcGFyYW0ge1NoYWRlcn0gZnJhZ21lbnQg0KTRgNCw0LPQvNC10L3RgtC90YvQuSDRiNC10LnQtNC10YBcbiAqIEBwYXJhbSB7VW5pZm9ybURlZmluaXRpb25bXX0gW29wdGlvbnMudW5pZm9ybXM9W11dINCe0L/QuNGB0LDQvdC40LUg0Y7QvdC40YTQvtGA0LxcbiAqIEBwYXJhbSB7QXR0cmlidXRlRGVmaW5pdGlvbltdfSBbb3B0aW9ucy5hdHRyaWJ1dGVzPVtdXSDQntC/0LjRgdCw0L3QuNC1INCw0YLRgNC40LHRg9GC0L7QslxuICovXG5jbGFzcyBTaGFkZXJQcm9ncmFtIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIHRoaXMuX3ZlcnRleFNoYWRlciA9IG9wdGlvbnMudmVydGV4O1xuICAgICAgICB0aGlzLl9mcmFnbWVudFNoYWRlciA9IG9wdGlvbnMuZnJhZ21lbnQ7XG5cbiAgICAgICAgdGhpcy5fdW5pZm9ybXMgPSB7fTtcbiAgICAgICAgb3B0aW9ucy51bmlmb3JtcyA9IG9wdGlvbnMudW5pZm9ybXMgfHwgW107XG4gICAgICAgIG9wdGlvbnMudW5pZm9ybXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgdGhpcy5fdW5pZm9ybXNbb2JqLm5hbWVdID0gbmV3IFNoYWRlclVuaWZvcm0ob2JqKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMgPSBvcHRpb25zLmF0dHJpYnV0ZXMgfHwgW107XG4gICAgICAgIG9wdGlvbnMuYXR0cmlidXRlcy5mb3JFYWNoKG9iaiA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzW29iai5uYW1lXSA9IG5ldyBTaGFkZXJBdHRyaWJ1dGUob2JqKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3RhdHVzID0gU2hhZGVyUHJvZ3JhbS5OT1RfUkVBRFk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDQv9GA0L7Qs9GA0LDQvNC80YMg0YEg0LrQvtC90YLQtdC60YHRgtC+0LwgV2ViR2xcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIGVuYWJsZShnbCkge1xuICAgICAgICBpZiAodGhpcy5fc3RhdHVzID09PSBTaGFkZXJQcm9ncmFtLk5PVF9SRUFEWSkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fc3RhdHVzICE9PSBTaGFkZXJQcm9ncmFtLlJFQURZKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgZ2wudXNlUHJvZ3JhbSh0aGlzLl93ZWJnbFByb2dyYW0pO1xuXG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBpbiB0aGlzLl9hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzW25hbWVdLmVuYWJsZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodCy0Y/Qt9GL0LLQsNC10YIg0Y7QvdC40YTQvtGA0LzRiyDQuCDQsNGC0YDQuNCx0YPRgtGLINC/0YDQvtCz0YDQsNC80LzRiyDRgSDQutC+0L3RgtC10LrRgdGC0L7QvCBXZWJHbFxuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFt1bmlmb3Jtc10gS2V5LXZhbHVlINC+0LHRitC10LrRgiDRgdC+0LTQtdGA0LbQsNGJ0LjQuSDQt9C90LDRh9C10L3QuNGPINGO0L3QuNGE0L7RgNC8XG4gICAgICogQHBhcmFtIHtPYmplY3R9IFthdHRyaWJ1dGVzXSBLZXktdmFsdWUg0L7QsdGK0LXQutGCINGB0L7QtNC10YDQttCw0YnQuNC5INC30L3QsNGH0LXQvdC40Y8g0LDRgtGA0LjQsdGD0YLQvtCyXG4gICAgICovXG4gICAgYmluZChnbCwgdW5pZm9ybXMsIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgaWYgKHVuaWZvcm1zKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdW5pZm9ybXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91bmlmb3Jtc1tuYW1lXS5iaW5kKGdsLCB1bmlmb3Jtc1tuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzW25hbWVdLmJpbmQoZ2wsIGF0dHJpYnV0ZXNbbmFtZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C60LvRjtGH0LDQtdGCINC/0YDQvtCz0YDQsNC80LzRg1xuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgZGlzYWJsZShnbCkge1xuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy5fYXR0cmlidXRlcykge1xuICAgICAgICAgICAgdGhpcy5fYXR0cmlidXRlc1tuYW1lXS5kaXNhYmxlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIF9wcmVwYXJlKGdsKSB7XG4gICAgICAgIHRoaXMuX3dlYmdsUHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKTtcblxuICAgICAgICBpZiAodGhpcy5fdmVydGV4U2hhZGVyKSB7XG4gICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIodGhpcy5fd2ViZ2xQcm9ncmFtLCB0aGlzLl92ZXJ0ZXhTaGFkZXIuZ2V0KGdsKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZnJhZ21lbnRTaGFkZXIpIHtcbiAgICAgICAgICAgIGdsLmF0dGFjaFNoYWRlcih0aGlzLl93ZWJnbFByb2dyYW0sIHRoaXMuX2ZyYWdtZW50U2hhZGVyLmdldChnbCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wubGlua1Byb2dyYW0odGhpcy5fd2ViZ2xQcm9ncmFtKTtcblxuICAgICAgICBpZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5fd2ViZ2xQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb3VsZCBub3QgaW5pdGlhbGl6ZSBzaGFkZXJzJyk7XG4gICAgICAgICAgICB0aGlzLl9zdGF0dXMgPSBTaGFkZXJQcm9ncmFtLkZBSUxFRDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N0YXR1cyA9IFNoYWRlclByb2dyYW0uUkVBRFk7XG5cbiAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMuX2F0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV0uc2V0TG9jYXRpb24oZ2wsIHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy5fdW5pZm9ybXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3VuaWZvcm1zW25hbWVdLnNldExvY2F0aW9uKGdsLCB0aGlzLl93ZWJnbFByb2dyYW0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5TaGFkZXJQcm9ncmFtLk5PVF9SRUFEWSA9IDE7XG5TaGFkZXJQcm9ncmFtLlJFQURZID0gMjtcblNoYWRlclByb2dyYW0uRkFJTEVEID0gMztcblxubW9kdWxlLmV4cG9ydHMgPSBTaGFkZXJQcm9ncmFtO1xuIl19

@@ -72,2 +72,2 @@ 'use strict';

*/
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXJVbmlmb3JtLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFNTSxhO0FBQ0YsMkJBQVksT0FBWixFQUFxQjtBQUFBOztBQUNqQixhQUFLLElBQUwsR0FBWSxRQUFRLElBQXBCO0FBQ0EsYUFBSyxJQUFMLEdBQVksUUFBUSxJQUFwQjtBQUNBLGFBQUssUUFBTCxHQUFnQixDQUFDLENBQWpCO0FBQ0g7Ozs7b0NBRVcsRSxFQUFJLFksRUFBYztBQUMxQixpQkFBSyxRQUFMLEdBQWdCLEdBQUcsa0JBQUgsQ0FBc0IsWUFBdEIsRUFBb0MsS0FBSyxJQUF6QyxDQUFoQjtBQUNBLG1CQUFPLElBQVA7QUFDSDs7OzZCQUVJLEUsRUFBSSxLLEVBQU87QUFDWixnQkFBTSxPQUFPLEtBQUssSUFBbEI7O0FBRUEsZ0JBQUksU0FBUyxNQUFiLEVBQXFCO0FBQ2pCLG1CQUFHLGdCQUFILENBQW9CLEtBQUssUUFBekIsRUFBbUMsS0FBbkMsRUFBMEMsS0FBMUM7QUFDSCxhQUZELE1BRU8sSUFBSSxTQUFTLE1BQWIsRUFBcUI7QUFDeEIsbUJBQUcsZ0JBQUgsQ0FBb0IsS0FBSyxRQUF6QixFQUFtQyxLQUFuQyxFQUEwQyxLQUExQztBQUNILGFBRk0sTUFFQSxJQUFJLFNBQVMsTUFBYixFQUFxQjtBQUN4QixtQkFBRyxnQkFBSCxDQUFvQixLQUFLLFFBQXpCLEVBQW1DLEtBQW5DLEVBQTBDLEtBQTFDO0FBQ0gsYUFGTSxNQUVBLElBQUksU0FBUyxJQUFiLEVBQW1CO0FBQ3RCLG1CQUFHLFNBQUgsQ0FBYSxLQUFLLFFBQWxCLEVBQTRCLE1BQU0sQ0FBTixDQUE1QixFQUFzQyxNQUFNLENBQU4sQ0FBdEM7QUFDSCxhQUZNLE1BRUEsSUFBSSxTQUFTLElBQWIsRUFBbUI7QUFDdEIsbUJBQUcsU0FBSCxDQUFhLEtBQUssUUFBbEIsRUFBNEIsTUFBTSxDQUFOLENBQTVCLEVBQXNDLE1BQU0sQ0FBTixDQUF0QyxFQUFnRCxNQUFNLENBQU4sQ0FBaEQ7QUFDSCxhQUZNLE1BRUEsSUFBSSxTQUFTLElBQWIsRUFBbUI7QUFDdEIsbUJBQUcsU0FBSCxDQUFhLEtBQUssUUFBbEIsRUFBNEIsTUFBTSxDQUFOLENBQTVCLEVBQXNDLE1BQU0sQ0FBTixDQUF0QyxFQUFnRCxNQUFNLENBQU4sQ0FBaEQsRUFBMEQsTUFBTSxDQUFOLENBQTFEO0FBQ0gsYUFGTSxNQUVBLElBQUksU0FBUyxJQUFiLEVBQW1CO0FBQ3RCLG1CQUFHLFNBQUgsQ0FBYSxLQUFLLFFBQWxCLEVBQTRCLE1BQU0sQ0FBTixDQUE1QixFQUFzQyxNQUFNLENBQU4sQ0FBdEM7QUFDSCxhQUZNLE1BRUEsSUFBSSxTQUFTLElBQWIsRUFBbUI7QUFDdEIsbUJBQUcsU0FBSCxDQUFhLEtBQUssUUFBbEIsRUFBNEIsTUFBTSxDQUFOLENBQTVCLEVBQXNDLE1BQU0sQ0FBTixDQUF0QyxFQUFnRCxNQUFNLENBQU4sQ0FBaEQ7QUFDSCxhQUZNLE1BRUEsSUFBSSxTQUFTLElBQWIsRUFBbUI7QUFDdEIsbUJBQUcsU0FBSCxDQUFhLEtBQUssUUFBbEIsRUFBNEIsTUFBTSxDQUFOLENBQTVCLEVBQXNDLE1BQU0sQ0FBTixDQUF0QyxFQUFnRCxNQUFNLENBQU4sQ0FBaEQsRUFBMEQsTUFBTSxDQUFOLENBQTFEO0FBQ0gsYUFGTSxNQUVBO0FBQ0gsbUJBQUcsWUFBWSxJQUFmLEVBQXFCLEtBQUssUUFBMUIsRUFBb0MsS0FBcEM7QUFDSDs7QUFFRCxtQkFBTyxJQUFQO0FBQ0g7Ozs7OztBQUdMLE9BQU8sT0FBUCxHQUFpQixhQUFqQiIsImZpbGUiOiJTaGFkZXJVbmlmb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQqNC10LnQtNC10YDQvdCw0Y8g0Y7QvdC40YTQvtGA0LzQsCwg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviB7QGxpbmsgU2hhZGVyUHJvZ3JhbX1cbiAqXG4gKiBAcGFyYW0ge1VuaWZvcm1EZWZpbml0aW9ufSBvcHRpb25zXG4gKiBAaWdub3JlXG4gKi9cbmNsYXNzIFNoYWRlclVuaWZvcm0ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgICAgICB0aGlzLnR5cGUgPSBvcHRpb25zLnR5cGU7XG4gICAgICAgIHRoaXMubG9jYXRpb24gPSAtMTtcbiAgICB9XG5cbiAgICBzZXRMb2NhdGlvbihnbCwgd2ViZ2xQcm9ncmFtKSB7XG4gICAgICAgIHRoaXMubG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24od2ViZ2xQcm9ncmFtLCB0aGlzLm5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBiaW5kKGdsLCB2YWx1ZSkge1xuICAgICAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlO1xuXG4gICAgICAgIGlmICh0eXBlID09PSAnbWF0MicpIHtcbiAgICAgICAgICAgIGdsLnVuaWZvcm1NYXRyaXgyZnYodGhpcy5sb2NhdGlvbiwgZmFsc2UsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbWF0MycpIHtcbiAgICAgICAgICAgIGdsLnVuaWZvcm1NYXRyaXgzZnYodGhpcy5sb2NhdGlvbiwgZmFsc2UsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbWF0NCcpIHtcbiAgICAgICAgICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5sb2NhdGlvbiwgZmFsc2UsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnMmYnKSB7XG4gICAgICAgICAgICBnbC51bmlmb3JtMmYodGhpcy5sb2NhdGlvbiwgdmFsdWVbMF0sIHZhbHVlWzFdKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnM2YnKSB7XG4gICAgICAgICAgICBnbC51bmlmb3JtM2YodGhpcy5sb2NhdGlvbiwgdmFsdWVbMF0sIHZhbHVlWzFdLCB2YWx1ZVsyXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJzRmJykge1xuICAgICAgICAgICAgZ2wudW5pZm9ybTRmKHRoaXMubG9jYXRpb24sIHZhbHVlWzBdLCB2YWx1ZVsxXSwgdmFsdWVbMl0sIHZhbHVlWzNdKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnMmknKSB7XG4gICAgICAgICAgICBnbC51bmlmb3JtMmkodGhpcy5sb2NhdGlvbiwgdmFsdWVbMF0sIHZhbHVlWzFdKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnM2knKSB7XG4gICAgICAgICAgICBnbC51bmlmb3JtM2kodGhpcy5sb2NhdGlvbiwgdmFsdWVbMF0sIHZhbHVlWzFdLCB2YWx1ZVsyXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJzRpJykge1xuICAgICAgICAgICAgZ2wudW5pZm9ybTRpKHRoaXMubG9jYXRpb24sIHZhbHVlWzBdLCB2YWx1ZVsxXSwgdmFsdWVbMl0sIHZhbHVlWzNdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdsWyd1bmlmb3JtJyArIHR5cGVdKHRoaXMubG9jYXRpb24sIHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTaGFkZXJVbmlmb3JtO1xuXG4vKipcbiAqINCe0L/QuNGB0LDQvdC40LUg0YjQtdC50LTQtdGA0L3QvtC5INGO0L3QuNGE0L7RgNC80YtcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVbmlmb3JtRGVmaW5pdGlvblxuICogQHByb3BlcnR5IHtTdHJpbmd9IG5hbWUg0J3QsNC30LLQsNC90LjQtSDRjtC90LjRhNC+0YDQvNGLXG4gKiBAcHJvcGVydHkge1N0cmluZ30gdHlwZSDQotC40L8g0Y7QvdC40YTQvtGA0LzRiywg0LzQvtC20LXRgiDQsdGL0YLRjDogbWF0WzIzNF0sIFsxMjM0XVtmaV0sIFsxMjM0XVtmaV12XG4gKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXJVbmlmb3JtLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7O0lBTU0sYTtBQUNGLDJCQUFZLE9BQVosRUFBcUI7QUFBQTs7QUFDakIsYUFBSyxJQUFMLEdBQVksUUFBUSxJQUFwQjtBQUNBLGFBQUssSUFBTCxHQUFZLFFBQVEsSUFBcEI7QUFDQSxhQUFLLFFBQUwsR0FBZ0IsQ0FBQyxDQUFqQjtBQUNIOzs7O29DQUVXLEUsRUFBSSxZLEVBQWM7QUFDMUIsaUJBQUssUUFBTCxHQUFnQixHQUFHLGtCQUFILENBQXNCLFlBQXRCLEVBQW9DLEtBQUssSUFBekMsQ0FBaEI7QUFDQSxtQkFBTyxJQUFQO0FBQ0g7Ozs2QkFFSSxFLEVBQUksSyxFQUFPO0FBQ1osZ0JBQU0sT0FBTyxLQUFLLElBQWxCOztBQUVBLGdCQUFJLFNBQVMsTUFBYixFQUFxQjtBQUNqQixtQkFBRyxnQkFBSCxDQUFvQixLQUFLLFFBQXpCLEVBQW1DLEtBQW5DLEVBQTBDLEtBQTFDO0FBQ0gsYUFGRCxNQUVPLElBQUksU0FBUyxNQUFiLEVBQXFCO0FBQ3hCLG1CQUFHLGdCQUFILENBQW9CLEtBQUssUUFBekIsRUFBbUMsS0FBbkMsRUFBMEMsS0FBMUM7QUFDSCxhQUZNLE1BRUEsSUFBSSxTQUFTLE1BQWIsRUFBcUI7QUFDeEIsbUJBQUcsZ0JBQUgsQ0FBb0IsS0FBSyxRQUF6QixFQUFtQyxLQUFuQyxFQUEwQyxLQUExQztBQUNILGFBRk0sTUFFQSxJQUFJLFNBQVMsSUFBYixFQUFtQjtBQUN0QixtQkFBRyxTQUFILENBQWEsS0FBSyxRQUFsQixFQUE0QixNQUFNLENBQU4sQ0FBNUIsRUFBc0MsTUFBTSxDQUFOLENBQXRDO0FBQ0gsYUFGTSxNQUVBLElBQUksU0FBUyxJQUFiLEVBQW1CO0FBQ3RCLG1CQUFHLFNBQUgsQ0FBYSxLQUFLLFFBQWxCLEVBQTRCLE1BQU0sQ0FBTixDQUE1QixFQUFzQyxNQUFNLENBQU4sQ0FBdEMsRUFBZ0QsTUFBTSxDQUFOLENBQWhEO0FBQ0gsYUFGTSxNQUVBLElBQUksU0FBUyxJQUFiLEVBQW1CO0FBQ3RCLG1CQUFHLFNBQUgsQ0FBYSxLQUFLLFFBQWxCLEVBQTRCLE1BQU0sQ0FBTixDQUE1QixFQUFzQyxNQUFNLENBQU4sQ0FBdEMsRUFBZ0QsTUFBTSxDQUFOLENBQWhELEVBQTBELE1BQU0sQ0FBTixDQUExRDtBQUNILGFBRk0sTUFFQSxJQUFJLFNBQVMsSUFBYixFQUFtQjtBQUN0QixtQkFBRyxTQUFILENBQWEsS0FBSyxRQUFsQixFQUE0QixNQUFNLENBQU4sQ0FBNUIsRUFBc0MsTUFBTSxDQUFOLENBQXRDO0FBQ0gsYUFGTSxNQUVBLElBQUksU0FBUyxJQUFiLEVBQW1CO0FBQ3RCLG1CQUFHLFNBQUgsQ0FBYSxLQUFLLFFBQWxCLEVBQTRCLE1BQU0sQ0FBTixDQUE1QixFQUFzQyxNQUFNLENBQU4sQ0FBdEMsRUFBZ0QsTUFBTSxDQUFOLENBQWhEO0FBQ0gsYUFGTSxNQUVBLElBQUksU0FBUyxJQUFiLEVBQW1CO0FBQ3RCLG1CQUFHLFNBQUgsQ0FBYSxLQUFLLFFBQWxCLEVBQTRCLE1BQU0sQ0FBTixDQUE1QixFQUFzQyxNQUFNLENBQU4sQ0FBdEMsRUFBZ0QsTUFBTSxDQUFOLENBQWhELEVBQTBELE1BQU0sQ0FBTixDQUExRDtBQUNILGFBRk0sTUFFQTtBQUNILG1CQUFHLFlBQVksSUFBZixFQUFxQixLQUFLLFFBQTFCLEVBQW9DLEtBQXBDO0FBQ0g7O0FBRUQsbUJBQU8sSUFBUDtBQUNIOzs7Ozs7QUFHTCxPQUFPLE9BQVAsR0FBaUIsYUFBakI7O0FBRUEiLCJmaWxlIjoiU2hhZGVyVW5pZm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0KjQtdC50LTQtdGA0L3QsNGPINGO0L3QuNGE0L7RgNC80LAsINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDRgtC+0LvRjNC60L4ge0BsaW5rIFNoYWRlclByb2dyYW19XG4gKlxuICogQHBhcmFtIHtVbmlmb3JtRGVmaW5pdGlvbn0gb3B0aW9uc1xuICogQGlnbm9yZVxuICovXG5jbGFzcyBTaGFkZXJVbmlmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlO1xuICAgICAgICB0aGlzLmxvY2F0aW9uID0gLTE7XG4gICAgfVxuXG4gICAgc2V0TG9jYXRpb24oZ2wsIHdlYmdsUHJvZ3JhbSkge1xuICAgICAgICB0aGlzLmxvY2F0aW9uID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHdlYmdsUHJvZ3JhbSwgdGhpcy5uYW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYmluZChnbCwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gJ21hdDInKSB7XG4gICAgICAgICAgICBnbC51bmlmb3JtTWF0cml4MmZ2KHRoaXMubG9jYXRpb24sIGZhbHNlLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ21hdDMnKSB7XG4gICAgICAgICAgICBnbC51bmlmb3JtTWF0cml4M2Z2KHRoaXMubG9jYXRpb24sIGZhbHNlLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ21hdDQnKSB7XG4gICAgICAgICAgICBnbC51bmlmb3JtTWF0cml4NGZ2KHRoaXMubG9jYXRpb24sIGZhbHNlLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJzJmJykge1xuICAgICAgICAgICAgZ2wudW5pZm9ybTJmKHRoaXMubG9jYXRpb24sIHZhbHVlWzBdLCB2YWx1ZVsxXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJzNmJykge1xuICAgICAgICAgICAgZ2wudW5pZm9ybTNmKHRoaXMubG9jYXRpb24sIHZhbHVlWzBdLCB2YWx1ZVsxXSwgdmFsdWVbMl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICc0ZicpIHtcbiAgICAgICAgICAgIGdsLnVuaWZvcm00Zih0aGlzLmxvY2F0aW9uLCB2YWx1ZVswXSwgdmFsdWVbMV0sIHZhbHVlWzJdLCB2YWx1ZVszXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJzJpJykge1xuICAgICAgICAgICAgZ2wudW5pZm9ybTJpKHRoaXMubG9jYXRpb24sIHZhbHVlWzBdLCB2YWx1ZVsxXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJzNpJykge1xuICAgICAgICAgICAgZ2wudW5pZm9ybTNpKHRoaXMubG9jYXRpb24sIHZhbHVlWzBdLCB2YWx1ZVsxXSwgdmFsdWVbMl0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICc0aScpIHtcbiAgICAgICAgICAgIGdsLnVuaWZvcm00aSh0aGlzLmxvY2F0aW9uLCB2YWx1ZVswXSwgdmFsdWVbMV0sIHZhbHVlWzJdLCB2YWx1ZVszXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnbFsndW5pZm9ybScgKyB0eXBlXSh0aGlzLmxvY2F0aW9uLCB2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhZGVyVW5pZm9ybTtcblxuLyoqXG4gKiDQntC/0LjRgdCw0L3QuNC1INGI0LXQudC00LXRgNC90L7QuSDRjtC90LjRhNC+0YDQvNGLXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gVW5pZm9ybURlZmluaXRpb25cbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBuYW1lINCd0LDQt9Cy0LDQvdC40LUg0Y7QvdC40YTQvtGA0LzRi1xuICogQHByb3BlcnR5IHtTdHJpbmd9IHR5cGUg0KLQuNC/INGO0L3QuNGE0L7RgNC80YssINC80L7QttC10YIg0LHRi9GC0Yw6IG1hdFsyMzRdLCBbMTIzNF1bZmldLCBbMTIzNF1bZmlddlxuICovXG4iXX0=

@@ -125,2 +125,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TcHJpdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQVNNLE07Ozs7Ozs7QUFJRixrQkFBWSxRQUFaLEVBQXNCO0FBQUE7Ozs7Ozs7QUFBQTs7QUFPbEIsVUFBSyxRQUFMLEdBQWdCLFFBQWhCOzs7Ozs7QUFNQSxVQUFLLE1BQUwsR0FBYyxlQUFLLE1BQUwsRUFBZDs7Ozs7O0FBTUEsVUFBSyxJQUFMLEdBQVksdUJBQWEsTUFBekI7QUFuQmtCO0FBb0JyQjs7OzsyQkFFTSxLLEVBQU87O0FBRVYsVUFBSSxDQUFDLEtBQUssT0FBTixJQUFpQixDQUFDLEtBQUssUUFBTCxDQUFjLFVBQWQsRUFBdEIsRUFBa0Q7QUFBRSxlQUFPLElBQVA7QUFBYzs7QUFFbEUsVUFBSSxLQUFLLHNCQUFULEVBQWlDO0FBQzdCLGFBQUssaUJBQUw7QUFDSDs7QUFFRCxVQUFNLEtBQUssTUFBTSxFQUFqQjs7QUFFQSxZQUFNLE1BQU4sR0FBZSxJQUFmOztBQUVBLFdBQUssUUFBTCxDQUFjLE1BQWQsQ0FBcUIsS0FBckI7OztBQUdBLFNBQUcsWUFBSCxDQUFnQixHQUFHLFNBQW5CLEVBQThCLENBQTlCLEVBQWlDLEdBQUcsY0FBcEMsRUFBb0QsQ0FBcEQ7O0FBRUEsV0FBSyxRQUFMLENBQWMsT0FBZCxDQUFzQixNQUFNLEVBQTVCOztBQUVBLGFBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7OztvQ0FRZSxhLEVBQWU7QUFDM0IsVUFBSSxDQUFDLEtBQUssT0FBVixFQUFtQjtBQUFFLGVBQU8sSUFBUDtBQUFjOztBQUVuQyxvQkFBYyx1QkFBYSxlQUEzQixFQUE0QyxTQUE1QyxDQUFzRCxJQUF0RDs7QUFFQSxXQUFLLFFBQUwsQ0FBYyxPQUFkLENBQXNCO0FBQUEsZUFBUyxNQUFNLGVBQU4sQ0FBc0IsYUFBdEIsQ0FBVDtBQUFBLE9BQXRCOztBQUVBLGFBQU8sSUFBUDtBQUNIOzs7Ozs7a0JBR1UsTSIsImZpbGUiOiJTcHJpdGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2JqZWN0M0QgZnJvbSAnLi9PYmplY3QzRCc7XG5pbXBvcnQge3ZlYzJ9IGZyb20gJ2dsLW1hdHJpeCc7XG5pbXBvcnQgbGliQ29uc3RhbnRzIGZyb20gJy4vbGliQ29uc3RhbnRzJztcbmltcG9ydCAnLi9yZW5kZXJlclBsdWdpbnMvU3ByaXRlUGx1Z2luJztcblxuLyoqXG4gKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuCDRgdC/0YDQsNC50YLQvtCyLiDQodC/0YDQsNC50YLRiyDQstGB0LXQs9C00LAg0YDQuNGB0YPRjtGC0YHRjyDQu9C40YbQtdCy0L7QuSDRgdGC0L7RgNC+0L3QvtC5XG4gKiDQuCDQuNGFINGA0LDQt9C80LXRgNGLINC90LUg0LfQsNCy0LjRgdGP0YIg0L7RgiDQv9C+0LvQvtC20LXQvdC40Y8uINCiLtC1LiDQutC+0L7RgNC00LjQvdCw0YLRiyDRgdC/0YDQsNC50YLQsCDQv9GA0L7QtdGG0LjRgNGD0Y7RgtGB0Y8g0LIg0L/Qu9C+0YHQutC+0YHRgtGMINGN0LrRgNCw0L3QsCxcbiAqINC4INGD0LbQtSDQvdCwINC90LXQuSDQvtGC0YDQuNGB0L7QstGL0LLQsNGO0YLRgdGPLlxuICpcbiAqIEBleHRlbmRzIHtPYmplY3QzRH1cbiAqL1xuY2xhc3MgU3ByaXRlIGV4dGVuZHMgT2JqZWN0M0Qge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7U3ByaXRlTWF0ZXJpYWx9IG1hdGVyaWFsXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWF0ZXJpYWwpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/RgNC+0LPRgNCw0LzQvNCwINC+0YLRgNC40YHQvtCy0LrQuCDRgdC/0YDQsNC50YLQsFxuICAgICAgICAgKiBAdHlwZSB7U3ByaXRlTWF0ZXJpYWx9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm1hdGVyaWFsID0gbWF0ZXJpYWw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCh0LzQtdGJ0LXQvdC40LUg0YHQv9GA0LDQudGC0LAg0LIg0L/Qu9C+0YHQutC+0YHRgtC4INGN0LrRgNCw0L3QsFxuICAgICAgICAgKiBAdHlwZSB7dmVjMn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub2Zmc2V0ID0gdmVjMi5jcmVhdGUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtCx0L7Qt9C90LDRh9C10L3QuNGPINGC0LjQv9CwINC+0LHRitC10LrRgtCwXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBsaWJDb25zdGFudHMuU1BSSVRFO1xuICAgIH1cblxuICAgIHJlbmRlcihzdGF0ZSkge1xuICAgICAgICAvLyDQldGB0LvQuCBj0L/RgNCw0LnRgiDQvdC10LLQuNC00LjQvCDQuNC70Lgg0YMg0L/RgNC+0LPRgNCw0LzQvNGLINGB0L/RgNCw0LnRgtCwINC90LUg0YPRgdGC0LDQvdC+0LLQu9C10L3QsCDRgtC10LrRgdGC0YPRgNCwLCDRgtC+INC90LUg0YDQtdC90LTQtdGA0LjQvCDQtdCz0L5cbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUgfHwgIXRoaXMubWF0ZXJpYWwuZ2V0VGV4dHVyZSgpKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgaWYgKHRoaXMud29ybGRNYXRyaXhOZWVkc1VwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVXb3JsZE1hdHJpeCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZ2wgPSBzdGF0ZS5nbDtcblxuICAgICAgICBzdGF0ZS5vYmplY3QgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMubWF0ZXJpYWwuZW5hYmxlKHN0YXRlKTtcblxuICAgICAgICAvLyBkcmF3IGZvciBpbmRpY2VzXG4gICAgICAgIGdsLmRyYXdFbGVtZW50cyhnbC5UUklBTkdMRVMsIDYsIGdsLlVOU0lHTkVEX1NIT1JULCAwKTtcblxuICAgICAgICB0aGlzLm1hdGVyaWFsLmRpc2FibGUoc3RhdGUuZ2wpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQt9GL0LLQsNC10YLRgdGPINC90LAg0Y3RgtCw0L/QtSDRgNC10L3QtNC10YDQuNC90LPQsCwg0YfRgtC+0LHRiyDQvtC/0YDQtdC00LXQu9C40YLRjCDQuiDQutCw0LrQvtC80YMg0YLQuNC/0YMg0YDQtdC90LTQtdGA0LAg0L/RgNC40L3QsNC00LvQtdC20LjRgiDQvtCx0YrQtdC60YIuXG4gICAgICog0KHQv9GA0LDQudGC0Ysg0YDQuNGB0YPRjtGC0YHRjyDQvtGC0LTQtdC70YzQvdGL0Lwg0YDQtdC90LTQtdGA0L7QvC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZW5kZXJQbHVnaW5zXG4gICAgICovXG4gICAgdHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICByZW5kZXJQbHVnaW5zW2xpYkNvbnN0YW50cy5TUFJJVEVfUkVOREVSRVJdLmFkZE9iamVjdCh0aGlzKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gY2hpbGQudHlwaWZ5Rm9yUmVuZGVyKHJlbmRlclBsdWdpbnMpKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwcml0ZTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TcHJpdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQTs7Ozs7Ozs7SUFPTSxNOzs7QUFDRjs7OztBQUdBLGtCQUFZLFFBQVosRUFBc0I7QUFBQTs7QUFHbEI7Ozs7O0FBSGtCOztBQU9sQixVQUFLLFFBQUwsR0FBZ0IsUUFBaEI7O0FBRUE7Ozs7QUFJQSxVQUFLLE1BQUwsR0FBYyxlQUFLLE1BQUwsRUFBZDs7QUFFQTs7OztBQUlBLFVBQUssSUFBTCxHQUFZLHVCQUFhLE1BQXpCO0FBbkJrQjtBQW9CckI7Ozs7MkJBRU0sSyxFQUFPO0FBQ1Y7QUFDQSxVQUFJLENBQUMsS0FBSyxPQUFOLElBQWlCLENBQUMsS0FBSyxRQUFMLENBQWMsVUFBZCxFQUF0QixFQUFrRDtBQUFFLGVBQU8sSUFBUDtBQUFjOztBQUVsRSxVQUFJLEtBQUssc0JBQVQsRUFBaUM7QUFDN0IsYUFBSyxpQkFBTDtBQUNIOztBQUVELFVBQU0sS0FBSyxNQUFNLEVBQWpCOztBQUVBLFlBQU0sTUFBTixHQUFlLElBQWY7O0FBRUEsV0FBSyxRQUFMLENBQWMsTUFBZCxDQUFxQixLQUFyQjs7QUFFQTtBQUNBLFNBQUcsWUFBSCxDQUFnQixHQUFHLFNBQW5CLEVBQThCLENBQTlCLEVBQWlDLEdBQUcsY0FBcEMsRUFBb0QsQ0FBcEQ7O0FBRUEsV0FBSyxRQUFMLENBQWMsT0FBZCxDQUFzQixNQUFNLEVBQTVCOztBQUVBLGFBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7Ozs7b0NBTWdCLGEsRUFBZTtBQUMzQixVQUFJLENBQUMsS0FBSyxPQUFWLEVBQW1CO0FBQUUsZUFBTyxJQUFQO0FBQWM7O0FBRW5DLG9CQUFjLHVCQUFhLGVBQTNCLEVBQTRDLFNBQTVDLENBQXNELElBQXREOztBQUVBLFdBQUssUUFBTCxDQUFjLE9BQWQsQ0FBc0I7QUFBQSxlQUFTLE1BQU0sZUFBTixDQUFzQixhQUF0QixDQUFUO0FBQUEsT0FBdEI7O0FBRUEsYUFBTyxJQUFQO0FBQ0g7Ozs7OztrQkFHVSxNIiwiZmlsZSI6IlNwcml0ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3QzRCBmcm9tICcuL09iamVjdDNEJztcbmltcG9ydCB7dmVjMn0gZnJvbSAnZ2wtbWF0cml4JztcbmltcG9ydCBsaWJDb25zdGFudHMgZnJvbSAnLi9saWJDb25zdGFudHMnO1xuaW1wb3J0ICcuL3JlbmRlcmVyUGx1Z2lucy9TcHJpdGVQbHVnaW4nO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0L7RgtGA0LjRgdC+0LLQutC4INGB0L/RgNCw0LnRgtC+0LIuINCh0L/RgNCw0LnRgtGLINCy0YHQtdCz0LTQsCDRgNC40YHRg9GO0YLRgdGPINC70LjRhtC10LLQvtC5INGB0YLQvtGA0L7QvdC+0LlcbiAqINC4INC40YUg0YDQsNC30LzQtdGA0Ysg0L3QtSDQt9Cw0LLQuNGB0Y/RgiDQvtGCINC/0L7Qu9C+0LbQtdC90LjRjy4g0KIu0LUuINC60L7QvtGA0LTQuNC90LDRgtGLINGB0L/RgNCw0LnRgtCwINC/0YDQvtC10YbQuNGA0YPRjtGC0YHRjyDQsiDQv9C70L7RgdC60L7RgdGC0Ywg0Y3QutGA0LDQvdCwLFxuICog0Lgg0YPQttC1INC90LAg0L3QtdC5INC+0YLRgNC40YHQvtCy0YvQstCw0Y7RgtGB0Y8uXG4gKlxuICogQGV4dGVuZHMge09iamVjdDNEfVxuICovXG5jbGFzcyBTcHJpdGUgZXh0ZW5kcyBPYmplY3QzRCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtTcHJpdGVNYXRlcmlhbH0gbWF0ZXJpYWxcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtYXRlcmlhbCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQn9GA0L7Qs9GA0LDQvNC80LAg0L7RgtGA0LjRgdC+0LLQutC4INGB0L/RgNCw0LnRgtCwXG4gICAgICAgICAqIEB0eXBlIHtTcHJpdGVNYXRlcmlhbH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KHQvNC10YnQtdC90LjQtSDRgdC/0YDQsNC50YLQsCDQsiDQv9C70L7RgdC60L7RgdGC0Lgg0Y3QutGA0LDQvdCwXG4gICAgICAgICAqIEB0eXBlIHt2ZWMyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vZmZzZXQgPSB2ZWMyLmNyZWF0ZSgpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINC+0LHQvtC30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LAg0L7QsdGK0LXQutGC0LBcbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IGxpYkNvbnN0YW50cy5TUFJJVEU7XG4gICAgfVxuXG4gICAgcmVuZGVyKHN0YXRlKSB7XG4gICAgICAgIC8vINCV0YHQu9C4IGPQv9GA0LDQudGCINC90LXQstC40LTQuNC8INC40LvQuCDRgyDQv9GA0L7Qs9GA0LDQvNC80Ysg0YHQv9GA0LDQudGC0LAg0L3QtSDRg9GB0YLQsNC90L7QstC70LXQvdCwINGC0LXQutGB0YLRg9GA0LAsINGC0L4g0L3QtSDRgNC10L3QtNC10YDQuNC8INC10LPQvlxuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSB8fCAhdGhpcy5tYXRlcmlhbC5nZXRUZXh0dXJlKCkpIHsgcmV0dXJuIHRoaXM7IH1cblxuICAgICAgICBpZiAodGhpcy53b3JsZE1hdHJpeE5lZWRzVXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVdvcmxkTWF0cml4KCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBnbCA9IHN0YXRlLmdsO1xuXG4gICAgICAgIHN0YXRlLm9iamVjdCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5tYXRlcmlhbC5lbmFibGUoc3RhdGUpO1xuXG4gICAgICAgIC8vIGRyYXcgZm9yIGluZGljZXNcbiAgICAgICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgNiwgZ2wuVU5TSUdORURfU0hPUlQsIDApO1xuXG4gICAgICAgIHRoaXMubWF0ZXJpYWwuZGlzYWJsZShzdGF0ZS5nbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C30YvQstCw0LXRgtGB0Y8g0L3QsCDRjdGC0LDQv9C1INGA0LXQvdC00LXRgNC40L3Qs9CwLCDRh9GC0L7QsdGLINC+0L/RgNC10LTQtdC70LjRgtGMINC6INC60LDQutC+0LzRgyDRgtC40L/RgyDRgNC10L3QtNC10YDQsCDQv9GA0LjQvdCw0LTQu9C10LbQuNGCINC+0LHRitC10LrRgi5cbiAgICAgKiDQodC/0YDQsNC50YLRiyDRgNC40YHRg9GO0YLRgdGPINC+0YLQtNC10LvRjNC90YvQvCDRgNC10L3QtNC10YDQvtC8LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHJlbmRlclBsdWdpbnNcbiAgICAgKi9cbiAgICB0eXBpZnlGb3JSZW5kZXIocmVuZGVyUGx1Z2lucykge1xuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkgeyByZXR1cm4gdGhpczsgfVxuXG4gICAgICAgIHJlbmRlclBsdWdpbnNbbGliQ29uc3RhbnRzLlNQUklURV9SRU5ERVJFUl0uYWRkT2JqZWN0KHRoaXMpO1xuXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBjaGlsZC50eXBpZnlGb3JSZW5kZXIocmVuZGVyUGx1Z2lucykpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3ByaXRlO1xuIl19

@@ -181,2 +181,2 @@ "use strict";

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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LEUsRUFBSSxLLEVBQU87QUFDbEIsZ0JBQUksVUFBVSxRQUFRLG1CQUF0QixFQUEyQztBQUFFLHVCQUFPLEdBQUcsYUFBVjtBQUEwQjs7QUFFdkUsZ0JBQUksVUFBVSxRQUFRLGFBQXRCLEVBQXFDO0FBQUUsdUJBQU8sR0FBRyxPQUFWO0FBQW9CO0FBQzNELGdCQUFJLFVBQVUsUUFBUSwwQkFBdEIsRUFBa0Q7QUFBRSx1QkFBTyxHQUFHLHNCQUFWO0FBQW1DO0FBQ3ZGLGdCQUFJLFVBQVUsUUFBUSx5QkFBdEIsRUFBaUQ7QUFBRSx1QkFBTyxHQUFHLHFCQUFWO0FBQWtDOztBQUVyRixnQkFBSSxVQUFVLFFBQVEsWUFBdEIsRUFBb0M7QUFBRSx1QkFBTyxHQUFHLE1BQVY7QUFBbUI7QUFDekQsZ0JBQUksVUFBVSxRQUFRLHlCQUF0QixFQUFpRDtBQUFFLHVCQUFPLEdBQUcscUJBQVY7QUFBa0M7QUFDckYsZ0JBQUksVUFBVSxRQUFRLHdCQUF0QixFQUFnRDtBQUFFLHVCQUFPLEdBQUcsb0JBQVY7QUFBaUM7QUFDdEY7Ozs7OztBQUdMLFFBQVEsbUJBQVIsR0FBOEIsQ0FBOUI7O0FBRUEsUUFBUSxhQUFSLEdBQXdCLENBQXhCO0FBQ0EsUUFBUSwwQkFBUixHQUFxQyxDQUFyQztBQUNBLFFBQVEseUJBQVIsR0FBb0MsQ0FBcEM7QUFDQSxRQUFRLFlBQVIsR0FBdUIsQ0FBdkI7QUFDQSxRQUFRLHlCQUFSLEdBQW9DLENBQXBDO0FBQ0EsUUFBUSx3QkFBUixHQUFtQyxDQUFuQzs7a0JBRWUsTyIsImZpbGUiOiJUZXh0dXJlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQotC10LrRgdGC0YPRgNGLINC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQtNC70Y8g0L7RgtGA0LjRgdC+0LLQutC4INC40LfQvtCx0YDQsNC20LXQvdC40Lkg0LIgV2ViR0xcbiAqL1xuY2xhc3MgVGV4dHVyZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtIVE1MSW1hZ2VFbGVtZW50IHwgSFRNTENhbnZhc0VsZW1lbnR9IFtzcmM9bnVsbF0g0JIg0LrQsNGH0LXRgdGC0LLQtSDQuNC30L7QsdGA0LDQttC10L3QuNGPINC80L7QttC10YIg0LHRi9GC0YxcbiAgICAgKiDQu9C40LHQviDRjdC70LXQvNC10L3RgiBpbWcsINC70LjQsdC+IGNhbnZhc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNyYykge1xuICAgICAgICB0aGlzLl9zcmMgPSBzcmMgfHwgbnVsbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KLQuNC/INGE0LjQu9GM0YLRgNCwINC/0YDQuCDQvtGC0L7QsdGA0LDQttC10L3QuNC4INGC0LXQutGB0YLRg9GA0YssINGA0LDQt9C80LXRgNGLINC60L7RgtC+0YDQvtC5INCx0L7Qu9GM0YjQtSwg0YfQtdC8INGA0LDQt9C80LXRgNGLINC40YHRhdC+0LTQvdC+0Lkg0LrQsNGA0YLQuNC90LrQuFxuICAgICAgICAgKiBAdHlwZSB7VGV4dHVyZUZpbHRlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubWFnRmlsdGVyID0gVGV4dHVyZS5MaW5lYXJGaWx0ZXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCi0LjQvyDRhNC40LvRjNGC0YDQsCDQv9GA0Lgg0L7RgtC+0LHRgNCw0LbQtdC90LjQuCDRgtC10LrRgdGC0YPRgNGLLCDRgNCw0LfQvNC10YDRiyDQutC+0YLQvtGA0L7QuSDQvNC10L3RjNGI0LUsINGH0LXQvCDRgNCw0LfQvNC10YDRiyDQuNGB0YXQvtC00L3QvtC5INC60LDRgNGC0LjQvdC60LhcbiAgICAgICAgICogQHR5cGUge1RleHR1cmVGaWx0ZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm1pbkZpbHRlciA9IFRleHR1cmUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQp9GC0L4g0LTQtdC70LDRgtGMLCDQtdGB0LvQuCDRiNC40YDQuNC90LAg0LjRgdGF0L7QtNC90L7QuSDQutCw0YDRgtC40L3QutC4INC90LUg0YDQsNCy0L3QsCDRgdGC0LXQv9C10L3QuCAyLlxuICAgICAgICAgKiBAdHlwZSB7VGV4dHVyZUNsYW1wfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy53cmFwUyA9IFRleHR1cmUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KfRgtC+INC00LXQu9Cw0YLRjCwg0LXRgdC70Lgg0LLRi9GB0L7RgtCwINC40YHRhdC+0LTQvdC+0Lkg0LrQsNGA0YLQuNC90LrQuCDQvdC1INGA0LDQstC90LAg0YHRgtC10L/QtdC90LggMi5cbiAgICAgICAgICogQHR5cGUge1RleHR1cmVDbGFtcH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMud3JhcFQgPSBUZXh0dXJlLkNsYW1wVG9FZGdlV3JhcHBpbmc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCT0LXQvdC10YDQuNGA0L7QstCw0YLRjCDQu9C4IG1pcG1hcHMuXG4gICAgICAgICAqINCe0L3QuCDQt9C90LDRh9C40YLQtdC70YzQvdC+INC/0L7QstGL0YjQsNGO0YIg0LrQsNGH0LXRgdGC0LLQviDQuCDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0Ywg0L7RgtC+0LHRgNCw0LbQtdC90LjRjy5cbiAgICAgICAgICogTWlwbWFwcyDQvNC+0LPRg9GCINC40YHQv9C+0LvRjNC30L7QstCw0YLRjNGB0Y8g0YLQvtC70YzQutC+LCDQtdGB0LvQuCDRgNCw0LfQvNC10YDRiyDRgtC10LrRgdGC0YPRgNGLINGA0LDQstC90Ysg0YHRgtC10L/QtdC90LggMi5cbiAgICAgICAgICpcbiAgICAgICAgICogQHR5cGUge0Jvb2xlYW59XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmdlbmVyYXRlTWlwbWFwcyA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQstGP0LfRi9Cy0LDQtdGCIFdlYkdMINC4INC00LDQvdC90YvQtSDRgtC10LrRgdGC0YPRgNGLLlxuICAgICAqINCf0YDQuCDQv9C10YDQstC+0Lwg0LLRi9C30L7QsiDQv9GA0L7QuNGB0YXQvtC00LjRgiDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjRjy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gYWN0aXZhdGUg0J3Rg9C20L3QviDQu9C4INC00LXQu9Cw0YLRjCDRgtC10LrRgdGC0YPRgNGDINCw0LrRgtC40LLQvdC+0Lkg0LIg0LrQvtC90YLQtdC60YHRgtC1IFdlYkdMXG4gICAgICovXG4gICAgZW5hYmxlKGdsLCBhY3RpdmF0ZSkge1xuICAgICAgICBpZiAoIXRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmUoZ2wpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy5fdGV4dHVyZSk7XG5cbiAgICAgICAgaWYgKGFjdGl2YXRlKSB7XG4gICAgICAgICAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINGC0LXQutGB0YLRg9GA0YMg0LjQtyDQstC40LTQtdC+0LrQsNGA0YLRi1xuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgcmVtb3ZlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl90ZXh0dXJlKSB7XG4gICAgICAgICAgICBnbC5kZWxldGVUZXh0dXJlKHRoaXMuX3RleHR1cmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTtcblxuICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0aGlzLl90ZXh0dXJlKTtcbiAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7XG4gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSkge1xuICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB0aGlzLnNpemVbMF0sIHRoaXMuc2l6ZVsxXSwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSxcbiAgICAgICAgICAgICAgICB0aGlzLl9zcmMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB0aGlzLl9zcmMpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLndyYXBTKSk7XG4gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy53cmFwVCkpO1xuXG4gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMubWFnRmlsdGVyKSk7XG4gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMubWluRmlsdGVyKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2VuZXJhdGVNaXBtYXBzICYmXG4gICAgICAgICAgICB0aGlzLm1pbkZpbHRlciAhPT0gVGV4dHVyZS5OZWFyZXN0RmlsdGVyICYmXG4gICAgICAgICAgICB0aGlzLm1pbkZpbHRlciAhPT0gVGV4dHVyZS5MaW5lYXJGaWx0ZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBnbC5nZW5lcmF0ZU1pcG1hcChnbC5URVhUVVJFXzJEKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIG51bGwpO1xuICAgIH1cblxuICAgIF90b0dsUGFyYW0oZ2wsIHBhcmFtKSB7XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nKSB7IHJldHVybiBnbC5DTEFNUF9UT19FREdFOyB9XG5cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLk5lYXJlc3RGaWx0ZXIpIHsgcmV0dXJuIGdsLk5FQVJFU1Q7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLk5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyKSB7IHJldHVybiBnbC5ORUFSRVNUX01JUE1BUF9ORUFSRVNUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5OZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5ORUFSRVNUX01JUE1BUF9MSU5FQVI7IH1cblxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5MSU5FQVI7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkxpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIpIHsgcmV0dXJuIGdsLkxJTkVBUl9NSVBNQVBfTkVBUkVTVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUjsgfVxuICAgIH1cbn1cblxuVGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nID0gODtcblxuVGV4dHVyZS5OZWFyZXN0RmlsdGVyID0gMTtcblRleHR1cmUuTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXIgPSAyO1xuVGV4dHVyZS5OZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyID0gMztcblRleHR1cmUuTGluZWFyRmlsdGVyID0gNDtcblRleHR1cmUuTGluZWFyTWlwTWFwTmVhcmVzdEZpbHRlciA9IDU7XG5UZXh0dXJlLkxpbmVhck1pcE1hcExpbmVhckZpbHRlciA9IDY7XG5cbmV4cG9ydCBkZWZhdWx0IFRleHR1cmU7XG5cbi8qKlxuICogQHR5cGVkZWYge1RleHR1cmUuTmVhcmVzdEZpbHRlciB8IFRleHR1cmUuTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXIgfFxuICogVGV4dHVyZS5OZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyIHwgVGV4dHVyZS5MaW5lYXJGaWx0ZXIgfFxuICogVGV4dHVyZS5MaW5lYXJNaXBNYXBOZWFyZXN0RmlsdGVyIHwgVGV4dHVyZS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXJ9IFRleHR1cmVGaWx0ZXJcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtUZXh0dXJlLkNsYW1wVG9FZGdlV3JhcHBpbmd9IFRleHR1cmVDbGFtcFxuICovXG4iXX0=
//# sourceMappingURL=data:application/json;base64,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LEdBQUcsVUFBbEIsRUFBOEIsSUFBOUI7QUFDSDs7O21DQUVVLEUsRUFBSSxLLEVBQU87QUFDbEIsZ0JBQUksVUFBVSxRQUFRLG1CQUF0QixFQUEyQztBQUFFLHVCQUFPLEdBQUcsYUFBVjtBQUEwQjs7QUFFdkUsZ0JBQUksVUFBVSxRQUFRLGFBQXRCLEVBQXFDO0FBQUUsdUJBQU8sR0FBRyxPQUFWO0FBQW9CO0FBQzNELGdCQUFJLFVBQVUsUUFBUSwwQkFBdEIsRUFBa0Q7QUFBRSx1QkFBTyxHQUFHLHNCQUFWO0FBQW1DO0FBQ3ZGLGdCQUFJLFVBQVUsUUFBUSx5QkFBdEIsRUFBaUQ7QUFBRSx1QkFBTyxHQUFHLHFCQUFWO0FBQWtDOztBQUVyRixnQkFBSSxVQUFVLFFBQVEsWUFBdEIsRUFBb0M7QUFBRSx1QkFBTyxHQUFHLE1BQVY7QUFBbUI7QUFDekQsZ0JBQUksVUFBVSxRQUFRLHlCQUF0QixFQUFpRDtBQUFFLHVCQUFPLEdBQUcscUJBQVY7QUFBa0M7QUFDckYsZ0JBQUksVUFBVSxRQUFRLHdCQUF0QixFQUFnRDtBQUFFLHVCQUFPLEdBQUcsb0JBQVY7QUFBaUM7QUFDdEY7Ozs7OztBQUdMLFFBQVEsbUJBQVIsR0FBOEIsQ0FBOUI7O0FBRUEsUUFBUSxhQUFSLEdBQXdCLENBQXhCO0FBQ0EsUUFBUSwwQkFBUixHQUFxQyxDQUFyQztBQUNBLFFBQVEseUJBQVIsR0FBb0MsQ0FBcEM7QUFDQSxRQUFRLFlBQVIsR0FBdUIsQ0FBdkI7QUFDQSxRQUFRLHlCQUFSLEdBQW9DLENBQXBDO0FBQ0EsUUFBUSx3QkFBUixHQUFtQyxDQUFuQzs7a0JBRWUsTzs7QUFFZjs7Ozs7O0FBTUEiLCJmaWxlIjoiVGV4dHVyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0KLQtdC60YHRgtGD0YDRiyDQuNGB0L/QvtC70YzQt9GD0Y7RgtGB0Y8g0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuCDQuNC30L7QsdGA0LDQttC10L3QuNC5INCyIFdlYkdMXG4gKi9cbmNsYXNzIFRleHR1cmUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7SFRNTEltYWdlRWxlbWVudCB8IEhUTUxDYW52YXNFbGVtZW50fSBbc3JjPW51bGxdINCSINC60LDRh9C10YHRgtCy0LUg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDQvNC+0LbQtdGCINCx0YvRgtGMXG4gICAgICog0LvQuNCx0L4g0Y3Qu9C10LzQtdC90YIgaW1nLCDQu9C40LHQviBjYW52YXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzcmMpIHtcbiAgICAgICAgdGhpcy5fc3JjID0gc3JjIHx8IG51bGw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCi0LjQvyDRhNC40LvRjNGC0YDQsCDQv9GA0Lgg0L7RgtC+0LHRgNCw0LbQtdC90LjQuCDRgtC10LrRgdGC0YPRgNGLLCDRgNCw0LfQvNC10YDRiyDQutC+0YLQvtGA0L7QuSDQsdC+0LvRjNGI0LUsINGH0LXQvCDRgNCw0LfQvNC10YDRiyDQuNGB0YXQvtC00L3QvtC5INC60LDRgNGC0LjQvdC60LhcbiAgICAgICAgICogQHR5cGUge1RleHR1cmVGaWx0ZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm1hZ0ZpbHRlciA9IFRleHR1cmUuTGluZWFyRmlsdGVyO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQotC40L8g0YTQuNC70YzRgtGA0LAg0L/RgNC4INC+0YLQvtCx0YDQsNC20LXQvdC40Lgg0YLQtdC60YHRgtGD0YDRiywg0YDQsNC30LzQtdGA0Ysg0LrQvtGC0L7RgNC+0Lkg0LzQtdC90YzRiNC1LCDRh9C10Lwg0YDQsNC30LzQtdGA0Ysg0LjRgdGF0L7QtNC90L7QuSDQutCw0YDRgtC40L3QutC4XG4gICAgICAgICAqIEB0eXBlIHtUZXh0dXJlRmlsdGVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5taW5GaWx0ZXIgPSBUZXh0dXJlLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KfRgtC+INC00LXQu9Cw0YLRjCwg0LXRgdC70Lgg0YjQuNGA0LjQvdCwINC40YHRhdC+0LTQvdC+0Lkg0LrQsNGA0YLQuNC90LrQuCDQvdC1INGA0LDQstC90LAg0YHRgtC10L/QtdC90LggMi5cbiAgICAgICAgICogQHR5cGUge1RleHR1cmVDbGFtcH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMud3JhcFMgPSBUZXh0dXJlLkNsYW1wVG9FZGdlV3JhcHBpbmc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCn0YLQviDQtNC10LvQsNGC0YwsINC10YHQu9C4INCy0YvRgdC+0YLQsCDQuNGB0YXQvtC00L3QvtC5INC60LDRgNGC0LjQvdC60Lgg0L3QtSDRgNCw0LLQvdCwINGB0YLQtdC/0LXQvdC4IDIuXG4gICAgICAgICAqIEB0eXBlIHtUZXh0dXJlQ2xhbXB9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLndyYXBUID0gVGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQk9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0LvQuCBtaXBtYXBzLlxuICAgICAgICAgKiDQntC90Lgg0LfQvdCw0YfQuNGC0LXQu9GM0L3QviDQv9C+0LLRi9GI0LDRjtGCINC60LDRh9C10YHRgtCy0L4g0Lgg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtGMINC+0YLQvtCx0YDQsNC20LXQvdC40Y8uXG4gICAgICAgICAqIE1pcG1hcHMg0LzQvtCz0YPRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINGC0L7Qu9GM0LrQviwg0LXRgdC70Lgg0YDQsNC30LzQtdGA0Ysg0YLQtdC60YHRgtGD0YDRiyDRgNCw0LLQvdGLINGB0YLQtdC/0LXQvdC4IDIuXG4gICAgICAgICAqXG4gICAgICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5nZW5lcmF0ZU1pcG1hcHMgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiBXZWJHTCDQuCDQtNCw0L3QvdGL0LUg0YLQtdC60YHRgtGD0YDRiy5cbiAgICAgKiDQn9GA0Lgg0L/QtdGA0LLQvtC8INCy0YvQt9C+0LIg0L/RgNC+0LjRgdGF0L7QtNC40YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGFjdGl2YXRlINCd0YPQttC90L4g0LvQuCDQtNC10LvQsNGC0Ywg0YLQtdC60YHRgtGD0YDRgyDQsNC60YLQuNCy0L3QvtC5INCyINC60L7QvdGC0LXQutGB0YLQtSBXZWJHTFxuICAgICAqL1xuICAgIGVuYWJsZShnbCwgYWN0aXZhdGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLl90ZXh0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRoaXMuX3RleHR1cmUpO1xuXG4gICAgICAgIGlmIChhY3RpdmF0ZSkge1xuICAgICAgICAgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDRgtC10LrRgdGC0YPRgNGDINC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIHJlbW92ZShnbCkge1xuICAgICAgICBpZiAodGhpcy5fdGV4dHVyZSkge1xuICAgICAgICAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0aGlzLl90ZXh0dXJlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIF9wcmVwYXJlKGdsKSB7XG4gICAgICAgIHRoaXMuX3RleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7XG5cbiAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy5fdGV4dHVyZSk7XG4gICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19GTElQX1lfV0VCR0wsIHRydWUpO1xuICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgdGhpcy5zaXplWzBdLCB0aGlzLnNpemVbMV0sIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsXG4gICAgICAgICAgICAgICAgdGhpcy5fc3JjKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdGhpcy5fc3JjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy53cmFwUykpO1xuICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMud3JhcFQpKTtcblxuICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm1hZ0ZpbHRlcikpO1xuICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm1pbkZpbHRlcikpO1xuXG4gICAgICAgIGlmICh0aGlzLmdlbmVyYXRlTWlwbWFwcyAmJlxuICAgICAgICAgICAgdGhpcy5taW5GaWx0ZXIgIT09IFRleHR1cmUuTmVhcmVzdEZpbHRlciAmJlxuICAgICAgICAgICAgdGhpcy5taW5GaWx0ZXIgIT09IFRleHR1cmUuTGluZWFyRmlsdGVyXG4gICAgICAgICkge1xuICAgICAgICAgICAgZ2wuZ2VuZXJhdGVNaXBtYXAoZ2wuVEVYVFVSRV8yRCk7XG4gICAgICAgIH1cblxuICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCBudWxsKTtcbiAgICB9XG5cbiAgICBfdG9HbFBhcmFtKGdsLCBwYXJhbSkge1xuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuQ2xhbXBUb0VkZ2VXcmFwcGluZykgeyByZXR1cm4gZ2wuQ0xBTVBfVE9fRURHRTsgfVxuXG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5OZWFyZXN0RmlsdGVyKSB7IHJldHVybiBnbC5ORUFSRVNUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5OZWFyZXN0TWlwTWFwTmVhcmVzdEZpbHRlcikgeyByZXR1cm4gZ2wuTkVBUkVTVF9NSVBNQVBfTkVBUkVTVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlcikgeyByZXR1cm4gZ2wuTkVBUkVTVF9NSVBNQVBfTElORUFSOyB9XG5cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkxpbmVhckZpbHRlcikgeyByZXR1cm4gZ2wuTElORUFSOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5MaW5lYXJNaXBNYXBOZWFyZXN0RmlsdGVyKSB7IHJldHVybiBnbC5MSU5FQVJfTUlQTUFQX05FQVJFU1Q7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcikgeyByZXR1cm4gZ2wuTElORUFSX01JUE1BUF9MSU5FQVI7IH1cbiAgICB9XG59XG5cblRleHR1cmUuQ2xhbXBUb0VkZ2VXcmFwcGluZyA9IDg7XG5cblRleHR1cmUuTmVhcmVzdEZpbHRlciA9IDE7XG5UZXh0dXJlLk5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyID0gMjtcblRleHR1cmUuTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlciA9IDM7XG5UZXh0dXJlLkxpbmVhckZpbHRlciA9IDQ7XG5UZXh0dXJlLkxpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIgPSA1O1xuVGV4dHVyZS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXIgPSA2O1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0dXJlO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtUZXh0dXJlLk5lYXJlc3RGaWx0ZXIgfCBUZXh0dXJlLk5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyIHxcbiAqIFRleHR1cmUuTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlciB8IFRleHR1cmUuTGluZWFyRmlsdGVyIHxcbiAqIFRleHR1cmUuTGluZWFyTWlwTWFwTmVhcmVzdEZpbHRlciB8IFRleHR1cmUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyfSBUZXh0dXJlRmlsdGVyXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nfSBUZXh0dXJlQ2xhbXBcbiAqL1xuIl19

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc