';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind() {\n return $reflectApply(bind, $call, arguments);\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Chart, registerables } from '../dist/chart.esm';\nChart.register.apply(Chart, _toConsumableArray(registerables));\nexport default Chart;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as _color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as toPadding, C as each, D as _getMaximumSize, E as _getParentNode, F as readUsedSize, G as throttled, I as supportsEventListenerOptions, J as _isDomSupported, K as log10, L as _factorize, M as finiteOrDefault, N as callback, O as _addGrace, Q as toDegrees, R as _measureText, S as _int16Range, U as _alignPixel, V as clipArea, W as renderText, X as unclipArea, Y as toFont, Z as _toLeftRightCenter, $ as _alignStartEnd, a0 as overrides, a1 as merge, a2 as _capitalize, a3 as descriptors, a4 as isFunction, a5 as _attachContext, a6 as _createResolver, a7 as _descriptors, a8 as mergeIf, a9 as uid, aa as debounce, ab as retinaScale, ac as clearCanvas, ad as setsEqual, ae as _elementsEqual, af as getAngleFromPoint, ag as _readValueToProps, ah as _updateBezierControlPoints, ai as _computeSegments, aj as _boundSegments, ak as _steppedInterpolation, al as _bezierInterpolation, am as _pointInLine, an as _steppedLineTo, ao as _bezierCurveTo, ap as drawPoint, aq as addRoundedRectPath, ar as toTRBL, as as toTRBLCorners, at as _boundSegment, au as _normalizeAngle, av as getRtlAdapter, aw as overrideTextDirection, ax as _textX, ay as restoreTextDirection, az as noop, aA as distanceBetweenPoints, aB as _setMinAndMaxByKey, aC as niceNum, aD as almostWhole, aE as almostEquals, aF as _decimalPlaces, aG as _longestText, aH as _filterBetween, aI as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nvar Animator = /*#__PURE__*/function () {\n function Animator() {\n _classCallCheck(this, Animator);\n\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n _createClass(Animator, [{\n key: \"_notify\",\n value: function _notify(chart, anims, date, type) {\n var callbacks = anims.listeners[type];\n var numSteps = anims.duration;\n callbacks.forEach(function (fn) {\n return fn({\n chart: chart,\n initial: anims.initial,\n numSteps: numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n });\n });\n }\n }, {\n key: \"_refresh\",\n value: function _refresh() {\n var _this = this;\n\n if (this._request) {\n return;\n }\n\n this._running = true;\n this._request = requestAnimFrame.call(window, function () {\n _this._update();\n\n _this._request = null;\n\n if (_this._running) {\n _this._refresh();\n }\n });\n }\n }, {\n key: \"_update\",\n value: function _update() {\n var _this2 = this;\n\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n var remaining = 0;\n\n this._charts.forEach(function (anims, chart) {\n if (!anims.running || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n var draw = false;\n var item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n\n _this2._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n\n _this2._notify(chart, anims, date, 'complete');\n\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n this._lastDate = date;\n\n if (remaining === 0) {\n this._running = false;\n }\n }\n }, {\n key: \"_getAnims\",\n value: function _getAnims(chart) {\n var charts = this._charts;\n var anims = charts.get(chart);\n\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n\n return anims;\n }\n }, {\n key: \"listen\",\n value: function listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n }, {\n key: \"add\",\n value: function add(chart, items) {\n var _this$_getAnims$items;\n\n if (!items || !items.length) {\n return;\n }\n\n (_this$_getAnims$items = this._getAnims(chart).items).push.apply(_this$_getAnims$items, _toConsumableArray(items));\n }\n }, {\n key: \"has\",\n value: function has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n }, {\n key: \"start\",\n value: function start(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims) {\n return;\n }\n\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce(function (acc, cur) {\n return Math.max(acc, cur._duration);\n }, 0);\n\n this._refresh();\n }\n }, {\n key: \"running\",\n value: function running(chart) {\n if (!this._running) {\n return false;\n }\n\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"stop\",\n value: function stop(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n\n anims.items = [];\n\n this._notify(chart, anims, Date.now(), 'complete');\n }\n }, {\n key: \"remove\",\n value: function remove(chart) {\n return this._charts[\"delete\"](chart);\n }\n }]);\n\n return Animator;\n}();\n\nvar animator = new Animator();\nvar transparent = 'transparent';\nvar interpolators = {\n \"boolean\": function boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color: function color(from, to, factor) {\n var c0 = _color(from || transparent);\n\n var c1 = c0.valid && _color(to || transparent);\n\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number: function number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nvar Animation = /*#__PURE__*/function () {\n function Animation(cfg, target, prop, to) {\n _classCallCheck(this, Animation);\n\n var currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n var from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || _typeof(from)];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n\n _createClass(Animation, [{\n key: \"active\",\n value: function active() {\n return this._active;\n }\n }, {\n key: \"update\",\n value: function update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n\n var currentValue = this._target[this._prop];\n var elapsed = date - this._start;\n var remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n\n this._notify(false);\n }\n }\n }, {\n key: \"tick\",\n value: function tick(date) {\n var elapsed = date - this._start;\n var duration = this._duration;\n var prop = this._prop;\n var from = this._from;\n var loop = this._loop;\n var to = this._to;\n var factor;\n this._active = from !== to && (loop || elapsed < duration);\n\n if (!this._active) {\n this._target[prop] = to;\n\n this._notify(true);\n\n return;\n }\n\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n }, {\n key: \"wait\",\n value: function wait() {\n var promises = this._promises || (this._promises = []);\n return new Promise(function (res, rej) {\n promises.push({\n res: res,\n rej: rej\n });\n });\n }\n }, {\n key: \"_notify\",\n value: function _notify(resolved) {\n var method = resolved ? 'res' : 'rej';\n var promises = this._promises || [];\n\n for (var i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n }]);\n\n return Animation;\n}();\n\nvar numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nvar colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n});\nvar animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: function _scriptable(name) {\n return name !== 'onProgress' && name !== 'onComplete' && name !== 'fn';\n }\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n});\ndefaults.describe('animations', {\n _fallback: 'animation'\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: function fn(v) {\n return v | 0;\n }\n }\n }\n }\n});\n\nvar Animations = /*#__PURE__*/function () {\n function Animations(chart, config) {\n _classCallCheck(this, Animations);\n\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n _createClass(Animations, [{\n key: \"configure\",\n value: function configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n var animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(function (key) {\n var cfg = config[key];\n\n if (!isObject(cfg)) {\n return;\n }\n\n var resolved = {};\n\n var _iterator = _createForOfIteratorHelper(animationOptions),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var option = _step.value;\n resolved[option] = cfg[option];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach(function (prop) {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n }, {\n key: \"_animateOptions\",\n value: function _animateOptions(target, values) {\n var newOptions = values.options;\n var options = resolveTargetOptions(target, newOptions);\n\n if (!options) {\n return [];\n }\n\n var animations = this._createAnimations(options, newOptions);\n\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(function () {\n target.options = newOptions;\n }, function () {});\n }\n\n return animations;\n }\n }, {\n key: \"_createAnimations\",\n value: function _createAnimations(target, values) {\n var animatedProps = this._properties;\n var animations = [];\n var running = target.$animations || (target.$animations = {});\n var props = Object.keys(values);\n var date = Date.now();\n var i;\n\n for (i = props.length - 1; i >= 0; --i) {\n var prop = props[i];\n\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push.apply(animations, _toConsumableArray(this._animateOptions(target, values)));\n continue;\n }\n\n var value = values[prop];\n var animation = running[prop];\n var cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n\n return animations;\n }\n }, {\n key: \"update\",\n value: function update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n\n var animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n }]);\n\n return Animations;\n}();\n\nfunction awaitAll(animations, properties) {\n var running = [];\n var keys = Object.keys(properties);\n\n for (var i = 0; i < keys.length; i++) {\n var anim = animations[keys[i]];\n\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n\n var options = target.options;\n\n if (!options) {\n target.options = newOptions;\n return;\n }\n\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n var opts = scale && scale.options || {};\n var reverse = opts.reverse;\n var min = opts.min === undefined ? allowedOverflow : 0;\n var max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n\n var x = scaleClip(xScale, allowedOverflow);\n var y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n var t, r, b, l;\n\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n var keys = [];\n\n var metasets = chart._getSortedDatasetMetas(filterVisible);\n\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n\n return keys;\n}\n\nfunction _applyStack(stack, value, dsIndex) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keys = stack.keys;\n var singleMode = options.mode === 'single';\n var i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n\n break;\n }\n\n otherValue = stack.values[datasetIndex];\n\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n\n return value;\n}\n\nfunction convertObjectDataToArray(data) {\n var keys = Object.keys(data);\n var adata = new Array(keys.length);\n var i, ilen, key;\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n var stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return \"\".concat(indexScale.id, \".\").concat(valueScale.id, \".\").concat(meta.stack || meta.type);\n}\n\nfunction getUserBounds(scale) {\n var _scale$getUserBounds = scale.getUserBounds(),\n min = _scale$getUserBounds.min,\n max = _scale$getUserBounds.max,\n minDefined = _scale$getUserBounds.minDefined,\n maxDefined = _scale$getUserBounds.maxDefined;\n\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n var subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n var _iterator2 = _createForOfIteratorHelper(vScale.getMatchingVisibleMetas(type).reverse()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var meta = _step2.value;\n var value = stack[meta.index];\n\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n var chart = controller.chart,\n meta = controller._cachedMeta;\n var stacks = chart._stacks || (chart._stacks = {});\n var iScale = meta.iScale,\n vScale = meta.vScale,\n datasetIndex = meta.index;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var key = getStackKey(iScale, vScale, meta);\n var ilen = parsed.length;\n var stack;\n\n for (var i = 0; i < ilen; ++i) {\n var item = parsed[i];\n var index = item[iAxis],\n value = item[vAxis];\n var itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\n\nfunction getFirstScaleId(chart, axis) {\n var scales = chart.scales;\n return Object.keys(scales).filter(function (key) {\n return scales[key].axis === axis;\n }).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index: index,\n mode: 'default',\n type: 'dataset'\n });\n}\n\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element: element,\n index: index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n var datasetIndex = meta.controller.index;\n var axis = meta.vScale && meta.vScale.axis;\n\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n\n var _iterator3 = _createForOfIteratorHelper(items),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var parsed = _step3.value;\n var stacks = parsed._stacks;\n\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n\n delete stacks[axis][datasetIndex];\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n}\n\nvar isDirectUpdateMode = function isDirectUpdateMode(mode) {\n return mode === 'reset' || mode === 'none';\n};\n\nvar cloneIfNotShared = function cloneIfNotShared(cached, shared) {\n return shared ? cached : Object.assign({}, cached);\n};\n\nvar createStack = function createStack(canStack, meta, chart) {\n return canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\n};\n\nvar DatasetController = /*#__PURE__*/function () {\n function DatasetController(chart, datasetIndex) {\n _classCallCheck(this, DatasetController);\n\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n\n _createClass(DatasetController, [{\n key: \"initialize\",\n value: function initialize() {\n var meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n }, {\n key: \"updateIndex\",\n value: function updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n\n this.index = datasetIndex;\n }\n }, {\n key: \"linkScales\",\n value: function linkScales() {\n var chart = this.chart;\n var meta = this._cachedMeta;\n var dataset = this.getDataset();\n\n var chooseId = function chooseId(axis, x, y, r) {\n return axis === 'x' ? x : axis === 'r' ? r : y;\n };\n\n var xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n var yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n var rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n var indexAxis = meta.indexAxis;\n var iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n var vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n }, {\n key: \"getDataset\",\n value: function getDataset() {\n return this.chart.data.datasets[this.index];\n }\n }, {\n key: \"getMeta\",\n value: function getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n }, {\n key: \"getScaleForId\",\n value: function getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n }, {\n key: \"_getOtherScale\",\n value: function _getOtherScale(scale) {\n var meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._update('reset');\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n var meta = this._cachedMeta;\n\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n }, {\n key: \"_dataCheck\",\n value: function _dataCheck() {\n var dataset = this.getDataset();\n var data = dataset.data || (dataset.data = []);\n var _data = this._data;\n\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n var meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n\n this._syncList = [];\n this._data = data;\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var meta = this._cachedMeta;\n\n this._dataCheck();\n\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n }, {\n key: \"buildOrUpdateElements\",\n value: function buildOrUpdateElements(resetNewElements) {\n var meta = this._cachedMeta;\n var dataset = this.getDataset();\n var stackChanged = false;\n\n this._dataCheck();\n\n var oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n this._resyncElements(resetNewElements);\n\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var config = this.chart.config;\n var scopeKeys = config.datasetScopeKeys(this._type);\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n }\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var meta = this._cachedMeta,\n data = this._data;\n var iScale = meta.iScale,\n _stacked = meta._stacked;\n var iAxis = iScale.axis;\n var sorted = start === 0 && count === data.length ? true : meta._sorted;\n var prev = start > 0 && meta._parsed[start - 1];\n var i, cur, parsed;\n\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n\n var isNotInOrderComparedToPrev = function isNotInOrderComparedToPrev() {\n return cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n };\n\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n\n prev = cur;\n }\n }\n\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n }, {\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = new Array(count);\n var i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n var _parsed$i;\n\n index = i + start;\n parsed[i] = (_parsed$i = {}, _defineProperty(_parsed$i, iAxis, singleScale || iScale.parse(labels[index], index)), _defineProperty(_parsed$i, vAxis, vScale.parse(data[index], index)), _parsed$i);\n }\n\n return parsed;\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n\n return parsed;\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var _this$_parsing = this._parsing,\n _this$_parsing$xAxisK = _this$_parsing.xAxisKey,\n xAxisKey = _this$_parsing$xAxisK === void 0 ? 'x' : _this$_parsing$xAxisK,\n _this$_parsing$yAxisK = _this$_parsing.yAxisKey,\n yAxisKey = _this$_parsing$yAxisK === void 0 ? 'y' : _this$_parsing$yAxisK;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n\n return parsed;\n }\n }, {\n key: \"getParsed\",\n value: function getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n }, {\n key: \"getDataElement\",\n value: function getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n }, {\n key: \"applyStack\",\n value: function applyStack(scale, parsed, mode) {\n var chart = this.chart;\n var meta = this._cachedMeta;\n var value = parsed[scale.axis];\n var stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return _applyStack(stack, value, meta.index, {\n mode: mode\n });\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n var parsedValue = parsed[scale.axis];\n var value = parsedValue === null ? NaN : parsedValue;\n var values = stack && parsed._stacks[scale.axis];\n\n if (stack && values) {\n stack.values = values;\n value = _applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax(scale, canStack) {\n var meta = this._cachedMeta;\n var _parsed = meta._parsed;\n var sorted = meta._sorted && scale === meta.iScale;\n var ilen = _parsed.length;\n\n var otherScale = this._getOtherScale(scale);\n\n var stack = createStack(canStack, meta, this.chart);\n var range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n\n var _getUserBounds = getUserBounds(otherScale),\n otherMin = _getUserBounds.min,\n otherMax = _getUserBounds.max;\n\n var i, parsed;\n\n function _skip() {\n parsed = _parsed[i];\n var otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n\n this.updateRangeFromParsed(range, scale, parsed, stack);\n\n if (sorted) {\n break;\n }\n }\n\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n\n return range;\n }\n }, {\n key: \"getAllParsedValues\",\n value: function getAllParsedValues(scale) {\n var parsed = this._cachedMeta._parsed;\n var values = [];\n var i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n\n return values;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return false;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n }, {\n key: \"_update\",\n value: function _update(mode) {\n var meta = this._cachedMeta;\n this.configure();\n this._cachedDataOpts = {};\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n }, {\n key: \"update\",\n value: function update(mode) {}\n }, {\n key: \"draw\",\n value: function draw() {\n var ctx = this._ctx;\n var chart = this.chart;\n var meta = this._cachedMeta;\n var elements = meta.data || [];\n var area = chart.chartArea;\n var active = [];\n var start = this._drawStart || 0;\n var count = this._drawCount || elements.length - start;\n var i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n var element = elements[i];\n\n if (element.hidden) {\n continue;\n }\n\n if (element.active) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n }, {\n key: \"getStyle\",\n value: function getStyle(index, active) {\n var mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n }, {\n key: \"getContext\",\n value: function getContext(index, active, mode) {\n var dataset = this.getDataset();\n var context;\n\n if (index >= 0 && index < this._cachedMeta.data.length) {\n var element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n }, {\n key: \"resolveDatasetElementOptions\",\n value: function resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n }, {\n key: \"_resolveElementOptions\",\n value: function _resolveElementOptions(elementType) {\n var _this3 = this;\n\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var index = arguments.length > 2 ? arguments[2] : undefined;\n var active = mode === 'active';\n var cache = this._cachedDataOpts;\n var cacheKey = elementType + '-' + mode;\n var cached = cache[cacheKey];\n var sharing = this.enableOptionSharing && defined(index);\n\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n\n var config = this.chart.config;\n var scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n var prefixes = active ? [\"\".concat(elementType, \"Hover\"), 'hover', elementType, ''] : [elementType, ''];\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n var names = Object.keys(defaults.elements[elementType]);\n\n var context = function context() {\n return _this3.getContext(index, active);\n };\n\n var values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations(index, transition, active) {\n var chart = this.chart;\n var cache = this._cachedDataOpts;\n var cacheKey = \"animation-\".concat(transition);\n var cached = cache[cacheKey];\n\n if (cached) {\n return cached;\n }\n\n var options;\n\n if (chart.options.animation !== false) {\n var config = this.chart.config;\n var scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n\n var animations = new Animations(chart, options && options.animations);\n\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getSharedOptions\",\n value: function getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n }, {\n key: \"includeOptions\",\n value: function includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n }, {\n key: \"updateElement\",\n value: function updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n }, {\n key: \"updateSharedOptions\",\n value: function updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n }, {\n key: \"_setStyle\",\n value: function _setStyle(element, index, mode, active) {\n element.active = active;\n var options = this.getStyle(index, active);\n\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n }, {\n key: \"removeHoverStyle\",\n value: function removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n }, {\n key: \"setHoverStyle\",\n value: function setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n }, {\n key: \"_removeDatasetHoverStyle\",\n value: function _removeDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n }, {\n key: \"_setDatasetHoverStyle\",\n value: function _setDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n }, {\n key: \"_resyncElements\",\n value: function _resyncElements(resetNewElements) {\n var data = this._data;\n var elements = this._cachedMeta.data;\n\n var _iterator4 = _createForOfIteratorHelper(this._syncList),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _ref3 = _step4.value;\n\n var _ref2 = _slicedToArray(_ref3, 3);\n\n var method = _ref2[0];\n var arg1 = _ref2[1];\n var arg2 = _ref2[2];\n this[method](arg1, arg2);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n this._syncList = [];\n var numMeta = elements.length;\n var numData = data.length;\n var count = Math.min(numData, numMeta);\n\n if (count) {\n this.parse(0, count);\n }\n\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n }, {\n key: \"_insertElements\",\n value: function _insertElements(start, count) {\n var resetNewElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var meta = this._cachedMeta;\n var data = meta.data;\n var end = start + count;\n var i;\n\n var move = function move(arr) {\n arr.length += count;\n\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n\n if (this._parsing) {\n move(meta._parsed);\n }\n\n this.parse(start, count);\n\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(element, start, count, mode) {}\n }, {\n key: \"_removeElements\",\n value: function _removeElements(start, count) {\n var meta = this._cachedMeta;\n\n if (this._parsing) {\n var removed = meta._parsed.splice(start, count);\n\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n\n meta.data.splice(start, count);\n }\n }, {\n key: \"_sync\",\n value: function _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n var _args2 = _slicedToArray(args, 3),\n method = _args2[0],\n arg1 = _args2[1],\n arg2 = _args2[2];\n\n this[method](arg1, arg2);\n }\n }\n }, {\n key: \"_onDataPush\",\n value: function _onDataPush() {\n var count = arguments.length;\n\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n }, {\n key: \"_onDataPop\",\n value: function _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n }, {\n key: \"_onDataShift\",\n value: function _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n }, {\n key: \"_onDataSplice\",\n value: function _onDataSplice(start, count) {\n this._sync(['_removeElements', start, count]);\n\n this._sync(['_insertElements', start, arguments.length - 2]);\n }\n }, {\n key: \"_onDataUnshift\",\n value: function _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n }]);\n\n return DatasetController;\n}();\n\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n var visibleMetas = scale.getMatchingVisibleMetas(type);\n var values = [];\n\n for (var i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n\n scale._cache.$bar = _arrayUnique(values.sort(function (a, b) {\n return a - b;\n }));\n }\n\n return scale._cache.$bar;\n}\n\nfunction computeMinSampleSize(meta) {\n var scale = meta.iScale;\n var values = getAllScaleValues(scale, meta.type);\n var min = scale._length;\n var i, ilen, curr, prev;\n\n var updateMinAndPrev = function updateMinAndPrev() {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n var thickness = options.barThickness;\n var size, ratio;\n\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n\n return {\n chunk: size / stackCount,\n ratio: ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n var pixels = ruler.pixels;\n var curr = pixels[index];\n var prev = index > 0 ? pixels[index - 1] : null;\n var next = index < pixels.length - 1 ? pixels[index + 1] : null;\n var percent = options.categoryPercentage;\n\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n next = curr + curr - prev;\n }\n\n var start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n var size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start: start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n var startValue = vScale.parse(entry[0], i);\n var endValue = vScale.parse(entry[1], i);\n var min = Math.min(startValue, endValue);\n var max = Math.max(startValue, endValue);\n var barStart = min;\n var barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart: barStart,\n barEnd: barEnd,\n start: startValue,\n end: endValue,\n min: min,\n max: max\n };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = [];\n var i, ilen, item, entry;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n var reverse, start, end, top, bottom;\n\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n\n return {\n start: start,\n end: end,\n reverse: reverse,\n top: top,\n bottom: bottom\n };\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n var edge = options.borderSkipped;\n var res = {};\n\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n\n var _borderProps = borderProps(properties),\n start = _borderProps.start,\n end = _borderProps.end,\n reverse = _borderProps.reverse,\n top = _borderProps.top,\n bottom = _borderProps.bottom;\n\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, _ref4, ratio) {\n var inflateAmount = _ref4.inflateAmount;\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\n\nvar BarController = /*#__PURE__*/function (_DatasetController) {\n _inherits(BarController, _DatasetController);\n\n var _super = _createSuper(BarController);\n\n function BarController() {\n _classCallCheck(this, BarController);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(BarController, [{\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var _this$_parsing2 = this._parsing,\n _this$_parsing2$xAxis = _this$_parsing2.xAxisKey,\n xAxisKey = _this$_parsing2$xAxis === void 0 ? 'x' : _this$_parsing2$xAxis,\n _this$_parsing2$yAxis = _this$_parsing2.yAxisKey,\n yAxisKey = _this$_parsing2$yAxis === void 0 ? 'y' : _this$_parsing2$yAxis;\n var iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n var vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n var parsed = [];\n var i, ilen, item, obj;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n\n return parsed;\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n _get(_getPrototypeOf(BarController.prototype), \"updateRangeFromParsed\", this).call(this, range, scale, parsed, stack);\n\n var custom = parsed._custom;\n\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var parsed = this.getParsed(index);\n var custom = parsed._custom;\n var value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value: value\n };\n }\n }, {\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BarController.prototype), \"initialize\", this).call(this);\n\n var meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(bars, start, count, mode) {\n var reset = mode === 'reset';\n var index = this.index,\n vScale = this._cachedMeta.vScale;\n var base = vScale.getBasePixel();\n var horizontal = vScale.isHorizontal();\n\n var ruler = this._getRuler();\n\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n\n for (var i = start; i < start + count; i++) {\n var parsed = this.getParsed(i);\n var vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base: base,\n head: base\n } : this._calculateBarValuePixels(i);\n\n var ipixels = this._calculateBarIndexPixels(i, ruler);\n\n var stack = (parsed._stacks || {})[vScale.axis];\n var properties = {\n horizontal: horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n\n var options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n }, {\n key: \"_getStacks\",\n value: function _getStacks(last, dataIndex) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var metasets = iScale.getMatchingVisibleMetas(this._type);\n var stacked = iScale.options.stacked;\n var ilen = metasets.length;\n var stacks = [];\n var i, item;\n\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n\n if (!item.controller.options.grouped) {\n continue;\n }\n\n if (typeof dataIndex !== 'undefined') {\n var val = item.controller.getParsed(dataIndex)[item.controller._cachedMeta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n\n if (stacked === false || stacks.indexOf(item.stack) === -1 || stacked === undefined && item.stack === undefined) {\n stacks.push(item.stack);\n }\n\n if (item.index === last) {\n break;\n }\n }\n\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n }, {\n key: \"_getStackCount\",\n value: function _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n }, {\n key: \"_getStackIndex\",\n value: function _getStackIndex(datasetIndex, name, dataIndex) {\n var stacks = this._getStacks(datasetIndex, dataIndex);\n\n var index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n }, {\n key: \"_getRuler\",\n value: function _getRuler() {\n var opts = this.options;\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var pixels = [];\n var i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n\n var barThickness = opts.barThickness;\n var min = barThickness || computeMinSampleSize(meta);\n return {\n min: min,\n pixels: pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n }, {\n key: \"_calculateBarValuePixels\",\n value: function _calculateBarValuePixels(index) {\n var _this$_cachedMeta = this._cachedMeta,\n vScale = _this$_cachedMeta.vScale,\n _stacked = _this$_cachedMeta._stacked,\n _this$options = this.options,\n baseValue = _this$options.base,\n minBarLength = _this$options.minBarLength;\n var actualBase = baseValue || 0;\n var parsed = this.getParsed(index);\n var custom = parsed._custom;\n var floating = isFloatBar(custom);\n var value = parsed[vScale.axis];\n var start = 0;\n var length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n var head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n\n start += value;\n }\n\n var startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n var base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n\n size = head - base;\n\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n\n if (value === actualBase) {\n base -= size / 2;\n }\n\n head = base + size;\n }\n\n if (base === vScale.getPixelForValue(actualBase)) {\n var halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2\n };\n }\n }, {\n key: \"_calculateBarIndexPixels\",\n value: function _calculateBarIndexPixels(index, ruler) {\n var scale = ruler.scale;\n var options = this.options;\n var skipNull = options.skipNull;\n var maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n var center, size;\n\n if (ruler.grouped) {\n var stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n var stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center: center,\n size: size\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var meta = this._cachedMeta;\n var vScale = meta.vScale;\n var rects = meta.data;\n var ilen = rects.length;\n var i = 0;\n\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n }]);\n\n return BarController;\n}(DatasetController);\n\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n};\n\nvar BubbleController = /*#__PURE__*/function (_DatasetController2) {\n _inherits(BubbleController, _DatasetController2);\n\n var _super2 = _createSuper(BubbleController);\n\n function BubbleController() {\n _classCallCheck(this, BubbleController);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(BubbleController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BubbleController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parsePrimitiveData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n\n return parsed;\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parseArrayData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n var item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n\n return parsed;\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parseObjectData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n var item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n\n return parsed;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var data = this._cachedMeta.data;\n var max = 0;\n\n for (var i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n\n return max > 0 && max;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = this.getParsed(index);\n var x = xScale.getLabelForValue(parsed.x);\n var y = yScale.getLabelForValue(parsed.y);\n var r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var reset = mode === 'reset';\n var _this$_cachedMeta2 = this._cachedMeta,\n iScale = _this$_cachedMeta2.iScale,\n vScale = _this$_cachedMeta2.vScale;\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var parsed = !reset && this.getParsed(i);\n var properties = {};\n var iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n var vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n this.updateElement(point, i, properties, mode);\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n var parsed = this.getParsed(index);\n\n var values = _get(_getPrototypeOf(BubbleController.prototype), \"resolveDataElementOptions\", this).call(this, index, mode);\n\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n\n var radius = values.radius;\n\n if (mode !== 'active') {\n values.radius = 0;\n }\n\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n }]);\n\n return BubbleController;\n}(DatasetController);\n\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n var ratioX = 1;\n var ratioY = 1;\n var offsetX = 0;\n var offsetY = 0;\n\n if (circumference < TAU) {\n var startAngle = rotation;\n var endAngle = startAngle + circumference;\n var startX = Math.cos(startAngle);\n var startY = Math.sin(startAngle);\n var endX = Math.cos(endAngle);\n var endY = Math.sin(endAngle);\n\n var calcMax = function calcMax(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n };\n\n var calcMin = function calcMin(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n };\n\n var maxX = calcMax(0, startX, endX);\n var maxY = calcMax(HALF_PI, startY, endY);\n var minX = calcMin(PI, startX, endX);\n var minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n\n return {\n ratioX: ratioX,\n ratioY: ratioY,\n offsetX: offsetX,\n offsetY: offsetY\n };\n}\n\nvar DoughnutController = /*#__PURE__*/function (_DatasetController3) {\n _inherits(DoughnutController, _DatasetController3);\n\n var _super3 = _createSuper(DoughnutController);\n\n function DoughnutController(chart, datasetIndex) {\n var _this4;\n\n _classCallCheck(this, DoughnutController);\n\n _this4 = _super3.call(this, chart, datasetIndex);\n _this4.enableOptionSharing = true;\n _this4.innerRadius = undefined;\n _this4.outerRadius = undefined;\n _this4.offsetX = undefined;\n _this4.offsetY = undefined;\n return _this4;\n }\n\n _createClass(DoughnutController, [{\n key: \"linkScales\",\n value: function linkScales() {}\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var data = this.getDataset().data;\n var meta = this._cachedMeta;\n\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n var getter = function getter(i) {\n return +data[i];\n };\n\n if (isObject(data[start])) {\n var _this$_parsing$key = this._parsing.key,\n key = _this$_parsing$key === void 0 ? 'value' : _this$_parsing$key;\n\n getter = function getter(i) {\n return +resolveObjectKey(data[i], key);\n };\n }\n\n var i, ilen;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n }, {\n key: \"_getRotation\",\n value: function _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n }, {\n key: \"_getCircumference\",\n value: function _getCircumference() {\n return toRadians(this.options.circumference);\n }\n }, {\n key: \"_getRotationExtents\",\n value: function _getRotationExtents() {\n var min = TAU;\n var max = -TAU;\n\n for (var i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n var controller = this.chart.getDatasetMeta(i).controller;\n\n var rotation = controller._getRotation();\n\n var circumference = controller._getCircumference();\n\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n\n return {\n rotation: min,\n circumference: max - min\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var meta = this._cachedMeta;\n var arcs = meta.data;\n var spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n var maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n var cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n\n var chartWeight = this._getRingWeight(this.index);\n\n var _this$_getRotationExt = this._getRotationExtents(),\n circumference = _this$_getRotationExt.circumference,\n rotation = _this$_getRotationExt.rotation;\n\n var _getRatioAndOffset = getRatioAndOffset(rotation, circumference, cutout),\n ratioX = _getRatioAndOffset.ratioX,\n ratioY = _getRatioAndOffset.ratioY,\n offsetX = _getRatioAndOffset.offsetX,\n offsetY = _getRatioAndOffset.offsetY;\n\n var maxWidth = (chartArea.width - spacing) / ratioX;\n var maxHeight = (chartArea.height - spacing) / ratioY;\n var maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n var outerRadius = toDimension(this.options.radius, maxRadius);\n var innerRadius = Math.max(outerRadius * cutout, 0);\n\n var radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"_circumference\",\n value: function _circumference(i, reset) {\n var opts = this.options;\n var meta = this._cachedMeta;\n\n var circumference = this._getCircumference();\n\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var reset = mode === 'reset';\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var centerX = (chartArea.left + chartArea.right) / 2;\n var centerY = (chartArea.top + chartArea.bottom) / 2;\n var animateScale = reset && animationOpts.animateScale;\n var innerRadius = animateScale ? 0 : this.innerRadius;\n var outerRadius = animateScale ? 0 : this.outerRadius;\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n\n var startAngle = this._getRotation();\n\n var i;\n\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n var circumference = this._circumference(i, reset);\n\n var arc = arcs[i];\n var properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle: startAngle,\n endAngle: startAngle + circumference,\n circumference: circumference,\n outerRadius: outerRadius,\n innerRadius: innerRadius\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"calculateTotal\",\n value: function calculateTotal() {\n var meta = this._cachedMeta;\n var metaData = meta.data;\n var total = 0;\n var i;\n\n for (i = 0; i < metaData.length; i++) {\n var value = meta._parsed[i];\n\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n\n return total;\n }\n }, {\n key: \"calculateCircumference\",\n value: function calculateCircumference(value) {\n var total = this._cachedMeta.total;\n\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var chart = this.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"getMaxBorderWidth\",\n value: function getMaxBorderWidth(arcs) {\n var max = 0;\n var chart = this.chart;\n var i, ilen, meta, controller, options;\n\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n\n if (controller !== this) {\n controller.configure();\n }\n\n break;\n }\n }\n }\n\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n\n return max;\n }\n }, {\n key: \"getMaxOffset\",\n value: function getMaxOffset(arcs) {\n var max = 0;\n\n for (var i = 0, ilen = arcs.length; i < ilen; ++i) {\n var options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n\n return max;\n }\n }, {\n key: \"_getRingWeightOffset\",\n value: function _getRingWeightOffset(datasetIndex) {\n var ringWeightOffset = 0;\n\n for (var i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n }\n }, {\n key: \"_getRingWeight\",\n value: function _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n }, {\n key: \"_getVisibleDatasetWeightTotal\",\n value: function _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n }]);\n\n return DoughnutController;\n}(DatasetController);\n\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n};\nDoughnutController.descriptors = {\n _scriptable: function _scriptable(name) {\n return name !== 'spacing';\n },\n _indexable: function _indexable(name) {\n return name !== 'spacing';\n }\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(tooltipItem) {\n var dataLabel = tooltipItem.label;\n var value = ': ' + tooltipItem.formattedValue;\n\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return dataLabel;\n }\n }\n }\n }\n};\n\nvar LineController = /*#__PURE__*/function (_DatasetController4) {\n _inherits(LineController, _DatasetController4);\n\n var _super4 = _createSuper(LineController);\n\n function LineController() {\n _classCallCheck(this, LineController);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(LineController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(LineController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n var line = meta.dataset,\n _meta$data = meta.data,\n points = _meta$data === void 0 ? [] : _meta$data,\n _dataset = meta._dataset;\n var animationsDisabled = this.chart._animationsDisabled;\n\n var _getStartAndCountOfVi = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi.start,\n count = _getStartAndCountOfVi.count;\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n var options = this.resolveDatasetElementOptions(mode);\n\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options: options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var reset = mode === 'reset';\n var _this$_cachedMeta3 = this._cachedMeta,\n iScale = _this$_cachedMeta3.iScale,\n vScale = _this$_cachedMeta3.vScale,\n _stacked = _this$_cachedMeta3._stacked,\n _dataset = _this$_cachedMeta3._dataset;\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var _this$options2 = this.options,\n spanGaps = _this$options2.spanGaps,\n segment = _this$options2.segment;\n var maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n var directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n var prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (var i = start; i < start + count; ++i) {\n var point = points[i];\n var parsed = this.getParsed(i);\n var properties = directUpdate ? point : {};\n var nullData = isNullOrUndef(parsed[vAxis]);\n var iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n var vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && parsed[iAxis] - prevParsed[iAxis] > maxGapLength;\n\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var meta = this._cachedMeta;\n var dataset = meta.dataset;\n var border = dataset.options && dataset.options.borderWidth || 0;\n var data = meta.data || [];\n\n if (!data.length) {\n return border;\n }\n\n var firstPoint = data[0].size(this.resolveDataElementOptions(0));\n var lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n\n _get(_getPrototypeOf(LineController.prototype), \"draw\", this).call(this);\n }\n }]);\n\n return LineController;\n}(DatasetController);\n\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n};\n\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n var pointCount = points.length;\n var start = 0;\n var count = pointCount;\n\n if (meta._sorted) {\n var iScale = meta.iScale,\n _parsed = meta._parsed;\n var axis = iScale.axis;\n\n var _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n\n if (minDefined) {\n start = _limitValue(Math.min(_lookupByKey(_parsed, iScale.axis, min).lo, animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(Math.max(_lookupByKey(_parsed, iScale.axis, max).hi + 1, animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nfunction scaleRangesChanged(meta) {\n var xScale = meta.xScale,\n yScale = meta.yScale,\n _scaleRanges = meta._scaleRanges;\n var newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n\n var changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nvar PolarAreaController = /*#__PURE__*/function (_DatasetController5) {\n _inherits(PolarAreaController, _DatasetController5);\n\n var _super5 = _createSuper(PolarAreaController);\n\n function PolarAreaController(chart, datasetIndex) {\n var _this5;\n\n _classCallCheck(this, PolarAreaController);\n\n _this5 = _super5.call(this, chart, datasetIndex);\n _this5.innerRadius = undefined;\n _this5.outerRadius = undefined;\n return _this5;\n }\n\n _createClass(PolarAreaController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var chart = this.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var arcs = this._cachedMeta.data;\n\n this._updateRadius();\n\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"_updateRadius\",\n value: function _updateRadius() {\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n var outerRadius = Math.max(minSize / 2, 0);\n var innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n var radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var reset = mode === 'reset';\n var chart = this.chart;\n var dataset = this.getDataset();\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = this._cachedMeta.rScale;\n var centerX = scale.xCenter;\n var centerY = scale.yCenter;\n var datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n var angle = datasetStartAngle;\n var i;\n var defaultAngle = 360 / this.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n\n for (i = start; i < start + count; i++) {\n var arc = arcs[i];\n var startAngle = angle;\n\n var endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n\n var outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n\n var properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n }, {\n key: \"countVisibleElements\",\n value: function countVisibleElements() {\n var _this6 = this;\n\n var dataset = this.getDataset();\n var meta = this._cachedMeta;\n var count = 0;\n meta.data.forEach(function (element, index) {\n if (!isNaN(dataset.data[index]) && _this6.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n }, {\n key: \"_computeAngle\",\n value: function _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n }]);\n\n return PolarAreaController;\n}(DatasetController);\n\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n }\n },\n indexAxis: 'r',\n startAngle: 0\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nvar PieController = /*#__PURE__*/function (_DoughnutController) {\n _inherits(PieController, _DoughnutController);\n\n var _super6 = _createSuper(PieController);\n\n function PieController() {\n _classCallCheck(this, PieController);\n\n return _super6.apply(this, arguments);\n }\n\n return PieController;\n}(DoughnutController);\n\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nvar RadarController = /*#__PURE__*/function (_DatasetController6) {\n _inherits(RadarController, _DatasetController6);\n\n var _super7 = _createSuper(RadarController);\n\n function RadarController() {\n _classCallCheck(this, RadarController);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(RadarController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var vScale = this._cachedMeta.vScale;\n var parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n var line = meta.dataset;\n var points = meta.data || [];\n var labels = meta.iScale.getLabels();\n line.points = points;\n\n if (mode !== 'resize') {\n var options = this.resolveDatasetElementOptions(mode);\n\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n var properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options: options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n\n this.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var dataset = this.getDataset();\n var scale = this._cachedMeta.rScale;\n var reset = mode === 'reset';\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n var pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n var x = reset ? scale.xCenter : pointPosition.x;\n var y = reset ? scale.yCenter : pointPosition.y;\n var properties = {\n x: x,\n y: y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options: options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n }]);\n\n return RadarController;\n}(DatasetController);\n\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n};\n\nvar ScatterController = /*#__PURE__*/function (_LineController) {\n _inherits(ScatterController, _LineController);\n\n var _super8 = _createSuper(ScatterController);\n\n function ScatterController() {\n _classCallCheck(this, ScatterController);\n\n return _super8.apply(this, arguments);\n }\n\n return ScatterController;\n}(LineController);\n\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\nvar controllers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BarController: BarController,\n BubbleController: BubbleController,\n DoughnutController: DoughnutController,\n LineController: LineController,\n PolarAreaController: PolarAreaController,\n PieController: PieController,\n RadarController: RadarController,\n ScatterController: ScatterController\n});\n\nfunction _abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\nvar DateAdapter = /*#__PURE__*/function () {\n function DateAdapter(options) {\n _classCallCheck(this, DateAdapter);\n\n this.options = options || {};\n }\n\n _createClass(DateAdapter, [{\n key: \"formats\",\n value: function formats() {\n return _abstract();\n }\n }, {\n key: \"parse\",\n value: function parse(value, format) {\n return _abstract();\n }\n }, {\n key: \"format\",\n value: function format(timestamp, _format) {\n return _abstract();\n }\n }, {\n key: \"add\",\n value: function add(timestamp, amount, unit) {\n return _abstract();\n }\n }, {\n key: \"diff\",\n value: function diff(a, b, unit) {\n return _abstract();\n }\n }, {\n key: \"startOf\",\n value: function startOf(timestamp, unit, weekday) {\n return _abstract();\n }\n }, {\n key: \"endOf\",\n value: function endOf(timestamp, unit) {\n return _abstract();\n }\n }]);\n\n return DateAdapter;\n}();\n\nDateAdapter.override = function (members) {\n Object.assign(DateAdapter.prototype, members);\n};\n\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n\n return getRelativePosition$1(e, chart);\n}\n\nfunction evaluateAllVisibleItems(chart, handler) {\n var metasets = chart.getSortedVisibleDatasetMetas();\n var index, data, element;\n\n for (var i = 0, ilen = metasets.length; i < ilen; ++i) {\n var _metasets$i = metasets[i];\n index = _metasets$i.index;\n data = _metasets$i.data;\n\n for (var j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\nfunction binarySearch(metaset, axis, value, intersect) {\n var controller = metaset.controller,\n data = metaset.data,\n _sorted = metaset._sorted;\n var iScale = controller._cachedMeta.iScale;\n\n if (iScale && axis === iScale.axis && _sorted && data.length) {\n var lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n var el = data[0];\n var range = typeof el.getRange === 'function' && el.getRange(axis);\n\n if (range) {\n var start = lookupMethod(data, axis, value - range);\n var end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n var metasets = chart.getSortedVisibleDatasetMetas();\n var value = position[axis];\n\n for (var i = 0, ilen = metasets.length; i < ilen; ++i) {\n var _metasets$i2 = metasets[i],\n index = _metasets$i2.index,\n data = _metasets$i2.data;\n\n var _binarySearch = binarySearch(metasets[i], axis, value, intersect),\n lo = _binarySearch.lo,\n hi = _binarySearch.hi;\n\n for (var j = lo; j <= hi; ++j) {\n var element = data[j];\n\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\nfunction getDistanceMetricForAxis(axis) {\n var useX = axis.indexOf('x') !== -1;\n var useY = axis.indexOf('y') !== -1;\n return function (pt1, pt2) {\n var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n var items = [];\n\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n\n var evaluationFunc = function evaluationFunc(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n };\n\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n var distanceMetric = getDistanceMetricForAxis(axis);\n var minDistance = Number.POSITIVE_INFINITY;\n var items = [];\n\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n\n var evaluationFunc = function evaluationFunc(element, datasetIndex, index) {\n if (intersect && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n\n var center = element.getCenterPoint(useFinalPosition);\n\n if (!_isPointInArea(center, chart.chartArea, chart._minPadding) && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n\n var distance = distanceMetric(position, center);\n\n if (distance < minDistance) {\n items = [{\n element: element,\n datasetIndex: datasetIndex,\n index: index\n }];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n };\n\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var axis = options.axis;\n var rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n var intersectsItem = false;\n evaluateAllVisibleItems(chart, function (element, datasetIndex, index) {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n\n if (options.intersect && !intersectsItem) {\n return [];\n }\n\n return items;\n}\n\nvar Interaction = {\n modes: {\n index: function index(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'x';\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition) : getNearestItems(chart, position, axis, false, useFinalPosition);\n var elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach(function (meta) {\n var index = items[0].index;\n var element = meta.data[index];\n\n if (element && !element.skip) {\n elements.push({\n element: element,\n datasetIndex: meta.index,\n index: index\n });\n }\n });\n return elements;\n },\n dataset: function dataset(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition) : getNearestItems(chart, position, axis, false, useFinalPosition);\n\n if (items.length > 0) {\n var datasetIndex = items[0].datasetIndex;\n var data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n\n for (var i = 0; i < data.length; ++i) {\n items.push({\n element: data[i],\n datasetIndex: datasetIndex,\n index: i\n });\n }\n }\n\n return items;\n },\n point: function point(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest: function nearest(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x: function x(chart, e, options, useFinalPosition) {\n options.axis = 'x';\n return getAxisItems(chart, e, options, useFinalPosition);\n },\n y: function y(chart, e, options, useFinalPosition) {\n options.axis = 'y';\n return getAxisItems(chart, e, options, useFinalPosition);\n }\n }\n};\nvar STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(function (v) {\n return v.pos === position;\n });\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(function (v) {\n return STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis;\n });\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort(function (a, b) {\n var v0 = reverse ? b : a;\n var v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n var layoutBoxes = [];\n var i, ilen, box, pos, stack, stackWeight;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n var _box = box;\n pos = _box.position;\n var _box$options = _box.options;\n stack = _box$options.stack;\n var _box$options$stackWei = _box$options.stackWeight;\n stackWeight = _box$options$stackWei === void 0 ? 1 : _box$options$stackWei;\n layoutBoxes.push({\n index: i,\n box: box,\n pos: pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight: stackWeight\n });\n }\n\n return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n var stacks = {};\n\n var _iterator5 = _createForOfIteratorHelper(layouts),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var wrap = _step5.value;\n var stack = wrap.stack,\n pos = wrap.pos,\n stackWeight = wrap.stackWeight;\n\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n\n var _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n\n _stack.count++;\n _stack.weight += stackWeight;\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return stacks;\n}\n\nfunction setLayoutDims(layouts, params) {\n var stacks = buildStacks(layouts);\n var vBoxMaxWidth = params.vBoxMaxWidth,\n hBoxMaxHeight = params.hBoxMaxHeight;\n var i, ilen, layout;\n\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n var fullSize = layout.box.fullSize;\n var stack = stacks[layout.stack];\n var factor = stack && layout.stackWeight / stack.weight;\n\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n\n return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n var layoutBoxes = wrapBoxes(boxes);\n var fullSize = sortByWeight(layoutBoxes.filter(function (wrap) {\n return wrap.box.fullSize;\n }), true);\n var left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n var right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n var top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n var bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n var centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n var centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize: fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n var pos = layout.pos,\n box = layout.box;\n var maxPadding = chartArea.maxPadding;\n\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n\n var stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n var newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n var newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n var widthChanged = newWidth !== chartArea.w;\n var heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\n\nfunction handleMaxPadding(chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n var change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n var margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach(function (pos) {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal ? marginForPositions(['left', 'right']) : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n var refitBoxes = [];\n var i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n\n var _updateDims = updateDims(chartArea, params, layout, stacks),\n same = _updateDims.same,\n other = _updateDims.other;\n\n refit |= same && refitBoxes.length;\n changed = changed || other;\n\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\n\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n var userPadding = params.padding;\n var x = chartArea.x,\n y = chartArea.y;\n\n var _iterator6 = _createForOfIteratorHelper(boxes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var layout = _step6.value;\n var box = layout.box;\n var stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n var weight = layout.stackWeight / stack.weight || 1;\n\n if (layout.horizontal) {\n var width = chartArea.w * weight;\n var height = stack.size || box.height;\n\n if (defined(stack.start)) {\n y = stack.start;\n }\n\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n var _height = chartArea.h * weight;\n\n var _width = stack.size || box.width;\n\n if (defined(stack.start)) {\n x = stack.start;\n }\n\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, _width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, _width, _height);\n }\n\n stack.start = x;\n stack.placed += _height;\n x = box.right;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox: function addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n\n item._layers = item._layers || function () {\n return [{\n z: 0,\n draw: function draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n removeBox: function removeBox(chart, layoutItem) {\n var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure: function configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update: function update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n var padding = toPadding(chart.options.layout.padding);\n var availableWidth = Math.max(width - padding.width, 0);\n var availableHeight = Math.max(height - padding.height, 0);\n var boxes = buildLayoutBoxes(chart.boxes);\n var verticalBoxes = boxes.vertical;\n var horizontalBoxes = boxes.horizontal;\n each(chart.boxes, function (box) {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n var visibleVerticalBoxCount = verticalBoxes.reduce(function (total, wrap) {\n return wrap.box.options && wrap.box.options.display === false ? total : total + 1;\n }, 0) || 1;\n var params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding: padding,\n availableWidth: availableWidth,\n availableHeight: availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n var maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n var chartArea = Object.assign({\n maxPadding: maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n var stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, function (layout) {\n var box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h);\n });\n }\n};\n\nvar BasePlatform = /*#__PURE__*/function () {\n function BasePlatform() {\n _classCallCheck(this, BasePlatform);\n }\n\n _createClass(BasePlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {}\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n return false;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {}\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type, listener) {}\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return 1;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width: width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n return true;\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(config) {}\n }]);\n\n return BasePlatform;\n}();\n\nvar BasicPlatform = /*#__PURE__*/function (_BasePlatform) {\n _inherits(BasicPlatform, _BasePlatform);\n\n var _super9 = _createSuper(BasicPlatform);\n\n function BasicPlatform() {\n _classCallCheck(this, BasicPlatform);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(BasicPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(config) {\n config.options.animation = false;\n }\n }]);\n\n return BasicPlatform;\n}(BasePlatform);\n\nvar EXPANDO_KEY = '$chartjs';\nvar EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\n\nvar isNullOrEmpty = function isNullOrEmpty(value) {\n return value === null || value === '';\n};\n\nfunction initCanvas(canvas, aspectRatio) {\n var style = canvas.style;\n var renderHeight = canvas.getAttribute('height');\n var renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n\n if (isNullOrEmpty(renderWidth)) {\n var displayWidth = readUsedSize(canvas, 'width');\n\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n var displayHeight = readUsedSize(canvas, 'height');\n\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\nvar eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\n\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction fromNativeEvent(event, chart) {\n var type = EVENT_TYPES[event.type] || event.type;\n\n var _getRelativePosition$ = getRelativePosition$1(event, chart),\n x = _getRelativePosition$.x,\n y = _getRelativePosition$.y;\n\n return {\n type: type,\n chart: chart,\n \"native\": event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\n\nfunction createAttachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n var observer = new MutationObserver(function (entries) {\n var _iterator7 = _createForOfIteratorHelper(entries),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var entry = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(entry.addedNodes),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var node = _step8.value;\n\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n var observer = new MutationObserver(function (entries) {\n var _iterator9 = _createForOfIteratorHelper(entries),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var entry = _step9.value;\n\n var _iterator10 = _createForOfIteratorHelper(entry.removedNodes),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var node = _step10.value;\n\n if (node === canvas || node.contains(canvas)) {\n return listener();\n }\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\n\nvar drpListeningCharts = new Map();\nvar oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n var dpr = window.devicePixelRatio;\n\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach(function (resize, chart) {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts[\"delete\"](chart);\n\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n var canvas = chart.canvas;\n\n var container = canvas && _getParentNode(canvas);\n\n if (!container) {\n return;\n }\n\n var resize = throttled(function (width, height) {\n var w = container.clientWidth;\n listener(width, height);\n\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n var observer = new ResizeObserver(function (entries) {\n var entry = entries[0];\n var width = entry.contentRect.width;\n var height = entry.contentRect.height;\n\n if (width === 0 && height === 0) {\n return;\n }\n\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n var canvas = chart.canvas;\n var proxy = throttled(function (event) {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, function (args) {\n var event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\n\nvar DomPlatform = /*#__PURE__*/function (_BasePlatform2) {\n _inherits(DomPlatform, _BasePlatform2);\n\n var _super10 = _createSuper(DomPlatform);\n\n function DomPlatform() {\n _classCallCheck(this, DomPlatform);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(DomPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {\n var context = canvas && canvas.getContext && canvas.getContext('2d');\n\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n var canvas = context.canvas;\n\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n var initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach(function (prop) {\n var value = initial[prop];\n\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n var style = initial.style || {};\n Object.keys(style).forEach(function (key) {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n var proxies = chart.$proxies || (chart.$proxies = {});\n var handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n var handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type) {\n var proxies = chart.$proxies || (chart.$proxies = {});\n var proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n var handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n var handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(canvas, width, height, aspectRatio) {\n return _getMaximumSize(canvas, width, height, aspectRatio);\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n var container = _getParentNode(canvas);\n\n return !!(container && container.isConnected);\n }\n }]);\n\n return DomPlatform;\n}(BasePlatform);\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n\n return DomPlatform;\n}\n\nvar Element = /*#__PURE__*/function () {\n function Element() {\n _classCallCheck(this, Element);\n\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n\n _createClass(Element, [{\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n var _this$getProps = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps.x,\n y = _this$getProps.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n }, {\n key: \"getProps\",\n value: function getProps(props, _final) {\n var _this7 = this;\n\n var anims = this.$animations;\n\n if (!_final || !anims) {\n return this;\n }\n\n var ret = {};\n props.forEach(function (prop) {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : _this7[prop];\n });\n return ret;\n }\n }]);\n\n return Element;\n}();\n\nElement.defaults = {};\nElement.defaultRoutes = undefined;\nvar formatters = {\n values: function values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric: function numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var locale = this.chart.options.locale;\n var notation;\n var delta = tickValue;\n\n if (ticks.length > 1) {\n var maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n var logDelta = log10(Math.abs(delta));\n var numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n var options = {\n notation: notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic: function logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var remain = tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n\n return '';\n }\n};\n\nfunction calculateDelta(tickValue, ticks) {\n var delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n\n return delta;\n}\n\nvar Ticks = {\n formatters: formatters\n};\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: function tickWidth(_ctx, options) {\n return options.lineWidth;\n },\n tickColor: function tickColor(_ctx, options) {\n return options.color;\n },\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: function _scriptable(name) {\n return !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser';\n },\n _indexable: function _indexable(name) {\n return name !== 'borderDash' && name !== 'tickBorderDash';\n }\n});\ndefaults.describe('scales', {\n _fallback: 'scale'\n});\ndefaults.describe('scale.ticks', {\n _scriptable: function _scriptable(name) {\n return name !== 'backdropPadding' && name !== 'callback';\n },\n _indexable: function _indexable(name) {\n return name !== 'backdropPadding';\n }\n});\n\nfunction autoSkip(scale, ticks) {\n var tickOpts = scale.options.ticks;\n var ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n var majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n var numMajorIndices = majorIndices.length;\n var first = majorIndices[0];\n var last = majorIndices[numMajorIndices - 1];\n var newTicks = [];\n\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n var spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n var i, ilen;\n var avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n var offset = scale.options.offset;\n\n var tickLength = scale._tickSize();\n\n var maxScale = scale._length / tickLength + (offset ? 0 : 1);\n var maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n var evenMajorSpacing = getEvenSpacing(majorIndices);\n var spacing = ticks.length / ticksLimit;\n\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n var factors = _factorize(evenMajorSpacing);\n\n for (var i = 0, ilen = factors.length - 1; i < ilen; i++) {\n var factor = factors[i];\n\n if (factor > spacing) {\n return factor;\n }\n }\n\n return Math.max(spacing, 1);\n}\n\nfunction getMajorIndices(ticks) {\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n\n return result;\n}\n\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n var count = 0;\n var next = majorIndices[0];\n var i;\n spacing = Math.ceil(spacing);\n\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n var start = valueOrDefault(majorStart, 0);\n var end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n var count = 0;\n var length, i, next;\n spacing = Math.ceil(spacing);\n\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n\nfunction getEvenSpacing(arr) {\n var len = arr.length;\n var i, diff;\n\n if (len < 2) {\n return false;\n }\n\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n\n return diff;\n}\n\nvar reverseAlign = function reverseAlign(align) {\n return align === 'left' ? 'right' : align === 'right' ? 'left' : align;\n};\n\nvar offsetFromEdge = function offsetFromEdge(scale, edge, offset) {\n return edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\n};\n\nfunction sample(arr, numItems) {\n var result = [];\n var increment = arr.length / numItems;\n var len = arr.length;\n var i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n\n return result;\n}\n\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n var length = scale.ticks.length;\n var validIndex = Math.min(index, length - 1);\n var start = scale._startPixel;\n var end = scale._endPixel;\n var epsilon = 1e-6;\n var lineValue = scale.getPixelForTick(validIndex);\n var offset;\n\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n\n lineValue += validIndex < index ? offset : -offset;\n\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n\n return lineValue;\n}\n\nfunction garbageCollect(caches, length) {\n each(caches, function (cache) {\n var gc = cache.gc;\n var gcLen = gc.length / 2;\n var i;\n\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n });\n}\n\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n var font = toFont(options.font, fallback);\n var padding = toPadding(options.padding);\n var lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale: scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick: tick,\n index: index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n var ret = _toLeftRightCenter(align);\n\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n var top = scale.top,\n left = scale.left,\n bottom = scale.bottom,\n right = scale.right,\n chart = scale.chart;\n var chartArea = chart.chartArea,\n scales = chart.scales;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n var height = bottom - top;\n var width = right - left;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n\n if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n var _positionAxisID = Object.keys(position)[0];\n var _value = position[_positionAxisID];\n titleX = scales[_positionAxisID].getPixelForValue(_value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n}\n\nvar Scale = /*#__PURE__*/function (_Element) {\n _inherits(Scale, _Element);\n\n var _super11 = _createSuper(Scale);\n\n function Scale(cfg) {\n var _this8;\n\n _classCallCheck(this, Scale);\n\n _this8 = _super11.call(this);\n _this8.id = cfg.id;\n _this8.type = cfg.type;\n _this8.options = undefined;\n _this8.ctx = cfg.ctx;\n _this8.chart = cfg.chart;\n _this8.top = undefined;\n _this8.bottom = undefined;\n _this8.left = undefined;\n _this8.right = undefined;\n _this8.width = undefined;\n _this8.height = undefined;\n _this8._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n _this8.maxWidth = undefined;\n _this8.maxHeight = undefined;\n _this8.paddingTop = undefined;\n _this8.paddingBottom = undefined;\n _this8.paddingLeft = undefined;\n _this8.paddingRight = undefined;\n _this8.axis = undefined;\n _this8.labelRotation = undefined;\n _this8.min = undefined;\n _this8.max = undefined;\n _this8._range = undefined;\n _this8.ticks = [];\n _this8._gridLineItems = null;\n _this8._labelItems = null;\n _this8._labelSizes = null;\n _this8._length = 0;\n _this8._maxLength = 0;\n _this8._longestTextCache = {};\n _this8._startPixel = undefined;\n _this8._endPixel = undefined;\n _this8._reversePixels = false;\n _this8._userMax = undefined;\n _this8._userMin = undefined;\n _this8._suggestedMax = undefined;\n _this8._suggestedMin = undefined;\n _this8._ticksLength = 0;\n _this8._borderValue = 0;\n _this8._cache = {};\n _this8._dataLimitsCached = false;\n _this8.$context = undefined;\n return _this8;\n }\n\n _createClass(Scale, [{\n key: \"init\",\n value: function init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n return raw;\n }\n }, {\n key: \"getUserBounds\",\n value: function getUserBounds() {\n var _userMin = this._userMin,\n _userMax = this._userMax,\n _suggestedMin = this._suggestedMin,\n _suggestedMax = this._suggestedMax;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax(canStack) {\n var _this$getUserBounds = this.getUserBounds(),\n min = _this$getUserBounds.min,\n max = _this$getUserBounds.max,\n minDefined = _this$getUserBounds.minDefined,\n maxDefined = _this$getUserBounds.maxDefined;\n\n var range;\n\n if (minDefined && maxDefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var metas = this.getMatchingVisibleMetas();\n\n for (var i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n }, {\n key: \"getPadding\",\n value: function getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n }, {\n key: \"getTicks\",\n value: function getTicks() {\n return this.ticks;\n }\n }, {\n key: \"getLabels\",\n value: function getLabels() {\n var data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n }, {\n key: \"beforeUpdate\",\n value: function beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n }, {\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n var _this$options3 = this.options,\n beginAtZero = _this$options3.beginAtZero,\n grace = _this$options3.grace,\n tickOpts = _this$options3.ticks;\n var sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n var samplingEnabled = sampleSize < this.ticks.length;\n\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n }\n\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var reversePixels = this.options.reverse;\n var startPixel, endPixel;\n\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n }, {\n key: \"afterUpdate\",\n value: function afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n }, {\n key: \"beforeSetDimensions\",\n value: function beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n }, {\n key: \"setDimensions\",\n value: function setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n }, {\n key: \"afterSetDimensions\",\n value: function afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n }, {\n key: \"_callHooks\",\n value: function _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n }, {\n key: \"beforeDataLimits\",\n value: function beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {}\n }, {\n key: \"afterDataLimits\",\n value: function afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n }, {\n key: \"beforeBuildTicks\",\n value: function beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n return [];\n }\n }, {\n key: \"afterBuildTicks\",\n value: function afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n }, {\n key: \"beforeTickToLabelConversion\",\n value: function beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var tickOpts = this.options.ticks;\n var i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n }, {\n key: \"afterTickToLabelConversion\",\n value: function afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n }, {\n key: \"beforeCalculateLabelRotation\",\n value: function beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n }, {\n key: \"calculateLabelRotation\",\n value: function calculateLabelRotation() {\n var options = this.options;\n var tickOpts = options.ticks;\n var numTicks = this.ticks.length;\n var minRotation = tickOpts.minRotation || 0;\n var maxRotation = tickOpts.maxRotation;\n var labelRotation = minRotation;\n var tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n\n var labelSizes = this._getLabelSizes();\n\n var maxLabelWidth = labelSizes.widest.width;\n var maxLabelHeight = labelSizes.highest.height;\n\n var maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n this.labelRotation = labelRotation;\n }\n }, {\n key: \"afterCalculateLabelRotation\",\n value: function afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n }, {\n key: \"beforeFit\",\n value: function beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var minSize = {\n width: 0,\n height: 0\n };\n var chart = this.chart,\n _this$options4 = this.options,\n tickOpts = _this$options4.ticks,\n titleOpts = _this$options4.title,\n gridOpts = _this$options4.grid;\n\n var display = this._isVisible();\n\n var isHorizontal = this.isHorizontal();\n\n if (display) {\n var titleHeight = getTitleHeight(titleOpts, chart.options.font);\n\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n if (tickOpts.display && this.ticks.length) {\n var _this$_getLabelSizes = this._getLabelSizes(),\n first = _this$_getLabelSizes.first,\n last = _this$_getLabelSizes.last,\n widest = _this$_getLabelSizes.widest,\n highest = _this$_getLabelSizes.highest;\n\n var tickPadding = tickOpts.padding * 2;\n var angleRadians = toRadians(this.labelRotation);\n var cos = Math.cos(angleRadians);\n var sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n var labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n var labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n\n this._calculatePadding(first, last, sin, cos);\n }\n }\n\n this._handleMargins();\n\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n }, {\n key: \"_calculatePadding\",\n value: function _calculatePadding(first, last, sin, cos) {\n var _this$options5 = this.options,\n _this$options5$ticks = _this$options5.ticks,\n align = _this$options5$ticks.align,\n padding = _this$options5$ticks.padding,\n position = _this$options5.position;\n var isRotated = this.labelRotation !== 0;\n var labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n if (this.isHorizontal()) {\n var offsetLeft = this.getPixelForTick(0) - this.left;\n var offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n var paddingLeft = 0;\n var paddingRight = 0;\n\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n var paddingTop = last.height / 2;\n var paddingBottom = first.height / 2;\n\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n }, {\n key: \"_handleMargins\",\n value: function _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n }, {\n key: \"afterFit\",\n value: function afterFit() {\n callback(this.options.afterFit, [this]);\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var _this$options6 = this.options,\n axis = _this$options6.axis,\n position = _this$options6.position;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n }, {\n key: \"isFullSize\",\n value: function isFullSize() {\n return this.options.fullSize;\n }\n }, {\n key: \"_convertTicksToLabels\",\n value: function _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n\n this.afterTickToLabelConversion();\n }\n }, {\n key: \"_getLabelSizes\",\n value: function _getLabelSizes() {\n var labelSizes = this._labelSizes;\n\n if (!labelSizes) {\n var sampleSize = this.options.ticks.sampleSize;\n var ticks = this.ticks;\n\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n\n return labelSizes;\n }\n }, {\n key: \"_computeLabelSizes\",\n value: function _computeLabelSizes(ticks, length) {\n var ctx = this.ctx,\n caches = this._longestTextCache;\n var widths = [];\n var heights = [];\n var widestLabelSize = 0;\n var highestLabelSize = 0;\n var i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n\n garbageCollect(caches, length);\n var widest = widths.indexOf(widestLabelSize);\n var highest = heights.indexOf(highestLabelSize);\n\n var valueAt = function valueAt(idx) {\n return {\n width: widths[idx] || 0,\n height: heights[idx] || 0\n };\n };\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths: widths,\n heights: heights\n };\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value;\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value, index) {\n return NaN;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {}\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var ticks = this.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return this.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getPixelForDecimal\",\n value: function getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n\n var pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n }, {\n key: \"getDecimalForPixel\",\n value: function getDecimalForPixel(pixel) {\n var decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n }, {\n key: \"getBaseValue\",\n value: function getBaseValue() {\n var min = this.min,\n max = this.max;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n }, {\n key: \"getContext\",\n value: function getContext(index) {\n var ticks = this.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n var tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n }, {\n key: \"_tickSize\",\n value: function _tickSize() {\n var optionTicks = this.options.ticks;\n var rot = toRadians(this.labelRotation);\n var cos = Math.abs(Math.cos(rot));\n var sin = Math.abs(Math.sin(rot));\n\n var labelSizes = this._getLabelSizes();\n\n var padding = optionTicks.autoSkipPadding || 0;\n var w = labelSizes ? labelSizes.widest.width + padding : 0;\n var h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n }, {\n key: \"_isVisible\",\n value: function _isVisible() {\n var display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n }, {\n key: \"_computeGridLineItems\",\n value: function _computeGridLineItems(chartArea) {\n var axis = this.axis;\n var chart = this.chart;\n var options = this.options;\n var grid = options.grid,\n position = options.position;\n var offset = grid.offset;\n var isHorizontal = this.isHorizontal();\n var ticks = this.ticks;\n var ticksLength = ticks.length + (offset ? 1 : 0);\n var tl = getTickMarkLength(grid);\n var items = [];\n var borderOpts = grid.setContext(this.getContext());\n var axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n var axisHalfWidth = axisWidth / 2;\n\n var alignBorderValue = function alignBorderValue(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n\n var borderValue, i, lineValue, alignedLineValue;\n var tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n var _positionAxisID2 = Object.keys(position)[0];\n var _value2 = position[_positionAxisID2];\n borderValue = alignBorderValue(this.chart.scales[_positionAxisID2].getPixelForValue(_value2));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n var limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n var step = Math.max(1, Math.ceil(ticksLength / limit));\n\n for (i = 0; i < ticksLength; i += step) {\n var optsAtIndex = grid.setContext(this.getContext(i));\n var lineWidth = optsAtIndex.lineWidth;\n var lineColor = optsAtIndex.color;\n var borderDash = grid.borderDash || [];\n var borderDashOffset = optsAtIndex.borderDashOffset;\n var tickWidth = optsAtIndex.tickWidth;\n var tickColor = optsAtIndex.tickColor;\n var tickBorderDash = optsAtIndex.tickBorderDash || [];\n var tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1: tx1,\n ty1: ty1,\n tx2: tx2,\n ty2: ty2,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n width: lineWidth,\n color: lineColor,\n borderDash: borderDash,\n borderDashOffset: borderDashOffset,\n tickWidth: tickWidth,\n tickColor: tickColor,\n tickBorderDash: tickBorderDash,\n tickBorderDashOffset: tickBorderDashOffset\n });\n }\n\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n }, {\n key: \"_computeLabelItems\",\n value: function _computeLabelItems(chartArea) {\n var axis = this.axis;\n var options = this.options;\n var position = options.position,\n optionTicks = options.ticks;\n var isHorizontal = this.isHorizontal();\n var ticks = this.ticks;\n var align = optionTicks.align,\n crossAlign = optionTicks.crossAlign,\n padding = optionTicks.padding,\n mirror = optionTicks.mirror;\n var tl = getTickMarkLength(options.grid);\n var tickAndPadding = tl + padding;\n var hTickAndPadding = mirror ? -padding : tickAndPadding;\n var rotation = -toRadians(this.labelRotation);\n var items = [];\n var i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n var textBaseline = 'middle';\n\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n var ret = this._getYAxisLabelAlignment(tl);\n\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n var _ret = this._getYAxisLabelAlignment(tl);\n\n textAlign = _ret.textAlign;\n x = _ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n var _positionAxisID3 = Object.keys(position)[0];\n var _value3 = position[_positionAxisID3];\n x = this.chart.scales[_positionAxisID3].getPixelForValue(_value3);\n }\n\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n var labelSizes = this._getLabelSizes();\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n var optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n var halfCount = lineCount / 2;\n var color = optsAtIndex.color;\n var strokeColor = optsAtIndex.textStrokeColor;\n var strokeWidth = optsAtIndex.textStrokeWidth;\n\n if (isHorizontal) {\n x = pixel;\n\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n var backdrop = void 0;\n\n if (optsAtIndex.showLabelBackdrop) {\n var labelPadding = toPadding(optsAtIndex.backdropPadding);\n var height = labelSizes.heights[i];\n var width = labelSizes.widths[i];\n var top = y + textOffset - labelPadding.top;\n var left = x - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n\n case 'bottom':\n top -= height;\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n\n case 'right':\n left -= width;\n break;\n }\n\n backdrop = {\n left: left,\n top: top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n\n items.push({\n rotation: rotation,\n label: label,\n font: font,\n color: color,\n strokeColor: strokeColor,\n strokeWidth: strokeWidth,\n textOffset: textOffset,\n textAlign: textAlign,\n textBaseline: textBaseline,\n translation: [x, y],\n backdrop: backdrop\n });\n }\n\n return items;\n }\n }, {\n key: \"_getXAxisLabelAlignment\",\n value: function _getXAxisLabelAlignment() {\n var _this$options7 = this.options,\n position = _this$options7.position,\n ticks = _this$options7.ticks;\n var rotation = -toRadians(this.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n var align = 'center';\n\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n\n return align;\n }\n }, {\n key: \"_getYAxisLabelAlignment\",\n value: function _getYAxisLabelAlignment(tl) {\n var _this$options8 = this.options,\n position = _this$options8.position,\n _this$options8$ticks = _this$options8.ticks,\n crossAlign = _this$options8$ticks.crossAlign,\n mirror = _this$options8$ticks.mirror,\n padding = _this$options8$ticks.padding;\n\n var labelSizes = this._getLabelSizes();\n\n var tickAndPadding = tl + padding;\n var widest = labelSizes.widest.width;\n var textAlign;\n var x;\n\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n\n return {\n textAlign: textAlign,\n x: x\n };\n }\n }, {\n key: \"_computeLabelArea\",\n value: function _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n\n var chart = this.chart;\n var position = this.options.position;\n\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var ctx = this.ctx,\n backgroundColor = this.options.backgroundColor,\n left = this.left,\n top = this.top,\n width = this.width,\n height = this.height;\n\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n }, {\n key: \"getLineWidthForValue\",\n value: function getLineWidthForValue(value) {\n var grid = this.options.grid;\n\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n\n var ticks = this.ticks;\n var index = ticks.findIndex(function (t) {\n return t.value === value;\n });\n\n if (index >= 0) {\n var opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n\n return 0;\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid(chartArea) {\n var grid = this.options.grid;\n var ctx = this.ctx;\n\n var items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n\n var i, ilen;\n\n var drawLine = function drawLine(p1, p2, style) {\n if (!style.width || !style.color) {\n return;\n }\n\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n }, {\n key: \"drawBorder\",\n value: function drawBorder() {\n var chart = this.chart,\n ctx = this.ctx,\n grid = this.options.grid;\n var borderOpts = grid.setContext(this.getContext());\n var axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n\n if (!axisWidth) {\n return;\n }\n\n var lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n var borderValue = this._borderValue;\n var x1, x2, y1, y2;\n\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n }, {\n key: \"drawLabels\",\n value: function drawLabels(chartArea) {\n var optionTicks = this.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n var ctx = this.ctx;\n\n var area = this._computeLabelArea();\n\n if (area) {\n clipArea(ctx, area);\n }\n\n var items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n var tickFont = item.font;\n var label = item.label;\n\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n\n var y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var ctx = this.ctx,\n _this$options9 = this.options,\n position = _this$options9.position,\n title = _this$options9.title,\n reverse = _this$options9.reverse;\n\n if (!title.display) {\n return;\n }\n\n var font = toFont(title.font);\n var padding = toPadding(title.padding);\n var align = title.align;\n var offset = font.lineHeight / 2;\n\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n var _titleArgs = titleArgs(this, offset, position, align),\n titleX = _titleArgs.titleX,\n titleY = _titleArgs.titleY,\n maxWidth = _titleArgs.maxWidth,\n rotation = _titleArgs.rotation;\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }, {\n key: \"draw\",\n value: function draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n }, {\n key: \"_layers\",\n value: function _layers() {\n var _this9 = this;\n\n var opts = this.options;\n var tz = opts.ticks && opts.ticks.z || 0;\n var gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: function draw(chartArea) {\n _this9.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: function draw(chartArea) {\n _this9.drawBackground();\n\n _this9.drawGrid(chartArea);\n\n _this9.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: function draw() {\n _this9.drawBorder();\n }\n }, {\n z: tz,\n draw: function draw(chartArea) {\n _this9.drawLabels(chartArea);\n }\n }];\n }\n }, {\n key: \"getMatchingVisibleMetas\",\n value: function getMatchingVisibleMetas(type) {\n var metas = this.chart.getSortedVisibleDatasetMetas();\n var axisID = this.axis + 'AxisID';\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n var meta = metas[i];\n\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"_resolveTickFontOptions\",\n value: function _resolveTickFontOptions(index) {\n var opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n }, {\n key: \"_maxDigits\",\n value: function _maxDigits() {\n var fontSize = this._resolveTickFontOptions(0).lineHeight;\n\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n }]);\n\n return Scale;\n}(Element);\n\nvar TypedRegistry = /*#__PURE__*/function () {\n function TypedRegistry(type, scope, override) {\n _classCallCheck(this, TypedRegistry);\n\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n _createClass(TypedRegistry, [{\n key: \"isForType\",\n value: function isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n }, {\n key: \"register\",\n value: function register(item) {\n var proto = Object.getPrototypeOf(item);\n var parentScope;\n\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n\n var items = this.items;\n var id = item.id;\n var scope = this.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n }, {\n key: \"get\",\n value: function get(id) {\n return this.items[id];\n }\n }, {\n key: \"unregister\",\n value: function unregister(item) {\n var items = this.items;\n var id = item.id;\n var scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n }]);\n\n return TypedRegistry;\n}();\n\nfunction registerDefaults(item, scope, parentScope) {\n var itemDefaults = merge(Object.create(null), [parentScope ? defaults.get(parentScope) : {}, defaults.get(scope), item.defaults]);\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(function (property) {\n var propertyParts = property.split('.');\n var sourceName = propertyParts.pop();\n var sourceScope = [scope].concat(propertyParts).join('.');\n var parts = routes[property].split('.');\n var targetName = parts.pop();\n var targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nvar Registry = /*#__PURE__*/function () {\n function Registry() {\n _classCallCheck(this, Registry);\n\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n\n _createClass(Registry, [{\n key: \"add\",\n value: function add() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._each('register', args);\n }\n }, {\n key: \"remove\",\n value: function remove() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this._each('unregister', args);\n }\n }, {\n key: \"addControllers\",\n value: function addControllers() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this._each('register', args, this.controllers);\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._each('register', args, this.elements);\n }\n }, {\n key: \"addPlugins\",\n value: function addPlugins() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n this._each('register', args, this.plugins);\n }\n }, {\n key: \"addScales\",\n value: function addScales() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n this._each('register', args, this.scales);\n }\n }, {\n key: \"getController\",\n value: function getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n }, {\n key: \"getElement\",\n value: function getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n }, {\n key: \"getScale\",\n value: function getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n }, {\n key: \"removeControllers\",\n value: function removeControllers() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n this._each('unregister', args, this.controllers);\n }\n }, {\n key: \"removeElements\",\n value: function removeElements() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n this._each('unregister', args, this.elements);\n }\n }, {\n key: \"removePlugins\",\n value: function removePlugins() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n this._each('unregister', args, this.plugins);\n }\n }, {\n key: \"removeScales\",\n value: function removeScales() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n this._each('unregister', args, this.scales);\n }\n }, {\n key: \"_each\",\n value: function _each(method, args, typedRegistry) {\n var _this10 = this;\n\n _toConsumableArray(args).forEach(function (arg) {\n var reg = typedRegistry || _this10._getRegistryForType(arg);\n\n if (typedRegistry || reg.isForType(arg) || reg === _this10.plugins && arg.id) {\n _this10._exec(method, reg, arg);\n } else {\n each(arg, function (item) {\n var itemReg = typedRegistry || _this10._getRegistryForType(item);\n\n _this10._exec(method, itemReg, item);\n });\n }\n });\n }\n }, {\n key: \"_exec\",\n value: function _exec(method, registry, component) {\n var camelMethod = _capitalize(method);\n\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n }, {\n key: \"_getRegistryForType\",\n value: function _getRegistryForType(type) {\n for (var i = 0; i < this._typedRegistries.length; i++) {\n var reg = this._typedRegistries[i];\n\n if (reg.isForType(type)) {\n return reg;\n }\n }\n\n return this.plugins;\n }\n }, {\n key: \"_get\",\n value: function _get(id, typedRegistry, type) {\n var item = typedRegistry.get(id);\n\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n\n return item;\n }\n }]);\n\n return Registry;\n}();\n\nvar registry = new Registry();\n\nvar PluginService = /*#__PURE__*/function () {\n function PluginService() {\n _classCallCheck(this, PluginService);\n\n this._init = [];\n }\n\n _createClass(PluginService, [{\n key: \"notify\",\n value: function notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n\n this._notify(this._init, chart, 'install');\n }\n\n var descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n\n var result = this._notify(descriptors, chart, hook, args);\n\n if (hook === 'destroy') {\n this._notify(descriptors, chart, 'stop');\n\n this._notify(this._init, chart, 'uninstall');\n }\n\n return result;\n }\n }, {\n key: \"_notify\",\n value: function _notify(descriptors, chart, hook, args) {\n args = args || {};\n\n var _iterator11 = _createForOfIteratorHelper(descriptors),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var descriptor = _step11.value;\n var plugin = descriptor.plugin;\n var method = plugin[hook];\n var params = [chart, args, descriptor.options];\n\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n return true;\n }\n }, {\n key: \"invalidate\",\n value: function invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n }, {\n key: \"_descriptors\",\n value: function _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n var descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n }, {\n key: \"_createDescriptors\",\n value: function _createDescriptors(chart, all) {\n var config = chart && chart.config;\n var options = valueOrDefault(config.options && config.options.plugins, {});\n var plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n }, {\n key: \"_notifyStateChanges\",\n value: function _notifyStateChanges(chart) {\n var previousDescriptors = this._oldCache || [];\n var descriptors = this._cache;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.plugin.id === y.plugin.id;\n });\n });\n };\n\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n }]);\n\n return PluginService;\n}();\n\nfunction allPlugins(config) {\n var plugins = [];\n var keys = Object.keys(registry.plugins.items);\n\n for (var i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n var local = config.plugins || [];\n\n for (var _i2 = 0; _i2 < local.length; _i2++) {\n var plugin = local[_i2];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n\n return plugins;\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n\n if (options === true) {\n return {};\n }\n\n return options;\n}\n\nfunction createDescriptors(chart, plugins, options, all) {\n var result = [];\n var context = chart.getContext();\n\n for (var i = 0; i < plugins.length; i++) {\n var plugin = plugins[i];\n var id = plugin.id;\n var opts = getOpts(options[id], all);\n\n if (opts === null) {\n continue;\n }\n\n result.push({\n plugin: plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n\n return result;\n}\n\nfunction pluginOpts(config, plugin, opts, context) {\n var keys = config.pluginScopeKeys(plugin);\n var scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n var datasetDefaults = defaults.datasets[type] || {};\n var datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n var axis = id;\n\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\n\nfunction mergeScaleConfig(config, options) {\n var chartDefaults = overrides[config.type] || {\n scales: {}\n };\n var configScales = options.scales || {};\n var chartIndexAxis = getIndexAxis(config.type, options);\n var firstIDs = Object.create(null);\n var scales = Object.create(null);\n Object.keys(configScales).forEach(function (id) {\n var scaleConf = configScales[id];\n\n if (!isObject(scaleConf)) {\n return console.error(\"Invalid scale configuration for scale: \".concat(id));\n }\n\n if (scaleConf._proxy) {\n return console.warn(\"Ignoring resolver passed as options for scale: \".concat(id));\n }\n\n var axis = determineAxis(id, scaleConf);\n var defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n var defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{\n axis: axis\n }, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(function (dataset) {\n var type = dataset.type || config.type;\n var indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n var datasetDefaults = overrides[type] || {};\n var defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(function (defaultID) {\n var axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n var id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{\n axis: axis\n }, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(function (key) {\n var scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\n\nfunction initOptions(config) {\n var options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\n\nvar keyCache = new Map();\nvar keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n var keys = keyCache.get(cacheKey);\n\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n\n return keys;\n}\n\nvar addIfFound = function addIfFound(set, obj, key) {\n var opts = resolveObjectKey(obj, key);\n\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nvar Config = /*#__PURE__*/function () {\n function Config(config) {\n _classCallCheck(this, Config);\n\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n _createClass(Config, [{\n key: \"update\",\n value: function update() {\n var config = this._config;\n this.clearCache();\n initOptions(config);\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this._scopeCache.clear();\n\n this._resolverCache.clear();\n }\n }, {\n key: \"datasetScopeKeys\",\n value: function datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, function () {\n return [[\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetAnimationScopeKeys\",\n value: function datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(\"\".concat(datasetType, \".transition.\").concat(transition), function () {\n return [[\"datasets.\".concat(datasetType, \".transitions.\").concat(transition), \"transitions.\".concat(transition)], [\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetElementScopeKeys\",\n value: function datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(\"\".concat(datasetType, \"-\").concat(elementType), function () {\n return [[\"datasets.\".concat(datasetType, \".elements.\").concat(elementType), \"datasets.\".concat(datasetType), \"elements.\".concat(elementType), '']];\n });\n }\n }, {\n key: \"pluginScopeKeys\",\n value: function pluginScopeKeys(plugin) {\n var id = plugin.id;\n var type = this.type;\n return cachedKeys(\"\".concat(type, \"-plugin-\").concat(id), function () {\n return [[\"plugins.\".concat(id)].concat(_toConsumableArray(plugin.additionalOptionScopes || []))];\n });\n }\n }, {\n key: \"_cachedScopes\",\n value: function _cachedScopes(mainScope, resetCache) {\n var _scopeCache = this._scopeCache;\n\n var cache = _scopeCache.get(mainScope);\n\n if (!cache || resetCache) {\n cache = new Map();\n\n _scopeCache.set(mainScope, cache);\n }\n\n return cache;\n }\n }, {\n key: \"getOptionScopes\",\n value: function getOptionScopes(mainScope, keyLists, resetCache) {\n var options = this.options,\n type = this.type;\n\n var cache = this._cachedScopes(mainScope, resetCache);\n\n var cached = cache.get(keyLists);\n\n if (cached) {\n return cached;\n }\n\n var scopes = new Set();\n keyLists.forEach(function (keys) {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(function (key) {\n return addIfFound(scopes, mainScope, key);\n });\n }\n\n keys.forEach(function (key) {\n return addIfFound(scopes, options, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, overrides[type] || {}, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, defaults, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, descriptors, key);\n });\n });\n var array = Array.from(scopes);\n\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n\n return array;\n }\n }, {\n key: \"chartOptionScopes\",\n value: function chartOptionScopes() {\n var options = this.options,\n type = this.type;\n return [options, overrides[type] || {}, defaults.datasets[type] || {}, {\n type: type\n }, defaults, descriptors];\n }\n }, {\n key: \"resolveNamedOptions\",\n value: function resolveNamedOptions(scopes, names, context) {\n var prefixes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [''];\n var result = {\n $shared: true\n };\n\n var _getResolver = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver.resolver,\n subPrefixes = _getResolver.subPrefixes;\n\n var options = resolver;\n\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n var subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n var _iterator12 = _createForOfIteratorHelper(names),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var prop = _step12.value;\n result[prop] = options[prop];\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n return result;\n }\n }, {\n key: \"createResolver\",\n value: function createResolver(scopes, context) {\n var prefixes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [''];\n var descriptorDefaults = arguments.length > 3 ? arguments[3] : undefined;\n\n var _getResolver2 = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver2.resolver;\n\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n }, {\n key: \"platform\",\n get: function get() {\n return this._config.platform;\n }\n }, {\n key: \"type\",\n get: function get() {\n return this._config.type;\n },\n set: function set(type) {\n this._config.type = type;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this._config.data;\n },\n set: function set(data) {\n this._config.data = initData(data);\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._config.options;\n },\n set: function set(options) {\n this._config.options = options;\n }\n }, {\n key: \"plugins\",\n get: function get() {\n return this._config.plugins;\n }\n }]);\n\n return Config;\n}();\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n var cache = resolverCache.get(scopes);\n\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n\n var cacheKey = prefixes.join();\n var cached = cache.get(cacheKey);\n\n if (!cached) {\n var resolver = _createResolver(scopes, prefixes);\n\n cached = {\n resolver: resolver,\n subPrefixes: prefixes.filter(function (p) {\n return !p.toLowerCase().includes('hover');\n })\n };\n cache.set(cacheKey, cached);\n }\n\n return cached;\n}\n\nvar hasFunction = function hasFunction(value) {\n return isObject(value) && Object.getOwnPropertyNames(value).reduce(function (acc, key) {\n return acc || isFunction(value[key]);\n }, false);\n};\n\nfunction needContext(proxy, names) {\n var _descriptors2 = _descriptors(proxy),\n isScriptable = _descriptors2.isScriptable,\n isIndexable = _descriptors2.isIndexable;\n\n var _iterator13 = _createForOfIteratorHelper(names),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var prop = _step13.value;\n var scriptable = isScriptable(prop);\n var indexable = isIndexable(prop);\n var value = (indexable || scriptable) && proxy[prop];\n\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n return false;\n}\n\nvar version = \"3.6.0\";\nvar KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\n\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\n\nfunction compare2Level(l1, l2) {\n return function (a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n\n if (item && item.canvas) {\n item = item.canvas;\n }\n\n return item;\n}\n\nvar instances = {};\n\nvar getChart = function getChart(key) {\n var canvas = getCanvas(key);\n return Object.values(instances).filter(function (c) {\n return c.canvas === canvas;\n }).pop();\n};\n\nvar Chart = /*#__PURE__*/function () {\n function Chart(item, userConfig) {\n var _this11 = this;\n\n _classCallCheck(this, Chart);\n\n var config = this.config = new Config(userConfig);\n var initialCanvas = getCanvas(item);\n var existingChart = getChart(initialCanvas);\n\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas can be reused.');\n }\n\n var options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n var context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n var canvas = context && context.canvas;\n var height = canvas && canvas.height;\n var width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(function (mode) {\n return _this11.update(mode);\n }, options.resizeDelay || 0);\n instances[this.id] = this;\n\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n\n this._initialize();\n\n if (this.attached) {\n this.update();\n }\n }\n\n _createClass(Chart, [{\n key: \"_initialize\",\n value: function _initialize() {\n this.notifyPlugins('beforeInit');\n\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n animator.stop(this);\n return this;\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width: width,\n height: height\n };\n }\n }\n }, {\n key: \"_resize\",\n value: function _resize(width, height) {\n var options = this.options;\n var canvas = this.canvas;\n var aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n var newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n var newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n var mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [this, newSize], this);\n\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n }, {\n key: \"ensureScalesHaveIDs\",\n value: function ensureScalesHaveIDs() {\n var options = this.options;\n var scalesOptions = options.scales || {};\n each(scalesOptions, function (axisOptions, axisID) {\n axisOptions.id = axisID;\n });\n }\n }, {\n key: \"buildOrUpdateScales\",\n value: function buildOrUpdateScales() {\n var _this12 = this;\n\n var options = this.options;\n var scaleOpts = options.scales;\n var scales = this.scales;\n var updated = Object.keys(scales).reduce(function (obj, id) {\n obj[id] = false;\n return obj;\n }, {});\n var items = [];\n\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map(function (id) {\n var scaleOptions = scaleOpts[id];\n var axis = determineAxis(id, scaleOptions);\n var isRadial = axis === 'r';\n var isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n\n each(items, function (item) {\n var scaleOptions = item.options;\n var id = scaleOptions.id;\n var axis = determineAxis(id, scaleOptions);\n var scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n var scale = null;\n\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n var scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id: id,\n type: scaleType,\n ctx: _this12.ctx,\n chart: _this12\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n each(updated, function (hasUpdated, id) {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, function (scale) {\n layouts.configure(_this12, scale, scale.options);\n layouts.addBox(_this12, scale);\n });\n }\n }, {\n key: \"_updateMetasets\",\n value: function _updateMetasets() {\n var metasets = this._metasets;\n var numData = this.data.datasets.length;\n var numMeta = metasets.length;\n metasets.sort(function (a, b) {\n return a.index - b.index;\n });\n\n if (numMeta > numData) {\n for (var i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n\n metasets.splice(numData, numMeta - numData);\n }\n\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n }, {\n key: \"_removeUnreferencedMetasets\",\n value: function _removeUnreferencedMetasets() {\n var _this13 = this;\n\n var metasets = this._metasets,\n datasets = this.data.datasets;\n\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n\n metasets.forEach(function (meta, index) {\n if (datasets.filter(function (x) {\n return x === meta._dataset;\n }).length === 0) {\n _this13._destroyDatasetMeta(index);\n }\n });\n }\n }, {\n key: \"buildOrUpdateControllers\",\n value: function buildOrUpdateControllers() {\n var newControllers = [];\n var datasets = this.data.datasets;\n var i, ilen;\n\n this._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n var dataset = datasets[i];\n var meta = this.getDatasetMeta(i);\n var type = dataset.type || this.config.type;\n\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n\n meta = this.getDatasetMeta(i);\n }\n\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n var ControllerClass = registry.getController(type);\n var _defaults$datasets$ty = defaults.datasets[type],\n datasetElementType = _defaults$datasets$ty.datasetElementType,\n dataElementType = _defaults$datasets$ty.dataElementType;\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n\n this._updateMetasets();\n\n return newControllers;\n }\n }, {\n key: \"_resetElements\",\n value: function _resetElements() {\n var _this14 = this;\n\n each(this.data.datasets, function (dataset, datasetIndex) {\n _this14.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElements();\n\n this.notifyPlugins('reset');\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var _this15 = this;\n\n var config = this.config;\n config.update();\n var options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n each(this.scales, function (scale) {\n layouts.removeBox(_this15, scale);\n });\n var animsDisabled = this._animationsDisabled = !options.animation;\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n var existingEvents = new Set(Object.keys(this._listeners));\n var newEvents = new Set(options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n\n this._plugins.invalidate();\n\n if (this.notifyPlugins('beforeUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n var newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n var minPadding = 0;\n\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n var _this$getDatasetMeta = this.getDatasetMeta(i),\n controller = _this$getDatasetMeta.controller;\n\n var reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n\n this._updateLayout(minPadding);\n\n if (!animsDisabled) {\n each(newControllers, function (controller) {\n controller.reset();\n });\n }\n\n this._updateDatasets(mode);\n\n this.notifyPlugins('afterUpdate', {\n mode: mode\n });\n\n this._layers.sort(compare2Level('z', '_idx'));\n\n if (this._lastEvent) {\n this._eventHandler(this._lastEvent, true);\n }\n\n this.render();\n }\n }, {\n key: \"_updateLayout\",\n value: function _updateLayout(minPadding) {\n var _this16 = this;\n\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height, minPadding);\n var area = this.chartArea;\n var noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, function (box) {\n var _this16$_layers;\n\n if (noArea && box.position === 'chartArea') {\n return;\n }\n\n if (box.configure) {\n box.configure();\n }\n\n (_this16$_layers = _this16._layers).push.apply(_this16$_layers, _toConsumableArray(box._layers()));\n }, this);\n\n this._layers.forEach(function (item, index) {\n item._idx = index;\n });\n\n this.notifyPlugins('afterLayout');\n }\n }, {\n key: \"_updateDatasets\",\n value: function _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n\n this.notifyPlugins('afterDatasetsUpdate', {\n mode: mode\n });\n }\n }, {\n key: \"_updateDataset\",\n value: function _updateDataset(index, mode) {\n var meta = this.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index,\n mode: mode,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var i;\n\n if (this._resizeBeforeDraw) {\n var _this$_resizeBeforeDr = this._resizeBeforeDraw,\n width = _this$_resizeBeforeDr.width,\n height = _this$_resizeBeforeDr.height;\n\n this._resize(width, height);\n\n this._resizeBeforeDraw = null;\n }\n\n this.clear();\n\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var layers = this._layers;\n\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this._drawDatasets();\n\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this.notifyPlugins('afterDraw');\n }\n }, {\n key: \"_getSortedDatasetMetas\",\n value: function _getSortedDatasetMetas(filterVisible) {\n var metasets = this._sortedMetasets;\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n var meta = metasets[i];\n\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"getSortedVisibleDatasetMetas\",\n value: function getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n }, {\n key: \"_drawDatasets\",\n value: function _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var metasets = this.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n\n this.notifyPlugins('afterDatasetsDraw');\n }\n }, {\n key: \"_drawDataset\",\n value: function _drawDataset(meta) {\n var ctx = this.ctx;\n var clip = meta._clip;\n var useClip = !clip.disabled;\n var area = this.chartArea;\n var args = {\n meta: meta,\n index: meta.index,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n }, {\n key: \"getElementsAtEventForMode\",\n value: function getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n var method = Interaction.modes[mode];\n\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n }, {\n key: \"getDatasetMeta\",\n value: function getDatasetMeta(datasetIndex) {\n var dataset = this.data.datasets[datasetIndex];\n var metasets = this._metasets;\n var meta = metasets.filter(function (x) {\n return x && x._dataset === dataset;\n }).pop();\n\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n\n return meta;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n }, {\n key: \"getVisibleDatasetCount\",\n value: function getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n }, {\n key: \"isDatasetVisible\",\n value: function isDatasetVisible(datasetIndex) {\n var dataset = this.data.datasets[datasetIndex];\n\n if (!dataset) {\n return false;\n }\n\n var meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n }, {\n key: \"setDatasetVisibility\",\n value: function setDatasetVisibility(datasetIndex, visible) {\n var meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n }, {\n key: \"toggleDataVisibility\",\n value: function toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n }, {\n key: \"getDataVisibility\",\n value: function getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n }, {\n key: \"_updateVisibility\",\n value: function _updateVisibility(datasetIndex, dataIndex, visible) {\n var mode = visible ? 'show' : 'hide';\n var meta = this.getDatasetMeta(datasetIndex);\n\n var anims = meta.controller._resolveAnimations(undefined, mode);\n\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible: visible\n });\n this.update(function (ctx) {\n return ctx.datasetIndex === datasetIndex ? mode : undefined;\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n }, {\n key: \"show\",\n value: function show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n }, {\n key: \"_destroyDatasetMeta\",\n value: function _destroyDatasetMeta(datasetIndex) {\n var meta = this._metasets[datasetIndex];\n\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n\n delete this._metasets[datasetIndex];\n }\n }, {\n key: \"_stop\",\n value: function _stop() {\n var i, ilen;\n this.stop();\n animator.remove(this);\n\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var canvas = this.canvas,\n ctx = this.ctx;\n\n this._stop();\n\n this.config.clearCache();\n\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n\n this.notifyPlugins('destroy');\n delete instances[this.id];\n }\n }, {\n key: \"toBase64Image\",\n value: function toBase64Image() {\n var _this$canvas;\n\n return (_this$canvas = this.canvas).toDataURL.apply(_this$canvas, arguments);\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n this.bindUserEvents();\n\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n }, {\n key: \"bindUserEvents\",\n value: function bindUserEvents() {\n var _this17 = this;\n\n var listeners = this._listeners;\n var platform = this.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(_this17, type, listener);\n listeners[type] = listener;\n };\n\n var listener = function listener(e, x, y) {\n e.offsetX = x;\n e.offsetY = y;\n\n _this17._eventHandler(e);\n };\n\n each(this.options.events, function (type) {\n return _add(type, listener);\n });\n }\n }, {\n key: \"bindResponsiveEvents\",\n value: function bindResponsiveEvents() {\n var _this18 = this;\n\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n\n var listeners = this._responsiveListeners;\n var platform = this.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(_this18, type, listener);\n listeners[type] = listener;\n };\n\n var _remove = function _remove(type, listener) {\n if (listeners[type]) {\n platform.removeEventListener(_this18, type, listener);\n delete listeners[type];\n }\n };\n\n var listener = function listener(width, height) {\n if (_this18.canvas) {\n _this18.resize(width, height);\n }\n };\n\n var detached;\n\n var attached = function attached() {\n _remove('attach', attached);\n\n _this18.attached = true;\n\n _this18.resize();\n\n _add('resize', listener);\n\n _add('detach', detached);\n };\n\n detached = function detached() {\n _this18.attached = false;\n\n _remove('resize', listener);\n\n _this18._stop();\n\n _this18._resize(0, 0);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n var _this19 = this;\n\n each(this._listeners, function (listener, type) {\n _this19.platform.removeEventListener(_this19, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, function (listener, type) {\n _this19.platform.removeEventListener(_this19, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n }, {\n key: \"updateHoverStyle\",\n value: function updateHoverStyle(items, mode, enabled) {\n var prefix = enabled ? 'set' : 'remove';\n var meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n var controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements) {\n var _this20 = this;\n\n var lastActive = this._active || [];\n var active = activeElements.map(function (_ref5) {\n var datasetIndex = _ref5.datasetIndex,\n index = _ref5.index;\n\n var meta = _this20.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n this._active = active;\n\n this._updateHoverStyles(active, lastActive);\n }\n }\n }, {\n key: \"notifyPlugins\",\n value: function notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n }, {\n key: \"_updateHoverStyles\",\n value: function _updateHoverStyles(active, lastActive, replay) {\n var hoverOptions = this.options.hover;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.datasetIndex === y.datasetIndex && x.index === y.index;\n });\n });\n };\n\n var deactivated = diff(lastActive, active);\n var activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n }, {\n key: \"_eventHandler\",\n value: function _eventHandler(e, replay) {\n var _this21 = this;\n\n var args = {\n event: e,\n replay: replay,\n cancelable: true\n };\n\n var eventFilter = function eventFilter(plugin) {\n return (plugin.options.events || _this21.options.events).includes(e[\"native\"].type);\n };\n\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n var changed = this._handleEvent(e, replay);\n\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n this.render();\n }\n\n return this;\n }\n }, {\n key: \"_handleEvent\",\n value: function _handleEvent(e, replay) {\n var _this$_active = this._active,\n lastActive = _this$_active === void 0 ? [] : _this$_active,\n options = this.options;\n var hoverOptions = options.hover;\n var useFinalPosition = replay;\n var active = [];\n var changed = false;\n var lastEvent = null;\n\n if (e.type !== 'mouseout') {\n active = this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n lastEvent = e.type === 'click' ? this._lastEvent : e;\n }\n\n this._lastEvent = null;\n\n if (_isPointInArea(e, this.chartArea, this._minPadding)) {\n callback(options.onHover, [e, active, this], this);\n\n if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {\n callback(options.onClick, [e, active, this], this);\n }\n }\n\n changed = !_elementsEqual(active, lastActive);\n\n if (changed || replay) {\n this._active = active;\n\n this._updateHoverStyles(active, lastActive, replay);\n }\n\n this._lastEvent = lastEvent;\n return changed;\n }\n }, {\n key: \"aspectRatio\",\n get: function get() {\n var _this$options10 = this.options,\n aspectRatio = _this$options10.aspectRatio,\n maintainAspectRatio = _this$options10.maintainAspectRatio,\n width = this.width,\n height = this.height,\n _aspectRatio = this._aspectRatio;\n\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n\n return height ? width / height : null;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.config.data;\n },\n set: function set(data) {\n this.config.data = data;\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this.config.options = options;\n }\n }]);\n\n return Chart;\n}();\n\nvar invalidatePlugins = function invalidatePlugins() {\n return each(Chart.instances, function (chart) {\n return chart._plugins.invalidate();\n });\n};\n\nvar enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable: enumerable,\n value: defaults\n },\n instances: {\n enumerable: enumerable,\n value: instances\n },\n overrides: {\n enumerable: enumerable,\n value: overrides\n },\n registry: {\n enumerable: enumerable,\n value: registry\n },\n version: {\n enumerable: enumerable,\n value: version\n },\n getChart: {\n enumerable: enumerable,\n value: getChart\n },\n register: {\n enumerable: enumerable,\n value: function value() {\n registry.add.apply(registry, arguments);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable: enumerable,\n value: function value() {\n registry.remove.apply(registry, arguments);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n var startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n x = element.x,\n y = element.y,\n outerRadius = element.outerRadius,\n innerRadius = element.innerRadius;\n var angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n\n ctx.closePath();\n ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n var o = toRadiusCorners(arc.options.borderRadius);\n var halfThickness = (outerRadius - innerRadius) / 2;\n var innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n var computeOuterLimit = function computeOuterLimit(val) {\n var outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n\nfunction pathArc(ctx, element, offset, spacing, end) {\n var x = element.x,\n y = element.y,\n start = element.startAngle,\n pixelMargin = element.pixelMargin,\n innerR = element.innerRadius;\n var outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n var innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n var spacingOffset = 0;\n var alpha = end - start;\n\n if (spacing) {\n var noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n var noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n var avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n var adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n\n var beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n var angleOffset = (alpha - beta) / 2;\n var startAngle = start + angleOffset + spacingOffset;\n var endAngle = end - angleOffset - spacingOffset;\n\n var _parseBorderRadius$ = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle),\n outerStart = _parseBorderRadius$.outerStart,\n outerEnd = _parseBorderRadius$.outerEnd,\n innerStart = _parseBorderRadius$.innerStart,\n innerEnd = _parseBorderRadius$.innerEnd;\n\n var outerStartAdjustedRadius = outerRadius - outerStart;\n var outerEndAdjustedRadius = outerRadius - outerEnd;\n var outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n var outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n var innerStartAdjustedRadius = innerRadius + innerStart;\n var innerEndAdjustedRadius = innerRadius + innerEnd;\n var innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n var innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n\n if (outerEnd > 0) {\n var pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n\n var p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n\n if (innerEnd > 0) {\n var _pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n\n ctx.arc(_pCenter.x, _pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, startAngle + innerStart / innerRadius, true);\n\n if (innerStart > 0) {\n var _pCenter2 = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter2.x, _pCenter2.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n\n var p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n\n if (outerStart > 0) {\n var _pCenter3 = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter3.x, _pCenter3.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n\n ctx.closePath();\n}\n\nfunction drawArc(ctx, element, offset, spacing) {\n var fullCircles = element.fullCircles,\n startAngle = element.startAngle,\n circumference = element.circumference;\n var endAngle = element.endAngle;\n\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n\n for (var i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\n\nfunction drawFullCircleBorders(ctx, element, inner) {\n var x = element.x,\n y = element.y,\n startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n fullCircles = element.fullCircles;\n var outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n var innerRadius = element.innerRadius + pixelMargin;\n var i;\n\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\n\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n var options = element.options;\n var inner = options.borderAlign === 'inner';\n\n if (!options.borderWidth) {\n return;\n }\n\n if (inner) {\n ctx.lineWidth = options.borderWidth * 2;\n ctx.lineJoin = 'round';\n } else {\n ctx.lineWidth = options.borderWidth;\n ctx.lineJoin = 'bevel';\n }\n\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\n\nvar ArcElement = /*#__PURE__*/function (_Element2) {\n _inherits(ArcElement, _Element2);\n\n var _super12 = _createSuper(ArcElement);\n\n function ArcElement(cfg) {\n var _this22;\n\n _classCallCheck(this, ArcElement);\n\n _this22 = _super12.call(this);\n _this22.options = undefined;\n _this22.circumference = undefined;\n _this22.startAngle = undefined;\n _this22.endAngle = undefined;\n _this22.innerRadius = undefined;\n _this22.outerRadius = undefined;\n _this22.pixelMargin = 0;\n _this22.fullCircles = 0;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this22), cfg);\n }\n\n return _this22;\n }\n\n _createClass(ArcElement, [{\n key: \"inRange\",\n value: function inRange(chartX, chartY, useFinalPosition) {\n var point = this.getProps(['x', 'y'], useFinalPosition);\n\n var _getAngleFromPoint = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n }),\n angle = _getAngleFromPoint.angle,\n distance = _getAngleFromPoint.distance;\n\n var _this$getProps2 = this.getProps(['startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n startAngle = _this$getProps2.startAngle,\n endAngle = _this$getProps2.endAngle,\n innerRadius = _this$getProps2.innerRadius,\n outerRadius = _this$getProps2.outerRadius,\n circumference = _this$getProps2.circumference;\n\n var rAdjust = this.options.spacing / 2;\n\n var betweenAngles = circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n\n var withinRadius = distance >= innerRadius + rAdjust && distance <= outerRadius + rAdjust;\n return betweenAngles && withinRadius;\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps3 = this.getProps(['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n x = _this$getProps3.x,\n y = _this$getProps3.y,\n startAngle = _this$getProps3.startAngle,\n endAngle = _this$getProps3.endAngle,\n innerRadius = _this$getProps3.innerRadius,\n outerRadius = _this$getProps3.outerRadius;\n\n var _this$options11 = this.options,\n offset = _this$options11.offset,\n spacing = _this$options11.spacing;\n var halfAngle = (startAngle + endAngle) / 2;\n var halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n }, {\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options,\n circumference = this.circumference;\n var offset = (options.offset || 0) / 2;\n var spacing = (options.spacing || 0) / 2;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n var radiusOffset = 0;\n\n if (offset) {\n radiusOffset = offset / 2;\n var halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n var endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n }]);\n\n return ArcElement;\n}(Element);\n\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options) {\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : options;\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var count = points.length;\n var _params$start = params.start,\n paramsStart = _params$start === void 0 ? 0 : _params$start,\n _params$end = params.end,\n paramsEnd = _params$end === void 0 ? count - 1 : _params$end;\n var segmentStart = segment.start,\n segmentEnd = segment.end;\n var start = Math.max(paramsStart, segmentStart);\n var end = Math.min(paramsEnd, segmentEnd);\n var outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count: count,\n start: start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\nfunction pathSegment(ctx, line, segment, params) {\n var points = line.points,\n options = line.options;\n\n var _pathVars = pathVars(points, segment, params),\n count = _pathVars.count,\n start = _pathVars.start,\n loop = _pathVars.loop,\n ilen = _pathVars.ilen;\n\n var lineMethod = getLineMethod(options);\n\n var _ref6 = params || {},\n _ref6$move = _ref6.move,\n move = _ref6$move === void 0 ? true : _ref6$move,\n reverse = _ref6.reverse;\n\n var i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\nfunction fastPathSegment(ctx, line, segment, params) {\n var points = line.points;\n\n var _pathVars2 = pathVars(points, segment, params),\n count = _pathVars2.count,\n start = _pathVars2.start,\n ilen = _pathVars2.ilen;\n\n var _ref7 = params || {},\n _ref7$move = _ref7.move,\n move = _ref7$move === void 0 ? true : _ref7$move,\n reverse = _ref7.reverse;\n\n var avgX = 0;\n var countX = 0;\n var i, point, prevX, minY, maxY, lastY;\n\n var pointIndex = function pointIndex(index) {\n return (start + (reverse ? ilen - index : index)) % count;\n };\n\n var drawX = function drawX() {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n continue;\n }\n\n var x = point.x;\n var y = point.y;\n var truncX = x | 0;\n\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n\n lastY = y;\n }\n\n drawX();\n}\n\nfunction _getSegmentMethod(line) {\n var opts = line.options;\n var borderDash = opts.borderDash && opts.borderDash.length;\n var useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n var path = line._path;\n\n if (!path) {\n path = line._path = new Path2D();\n\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n var segments = line.segments,\n options = line.options;\n\n var segmentMethod = _getSegmentMethod(line);\n\n var _iterator14 = _createForOfIteratorHelper(segments),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var segment = _step14.value;\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n\n if (segmentMethod(ctx, line, segment, {\n start: start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n\n ctx.stroke();\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n}\n\nvar usePath2D = typeof Path2D === 'function';\n\nfunction _draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\n\nvar LineElement = /*#__PURE__*/function (_Element3) {\n _inherits(LineElement, _Element3);\n\n var _super13 = _createSuper(LineElement);\n\n function LineElement(cfg) {\n var _this23;\n\n _classCallCheck(this, LineElement);\n\n _this23 = _super13.call(this);\n _this23.animated = true;\n _this23.options = undefined;\n _this23._chart = undefined;\n _this23._loop = undefined;\n _this23._fullLoop = undefined;\n _this23._path = undefined;\n _this23._points = undefined;\n _this23._segments = undefined;\n _this23._decimated = false;\n _this23._pointsUpdated = false;\n _this23._datasetIndex = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this23), cfg);\n }\n\n return _this23;\n }\n\n _createClass(LineElement, [{\n key: \"updateControlPoints\",\n value: function updateControlPoints(chartArea, indexAxis) {\n var options = this.options;\n\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n var loop = options.spanGaps ? this._loop : this._fullLoop;\n\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n\n this._pointsUpdated = true;\n }\n }\n }, {\n key: \"first\",\n value: function first() {\n var segments = this.segments;\n var points = this.points;\n return segments.length && points[segments[0].start];\n }\n }, {\n key: \"last\",\n value: function last() {\n var segments = this.segments;\n var points = this.points;\n var count = segments.length;\n return count && points[segments[count - 1].end];\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point, property) {\n var options = this.options;\n var value = point[property];\n var points = this.points;\n\n var segments = _boundSegments(this, {\n property: property,\n start: value,\n end: value\n });\n\n if (!segments.length) {\n return;\n }\n\n var result = [];\n\n var _interpolate = _getInterpolationMethod(options);\n\n var i, ilen;\n\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n var _segments$i = segments[i],\n start = _segments$i.start,\n end = _segments$i.end;\n var p1 = points[start];\n var p2 = points[end];\n\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n\n var t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n\n var interpolated = _interpolate(p1, p2, t, options.stepped);\n\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n\n return result.length === 1 ? result[0] : result;\n }\n }, {\n key: \"pathSegment\",\n value: function pathSegment(ctx, segment, params) {\n var segmentMethod = _getSegmentMethod(this);\n\n return segmentMethod(ctx, this, segment, params);\n }\n }, {\n key: \"path\",\n value: function path(ctx, start, count) {\n var segments = this.segments;\n\n var segmentMethod = _getSegmentMethod(this);\n\n var loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n\n var _iterator15 = _createForOfIteratorHelper(segments),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var segment = _step15.value;\n loop &= segmentMethod(ctx, this, segment, {\n start: start,\n end: start + count - 1\n });\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n\n return !!loop;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, chartArea, start, count) {\n var options = this.options || {};\n var points = this.points || [];\n\n if (points.length && options.borderWidth) {\n ctx.save();\n\n _draw(ctx, this, start, count);\n\n ctx.restore();\n }\n\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n }, {\n key: \"points\",\n set: function set(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n },\n get: function get() {\n return this._points;\n }\n }, {\n key: \"segments\",\n get: function get() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n }]);\n\n return LineElement;\n}(Element);\n\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: function _indexable(name) {\n return name !== 'borderDash' && name !== 'fill';\n }\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n var options = el.options;\n\n var _el$getProps = el.getProps([axis], useFinalPosition),\n value = _el$getProps[axis];\n\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\n\nvar PointElement = /*#__PURE__*/function (_Element4) {\n _inherits(PointElement, _Element4);\n\n var _super14 = _createSuper(PointElement);\n\n function PointElement(cfg) {\n var _this24;\n\n _classCallCheck(this, PointElement);\n\n _this24 = _super14.call(this);\n _this24.options = undefined;\n _this24.parsed = undefined;\n _this24.skip = undefined;\n _this24.stop = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this24), cfg);\n }\n\n return _this24;\n }\n\n _createClass(PointElement, [{\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n var options = this.options;\n\n var _this$getProps4 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps4.x,\n y = _this$getProps4.y;\n\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps5 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps5.x,\n y = _this$getProps5.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"size\",\n value: function size(options) {\n options = options || this.options || {};\n var radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n var borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, area) {\n var options = this.options;\n\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n }, {\n key: \"getRange\",\n value: function getRange() {\n var options = this.options || {};\n return options.radius + options.hitRadius;\n }\n }]);\n\n return PointElement;\n}(Element);\n\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n var _bar$getProps = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition),\n x = _bar$getProps.x,\n y = _bar$getProps.y,\n base = _bar$getProps.base,\n width = _bar$getProps.width,\n height = _bar$getProps.height;\n\n var left, right, top, bottom, half;\n\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n var value = bar.options.borderWidth;\n var skip = bar.borderSkipped;\n var o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n var _bar$getProps2 = bar.getProps(['enableBorderRadius']),\n enableBorderRadius = _bar$getProps2.enableBorderRadius;\n\n var value = bar.options.borderRadius;\n var o = toTRBLCorners(value);\n var maxR = Math.min(maxW, maxH);\n var skip = bar.borderSkipped;\n var enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\n\nfunction boundingRects(bar) {\n var bounds = getBarBounds(bar);\n var width = bounds.right - bounds.left;\n var height = bounds.bottom - bounds.top;\n var border = parseBorderWidth(bar, width / 2, height / 2);\n var radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius: radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\n\nfunction _inRange(bar, x, y, useFinalPosition) {\n var skipX = x === null;\n var skipY = y === null;\n var skipBoth = skipX && skipY;\n var bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || x >= bounds.left && x <= bounds.right) && (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount) {\n var refRect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var x = rect.x !== refRect.x ? -amount : 0;\n var y = rect.y !== refRect.y ? -amount : 0;\n var w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n var h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\n\nvar BarElement = /*#__PURE__*/function (_Element5) {\n _inherits(BarElement, _Element5);\n\n var _super15 = _createSuper(BarElement);\n\n function BarElement(cfg) {\n var _this25;\n\n _classCallCheck(this, BarElement);\n\n _this25 = _super15.call(this);\n _this25.options = undefined;\n _this25.horizontal = undefined;\n _this25.base = undefined;\n _this25.width = undefined;\n _this25.height = undefined;\n _this25.inflateAmount = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this25), cfg);\n }\n\n return _this25;\n }\n\n _createClass(BarElement, [{\n key: \"draw\",\n value: function draw(ctx) {\n var inflateAmount = this.inflateAmount,\n _this$options12 = this.options,\n borderColor = _this$options12.borderColor,\n backgroundColor = _this$options12.backgroundColor;\n\n var _boundingRects = boundingRects(this),\n inner = _boundingRects.inner,\n outer = _boundingRects.outer;\n\n var addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }, {\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n return _inRange(this, mouseX, mouseY, useFinalPosition);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return _inRange(this, mouseX, null, useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return _inRange(this, null, mouseY, useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps6 = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition),\n x = _this$getProps6.x,\n y = _this$getProps6.y,\n base = _this$getProps6.base,\n horizontal = _this$getProps6.horizontal;\n\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n }, {\n key: \"getRange\",\n value: function getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n }]);\n\n return BarElement;\n}(Element);\n\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nvar elements = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArcElement: ArcElement,\n LineElement: LineElement,\n PointElement: PointElement,\n BarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n var samples = options.samples || availableWidth;\n\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n\n var decimated = [];\n var bucketWidth = (count - 2) / (samples - 2);\n var sampledIndex = 0;\n var endIndex = start + count - 1;\n var a = start;\n var i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n\n for (i = 0; i < samples - 2; i++) {\n var avgX = 0;\n var avgY = 0;\n var j = void 0;\n var avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n var avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n var avgRangeLength = avgRangeEnd - avgRangeStart;\n\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n var rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n var rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n var _data$a = data[a],\n pointAx = _data$a.x,\n pointAy = _data$a.y;\n maxArea = area = -1;\n\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\n\nfunction minMaxDecimation(data, start, count, availableWidth) {\n var avgX = 0;\n var countX = 0;\n var i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n var decimated = [];\n var endIndex = start + count - 1;\n var xMin = data[start].x;\n var xMax = data[endIndex].x;\n var dx = xMax - xMin;\n\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n var truncX = x | 0;\n\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n var lastIndex = i - 1;\n\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n var intermediateIndex1 = Math.min(minIndex, maxIndex);\n var intermediateIndex2 = Math.max(minIndex, maxIndex);\n\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex1]), {}, {\n x: avgX\n }));\n }\n\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex2]), {}, {\n x: avgX\n }));\n }\n }\n\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n\n return decimated;\n}\n\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n var data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n value: data\n });\n }\n}\n\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach(function (dataset) {\n cleanDecimatedDataset(dataset);\n });\n}\n\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n var pointCount = points.length;\n var start = 0;\n var count;\n var iScale = meta.iScale;\n\n var _iScale$getUserBounds2 = iScale.getUserBounds(),\n min = _iScale$getUserBounds2.min,\n max = _iScale$getUserBounds2.max,\n minDefined = _iScale$getUserBounds2.minDefined,\n maxDefined = _iScale$getUserBounds2.maxDefined;\n\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: function beforeElementsUpdate(chart, args, options) {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n\n var availableWidth = chart.width;\n chart.data.datasets.forEach(function (dataset, datasetIndex) {\n var _data = dataset._data,\n indexAxis = dataset.indexAxis;\n var meta = chart.getDatasetMeta(datasetIndex);\n var data = _data || dataset.data;\n\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n\n if (meta.type !== 'line') {\n return;\n }\n\n var xAxis = chart.scales[meta.xAxisID];\n\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n\n if (chart.options.parsing) {\n return;\n }\n\n var _getStartAndCountOfVi2 = getStartAndCountOfVisiblePointsSimplified(meta, data),\n start = _getStartAndCountOfVi2.start,\n count = _getStartAndCountOfVi2.count;\n\n var threshold = options.threshold || 4 * availableWidth;\n\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function get() {\n return this._decimated;\n },\n set: function set(d) {\n this._data = d;\n }\n });\n }\n\n var decimated;\n\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n\n default:\n throw new Error(\"Unsupported decimation algorithm '\".concat(options.algorithm, \"'\"));\n }\n\n dataset._decimated = decimated;\n });\n },\n destroy: function destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n var meta = chart.getDatasetMeta(index);\n var visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\n\nfunction parseFillOption(line) {\n var options = line.options;\n var fillOption = options.fill;\n var fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n\n if (fill === false || fill === null) {\n return false;\n }\n\n if (fill === true) {\n return 'origin';\n }\n\n return fill;\n}\n\nfunction decodeFill(line, index, count) {\n var fill = parseFillOption(line);\n\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n\n var target = parseFloat(fill);\n\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n\n return target;\n }\n\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\n\nfunction computeLinearBoundary(source) {\n var _source$scale = source.scale,\n scale = _source$scale === void 0 ? {} : _source$scale,\n fill = source.fill;\n var target = null;\n var horizontal;\n\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n\n return null;\n}\n\nvar simpleArc = /*#__PURE__*/function () {\n function simpleArc(opts) {\n _classCallCheck(this, simpleArc);\n\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n\n _createClass(simpleArc, [{\n key: \"pathSegment\",\n value: function pathSegment(ctx, bounds, opts) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n var angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle: angle\n };\n }\n }]);\n\n return simpleArc;\n}();\n\nfunction computeCircularBoundary(source) {\n var scale = source.scale,\n fill = source.fill;\n var options = scale.options;\n var length = scale.getLabels().length;\n var target = [];\n var start = options.reverse ? scale.max : scale.min;\n var end = options.reverse ? scale.min : scale.max;\n var i, center, value;\n\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n\n return target;\n}\n\nfunction computeBoundary(source) {\n var scale = source.scale || {};\n\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n\n return computeLinearBoundary(source);\n}\n\nfunction findSegmentEnd(start, end, points) {\n for (; end > start; end--) {\n var point = points[end];\n\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n\n return end;\n}\n\nfunction pointsFromSegments(boundary, line) {\n var _ref8 = boundary || {},\n _ref8$x = _ref8.x,\n x = _ref8$x === void 0 ? null : _ref8$x,\n _ref8$y = _ref8.y,\n y = _ref8$y === void 0 ? null : _ref8$y;\n\n var linePoints = line.points;\n var points = [];\n line.segments.forEach(function (_ref9) {\n var start = _ref9.start,\n end = _ref9.end;\n end = findSegmentEnd(start, end, linePoints);\n var first = linePoints[start];\n var last = linePoints[end];\n\n if (y !== null) {\n points.push({\n x: first.x,\n y: y\n });\n points.push({\n x: last.x,\n y: y\n });\n } else if (x !== null) {\n points.push({\n x: x,\n y: first.y\n });\n points.push({\n x: x,\n y: last.y\n });\n }\n });\n return points;\n}\n\nfunction buildStackLine(source) {\n var scale = source.scale,\n index = source.index,\n line = source.line;\n var points = [];\n var segments = line.segments;\n var sourcePoints = line.points;\n var linesBelow = getLinesBelow(scale, index);\n linesBelow.push(createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n\n for (var j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n\n return new LineElement({\n points: points,\n options: {}\n });\n}\n\nfunction getLinesBelow(scale, index) {\n var below = [];\n var metas = scale.getMatchingVisibleMetas('line');\n\n for (var i = 0; i < metas.length; i++) {\n var meta = metas[i];\n\n if (meta.index === index) {\n break;\n }\n\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n\n return below;\n}\n\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n var postponed = [];\n\n for (var j = 0; j < linesBelow.length; j++) {\n var line = linesBelow[j];\n\n var _findPoint = findPoint(line, sourcePoint, 'x'),\n first = _findPoint.first,\n last = _findPoint.last,\n point = _findPoint.point;\n\n if (!point || first && last) {\n continue;\n }\n\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n\n if (!last) {\n break;\n }\n }\n }\n\n points.push.apply(points, postponed);\n}\n\nfunction findPoint(line, sourcePoint, property) {\n var point = line.interpolate(sourcePoint, property);\n\n if (!point) {\n return {};\n }\n\n var pointValue = point[property];\n var segments = line.segments;\n var linePoints = line.points;\n var first = false;\n var last = false;\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n var firstValue = linePoints[segment.start][property];\n var lastValue = linePoints[segment.end][property];\n\n if (pointValue >= firstValue && pointValue <= lastValue) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n\n return {\n first: first,\n last: last,\n point: point\n };\n}\n\nfunction getTarget(source) {\n var chart = source.chart,\n fill = source.fill,\n line = source.line;\n\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n\n if (fill === 'shape') {\n return true;\n }\n\n var boundary = computeBoundary(source);\n\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n\n return createBoundaryLine(boundary, line);\n}\n\nfunction createBoundaryLine(boundary, line) {\n var points = [];\n var _loop = false;\n\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n\n return points.length ? new LineElement({\n points: points,\n options: {\n tension: 0\n },\n _loop: _loop,\n _fullLoop: _loop\n }) : null;\n}\n\nfunction resolveTarget(sources, index, propagate) {\n var source = sources[index];\n var fill = source.fill;\n var visited = [index];\n var target;\n\n if (!propagate) {\n return fill;\n }\n\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n\n target = sources[fill];\n\n if (!target) {\n return false;\n }\n\n if (target.visible) {\n return fill;\n }\n\n visited.push(fill);\n fill = target.fill;\n }\n\n return false;\n}\n\nfunction _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\n\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n\n var start = first[property];\n var end = last[property];\n\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n\n return {\n property: property,\n start: start,\n end: end\n };\n}\n\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _segments(line, target, property) {\n var segments = line.segments;\n var points = line.points;\n var tpoints = target.points;\n var parts = [];\n\n var _iterator16 = _createForOfIteratorHelper(segments),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var segment = _step16.value;\n var start = segment.start,\n end = segment.end;\n end = findSegmentEnd(start, end, points);\n var bounds = getBounds(property, points[start], points[end], segment.loop);\n\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n\n var targetSegments = _boundSegments(target, bounds);\n\n var _iterator17 = _createForOfIteratorHelper(targetSegments),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var tgt = _step17.value;\n var subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n\n var fillSources = _boundSegment(segment, points, subBounds);\n\n var _iterator18 = _createForOfIteratorHelper(fillSources),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var fillSource = _step18.value;\n parts.push({\n source: fillSource,\n target: tgt,\n start: _defineProperty({}, property, _getEdge(bounds, subBounds, 'start', Math.max)),\n end: _defineProperty({}, property, _getEdge(bounds, subBounds, 'end', Math.min))\n });\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n\n return parts;\n}\n\nfunction clipBounds(ctx, scale, bounds) {\n var _scale$chart$chartAre = scale.chart.chartArea,\n top = _scale$chart$chartAre.top,\n bottom = _scale$chart$chartAre.bottom;\n\n var _ref10 = bounds || {},\n property = _ref10.property,\n start = _ref10.start,\n end = _ref10.end;\n\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\n\nfunction interpolatedLineTo(ctx, target, point, property) {\n var interpolatedPoint = target.interpolate(point, property);\n\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nfunction _fill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n property = cfg.property,\n color = cfg.color,\n scale = cfg.scale;\n\n var segments = _segments(line, target, property);\n\n var _iterator19 = _createForOfIteratorHelper(segments),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var _ref12 = _step19.value;\n var src = _ref12.source;\n var tgt = _ref12.target;\n var start = _ref12.start;\n var end = _ref12.end;\n var _src$style = src.style;\n _src$style = _src$style === void 0 ? {} : _src$style;\n var _src$style$background = _src$style.backgroundColor,\n backgroundColor = _src$style$background === void 0 ? color : _src$style$background;\n var notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && getBounds(property, start, end));\n ctx.beginPath();\n var lineLoop = !!line.pathSegment(ctx, src);\n var loop = void 0;\n\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n\n var targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n}\n\nfunction doFill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n above = cfg.above,\n below = cfg.below,\n area = cfg.area,\n scale = cfg.scale;\n var property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n\n _fill(ctx, {\n line: line,\n target: target,\n color: above,\n scale: scale,\n property: property\n });\n\n ctx.restore();\n ctx.save();\n\n _clip(ctx, target, area.bottom);\n }\n\n _fill(ctx, {\n line: line,\n target: target,\n color: below,\n scale: scale,\n property: property\n });\n\n ctx.restore();\n}\n\nfunction drawfill(ctx, source, area) {\n var target = getTarget(source);\n var line = source.line,\n scale = source.scale,\n axis = source.axis;\n var lineOpts = line.options;\n var fillOption = lineOpts.fill;\n var color = lineOpts.backgroundColor;\n\n var _ref13 = fillOption || {},\n _ref13$above = _ref13.above,\n above = _ref13$above === void 0 ? color : _ref13$above,\n _ref13$below = _ref13.below,\n below = _ref13$below === void 0 ? color : _ref13$below;\n\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line: line,\n target: target,\n above: above,\n below: below,\n area: area,\n scale: scale,\n axis: axis\n });\n unclipArea(ctx);\n }\n}\n\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate: function afterDatasetsUpdate(chart, _args, options) {\n var count = (chart.data.datasets || []).length;\n var sources = [];\n var meta, i, line, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart: chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line: line\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n\n if (!source || source.fill === false) {\n continue;\n }\n\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw: function beforeDraw(chart, _args, options) {\n var draw = options.drawTime === 'beforeDraw';\n var metasets = chart.getSortedVisibleDatasetMetas();\n var area = chart.chartArea;\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (!source) {\n continue;\n }\n\n source.line.updateControlPoints(area, source.axis);\n\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw: function beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n\n var metasets = chart.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw: function beforeDatasetDraw(chart, args, options) {\n var source = args.meta.$filler;\n\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nvar getBoxSize = function getBoxSize(labelOpts, fontSize) {\n var _labelOpts$boxHeight = labelOpts.boxHeight,\n boxHeight = _labelOpts$boxHeight === void 0 ? fontSize : _labelOpts$boxHeight,\n _labelOpts$boxWidth = labelOpts.boxWidth,\n boxWidth = _labelOpts$boxWidth === void 0 ? fontSize : _labelOpts$boxWidth;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth: boxWidth,\n boxHeight: boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nvar itemsEqual = function itemsEqual(a, b) {\n return a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n};\n\nvar Legend = /*#__PURE__*/function (_Element6) {\n _inherits(Legend, _Element6);\n\n var _super16 = _createSuper(Legend);\n\n function Legend(config) {\n var _this26;\n\n _classCallCheck(this, Legend);\n\n _this26 = _super16.call(this);\n _this26._added = false;\n _this26.legendHitBoxes = [];\n _this26._hoveredItem = null;\n _this26.doughnutMode = false;\n _this26.chart = config.chart;\n _this26.options = config.options;\n _this26.ctx = config.ctx;\n _this26.legendItems = undefined;\n _this26.columnSizes = undefined;\n _this26.lineWidths = undefined;\n _this26.maxHeight = undefined;\n _this26.maxWidth = undefined;\n _this26.top = undefined;\n _this26.bottom = undefined;\n _this26.left = undefined;\n _this26.right = undefined;\n _this26.height = undefined;\n _this26.width = undefined;\n _this26._margins = undefined;\n _this26.position = undefined;\n _this26.weight = undefined;\n _this26.fullSize = undefined;\n return _this26;\n }\n\n _createClass(Legend, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n }, {\n key: \"setDimensions\",\n value: function setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n }, {\n key: \"buildLabels\",\n value: function buildLabels() {\n var _this27 = this;\n\n var labelOpts = this.options.labels || {};\n var legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter(function (item) {\n return labelOpts.filter(item, _this27.chart.data);\n });\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort(function (a, b) {\n return labelOpts.sort(a, b, _this27.chart.data);\n });\n }\n\n if (this.options.reverse) {\n legendItems.reverse();\n }\n\n this.legendItems = legendItems;\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var options = this.options,\n ctx = this.ctx;\n\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n\n var labelOpts = options.labels;\n var labelFont = toFont(labelOpts.font);\n var fontSize = labelFont.size;\n\n var titleHeight = this._computeTitleHeight();\n\n var _getBoxSize = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize.boxWidth,\n itemHeight = _getBoxSize.itemHeight;\n\n var width, height;\n ctx.font = labelFont.string;\n\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n }, {\n key: \"_fitRows\",\n value: function _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n var ctx = this.ctx,\n maxWidth = this.maxWidth,\n padding = this.options.labels.padding;\n var hitboxes = this.legendHitBoxes = [];\n var lineWidths = this.lineWidths = [0];\n var lineHeight = itemHeight + padding;\n var totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n var row = -1;\n var top = -lineHeight;\n this.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n\n hitboxes[i] = {\n left: 0,\n top: top,\n row: row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n }, {\n key: \"_fitCols\",\n value: function _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n var ctx = this.ctx,\n maxHeight = this.maxHeight,\n padding = this.options.labels.padding;\n var hitboxes = this.legendHitBoxes = [];\n var columnSizes = this.columnSizes = [];\n var heightLimit = maxHeight - titleHeight;\n var totalWidth = padding;\n var currentColWidth = 0;\n var currentColHeight = 0;\n var left = 0;\n var col = 0;\n this.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n hitboxes[i] = {\n left: left,\n top: currentColHeight,\n col: col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n }, {\n key: \"adjustHitBoxes\",\n value: function adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n\n var titleHeight = this._computeTitleHeight();\n\n var hitboxes = this.legendHitBoxes,\n _this$options13 = this.options,\n align = _this$options13.align,\n padding = _this$options13.labels.padding,\n rtl = _this$options13.rtl;\n var rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n\n if (this.isHorizontal()) {\n var row = 0;\n\n var left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n\n var _iterator20 = _createForOfIteratorHelper(hitboxes),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var hitbox = _step20.value;\n\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n } else {\n var col = 0;\n\n var top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n\n var _iterator21 = _createForOfIteratorHelper(hitboxes),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var _hitbox = _step21.value;\n\n if (_hitbox.col !== col) {\n col = _hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n\n _hitbox.top = top;\n _hitbox.left += this.left + padding;\n _hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(_hitbox.left), _hitbox.width);\n top += _hitbox.height + padding;\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n }, {\n key: \"draw\",\n value: function draw() {\n if (this.options.display) {\n var ctx = this.ctx;\n clipArea(ctx, this);\n\n this._draw();\n\n unclipArea(ctx);\n }\n }\n }, {\n key: \"_draw\",\n value: function _draw() {\n var _this28 = this;\n\n var opts = this.options,\n columnSizes = this.columnSizes,\n lineWidths = this.lineWidths,\n ctx = this.ctx;\n var align = opts.align,\n labelOpts = opts.labels;\n var defaultColor = defaults.color;\n var rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n var labelFont = toFont(labelOpts.font);\n var fontColor = labelOpts.color,\n padding = labelOpts.padding;\n var fontSize = labelFont.size;\n var halfFontSize = fontSize / 2;\n var cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n\n var _getBoxSize2 = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize2.boxWidth,\n boxHeight = _getBoxSize2.boxHeight,\n itemHeight = _getBoxSize2.itemHeight;\n\n var drawLegendBox = function drawLegendBox(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n ctx.save();\n var lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n if (labelOpts.usePointStyle) {\n var drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n var centerX = rtlHelper.xPlus(x, boxWidth / 2);\n var centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n var yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n var xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n var borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n\n ctx.fill();\n\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n var fillText = function fillText(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n\n var isHorizontal = this.isHorizontal();\n\n var titleHeight = this._computeTitleHeight();\n\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(this.ctx, opts.textDirection);\n var lineHeight = itemHeight + padding;\n this.legendItems.forEach(function (legendItem, i) {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n var textWidth = ctx.measureText(legendItem.text).width;\n var textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n var width = boxWidth + halfFontSize + textWidth;\n var x = cursor.x;\n var y = cursor.y;\n rtlHelper.setWidth(_this28.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > _this28.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, _this28.left + padding, _this28.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > _this28.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, _this28.top + titleHeight + padding, _this28.bottom - columnSizes[cursor.line].height);\n }\n\n var realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : _this28.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var opts = this.options;\n var titleOpts = opts.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n var rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n var ctx = this.ctx;\n var position = titleOpts.position;\n var halfFontSize = titleFont.size / 2;\n var topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n var y;\n var left = this.left;\n var maxWidth = this.width;\n\n if (this.isHorizontal()) {\n maxWidth = Math.max.apply(Math, _toConsumableArray(this.lineWidths));\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n var maxHeight = this.columnSizes.reduce(function (acc, size) {\n return Math.max(acc, size.height);\n }, 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n\n var x = _alignStartEnd(position, left, left + maxWidth);\n\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n }, {\n key: \"_computeTitleHeight\",\n value: function _computeTitleHeight() {\n var titleOpts = this.options.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n }, {\n key: \"_getLegendItemAt\",\n value: function _getLegendItemAt(x, y) {\n var i, hitBox, lh;\n\n if (x >= this.left && x <= this.right && y >= this.top && y <= this.bottom) {\n lh = this.legendHitBoxes;\n\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n return this.legendItems[i];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e) {\n var opts = this.options;\n\n if (!isListened(e.type, opts)) {\n return;\n }\n\n var hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove') {\n var previous = this._hoveredItem;\n var sameItem = itemsEqual(previous, hoveredItem);\n\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n\n this._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n }]);\n\n return Legend;\n}(Element);\n\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n\n return false;\n}\n\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start: function start(chart, _args, options) {\n var legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate: function afterUpdate(chart) {\n var legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent: function afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick: function onClick(e, legendItem, legend) {\n var index = legendItem.datasetIndex;\n var ci = legend.chart;\n\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: function color(ctx) {\n return ctx.chart.options.color;\n },\n boxWidth: 40,\n padding: 10,\n generateLabels: function generateLabels(chart) {\n var datasets = chart.data.datasets;\n var _chart$legend$options = chart.legend.options.labels,\n usePointStyle = _chart$legend$options.usePointStyle,\n pointStyle = _chart$legend$options.pointStyle,\n textAlign = _chart$legend$options.textAlign,\n color = _chart$legend$options.color;\n return chart._getSortedDatasetMetas().map(function (meta) {\n var style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n var borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: function color(ctx) {\n return ctx.chart.options.color;\n },\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n labels: {\n _scriptable: function _scriptable(name) {\n return !['generateLabels', 'filter', 'sort'].includes(name);\n }\n }\n }\n};\n\nvar Title = /*#__PURE__*/function (_Element7) {\n _inherits(Title, _Element7);\n\n var _super17 = _createSuper(Title);\n\n function Title(config) {\n var _this29;\n\n _classCallCheck(this, Title);\n\n _this29 = _super17.call(this);\n _this29.chart = config.chart;\n _this29.options = config.options;\n _this29.ctx = config.ctx;\n _this29._padding = undefined;\n _this29.top = undefined;\n _this29.bottom = undefined;\n _this29.left = undefined;\n _this29.right = undefined;\n _this29.width = undefined;\n _this29.height = undefined;\n _this29.position = undefined;\n _this29.weight = undefined;\n _this29.fullSize = undefined;\n return _this29;\n }\n\n _createClass(Title, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight) {\n var opts = this.options;\n this.left = 0;\n this.top = 0;\n\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n var lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n\n var textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n }, {\n key: \"_drawArgs\",\n value: function _drawArgs(offset) {\n var top = this.top,\n left = this.left,\n bottom = this.bottom,\n right = this.right,\n options = this.options;\n var align = options.align;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n\n maxWidth = bottom - top;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var ctx = this.ctx;\n var opts = this.options;\n\n if (!opts.display) {\n return;\n }\n\n var fontOpts = toFont(opts.font);\n var lineHeight = fontOpts.lineHeight;\n var offset = lineHeight / 2 + this._padding.top;\n\n var _this$_drawArgs = this._drawArgs(offset),\n titleX = _this$_drawArgs.titleX,\n titleY = _this$_drawArgs.titleY,\n maxWidth = _this$_drawArgs.maxWidth,\n rotation = _this$_drawArgs.rotation;\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }]);\n\n return Title;\n}(Element);\n\nfunction createTitle(chart, titleOpts) {\n var title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart: chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start: function start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop: function stop(chart) {\n var titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nvar map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start: function start(chart, _args, options) {\n var title = new Title({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map[\"delete\"](chart);\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\nvar positioners = {\n average: function average(items) {\n if (!items.length) {\n return false;\n }\n\n var i, len;\n var x = 0;\n var y = 0;\n var count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest: function nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n var x = eventPosition.x;\n var y = eventPosition.y;\n var minDistance = Number.POSITIVE_INFINITY;\n var i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var center = el.getCenterPoint();\n\n var _d2 = distanceBetweenPoints(eventPosition, center);\n\n if (_d2 < minDistance) {\n minDistance = _d2;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n var tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x: x,\n y: y\n };\n }\n};\n\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n}\n\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n\n return str;\n}\n\nfunction createTooltipItem(chart, item) {\n var element = item.element,\n datasetIndex = item.datasetIndex,\n index = item.index;\n var controller = chart.getDatasetMeta(datasetIndex).controller;\n\n var _controller$getLabelA = controller.getLabelAndValue(index),\n label = _controller$getLabelA.label,\n value = _controller$getLabelA.value;\n\n return {\n chart: chart,\n label: label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex: datasetIndex,\n element: element\n };\n}\n\nfunction getTooltipSize(tooltip, options) {\n var ctx = tooltip._chart.ctx;\n var body = tooltip.body,\n footer = tooltip.footer,\n title = tooltip.title;\n var boxWidth = options.boxWidth,\n boxHeight = options.boxHeight;\n var bodyFont = toFont(options.bodyFont);\n var titleFont = toFont(options.titleFont);\n var footerFont = toFont(options.footerFont);\n var titleLineCount = title.length;\n var footerLineCount = footer.length;\n var bodyLineItemCount = body.length;\n var padding = toPadding(options.padding);\n var height = padding.height;\n var width = 0;\n var combinedBodyLength = body.reduce(function (count, bodyItem) {\n return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n }, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n\n if (combinedBodyLength) {\n var bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n\n var widthPadding = 0;\n\n var maxLineWidth = function maxLineWidth(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, function (bodyItem) {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width: width,\n height: height\n };\n}\n\nfunction determineYAlign(chart, size) {\n var y = size.y,\n height = size.height;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n var x = size.x,\n width = size.width;\n var caret = options.caretSize + options.caretPadding;\n\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n var x = size.x,\n width = size.width;\n var chartWidth = chart.width,\n _chart$chartArea = chart.chartArea,\n left = _chart$chartArea.left,\n right = _chart$chartArea.right;\n var xAlign = 'center';\n\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\nfunction determineAlignment(chart, options, size) {\n var yAlign = options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign: yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n var x = size.x,\n width = size.width;\n\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n var y = size.y,\n height = size.height;\n\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n\n return y;\n}\n\nfunction getBackgroundPoint(options, size, alignment, chart) {\n var caretSize = options.caretSize,\n caretPadding = options.caretPadding,\n cornerRadius = options.cornerRadius;\n var xAlign = alignment.xAlign,\n yAlign = alignment.yAlign;\n var paddingAndSize = caretSize + caretPadding;\n\n var _toTRBLCorners = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners.topLeft,\n topRight = _toTRBLCorners.topRight,\n bottomLeft = _toTRBLCorners.bottomLeft,\n bottomRight = _toTRBLCorners.bottomRight;\n\n var x = alignX(size, xAlign);\n var y = alignY(size, yAlign, paddingAndSize);\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretPadding;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretPadding;\n }\n\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n var padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip: tooltip,\n tooltipItems: tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n var override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nvar Tooltip = /*#__PURE__*/function (_Element8) {\n _inherits(Tooltip, _Element8);\n\n var _super18 = _createSuper(Tooltip);\n\n function Tooltip(config) {\n var _this30;\n\n _classCallCheck(this, Tooltip);\n\n _this30 = _super18.call(this);\n _this30.opacity = 0;\n _this30._active = [];\n _this30._chart = config._chart;\n _this30._eventPosition = undefined;\n _this30._size = undefined;\n _this30._cachedAnimations = undefined;\n _this30._tooltipItems = [];\n _this30.$animations = undefined;\n _this30.$context = undefined;\n _this30.options = config.options;\n _this30.dataPoints = undefined;\n _this30.title = undefined;\n _this30.beforeBody = undefined;\n _this30.body = undefined;\n _this30.afterBody = undefined;\n _this30.footer = undefined;\n _this30.xAlign = undefined;\n _this30.yAlign = undefined;\n _this30.x = undefined;\n _this30.y = undefined;\n _this30.height = undefined;\n _this30.width = undefined;\n _this30.caretX = undefined;\n _this30.caretY = undefined;\n _this30.labelColors = undefined;\n _this30.labelPointStyles = undefined;\n _this30.labelTextColors = undefined;\n return _this30;\n }\n\n _createClass(Tooltip, [{\n key: \"initialize\",\n value: function initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations() {\n var cached = this._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n var chart = this._chart;\n var options = this.options.setContext(this.getContext());\n var opts = options.enabled && chart.options.animation && options.animations;\n var animations = new Animations(this._chart, opts);\n\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = createTooltipContext(this._chart.getContext(), this, this._tooltipItems));\n }\n }, {\n key: \"getTitle\",\n value: function getTitle(context, options) {\n var callbacks = options.callbacks;\n var beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n var title = callbacks.title.apply(this, [context]);\n var afterTitle = callbacks.afterTitle.apply(this, [context]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n }, {\n key: \"getBeforeBody\",\n value: function getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getBody\",\n value: function getBody(tooltipItems, options) {\n var _this31 = this;\n\n var callbacks = options.callbacks;\n var bodyItems = [];\n each(tooltipItems, function (context) {\n var bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n var scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(_this31, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(_this31, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(_this31, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n }, {\n key: \"getAfterBody\",\n value: function getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getFooter\",\n value: function getFooter(tooltipItems, options) {\n var callbacks = options.callbacks;\n var beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n var footer = callbacks.footer.apply(this, [tooltipItems]);\n var afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n }, {\n key: \"_createItems\",\n value: function _createItems(options) {\n var _this32 = this;\n\n var active = this._active;\n var data = this._chart.data;\n var labelColors = [];\n var labelPointStyles = [];\n var labelTextColors = [];\n var tooltipItems = [];\n var i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this._chart, active[i]));\n }\n\n if (options.filter) {\n tooltipItems = tooltipItems.filter(function (element, index, array) {\n return options.filter(element, index, array, data);\n });\n }\n\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort(function (a, b) {\n return options.itemSort(a, b, data);\n });\n }\n\n each(tooltipItems, function (context) {\n var scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(_this32, context));\n labelPointStyles.push(scoped.labelPointStyle.call(_this32, context));\n labelTextColors.push(scoped.labelTextColor.call(_this32, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n }, {\n key: \"update\",\n value: function update(changed, replay) {\n var options = this.options.setContext(this.getContext());\n var active = this._active;\n var properties;\n var tooltipItems = [];\n\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n var position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n var size = this._size = getTooltipSize(this, options);\n var positionAndSize = Object.assign({}, position, size);\n var alignment = determineAlignment(this._chart, options, positionAndSize);\n var backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this._chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n\n if (changed && options.external) {\n options.external.call(this, {\n chart: this._chart,\n tooltip: this,\n replay: replay\n });\n }\n }\n }, {\n key: \"drawCaret\",\n value: function drawCaret(tooltipPoint, ctx, size, options) {\n var caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n }, {\n key: \"getCaretPosition\",\n value: function getCaretPosition(tooltipPoint, size, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var caretSize = options.caretSize,\n cornerRadius = options.cornerRadius;\n\n var _toTRBLCorners2 = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners2.topLeft,\n topRight = _toTRBLCorners2.topRight,\n bottomLeft = _toTRBLCorners2.bottomLeft,\n bottomRight = _toTRBLCorners2.bottomRight;\n\n var ptX = tooltipPoint.x,\n ptY = tooltipPoint.y;\n var width = size.width,\n height = size.height;\n var x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n\n y3 = y1;\n }\n\n return {\n x1: x1,\n x2: x2,\n x3: x3,\n y1: y1,\n y2: y2,\n y3: y3\n };\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle(pt, ctx, options) {\n var title = this.title;\n var length = title.length;\n var titleFont, titleSpacing, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n }, {\n key: \"_drawColorBox\",\n value: function _drawColorBox(ctx, pt, i, rtlHelper, options) {\n var labelColors = this.labelColors[i];\n var labelPointStyle = this.labelPointStyles[i];\n var boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n var bodyFont = toFont(options.bodyFont);\n var colorX = getAlignedX(this, 'left', options);\n var rtlColorX = rtlHelper.x(colorX);\n var yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n var colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n var drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n var centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n var centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n var outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n var innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n var borderRadius = toTRBLCorners(labelColors.borderRadius);\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n\n ctx.fillStyle = this.labelTextColors[i];\n }\n }, {\n key: \"drawBody\",\n value: function drawBody(pt, ctx, options) {\n var body = this.body;\n var bodySpacing = options.bodySpacing,\n bodyAlign = options.bodyAlign,\n displayColors = options.displayColors,\n boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n var bodyFont = toFont(options.bodyFont);\n var bodyLineHeight = bodyFont.lineHeight;\n var xLinePadding = 0;\n var rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n var fillLineOfText = function fillLineOfText(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n var bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n var bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n }, {\n key: \"drawFooter\",\n value: function drawFooter(pt, ctx, options) {\n var footer = this.footer;\n var length = footer.length;\n var footerFont, i;\n\n if (length) {\n var rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground(pt, ctx, tooltipSize, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var x = pt.x,\n y = pt.y;\n var width = tooltipSize.width,\n height = tooltipSize.height;\n\n var _toTRBLCorners3 = toTRBLCorners(options.cornerRadius),\n topLeft = _toTRBLCorners3.topLeft,\n topRight = _toTRBLCorners3.topRight,\n bottomLeft = _toTRBLCorners3.bottomLeft,\n bottomRight = _toTRBLCorners3.bottomRight;\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n }, {\n key: \"_updateAnimationTarget\",\n value: function _updateAnimationTarget(options) {\n var chart = this._chart;\n var anims = this.$animations;\n var animX = anims && anims.x;\n var animY = anims && anims.y;\n\n if (animX || animY) {\n var position = positioners[options.position].call(this, this._active, this._eventPosition);\n\n if (!position) {\n return;\n }\n\n var size = this._size = getTooltipSize(this, options);\n var positionAndSize = Object.assign({}, position, this._size);\n var alignment = determineAlignment(chart, options, positionAndSize);\n var point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n\n this._resolveAnimations().update(this, point);\n }\n }\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options.setContext(this.getContext());\n var opacity = this.opacity;\n\n if (!opacity) {\n return;\n }\n\n this._updateAnimationTarget(options);\n\n var tooltipSize = {\n width: this.width,\n height: this.height\n };\n var pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n var padding = toPadding(options.padding);\n var hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements, eventPosition) {\n var _this33 = this;\n\n var lastActive = this._active;\n var active = activeElements.map(function (_ref14) {\n var datasetIndex = _ref14.datasetIndex,\n index = _ref14.index;\n\n var meta = _this33._chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(lastActive, active);\n\n var positionChanged = this._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this.update(true);\n }\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e, replay) {\n var options = this.options;\n var lastActive = this._active || [];\n var changed = false;\n var active = [];\n\n if (e.type !== 'mouseout') {\n active = this._chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n }\n\n var positionChanged = this._positionChanged(active, e);\n\n changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n if (changed) {\n this._active = active;\n\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n\n return changed;\n }\n }, {\n key: \"_positionChanged\",\n value: function _positionChanged(active, e) {\n var caretX = this.caretX,\n caretY = this.caretY,\n options = this.options;\n var position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n }]);\n\n return Tooltip;\n}(Element);\n\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners: positioners,\n afterInit: function afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n _chart: chart,\n options: options\n });\n }\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset: function reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw: function afterDraw(chart) {\n var tooltip = chart.tooltip;\n var args = {\n tooltip: tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent: function afterEvent(chart, args) {\n if (chart.tooltip) {\n var useFinalPosition = args.replay;\n\n if (chart.tooltip.handleEvent(args.event, useFinalPosition)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: function boxHeight(ctx, opts) {\n return opts.bodyFont.size;\n },\n boxWidth: function boxWidth(ctx, opts) {\n return opts.bodyFont.size;\n },\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY']\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title: function title(tooltipItems) {\n if (tooltipItems.length > 0) {\n var item = tooltipItems[0];\n var labels = item.chart.data.labels;\n var labelCount = labels ? labels.length : 0;\n\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label: function label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n var label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n\n var value = tooltipItem.formattedValue;\n\n if (!isNullOrUndef(value)) {\n label += value;\n }\n\n return label;\n },\n labelColor: function labelColor(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor: function labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle: function labelPointStyle(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: function _scriptable(name) {\n return name !== 'filter' && name !== 'itemSort' && name !== 'external';\n },\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\nvar plugins = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Decimation: plugin_decimation,\n Filler: plugin_filler,\n Legend: plugin_legend,\n SubTitle: plugin_subtitle,\n Title: plugin_title,\n Tooltip: plugin_tooltip\n});\n\nvar addIfString = function addIfString(labels, raw, index) {\n return typeof raw === 'string' ? labels.push(raw) - 1 : isNaN(raw) ? null : index;\n};\n\nfunction findOrAddLabel(labels, raw, index) {\n var first = labels.indexOf(raw);\n\n if (first === -1) {\n return addIfString(labels, raw, index);\n }\n\n var last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nvar validIndex = function validIndex(index, max) {\n return index === null ? null : _limitValue(Math.round(index), 0, max);\n};\n\nvar CategoryScale = /*#__PURE__*/function (_Scale) {\n _inherits(CategoryScale, _Scale);\n\n var _super19 = _createSuper(CategoryScale);\n\n function CategoryScale(cfg) {\n var _this34;\n\n _classCallCheck(this, CategoryScale);\n\n _this34 = _super19.call(this, cfg);\n _this34._startValue = undefined;\n _this34._valueRange = 0;\n return _this34;\n }\n\n _createClass(CategoryScale, [{\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n var labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw));\n return validIndex(index, labels.length - 1);\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getUserBounds2 = this.getUserBounds(),\n minDefined = _this$getUserBounds2.minDefined,\n maxDefined = _this$getUserBounds2.maxDefined;\n\n var _this$getMinMax = this.getMinMax(true),\n min = _this$getMinMax.min,\n max = _this$getMinMax.max;\n\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var min = this.min;\n var max = this.max;\n var offset = this.options.offset;\n var ticks = [];\n var labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n\n for (var value = min; value <= max; value++) {\n ticks.push({\n value: value\n });\n }\n\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var labels = this.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n\n return value;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n _get(_getPrototypeOf(CategoryScale.prototype), \"configure\", this).call(this);\n\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var ticks = this.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return this.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.bottom;\n }\n }]);\n\n return CategoryScale;\n}(Scale);\n\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n var ticks = [];\n var MIN_SPACING = 1e-14;\n var bounds = generationOptions.bounds,\n step = generationOptions.step,\n min = generationOptions.min,\n max = generationOptions.max,\n precision = generationOptions.precision,\n count = generationOptions.count,\n maxTicks = generationOptions.maxTicks,\n maxDigits = generationOptions.maxDigits,\n includeBounds = generationOptions.includeBounds;\n var unit = step || 1;\n var maxSpaces = maxTicks - 1;\n var rmin = dataRange.min,\n rmax = dataRange.max;\n var minDefined = !isNullOrUndef(min);\n var maxDefined = !isNullOrUndef(max);\n var countDefined = !isNullOrUndef(count);\n var minSpacing = (rmax - rmin) / (maxDigits + 1);\n var spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n var factor, niceMin, niceMax, numSpaces;\n\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{\n value: rmin\n }, {\n value: rmax\n }];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n var decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n var j = 0;\n\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n\n if (niceMin < min) {\n j++;\n }\n\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n\n for (; j < numSpaces; ++j) {\n ticks.push({\n value: Math.round((niceMin + j * spacing) * factor) / factor\n });\n }\n\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, _ref15) {\n var horizontal = _ref15.horizontal,\n minRotation = _ref15.minRotation;\n var rad = toRadians(minRotation);\n var ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n var length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nvar LinearScaleBase = /*#__PURE__*/function (_Scale2) {\n _inherits(LinearScaleBase, _Scale2);\n\n var _super20 = _createSuper(LinearScaleBase);\n\n function LinearScaleBase(cfg) {\n var _this35;\n\n _classCallCheck(this, LinearScaleBase);\n\n _this35 = _super20.call(this, cfg);\n _this35.start = undefined;\n _this35.end = undefined;\n _this35._startValue = undefined;\n _this35._endValue = undefined;\n _this35._valueRange = 0;\n return _this35;\n }\n\n _createClass(LinearScaleBase, [{\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var beginAtZero = this.options.beginAtZero;\n\n var _this$getUserBounds3 = this.getUserBounds(),\n minDefined = _this$getUserBounds3.minDefined,\n maxDefined = _this$getUserBounds3.maxDefined;\n\n var min = this.min,\n max = this.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n if (beginAtZero) {\n var minSign = sign(min);\n var maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n var offset = 1;\n\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n\n setMax(max + offset);\n\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"getTickLimit\",\n value: function getTickLimit() {\n var tickOpts = this.options.ticks;\n var maxTicksLimit = tickOpts.maxTicksLimit,\n stepSize = tickOpts.stepSize;\n var maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n\n if (maxTicks > 1000) {\n console.warn(\"scales.\".concat(this.id, \".ticks.stepSize: \").concat(stepSize, \" would result generating up to \").concat(maxTicks, \" ticks. Limiting to 1000.\"));\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var opts = this.options;\n var tickOpts = opts.ticks;\n var maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n var numericGeneratorOptions = {\n maxTicks: maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n var dataRange = this._range || this;\n var ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var ticks = this.ticks;\n var start = this.min;\n var end = this.max;\n\n _get(_getPrototypeOf(LinearScaleBase.prototype), \"configure\", this).call(this);\n\n if (this.options.offset && ticks.length) {\n var offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale);\n }\n }]);\n\n return LinearScaleBase;\n}(Scale);\n\nvar LinearScale = /*#__PURE__*/function (_LinearScaleBase) {\n _inherits(LinearScale, _LinearScaleBase);\n\n var _super21 = _createSuper(LinearScale);\n\n function LinearScale() {\n _classCallCheck(this, LinearScale);\n\n return _super21.apply(this, arguments);\n }\n\n _createClass(LinearScale, [{\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax2 = this.getMinMax(true),\n min = _this$getMinMax2.min,\n max = _this$getMinMax2.max;\n\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n var horizontal = this.isHorizontal();\n var length = horizontal ? this.width : this.height;\n var minRotation = toRadians(this.options.ticks.minRotation);\n var ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n\n var tickFont = this._resolveTickFontOptions(0);\n\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n }]);\n\n return LinearScale;\n}(LinearScaleBase);\n\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n var remain = tickVal / Math.pow(10, Math.floor(log10(tickVal)));\n return remain === 1;\n}\n\nfunction generateTicks(generationOptions, dataRange) {\n var endExp = Math.floor(log10(dataRange.max));\n var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n var ticks = [];\n var tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n var exp = Math.floor(log10(tickVal));\n var significand = Math.floor(tickVal / Math.pow(10, exp));\n var precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n do {\n ticks.push({\n value: tickVal,\n major: isMajor(tickVal)\n });\n ++significand;\n\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || exp === endExp && significand < endSignificand);\n\n var lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({\n value: lastTick,\n major: isMajor(tickVal)\n });\n return ticks;\n}\n\nvar LogarithmicScale = /*#__PURE__*/function (_Scale3) {\n _inherits(LogarithmicScale, _Scale3);\n\n var _super22 = _createSuper(LogarithmicScale);\n\n function LogarithmicScale(cfg) {\n var _this36;\n\n _classCallCheck(this, LogarithmicScale);\n\n _this36 = _super22.call(this, cfg);\n _this36.start = undefined;\n _this36.end = undefined;\n _this36._startValue = undefined;\n _this36._valueRange = 0;\n return _this36;\n }\n\n _createClass(LogarithmicScale, [{\n key: \"parse\",\n value: function parse(raw, index) {\n var value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax3 = this.getMinMax(true),\n min = _this$getMinMax3.min,\n max = _this$getMinMax3.max;\n\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n\n this.handleTickRangeOptions();\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var _this$getUserBounds4 = this.getUserBounds(),\n minDefined = _this$getUserBounds4.minDefined,\n maxDefined = _this$getUserBounds4.maxDefined;\n\n var min = this.min;\n var max = this.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n var exp = function exp(v, m) {\n return Math.pow(10, Math.floor(log10(v)) + m);\n };\n\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var opts = this.options;\n var generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n var ticks = generateTicks(generationOptions, this);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale);\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var start = this.min;\n\n _get(_getPrototypeOf(LogarithmicScale.prototype), \"configure\", this).call(this);\n\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n\n if (value === null || isNaN(value)) {\n return NaN;\n }\n\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n }]);\n\n return LogarithmicScale;\n}(Scale);\n\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n var tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n var padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n\n return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size\n };\n}\n\nfunction fitWithPointLabels(scale) {\n var furthestLimits = {\n l: 0,\n r: scale.width,\n t: 0,\n b: scale.height - scale.paddingTop\n };\n var furthestAngles = {};\n var labelSizes = [];\n var padding = [];\n var valueCount = scale.getLabels().length;\n\n for (var i = 0; i < valueCount; i++) {\n var opts = scale.options.pointLabels.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n var pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i]);\n var plFont = toFont(opts.font);\n var textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n var angleRadians = scale.getIndexAngle(i);\n var angle = toDegrees(angleRadians);\n var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n\n scale._setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n var items = [];\n var valueCount = scale.getLabels().length;\n var opts = scale.options;\n var tickBackdropHeight = getTickBackdropHeight(opts);\n var outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n for (var i = 0; i < valueCount; i++) {\n var extra = i === 0 ? tickBackdropHeight / 2 : 0;\n var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i]);\n var angle = toDegrees(scale.getIndexAngle(i));\n var size = labelSizes[i];\n var y = yForAngle(pointLabelPosition.y, size.h, angle);\n var textAlign = getTextAlignForAngle(angle);\n var left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y: y,\n textAlign: textAlign,\n left: left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n\n return x;\n}\n\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n\n return y;\n}\n\nfunction drawPointLabels(scale, labelCount) {\n var ctx = scale.ctx,\n pointLabels = scale.options.pointLabels;\n\n for (var i = labelCount - 1; i >= 0; i--) {\n var optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n var plFont = toFont(optsAtIndex.font);\n var _scale$_pointLabelIte = scale._pointLabelItems[i],\n x = _scale$_pointLabelIte.x,\n y = _scale$_pointLabelIte.y,\n textAlign = _scale$_pointLabelIte.textAlign,\n left = _scale$_pointLabelIte.left,\n top = _scale$_pointLabelIte.top,\n right = _scale$_pointLabelIte.right,\n bottom = _scale$_pointLabelIte.bottom;\n var backdropColor = optsAtIndex.backdropColor;\n\n if (!isNullOrUndef(backdropColor)) {\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n var ctx = scale.ctx;\n\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n var pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (var i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n var ctx = scale.ctx;\n var circular = gridLineOpts.circular;\n var color = gridLineOpts.color,\n lineWidth = gridLineOpts.lineWidth;\n\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\nfunction numberOrZero(param) {\n return isNumber(param) ? param : 0;\n}\n\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label: label,\n index: index,\n type: 'pointLabel'\n });\n}\n\nvar RadialLinearScale = /*#__PURE__*/function (_LinearScaleBase2) {\n _inherits(RadialLinearScale, _LinearScaleBase2);\n\n var _super23 = _createSuper(RadialLinearScale);\n\n function RadialLinearScale(cfg) {\n var _this37;\n\n _classCallCheck(this, RadialLinearScale);\n\n _this37 = _super23.call(this, cfg);\n _this37.xCenter = undefined;\n _this37.yCenter = undefined;\n _this37.drawingArea = undefined;\n _this37._pointLabels = [];\n _this37._pointLabelItems = [];\n return _this37;\n }\n\n _createClass(RadialLinearScale, [{\n key: \"setDimensions\",\n value: function setDimensions() {\n this.width = this.maxWidth;\n this.height = this.maxHeight;\n this.paddingTop = getTickBackdropHeight(this.options) / 2;\n this.xCenter = Math.floor(this.width / 2);\n this.yCenter = Math.floor((this.height - this.paddingTop) / 2);\n this.drawingArea = Math.min(this.height - this.paddingTop, this.width) / 2;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax4 = this.getMinMax(false),\n min = _this$getMinMax4.min,\n max = _this$getMinMax4.max;\n\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var _this38 = this;\n\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map(function (value, index) {\n var label = callback(_this38.options.pointLabels.callback, [value, index], _this38);\n return label || label === 0 ? label : '';\n });\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var opts = this.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n }, {\n key: \"_setReductions\",\n value: function _setReductions(largestPossibleRadius, furthestLimits, furthestAngles) {\n var radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n var radiusReductionRight = Math.max(furthestLimits.r - this.width, 0) / Math.sin(furthestAngles.r);\n var radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n var radiusReductionBottom = -Math.max(furthestLimits.b - (this.height - this.paddingTop), 0) / Math.cos(furthestAngles.b);\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n this.drawingArea = Math.max(largestPossibleRadius / 2, Math.min(Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2), Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)));\n this.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n }\n }, {\n key: \"setCenterPoint\",\n value: function setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n var maxRight = this.width - rightMovement - this.drawingArea;\n var maxLeft = leftMovement + this.drawingArea;\n var maxTop = topMovement + this.drawingArea;\n var maxBottom = this.height - this.paddingTop - bottomMovement - this.drawingArea;\n this.xCenter = Math.floor((maxLeft + maxRight) / 2 + this.left);\n this.yCenter = Math.floor((maxTop + maxBottom) / 2 + this.top + this.paddingTop);\n }\n }, {\n key: \"getIndexAngle\",\n value: function getIndexAngle(index) {\n var angleMultiplier = TAU / this.getLabels().length;\n var startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n }, {\n key: \"getDistanceFromCenterForValue\",\n value: function getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n var scalingFactor = this.drawingArea / (this.max - this.min);\n\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n\n return (value - this.min) * scalingFactor;\n }\n }, {\n key: \"getValueForDistanceFromCenter\",\n value: function getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n var scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n }, {\n key: \"getPointLabelContext\",\n value: function getPointLabelContext(index) {\n var pointLabels = this._pointLabels || [];\n\n if (index >= 0 && index < pointLabels.length) {\n var pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n }, {\n key: \"getPointPosition\",\n value: function getPointPosition(index, distanceFromCenter) {\n var angle = this.getIndexAngle(index) - HALF_PI;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle: angle\n };\n }\n }, {\n key: \"getPointPositionForValue\",\n value: function getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n }, {\n key: \"getBasePosition\",\n value: function getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n }, {\n key: \"getPointLabelPosition\",\n value: function getPointLabelPosition(index) {\n var _this$_pointLabelItem = this._pointLabelItems[index],\n left = _this$_pointLabelItem.left,\n top = _this$_pointLabelItem.top,\n right = _this$_pointLabelItem.right,\n bottom = _this$_pointLabelItem.bottom;\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var _this$options14 = this.options,\n backgroundColor = _this$options14.backgroundColor,\n circular = _this$options14.grid.circular;\n\n if (backgroundColor) {\n var ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this.getLabels().length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid() {\n var _this39 = this;\n\n var ctx = this.ctx;\n var opts = this.options;\n var angleLines = opts.angleLines,\n grid = opts.grid;\n var labelCount = this.getLabels().length;\n var i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n\n if (grid.display) {\n this.ticks.forEach(function (tick, index) {\n if (index !== 0) {\n offset = _this39.getDistanceFromCenterForValue(tick.value);\n var optsAtIndex = grid.setContext(_this39.getContext(index - 1));\n drawRadiusLine(_this39, optsAtIndex, offset, labelCount);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = this.getLabels().length - 1; i >= 0; i--) {\n var optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n var color = optsAtIndex.color,\n lineWidth = optsAtIndex.lineWidth;\n\n if (!lineWidth || !color) {\n continue;\n }\n\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n\n ctx.restore();\n }\n }\n }, {\n key: \"drawBorder\",\n value: function drawBorder() {}\n }, {\n key: \"drawLabels\",\n value: function drawLabels() {\n var _this40 = this;\n\n var ctx = this.ctx;\n var opts = this.options;\n var tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n var startAngle = this.getIndexAngle(0);\n var offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach(function (tick, index) {\n if (index === 0 && !opts.reverse) {\n return;\n }\n\n var optsAtIndex = tickOpts.setContext(_this40.getContext(index));\n var tickFont = toFont(optsAtIndex.font);\n offset = _this40.getDistanceFromCenterForValue(_this40.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color\n });\n });\n ctx.restore();\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {}\n }]);\n\n return RadialLinearScale;\n}(LinearScaleBase);\n\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback: function callback(label) {\n return label;\n },\n padding: 5\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\nvar INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n return a - b;\n}\n\nfunction _parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n var adapter = scale._adapter;\n var _scale$_parseOpts = scale._parseOpts,\n parser = _scale$_parseOpts.parser,\n round = _scale$_parseOpts.round,\n isoWeekday = _scale$_parseOpts.isoWeekday;\n var value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n var ilen = UNITS.length;\n\n for (var i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n var interval = INTERVALS[UNITS[i]];\n var factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (var i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n var unit = UNITS[i];\n\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n var _lookup2 = _lookup(timestamps, time),\n lo = _lookup2.lo,\n hi = _lookup2.hi;\n\n var timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n var adapter = scale._adapter;\n var first = +adapter.startOf(ticks[0].value, majorUnit);\n var last = ticks[ticks.length - 1].value;\n var major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n\n return ticks;\n}\n\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n var ticks = [];\n var map = {};\n var ilen = values.length;\n var i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value: value,\n major: false\n });\n }\n\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nvar TimeScale = /*#__PURE__*/function (_Scale4) {\n _inherits(TimeScale, _Scale4);\n\n var _super24 = _createSuper(TimeScale);\n\n function TimeScale(props) {\n var _this41;\n\n _classCallCheck(this, TimeScale);\n\n _this41 = _super24.call(this, props);\n _this41._cache = {\n data: [],\n labels: [],\n all: []\n };\n _this41._unit = 'day';\n _this41._majorUnit = undefined;\n _this41._offsets = {};\n _this41._normalized = false;\n _this41._parseOpts = undefined;\n return _this41;\n }\n\n _createClass(TimeScale, [{\n key: \"init\",\n value: function init(scaleOpts, opts) {\n var time = scaleOpts.time || (scaleOpts.time = {});\n var adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n\n _get(_getPrototypeOf(TimeScale.prototype), \"init\", this).call(this, scaleOpts);\n\n this._normalized = opts.normalized;\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n\n return _parse(this, raw);\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n _get(_getPrototypeOf(TimeScale.prototype), \"beforeLayout\", this).call(this);\n\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var options = this.options;\n var adapter = this._adapter;\n var unit = options.time.unit || 'day';\n\n var _this$getUserBounds5 = this.getUserBounds(),\n min = _this$getUserBounds5.min,\n max = _this$getUserBounds5.max,\n minDefined = _this$getUserBounds5.minDefined,\n maxDefined = _this$getUserBounds5.maxDefined;\n\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n }, {\n key: \"_getLabelBounds\",\n value: function _getLabelBounds() {\n var arr = this.getLabelTimestamps();\n var min = Number.POSITIVE_INFINITY;\n var max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n\n return {\n min: min,\n max: max\n };\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var options = this.options;\n var timeOpts = options.time;\n var tickOpts = options.ticks;\n var timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n\n var min = this.min;\n var max = this.max;\n\n var ticks = _filterBetween(timestamps, min, max);\n\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n }, {\n key: \"initOffsets\",\n value: function initOffsets(timestamps) {\n var start = 0;\n var end = 0;\n var first, last;\n\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n\n var limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start: start,\n end: end,\n factor: 1 / (start + 1 + end)\n };\n }\n }, {\n key: \"_generate\",\n value: function _generate() {\n var adapter = this._adapter;\n var min = this.min;\n var max = this.max;\n var options = this.options;\n var timeOpts = options.time;\n var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n var stepSize = valueOrDefault(timeOpts.stepSize, 1);\n var weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n var hasWeekday = isNumber(weekday) || weekday === true;\n var ticks = {};\n var first = min;\n var time, count;\n\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n\n var timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n return Object.keys(ticks).sort(function (a, b) {\n return a - b;\n }).map(function (x) {\n return +x;\n });\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var adapter = this._adapter;\n var timeOpts = this.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n }, {\n key: \"_tickFormatFunction\",\n value: function _tickFormatFunction(time, index, ticks, format) {\n var options = this.options;\n var formats = options.time.displayFormats;\n var unit = this._unit;\n var majorUnit = this._majorUnit;\n var minorFormat = unit && formats[unit];\n var majorFormat = majorUnit && formats[majorUnit];\n var tick = ticks[index];\n var major = majorUnit && majorFormat && tick && tick.major;\n\n var label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n\n var formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var offsets = this._offsets;\n var pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var offsets = this._offsets;\n var pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n }, {\n key: \"_getLabelSize\",\n value: function _getLabelSize(label) {\n var ticksOpts = this.options.ticks;\n var tickLabelWidth = this.ctx.measureText(label).width;\n var angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n var cosRotation = Math.cos(angle);\n var sinRotation = Math.sin(angle);\n\n var tickFontSize = this._resolveTickFontOptions(0).size;\n\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n }, {\n key: \"_getLabelCapacity\",\n value: function _getLabelCapacity(exampleTime) {\n var timeOpts = this.options.time;\n var displayFormats = timeOpts.displayFormats;\n var format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\n var exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n\n var size = this._getLabelSize(exampleLabel);\n\n var capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n }, {\n key: \"getDataTimestamps\",\n value: function getDataTimestamps() {\n var timestamps = this._cache.data || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var metas = this.getMatchingVisibleMetas();\n\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n\n return this._cache.data = this.normalize(timestamps);\n }\n }, {\n key: \"getLabelTimestamps\",\n value: function getLabelTimestamps() {\n var timestamps = this._cache.labels || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var labels = this.getLabels();\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(_parse(this, labels[i]));\n }\n\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n }, {\n key: \"normalize\",\n value: function normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n }]);\n\n return TimeScale;\n}(Scale);\n\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n var lo = 0;\n var hi = table.length - 1;\n var prevSource, nextSource, prevTarget, nextTarget;\n\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n var _lookupByKey2 = _lookupByKey(table, 'pos', val);\n\n lo = _lookupByKey2.lo;\n hi = _lookupByKey2.hi;\n }\n\n var _table$lo = table[lo];\n prevSource = _table$lo.pos;\n prevTarget = _table$lo.time;\n var _table$hi = table[hi];\n nextSource = _table$hi.pos;\n nextTarget = _table$hi.time;\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n var _lookupByKey3 = _lookupByKey(table, 'time', val);\n\n lo = _lookupByKey3.lo;\n hi = _lookupByKey3.hi;\n }\n\n var _table$lo2 = table[lo];\n prevSource = _table$lo2.time;\n prevTarget = _table$lo2.pos;\n var _table$hi2 = table[hi];\n nextSource = _table$hi2.time;\n nextTarget = _table$hi2.pos;\n }\n\n var span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nvar TimeSeriesScale = /*#__PURE__*/function (_TimeScale) {\n _inherits(TimeSeriesScale, _TimeScale);\n\n var _super25 = _createSuper(TimeSeriesScale);\n\n function TimeSeriesScale(props) {\n var _this42;\n\n _classCallCheck(this, TimeSeriesScale);\n\n _this42 = _super25.call(this, props);\n _this42._table = [];\n _this42._minPos = undefined;\n _this42._tableRange = undefined;\n return _this42;\n }\n\n _createClass(TimeSeriesScale, [{\n key: \"initOffsets\",\n value: function initOffsets() {\n var timestamps = this._getTimestampsForTable();\n\n var table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n\n _get(_getPrototypeOf(TimeSeriesScale.prototype), \"initOffsets\", this).call(this, timestamps);\n }\n }, {\n key: \"buildLookupTable\",\n value: function buildLookupTable(timestamps) {\n var min = this.min,\n max = this.max;\n var items = [];\n var table = [];\n var i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n\n if (items.length < 2) {\n return [{\n time: min,\n pos: 0\n }, {\n time: max,\n pos: 1\n }];\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n\n return table;\n }\n }, {\n key: \"_getTimestampsForTable\",\n value: function _getTimestampsForTable() {\n var timestamps = this._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var data = this.getDataTimestamps();\n var label = this.getLabelTimestamps();\n\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var offsets = this._offsets;\n var decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n }]);\n\n return TimeSeriesScale;\n}(TimeScale);\n\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\nvar scales = /*#__PURE__*/Object.freeze({\n __proto__: null,\n CategoryScale: CategoryScale,\n LinearScale: LinearScale,\n LogarithmicScale: LogarithmicScale,\n RadialLinearScale: RadialLinearScale,\n TimeScale: TimeScale,\n TimeSeriesScale: TimeSeriesScale\n});\nvar registerables = [controllers, elements, plugins, scales];\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*!\n * Chart.js v3.6.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\nvar requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n\n return window.requestAnimationFrame;\n}();\n\nfunction throttled(fn, thisArg, updateFn) {\n var updateArgs = updateFn || function (args) {\n return Array.prototype.slice.call(args);\n };\n\n var ticking = false;\n var args = [];\n return function () {\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n args = updateArgs(rest);\n\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n\n return delay;\n };\n}\n\nvar _toLeftRightCenter = function _toLeftRightCenter(align) {\n return align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n};\n\nvar _alignStartEnd = function _alignStartEnd(align, start, end) {\n return align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n};\n\nvar _textX = function _textX(align, left, right, rtl) {\n var check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\n\nvar uid = function () {\n var id = 0;\n return function () {\n return id++;\n };\n}();\n\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n\n return false;\n}\n\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\nvar isNumberFinite = function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n};\n\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nvar toPercentage = function toPercentage(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : value / dimension;\n};\n\nvar toDimension = function toDimension(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n};\n\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\nfunction each(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (isArray(loopable)) {\n len = loopable.length;\n\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\nfunction _elementsEqual(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n\n if (isObject(source)) {\n var target = Object.create(null);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\n\nfunction merge(target, source, options) {\n var sources = isArray(source) ? source : [source];\n var ilen = sources.length;\n\n if (!isObject(target)) {\n return target;\n }\n\n options = options || {};\n var merger = options.merger || _merger;\n\n for (var i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!isObject(source)) {\n continue;\n }\n\n var keys = Object.keys(source);\n\n for (var k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n\n return target;\n}\n\nfunction mergeIf(target, source) {\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\n\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\nvar emptyString = '';\nvar dot = '.';\n\nfunction indexOfDotOrLength(key, start) {\n var idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\n\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n\n var pos = 0;\n var idx = indexOfDotOrLength(key, pos);\n\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n\n return obj;\n}\n\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar defined = function defined(value) {\n return typeof value !== 'undefined';\n};\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n\nvar setsEqual = function setsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator = _createForOfIteratorHelper(a),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (!b.has(item)) {\n return false;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return true;\n};\n\nvar PI = Math.PI;\nvar TAU = 2 * PI;\nvar PITAU = TAU + PI;\nvar INFINITY = Number.POSITIVE_INFINITY;\nvar RAD_PER_DEG = PI / 180;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\nvar log10 = Math.log10;\nvar sign = Math.sign;\n\nfunction niceNum(range) {\n var roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n var niceRange = Math.pow(10, Math.floor(log10(range)));\n var fraction = range / niceRange;\n var niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\nfunction _factorize(value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n\nfunction almostWhole(x, epsilon) {\n var rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n\nfunction _setMinAndMaxByKey(array, target, property) {\n var i, ilen, value;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\n\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < -0.5 * PI) {\n angle += TAU;\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\n}\n\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n var a = _normalizeAngle(angle);\n\n var s = _normalizeAngle(start);\n\n var e = _normalizeAngle(end);\n\n var angleToStart = _normalizeAngle(s - a);\n\n var angleToEnd = _normalizeAngle(e - a);\n\n var startToAngle = _normalizeAngle(a - s);\n\n var endToAngle = _normalizeAngle(a - e);\n\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nvar atEdge = function atEdge(t) {\n return t === 0 || t === 1;\n};\n\nvar elasticIn = function elasticIn(t, s, p) {\n return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\n};\n\nvar elasticOut = function elasticOut(t, s, p) {\n return Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n};\n\nvar effects = {\n linear: function linear(t) {\n return t;\n },\n easeInQuad: function easeInQuad(t) {\n return t * t;\n },\n easeOutQuad: function easeOutQuad(t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function easeInOutQuad(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function easeInCubic(t) {\n return t * t * t;\n },\n easeOutCubic: function easeOutCubic(t) {\n return (t -= 1) * t * t + 1;\n },\n easeInOutCubic: function easeInOutCubic(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function easeInQuart(t) {\n return t * t * t * t;\n },\n easeOutQuart: function easeOutQuart(t) {\n return -((t -= 1) * t * t * t - 1);\n },\n easeInOutQuart: function easeInOutQuart(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function easeInQuint(t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function easeOutQuint(t) {\n return (t -= 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function easeInOutQuint(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function easeInSine(t) {\n return -Math.cos(t * HALF_PI) + 1;\n },\n easeOutSine: function easeOutSine(t) {\n return Math.sin(t * HALF_PI);\n },\n easeInOutSine: function easeInOutSine(t) {\n return -0.5 * (Math.cos(PI * t) - 1);\n },\n easeInExpo: function easeInExpo(t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function easeOutExpo(t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function easeInOutExpo(t) {\n return atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2);\n },\n easeInCirc: function easeInCirc(t) {\n return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function easeOutCirc(t) {\n return Math.sqrt(1 - (t -= 1) * t);\n },\n easeInOutCirc: function easeInOutCirc(t) {\n return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function easeInElastic(t) {\n return atEdge(t) ? t : elasticIn(t, 0.075, 0.3);\n },\n easeOutElastic: function easeOutElastic(t) {\n return atEdge(t) ? t : elasticOut(t, 0.075, 0.3);\n },\n easeInOutElastic: function easeInOutElastic(t) {\n var s = 0.1125;\n var p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack: function easeInBack(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function easeOutBack(t) {\n var s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function easeInOutBack(t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function easeInBounce(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function easeOutBounce(t) {\n var m = 7.5625;\n var d = 2.75;\n\n if (t < 1 / d) {\n return m * t * t;\n }\n\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: function easeInOutBounce(t) {\n return t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n};\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\n\nvar map = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\nvar hex = '0123456789ABCDEF';\n\nvar h1 = function h1(b) {\n return hex[b & 0xF];\n};\n\nvar h2 = function h2(b) {\n return hex[(b & 0xF0) >> 4] + hex[b & 0xF];\n};\n\nvar eq = function eq(b) {\n return (b & 0xF0) >> 4 === (b & 0xF);\n};\n\nfunction isShort(v) {\n return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\n\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map[str[1]] * 17,\n g: 255 & map[str[2]] * 17,\n b: 255 & map[str[3]] * 17,\n a: len === 5 ? map[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map[str[1]] << 4 | map[str[2]],\n g: map[str[3]] << 4 | map[str[4]],\n b: map[str[5]] << 4 | map[str[6]],\n a: len === 9 ? map[str[7]] << 4 | map[str[8]] : 255\n };\n }\n }\n\n return ret;\n}\n\nfunction _hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '') : v;\n}\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\n\nvar lim = function lim(v, l, h) {\n return Math.max(Math.min(v, h), l);\n};\n\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\n\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\n\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\n\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nvar RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction rgbParse(str) {\n var m = RGB_RE.exec(str);\n var a = 255;\n var r, g, b;\n\n if (!m) {\n return;\n }\n\n if (m[7] !== r) {\n var v = +m[7];\n a = 255 & (m[8] ? p2b(v) : v * 255);\n }\n\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : r);\n g = 255 & (m[4] ? p2b(g) : g);\n b = 255 & (m[6] ? p2b(b) : b);\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\nfunction _rgbString(v) {\n return v && (v.a < 255 ? \"rgba(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \", \").concat(b2n(v.a), \")\") : \"rgb(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \")\"));\n}\n\nvar HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction hsl2rgbn(h, s, l) {\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n return [f(0), f(8), f(4)];\n}\n\nfunction hsv2rgbn(h, s, v) {\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n\n return [f(5), f(3), f(1)];\n}\n\nfunction hwb2rgbn(h, w, b) {\n var rgb = hsl2rgbn(h, 1, 0.5);\n var i;\n\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n\n return rgb;\n}\n\nfunction rgb2hsl(v) {\n var range = 255;\n var r = v.r / range;\n var g = v.g / range;\n var b = v.b / range;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h, s, d;\n\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h = h * 60 + 0.5;\n }\n\n return [h | 0, s || 0, l];\n}\n\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\n\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\n\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\n\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\n\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\n\nfunction hueParse(str) {\n var m = HUE_RE.exec(str);\n var a = 255;\n var v;\n\n if (!m) {\n return;\n }\n\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n\n var h = hue(+m[2]);\n var p1 = +m[3] / 100;\n var p2 = +m[4] / 100;\n\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\n\nfunction _rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\n\nfunction _hslString(v) {\n if (!v) {\n return;\n }\n\n var a = rgb2hsl(v);\n var h = a[0];\n var s = n2p(a[1]);\n var l = n2p(a[2]);\n return v.a < 255 ? \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(b2n(v.a), \")\") : \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\");\n}\n\nvar map$1 = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nvar names = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\n\nfunction unpack() {\n var unpacked = {};\n var keys = Object.keys(names);\n var tkeys = Object.keys(map$1);\n var i, j, k, ok, nk;\n\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map$1[k]);\n }\n\n k = parseInt(names[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n\n return unpacked;\n}\n\nvar names$1;\n\nfunction nameParse(str) {\n if (!names$1) {\n names$1 = unpack();\n names$1.transparent = [0, 0, 0, 0];\n }\n\n var a = names$1[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n var tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\n\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\n\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n\n return v;\n}\n\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n\n return hueParse(str);\n}\n\nvar Color = /*#__PURE__*/function () {\n function Color(input) {\n _classCallCheck(this, Color);\n\n if (input instanceof Color) {\n return input;\n }\n\n var type = _typeof(input);\n\n var v;\n\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n\n this._rgb = v;\n this._valid = !!v;\n }\n\n _createClass(Color, [{\n key: \"rgbString\",\n value: function rgbString() {\n return this._valid ? _rgbString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hexString\",\n value: function hexString() {\n return this._valid ? _hexString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hslString\",\n value: function hslString() {\n return this._valid ? _hslString(this._rgb) : this._rgb;\n }\n }, {\n key: \"mix\",\n value: function mix(color, weight) {\n var me = this;\n\n if (color) {\n var c1 = me.rgb;\n var c2 = color.rgb;\n var w2;\n var p = weight === w2 ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = c1.a - c2.a;\n var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n me.rgb = c1;\n }\n\n return me;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Color(this.rgb);\n }\n }, {\n key: \"alpha\",\n value: function alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n }, {\n key: \"clearer\",\n value: function clearer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n }, {\n key: \"greyscale\",\n value: function greyscale() {\n var rgb = this._rgb;\n var val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n }, {\n key: \"opaquer\",\n value: function opaquer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n }, {\n key: \"lighten\",\n value: function lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n }, {\n key: \"darken\",\n value: function darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n }, {\n key: \"saturate\",\n value: function saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n }, {\n key: \"desaturate\",\n value: function desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(deg) {\n _rotate(this._rgb, deg);\n\n return this;\n }\n }, {\n key: \"valid\",\n get: function get() {\n return this._valid;\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var v = clone(this._rgb);\n\n if (v) {\n v.a = b2n(v.a);\n }\n\n return v;\n },\n set: function set(obj) {\n this._rgb = fromObject(obj);\n }\n }]);\n\n return Color;\n}();\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nvar isPatternOrGradient = function isPatternOrGradient(value) {\n return value instanceof CanvasGradient || value instanceof CanvasPattern;\n};\n\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\n\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nvar overrides = Object.create(null);\nvar descriptors = Object.create(null);\n\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n\n var keys = key.split('.');\n\n for (var i = 0, n = keys.length; i < n; ++i) {\n var k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n\n return node;\n}\n\nfunction _set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n\n return merge(getScope$1(root, ''), scope);\n}\n\nvar Defaults = /*#__PURE__*/function () {\n function Defaults(_descriptors) {\n _classCallCheck(this, Defaults);\n\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n\n this.devicePixelRatio = function (context) {\n return context.chart.platform.getDevicePixelRatio();\n };\n\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n\n this.hoverBackgroundColor = function (ctx, options) {\n return getHoverColor(options.backgroundColor);\n };\n\n this.hoverBorderColor = function (ctx, options) {\n return getHoverColor(options.borderColor);\n };\n\n this.hoverColor = function (ctx, options) {\n return getHoverColor(options.color);\n };\n\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n\n _createClass(Defaults, [{\n key: \"set\",\n value: function set(scope, values) {\n return _set(this, scope, values);\n }\n }, {\n key: \"get\",\n value: function get(scope) {\n return getScope$1(this, scope);\n }\n }, {\n key: \"describe\",\n value: function describe(scope, values) {\n return _set(descriptors, scope, values);\n }\n }, {\n key: \"override\",\n value: function override(scope, values) {\n return _set(overrides, scope, values);\n }\n }, {\n key: \"route\",\n value: function route(scope, name, targetScope, targetName) {\n var _Object$definePropert;\n\n var scopeObject = getScope$1(this, scope);\n var targetScopeObject = getScope$1(this, targetScope);\n var privateName = '_' + name;\n Object.defineProperties(scopeObject, (_Object$definePropert = {}, _defineProperty(_Object$definePropert, privateName, {\n value: scopeObject[name],\n writable: true\n }), _defineProperty(_Object$definePropert, name, {\n enumerable: true,\n get: function get() {\n var local = this[privateName];\n var target = targetScopeObject[targetName];\n\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n\n return valueOrDefault(local, target);\n },\n set: function set(value) {\n this[privateName] = value;\n }\n }), _Object$definePropert));\n }\n }]);\n\n return Defaults;\n}();\n\nvar defaults = new Defaults({\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n _indexable: function _indexable(name) {\n return name !== 'events';\n },\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n\nfunction _measureText(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n\n if (textWidth > longest) {\n longest = textWidth;\n }\n\n return longest;\n}\n\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n ctx.font = font;\n var longest = 0;\n var ilen = arrayOfThings.length;\n var i, j, jlen, thing, nestedThing;\n\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n var gcLen = gc.length / 2;\n\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n\n return longest;\n}\n\nfunction _alignPixel(chart, pixel, width) {\n var devicePixelRatio = chart.currentDevicePixelRatio;\n var halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nfunction drawPoint(ctx, options, x, y) {\n var type, xOffset, yOffset, size, cornerRadius;\n var style = options.pointStyle;\n var rotation = options.rotation;\n var radius = options.radius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && _typeof(style) === 'object') {\n type = style.toString();\n\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n\n rad += QUARTER_PI;\n\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n\n case 'crossRot':\n rad += QUARTER_PI;\n\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\n\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n if (mode === 'middle') {\n var midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n\n ctx.lineTo(target.x, target.y);\n}\n\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\n\nfunction renderText(ctx, text, x, y, font) {\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var lines = isArray(text) ? text : [text];\n var stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n var i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n var metrics = ctx.measureText(line);\n var left = x - metrics.actualBoundingBoxLeft;\n var right = x + metrics.actualBoundingBoxRight;\n var top = y - metrics.actualBoundingBoxAscent;\n var bottom = y + metrics.actualBoundingBoxDescent;\n var yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction addRoundedRectPath(ctx, rect) {\n var x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nvar LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nvar FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\n\nfunction toLineHeight(value, size) {\n var matches = ('' + value).match(LINE_HEIGHT);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n}\n\nvar numberOrZero = function numberOrZero(v) {\n return +v || 0;\n};\n\nfunction _readValueToProps(value, props) {\n var ret = {};\n var objProps = isObject(props);\n var keys = objProps ? Object.keys(props) : props;\n var read = isObject(value) ? objProps ? function (prop) {\n return valueOrDefault(value[prop], value[props[prop]]);\n } : function (prop) {\n return value[prop];\n } : function () {\n return value;\n };\n\n var _iterator2 = _createForOfIteratorHelper(keys),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var prop = _step2.value;\n ret[prop] = numberOrZero(read(prop));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return ret;\n}\n\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\nfunction toPadding(value) {\n var obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n var size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n var style = valueOrDefault(options.style, fallback.style);\n\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n\n var font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size: size,\n style: style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n\nfunction resolve(inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n}\n\nfunction _addGrace(minmax, grace, beginAtZero) {\n var min = minmax.min,\n max = minmax.max;\n var change = toDimension(grace, (max - min) / 2);\n\n var keepZero = function keepZero(value, add) {\n return beginAtZero && value === 0 ? 0 : value + add;\n };\n\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || function (index) {\n return table[index] < value;\n };\n\n var hi = table.length - 1;\n var lo = 0;\n var mid;\n\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {\n lo: lo,\n hi: hi\n };\n}\n\nvar _lookupByKey = function _lookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] < value;\n });\n};\n\nvar _rlookupByKey = function _rlookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] >= value;\n });\n};\n\nfunction _filterBetween(values, min, max) {\n var start = 0;\n var end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = '_onData' + _capitalize(key);\n\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function value() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var res = base.apply(this, args);\n\n array._chartjs.listeners.forEach(function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\nfunction unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n}\n\nfunction _arrayUnique(items) {\n var set = new Set();\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n return Array.from(set);\n}\n\nfunction _createResolver(scopes) {\n var _cache;\n\n var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n var fallback = arguments.length > 3 ? arguments[3] : undefined;\n var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {\n return scopes[0];\n };\n\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n\n var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, \"_cacheable\", true), _defineProperty(_cache, \"_scopes\", scopes), _defineProperty(_cache, \"_rootScopes\", rootScopes), _defineProperty(_cache, \"_fallback\", fallback), _defineProperty(_cache, \"_getTarget\", getTarget), _defineProperty(_cache, \"override\", function override(scope) {\n return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);\n }), _cache);\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get: function get(target, prop) {\n return _cached(target, prop, function () {\n return _resolveWithPrefixes(prop, prefixes, scopes, target);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has: function has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys: function ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set: function set(target, prop, value) {\n var storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\n\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n var cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: function setContext(ctx) {\n return _attachContext(proxy, ctx, subProxy, descriptorDefaults);\n },\n override: function override(scope) {\n return _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults);\n }\n };\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get: function get(target, prop, receiver) {\n return _cached(target, prop, function () {\n return _resolveWithContext(target, prop, receiver);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has: function has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys: function ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set: function set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\n\nfunction _descriptors(proxy) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n\n var _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : function () {\n return _scriptable;\n },\n isIndexable: isFunction(_indexable) ? _indexable : function () {\n return _indexable;\n }\n };\n}\n\nvar readKey = function readKey(prefix, name) {\n return prefix ? prefix + _capitalize(name) : name;\n};\n\nvar needsSubResolver = function needsSubResolver(prop, value) {\n return isObject(value) && prop !== 'adapters';\n};\n\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n\n var value = resolve();\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n var value = _proxy[prop];\n\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n\n _stack.add(prop);\n\n value = value(_context, _subProxy || receiver);\n\n _stack[\"delete\"](prop);\n\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n var arr = value;\n\n var scopes = _proxy._scopes.filter(function (s) {\n return s !== arr;\n });\n\n value = [];\n\n var _iterator3 = _createForOfIteratorHelper(arr),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n var resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nvar getScope = function getScope(key, parent) {\n return key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n};\n\nfunction addScopes(set, parentScopes, key, parentFallback) {\n var _iterator4 = _createForOfIteratorHelper(parentScopes),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var parent = _step4.value;\n var scope = getScope(key, parent);\n\n if (scope) {\n set.add(scope);\n var fallback = resolveFallback(scope._fallback, key, scope);\n\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n var rootScopes = resolver._rootScopes;\n var fallback = resolveFallback(resolver._fallback, prop, value);\n var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));\n var set = new Set();\n set.add(value);\n var key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n\n if (key === null) {\n return false;\n }\n\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n\n if (key === null) {\n return false;\n }\n }\n\n return _createResolver(Array.from(set), [''], rootScopes, fallback, function () {\n return subGetTarget(resolver, prop, value);\n });\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n\n return key;\n}\n\nfunction subGetTarget(resolver, prop, value) {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n var target = parent[prop];\n\n if (isArray(target) && isObject(value)) {\n return value;\n }\n\n return target;\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n var value;\n\n var _iterator5 = _createForOfIteratorHelper(prefixes),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var prefix = _step5.value;\n value = _resolve(readKey(prefix, prop), scopes);\n\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n}\n\nfunction _resolve(key, scopes) {\n var _iterator6 = _createForOfIteratorHelper(scopes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var scope = _step6.value;\n\n if (!scope) {\n continue;\n }\n\n var value = scope[key];\n\n if (defined(value)) {\n return value;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n var keys = target._keys;\n\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n var set = new Set();\n\n var _iterator7 = _createForOfIteratorHelper(scopes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var scope = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(Object.keys(scope).filter(function (k) {\n return !k.startsWith('_');\n })),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var key = _step8.value;\n set.add(key);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return Array.from(set);\n}\n\nvar EPSILON = Number.EPSILON || 1e-14;\n\nvar getPoint = function getPoint(points, i) {\n return i < points.length && !points[i].skip && points[i];\n};\n\nvar getValueAxis = function getValueAxis(indexAxis) {\n return indexAxis === 'x' ? 'y' : 'x';\n};\n\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n var d01 = distanceBetweenPoints(current, previous);\n var d12 = distanceBetweenPoints(next, current);\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n var fa = t * s01;\n var fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\nfunction monotoneAdjust(points, deltaK, mK) {\n var pointsLen = points.length;\n var alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points, mK) {\n var indexAxis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var delta, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n var iPixel = pointCurrent[indexAxis];\n var vPixel = pointCurrent[valueAxis];\n\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[\"cp1\".concat(indexAxis)] = iPixel - delta;\n pointCurrent[\"cp1\".concat(valueAxis)] = vPixel - delta * mK[i];\n }\n\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[\"cp2\".concat(indexAxis)] = iPixel + delta;\n pointCurrent[\"cp2\".concat(valueAxis)] = vPixel + delta * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\n var indexAxis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var deltaK = Array(pointsLen).fill(0);\n var mK = Array(pointsLen);\n var i, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n var slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points, area) {\n var i, ilen, point, inArea, inAreaPrev;\n\n var inAreaNext = _isPointInArea(points[0], area);\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n\n if (!inArea) {\n continue;\n }\n\n point = points[i];\n\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n var i, ilen, point, controlPoints;\n\n if (options.spanGaps) {\n points = points.filter(function (pt) {\n return !pt.skip;\n });\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n var prev = loop ? points[points.length - 1] : points[0];\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction _getParentNode(domNode) {\n var parent = domNode.parentNode;\n\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n\n return parent;\n}\n\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nvar getComputedStyle = function getComputedStyle(element) {\n return window.getComputedStyle(element, null);\n};\n\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nfunction getPositionedStyle(styles, style, suffix) {\n var result = {};\n suffix = suffix ? '-' + suffix : '';\n\n for (var i = 0; i < 4; i++) {\n var pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nvar useOffsetPos = function useOffsetPos(x, y, target) {\n return (x > 0 || y > 0) && (!target || !target.shadowRoot);\n};\n\nfunction getCanvasPosition(evt, canvas) {\n var e = evt[\"native\"] || evt;\n var touches = e.touches;\n var source = touches && touches.length ? touches[0] : e;\n var offsetX = source.offsetX,\n offsetY = source.offsetY;\n var box = false;\n var x, y;\n\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n var rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n\n return {\n x: x,\n y: y,\n box: box\n };\n}\n\nfunction getRelativePosition(evt, chart) {\n var canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n var style = getComputedStyle(canvas);\n var borderBox = style.boxSizing === 'border-box';\n var paddings = getPositionedStyle(style, 'padding');\n var borders = getPositionedStyle(style, 'border', 'width');\n\n var _getCanvasPosition = getCanvasPosition(evt, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n\n var xOffset = paddings.left + (box && borders.left);\n var yOffset = paddings.top + (box && borders.top);\n var width = chart.width,\n height = chart.height;\n\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas, width, height) {\n var maxWidth, maxHeight;\n\n if (width === undefined || height === undefined) {\n var container = _getParentNode(canvas);\n\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n var rect = container.getBoundingClientRect();\n var containerStyle = getComputedStyle(container);\n var containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n var containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n\n return {\n width: width,\n height: height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nvar round1 = function round1(v) {\n return Math.round(v * 10) / 10;\n};\n\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n var style = getComputedStyle(canvas);\n var margins = getPositionedStyle(style, 'margin');\n var maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n var maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n var containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n var width = containerSize.width,\n height = containerSize.height;\n\n if (style.boxSizing === 'content-box') {\n var borders = getPositionedStyle(style, 'border', 'width');\n var paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n\n if (width && !height) {\n height = round1(width / 2);\n }\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction retinaScale(chart, forceRatio, forceStyle) {\n var pixelRatio = forceRatio || 1;\n var deviceHeight = Math.floor(chart.height * pixelRatio);\n var deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n var canvas = chart.canvas;\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = \"\".concat(chart.height, \"px\");\n canvas.style.width = \"\".concat(chart.width, \"px\");\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n\n return false;\n}\n\nvar supportsEventListenerOptions = function () {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n\n return passiveSupported;\n}();\n\nfunction readUsedSize(element, property) {\n var value = getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n\nfunction _bezierInterpolation(p1, p2, t, mode) {\n var cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n var cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n\n var a = _pointInLine(p1, cp1, t);\n\n var b = _pointInLine(cp1, cp2, t);\n\n var c = _pointInLine(cp2, p2, t);\n\n var d = _pointInLine(a, b, t);\n\n var e = _pointInLine(b, c, t);\n\n return _pointInLine(d, e, t);\n}\n\nvar intlCache = new Map();\n\nfunction getNumberFormat(locale, options) {\n options = options || {};\n var cacheKey = locale + JSON.stringify(options);\n var formatter = intlCache.get(cacheKey);\n\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n\n return formatter;\n}\n\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nvar getRightToLeftAdapter = function getRightToLeftAdapter(rectX, width) {\n return {\n x: function x(_x) {\n return rectX + rectX + width - _x;\n },\n setWidth: function setWidth(w) {\n width = w;\n },\n textAlign: function textAlign(align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function xPlus(x, value) {\n return x - value;\n },\n leftForLtr: function leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\n\nvar getLeftToRightAdapter = function getLeftToRightAdapter() {\n return {\n x: function x(_x2) {\n return _x2;\n },\n setWidth: function setWidth(w) {},\n textAlign: function textAlign(align) {\n return align;\n },\n xPlus: function xPlus(x, value) {\n return x + value;\n },\n leftForLtr: function leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\n\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nfunction overrideTextDirection(ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\n\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n\n return {\n between: function between(n, s, e) {\n return n >= Math.min(s, e) && n <= Math.max(e, s);\n },\n compare: function compare(a, b) {\n return a - b;\n },\n normalize: function normalize(x) {\n return x;\n }\n };\n}\n\nfunction normalizeSegment(_ref) {\n var start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style: style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n\n var _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n\n var count = points.length;\n var start = segment.start,\n end = segment.end,\n loop = segment.loop;\n var i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n\n start--;\n end--;\n }\n\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n\n return {\n start: start,\n end: end,\n loop: loop,\n style: segment.style\n };\n}\n\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n var count = points.length;\n\n var _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n\n var _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n\n var result = [];\n var inside = false;\n var subStart = null;\n var value, point, prevValue;\n\n var startIsBefore = function startIsBefore() {\n return between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n };\n\n var endIsBefore = function endIsBefore() {\n return compare(endBound, value) === 0 || between(endBound, prevValue, value);\n };\n\n var shouldStart = function shouldStart() {\n return inside || startIsBefore();\n };\n\n var shouldStop = function shouldStop() {\n return !inside || endIsBefore();\n };\n\n for (var i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop: loop,\n count: count,\n style: style\n }));\n subStart = null;\n }\n\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end: end,\n loop: loop,\n count: count,\n style: style\n }));\n }\n\n return result;\n}\n\nfunction _boundSegments(line, bounds) {\n var result = [];\n var segments = line.segments;\n\n for (var i = 0; i < segments.length; i++) {\n var sub = _boundSegment(segments[i], line.points, bounds);\n\n if (sub.length) {\n result.push.apply(result, _toConsumableArray(sub));\n }\n }\n\n return result;\n}\n\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n var start = 0;\n var end = count - 1;\n\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n while (start < count && points[start].skip) {\n start++;\n }\n\n start %= count;\n\n if (loop) {\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n end %= count;\n return {\n start: start,\n end: end\n };\n}\n\nfunction solidSegments(points, start, max, loop) {\n var count = points.length;\n var result = [];\n var last = start;\n var prev = points[start];\n var end;\n\n for (end = start + 1; end <= max; ++end) {\n var cur = points[end % count];\n\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop: loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n\n if (prev.skip) {\n start = end;\n }\n }\n\n prev = cur;\n }\n\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop: loop\n });\n }\n\n return result;\n}\n\nfunction _computeSegments(line, segmentOptions) {\n var points = line.points;\n var spanGaps = line.options.spanGaps;\n var count = points.length;\n\n if (!count) {\n return [];\n }\n\n var loop = !!line._loop;\n\n var _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n\n if (spanGaps === true) {\n return splitByStyles(line, [{\n start: start,\n end: end,\n loop: loop\n }], points, segmentOptions);\n }\n\n var max = end < start ? end + count : end;\n var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n var chartContext = line._chart.getContext();\n\n var baseStyle = readStyle(line.options);\n var datasetIndex = line._datasetIndex,\n spanGaps = line.options.spanGaps;\n var count = points.length;\n var result = [];\n var prevStyle = baseStyle;\n var start = segments[0].start;\n var i = start;\n\n function addStyle(s, e, l, st) {\n var dir = spanGaps ? -1 : 1;\n\n if (s === e) {\n return;\n }\n\n s += count;\n\n while (points[s % count].skip) {\n s -= dir;\n }\n\n while (points[e % count].skip) {\n e += dir;\n }\n\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n\n var _iterator9 = _createForOfIteratorHelper(segments),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var segment = _step9.value;\n start = spanGaps ? start : segment.start;\n var prev = points[start % count];\n var style = void 0;\n\n for (i = start + 1; i <= segment.end; i++) {\n var pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex: datasetIndex\n })));\n\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _alignStartEnd as $, _rlookupByKey as A, toPadding as B, each as C, getMaximumSize as D, _getParentNode as E, readUsedSize as F, throttled as G, HALF_PI as H, supportsEventListenerOptions as I, _isDomSupported as J, log10 as K, _factorize as L, finiteOrDefault as M, callback as N, _addGrace as O, PI as P, toDegrees as Q, _measureText as R, _int16Range as S, TAU as T, _alignPixel as U, clipArea as V, renderText as W, unclipArea as X, toFont as Y, _toLeftRightCenter as Z, _arrayUnique as _, resolve as a, overrides as a0, merge as a1, _capitalize as a2, descriptors as a3, isFunction as a4, _attachContext as a5, _createResolver as a6, _descriptors as a7, mergeIf as a8, uid as a9, distanceBetweenPoints as aA, _setMinAndMaxByKey as aB, niceNum as aC, almostWhole as aD, almostEquals as aE, _decimalPlaces as aF, _longestText as aG, _filterBetween as aH, _lookup as aI, getHoverColor as aJ, clone$1 as aK, _merger as aL, _mergerIf as aM, _deprecated as aN, toFontString as aO, splineCurve as aP, splineCurveMonotone as aQ, getStyle as aR, fontString as aS, toLineHeight as aT, PITAU as aU, INFINITY as aV, RAD_PER_DEG as aW, QUARTER_PI as aX, TWO_THIRDS_PI as aY, _angleDiff as aZ, debounce as aa, retinaScale as ab, clearCanvas as ac, setsEqual as ad, _elementsEqual as ae, getAngleFromPoint as af, _readValueToProps as ag, _updateBezierControlPoints as ah, _computeSegments as ai, _boundSegments as aj, _steppedInterpolation as ak, _bezierInterpolation as al, _pointInLine as am, _steppedLineTo as an, _bezierCurveTo as ao, drawPoint as ap, addRoundedRectPath as aq, toTRBL as ar, toTRBLCorners as as, _boundSegment as at, _normalizeAngle as au, getRtlAdapter as av, overrideTextDirection as aw, _textX as ax, restoreTextDirection as ay, noop as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };","var Buffer = require('safe-buffer').Buffer;\n\nvar Transform = require('stream').Transform;\n\nvar StringDecoder = require('string_decoder').StringDecoder;\n\nvar inherits = require('inherits');\n\nfunction CipherBase(hashMode) {\n Transform.call(this);\n this.hashMode = typeof hashMode === 'string';\n\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest;\n } else {\n this[\"final\"] = this._finalOrDigest;\n }\n\n if (this._final) {\n this.__final = this._final;\n this._final = null;\n }\n\n this._decoder = null;\n this._encoding = null;\n}\n\ninherits(CipherBase, Transform);\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc);\n }\n\n var outData = this._update(data);\n\n if (this.hashMode) return this;\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc);\n }\n\n return outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\n\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err;\n\n try {\n if (this.hashMode) {\n this._update(data);\n } else {\n this.push(this._update(data));\n }\n } catch (e) {\n err = e;\n } finally {\n next(err);\n }\n};\n\nCipherBase.prototype._flush = function (done) {\n var err;\n\n try {\n this.push(this.__final());\n } catch (e) {\n err = e;\n }\n\n done(err);\n};\n\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0);\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true);\n }\n\n return outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc);\n this._encoding = enc;\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings');\n\n var out = this._decoder.write(value);\n\n if (fin) {\n out += this._decoder.end();\n }\n\n return out;\n};\n\nmodule.exports = CipherBase;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = _typeof(arg);\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames[\"default\"] = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction toVal(mix) {\n var k,\n y,\n str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (_typeof(mix) === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n}\n\nexport default function () {\n var i = 0,\n tmp,\n x,\n str = '';\n\n while (i < arguments.length) {\n if (tmp = arguments[i++]) {\n if (x = toVal(tmp)) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n\n return str;\n}","var CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); // Adapted from Modernizr\n// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37\n\nfunction testPassiveEventListeners() {\n if (!CAN_USE_DOM) {\n return false;\n }\n\n if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {\n return false;\n }\n\n var supportsPassiveOption = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line getter-return\n get: function () {\n function get() {\n supportsPassiveOption = true;\n }\n\n return get;\n }()\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, opts);\n window.removeEventListener('testPassiveEventSupport', noop, opts);\n } catch (e) {// do nothing\n }\n\n return supportsPassiveOption;\n}\n\nvar memoized = void 0;\n\nfunction canUsePassiveEventListeners() {\n if (memoized === undefined) {\n memoized = testPassiveEventListeners();\n }\n\n return memoized;\n}\n\nfunction normalizeEventOptions(eventOptions) {\n if (!eventOptions) {\n return undefined;\n }\n\n if (!canUsePassiveEventListeners()) {\n // If the browser does not support the passive option, then it is expecting\n // a boolean for the options argument to specify whether it should use\n // capture or not. In more modern browsers, this is passed via the `capture`\n // option, so let's just hoist that value up.\n return !!eventOptions.capture;\n }\n\n return eventOptions;\n}\n/* eslint-disable no-bitwise */\n\n/**\n * Generate a unique key for any set of event options\n */\n\n\nfunction eventOptionsKey(normalizedEventOptions) {\n if (!normalizedEventOptions) {\n return 0;\n } // If the browser does not support passive event listeners, the normalized\n // event options will be a boolean.\n\n\n if (normalizedEventOptions === true) {\n return 100;\n } // At this point, the browser supports passive event listeners, so we expect\n // the event options to be an object with possible properties of capture,\n // passive, and once.\n //\n // We want to consistently return the same value, regardless of the order of\n // these properties, so let's use binary maths to assign each property to a\n // bit, and then add those together (with an offset to account for the\n // booleans at the beginning of this function).\n\n\n var capture = normalizedEventOptions.capture << 0;\n var passive = normalizedEventOptions.passive << 1;\n var once = normalizedEventOptions.once << 2;\n return capture + passive + once;\n}\n\nfunction ensureCanMutateNextEventHandlers(eventHandlers) {\n if (eventHandlers.handlers === eventHandlers.nextHandlers) {\n // eslint-disable-next-line no-param-reassign\n eventHandlers.nextHandlers = eventHandlers.handlers.slice();\n }\n}\n\nfunction TargetEventHandlers(target) {\n this.target = target;\n this.events = {};\n}\n\nTargetEventHandlers.prototype.getEventHandlers = function () {\n function getEventHandlers(eventName, options) {\n var key = String(eventName) + ' ' + String(eventOptionsKey(options));\n\n if (!this.events[key]) {\n this.events[key] = {\n handlers: [],\n handleEvent: undefined\n };\n this.events[key].nextHandlers = this.events[key].handlers;\n }\n\n return this.events[key];\n }\n\n return getEventHandlers;\n}();\n\nTargetEventHandlers.prototype.handleEvent = function () {\n function handleEvent(eventName, options, event) {\n var eventHandlers = this.getEventHandlers(eventName, options);\n eventHandlers.handlers = eventHandlers.nextHandlers;\n eventHandlers.handlers.forEach(function (handler) {\n if (handler) {\n // We need to check for presence here because a handler function may\n // cause later handlers to get removed. This can happen if you for\n // instance have a waypoint that unmounts another waypoint as part of an\n // onEnter/onLeave handler.\n handler(event);\n }\n });\n }\n\n return handleEvent;\n}();\n\nTargetEventHandlers.prototype.add = function () {\n function add(eventName, listener, options) {\n var _this = this; // options has already been normalized at this point.\n\n\n var eventHandlers = this.getEventHandlers(eventName, options);\n ensureCanMutateNextEventHandlers(eventHandlers);\n\n if (eventHandlers.nextHandlers.length === 0) {\n eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);\n this.target.addEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.nextHandlers.push(listener);\n var isSubscribed = true;\n\n var unsubscribe = function () {\n function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n ensureCanMutateNextEventHandlers(eventHandlers);\n var index = eventHandlers.nextHandlers.indexOf(listener);\n eventHandlers.nextHandlers.splice(index, 1);\n\n if (eventHandlers.nextHandlers.length === 0) {\n // All event handlers have been removed, so we want to remove the event\n // listener from the target node.\n if (_this.target) {\n // There can be a race condition where the target may no longer exist\n // when this function is called, e.g. when a React component is\n // unmounting. Guarding against this prevents the following error:\n //\n // Cannot read property 'removeEventListener' of undefined\n _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);\n }\n\n eventHandlers.handleEvent = undefined;\n }\n }\n\n return unsubscribe;\n }();\n\n return unsubscribe;\n }\n\n return add;\n}();\n\nvar EVENT_HANDLERS_KEY = '__consolidated_events_handlers__'; // eslint-disable-next-line import/prefer-default-export\n\nfunction addEventListener(target, eventName, listener, options) {\n if (!target[EVENT_HANDLERS_KEY]) {\n // eslint-disable-next-line no-param-reassign\n target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);\n }\n\n var normalizedEventOptions = normalizeEventOptions(options);\n return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);\n}\n\nexport { addEventListener };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n\n return objectToString(arg) === '[object Array]';\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return _typeof(arg) === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return objectToString(e) === '[object Error]' || e instanceof Error;\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || _typeof(arg) === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}","var elliptic = require('elliptic');\n\nvar BN = require('bn.js');\n\nmodule.exports = function createECDH(curve) {\n return new ECDH(curve);\n};\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n};\naliases.p224 = aliases.secp224r1;\naliases.p256 = aliases.secp256r1 = aliases.prime256v1;\naliases.p192 = aliases.secp192r1 = aliases.prime192v1;\naliases.p384 = aliases.secp384r1;\naliases.p521 = aliases.secp521r1;\n\nfunction ECDH(curve) {\n this.curveType = aliases[curve];\n\n if (!this.curveType) {\n this.curveType = {\n name: curve\n };\n }\n\n this.curve = new elliptic.ec(this.curveType.name); // eslint-disable-line new-cap\n\n this.keys = void 0;\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair();\n return this.getPublicKey(enc, format);\n};\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8';\n\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc);\n }\n\n var otherPub = this.curve.keyFromPublic(other).getPublic();\n var out = otherPub.mul(this.keys.getPrivate()).getX();\n return formatReturnValue(out, enc, this.curveType.byteLength);\n};\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true);\n\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7;\n } else {\n key[0] = 6;\n }\n }\n\n return formatReturnValue(key, enc);\n};\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc);\n};\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n\n this.keys._importPublic(pub);\n\n return this;\n};\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8';\n\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n\n var _priv = new BN(priv);\n\n _priv = _priv.toString(16);\n this.keys = this.curve.genKeyPair();\n\n this.keys._importPrivate(_priv);\n\n return this;\n};\n\nfunction formatReturnValue(bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray();\n }\n\n var buf = new Buffer(bn);\n\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length);\n zeros.fill(0);\n buf = Buffer.concat([zeros, buf]);\n }\n\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}","'use strict';\n\nvar inherits = require('inherits');\n\nvar MD5 = require('md5.js');\n\nvar RIPEMD160 = require('ripemd160');\n\nvar sha = require('sha.js');\n\nvar Base = require('cipher-base');\n\nfunction Hash(hash) {\n Base.call(this, 'digest');\n this._hash = hash;\n}\n\ninherits(Hash, Base);\n\nHash.prototype._update = function (data) {\n this._hash.update(data);\n};\n\nHash.prototype._final = function () {\n return this._hash.digest();\n};\n\nmodule.exports = function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') return new MD5();\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160();\n return new Hash(sha(alg));\n};","var MD5 = require('md5.js');\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest();\n};","'use strict';\n\nvar inherits = require('inherits');\n\nvar Legacy = require('./legacy');\n\nvar Base = require('cipher-base');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar md5 = require('create-hash/md5');\n\nvar RIPEMD160 = require('ripemd160');\n\nvar sha = require('sha.js');\n\nvar ZEROS = Buffer.alloc(128);\n\nfunction Hmac(alg, key) {\n Base.call(this, 'digest');\n\n if (typeof key === 'string') {\n key = Buffer.from(key);\n }\n\n var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n this._alg = alg;\n this._key = key;\n\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);\n key = hash.update(key).digest();\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize);\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize);\n var opad = this._opad = Buffer.allocUnsafe(blocksize);\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36;\n opad[i] = key[i] ^ 0x5C;\n }\n\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);\n\n this._hash.update(ipad);\n}\n\ninherits(Hmac, Base);\n\nHmac.prototype._update = function (data) {\n this._hash.update(data);\n};\n\nHmac.prototype._final = function () {\n var h = this._hash.digest();\n\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg);\n return hash.update(this._opad).update(h).digest();\n};\n\nmodule.exports = function createHmac(alg, key) {\n alg = alg.toLowerCase();\n\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key);\n }\n\n if (alg === 'md5') {\n return new Legacy(md5, key);\n }\n\n return new Hmac(alg, key);\n};","'use strict';\n\nvar inherits = require('inherits');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar Base = require('cipher-base');\n\nvar ZEROS = Buffer.alloc(128);\nvar blocksize = 64;\n\nfunction Hmac(alg, key) {\n Base.call(this, 'digest');\n\n if (typeof key === 'string') {\n key = Buffer.from(key);\n }\n\n this._alg = alg;\n this._key = key;\n\n if (key.length > blocksize) {\n key = alg(key);\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize);\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize);\n var opad = this._opad = Buffer.allocUnsafe(blocksize);\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36;\n opad[i] = key[i] ^ 0x5C;\n }\n\n this._hash = [ipad];\n}\n\ninherits(Hmac, Base);\n\nHmac.prototype._update = function (data) {\n this._hash.push(data);\n};\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash));\n\n return this._alg(Buffer.concat([this._opad, h]));\n};\n\nmodule.exports = Hmac;","'use strict';\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\nexports.createHash = exports.Hash = require('create-hash');\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\n\nvar algoKeys = Object.keys(algos);\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys);\n\nexports.getHashes = function () {\n return hashes;\n};\n\nvar p = require('pbkdf2');\n\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt; // the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n throw new Error(['sorry, createCredentials is not implemented yet', 'we accept pull requests', 'https://github.com/crypto-browserify/crypto-browserify'].join('\\n'));\n};\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo; // Lookup tables\n\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = []; // Compute lookup tables\n\n (function () {\n // Compute double table\n var d = [];\n\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = i << 1 ^ 0x11b;\n }\n } // Walk GF(2^8)\n\n\n var x = 0;\n var xi = 0;\n\n for (var i = 0; i < 256; i++) {\n // Compute sbox\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x; // Compute multiplication\n\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4]; // Compute sub bytes, mix columns tables\n\n var t = d[sx] * 0x101 ^ sx * 0x1010100;\n SUB_MIX_0[x] = t << 24 | t >>> 8;\n SUB_MIX_1[x] = t << 16 | t >>> 16;\n SUB_MIX_2[x] = t << 8 | t >>> 24;\n SUB_MIX_3[x] = t; // Compute inv sub bytes, inv mix columns tables\n\n var t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n INV_SUB_MIX_0[sx] = t << 24 | t >>> 8;\n INV_SUB_MIX_1[sx] = t << 16 | t >>> 16;\n INV_SUB_MIX_2[sx] = t << 8 | t >>> 24;\n INV_SUB_MIX_3[sx] = t; // Compute next counter\n\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })(); // Precomputed Rcon lookup\n\n\n var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n /**\n * AES block cipher algorithm.\n */\n\n var AES = C_algo.AES = BlockCipher.extend({\n _doReset: function _doReset() {\n var t; // Skip reset of nRounds has been set before and key did not change\n\n if (this._nRounds && this._keyPriorReset === this._key) {\n return;\n } // Shortcuts\n\n\n var key = this._keyPriorReset = this._key;\n var keyWords = key.words;\n var keySize = key.sigBytes / 4; // Compute number of rounds\n\n var nRounds = this._nRounds = keySize + 6; // Compute number of key schedule rows\n\n var ksRows = (nRounds + 1) * 4; // Compute key schedule\n\n var keySchedule = this._keySchedule = [];\n\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n keySchedule[ksRow] = keyWords[ksRow];\n } else {\n t = keySchedule[ksRow - 1];\n\n if (!(ksRow % keySize)) {\n // Rot word\n t = t << 8 | t >>> 24; // Sub word\n\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff]; // Mix Rcon\n\n t ^= RCON[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) {\n // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n }\n\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n } // Compute inv key schedule\n\n\n var invKeySchedule = this._invKeySchedule = [];\n\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n var ksRow = ksRows - invKsRow;\n\n if (invKsRow % 4) {\n var t = keySchedule[ksRow];\n } else {\n var t = keySchedule[ksRow - 4];\n }\n\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 0xff]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n }\n }\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n decryptBlock: function decryptBlock(M, offset) {\n // Swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); // Inv swap 2nd and 4th rows\n\n\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n _doCryptBlock: function _doCryptBlock(M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n // Shortcut\n var nRounds = this._nRounds; // Get input, add round key\n\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3]; // Key schedule row counter\n\n var ksRow = 4; // Rounds\n\n for (var round = 1; round < nRounds; round++) {\n // Shift rows, sub bytes, mix columns, add round key\n var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[s1 >>> 16 & 0xff] ^ SUB_MIX_2[s2 >>> 8 & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[s2 >>> 16 & 0xff] ^ SUB_MIX_2[s3 >>> 8 & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[s3 >>> 16 & 0xff] ^ SUB_MIX_2[s0 >>> 8 & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[s0 >>> 16 & 0xff] ^ SUB_MIX_2[s1 >>> 8 & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; // Update state\n\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n } // Shift rows, sub bytes, add round key\n\n\n var t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n var t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n var t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n var t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; // Set output\n\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n keySize: 256 / 32\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n */\n\n C.AES = BlockCipher._createHelper(AES);\n })();\n\n return CryptoJS.AES;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./evpkdf\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * Cipher core components.\n */\n CryptoJS.lib.Cipher || function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */\n\n var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */\n cfg: Base.extend(),\n\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */\n createEncryptor: function createEncryptor(key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */\n createDecryptor: function createDecryptor(key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */\n init: function init(xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg); // Store transform mode and key\n\n this._xformMode = xformMode;\n this._key = key; // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */\n reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this); // Perform concrete-cipher logic\n\n this._doReset();\n },\n\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */\n process: function process(dataUpdate) {\n // Append\n this._append(dataUpdate); // Process available blocks\n\n\n return this._process();\n },\n\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */\n finalize: function finalize(dataUpdate) {\n // Final data update\n if (dataUpdate) {\n this._append(dataUpdate);\n } // Perform concrete-cipher logic\n\n\n var finalProcessedData = this._doFinalize();\n\n return finalProcessedData;\n },\n keySize: 128 / 32,\n ivSize: 128 / 32,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */\n _createHelper: function () {\n function selectCipherStrategy(key) {\n if (typeof key == 'string') {\n return PasswordBasedCipher;\n } else {\n return SerializableCipher;\n }\n }\n\n return function (cipher) {\n return {\n encrypt: function encrypt(message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n decrypt: function decrypt(ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n }\n };\n };\n }()\n });\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */\n\n var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function _doFinalize() {\n // Process partial blocks\n var finalProcessedBlocks = this._process(!!'flush');\n\n return finalProcessedBlocks;\n },\n blockSize: 1\n });\n /**\n * Mode namespace.\n */\n\n var C_mode = C.mode = {};\n /**\n * Abstract base block cipher mode template.\n */\n\n var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */\n createEncryptor: function createEncryptor(cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */\n createDecryptor: function createDecryptor(cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */\n init: function init(cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n }\n });\n /**\n * Cipher Block Chaining mode.\n */\n\n var CBC = C_mode.CBC = function () {\n /**\n * Abstract base CBC mode.\n */\n var CBC = BlockCipherMode.extend();\n /**\n * CBC encryptor.\n */\n\n CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // XOR and encrypt\n\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset); // Remember this block to use with next block\n\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n /**\n * CBC decryptor.\n */\n\n CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // Remember this block to use with next block\n\n var thisBlock = words.slice(offset, offset + blockSize); // Decrypt and XOR\n\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize); // This block becomes the previous block\n\n this._prevBlock = thisBlock;\n }\n });\n\n function xorBlock(words, offset, blockSize) {\n var block; // Shortcut\n\n var iv = this._iv; // Choose mixing block\n\n if (iv) {\n block = iv; // Remove IV for subsequent blocks\n\n this._iv = undefined;\n } else {\n block = this._prevBlock;\n } // XOR blocks\n\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= block[i];\n }\n }\n\n return CBC;\n }();\n /**\n * Padding namespace.\n */\n\n\n var C_pad = C.pad = {};\n /**\n * PKCS #5/7 padding strategy.\n */\n\n var Pkcs7 = C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */\n pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4; // Count padding bytes\n\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; // Create padding word\n\n var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes; // Create padding\n\n var paddingWords = [];\n\n for (var i = 0; i < nPaddingBytes; i += 4) {\n paddingWords.push(paddingWord);\n }\n\n var padding = WordArray.create(paddingWords, nPaddingBytes); // Add padding\n\n data.concat(padding);\n },\n\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */\n unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding\n\n data.sigBytes -= nPaddingBytes;\n }\n };\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */\n\n var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */\n cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7\n }),\n reset: function reset() {\n var modeCreator; // Reset cipher\n\n Cipher.reset.call(this); // Shortcuts\n\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode; // Reset block mode\n\n if (this._xformMode == this._ENC_XFORM_MODE) {\n modeCreator = mode.createEncryptor;\n } else\n /* if (this._xformMode == this._DEC_XFORM_MODE) */\n {\n modeCreator = mode.createDecryptor; // Keep at least one block in the buffer for unpadding\n\n this._minBufferSize = 1;\n }\n\n if (this._mode && this._mode.__creator == modeCreator) {\n this._mode.init(this, iv && iv.words);\n } else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n _doProcessBlock: function _doProcessBlock(words, offset) {\n this._mode.processBlock(words, offset);\n },\n _doFinalize: function _doFinalize() {\n var finalProcessedBlocks; // Shortcut\n\n var padding = this.cfg.padding; // Finalize\n\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize); // Process final blocks\n\n finalProcessedBlocks = this._process(!!'flush');\n } else\n /* if (this._xformMode == this._DEC_XFORM_MODE) */\n {\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush'); // Unpad data\n\n padding.unpad(finalProcessedBlocks);\n }\n\n return finalProcessedBlocks;\n },\n blockSize: 128 / 32\n });\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */\n\n var CipherParams = C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */\n init: function init(cipherParams) {\n this.mixIn(cipherParams);\n },\n\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */\n toString: function toString(formatter) {\n return (formatter || this.formatter).stringify(this);\n }\n });\n /**\n * Format namespace.\n */\n\n var C_format = C.format = {};\n /**\n * OpenSSL formatting strategy.\n */\n\n var OpenSSLFormatter = C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */\n stringify: function stringify(cipherParams) {\n var wordArray; // Shortcuts\n\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt; // Format\n\n if (salt) {\n wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n } else {\n wordArray = ciphertext;\n }\n\n return wordArray.toString(Base64);\n },\n\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */\n parse: function parse(openSSLStr) {\n var salt; // Parse base64\n\n var ciphertext = Base64.parse(openSSLStr); // Shortcut\n\n var ciphertextWords = ciphertext.words; // Test for salt\n\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4)); // Remove salt from ciphertext\n\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n\n return CipherParams.create({\n ciphertext: ciphertext,\n salt: salt\n });\n }\n };\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */\n\n var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */\n cfg: Base.extend({\n format: OpenSSLFormatter\n }),\n\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n encrypt: function encrypt(cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Encrypt\n\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message); // Shortcut\n\n var cipherCfg = encryptor.cfg; // Create and return serializable cipher params\n\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format\n });\n },\n\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n decrypt: function decrypt(cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Convert string to CipherParams\n\n ciphertext = this._parse(ciphertext, cfg.format); // Decrypt\n\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n return plaintext;\n },\n\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */\n _parse: function _parse(ciphertext, format) {\n if (typeof ciphertext == 'string') {\n return format.parse(ciphertext, this);\n } else {\n return ciphertext;\n }\n }\n });\n /**\n * Key derivation function namespace.\n */\n\n var C_kdf = C.kdf = {};\n /**\n * OpenSSL key derivation function.\n */\n\n var OpenSSLKdf = C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */\n execute: function execute(password, keySize, ivSize, salt) {\n // Generate random salt\n if (!salt) {\n salt = WordArray.random(64 / 8);\n } // Derive key and IV\n\n\n var key = EvpKDF.create({\n keySize: keySize + ivSize\n }).compute(password, salt); // Separate key and IV\n\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4; // Return params\n\n return CipherParams.create({\n key: key,\n iv: iv,\n salt: salt\n });\n }\n };\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */\n\n var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */\n cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf\n }),\n\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */\n encrypt: function encrypt(cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Derive key and other params\n\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); // Add IV to config\n\n cfg.iv = derivedParams.iv; // Encrypt\n\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); // Mix in derived params\n\n ciphertext.mixIn(derivedParams);\n return ciphertext;\n },\n\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */\n decrypt: function decrypt(cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg); // Convert string to CipherParams\n\n ciphertext = this._parse(ciphertext, cfg.format); // Derive key and other params\n\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); // Add IV to config\n\n cfg.iv = derivedParams.iv; // Decrypt\n\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n return plaintext;\n }\n });\n }();\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory();\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([], factory);\n } else {\n // Global (browser)\n root.CryptoJS = factory();\n }\n})(this, function () {\n /*globals window, global, require*/\n\n /**\n * CryptoJS core components.\n */\n var CryptoJS = CryptoJS || function (Math, undefined) {\n var crypto; // Native crypto from window (Browser)\n\n if (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n } // Native (experimental IE 11) crypto from window (Browser)\n\n\n if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n } // Native crypto from global (NodeJS)\n\n\n if (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n } // Native crypto import via require (NodeJS)\n\n\n if (!crypto && typeof require === 'function') {\n try {\n crypto = require('crypto');\n } catch (err) {}\n }\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */\n\n\n var cryptoSecureRandomInt = function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n } // Use randomBytes method (NodeJS)\n\n\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n\n throw new Error('Native crypto module could not be used to get secure random number.');\n };\n /*\n * Local polyfill of Object.create\n */\n\n\n var create = Object.create || function () {\n function F() {}\n\n return function (obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n }();\n /**\n * CryptoJS namespace.\n */\n\n\n var C = {};\n /**\n * Library namespace.\n */\n\n var C_lib = C.lib = {};\n /**\n * Base object for prototypal inheritance.\n */\n\n var Base = C_lib.Base = function () {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function extend(overrides) {\n // Spawn\n var subtype = create(this); // Augment\n\n if (overrides) {\n subtype.mixIn(overrides);\n } // Create default initializer\n\n\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n subtype.init = function () {\n subtype.$super.init.apply(this, arguments);\n };\n } // Initializer's prototype is the subtype object\n\n\n subtype.init.prototype = subtype; // Reference supertype\n\n subtype.$super = this;\n return subtype;\n },\n\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function create() {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function init() {},\n\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function mixIn(properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n } // IE won't copy toString using the loop above\n\n\n if (properties.hasOwnProperty('toString')) {\n this.toString = properties.toString;\n }\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function clone() {\n return this.init.prototype.extend(this);\n }\n };\n }();\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n\n\n var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function init(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function toString(encoder) {\n return (encoder || Hex).stringify(this);\n },\n\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function concat(wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes; // Clamp excess bits\n\n this.clamp(); // Concat\n\n if (thisSigBytes % 4) {\n // Copy one byte at a time\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n } else {\n // Copy one word at a time\n for (var i = 0; i < thatSigBytes; i += 4) {\n thisWords[thisSigBytes + i >>> 2] = thatWords[i >>> 2];\n }\n }\n\n this.sigBytes += thatSigBytes; // Chainable\n\n return this;\n },\n\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function clamp() {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes; // Clamp\n\n words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8;\n words.length = Math.ceil(sigBytes / 4);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function random(nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray.init(words, nBytes);\n }\n });\n /**\n * Encoder namespace.\n */\n\n var C_enc = C.enc = {};\n /**\n * Hex encoding strategy.\n */\n\n var Hex = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var hexChars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n\n return hexChars.join('');\n },\n\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function parse(hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n /**\n * Latin1 encoding strategy.\n */\n\n var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var latin1Chars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function parse(latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8;\n }\n\n return new WordArray.init(words, latin1StrLength);\n }\n };\n /**\n * UTF-8 encoding strategy.\n */\n\n var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error('Malformed UTF-8 data');\n }\n },\n\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function parse(utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */\n\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function reset() {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function _append(data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == 'string') {\n data = Utf8.parse(data);\n } // Append\n\n\n this._data.concat(data);\n\n this._nDataBytes += data.sigBytes;\n },\n\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function _process(doFlush) {\n var processedWords; // Shortcuts\n\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4; // Count blocks ready\n\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n\n if (doFlush) {\n // Round up to include partial blocks\n nBlocksReady = Math.ceil(nBlocksReady);\n } else {\n // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n } // Count words ready\n\n\n var nWordsReady = nBlocksReady * blockSize; // Count bytes ready\n\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); // Process blocks\n\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n // Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n } // Remove processed words\n\n\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n } // Return processed words\n\n\n return new WordArray.init(processedWords, nBytesReady);\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */\n\n var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function init(cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg); // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this); // Perform concrete-hasher logic\n\n this._doReset();\n },\n\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n // Append\n this._append(messageUpdate); // Update the hash\n\n\n this._process(); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Final message update\n if (messageUpdate) {\n this._append(messageUpdate);\n } // Perform concrete-hasher logic\n\n\n var hash = this._doFinalize();\n\n return hash;\n },\n blockSize: 512 / 32,\n\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function _createHelper(hasher) {\n return function (message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function _createHmacHelper(hasher) {\n return function (message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n /**\n * Algorithm namespace.\n */\n\n var C_algo = C.algo = {};\n return C;\n }(Math);\n\n return CryptoJS;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * Base64 encoding strategy.\n */\n\n var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map; // Clamp excess bits\n\n wordArray.clamp(); // Convert\n\n var base64Chars = [];\n\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n } // Add padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function parse(base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n } // Ignore padding\n\n\n var paddingChar = map.charAt(64);\n\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n } // Convert\n\n\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n };\n\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n\n return WordArray.create(words, nBytes);\n }\n })();\n\n return CryptoJS.enc.Base64;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * UTF-16 BE encoding strategy.\n */\n\n var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n /**\n * Converts a word array to a UTF-16 BE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 BE string.\n *\n * @static\n *\n * @example\n *\n * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var utf16Chars = [];\n\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff;\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n\n return utf16Chars.join('');\n },\n\n /**\n * Converts a UTF-16 BE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 BE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n */\n parse: function parse(utf16Str) {\n // Shortcut\n var utf16StrLength = utf16Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16;\n }\n\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n /**\n * UTF-16 LE encoding strategy.\n */\n\n C_enc.Utf16LE = {\n /**\n * Converts a word array to a UTF-16 LE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 LE string.\n *\n * @static\n *\n * @example\n *\n * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n */\n stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var utf16Chars = [];\n\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 0xffff);\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n\n return utf16Chars.join('');\n },\n\n /**\n * Converts a UTF-16 LE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 LE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n */\n parse: function parse(utf16Str) {\n // Shortcut\n var utf16StrLength = utf16Str.length; // Convert\n\n var words = [];\n\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16);\n }\n\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n\n function swapEndian(word) {\n return word << 8 & 0xff00ff00 | word >>> 8 & 0x00ff00ff;\n }\n })();\n\n return CryptoJS.enc.Utf16;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./sha1\", \"./hmac\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */\n\n var EvpKDF = C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: MD5,\n iterations: 1\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */\n init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function compute(password, salt) {\n var block; // Shortcut\n\n var cfg = this.cfg; // Init hasher\n\n var hasher = cfg.hasher.create(); // Initial values\n\n var derivedKey = WordArray.create(); // Shortcuts\n\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations; // Generate key\n\n while (derivedKeyWords.length < keySize) {\n if (block) {\n hasher.update(block);\n }\n\n block = hasher.update(password).finalize(salt);\n hasher.reset(); // Iterations\n\n for (var i = 1; i < iterations; i++) {\n block = hasher.finalize(block);\n hasher.reset();\n }\n\n derivedKey.concat(block);\n }\n\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */\n\n C.EvpKDF = function (password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.EvpKDF;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var CipherParams = C_lib.CipherParams;\n var C_enc = C.enc;\n var Hex = C_enc.Hex;\n var C_format = C.format;\n var HexFormatter = C_format.Hex = {\n /**\n * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The hexadecimally encoded string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n */\n stringify: function stringify(cipherParams) {\n return cipherParams.ciphertext.toString(Hex);\n },\n\n /**\n * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n *\n * @param {string} input The hexadecimally encoded string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n */\n parse: function parse(input) {\n var ciphertext = Hex.parse(input);\n return CipherParams.create({\n ciphertext: ciphertext\n });\n }\n };\n })();\n\n return CryptoJS.format.Hex;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n /**\n * HMAC algorithm.\n */\n\n var HMAC = C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function init(hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init(); // Convert string to WordArray, else assume WordArray already\n\n if (typeof key == 'string') {\n key = Utf8.parse(key);\n } // Shortcuts\n\n\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4; // Allow arbitrary length keys\n\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n } // Clamp excess bits\n\n\n key.clamp(); // Clone key for inner and outer pads\n\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone(); // Shortcuts\n\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words; // XOR keys with pad constants\n\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; // Set initial values\n\n this.reset();\n },\n\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function reset() {\n // Shortcut\n var hasher = this._hasher; // Reset\n\n hasher.reset();\n hasher.update(this._iKey);\n },\n\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function update(messageUpdate) {\n this._hasher.update(messageUpdate); // Chainable\n\n\n return this;\n },\n\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function finalize(messageUpdate) {\n // Shortcut\n var hasher = this._hasher; // Compute HMAC\n\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac;\n }\n });\n })();\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n } else {\n // Global (browser)\n root.CryptoJS = factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n return CryptoJS;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Check if typed arrays are supported\n if (typeof ArrayBuffer != 'function') {\n return;\n } // Shortcuts\n\n\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray; // Reference original init\n\n var superInit = WordArray.init; // Augment WordArray.init to handle typed arrays\n\n var subInit = WordArray.init = function (typedArray) {\n // Convert buffers to uint8\n if (typedArray instanceof ArrayBuffer) {\n typedArray = new Uint8Array(typedArray);\n } // Convert other array views to uint8\n\n\n if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) {\n typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n } // Handle Uint8Array\n\n\n if (typedArray instanceof Uint8Array) {\n // Shortcut\n var typedArrayByteLength = typedArray.byteLength; // Extract bytes\n\n var words = [];\n\n for (var i = 0; i < typedArrayByteLength; i++) {\n words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8;\n } // Initialize this word array\n\n\n superInit.call(this, words, typedArrayByteLength);\n } else {\n // Else call normal init\n superInit.apply(this, arguments);\n }\n };\n\n subInit.prototype = WordArray;\n })();\n\n return CryptoJS.lib.WordArray;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Constants table\n\n var T = []; // Compute constants\n\n (function () {\n for (var i = 0; i < 64; i++) {\n T[i] = Math.abs(Math.sin(i + 1)) * 0x100000000 | 0;\n }\n })();\n /**\n * MD5 hash algorithm.\n */\n\n\n var MD5 = C_algo.MD5 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n } // Shortcuts\n\n\n var H = this._hash.words;\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15]; // Working varialbes\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3]; // Computation\n\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]); // Intermediate hash value\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 0x00ff00ff | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 0xff00ff00;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 0x00ff00ff | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4; // Hash final blocks\n\n this._process(); // Shortcuts\n\n\n var hash = this._hash;\n var H = hash.words; // Swap endian\n\n for (var i = 0; i < 4; i++) {\n // Shortcut\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n } // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n\n function FF(a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function GG(a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */\n\n\n C.MD5 = Hasher._createHelper(MD5);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */\n\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n\n return CryptoJS.MD5;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * Cipher Feedback block mode.\n */\n CryptoJS.mode.CFB = function () {\n var CFB = CryptoJS.lib.BlockCipherMode.extend();\n CFB.Encryptor = CFB.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); // Remember this block to use with next block\n\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n CFB.Decryptor = CFB.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize; // Remember this block to use with next block\n\n var thisBlock = words.slice(offset, offset + blockSize);\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); // This block becomes the previous block\n\n this._prevBlock = thisBlock;\n }\n });\n\n function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n var keystream; // Shortcut\n\n var iv = this._iv; // Generate keystream\n\n if (iv) {\n keystream = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n } else {\n keystream = this._prevBlock;\n }\n\n cipher.encryptBlock(keystream, 0); // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n\n return CFB;\n }();\n\n return CryptoJS.mode.CFB;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /** @preserve\n * Counter block mode compatible with Dr Brian Gladman fileenc.c\n * derived from CryptoJS.mode.CTR\n * Jan Hruby jhruby.web@gmail.com\n */\n CryptoJS.mode.CTRGladman = function () {\n var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n function incWord(word) {\n if ((word >> 24 & 0xff) === 0xff) {\n //overflow\n var b1 = word >> 16 & 0xff;\n var b2 = word >> 8 & 0xff;\n var b3 = word & 0xff;\n\n if (b1 === 0xff) // overflow b1\n {\n b1 = 0;\n\n if (b2 === 0xff) {\n b2 = 0;\n\n if (b3 === 0xff) {\n b3 = 0;\n } else {\n ++b3;\n }\n } else {\n ++b2;\n }\n } else {\n ++b1;\n }\n\n word = 0;\n word += b1 << 16;\n word += b2 << 8;\n word += b3;\n } else {\n word += 0x01 << 24;\n }\n\n return word;\n }\n\n function incCounter(counter) {\n if ((counter[0] = incWord(counter[0])) === 0) {\n // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n counter[1] = incWord(counter[1]);\n }\n\n return counter;\n }\n\n var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var counter = this._counter; // Generate keystream\n\n if (iv) {\n counter = this._counter = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n }\n\n incCounter(counter);\n var keystream = counter.slice(0);\n cipher.encryptBlock(keystream, 0); // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n CTRGladman.Decryptor = Encryptor;\n return CTRGladman;\n }();\n\n return CryptoJS.mode.CTRGladman;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * Counter block mode.\n */\n CryptoJS.mode.CTR = function () {\n var CTR = CryptoJS.lib.BlockCipherMode.extend();\n var Encryptor = CTR.Encryptor = CTR.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var counter = this._counter; // Generate keystream\n\n if (iv) {\n counter = this._counter = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n }\n\n var keystream = counter.slice(0);\n cipher.encryptBlock(keystream, 0); // Increment counter\n\n counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0; // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n CTR.Decryptor = Encryptor;\n return CTR;\n }();\n\n return CryptoJS.mode.CTR;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * Electronic Codebook block mode.\n */\n CryptoJS.mode.ECB = function () {\n var ECB = CryptoJS.lib.BlockCipherMode.extend();\n ECB.Encryptor = ECB.extend({\n processBlock: function processBlock(words, offset) {\n this._cipher.encryptBlock(words, offset);\n }\n });\n ECB.Decryptor = ECB.extend({\n processBlock: function processBlock(words, offset) {\n this._cipher.decryptBlock(words, offset);\n }\n });\n return ECB;\n }();\n\n return CryptoJS.mode.ECB;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * Output Feedback block mode.\n */\n CryptoJS.mode.OFB = function () {\n var OFB = CryptoJS.lib.BlockCipherMode.extend();\n var Encryptor = OFB.Encryptor = OFB.extend({\n processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var keystream = this._keystream; // Generate keystream\n\n if (iv) {\n keystream = this._keystream = iv.slice(0); // Remove IV for subsequent blocks\n\n this._iv = undefined;\n }\n\n cipher.encryptBlock(keystream, 0); // Encrypt\n\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n OFB.Decryptor = Encryptor;\n return OFB;\n }();\n\n return CryptoJS.mode.OFB;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * ANSI X.923 padding strategy.\n */\n CryptoJS.pad.AnsiX923 = {\n pad: function pad(data, blockSize) {\n // Shortcuts\n var dataSigBytes = data.sigBytes;\n var blockSizeBytes = blockSize * 4; // Count padding bytes\n\n var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; // Compute last byte position\n\n var lastBytePos = dataSigBytes + nPaddingBytes - 1; // Pad\n\n data.clamp();\n data.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8;\n data.sigBytes += nPaddingBytes;\n },\n unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding\n\n data.sigBytes -= nPaddingBytes;\n }\n };\n return CryptoJS.pad.Ansix923;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * ISO 10126 padding strategy.\n */\n CryptoJS.pad.Iso10126 = {\n pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4; // Count padding bytes\n\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; // Pad\n\n data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n },\n unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff; // Remove padding\n\n data.sigBytes -= nPaddingBytes;\n }\n };\n return CryptoJS.pad.Iso10126;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * ISO/IEC 9797-1 Padding Method 2.\n */\n CryptoJS.pad.Iso97971 = {\n pad: function pad(data, blockSize) {\n // Add 0x80 byte\n data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); // Zero pad the rest\n\n CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n },\n unpad: function unpad(data) {\n // Remove zero padding\n CryptoJS.pad.ZeroPadding.unpad(data); // Remove one more byte -- the 0x80 byte\n\n data.sigBytes--;\n }\n };\n return CryptoJS.pad.Iso97971;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * A noop padding strategy.\n */\n CryptoJS.pad.NoPadding = {\n pad: function pad() {},\n unpad: function unpad() {}\n };\n return CryptoJS.pad.NoPadding;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /**\n * Zero padding strategy.\n */\n CryptoJS.pad.ZeroPadding = {\n pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4; // Pad\n\n data.clamp();\n data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes);\n },\n unpad: function unpad(data) {\n // Shortcut\n var dataWords = data.words; // Unpad\n\n var i = data.sigBytes - 1;\n\n for (var i = data.sigBytes - 1; i >= 0; i--) {\n if (dataWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff) {\n data.sigBytes = i + 1;\n break;\n }\n }\n }\n };\n return CryptoJS.pad.ZeroPadding;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./sha1\", \"./hmac\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA1 = C_algo.SHA1;\n var HMAC = C_algo.HMAC;\n /**\n * Password-Based Key Derivation Function 2 algorithm.\n */\n\n var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hasher to use. Default: SHA1\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: SHA1,\n iterations: 1\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.PBKDF2.create();\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n */\n init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function compute(password, salt) {\n // Shortcut\n var cfg = this.cfg; // Init HMAC\n\n var hmac = HMAC.create(cfg.hasher, password); // Initial values\n\n var derivedKey = WordArray.create();\n var blockIndex = WordArray.create([0x00000001]); // Shortcuts\n\n var derivedKeyWords = derivedKey.words;\n var blockIndexWords = blockIndex.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations; // Generate key\n\n while (derivedKeyWords.length < keySize) {\n var block = hmac.update(salt).finalize(blockIndex);\n hmac.reset(); // Shortcuts\n\n var blockWords = block.words;\n var blockWordsLength = blockWords.length; // Iterations\n\n var intermediate = block;\n\n for (var i = 1; i < iterations; i++) {\n intermediate = hmac.finalize(intermediate);\n hmac.reset(); // Shortcut\n\n var intermediateWords = intermediate.words; // XOR intermediate with block\n\n for (var j = 0; j < blockWordsLength; j++) {\n blockWords[j] ^= intermediateWords[j];\n }\n }\n\n derivedKey.concat(block);\n blockIndexWords[0]++;\n }\n\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.PBKDF2(password, salt);\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n */\n\n C.PBKDF2 = function (password, salt, cfg) {\n return PBKDF2.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.PBKDF2;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo; // Reusable objects\n\n var S = [];\n var C_ = [];\n var G = [];\n /**\n * Rabbit stream cipher algorithm.\n *\n * This is a legacy version that neglected to convert the key to little-endian.\n * This error doesn't affect the cipher's security,\n * but it does affect its compatibility with other implementations.\n */\n\n var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv; // Generate initial state values\n\n var X = this._X = [K[0], K[3] << 16 | K[2] >>> 16, K[1], K[0] << 16 | K[3] >>> 16, K[2], K[1] << 16 | K[0] >>> 16, K[3], K[2] << 16 | K[1] >>> 16]; // Generate initial counter values\n\n var C = this._C = [K[2] << 16 | K[2] >>> 16, K[0] & 0xffff0000 | K[1] & 0x0000ffff, K[3] << 16 | K[3] >>> 16, K[1] & 0xffff0000 | K[2] & 0x0000ffff, K[0] << 16 | K[0] >>> 16, K[2] & 0xffff0000 | K[3] & 0x0000ffff, K[1] << 16 | K[1] >>> 16, K[3] & 0xffff0000 | K[0] & 0x0000ffff]; // Carry bit\n\n this._b = 0; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n } // Modify the counters\n\n\n for (var i = 0; i < 8; i++) {\n C[i] ^= X[i + 4 & 7];\n } // IV setup\n\n\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1]; // Generate four subvectors\n\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00;\n var i1 = i0 >>> 16 | i2 & 0xffff0000;\n var i3 = i2 << 16 | i0 & 0x0000ffff; // Modify counter values\n\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var X = this._X; // Iterate the system\n\n nextState.call(this); // Generate four keystream words\n\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n\n for (var i = 0; i < 4; i++) {\n // Swap endian\n S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00; // Encrypt\n\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 128 / 32,\n ivSize: 64 / 32\n });\n\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C; // Save old counter values\n\n for (var i = 0; i < 8; i++) {\n C_[i] = C[i];\n } // Calculate new counter values\n\n\n C[0] = C[0] + 0x4d34d34d + this._b | 0;\n C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; // Calculate the g-values\n\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C[i]; // Construct high and low argument for squaring\n\n var ga = gx & 0xffff;\n var gb = gx >>> 16; // Calculate high and low result of squaring\n\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0); // High XOR low\n\n G[i] = gh ^ gl;\n } // Calculate new state values\n\n\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n */\n\n\n C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n })();\n\n return CryptoJS.RabbitLegacy;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo; // Reusable objects\n\n var S = [];\n var C_ = [];\n var G = [];\n /**\n * Rabbit stream cipher algorithm\n */\n\n var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv; // Swap endian\n\n for (var i = 0; i < 4; i++) {\n K[i] = (K[i] << 8 | K[i] >>> 24) & 0x00ff00ff | (K[i] << 24 | K[i] >>> 8) & 0xff00ff00;\n } // Generate initial state values\n\n\n var X = this._X = [K[0], K[3] << 16 | K[2] >>> 16, K[1], K[0] << 16 | K[3] >>> 16, K[2], K[1] << 16 | K[0] >>> 16, K[3], K[2] << 16 | K[1] >>> 16]; // Generate initial counter values\n\n var C = this._C = [K[2] << 16 | K[2] >>> 16, K[0] & 0xffff0000 | K[1] & 0x0000ffff, K[3] << 16 | K[3] >>> 16, K[1] & 0xffff0000 | K[2] & 0x0000ffff, K[0] << 16 | K[0] >>> 16, K[2] & 0xffff0000 | K[3] & 0x0000ffff, K[1] << 16 | K[1] >>> 16, K[3] & 0xffff0000 | K[0] & 0x0000ffff]; // Carry bit\n\n this._b = 0; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n } // Modify the counters\n\n\n for (var i = 0; i < 8; i++) {\n C[i] ^= X[i + 4 & 7];\n } // IV setup\n\n\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1]; // Generate four subvectors\n\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00;\n var i1 = i0 >>> 16 | i2 & 0xffff0000;\n var i3 = i2 << 16 | i0 & 0x0000ffff; // Modify counter values\n\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3; // Iterate the system four times\n\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var X = this._X; // Iterate the system\n\n nextState.call(this); // Generate four keystream words\n\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n\n for (var i = 0; i < 4; i++) {\n // Swap endian\n S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00; // Encrypt\n\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 128 / 32,\n ivSize: 64 / 32\n });\n\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C; // Save old counter values\n\n for (var i = 0; i < 8; i++) {\n C_[i] = C[i];\n } // Calculate new counter values\n\n\n C[0] = C[0] + 0x4d34d34d + this._b | 0;\n C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0; // Calculate the g-values\n\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C[i]; // Construct high and low argument for squaring\n\n var ga = gx & 0xffff;\n var gb = gx >>> 16; // Calculate high and low result of squaring\n\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0); // High XOR low\n\n G[i] = gh ^ gl;\n } // Calculate new state values\n\n\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n */\n\n\n C.Rabbit = StreamCipher._createHelper(Rabbit);\n })();\n\n return CryptoJS.Rabbit;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n /**\n * RC4 stream cipher algorithm.\n */\n\n var RC4 = C_algo.RC4 = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n var keySigBytes = key.sigBytes; // Init sbox\n\n var S = this._S = [];\n\n for (var i = 0; i < 256; i++) {\n S[i] = i;\n } // Key setup\n\n\n for (var i = 0, j = 0; i < 256; i++) {\n var keyByteIndex = i % keySigBytes;\n var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 0xff;\n j = (j + S[i] + keyByte) % 256; // Swap\n\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n } // Counters\n\n\n this._i = this._j = 0;\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n M[offset] ^= generateKeystreamWord.call(this);\n },\n keySize: 256 / 32,\n ivSize: 0\n });\n\n function generateKeystreamWord() {\n // Shortcuts\n var S = this._S;\n var i = this._i;\n var j = this._j; // Generate keystream word\n\n var keystreamWord = 0;\n\n for (var n = 0; n < 4; n++) {\n i = (i + 1) % 256;\n j = (j + S[i]) % 256; // Swap\n\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8;\n } // Update counters\n\n\n this._i = i;\n this._j = j;\n return keystreamWord;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n */\n\n\n C.RC4 = StreamCipher._createHelper(RC4);\n /**\n * Modified RC4 stream cipher algorithm.\n */\n\n var RC4Drop = C_algo.RC4Drop = RC4.extend({\n /**\n * Configuration options.\n *\n * @property {number} drop The number of keystream words to drop. Default 192\n */\n cfg: RC4.cfg.extend({\n drop: 192\n }),\n _doReset: function _doReset() {\n RC4._doReset.call(this); // Drop\n\n\n for (var i = this.cfg.drop; i > 0; i--) {\n generateKeystreamWord.call(this);\n }\n }\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n */\n\n C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n })();\n\n return CryptoJS.RC4;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n /** @preserve\n (c) 2012 by Cédric Mesnil. All rights reserved.\n \tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n \t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n \tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Constants table\n\n var _zl = WordArray.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\n var _zr = WordArray.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\n var _sl = WordArray.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]);\n\n var _sr = WordArray.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]);\n\n var _hl = WordArray.create([0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\n var _hr = WordArray.create([0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n /**\n * RIPEMD160 hash algorithm.\n */\n\n\n var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i]; // Swap\n\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n } // Shortcut\n\n\n var H = this._hash.words;\n var hl = _hl.words;\n var hr = _hr.words;\n var zl = _zl.words;\n var zr = _zr.words;\n var sl = _sl.words;\n var sr = _sr.words; // Working variables\n\n var al, bl, cl, dl, el;\n var ar, br, cr, dr, er;\n ar = al = H[0];\n br = bl = H[1];\n cr = cl = H[2];\n dr = dl = H[3];\n er = el = H[4]; // Computation\n\n var t;\n\n for (var i = 0; i < 80; i += 1) {\n t = al + M[offset + zl[i]] | 0;\n\n if (i < 16) {\n t += f1(bl, cl, dl) + hl[0];\n } else if (i < 32) {\n t += f2(bl, cl, dl) + hl[1];\n } else if (i < 48) {\n t += f3(bl, cl, dl) + hl[2];\n } else if (i < 64) {\n t += f4(bl, cl, dl) + hl[3];\n } else {\n // if (i<80) {\n t += f5(bl, cl, dl) + hl[4];\n }\n\n t = t | 0;\n t = rotl(t, sl[i]);\n t = t + el | 0;\n al = el;\n el = dl;\n dl = rotl(cl, 10);\n cl = bl;\n bl = t;\n t = ar + M[offset + zr[i]] | 0;\n\n if (i < 16) {\n t += f5(br, cr, dr) + hr[0];\n } else if (i < 32) {\n t += f4(br, cr, dr) + hr[1];\n } else if (i < 48) {\n t += f3(br, cr, dr) + hr[2];\n } else if (i < 64) {\n t += f2(br, cr, dr) + hr[3];\n } else {\n // if (i<80) {\n t += f1(br, cr, dr) + hr[4];\n }\n\n t = t | 0;\n t = rotl(t, sr[i]);\n t = t + er | 0;\n ar = er;\n er = dr;\n dr = rotl(cr, 10);\n cr = br;\n br = t;\n } // Intermediate hash value\n\n\n t = H[1] + cl + dr | 0;\n H[1] = H[2] + dl + er | 0;\n H[2] = H[3] + el + ar | 0;\n H[3] = H[4] + al + br | 0;\n H[4] = H[0] + bl + cr | 0;\n H[0] = t;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 0x00ff00ff | (nBitsTotal << 24 | nBitsTotal >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4; // Hash final blocks\n\n this._process(); // Shortcuts\n\n\n var hash = this._hash;\n var H = hash.words; // Swap endian\n\n for (var i = 0; i < 5; i++) {\n // Shortcut\n var H_i = H[i]; // Swap\n\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n } // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n\n function f1(x, y, z) {\n return x ^ y ^ z;\n }\n\n function f2(x, y, z) {\n return x & y | ~x & z;\n }\n\n function f3(x, y, z) {\n return (x | ~y) ^ z;\n }\n\n function f4(x, y, z) {\n return x & z | y & ~z;\n }\n\n function f5(x, y, z) {\n return x ^ (y | ~z);\n }\n\n function rotl(x, n) {\n return x << n | x >>> 32 - n;\n }\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.RIPEMD160('message');\n * var hash = CryptoJS.RIPEMD160(wordArray);\n */\n\n\n C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n */\n\n C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n })(Math);\n\n return CryptoJS.RIPEMD160;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Reusable object\n\n var W = [];\n /**\n * SHA-1 hash algorithm.\n */\n\n var SHA1 = C_algo.SHA1 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words; // Working variables\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4]; // Computation\n\n for (var i = 0; i < 80; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = n << 1 | n >>> 31;\n }\n\n var t = (a << 5 | a >>> 27) + e + W[i];\n\n if (i < 20) {\n t += (b & c | ~b & d) + 0x5a827999;\n } else if (i < 40) {\n t += (b ^ c ^ d) + 0x6ed9eba1;\n } else if (i < 60) {\n t += (b & c | b & d | c & d) - 0x70e44324;\n } else\n /* if (i < 80) */\n {\n t += (b ^ c ^ d) - 0x359d3e2a;\n }\n\n e = d;\n d = c;\n c = b << 30 | b >>> 2;\n b = a;\n a = t;\n } // Intermediate hash value\n\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Return final computed hash\n\n\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */\n\n C.SHA1 = Hasher._createHelper(SHA1);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */\n\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n\n return CryptoJS.SHA1;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./sha256\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n /**\n * SHA-224 hash algorithm.\n */\n\n var SHA224 = C_algo.SHA224 = SHA256.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4]);\n },\n _doFinalize: function _doFinalize() {\n var hash = SHA256._doFinalize.call(this);\n\n hash.sigBytes -= 4;\n return hash;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA224('message');\n * var hash = CryptoJS.SHA224(wordArray);\n */\n\n C.SHA224 = SHA256._createHelper(SHA224);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA224(message, key);\n */\n\n C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n })();\n\n return CryptoJS.SHA224;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo; // Initialization and round constants tables\n\n var H = [];\n var K = []; // Compute constants\n\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFractionalBits(n) {\n return (n - (n | 0)) * 0x100000000 | 0;\n }\n\n var n = 2;\n var nPrime = 0;\n\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n nPrime++;\n }\n\n n++;\n }\n })(); // Reusable object\n\n\n var W = [];\n /**\n * SHA-256 hash algorithm.\n */\n\n var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words; // Working variables\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7]; // Computation\n\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n } // Intermediate hash value\n\n\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n H[5] = H[5] + f | 0;\n H[6] = H[6] + g | 0;\n H[7] = H[7] + h | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Return final computed hash\n\n\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n\n C.SHA256 = Hasher._createHelper(SHA256);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n\n return CryptoJS.SHA256;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./x64-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var C_algo = C.algo; // Constants tables\n\n var RHO_OFFSETS = [];\n var PI_INDEXES = [];\n var ROUND_CONSTANTS = []; // Compute Constants\n\n (function () {\n // Compute rho offset constants\n var x = 1,\n y = 0;\n\n for (var t = 0; t < 24; t++) {\n RHO_OFFSETS[x + 5 * y] = (t + 1) * (t + 2) / 2 % 64;\n var newX = y % 5;\n var newY = (2 * x + 3 * y) % 5;\n x = newX;\n y = newY;\n } // Compute pi index constants\n\n\n for (var x = 0; x < 5; x++) {\n for (var y = 0; y < 5; y++) {\n PI_INDEXES[x + 5 * y] = y + (2 * x + 3 * y) % 5 * 5;\n }\n } // Compute round constants\n\n\n var LFSR = 0x01;\n\n for (var i = 0; i < 24; i++) {\n var roundConstantMsw = 0;\n var roundConstantLsw = 0;\n\n for (var j = 0; j < 7; j++) {\n if (LFSR & 0x01) {\n var bitPosition = (1 << j) - 1;\n\n if (bitPosition < 32) {\n roundConstantLsw ^= 1 << bitPosition;\n } else\n /* if (bitPosition >= 32) */\n {\n roundConstantMsw ^= 1 << bitPosition - 32;\n }\n } // Compute next LFSR\n\n\n if (LFSR & 0x80) {\n // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n LFSR = LFSR << 1 ^ 0x71;\n } else {\n LFSR <<= 1;\n }\n }\n\n ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n }\n })(); // Reusable objects for temporary values\n\n\n var T = [];\n\n (function () {\n for (var i = 0; i < 25; i++) {\n T[i] = X64Word.create();\n }\n })();\n /**\n * SHA-3 hash algorithm.\n */\n\n\n var SHA3 = C_algo.SHA3 = Hasher.extend({\n /**\n * Configuration options.\n *\n * @property {number} outputLength\n * The desired number of bits in the output hash.\n * Only values permitted are: 224, 256, 384, 512.\n * Default: 512\n */\n cfg: Hasher.cfg.extend({\n outputLength: 512\n }),\n _doReset: function _doReset() {\n var state = this._state = [];\n\n for (var i = 0; i < 25; i++) {\n state[i] = new X64Word.init();\n }\n\n this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcuts\n var state = this._state;\n var nBlockSizeLanes = this.blockSize / 2; // Absorb\n\n for (var i = 0; i < nBlockSizeLanes; i++) {\n // Shortcuts\n var M2i = M[offset + 2 * i];\n var M2i1 = M[offset + 2 * i + 1]; // Swap endian\n\n M2i = (M2i << 8 | M2i >>> 24) & 0x00ff00ff | (M2i << 24 | M2i >>> 8) & 0xff00ff00;\n M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 0x00ff00ff | (M2i1 << 24 | M2i1 >>> 8) & 0xff00ff00; // Absorb message into state\n\n var lane = state[i];\n lane.high ^= M2i1;\n lane.low ^= M2i;\n } // Rounds\n\n\n for (var round = 0; round < 24; round++) {\n // Theta\n for (var x = 0; x < 5; x++) {\n // Mix column lanes\n var tMsw = 0,\n tLsw = 0;\n\n for (var y = 0; y < 5; y++) {\n var lane = state[x + 5 * y];\n tMsw ^= lane.high;\n tLsw ^= lane.low;\n } // Temporary values\n\n\n var Tx = T[x];\n Tx.high = tMsw;\n Tx.low = tLsw;\n }\n\n for (var x = 0; x < 5; x++) {\n // Shortcuts\n var Tx4 = T[(x + 4) % 5];\n var Tx1 = T[(x + 1) % 5];\n var Tx1Msw = Tx1.high;\n var Tx1Lsw = Tx1.low; // Mix surrounding columns\n\n var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31);\n var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31);\n\n for (var y = 0; y < 5; y++) {\n var lane = state[x + 5 * y];\n lane.high ^= tMsw;\n lane.low ^= tLsw;\n }\n } // Rho Pi\n\n\n for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n var tMsw;\n var tLsw; // Shortcuts\n\n var lane = state[laneIndex];\n var laneMsw = lane.high;\n var laneLsw = lane.low;\n var rhoOffset = RHO_OFFSETS[laneIndex]; // Rotate lanes\n\n if (rhoOffset < 32) {\n tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset;\n tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset;\n } else\n /* if (rhoOffset >= 32) */\n {\n tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset;\n tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset;\n } // Transpose lanes\n\n\n var TPiLane = T[PI_INDEXES[laneIndex]];\n TPiLane.high = tMsw;\n TPiLane.low = tLsw;\n } // Rho pi at x = y = 0\n\n\n var T0 = T[0];\n var state0 = state[0];\n T0.high = state0.high;\n T0.low = state0.low; // Chi\n\n for (var x = 0; x < 5; x++) {\n for (var y = 0; y < 5; y++) {\n // Shortcuts\n var laneIndex = x + 5 * y;\n var lane = state[laneIndex];\n var TLane = T[laneIndex];\n var Tx1Lane = T[(x + 1) % 5 + 5 * y];\n var Tx2Lane = T[(x + 2) % 5 + 5 * y]; // Mix rows\n\n lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high;\n lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low;\n }\n } // Iota\n\n\n var lane = state[0];\n var roundConstant = ROUND_CONSTANTS[round];\n lane.high ^= roundConstant.high;\n lane.low ^= roundConstant.low;\n }\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n var blockSizeBits = this.blockSize * 32; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x1 << 24 - nBitsLeft % 32;\n dataWords[(Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 0x80;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Shortcuts\n\n\n var state = this._state;\n var outputLengthBytes = this.cfg.outputLength / 8;\n var outputLengthLanes = outputLengthBytes / 8; // Squeeze\n\n var hashWords = [];\n\n for (var i = 0; i < outputLengthLanes; i++) {\n // Shortcuts\n var lane = state[i];\n var laneMsw = lane.high;\n var laneLsw = lane.low; // Swap endian\n\n laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 0x00ff00ff | (laneMsw << 24 | laneMsw >>> 8) & 0xff00ff00;\n laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 0x00ff00ff | (laneLsw << 24 | laneLsw >>> 8) & 0xff00ff00; // Squeeze state to retrieve hash\n\n hashWords.push(laneLsw);\n hashWords.push(laneMsw);\n } // Return final computed hash\n\n\n return new WordArray.init(hashWords, outputLengthBytes);\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n\n var state = clone._state = this._state.slice(0);\n\n for (var i = 0; i < 25; i++) {\n state[i] = state[i].clone();\n }\n\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA3('message');\n * var hash = CryptoJS.SHA3(wordArray);\n */\n\n C.SHA3 = Hasher._createHelper(SHA3);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA3(message, key);\n */\n\n C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n })(Math);\n\n return CryptoJS.SHA3;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var X64WordArray = C_x64.WordArray;\n var C_algo = C.algo;\n var SHA512 = C_algo.SHA512;\n /**\n * SHA-384 hash algorithm.\n */\n\n var SHA384 = C_algo.SHA384 = SHA512.extend({\n _doReset: function _doReset() {\n this._hash = new X64WordArray.init([new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)]);\n },\n _doFinalize: function _doFinalize() {\n var hash = SHA512._doFinalize.call(this);\n\n hash.sigBytes -= 16;\n return hash;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA384('message');\n * var hash = CryptoJS.SHA384(wordArray);\n */\n\n C.SHA384 = SHA512._createHelper(SHA384);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA384(message, key);\n */\n\n C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n })();\n\n return CryptoJS.SHA384;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./x64-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Hasher = C_lib.Hasher;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var X64WordArray = C_x64.WordArray;\n var C_algo = C.algo;\n\n function X64Word_create() {\n return X64Word.create.apply(X64Word, arguments);\n } // Constants\n\n\n var K = [X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)]; // Reusable objects\n\n var W = [];\n\n (function () {\n for (var i = 0; i < 80; i++) {\n W[i] = X64Word_create();\n }\n })();\n /**\n * SHA-512 hash algorithm.\n */\n\n\n var SHA512 = C_algo.SHA512 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new X64WordArray.init([new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcuts\n var H = this._hash.words;\n var H0 = H[0];\n var H1 = H[1];\n var H2 = H[2];\n var H3 = H[3];\n var H4 = H[4];\n var H5 = H[5];\n var H6 = H[6];\n var H7 = H[7];\n var H0h = H0.high;\n var H0l = H0.low;\n var H1h = H1.high;\n var H1l = H1.low;\n var H2h = H2.high;\n var H2l = H2.low;\n var H3h = H3.high;\n var H3l = H3.low;\n var H4h = H4.high;\n var H4l = H4.low;\n var H5h = H5.high;\n var H5l = H5.low;\n var H6h = H6.high;\n var H6l = H6.low;\n var H7h = H7.high;\n var H7l = H7.low; // Working variables\n\n var ah = H0h;\n var al = H0l;\n var bh = H1h;\n var bl = H1l;\n var ch = H2h;\n var cl = H2l;\n var dh = H3h;\n var dl = H3l;\n var eh = H4h;\n var el = H4l;\n var fh = H5h;\n var fl = H5l;\n var gh = H6h;\n var gl = H6l;\n var hh = H7h;\n var hl = H7l; // Rounds\n\n for (var i = 0; i < 80; i++) {\n var Wil;\n var Wih; // Shortcut\n\n var Wi = W[i]; // Extend message\n\n if (i < 16) {\n Wih = Wi.high = M[offset + i * 2] | 0;\n Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n } else {\n // Gamma0\n var gamma0x = W[i - 15];\n var gamma0xh = gamma0x.high;\n var gamma0xl = gamma0x.low;\n var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7;\n var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25); // Gamma1\n\n var gamma1x = W[i - 2];\n var gamma1xh = gamma1x.high;\n var gamma1xl = gamma1x.low;\n var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6;\n var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\n var Wi7 = W[i - 7];\n var Wi7h = Wi7.high;\n var Wi7l = Wi7.low;\n var Wi16 = W[i - 16];\n var Wi16h = Wi16.high;\n var Wi16l = Wi16.low;\n Wil = gamma0l + Wi7l;\n Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0);\n Wil = Wil + gamma1l;\n Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0);\n Wil = Wil + Wi16l;\n Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0);\n Wi.high = Wih;\n Wi.low = Wil;\n }\n\n var chh = eh & fh ^ ~eh & gh;\n var chl = el & fl ^ ~el & gl;\n var majh = ah & bh ^ ah & ch ^ bh & ch;\n var majl = al & bl ^ al & cl ^ bl & cl;\n var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7);\n var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7);\n var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9);\n var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9); // t1 = h + sigma1 + ch + K[i] + W[i]\n\n var Ki = K[i];\n var Kih = Ki.high;\n var Kil = Ki.low;\n var t1l = hl + sigma1l;\n var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0);\n var t1l = t1l + chl;\n var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0);\n var t1l = t1l + Kil;\n var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0);\n var t1l = t1l + Wil;\n var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0); // t2 = sigma0 + maj\n\n var t2l = sigma0l + majl;\n var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0); // Update working variables\n\n hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n el = dl + t1l | 0;\n eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\n al = t1l + t2l | 0;\n ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0;\n } // Intermediate hash value\n\n\n H0l = H0.low = H0l + al;\n H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0);\n H1l = H1.low = H1l + bl;\n H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0);\n H2l = H2.low = H2l + cl;\n H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0);\n H3l = H3.low = H3l + dl;\n H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0);\n H4l = H4.low = H4l + el;\n H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0);\n H5l = H5.low = H5l + fl;\n H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0);\n H6l = H6.low = H6l + gl;\n H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0);\n H7l = H7.low = H7l + hl;\n H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0);\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8; // Add padding\n\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal;\n data.sigBytes = dataWords.length * 4; // Hash final blocks\n\n this._process(); // Convert hash to 32-bit word array before returning\n\n\n var hash = this._hash.toX32(); // Return final computed hash\n\n\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n },\n blockSize: 1024 / 32\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA512('message');\n * var hash = CryptoJS.SHA512(wordArray);\n */\n\n C.SHA512 = Hasher._createHelper(SHA512);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA512(message, key);\n */\n\n C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n })();\n\n return CryptoJS.SHA512;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory, undef) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo; // Permuted Choice 1 constants\n\n var PC1 = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4]; // Permuted Choice 2 constants\n\n var PC2 = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32]; // Cumulative bit shift constants\n\n var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; // SBOXes and round permutation constants\n\n var SBOX_P = [{\n 0x0: 0x808200,\n 0x10000000: 0x8000,\n 0x20000000: 0x808002,\n 0x30000000: 0x2,\n 0x40000000: 0x200,\n 0x50000000: 0x808202,\n 0x60000000: 0x800202,\n 0x70000000: 0x800000,\n 0x80000000: 0x202,\n 0x90000000: 0x800200,\n 0xa0000000: 0x8200,\n 0xb0000000: 0x808000,\n 0xc0000000: 0x8002,\n 0xd0000000: 0x800002,\n 0xe0000000: 0x0,\n 0xf0000000: 0x8202,\n 0x8000000: 0x0,\n 0x18000000: 0x808202,\n 0x28000000: 0x8202,\n 0x38000000: 0x8000,\n 0x48000000: 0x808200,\n 0x58000000: 0x200,\n 0x68000000: 0x808002,\n 0x78000000: 0x2,\n 0x88000000: 0x800200,\n 0x98000000: 0x8200,\n 0xa8000000: 0x808000,\n 0xb8000000: 0x800202,\n 0xc8000000: 0x800002,\n 0xd8000000: 0x8002,\n 0xe8000000: 0x202,\n 0xf8000000: 0x800000,\n 0x1: 0x8000,\n 0x10000001: 0x2,\n 0x20000001: 0x808200,\n 0x30000001: 0x800000,\n 0x40000001: 0x808002,\n 0x50000001: 0x8200,\n 0x60000001: 0x200,\n 0x70000001: 0x800202,\n 0x80000001: 0x808202,\n 0x90000001: 0x808000,\n 0xa0000001: 0x800002,\n 0xb0000001: 0x8202,\n 0xc0000001: 0x202,\n 0xd0000001: 0x800200,\n 0xe0000001: 0x8002,\n 0xf0000001: 0x0,\n 0x8000001: 0x808202,\n 0x18000001: 0x808000,\n 0x28000001: 0x800000,\n 0x38000001: 0x200,\n 0x48000001: 0x8000,\n 0x58000001: 0x800002,\n 0x68000001: 0x2,\n 0x78000001: 0x8202,\n 0x88000001: 0x8002,\n 0x98000001: 0x800202,\n 0xa8000001: 0x202,\n 0xb8000001: 0x808200,\n 0xc8000001: 0x800200,\n 0xd8000001: 0x0,\n 0xe8000001: 0x8200,\n 0xf8000001: 0x808002\n }, {\n 0x0: 0x40084010,\n 0x1000000: 0x4000,\n 0x2000000: 0x80000,\n 0x3000000: 0x40080010,\n 0x4000000: 0x40000010,\n 0x5000000: 0x40084000,\n 0x6000000: 0x40004000,\n 0x7000000: 0x10,\n 0x8000000: 0x84000,\n 0x9000000: 0x40004010,\n 0xa000000: 0x40000000,\n 0xb000000: 0x84010,\n 0xc000000: 0x80010,\n 0xd000000: 0x0,\n 0xe000000: 0x4010,\n 0xf000000: 0x40080000,\n 0x800000: 0x40004000,\n 0x1800000: 0x84010,\n 0x2800000: 0x10,\n 0x3800000: 0x40004010,\n 0x4800000: 0x40084010,\n 0x5800000: 0x40000000,\n 0x6800000: 0x80000,\n 0x7800000: 0x40080010,\n 0x8800000: 0x80010,\n 0x9800000: 0x0,\n 0xa800000: 0x4000,\n 0xb800000: 0x40080000,\n 0xc800000: 0x40000010,\n 0xd800000: 0x84000,\n 0xe800000: 0x40084000,\n 0xf800000: 0x4010,\n 0x10000000: 0x0,\n 0x11000000: 0x40080010,\n 0x12000000: 0x40004010,\n 0x13000000: 0x40084000,\n 0x14000000: 0x40080000,\n 0x15000000: 0x10,\n 0x16000000: 0x84010,\n 0x17000000: 0x4000,\n 0x18000000: 0x4010,\n 0x19000000: 0x80000,\n 0x1a000000: 0x80010,\n 0x1b000000: 0x40000010,\n 0x1c000000: 0x84000,\n 0x1d000000: 0x40004000,\n 0x1e000000: 0x40000000,\n 0x1f000000: 0x40084010,\n 0x10800000: 0x84010,\n 0x11800000: 0x80000,\n 0x12800000: 0x40080000,\n 0x13800000: 0x4000,\n 0x14800000: 0x40004000,\n 0x15800000: 0x40084010,\n 0x16800000: 0x10,\n 0x17800000: 0x40000000,\n 0x18800000: 0x40084000,\n 0x19800000: 0x40000010,\n 0x1a800000: 0x40004010,\n 0x1b800000: 0x80010,\n 0x1c800000: 0x0,\n 0x1d800000: 0x4010,\n 0x1e800000: 0x40080010,\n 0x1f800000: 0x84000\n }, {\n 0x0: 0x104,\n 0x100000: 0x0,\n 0x200000: 0x4000100,\n 0x300000: 0x10104,\n 0x400000: 0x10004,\n 0x500000: 0x4000004,\n 0x600000: 0x4010104,\n 0x700000: 0x4010000,\n 0x800000: 0x4000000,\n 0x900000: 0x4010100,\n 0xa00000: 0x10100,\n 0xb00000: 0x4010004,\n 0xc00000: 0x4000104,\n 0xd00000: 0x10000,\n 0xe00000: 0x4,\n 0xf00000: 0x100,\n 0x80000: 0x4010100,\n 0x180000: 0x4010004,\n 0x280000: 0x0,\n 0x380000: 0x4000100,\n 0x480000: 0x4000004,\n 0x580000: 0x10000,\n 0x680000: 0x10004,\n 0x780000: 0x104,\n 0x880000: 0x4,\n 0x980000: 0x100,\n 0xa80000: 0x4010000,\n 0xb80000: 0x10104,\n 0xc80000: 0x10100,\n 0xd80000: 0x4000104,\n 0xe80000: 0x4010104,\n 0xf80000: 0x4000000,\n 0x1000000: 0x4010100,\n 0x1100000: 0x10004,\n 0x1200000: 0x10000,\n 0x1300000: 0x4000100,\n 0x1400000: 0x100,\n 0x1500000: 0x4010104,\n 0x1600000: 0x4000004,\n 0x1700000: 0x0,\n 0x1800000: 0x4000104,\n 0x1900000: 0x4000000,\n 0x1a00000: 0x4,\n 0x1b00000: 0x10100,\n 0x1c00000: 0x4010000,\n 0x1d00000: 0x104,\n 0x1e00000: 0x10104,\n 0x1f00000: 0x4010004,\n 0x1080000: 0x4000000,\n 0x1180000: 0x104,\n 0x1280000: 0x4010100,\n 0x1380000: 0x0,\n 0x1480000: 0x10004,\n 0x1580000: 0x4000100,\n 0x1680000: 0x100,\n 0x1780000: 0x4010004,\n 0x1880000: 0x10000,\n 0x1980000: 0x4010104,\n 0x1a80000: 0x10104,\n 0x1b80000: 0x4000004,\n 0x1c80000: 0x4000104,\n 0x1d80000: 0x4010000,\n 0x1e80000: 0x4,\n 0x1f80000: 0x10100\n }, {\n 0x0: 0x80401000,\n 0x10000: 0x80001040,\n 0x20000: 0x401040,\n 0x30000: 0x80400000,\n 0x40000: 0x0,\n 0x50000: 0x401000,\n 0x60000: 0x80000040,\n 0x70000: 0x400040,\n 0x80000: 0x80000000,\n 0x90000: 0x400000,\n 0xa0000: 0x40,\n 0xb0000: 0x80001000,\n 0xc0000: 0x80400040,\n 0xd0000: 0x1040,\n 0xe0000: 0x1000,\n 0xf0000: 0x80401040,\n 0x8000: 0x80001040,\n 0x18000: 0x40,\n 0x28000: 0x80400040,\n 0x38000: 0x80001000,\n 0x48000: 0x401000,\n 0x58000: 0x80401040,\n 0x68000: 0x0,\n 0x78000: 0x80400000,\n 0x88000: 0x1000,\n 0x98000: 0x80401000,\n 0xa8000: 0x400000,\n 0xb8000: 0x1040,\n 0xc8000: 0x80000000,\n 0xd8000: 0x400040,\n 0xe8000: 0x401040,\n 0xf8000: 0x80000040,\n 0x100000: 0x400040,\n 0x110000: 0x401000,\n 0x120000: 0x80000040,\n 0x130000: 0x0,\n 0x140000: 0x1040,\n 0x150000: 0x80400040,\n 0x160000: 0x80401000,\n 0x170000: 0x80001040,\n 0x180000: 0x80401040,\n 0x190000: 0x80000000,\n 0x1a0000: 0x80400000,\n 0x1b0000: 0x401040,\n 0x1c0000: 0x80001000,\n 0x1d0000: 0x400000,\n 0x1e0000: 0x40,\n 0x1f0000: 0x1000,\n 0x108000: 0x80400000,\n 0x118000: 0x80401040,\n 0x128000: 0x0,\n 0x138000: 0x401000,\n 0x148000: 0x400040,\n 0x158000: 0x80000000,\n 0x168000: 0x80001040,\n 0x178000: 0x40,\n 0x188000: 0x80000040,\n 0x198000: 0x1000,\n 0x1a8000: 0x80001000,\n 0x1b8000: 0x80400040,\n 0x1c8000: 0x1040,\n 0x1d8000: 0x80401000,\n 0x1e8000: 0x400000,\n 0x1f8000: 0x401040\n }, {\n 0x0: 0x80,\n 0x1000: 0x1040000,\n 0x2000: 0x40000,\n 0x3000: 0x20000000,\n 0x4000: 0x20040080,\n 0x5000: 0x1000080,\n 0x6000: 0x21000080,\n 0x7000: 0x40080,\n 0x8000: 0x1000000,\n 0x9000: 0x20040000,\n 0xa000: 0x20000080,\n 0xb000: 0x21040080,\n 0xc000: 0x21040000,\n 0xd000: 0x0,\n 0xe000: 0x1040080,\n 0xf000: 0x21000000,\n 0x800: 0x1040080,\n 0x1800: 0x21000080,\n 0x2800: 0x80,\n 0x3800: 0x1040000,\n 0x4800: 0x40000,\n 0x5800: 0x20040080,\n 0x6800: 0x21040000,\n 0x7800: 0x20000000,\n 0x8800: 0x20040000,\n 0x9800: 0x0,\n 0xa800: 0x21040080,\n 0xb800: 0x1000080,\n 0xc800: 0x20000080,\n 0xd800: 0x21000000,\n 0xe800: 0x1000000,\n 0xf800: 0x40080,\n 0x10000: 0x40000,\n 0x11000: 0x80,\n 0x12000: 0x20000000,\n 0x13000: 0x21000080,\n 0x14000: 0x1000080,\n 0x15000: 0x21040000,\n 0x16000: 0x20040080,\n 0x17000: 0x1000000,\n 0x18000: 0x21040080,\n 0x19000: 0x21000000,\n 0x1a000: 0x1040000,\n 0x1b000: 0x20040000,\n 0x1c000: 0x40080,\n 0x1d000: 0x20000080,\n 0x1e000: 0x0,\n 0x1f000: 0x1040080,\n 0x10800: 0x21000080,\n 0x11800: 0x1000000,\n 0x12800: 0x1040000,\n 0x13800: 0x20040080,\n 0x14800: 0x20000000,\n 0x15800: 0x1040080,\n 0x16800: 0x80,\n 0x17800: 0x21040000,\n 0x18800: 0x40080,\n 0x19800: 0x21040080,\n 0x1a800: 0x0,\n 0x1b800: 0x21000000,\n 0x1c800: 0x1000080,\n 0x1d800: 0x40000,\n 0x1e800: 0x20040000,\n 0x1f800: 0x20000080\n }, {\n 0x0: 0x10000008,\n 0x100: 0x2000,\n 0x200: 0x10200000,\n 0x300: 0x10202008,\n 0x400: 0x10002000,\n 0x500: 0x200000,\n 0x600: 0x200008,\n 0x700: 0x10000000,\n 0x800: 0x0,\n 0x900: 0x10002008,\n 0xa00: 0x202000,\n 0xb00: 0x8,\n 0xc00: 0x10200008,\n 0xd00: 0x202008,\n 0xe00: 0x2008,\n 0xf00: 0x10202000,\n 0x80: 0x10200000,\n 0x180: 0x10202008,\n 0x280: 0x8,\n 0x380: 0x200000,\n 0x480: 0x202008,\n 0x580: 0x10000008,\n 0x680: 0x10002000,\n 0x780: 0x2008,\n 0x880: 0x200008,\n 0x980: 0x2000,\n 0xa80: 0x10002008,\n 0xb80: 0x10200008,\n 0xc80: 0x0,\n 0xd80: 0x10202000,\n 0xe80: 0x202000,\n 0xf80: 0x10000000,\n 0x1000: 0x10002000,\n 0x1100: 0x10200008,\n 0x1200: 0x10202008,\n 0x1300: 0x2008,\n 0x1400: 0x200000,\n 0x1500: 0x10000000,\n 0x1600: 0x10000008,\n 0x1700: 0x202000,\n 0x1800: 0x202008,\n 0x1900: 0x0,\n 0x1a00: 0x8,\n 0x1b00: 0x10200000,\n 0x1c00: 0x2000,\n 0x1d00: 0x10002008,\n 0x1e00: 0x10202000,\n 0x1f00: 0x200008,\n 0x1080: 0x8,\n 0x1180: 0x202000,\n 0x1280: 0x200000,\n 0x1380: 0x10000008,\n 0x1480: 0x10002000,\n 0x1580: 0x2008,\n 0x1680: 0x10202008,\n 0x1780: 0x10200000,\n 0x1880: 0x10202000,\n 0x1980: 0x10200008,\n 0x1a80: 0x2000,\n 0x1b80: 0x202008,\n 0x1c80: 0x200008,\n 0x1d80: 0x0,\n 0x1e80: 0x10000000,\n 0x1f80: 0x10002008\n }, {\n 0x0: 0x100000,\n 0x10: 0x2000401,\n 0x20: 0x400,\n 0x30: 0x100401,\n 0x40: 0x2100401,\n 0x50: 0x0,\n 0x60: 0x1,\n 0x70: 0x2100001,\n 0x80: 0x2000400,\n 0x90: 0x100001,\n 0xa0: 0x2000001,\n 0xb0: 0x2100400,\n 0xc0: 0x2100000,\n 0xd0: 0x401,\n 0xe0: 0x100400,\n 0xf0: 0x2000000,\n 0x8: 0x2100001,\n 0x18: 0x0,\n 0x28: 0x2000401,\n 0x38: 0x2100400,\n 0x48: 0x100000,\n 0x58: 0x2000001,\n 0x68: 0x2000000,\n 0x78: 0x401,\n 0x88: 0x100401,\n 0x98: 0x2000400,\n 0xa8: 0x2100000,\n 0xb8: 0x100001,\n 0xc8: 0x400,\n 0xd8: 0x2100401,\n 0xe8: 0x1,\n 0xf8: 0x100400,\n 0x100: 0x2000000,\n 0x110: 0x100000,\n 0x120: 0x2000401,\n 0x130: 0x2100001,\n 0x140: 0x100001,\n 0x150: 0x2000400,\n 0x160: 0x2100400,\n 0x170: 0x100401,\n 0x180: 0x401,\n 0x190: 0x2100401,\n 0x1a0: 0x100400,\n 0x1b0: 0x1,\n 0x1c0: 0x0,\n 0x1d0: 0x2100000,\n 0x1e0: 0x2000001,\n 0x1f0: 0x400,\n 0x108: 0x100400,\n 0x118: 0x2000401,\n 0x128: 0x2100001,\n 0x138: 0x1,\n 0x148: 0x2000000,\n 0x158: 0x100000,\n 0x168: 0x401,\n 0x178: 0x2100400,\n 0x188: 0x2000001,\n 0x198: 0x2100000,\n 0x1a8: 0x0,\n 0x1b8: 0x2100401,\n 0x1c8: 0x100401,\n 0x1d8: 0x400,\n 0x1e8: 0x2000400,\n 0x1f8: 0x100001\n }, {\n 0x0: 0x8000820,\n 0x1: 0x20000,\n 0x2: 0x8000000,\n 0x3: 0x20,\n 0x4: 0x20020,\n 0x5: 0x8020820,\n 0x6: 0x8020800,\n 0x7: 0x800,\n 0x8: 0x8020000,\n 0x9: 0x8000800,\n 0xa: 0x20800,\n 0xb: 0x8020020,\n 0xc: 0x820,\n 0xd: 0x0,\n 0xe: 0x8000020,\n 0xf: 0x20820,\n 0x80000000: 0x800,\n 0x80000001: 0x8020820,\n 0x80000002: 0x8000820,\n 0x80000003: 0x8000000,\n 0x80000004: 0x8020000,\n 0x80000005: 0x20800,\n 0x80000006: 0x20820,\n 0x80000007: 0x20,\n 0x80000008: 0x8000020,\n 0x80000009: 0x820,\n 0x8000000a: 0x20020,\n 0x8000000b: 0x8020800,\n 0x8000000c: 0x0,\n 0x8000000d: 0x8020020,\n 0x8000000e: 0x8000800,\n 0x8000000f: 0x20000,\n 0x10: 0x20820,\n 0x11: 0x8020800,\n 0x12: 0x20,\n 0x13: 0x800,\n 0x14: 0x8000800,\n 0x15: 0x8000020,\n 0x16: 0x8020020,\n 0x17: 0x20000,\n 0x18: 0x0,\n 0x19: 0x20020,\n 0x1a: 0x8020000,\n 0x1b: 0x8000820,\n 0x1c: 0x8020820,\n 0x1d: 0x20800,\n 0x1e: 0x820,\n 0x1f: 0x8000000,\n 0x80000010: 0x20000,\n 0x80000011: 0x800,\n 0x80000012: 0x8020020,\n 0x80000013: 0x20820,\n 0x80000014: 0x20,\n 0x80000015: 0x8020000,\n 0x80000016: 0x8000000,\n 0x80000017: 0x8000820,\n 0x80000018: 0x8020820,\n 0x80000019: 0x8000020,\n 0x8000001a: 0x8000800,\n 0x8000001b: 0x0,\n 0x8000001c: 0x20800,\n 0x8000001d: 0x820,\n 0x8000001e: 0x20020,\n 0x8000001f: 0x8020800\n }]; // Masks that select the SBOX input\n\n var SBOX_MASK = [0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f];\n /**\n * DES block cipher algorithm.\n */\n\n var DES = C_algo.DES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words; // Select 56 bits according to PC1\n\n var keyBits = [];\n\n for (var i = 0; i < 56; i++) {\n var keyBitPos = PC1[i] - 1;\n keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;\n } // Assemble 16 subkeys\n\n\n var subKeys = this._subKeys = [];\n\n for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n // Create subkey\n var subKey = subKeys[nSubKey] = []; // Shortcut\n\n var bitShift = BIT_SHIFTS[nSubKey]; // Select 48 bits according to PC2\n\n for (var i = 0; i < 24; i++) {\n // Select from the left 28 key bits\n subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6; // Select from the right 28 key bits\n\n subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6;\n } // Since each subkey is applied to an expanded 32-bit input,\n // the subkey can be broken into 8 values scaled to 32-bits,\n // which allows the key to be used without expansion\n\n\n subKey[0] = subKey[0] << 1 | subKey[0] >>> 31;\n\n for (var i = 1; i < 7; i++) {\n subKey[i] = subKey[i] >>> (i - 1) * 4 + 3;\n }\n\n subKey[7] = subKey[7] << 5 | subKey[7] >>> 27;\n } // Compute inverse subkeys\n\n\n var invSubKeys = this._invSubKeys = [];\n\n for (var i = 0; i < 16; i++) {\n invSubKeys[i] = subKeys[15 - i];\n }\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._subKeys);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._invSubKeys);\n },\n _doCryptBlock: function _doCryptBlock(M, offset, subKeys) {\n // Get input\n this._lBlock = M[offset];\n this._rBlock = M[offset + 1]; // Initial permutation\n\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeLR.call(this, 1, 0x55555555); // Rounds\n\n for (var round = 0; round < 16; round++) {\n // Shortcuts\n var subKey = subKeys[round];\n var lBlock = this._lBlock;\n var rBlock = this._rBlock; // Feistel function\n\n var f = 0;\n\n for (var i = 0; i < 8; i++) {\n f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n }\n\n this._lBlock = rBlock;\n this._rBlock = lBlock ^ f;\n } // Undo swap from last round\n\n\n var t = this._lBlock;\n this._lBlock = this._rBlock;\n this._rBlock = t; // Final permutation\n\n exchangeLR.call(this, 1, 0x55555555);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeLR.call(this, 4, 0x0f0f0f0f); // Set output\n\n M[offset] = this._lBlock;\n M[offset + 1] = this._rBlock;\n },\n keySize: 64 / 32,\n ivSize: 64 / 32,\n blockSize: 64 / 32\n }); // Swap bits across the left and right words\n\n function exchangeLR(offset, mask) {\n var t = (this._lBlock >>> offset ^ this._rBlock) & mask;\n this._rBlock ^= t;\n this._lBlock ^= t << offset;\n }\n\n function exchangeRL(offset, mask) {\n var t = (this._rBlock >>> offset ^ this._lBlock) & mask;\n this._lBlock ^= t;\n this._rBlock ^= t << offset;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n */\n\n\n C.DES = BlockCipher._createHelper(DES);\n /**\n * Triple-DES block cipher algorithm.\n */\n\n var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words; // Make sure the key length is valid (64, 128 or >= 192 bit)\n\n if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n } // Extend the key according to the keying options defined in 3DES standard\n\n\n var key1 = keyWords.slice(0, 2);\n var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); // Create DES instances\n\n this._des1 = DES.createEncryptor(WordArray.create(key1));\n this._des2 = DES.createEncryptor(WordArray.create(key2));\n this._des3 = DES.createEncryptor(WordArray.create(key3));\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._des1.encryptBlock(M, offset);\n\n this._des2.decryptBlock(M, offset);\n\n this._des3.encryptBlock(M, offset);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._des3.decryptBlock(M, offset);\n\n this._des2.encryptBlock(M, offset);\n\n this._des1.decryptBlock(M, offset);\n },\n keySize: 192 / 32,\n ivSize: 64 / 32,\n blockSize: 64 / 32\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n */\n\n C.TripleDES = BlockCipher._createHelper(TripleDES);\n })();\n\n return CryptoJS.TripleDES;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n // CommonJS\n module.exports = exports = factory(require(\"./core\"));\n } else if (typeof define === \"function\" && define.amd) {\n // AMD\n define([\"./core\"], factory);\n } else {\n // Global (browser)\n factory(root.CryptoJS);\n }\n})(this, function (CryptoJS) {\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var X32WordArray = C_lib.WordArray;\n /**\n * x64 namespace.\n */\n\n var C_x64 = C.x64 = {};\n /**\n * A 64-bit word.\n */\n\n var X64Word = C_x64.Word = Base.extend({\n /**\n * Initializes a newly created 64-bit word.\n *\n * @param {number} high The high 32 bits.\n * @param {number} low The low 32 bits.\n *\n * @example\n *\n * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n */\n init: function init(high, low) {\n this.high = high;\n this.low = low;\n }\n /**\n * Bitwise NOTs this word.\n *\n * @return {X64Word} A new x64-Word object after negating.\n *\n * @example\n *\n * var negated = x64Word.not();\n */\n // not: function () {\n // var high = ~this.high;\n // var low = ~this.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise ANDs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to AND with this word.\n *\n * @return {X64Word} A new x64-Word object after ANDing.\n *\n * @example\n *\n * var anded = x64Word.and(anotherX64Word);\n */\n // and: function (word) {\n // var high = this.high & word.high;\n // var low = this.low & word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise ORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to OR with this word.\n *\n * @return {X64Word} A new x64-Word object after ORing.\n *\n * @example\n *\n * var ored = x64Word.or(anotherX64Word);\n */\n // or: function (word) {\n // var high = this.high | word.high;\n // var low = this.low | word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Bitwise XORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to XOR with this word.\n *\n * @return {X64Word} A new x64-Word object after XORing.\n *\n * @example\n *\n * var xored = x64Word.xor(anotherX64Word);\n */\n // xor: function (word) {\n // var high = this.high ^ word.high;\n // var low = this.low ^ word.low;\n // return X64Word.create(high, low);\n // },\n\n /**\n * Shifts this word n bits to the left.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftL(25);\n */\n // shiftL: function (n) {\n // if (n < 32) {\n // var high = (this.high << n) | (this.low >>> (32 - n));\n // var low = this.low << n;\n // } else {\n // var high = this.low << (n - 32);\n // var low = 0;\n // }\n // return X64Word.create(high, low);\n // },\n\n /**\n * Shifts this word n bits to the right.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftR(7);\n */\n // shiftR: function (n) {\n // if (n < 32) {\n // var low = (this.low >>> n) | (this.high << (32 - n));\n // var high = this.high >>> n;\n // } else {\n // var low = this.high >>> (n - 32);\n // var high = 0;\n // }\n // return X64Word.create(high, low);\n // },\n\n /**\n * Rotates this word n bits to the left.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotL(25);\n */\n // rotL: function (n) {\n // return this.shiftL(n).or(this.shiftR(64 - n));\n // },\n\n /**\n * Rotates this word n bits to the right.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotR(7);\n */\n // rotR: function (n) {\n // return this.shiftR(n).or(this.shiftL(64 - n));\n // },\n\n /**\n * Adds this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to add with this word.\n *\n * @return {X64Word} A new x64-Word object after adding.\n *\n * @example\n *\n * var added = x64Word.add(anotherX64Word);\n */\n // add: function (word) {\n // var low = (this.low + word.low) | 0;\n // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n // var high = (this.high + word.high + carry) | 0;\n // return X64Word.create(high, low);\n // }\n\n });\n /**\n * An array of 64-bit words.\n *\n * @property {Array} words The array of CryptoJS.x64.Word objects.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n\n var X64WordArray = C_x64.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.x64.WordArray.create();\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ]);\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ], 10);\n */\n init: function init(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n\n /**\n * Converts this 64-bit word array to a 32-bit word array.\n *\n * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n *\n * @example\n *\n * var x32WordArray = x64WordArray.toX32();\n */\n toX32: function toX32() {\n // Shortcuts\n var x64Words = this.words;\n var x64WordsLength = x64Words.length; // Convert\n\n var x32Words = [];\n\n for (var i = 0; i < x64WordsLength; i++) {\n var x64Word = x64Words[i];\n x32Words.push(x64Word.high);\n x32Words.push(x64Word.low);\n }\n\n return X32WordArray.create(x32Words, this.sigBytes);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {X64WordArray} The clone.\n *\n * @example\n *\n * var clone = x64WordArray.clone();\n */\n clone: function clone() {\n var clone = Base.clone.call(this); // Clone \"words\" array\n\n var words = clone.words = this.words.slice(0); // Clone each X64Word object\n\n var wordsLength = words.length;\n\n for (var i = 0; i < wordsLength; i++) {\n words[i] = words[i].clone();\n }\n\n return clone;\n }\n });\n })();\n\n return CryptoJS;\n});","import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\n\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\n\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\n\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\n\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\n\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = require(\"../../../css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = require(\"../webfonts/fa-brands-400.eot\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = require(\"../webfonts/fa-brands-400.woff2\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = require(\"../webfonts/fa-brands-400.woff\");\nvar ___CSS_LOADER_URL_IMPORT_3___ = require(\"../webfonts/fa-brands-400.ttf\");\nvar ___CSS_LOADER_URL_IMPORT_4___ = require(\"../webfonts/fa-brands-400.svg\");\nvar ___CSS_LOADER_URL_IMPORT_5___ = require(\"../webfonts/fa-regular-400.eot\");\nvar ___CSS_LOADER_URL_IMPORT_6___ = require(\"../webfonts/fa-regular-400.woff2\");\nvar ___CSS_LOADER_URL_IMPORT_7___ = require(\"../webfonts/fa-regular-400.woff\");\nvar ___CSS_LOADER_URL_IMPORT_8___ = require(\"../webfonts/fa-regular-400.ttf\");\nvar ___CSS_LOADER_URL_IMPORT_9___ = require(\"../webfonts/fa-regular-400.svg\");\nvar ___CSS_LOADER_URL_IMPORT_10___ = require(\"../webfonts/fa-solid-900.eot\");\nvar ___CSS_LOADER_URL_IMPORT_11___ = require(\"../webfonts/fa-solid-900.woff2\");\nvar ___CSS_LOADER_URL_IMPORT_12___ = require(\"../webfonts/fa-solid-900.woff\");\nvar ___CSS_LOADER_URL_IMPORT_13___ = require(\"../webfonts/fa-solid-900.ttf\");\nvar ___CSS_LOADER_URL_IMPORT_14___ = require(\"../webfonts/fa-solid-900.svg\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___, { hash: \"#fontawesome\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___, { hash: \"#fontawesome\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \"#fontawesome\" });\n// Module\nexports.push([module.id, \"/*!\\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\\n */\\n.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-feature-settings:normal;font-variant:normal;text-rendering:auto;line-height:1}\\n.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}\\n.fa-xs{font-size:.75em}\\n.fa-sm{font-size:.875em}\\n.fa-1x{font-size:1em}\\n.fa-2x{font-size:2em}\\n.fa-3x{font-size:3em}\\n.fa-4x{font-size:4em}\\n.fa-5x{font-size:5em}\\n.fa-6x{font-size:6em}\\n.fa-7x{font-size:7em}\\n.fa-8x{font-size:8em}\\n.fa-9x{font-size:9em}\\n.fa-10x{font-size:10em}\\n.fa-fw{text-align:center;width:1.25em}\\n.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}\\n.fa-ul>li{position:relative}\\n.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}\\n.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}\\n.fa-pull-left{float:left}\\n.fa-pull-right{float:right}\\n.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}\\n.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}\\n.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}\\n.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}\\n@-webkit-keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}\\n@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}\\n.fa-rotate-90{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";transform:rotate(90deg)}\\n.fa-rotate-180{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";transform:rotate(180deg)}\\n.fa-rotate-270{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";transform:rotate(270deg)}\\n.fa-flip-horizontal{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";transform:scaleX(-1)}\\n.fa-flip-vertical{transform:scaleY(-1)}\\n.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\"}\\n.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}\\n:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}\\n.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}\\n.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}\\n.fa-stack-1x{line-height:inherit}\\n.fa-stack-2x{font-size:2em}\\n.fa-inverse{color:#fff}\\n.fa-500px:before{content:\\\"\\\\f26e\\\"}\\n.fa-accessible-icon:before{content:\\\"\\\\f368\\\"}\\n.fa-accusoft:before{content:\\\"\\\\f369\\\"}\\n.fa-acquisitions-incorporated:before{content:\\\"\\\\f6af\\\"}\\n.fa-ad:before{content:\\\"\\\\f641\\\"}\\n.fa-address-book:before{content:\\\"\\\\f2b9\\\"}\\n.fa-address-card:before{content:\\\"\\\\f2bb\\\"}\\n.fa-adjust:before{content:\\\"\\\\f042\\\"}\\n.fa-adn:before{content:\\\"\\\\f170\\\"}\\n.fa-adversal:before{content:\\\"\\\\f36a\\\"}\\n.fa-affiliatetheme:before{content:\\\"\\\\f36b\\\"}\\n.fa-air-freshener:before{content:\\\"\\\\f5d0\\\"}\\n.fa-airbnb:before{content:\\\"\\\\f834\\\"}\\n.fa-algolia:before{content:\\\"\\\\f36c\\\"}\\n.fa-align-center:before{content:\\\"\\\\f037\\\"}\\n.fa-align-justify:before{content:\\\"\\\\f039\\\"}\\n.fa-align-left:before{content:\\\"\\\\f036\\\"}\\n.fa-align-right:before{content:\\\"\\\\f038\\\"}\\n.fa-alipay:before{content:\\\"\\\\f642\\\"}\\n.fa-allergies:before{content:\\\"\\\\f461\\\"}\\n.fa-amazon:before{content:\\\"\\\\f270\\\"}\\n.fa-amazon-pay:before{content:\\\"\\\\f42c\\\"}\\n.fa-ambulance:before{content:\\\"\\\\f0f9\\\"}\\n.fa-american-sign-language-interpreting:before{content:\\\"\\\\f2a3\\\"}\\n.fa-amilia:before{content:\\\"\\\\f36d\\\"}\\n.fa-anchor:before{content:\\\"\\\\f13d\\\"}\\n.fa-android:before{content:\\\"\\\\f17b\\\"}\\n.fa-angellist:before{content:\\\"\\\\f209\\\"}\\n.fa-angle-double-down:before{content:\\\"\\\\f103\\\"}\\n.fa-angle-double-left:before{content:\\\"\\\\f100\\\"}\\n.fa-angle-double-right:before{content:\\\"\\\\f101\\\"}\\n.fa-angle-double-up:before{content:\\\"\\\\f102\\\"}\\n.fa-angle-down:before{content:\\\"\\\\f107\\\"}\\n.fa-angle-left:before{content:\\\"\\\\f104\\\"}\\n.fa-angle-right:before{content:\\\"\\\\f105\\\"}\\n.fa-angle-up:before{content:\\\"\\\\f106\\\"}\\n.fa-angry:before{content:\\\"\\\\f556\\\"}\\n.fa-angrycreative:before{content:\\\"\\\\f36e\\\"}\\n.fa-angular:before{content:\\\"\\\\f420\\\"}\\n.fa-ankh:before{content:\\\"\\\\f644\\\"}\\n.fa-app-store:before{content:\\\"\\\\f36f\\\"}\\n.fa-app-store-ios:before{content:\\\"\\\\f370\\\"}\\n.fa-apper:before{content:\\\"\\\\f371\\\"}\\n.fa-apple:before{content:\\\"\\\\f179\\\"}\\n.fa-apple-alt:before{content:\\\"\\\\f5d1\\\"}\\n.fa-apple-pay:before{content:\\\"\\\\f415\\\"}\\n.fa-archive:before{content:\\\"\\\\f187\\\"}\\n.fa-archway:before{content:\\\"\\\\f557\\\"}\\n.fa-arrow-alt-circle-down:before{content:\\\"\\\\f358\\\"}\\n.fa-arrow-alt-circle-left:before{content:\\\"\\\\f359\\\"}\\n.fa-arrow-alt-circle-right:before{content:\\\"\\\\f35a\\\"}\\n.fa-arrow-alt-circle-up:before{content:\\\"\\\\f35b\\\"}\\n.fa-arrow-circle-down:before{content:\\\"\\\\f0ab\\\"}\\n.fa-arrow-circle-left:before{content:\\\"\\\\f0a8\\\"}\\n.fa-arrow-circle-right:before{content:\\\"\\\\f0a9\\\"}\\n.fa-arrow-circle-up:before{content:\\\"\\\\f0aa\\\"}\\n.fa-arrow-down:before{content:\\\"\\\\f063\\\"}\\n.fa-arrow-left:before{content:\\\"\\\\f060\\\"}\\n.fa-arrow-right:before{content:\\\"\\\\f061\\\"}\\n.fa-arrow-up:before{content:\\\"\\\\f062\\\"}\\n.fa-arrows-alt:before{content:\\\"\\\\f0b2\\\"}\\n.fa-arrows-alt-h:before{content:\\\"\\\\f337\\\"}\\n.fa-arrows-alt-v:before{content:\\\"\\\\f338\\\"}\\n.fa-artstation:before{content:\\\"\\\\f77a\\\"}\\n.fa-assistive-listening-systems:before{content:\\\"\\\\f2a2\\\"}\\n.fa-asterisk:before{content:\\\"\\\\f069\\\"}\\n.fa-asymmetrik:before{content:\\\"\\\\f372\\\"}\\n.fa-at:before{content:\\\"\\\\f1fa\\\"}\\n.fa-atlas:before{content:\\\"\\\\f558\\\"}\\n.fa-atlassian:before{content:\\\"\\\\f77b\\\"}\\n.fa-atom:before{content:\\\"\\\\f5d2\\\"}\\n.fa-audible:before{content:\\\"\\\\f373\\\"}\\n.fa-audio-description:before{content:\\\"\\\\f29e\\\"}\\n.fa-autoprefixer:before{content:\\\"\\\\f41c\\\"}\\n.fa-avianex:before{content:\\\"\\\\f374\\\"}\\n.fa-aviato:before{content:\\\"\\\\f421\\\"}\\n.fa-award:before{content:\\\"\\\\f559\\\"}\\n.fa-aws:before{content:\\\"\\\\f375\\\"}\\n.fa-baby:before{content:\\\"\\\\f77c\\\"}\\n.fa-baby-carriage:before{content:\\\"\\\\f77d\\\"}\\n.fa-backspace:before{content:\\\"\\\\f55a\\\"}\\n.fa-backward:before{content:\\\"\\\\f04a\\\"}\\n.fa-bacon:before{content:\\\"\\\\f7e5\\\"}\\n.fa-bacteria:before{content:\\\"\\\\e059\\\"}\\n.fa-bacterium:before{content:\\\"\\\\e05a\\\"}\\n.fa-bahai:before{content:\\\"\\\\f666\\\"}\\n.fa-balance-scale:before{content:\\\"\\\\f24e\\\"}\\n.fa-balance-scale-left:before{content:\\\"\\\\f515\\\"}\\n.fa-balance-scale-right:before{content:\\\"\\\\f516\\\"}\\n.fa-ban:before{content:\\\"\\\\f05e\\\"}\\n.fa-band-aid:before{content:\\\"\\\\f462\\\"}\\n.fa-bandcamp:before{content:\\\"\\\\f2d5\\\"}\\n.fa-barcode:before{content:\\\"\\\\f02a\\\"}\\n.fa-bars:before{content:\\\"\\\\f0c9\\\"}\\n.fa-baseball-ball:before{content:\\\"\\\\f433\\\"}\\n.fa-basketball-ball:before{content:\\\"\\\\f434\\\"}\\n.fa-bath:before{content:\\\"\\\\f2cd\\\"}\\n.fa-battery-empty:before{content:\\\"\\\\f244\\\"}\\n.fa-battery-full:before{content:\\\"\\\\f240\\\"}\\n.fa-battery-half:before{content:\\\"\\\\f242\\\"}\\n.fa-battery-quarter:before{content:\\\"\\\\f243\\\"}\\n.fa-battery-three-quarters:before{content:\\\"\\\\f241\\\"}\\n.fa-battle-net:before{content:\\\"\\\\f835\\\"}\\n.fa-bed:before{content:\\\"\\\\f236\\\"}\\n.fa-beer:before{content:\\\"\\\\f0fc\\\"}\\n.fa-behance:before{content:\\\"\\\\f1b4\\\"}\\n.fa-behance-square:before{content:\\\"\\\\f1b5\\\"}\\n.fa-bell:before{content:\\\"\\\\f0f3\\\"}\\n.fa-bell-slash:before{content:\\\"\\\\f1f6\\\"}\\n.fa-bezier-curve:before{content:\\\"\\\\f55b\\\"}\\n.fa-bible:before{content:\\\"\\\\f647\\\"}\\n.fa-bicycle:before{content:\\\"\\\\f206\\\"}\\n.fa-biking:before{content:\\\"\\\\f84a\\\"}\\n.fa-bimobject:before{content:\\\"\\\\f378\\\"}\\n.fa-binoculars:before{content:\\\"\\\\f1e5\\\"}\\n.fa-biohazard:before{content:\\\"\\\\f780\\\"}\\n.fa-birthday-cake:before{content:\\\"\\\\f1fd\\\"}\\n.fa-bitbucket:before{content:\\\"\\\\f171\\\"}\\n.fa-bitcoin:before{content:\\\"\\\\f379\\\"}\\n.fa-bity:before{content:\\\"\\\\f37a\\\"}\\n.fa-black-tie:before{content:\\\"\\\\f27e\\\"}\\n.fa-blackberry:before{content:\\\"\\\\f37b\\\"}\\n.fa-blender:before{content:\\\"\\\\f517\\\"}\\n.fa-blender-phone:before{content:\\\"\\\\f6b6\\\"}\\n.fa-blind:before{content:\\\"\\\\f29d\\\"}\\n.fa-blog:before{content:\\\"\\\\f781\\\"}\\n.fa-blogger:before{content:\\\"\\\\f37c\\\"}\\n.fa-blogger-b:before{content:\\\"\\\\f37d\\\"}\\n.fa-bluetooth:before{content:\\\"\\\\f293\\\"}\\n.fa-bluetooth-b:before{content:\\\"\\\\f294\\\"}\\n.fa-bold:before{content:\\\"\\\\f032\\\"}\\n.fa-bolt:before{content:\\\"\\\\f0e7\\\"}\\n.fa-bomb:before{content:\\\"\\\\f1e2\\\"}\\n.fa-bone:before{content:\\\"\\\\f5d7\\\"}\\n.fa-bong:before{content:\\\"\\\\f55c\\\"}\\n.fa-book:before{content:\\\"\\\\f02d\\\"}\\n.fa-book-dead:before{content:\\\"\\\\f6b7\\\"}\\n.fa-book-medical:before{content:\\\"\\\\f7e6\\\"}\\n.fa-book-open:before{content:\\\"\\\\f518\\\"}\\n.fa-book-reader:before{content:\\\"\\\\f5da\\\"}\\n.fa-bookmark:before{content:\\\"\\\\f02e\\\"}\\n.fa-bootstrap:before{content:\\\"\\\\f836\\\"}\\n.fa-border-all:before{content:\\\"\\\\f84c\\\"}\\n.fa-border-none:before{content:\\\"\\\\f850\\\"}\\n.fa-border-style:before{content:\\\"\\\\f853\\\"}\\n.fa-bowling-ball:before{content:\\\"\\\\f436\\\"}\\n.fa-box:before{content:\\\"\\\\f466\\\"}\\n.fa-box-open:before{content:\\\"\\\\f49e\\\"}\\n.fa-box-tissue:before{content:\\\"\\\\e05b\\\"}\\n.fa-boxes:before{content:\\\"\\\\f468\\\"}\\n.fa-braille:before{content:\\\"\\\\f2a1\\\"}\\n.fa-brain:before{content:\\\"\\\\f5dc\\\"}\\n.fa-bread-slice:before{content:\\\"\\\\f7ec\\\"}\\n.fa-briefcase:before{content:\\\"\\\\f0b1\\\"}\\n.fa-briefcase-medical:before{content:\\\"\\\\f469\\\"}\\n.fa-broadcast-tower:before{content:\\\"\\\\f519\\\"}\\n.fa-broom:before{content:\\\"\\\\f51a\\\"}\\n.fa-brush:before{content:\\\"\\\\f55d\\\"}\\n.fa-btc:before{content:\\\"\\\\f15a\\\"}\\n.fa-buffer:before{content:\\\"\\\\f837\\\"}\\n.fa-bug:before{content:\\\"\\\\f188\\\"}\\n.fa-building:before{content:\\\"\\\\f1ad\\\"}\\n.fa-bullhorn:before{content:\\\"\\\\f0a1\\\"}\\n.fa-bullseye:before{content:\\\"\\\\f140\\\"}\\n.fa-burn:before{content:\\\"\\\\f46a\\\"}\\n.fa-buromobelexperte:before{content:\\\"\\\\f37f\\\"}\\n.fa-bus:before{content:\\\"\\\\f207\\\"}\\n.fa-bus-alt:before{content:\\\"\\\\f55e\\\"}\\n.fa-business-time:before{content:\\\"\\\\f64a\\\"}\\n.fa-buy-n-large:before{content:\\\"\\\\f8a6\\\"}\\n.fa-buysellads:before{content:\\\"\\\\f20d\\\"}\\n.fa-calculator:before{content:\\\"\\\\f1ec\\\"}\\n.fa-calendar:before{content:\\\"\\\\f133\\\"}\\n.fa-calendar-alt:before{content:\\\"\\\\f073\\\"}\\n.fa-calendar-check:before{content:\\\"\\\\f274\\\"}\\n.fa-calendar-day:before{content:\\\"\\\\f783\\\"}\\n.fa-calendar-minus:before{content:\\\"\\\\f272\\\"}\\n.fa-calendar-plus:before{content:\\\"\\\\f271\\\"}\\n.fa-calendar-times:before{content:\\\"\\\\f273\\\"}\\n.fa-calendar-week:before{content:\\\"\\\\f784\\\"}\\n.fa-camera:before{content:\\\"\\\\f030\\\"}\\n.fa-camera-retro:before{content:\\\"\\\\f083\\\"}\\n.fa-campground:before{content:\\\"\\\\f6bb\\\"}\\n.fa-canadian-maple-leaf:before{content:\\\"\\\\f785\\\"}\\n.fa-candy-cane:before{content:\\\"\\\\f786\\\"}\\n.fa-cannabis:before{content:\\\"\\\\f55f\\\"}\\n.fa-capsules:before{content:\\\"\\\\f46b\\\"}\\n.fa-car:before{content:\\\"\\\\f1b9\\\"}\\n.fa-car-alt:before{content:\\\"\\\\f5de\\\"}\\n.fa-car-battery:before{content:\\\"\\\\f5df\\\"}\\n.fa-car-crash:before{content:\\\"\\\\f5e1\\\"}\\n.fa-car-side:before{content:\\\"\\\\f5e4\\\"}\\n.fa-caravan:before{content:\\\"\\\\f8ff\\\"}\\n.fa-caret-down:before{content:\\\"\\\\f0d7\\\"}\\n.fa-caret-left:before{content:\\\"\\\\f0d9\\\"}\\n.fa-caret-right:before{content:\\\"\\\\f0da\\\"}\\n.fa-caret-square-down:before{content:\\\"\\\\f150\\\"}\\n.fa-caret-square-left:before{content:\\\"\\\\f191\\\"}\\n.fa-caret-square-right:before{content:\\\"\\\\f152\\\"}\\n.fa-caret-square-up:before{content:\\\"\\\\f151\\\"}\\n.fa-caret-up:before{content:\\\"\\\\f0d8\\\"}\\n.fa-carrot:before{content:\\\"\\\\f787\\\"}\\n.fa-cart-arrow-down:before{content:\\\"\\\\f218\\\"}\\n.fa-cart-plus:before{content:\\\"\\\\f217\\\"}\\n.fa-cash-register:before{content:\\\"\\\\f788\\\"}\\n.fa-cat:before{content:\\\"\\\\f6be\\\"}\\n.fa-cc-amazon-pay:before{content:\\\"\\\\f42d\\\"}\\n.fa-cc-amex:before{content:\\\"\\\\f1f3\\\"}\\n.fa-cc-apple-pay:before{content:\\\"\\\\f416\\\"}\\n.fa-cc-diners-club:before{content:\\\"\\\\f24c\\\"}\\n.fa-cc-discover:before{content:\\\"\\\\f1f2\\\"}\\n.fa-cc-jcb:before{content:\\\"\\\\f24b\\\"}\\n.fa-cc-mastercard:before{content:\\\"\\\\f1f1\\\"}\\n.fa-cc-paypal:before{content:\\\"\\\\f1f4\\\"}\\n.fa-cc-stripe:before{content:\\\"\\\\f1f5\\\"}\\n.fa-cc-visa:before{content:\\\"\\\\f1f0\\\"}\\n.fa-centercode:before{content:\\\"\\\\f380\\\"}\\n.fa-centos:before{content:\\\"\\\\f789\\\"}\\n.fa-certificate:before{content:\\\"\\\\f0a3\\\"}\\n.fa-chair:before{content:\\\"\\\\f6c0\\\"}\\n.fa-chalkboard:before{content:\\\"\\\\f51b\\\"}\\n.fa-chalkboard-teacher:before{content:\\\"\\\\f51c\\\"}\\n.fa-charging-station:before{content:\\\"\\\\f5e7\\\"}\\n.fa-chart-area:before{content:\\\"\\\\f1fe\\\"}\\n.fa-chart-bar:before{content:\\\"\\\\f080\\\"}\\n.fa-chart-line:before{content:\\\"\\\\f201\\\"}\\n.fa-chart-pie:before{content:\\\"\\\\f200\\\"}\\n.fa-check:before{content:\\\"\\\\f00c\\\"}\\n.fa-check-circle:before{content:\\\"\\\\f058\\\"}\\n.fa-check-double:before{content:\\\"\\\\f560\\\"}\\n.fa-check-square:before{content:\\\"\\\\f14a\\\"}\\n.fa-cheese:before{content:\\\"\\\\f7ef\\\"}\\n.fa-chess:before{content:\\\"\\\\f439\\\"}\\n.fa-chess-bishop:before{content:\\\"\\\\f43a\\\"}\\n.fa-chess-board:before{content:\\\"\\\\f43c\\\"}\\n.fa-chess-king:before{content:\\\"\\\\f43f\\\"}\\n.fa-chess-knight:before{content:\\\"\\\\f441\\\"}\\n.fa-chess-pawn:before{content:\\\"\\\\f443\\\"}\\n.fa-chess-queen:before{content:\\\"\\\\f445\\\"}\\n.fa-chess-rook:before{content:\\\"\\\\f447\\\"}\\n.fa-chevron-circle-down:before{content:\\\"\\\\f13a\\\"}\\n.fa-chevron-circle-left:before{content:\\\"\\\\f137\\\"}\\n.fa-chevron-circle-right:before{content:\\\"\\\\f138\\\"}\\n.fa-chevron-circle-up:before{content:\\\"\\\\f139\\\"}\\n.fa-chevron-down:before{content:\\\"\\\\f078\\\"}\\n.fa-chevron-left:before{content:\\\"\\\\f053\\\"}\\n.fa-chevron-right:before{content:\\\"\\\\f054\\\"}\\n.fa-chevron-up:before{content:\\\"\\\\f077\\\"}\\n.fa-child:before{content:\\\"\\\\f1ae\\\"}\\n.fa-chrome:before{content:\\\"\\\\f268\\\"}\\n.fa-chromecast:before{content:\\\"\\\\f838\\\"}\\n.fa-church:before{content:\\\"\\\\f51d\\\"}\\n.fa-circle:before{content:\\\"\\\\f111\\\"}\\n.fa-circle-notch:before{content:\\\"\\\\f1ce\\\"}\\n.fa-city:before{content:\\\"\\\\f64f\\\"}\\n.fa-clinic-medical:before{content:\\\"\\\\f7f2\\\"}\\n.fa-clipboard:before{content:\\\"\\\\f328\\\"}\\n.fa-clipboard-check:before{content:\\\"\\\\f46c\\\"}\\n.fa-clipboard-list:before{content:\\\"\\\\f46d\\\"}\\n.fa-clock:before{content:\\\"\\\\f017\\\"}\\n.fa-clone:before{content:\\\"\\\\f24d\\\"}\\n.fa-closed-captioning:before{content:\\\"\\\\f20a\\\"}\\n.fa-cloud:before{content:\\\"\\\\f0c2\\\"}\\n.fa-cloud-download-alt:before{content:\\\"\\\\f381\\\"}\\n.fa-cloud-meatball:before{content:\\\"\\\\f73b\\\"}\\n.fa-cloud-moon:before{content:\\\"\\\\f6c3\\\"}\\n.fa-cloud-moon-rain:before{content:\\\"\\\\f73c\\\"}\\n.fa-cloud-rain:before{content:\\\"\\\\f73d\\\"}\\n.fa-cloud-showers-heavy:before{content:\\\"\\\\f740\\\"}\\n.fa-cloud-sun:before{content:\\\"\\\\f6c4\\\"}\\n.fa-cloud-sun-rain:before{content:\\\"\\\\f743\\\"}\\n.fa-cloud-upload-alt:before{content:\\\"\\\\f382\\\"}\\n.fa-cloudflare:before{content:\\\"\\\\e07d\\\"}\\n.fa-cloudscale:before{content:\\\"\\\\f383\\\"}\\n.fa-cloudsmith:before{content:\\\"\\\\f384\\\"}\\n.fa-cloudversify:before{content:\\\"\\\\f385\\\"}\\n.fa-cocktail:before{content:\\\"\\\\f561\\\"}\\n.fa-code:before{content:\\\"\\\\f121\\\"}\\n.fa-code-branch:before{content:\\\"\\\\f126\\\"}\\n.fa-codepen:before{content:\\\"\\\\f1cb\\\"}\\n.fa-codiepie:before{content:\\\"\\\\f284\\\"}\\n.fa-coffee:before{content:\\\"\\\\f0f4\\\"}\\n.fa-cog:before{content:\\\"\\\\f013\\\"}\\n.fa-cogs:before{content:\\\"\\\\f085\\\"}\\n.fa-coins:before{content:\\\"\\\\f51e\\\"}\\n.fa-columns:before{content:\\\"\\\\f0db\\\"}\\n.fa-comment:before{content:\\\"\\\\f075\\\"}\\n.fa-comment-alt:before{content:\\\"\\\\f27a\\\"}\\n.fa-comment-dollar:before{content:\\\"\\\\f651\\\"}\\n.fa-comment-dots:before{content:\\\"\\\\f4ad\\\"}\\n.fa-comment-medical:before{content:\\\"\\\\f7f5\\\"}\\n.fa-comment-slash:before{content:\\\"\\\\f4b3\\\"}\\n.fa-comments:before{content:\\\"\\\\f086\\\"}\\n.fa-comments-dollar:before{content:\\\"\\\\f653\\\"}\\n.fa-compact-disc:before{content:\\\"\\\\f51f\\\"}\\n.fa-compass:before{content:\\\"\\\\f14e\\\"}\\n.fa-compress:before{content:\\\"\\\\f066\\\"}\\n.fa-compress-alt:before{content:\\\"\\\\f422\\\"}\\n.fa-compress-arrows-alt:before{content:\\\"\\\\f78c\\\"}\\n.fa-concierge-bell:before{content:\\\"\\\\f562\\\"}\\n.fa-confluence:before{content:\\\"\\\\f78d\\\"}\\n.fa-connectdevelop:before{content:\\\"\\\\f20e\\\"}\\n.fa-contao:before{content:\\\"\\\\f26d\\\"}\\n.fa-cookie:before{content:\\\"\\\\f563\\\"}\\n.fa-cookie-bite:before{content:\\\"\\\\f564\\\"}\\n.fa-copy:before{content:\\\"\\\\f0c5\\\"}\\n.fa-copyright:before{content:\\\"\\\\f1f9\\\"}\\n.fa-cotton-bureau:before{content:\\\"\\\\f89e\\\"}\\n.fa-couch:before{content:\\\"\\\\f4b8\\\"}\\n.fa-cpanel:before{content:\\\"\\\\f388\\\"}\\n.fa-creative-commons:before{content:\\\"\\\\f25e\\\"}\\n.fa-creative-commons-by:before{content:\\\"\\\\f4e7\\\"}\\n.fa-creative-commons-nc:before{content:\\\"\\\\f4e8\\\"}\\n.fa-creative-commons-nc-eu:before{content:\\\"\\\\f4e9\\\"}\\n.fa-creative-commons-nc-jp:before{content:\\\"\\\\f4ea\\\"}\\n.fa-creative-commons-nd:before{content:\\\"\\\\f4eb\\\"}\\n.fa-creative-commons-pd:before{content:\\\"\\\\f4ec\\\"}\\n.fa-creative-commons-pd-alt:before{content:\\\"\\\\f4ed\\\"}\\n.fa-creative-commons-remix:before{content:\\\"\\\\f4ee\\\"}\\n.fa-creative-commons-sa:before{content:\\\"\\\\f4ef\\\"}\\n.fa-creative-commons-sampling:before{content:\\\"\\\\f4f0\\\"}\\n.fa-creative-commons-sampling-plus:before{content:\\\"\\\\f4f1\\\"}\\n.fa-creative-commons-share:before{content:\\\"\\\\f4f2\\\"}\\n.fa-creative-commons-zero:before{content:\\\"\\\\f4f3\\\"}\\n.fa-credit-card:before{content:\\\"\\\\f09d\\\"}\\n.fa-critical-role:before{content:\\\"\\\\f6c9\\\"}\\n.fa-crop:before{content:\\\"\\\\f125\\\"}\\n.fa-crop-alt:before{content:\\\"\\\\f565\\\"}\\n.fa-cross:before{content:\\\"\\\\f654\\\"}\\n.fa-crosshairs:before{content:\\\"\\\\f05b\\\"}\\n.fa-crow:before{content:\\\"\\\\f520\\\"}\\n.fa-crown:before{content:\\\"\\\\f521\\\"}\\n.fa-crutch:before{content:\\\"\\\\f7f7\\\"}\\n.fa-css3:before{content:\\\"\\\\f13c\\\"}\\n.fa-css3-alt:before{content:\\\"\\\\f38b\\\"}\\n.fa-cube:before{content:\\\"\\\\f1b2\\\"}\\n.fa-cubes:before{content:\\\"\\\\f1b3\\\"}\\n.fa-cut:before{content:\\\"\\\\f0c4\\\"}\\n.fa-cuttlefish:before{content:\\\"\\\\f38c\\\"}\\n.fa-d-and-d:before{content:\\\"\\\\f38d\\\"}\\n.fa-d-and-d-beyond:before{content:\\\"\\\\f6ca\\\"}\\n.fa-dailymotion:before{content:\\\"\\\\e052\\\"}\\n.fa-dashcube:before{content:\\\"\\\\f210\\\"}\\n.fa-database:before{content:\\\"\\\\f1c0\\\"}\\n.fa-deaf:before{content:\\\"\\\\f2a4\\\"}\\n.fa-deezer:before{content:\\\"\\\\e077\\\"}\\n.fa-delicious:before{content:\\\"\\\\f1a5\\\"}\\n.fa-democrat:before{content:\\\"\\\\f747\\\"}\\n.fa-deploydog:before{content:\\\"\\\\f38e\\\"}\\n.fa-deskpro:before{content:\\\"\\\\f38f\\\"}\\n.fa-desktop:before{content:\\\"\\\\f108\\\"}\\n.fa-dev:before{content:\\\"\\\\f6cc\\\"}\\n.fa-deviantart:before{content:\\\"\\\\f1bd\\\"}\\n.fa-dharmachakra:before{content:\\\"\\\\f655\\\"}\\n.fa-dhl:before{content:\\\"\\\\f790\\\"}\\n.fa-diagnoses:before{content:\\\"\\\\f470\\\"}\\n.fa-diaspora:before{content:\\\"\\\\f791\\\"}\\n.fa-dice:before{content:\\\"\\\\f522\\\"}\\n.fa-dice-d20:before{content:\\\"\\\\f6cf\\\"}\\n.fa-dice-d6:before{content:\\\"\\\\f6d1\\\"}\\n.fa-dice-five:before{content:\\\"\\\\f523\\\"}\\n.fa-dice-four:before{content:\\\"\\\\f524\\\"}\\n.fa-dice-one:before{content:\\\"\\\\f525\\\"}\\n.fa-dice-six:before{content:\\\"\\\\f526\\\"}\\n.fa-dice-three:before{content:\\\"\\\\f527\\\"}\\n.fa-dice-two:before{content:\\\"\\\\f528\\\"}\\n.fa-digg:before{content:\\\"\\\\f1a6\\\"}\\n.fa-digital-ocean:before{content:\\\"\\\\f391\\\"}\\n.fa-digital-tachograph:before{content:\\\"\\\\f566\\\"}\\n.fa-directions:before{content:\\\"\\\\f5eb\\\"}\\n.fa-discord:before{content:\\\"\\\\f392\\\"}\\n.fa-discourse:before{content:\\\"\\\\f393\\\"}\\n.fa-disease:before{content:\\\"\\\\f7fa\\\"}\\n.fa-divide:before{content:\\\"\\\\f529\\\"}\\n.fa-dizzy:before{content:\\\"\\\\f567\\\"}\\n.fa-dna:before{content:\\\"\\\\f471\\\"}\\n.fa-dochub:before{content:\\\"\\\\f394\\\"}\\n.fa-docker:before{content:\\\"\\\\f395\\\"}\\n.fa-dog:before{content:\\\"\\\\f6d3\\\"}\\n.fa-dollar-sign:before{content:\\\"\\\\f155\\\"}\\n.fa-dolly:before{content:\\\"\\\\f472\\\"}\\n.fa-dolly-flatbed:before{content:\\\"\\\\f474\\\"}\\n.fa-donate:before{content:\\\"\\\\f4b9\\\"}\\n.fa-door-closed:before{content:\\\"\\\\f52a\\\"}\\n.fa-door-open:before{content:\\\"\\\\f52b\\\"}\\n.fa-dot-circle:before{content:\\\"\\\\f192\\\"}\\n.fa-dove:before{content:\\\"\\\\f4ba\\\"}\\n.fa-download:before{content:\\\"\\\\f019\\\"}\\n.fa-draft2digital:before{content:\\\"\\\\f396\\\"}\\n.fa-drafting-compass:before{content:\\\"\\\\f568\\\"}\\n.fa-dragon:before{content:\\\"\\\\f6d5\\\"}\\n.fa-draw-polygon:before{content:\\\"\\\\f5ee\\\"}\\n.fa-dribbble:before{content:\\\"\\\\f17d\\\"}\\n.fa-dribbble-square:before{content:\\\"\\\\f397\\\"}\\n.fa-dropbox:before{content:\\\"\\\\f16b\\\"}\\n.fa-drum:before{content:\\\"\\\\f569\\\"}\\n.fa-drum-steelpan:before{content:\\\"\\\\f56a\\\"}\\n.fa-drumstick-bite:before{content:\\\"\\\\f6d7\\\"}\\n.fa-drupal:before{content:\\\"\\\\f1a9\\\"}\\n.fa-dumbbell:before{content:\\\"\\\\f44b\\\"}\\n.fa-dumpster:before{content:\\\"\\\\f793\\\"}\\n.fa-dumpster-fire:before{content:\\\"\\\\f794\\\"}\\n.fa-dungeon:before{content:\\\"\\\\f6d9\\\"}\\n.fa-dyalog:before{content:\\\"\\\\f399\\\"}\\n.fa-earlybirds:before{content:\\\"\\\\f39a\\\"}\\n.fa-ebay:before{content:\\\"\\\\f4f4\\\"}\\n.fa-edge:before{content:\\\"\\\\f282\\\"}\\n.fa-edge-legacy:before{content:\\\"\\\\e078\\\"}\\n.fa-edit:before{content:\\\"\\\\f044\\\"}\\n.fa-egg:before{content:\\\"\\\\f7fb\\\"}\\n.fa-eject:before{content:\\\"\\\\f052\\\"}\\n.fa-elementor:before{content:\\\"\\\\f430\\\"}\\n.fa-ellipsis-h:before{content:\\\"\\\\f141\\\"}\\n.fa-ellipsis-v:before{content:\\\"\\\\f142\\\"}\\n.fa-ello:before{content:\\\"\\\\f5f1\\\"}\\n.fa-ember:before{content:\\\"\\\\f423\\\"}\\n.fa-empire:before{content:\\\"\\\\f1d1\\\"}\\n.fa-envelope:before{content:\\\"\\\\f0e0\\\"}\\n.fa-envelope-open:before{content:\\\"\\\\f2b6\\\"}\\n.fa-envelope-open-text:before{content:\\\"\\\\f658\\\"}\\n.fa-envelope-square:before{content:\\\"\\\\f199\\\"}\\n.fa-envira:before{content:\\\"\\\\f299\\\"}\\n.fa-equals:before{content:\\\"\\\\f52c\\\"}\\n.fa-eraser:before{content:\\\"\\\\f12d\\\"}\\n.fa-erlang:before{content:\\\"\\\\f39d\\\"}\\n.fa-ethereum:before{content:\\\"\\\\f42e\\\"}\\n.fa-ethernet:before{content:\\\"\\\\f796\\\"}\\n.fa-etsy:before{content:\\\"\\\\f2d7\\\"}\\n.fa-euro-sign:before{content:\\\"\\\\f153\\\"}\\n.fa-evernote:before{content:\\\"\\\\f839\\\"}\\n.fa-exchange-alt:before{content:\\\"\\\\f362\\\"}\\n.fa-exclamation:before{content:\\\"\\\\f12a\\\"}\\n.fa-exclamation-circle:before{content:\\\"\\\\f06a\\\"}\\n.fa-exclamation-triangle:before{content:\\\"\\\\f071\\\"}\\n.fa-expand:before{content:\\\"\\\\f065\\\"}\\n.fa-expand-alt:before{content:\\\"\\\\f424\\\"}\\n.fa-expand-arrows-alt:before{content:\\\"\\\\f31e\\\"}\\n.fa-expeditedssl:before{content:\\\"\\\\f23e\\\"}\\n.fa-external-link-alt:before{content:\\\"\\\\f35d\\\"}\\n.fa-external-link-square-alt:before{content:\\\"\\\\f360\\\"}\\n.fa-eye:before{content:\\\"\\\\f06e\\\"}\\n.fa-eye-dropper:before{content:\\\"\\\\f1fb\\\"}\\n.fa-eye-slash:before{content:\\\"\\\\f070\\\"}\\n.fa-facebook:before{content:\\\"\\\\f09a\\\"}\\n.fa-facebook-f:before{content:\\\"\\\\f39e\\\"}\\n.fa-facebook-messenger:before{content:\\\"\\\\f39f\\\"}\\n.fa-facebook-square:before{content:\\\"\\\\f082\\\"}\\n.fa-fan:before{content:\\\"\\\\f863\\\"}\\n.fa-fantasy-flight-games:before{content:\\\"\\\\f6dc\\\"}\\n.fa-fast-backward:before{content:\\\"\\\\f049\\\"}\\n.fa-fast-forward:before{content:\\\"\\\\f050\\\"}\\n.fa-faucet:before{content:\\\"\\\\e005\\\"}\\n.fa-fax:before{content:\\\"\\\\f1ac\\\"}\\n.fa-feather:before{content:\\\"\\\\f52d\\\"}\\n.fa-feather-alt:before{content:\\\"\\\\f56b\\\"}\\n.fa-fedex:before{content:\\\"\\\\f797\\\"}\\n.fa-fedora:before{content:\\\"\\\\f798\\\"}\\n.fa-female:before{content:\\\"\\\\f182\\\"}\\n.fa-fighter-jet:before{content:\\\"\\\\f0fb\\\"}\\n.fa-figma:before{content:\\\"\\\\f799\\\"}\\n.fa-file:before{content:\\\"\\\\f15b\\\"}\\n.fa-file-alt:before{content:\\\"\\\\f15c\\\"}\\n.fa-file-archive:before{content:\\\"\\\\f1c6\\\"}\\n.fa-file-audio:before{content:\\\"\\\\f1c7\\\"}\\n.fa-file-code:before{content:\\\"\\\\f1c9\\\"}\\n.fa-file-contract:before{content:\\\"\\\\f56c\\\"}\\n.fa-file-csv:before{content:\\\"\\\\f6dd\\\"}\\n.fa-file-download:before{content:\\\"\\\\f56d\\\"}\\n.fa-file-excel:before{content:\\\"\\\\f1c3\\\"}\\n.fa-file-export:before{content:\\\"\\\\f56e\\\"}\\n.fa-file-image:before{content:\\\"\\\\f1c5\\\"}\\n.fa-file-import:before{content:\\\"\\\\f56f\\\"}\\n.fa-file-invoice:before{content:\\\"\\\\f570\\\"}\\n.fa-file-invoice-dollar:before{content:\\\"\\\\f571\\\"}\\n.fa-file-medical:before{content:\\\"\\\\f477\\\"}\\n.fa-file-medical-alt:before{content:\\\"\\\\f478\\\"}\\n.fa-file-pdf:before{content:\\\"\\\\f1c1\\\"}\\n.fa-file-powerpoint:before{content:\\\"\\\\f1c4\\\"}\\n.fa-file-prescription:before{content:\\\"\\\\f572\\\"}\\n.fa-file-signature:before{content:\\\"\\\\f573\\\"}\\n.fa-file-upload:before{content:\\\"\\\\f574\\\"}\\n.fa-file-video:before{content:\\\"\\\\f1c8\\\"}\\n.fa-file-word:before{content:\\\"\\\\f1c2\\\"}\\n.fa-fill:before{content:\\\"\\\\f575\\\"}\\n.fa-fill-drip:before{content:\\\"\\\\f576\\\"}\\n.fa-film:before{content:\\\"\\\\f008\\\"}\\n.fa-filter:before{content:\\\"\\\\f0b0\\\"}\\n.fa-fingerprint:before{content:\\\"\\\\f577\\\"}\\n.fa-fire:before{content:\\\"\\\\f06d\\\"}\\n.fa-fire-alt:before{content:\\\"\\\\f7e4\\\"}\\n.fa-fire-extinguisher:before{content:\\\"\\\\f134\\\"}\\n.fa-firefox:before{content:\\\"\\\\f269\\\"}\\n.fa-firefox-browser:before{content:\\\"\\\\e007\\\"}\\n.fa-first-aid:before{content:\\\"\\\\f479\\\"}\\n.fa-first-order:before{content:\\\"\\\\f2b0\\\"}\\n.fa-first-order-alt:before{content:\\\"\\\\f50a\\\"}\\n.fa-firstdraft:before{content:\\\"\\\\f3a1\\\"}\\n.fa-fish:before{content:\\\"\\\\f578\\\"}\\n.fa-fist-raised:before{content:\\\"\\\\f6de\\\"}\\n.fa-flag:before{content:\\\"\\\\f024\\\"}\\n.fa-flag-checkered:before{content:\\\"\\\\f11e\\\"}\\n.fa-flag-usa:before{content:\\\"\\\\f74d\\\"}\\n.fa-flask:before{content:\\\"\\\\f0c3\\\"}\\n.fa-flickr:before{content:\\\"\\\\f16e\\\"}\\n.fa-flipboard:before{content:\\\"\\\\f44d\\\"}\\n.fa-flushed:before{content:\\\"\\\\f579\\\"}\\n.fa-fly:before{content:\\\"\\\\f417\\\"}\\n.fa-folder:before{content:\\\"\\\\f07b\\\"}\\n.fa-folder-minus:before{content:\\\"\\\\f65d\\\"}\\n.fa-folder-open:before{content:\\\"\\\\f07c\\\"}\\n.fa-folder-plus:before{content:\\\"\\\\f65e\\\"}\\n.fa-font:before{content:\\\"\\\\f031\\\"}\\n.fa-font-awesome:before{content:\\\"\\\\f2b4\\\"}\\n.fa-font-awesome-alt:before{content:\\\"\\\\f35c\\\"}\\n.fa-font-awesome-flag:before{content:\\\"\\\\f425\\\"}\\n.fa-font-awesome-logo-full:before{content:\\\"\\\\f4e6\\\"}\\n.fa-fonticons:before{content:\\\"\\\\f280\\\"}\\n.fa-fonticons-fi:before{content:\\\"\\\\f3a2\\\"}\\n.fa-football-ball:before{content:\\\"\\\\f44e\\\"}\\n.fa-fort-awesome:before{content:\\\"\\\\f286\\\"}\\n.fa-fort-awesome-alt:before{content:\\\"\\\\f3a3\\\"}\\n.fa-forumbee:before{content:\\\"\\\\f211\\\"}\\n.fa-forward:before{content:\\\"\\\\f04e\\\"}\\n.fa-foursquare:before{content:\\\"\\\\f180\\\"}\\n.fa-free-code-camp:before{content:\\\"\\\\f2c5\\\"}\\n.fa-freebsd:before{content:\\\"\\\\f3a4\\\"}\\n.fa-frog:before{content:\\\"\\\\f52e\\\"}\\n.fa-frown:before{content:\\\"\\\\f119\\\"}\\n.fa-frown-open:before{content:\\\"\\\\f57a\\\"}\\n.fa-fulcrum:before{content:\\\"\\\\f50b\\\"}\\n.fa-funnel-dollar:before{content:\\\"\\\\f662\\\"}\\n.fa-futbol:before{content:\\\"\\\\f1e3\\\"}\\n.fa-galactic-republic:before{content:\\\"\\\\f50c\\\"}\\n.fa-galactic-senate:before{content:\\\"\\\\f50d\\\"}\\n.fa-gamepad:before{content:\\\"\\\\f11b\\\"}\\n.fa-gas-pump:before{content:\\\"\\\\f52f\\\"}\\n.fa-gavel:before{content:\\\"\\\\f0e3\\\"}\\n.fa-gem:before{content:\\\"\\\\f3a5\\\"}\\n.fa-genderless:before{content:\\\"\\\\f22d\\\"}\\n.fa-get-pocket:before{content:\\\"\\\\f265\\\"}\\n.fa-gg:before{content:\\\"\\\\f260\\\"}\\n.fa-gg-circle:before{content:\\\"\\\\f261\\\"}\\n.fa-ghost:before{content:\\\"\\\\f6e2\\\"}\\n.fa-gift:before{content:\\\"\\\\f06b\\\"}\\n.fa-gifts:before{content:\\\"\\\\f79c\\\"}\\n.fa-git:before{content:\\\"\\\\f1d3\\\"}\\n.fa-git-alt:before{content:\\\"\\\\f841\\\"}\\n.fa-git-square:before{content:\\\"\\\\f1d2\\\"}\\n.fa-github:before{content:\\\"\\\\f09b\\\"}\\n.fa-github-alt:before{content:\\\"\\\\f113\\\"}\\n.fa-github-square:before{content:\\\"\\\\f092\\\"}\\n.fa-gitkraken:before{content:\\\"\\\\f3a6\\\"}\\n.fa-gitlab:before{content:\\\"\\\\f296\\\"}\\n.fa-gitter:before{content:\\\"\\\\f426\\\"}\\n.fa-glass-cheers:before{content:\\\"\\\\f79f\\\"}\\n.fa-glass-martini:before{content:\\\"\\\\f000\\\"}\\n.fa-glass-martini-alt:before{content:\\\"\\\\f57b\\\"}\\n.fa-glass-whiskey:before{content:\\\"\\\\f7a0\\\"}\\n.fa-glasses:before{content:\\\"\\\\f530\\\"}\\n.fa-glide:before{content:\\\"\\\\f2a5\\\"}\\n.fa-glide-g:before{content:\\\"\\\\f2a6\\\"}\\n.fa-globe:before{content:\\\"\\\\f0ac\\\"}\\n.fa-globe-africa:before{content:\\\"\\\\f57c\\\"}\\n.fa-globe-americas:before{content:\\\"\\\\f57d\\\"}\\n.fa-globe-asia:before{content:\\\"\\\\f57e\\\"}\\n.fa-globe-europe:before{content:\\\"\\\\f7a2\\\"}\\n.fa-gofore:before{content:\\\"\\\\f3a7\\\"}\\n.fa-golf-ball:before{content:\\\"\\\\f450\\\"}\\n.fa-goodreads:before{content:\\\"\\\\f3a8\\\"}\\n.fa-goodreads-g:before{content:\\\"\\\\f3a9\\\"}\\n.fa-google:before{content:\\\"\\\\f1a0\\\"}\\n.fa-google-drive:before{content:\\\"\\\\f3aa\\\"}\\n.fa-google-pay:before{content:\\\"\\\\e079\\\"}\\n.fa-google-play:before{content:\\\"\\\\f3ab\\\"}\\n.fa-google-plus:before{content:\\\"\\\\f2b3\\\"}\\n.fa-google-plus-g:before{content:\\\"\\\\f0d5\\\"}\\n.fa-google-plus-square:before{content:\\\"\\\\f0d4\\\"}\\n.fa-google-wallet:before{content:\\\"\\\\f1ee\\\"}\\n.fa-gopuram:before{content:\\\"\\\\f664\\\"}\\n.fa-graduation-cap:before{content:\\\"\\\\f19d\\\"}\\n.fa-gratipay:before{content:\\\"\\\\f184\\\"}\\n.fa-grav:before{content:\\\"\\\\f2d6\\\"}\\n.fa-greater-than:before{content:\\\"\\\\f531\\\"}\\n.fa-greater-than-equal:before{content:\\\"\\\\f532\\\"}\\n.fa-grimace:before{content:\\\"\\\\f57f\\\"}\\n.fa-grin:before{content:\\\"\\\\f580\\\"}\\n.fa-grin-alt:before{content:\\\"\\\\f581\\\"}\\n.fa-grin-beam:before{content:\\\"\\\\f582\\\"}\\n.fa-grin-beam-sweat:before{content:\\\"\\\\f583\\\"}\\n.fa-grin-hearts:before{content:\\\"\\\\f584\\\"}\\n.fa-grin-squint:before{content:\\\"\\\\f585\\\"}\\n.fa-grin-squint-tears:before{content:\\\"\\\\f586\\\"}\\n.fa-grin-stars:before{content:\\\"\\\\f587\\\"}\\n.fa-grin-tears:before{content:\\\"\\\\f588\\\"}\\n.fa-grin-tongue:before{content:\\\"\\\\f589\\\"}\\n.fa-grin-tongue-squint:before{content:\\\"\\\\f58a\\\"}\\n.fa-grin-tongue-wink:before{content:\\\"\\\\f58b\\\"}\\n.fa-grin-wink:before{content:\\\"\\\\f58c\\\"}\\n.fa-grip-horizontal:before{content:\\\"\\\\f58d\\\"}\\n.fa-grip-lines:before{content:\\\"\\\\f7a4\\\"}\\n.fa-grip-lines-vertical:before{content:\\\"\\\\f7a5\\\"}\\n.fa-grip-vertical:before{content:\\\"\\\\f58e\\\"}\\n.fa-gripfire:before{content:\\\"\\\\f3ac\\\"}\\n.fa-grunt:before{content:\\\"\\\\f3ad\\\"}\\n.fa-guilded:before{content:\\\"\\\\e07e\\\"}\\n.fa-guitar:before{content:\\\"\\\\f7a6\\\"}\\n.fa-gulp:before{content:\\\"\\\\f3ae\\\"}\\n.fa-h-square:before{content:\\\"\\\\f0fd\\\"}\\n.fa-hacker-news:before{content:\\\"\\\\f1d4\\\"}\\n.fa-hacker-news-square:before{content:\\\"\\\\f3af\\\"}\\n.fa-hackerrank:before{content:\\\"\\\\f5f7\\\"}\\n.fa-hamburger:before{content:\\\"\\\\f805\\\"}\\n.fa-hammer:before{content:\\\"\\\\f6e3\\\"}\\n.fa-hamsa:before{content:\\\"\\\\f665\\\"}\\n.fa-hand-holding:before{content:\\\"\\\\f4bd\\\"}\\n.fa-hand-holding-heart:before{content:\\\"\\\\f4be\\\"}\\n.fa-hand-holding-medical:before{content:\\\"\\\\e05c\\\"}\\n.fa-hand-holding-usd:before{content:\\\"\\\\f4c0\\\"}\\n.fa-hand-holding-water:before{content:\\\"\\\\f4c1\\\"}\\n.fa-hand-lizard:before{content:\\\"\\\\f258\\\"}\\n.fa-hand-middle-finger:before{content:\\\"\\\\f806\\\"}\\n.fa-hand-paper:before{content:\\\"\\\\f256\\\"}\\n.fa-hand-peace:before{content:\\\"\\\\f25b\\\"}\\n.fa-hand-point-down:before{content:\\\"\\\\f0a7\\\"}\\n.fa-hand-point-left:before{content:\\\"\\\\f0a5\\\"}\\n.fa-hand-point-right:before{content:\\\"\\\\f0a4\\\"}\\n.fa-hand-point-up:before{content:\\\"\\\\f0a6\\\"}\\n.fa-hand-pointer:before{content:\\\"\\\\f25a\\\"}\\n.fa-hand-rock:before{content:\\\"\\\\f255\\\"}\\n.fa-hand-scissors:before{content:\\\"\\\\f257\\\"}\\n.fa-hand-sparkles:before{content:\\\"\\\\e05d\\\"}\\n.fa-hand-spock:before{content:\\\"\\\\f259\\\"}\\n.fa-hands:before{content:\\\"\\\\f4c2\\\"}\\n.fa-hands-helping:before{content:\\\"\\\\f4c4\\\"}\\n.fa-hands-wash:before{content:\\\"\\\\e05e\\\"}\\n.fa-handshake:before{content:\\\"\\\\f2b5\\\"}\\n.fa-handshake-alt-slash:before{content:\\\"\\\\e05f\\\"}\\n.fa-handshake-slash:before{content:\\\"\\\\e060\\\"}\\n.fa-hanukiah:before{content:\\\"\\\\f6e6\\\"}\\n.fa-hard-hat:before{content:\\\"\\\\f807\\\"}\\n.fa-hashtag:before{content:\\\"\\\\f292\\\"}\\n.fa-hat-cowboy:before{content:\\\"\\\\f8c0\\\"}\\n.fa-hat-cowboy-side:before{content:\\\"\\\\f8c1\\\"}\\n.fa-hat-wizard:before{content:\\\"\\\\f6e8\\\"}\\n.fa-hdd:before{content:\\\"\\\\f0a0\\\"}\\n.fa-head-side-cough:before{content:\\\"\\\\e061\\\"}\\n.fa-head-side-cough-slash:before{content:\\\"\\\\e062\\\"}\\n.fa-head-side-mask:before{content:\\\"\\\\e063\\\"}\\n.fa-head-side-virus:before{content:\\\"\\\\e064\\\"}\\n.fa-heading:before{content:\\\"\\\\f1dc\\\"}\\n.fa-headphones:before{content:\\\"\\\\f025\\\"}\\n.fa-headphones-alt:before{content:\\\"\\\\f58f\\\"}\\n.fa-headset:before{content:\\\"\\\\f590\\\"}\\n.fa-heart:before{content:\\\"\\\\f004\\\"}\\n.fa-heart-broken:before{content:\\\"\\\\f7a9\\\"}\\n.fa-heartbeat:before{content:\\\"\\\\f21e\\\"}\\n.fa-helicopter:before{content:\\\"\\\\f533\\\"}\\n.fa-highlighter:before{content:\\\"\\\\f591\\\"}\\n.fa-hiking:before{content:\\\"\\\\f6ec\\\"}\\n.fa-hippo:before{content:\\\"\\\\f6ed\\\"}\\n.fa-hips:before{content:\\\"\\\\f452\\\"}\\n.fa-hire-a-helper:before{content:\\\"\\\\f3b0\\\"}\\n.fa-history:before{content:\\\"\\\\f1da\\\"}\\n.fa-hive:before{content:\\\"\\\\e07f\\\"}\\n.fa-hockey-puck:before{content:\\\"\\\\f453\\\"}\\n.fa-holly-berry:before{content:\\\"\\\\f7aa\\\"}\\n.fa-home:before{content:\\\"\\\\f015\\\"}\\n.fa-hooli:before{content:\\\"\\\\f427\\\"}\\n.fa-hornbill:before{content:\\\"\\\\f592\\\"}\\n.fa-horse:before{content:\\\"\\\\f6f0\\\"}\\n.fa-horse-head:before{content:\\\"\\\\f7ab\\\"}\\n.fa-hospital:before{content:\\\"\\\\f0f8\\\"}\\n.fa-hospital-alt:before{content:\\\"\\\\f47d\\\"}\\n.fa-hospital-symbol:before{content:\\\"\\\\f47e\\\"}\\n.fa-hospital-user:before{content:\\\"\\\\f80d\\\"}\\n.fa-hot-tub:before{content:\\\"\\\\f593\\\"}\\n.fa-hotdog:before{content:\\\"\\\\f80f\\\"}\\n.fa-hotel:before{content:\\\"\\\\f594\\\"}\\n.fa-hotjar:before{content:\\\"\\\\f3b1\\\"}\\n.fa-hourglass:before{content:\\\"\\\\f254\\\"}\\n.fa-hourglass-end:before{content:\\\"\\\\f253\\\"}\\n.fa-hourglass-half:before{content:\\\"\\\\f252\\\"}\\n.fa-hourglass-start:before{content:\\\"\\\\f251\\\"}\\n.fa-house-damage:before{content:\\\"\\\\f6f1\\\"}\\n.fa-house-user:before{content:\\\"\\\\e065\\\"}\\n.fa-houzz:before{content:\\\"\\\\f27c\\\"}\\n.fa-hryvnia:before{content:\\\"\\\\f6f2\\\"}\\n.fa-html5:before{content:\\\"\\\\f13b\\\"}\\n.fa-hubspot:before{content:\\\"\\\\f3b2\\\"}\\n.fa-i-cursor:before{content:\\\"\\\\f246\\\"}\\n.fa-ice-cream:before{content:\\\"\\\\f810\\\"}\\n.fa-icicles:before{content:\\\"\\\\f7ad\\\"}\\n.fa-icons:before{content:\\\"\\\\f86d\\\"}\\n.fa-id-badge:before{content:\\\"\\\\f2c1\\\"}\\n.fa-id-card:before{content:\\\"\\\\f2c2\\\"}\\n.fa-id-card-alt:before{content:\\\"\\\\f47f\\\"}\\n.fa-ideal:before{content:\\\"\\\\e013\\\"}\\n.fa-igloo:before{content:\\\"\\\\f7ae\\\"}\\n.fa-image:before{content:\\\"\\\\f03e\\\"}\\n.fa-images:before{content:\\\"\\\\f302\\\"}\\n.fa-imdb:before{content:\\\"\\\\f2d8\\\"}\\n.fa-inbox:before{content:\\\"\\\\f01c\\\"}\\n.fa-indent:before{content:\\\"\\\\f03c\\\"}\\n.fa-industry:before{content:\\\"\\\\f275\\\"}\\n.fa-infinity:before{content:\\\"\\\\f534\\\"}\\n.fa-info:before{content:\\\"\\\\f129\\\"}\\n.fa-info-circle:before{content:\\\"\\\\f05a\\\"}\\n.fa-innosoft:before{content:\\\"\\\\e080\\\"}\\n.fa-instagram:before{content:\\\"\\\\f16d\\\"}\\n.fa-instagram-square:before{content:\\\"\\\\e055\\\"}\\n.fa-instalod:before{content:\\\"\\\\e081\\\"}\\n.fa-intercom:before{content:\\\"\\\\f7af\\\"}\\n.fa-internet-explorer:before{content:\\\"\\\\f26b\\\"}\\n.fa-invision:before{content:\\\"\\\\f7b0\\\"}\\n.fa-ioxhost:before{content:\\\"\\\\f208\\\"}\\n.fa-italic:before{content:\\\"\\\\f033\\\"}\\n.fa-itch-io:before{content:\\\"\\\\f83a\\\"}\\n.fa-itunes:before{content:\\\"\\\\f3b4\\\"}\\n.fa-itunes-note:before{content:\\\"\\\\f3b5\\\"}\\n.fa-java:before{content:\\\"\\\\f4e4\\\"}\\n.fa-jedi:before{content:\\\"\\\\f669\\\"}\\n.fa-jedi-order:before{content:\\\"\\\\f50e\\\"}\\n.fa-jenkins:before{content:\\\"\\\\f3b6\\\"}\\n.fa-jira:before{content:\\\"\\\\f7b1\\\"}\\n.fa-joget:before{content:\\\"\\\\f3b7\\\"}\\n.fa-joint:before{content:\\\"\\\\f595\\\"}\\n.fa-joomla:before{content:\\\"\\\\f1aa\\\"}\\n.fa-journal-whills:before{content:\\\"\\\\f66a\\\"}\\n.fa-js:before{content:\\\"\\\\f3b8\\\"}\\n.fa-js-square:before{content:\\\"\\\\f3b9\\\"}\\n.fa-jsfiddle:before{content:\\\"\\\\f1cc\\\"}\\n.fa-kaaba:before{content:\\\"\\\\f66b\\\"}\\n.fa-kaggle:before{content:\\\"\\\\f5fa\\\"}\\n.fa-key:before{content:\\\"\\\\f084\\\"}\\n.fa-keybase:before{content:\\\"\\\\f4f5\\\"}\\n.fa-keyboard:before{content:\\\"\\\\f11c\\\"}\\n.fa-keycdn:before{content:\\\"\\\\f3ba\\\"}\\n.fa-khanda:before{content:\\\"\\\\f66d\\\"}\\n.fa-kickstarter:before{content:\\\"\\\\f3bb\\\"}\\n.fa-kickstarter-k:before{content:\\\"\\\\f3bc\\\"}\\n.fa-kiss:before{content:\\\"\\\\f596\\\"}\\n.fa-kiss-beam:before{content:\\\"\\\\f597\\\"}\\n.fa-kiss-wink-heart:before{content:\\\"\\\\f598\\\"}\\n.fa-kiwi-bird:before{content:\\\"\\\\f535\\\"}\\n.fa-korvue:before{content:\\\"\\\\f42f\\\"}\\n.fa-landmark:before{content:\\\"\\\\f66f\\\"}\\n.fa-language:before{content:\\\"\\\\f1ab\\\"}\\n.fa-laptop:before{content:\\\"\\\\f109\\\"}\\n.fa-laptop-code:before{content:\\\"\\\\f5fc\\\"}\\n.fa-laptop-house:before{content:\\\"\\\\e066\\\"}\\n.fa-laptop-medical:before{content:\\\"\\\\f812\\\"}\\n.fa-laravel:before{content:\\\"\\\\f3bd\\\"}\\n.fa-lastfm:before{content:\\\"\\\\f202\\\"}\\n.fa-lastfm-square:before{content:\\\"\\\\f203\\\"}\\n.fa-laugh:before{content:\\\"\\\\f599\\\"}\\n.fa-laugh-beam:before{content:\\\"\\\\f59a\\\"}\\n.fa-laugh-squint:before{content:\\\"\\\\f59b\\\"}\\n.fa-laugh-wink:before{content:\\\"\\\\f59c\\\"}\\n.fa-layer-group:before{content:\\\"\\\\f5fd\\\"}\\n.fa-leaf:before{content:\\\"\\\\f06c\\\"}\\n.fa-leanpub:before{content:\\\"\\\\f212\\\"}\\n.fa-lemon:before{content:\\\"\\\\f094\\\"}\\n.fa-less:before{content:\\\"\\\\f41d\\\"}\\n.fa-less-than:before{content:\\\"\\\\f536\\\"}\\n.fa-less-than-equal:before{content:\\\"\\\\f537\\\"}\\n.fa-level-down-alt:before{content:\\\"\\\\f3be\\\"}\\n.fa-level-up-alt:before{content:\\\"\\\\f3bf\\\"}\\n.fa-life-ring:before{content:\\\"\\\\f1cd\\\"}\\n.fa-lightbulb:before{content:\\\"\\\\f0eb\\\"}\\n.fa-line:before{content:\\\"\\\\f3c0\\\"}\\n.fa-link:before{content:\\\"\\\\f0c1\\\"}\\n.fa-linkedin:before{content:\\\"\\\\f08c\\\"}\\n.fa-linkedin-in:before{content:\\\"\\\\f0e1\\\"}\\n.fa-linode:before{content:\\\"\\\\f2b8\\\"}\\n.fa-linux:before{content:\\\"\\\\f17c\\\"}\\n.fa-lira-sign:before{content:\\\"\\\\f195\\\"}\\n.fa-list:before{content:\\\"\\\\f03a\\\"}\\n.fa-list-alt:before{content:\\\"\\\\f022\\\"}\\n.fa-list-ol:before{content:\\\"\\\\f0cb\\\"}\\n.fa-list-ul:before{content:\\\"\\\\f0ca\\\"}\\n.fa-location-arrow:before{content:\\\"\\\\f124\\\"}\\n.fa-lock:before{content:\\\"\\\\f023\\\"}\\n.fa-lock-open:before{content:\\\"\\\\f3c1\\\"}\\n.fa-long-arrow-alt-down:before{content:\\\"\\\\f309\\\"}\\n.fa-long-arrow-alt-left:before{content:\\\"\\\\f30a\\\"}\\n.fa-long-arrow-alt-right:before{content:\\\"\\\\f30b\\\"}\\n.fa-long-arrow-alt-up:before{content:\\\"\\\\f30c\\\"}\\n.fa-low-vision:before{content:\\\"\\\\f2a8\\\"}\\n.fa-luggage-cart:before{content:\\\"\\\\f59d\\\"}\\n.fa-lungs:before{content:\\\"\\\\f604\\\"}\\n.fa-lungs-virus:before{content:\\\"\\\\e067\\\"}\\n.fa-lyft:before{content:\\\"\\\\f3c3\\\"}\\n.fa-magento:before{content:\\\"\\\\f3c4\\\"}\\n.fa-magic:before{content:\\\"\\\\f0d0\\\"}\\n.fa-magnet:before{content:\\\"\\\\f076\\\"}\\n.fa-mail-bulk:before{content:\\\"\\\\f674\\\"}\\n.fa-mailchimp:before{content:\\\"\\\\f59e\\\"}\\n.fa-male:before{content:\\\"\\\\f183\\\"}\\n.fa-mandalorian:before{content:\\\"\\\\f50f\\\"}\\n.fa-map:before{content:\\\"\\\\f279\\\"}\\n.fa-map-marked:before{content:\\\"\\\\f59f\\\"}\\n.fa-map-marked-alt:before{content:\\\"\\\\f5a0\\\"}\\n.fa-map-marker:before{content:\\\"\\\\f041\\\"}\\n.fa-map-marker-alt:before{content:\\\"\\\\f3c5\\\"}\\n.fa-map-pin:before{content:\\\"\\\\f276\\\"}\\n.fa-map-signs:before{content:\\\"\\\\f277\\\"}\\n.fa-markdown:before{content:\\\"\\\\f60f\\\"}\\n.fa-marker:before{content:\\\"\\\\f5a1\\\"}\\n.fa-mars:before{content:\\\"\\\\f222\\\"}\\n.fa-mars-double:before{content:\\\"\\\\f227\\\"}\\n.fa-mars-stroke:before{content:\\\"\\\\f229\\\"}\\n.fa-mars-stroke-h:before{content:\\\"\\\\f22b\\\"}\\n.fa-mars-stroke-v:before{content:\\\"\\\\f22a\\\"}\\n.fa-mask:before{content:\\\"\\\\f6fa\\\"}\\n.fa-mastodon:before{content:\\\"\\\\f4f6\\\"}\\n.fa-maxcdn:before{content:\\\"\\\\f136\\\"}\\n.fa-mdb:before{content:\\\"\\\\f8ca\\\"}\\n.fa-medal:before{content:\\\"\\\\f5a2\\\"}\\n.fa-medapps:before{content:\\\"\\\\f3c6\\\"}\\n.fa-medium:before{content:\\\"\\\\f23a\\\"}\\n.fa-medium-m:before{content:\\\"\\\\f3c7\\\"}\\n.fa-medkit:before{content:\\\"\\\\f0fa\\\"}\\n.fa-medrt:before{content:\\\"\\\\f3c8\\\"}\\n.fa-meetup:before{content:\\\"\\\\f2e0\\\"}\\n.fa-megaport:before{content:\\\"\\\\f5a3\\\"}\\n.fa-meh:before{content:\\\"\\\\f11a\\\"}\\n.fa-meh-blank:before{content:\\\"\\\\f5a4\\\"}\\n.fa-meh-rolling-eyes:before{content:\\\"\\\\f5a5\\\"}\\n.fa-memory:before{content:\\\"\\\\f538\\\"}\\n.fa-mendeley:before{content:\\\"\\\\f7b3\\\"}\\n.fa-menorah:before{content:\\\"\\\\f676\\\"}\\n.fa-mercury:before{content:\\\"\\\\f223\\\"}\\n.fa-meteor:before{content:\\\"\\\\f753\\\"}\\n.fa-microblog:before{content:\\\"\\\\e01a\\\"}\\n.fa-microchip:before{content:\\\"\\\\f2db\\\"}\\n.fa-microphone:before{content:\\\"\\\\f130\\\"}\\n.fa-microphone-alt:before{content:\\\"\\\\f3c9\\\"}\\n.fa-microphone-alt-slash:before{content:\\\"\\\\f539\\\"}\\n.fa-microphone-slash:before{content:\\\"\\\\f131\\\"}\\n.fa-microscope:before{content:\\\"\\\\f610\\\"}\\n.fa-microsoft:before{content:\\\"\\\\f3ca\\\"}\\n.fa-minus:before{content:\\\"\\\\f068\\\"}\\n.fa-minus-circle:before{content:\\\"\\\\f056\\\"}\\n.fa-minus-square:before{content:\\\"\\\\f146\\\"}\\n.fa-mitten:before{content:\\\"\\\\f7b5\\\"}\\n.fa-mix:before{content:\\\"\\\\f3cb\\\"}\\n.fa-mixcloud:before{content:\\\"\\\\f289\\\"}\\n.fa-mixer:before{content:\\\"\\\\e056\\\"}\\n.fa-mizuni:before{content:\\\"\\\\f3cc\\\"}\\n.fa-mobile:before{content:\\\"\\\\f10b\\\"}\\n.fa-mobile-alt:before{content:\\\"\\\\f3cd\\\"}\\n.fa-modx:before{content:\\\"\\\\f285\\\"}\\n.fa-monero:before{content:\\\"\\\\f3d0\\\"}\\n.fa-money-bill:before{content:\\\"\\\\f0d6\\\"}\\n.fa-money-bill-alt:before{content:\\\"\\\\f3d1\\\"}\\n.fa-money-bill-wave:before{content:\\\"\\\\f53a\\\"}\\n.fa-money-bill-wave-alt:before{content:\\\"\\\\f53b\\\"}\\n.fa-money-check:before{content:\\\"\\\\f53c\\\"}\\n.fa-money-check-alt:before{content:\\\"\\\\f53d\\\"}\\n.fa-monument:before{content:\\\"\\\\f5a6\\\"}\\n.fa-moon:before{content:\\\"\\\\f186\\\"}\\n.fa-mortar-pestle:before{content:\\\"\\\\f5a7\\\"}\\n.fa-mosque:before{content:\\\"\\\\f678\\\"}\\n.fa-motorcycle:before{content:\\\"\\\\f21c\\\"}\\n.fa-mountain:before{content:\\\"\\\\f6fc\\\"}\\n.fa-mouse:before{content:\\\"\\\\f8cc\\\"}\\n.fa-mouse-pointer:before{content:\\\"\\\\f245\\\"}\\n.fa-mug-hot:before{content:\\\"\\\\f7b6\\\"}\\n.fa-music:before{content:\\\"\\\\f001\\\"}\\n.fa-napster:before{content:\\\"\\\\f3d2\\\"}\\n.fa-neos:before{content:\\\"\\\\f612\\\"}\\n.fa-network-wired:before{content:\\\"\\\\f6ff\\\"}\\n.fa-neuter:before{content:\\\"\\\\f22c\\\"}\\n.fa-newspaper:before{content:\\\"\\\\f1ea\\\"}\\n.fa-nimblr:before{content:\\\"\\\\f5a8\\\"}\\n.fa-node:before{content:\\\"\\\\f419\\\"}\\n.fa-node-js:before{content:\\\"\\\\f3d3\\\"}\\n.fa-not-equal:before{content:\\\"\\\\f53e\\\"}\\n.fa-notes-medical:before{content:\\\"\\\\f481\\\"}\\n.fa-npm:before{content:\\\"\\\\f3d4\\\"}\\n.fa-ns8:before{content:\\\"\\\\f3d5\\\"}\\n.fa-nutritionix:before{content:\\\"\\\\f3d6\\\"}\\n.fa-object-group:before{content:\\\"\\\\f247\\\"}\\n.fa-object-ungroup:before{content:\\\"\\\\f248\\\"}\\n.fa-octopus-deploy:before{content:\\\"\\\\e082\\\"}\\n.fa-odnoklassniki:before{content:\\\"\\\\f263\\\"}\\n.fa-odnoklassniki-square:before{content:\\\"\\\\f264\\\"}\\n.fa-oil-can:before{content:\\\"\\\\f613\\\"}\\n.fa-old-republic:before{content:\\\"\\\\f510\\\"}\\n.fa-om:before{content:\\\"\\\\f679\\\"}\\n.fa-opencart:before{content:\\\"\\\\f23d\\\"}\\n.fa-openid:before{content:\\\"\\\\f19b\\\"}\\n.fa-opera:before{content:\\\"\\\\f26a\\\"}\\n.fa-optin-monster:before{content:\\\"\\\\f23c\\\"}\\n.fa-orcid:before{content:\\\"\\\\f8d2\\\"}\\n.fa-osi:before{content:\\\"\\\\f41a\\\"}\\n.fa-otter:before{content:\\\"\\\\f700\\\"}\\n.fa-outdent:before{content:\\\"\\\\f03b\\\"}\\n.fa-page4:before{content:\\\"\\\\f3d7\\\"}\\n.fa-pagelines:before{content:\\\"\\\\f18c\\\"}\\n.fa-pager:before{content:\\\"\\\\f815\\\"}\\n.fa-paint-brush:before{content:\\\"\\\\f1fc\\\"}\\n.fa-paint-roller:before{content:\\\"\\\\f5aa\\\"}\\n.fa-palette:before{content:\\\"\\\\f53f\\\"}\\n.fa-palfed:before{content:\\\"\\\\f3d8\\\"}\\n.fa-pallet:before{content:\\\"\\\\f482\\\"}\\n.fa-paper-plane:before{content:\\\"\\\\f1d8\\\"}\\n.fa-paperclip:before{content:\\\"\\\\f0c6\\\"}\\n.fa-parachute-box:before{content:\\\"\\\\f4cd\\\"}\\n.fa-paragraph:before{content:\\\"\\\\f1dd\\\"}\\n.fa-parking:before{content:\\\"\\\\f540\\\"}\\n.fa-passport:before{content:\\\"\\\\f5ab\\\"}\\n.fa-pastafarianism:before{content:\\\"\\\\f67b\\\"}\\n.fa-paste:before{content:\\\"\\\\f0ea\\\"}\\n.fa-patreon:before{content:\\\"\\\\f3d9\\\"}\\n.fa-pause:before{content:\\\"\\\\f04c\\\"}\\n.fa-pause-circle:before{content:\\\"\\\\f28b\\\"}\\n.fa-paw:before{content:\\\"\\\\f1b0\\\"}\\n.fa-paypal:before{content:\\\"\\\\f1ed\\\"}\\n.fa-peace:before{content:\\\"\\\\f67c\\\"}\\n.fa-pen:before{content:\\\"\\\\f304\\\"}\\n.fa-pen-alt:before{content:\\\"\\\\f305\\\"}\\n.fa-pen-fancy:before{content:\\\"\\\\f5ac\\\"}\\n.fa-pen-nib:before{content:\\\"\\\\f5ad\\\"}\\n.fa-pen-square:before{content:\\\"\\\\f14b\\\"}\\n.fa-pencil-alt:before{content:\\\"\\\\f303\\\"}\\n.fa-pencil-ruler:before{content:\\\"\\\\f5ae\\\"}\\n.fa-penny-arcade:before{content:\\\"\\\\f704\\\"}\\n.fa-people-arrows:before{content:\\\"\\\\e068\\\"}\\n.fa-people-carry:before{content:\\\"\\\\f4ce\\\"}\\n.fa-pepper-hot:before{content:\\\"\\\\f816\\\"}\\n.fa-perbyte:before{content:\\\"\\\\e083\\\"}\\n.fa-percent:before{content:\\\"\\\\f295\\\"}\\n.fa-percentage:before{content:\\\"\\\\f541\\\"}\\n.fa-periscope:before{content:\\\"\\\\f3da\\\"}\\n.fa-person-booth:before{content:\\\"\\\\f756\\\"}\\n.fa-phabricator:before{content:\\\"\\\\f3db\\\"}\\n.fa-phoenix-framework:before{content:\\\"\\\\f3dc\\\"}\\n.fa-phoenix-squadron:before{content:\\\"\\\\f511\\\"}\\n.fa-phone:before{content:\\\"\\\\f095\\\"}\\n.fa-phone-alt:before{content:\\\"\\\\f879\\\"}\\n.fa-phone-slash:before{content:\\\"\\\\f3dd\\\"}\\n.fa-phone-square:before{content:\\\"\\\\f098\\\"}\\n.fa-phone-square-alt:before{content:\\\"\\\\f87b\\\"}\\n.fa-phone-volume:before{content:\\\"\\\\f2a0\\\"}\\n.fa-photo-video:before{content:\\\"\\\\f87c\\\"}\\n.fa-php:before{content:\\\"\\\\f457\\\"}\\n.fa-pied-piper:before{content:\\\"\\\\f2ae\\\"}\\n.fa-pied-piper-alt:before{content:\\\"\\\\f1a8\\\"}\\n.fa-pied-piper-hat:before{content:\\\"\\\\f4e5\\\"}\\n.fa-pied-piper-pp:before{content:\\\"\\\\f1a7\\\"}\\n.fa-pied-piper-square:before{content:\\\"\\\\e01e\\\"}\\n.fa-piggy-bank:before{content:\\\"\\\\f4d3\\\"}\\n.fa-pills:before{content:\\\"\\\\f484\\\"}\\n.fa-pinterest:before{content:\\\"\\\\f0d2\\\"}\\n.fa-pinterest-p:before{content:\\\"\\\\f231\\\"}\\n.fa-pinterest-square:before{content:\\\"\\\\f0d3\\\"}\\n.fa-pizza-slice:before{content:\\\"\\\\f818\\\"}\\n.fa-place-of-worship:before{content:\\\"\\\\f67f\\\"}\\n.fa-plane:before{content:\\\"\\\\f072\\\"}\\n.fa-plane-arrival:before{content:\\\"\\\\f5af\\\"}\\n.fa-plane-departure:before{content:\\\"\\\\f5b0\\\"}\\n.fa-plane-slash:before{content:\\\"\\\\e069\\\"}\\n.fa-play:before{content:\\\"\\\\f04b\\\"}\\n.fa-play-circle:before{content:\\\"\\\\f144\\\"}\\n.fa-playstation:before{content:\\\"\\\\f3df\\\"}\\n.fa-plug:before{content:\\\"\\\\f1e6\\\"}\\n.fa-plus:before{content:\\\"\\\\f067\\\"}\\n.fa-plus-circle:before{content:\\\"\\\\f055\\\"}\\n.fa-plus-square:before{content:\\\"\\\\f0fe\\\"}\\n.fa-podcast:before{content:\\\"\\\\f2ce\\\"}\\n.fa-poll:before{content:\\\"\\\\f681\\\"}\\n.fa-poll-h:before{content:\\\"\\\\f682\\\"}\\n.fa-poo:before{content:\\\"\\\\f2fe\\\"}\\n.fa-poo-storm:before{content:\\\"\\\\f75a\\\"}\\n.fa-poop:before{content:\\\"\\\\f619\\\"}\\n.fa-portrait:before{content:\\\"\\\\f3e0\\\"}\\n.fa-pound-sign:before{content:\\\"\\\\f154\\\"}\\n.fa-power-off:before{content:\\\"\\\\f011\\\"}\\n.fa-pray:before{content:\\\"\\\\f683\\\"}\\n.fa-praying-hands:before{content:\\\"\\\\f684\\\"}\\n.fa-prescription:before{content:\\\"\\\\f5b1\\\"}\\n.fa-prescription-bottle:before{content:\\\"\\\\f485\\\"}\\n.fa-prescription-bottle-alt:before{content:\\\"\\\\f486\\\"}\\n.fa-print:before{content:\\\"\\\\f02f\\\"}\\n.fa-procedures:before{content:\\\"\\\\f487\\\"}\\n.fa-product-hunt:before{content:\\\"\\\\f288\\\"}\\n.fa-project-diagram:before{content:\\\"\\\\f542\\\"}\\n.fa-pump-medical:before{content:\\\"\\\\e06a\\\"}\\n.fa-pump-soap:before{content:\\\"\\\\e06b\\\"}\\n.fa-pushed:before{content:\\\"\\\\f3e1\\\"}\\n.fa-puzzle-piece:before{content:\\\"\\\\f12e\\\"}\\n.fa-python:before{content:\\\"\\\\f3e2\\\"}\\n.fa-qq:before{content:\\\"\\\\f1d6\\\"}\\n.fa-qrcode:before{content:\\\"\\\\f029\\\"}\\n.fa-question:before{content:\\\"\\\\f128\\\"}\\n.fa-question-circle:before{content:\\\"\\\\f059\\\"}\\n.fa-quidditch:before{content:\\\"\\\\f458\\\"}\\n.fa-quinscape:before{content:\\\"\\\\f459\\\"}\\n.fa-quora:before{content:\\\"\\\\f2c4\\\"}\\n.fa-quote-left:before{content:\\\"\\\\f10d\\\"}\\n.fa-quote-right:before{content:\\\"\\\\f10e\\\"}\\n.fa-quran:before{content:\\\"\\\\f687\\\"}\\n.fa-r-project:before{content:\\\"\\\\f4f7\\\"}\\n.fa-radiation:before{content:\\\"\\\\f7b9\\\"}\\n.fa-radiation-alt:before{content:\\\"\\\\f7ba\\\"}\\n.fa-rainbow:before{content:\\\"\\\\f75b\\\"}\\n.fa-random:before{content:\\\"\\\\f074\\\"}\\n.fa-raspberry-pi:before{content:\\\"\\\\f7bb\\\"}\\n.fa-ravelry:before{content:\\\"\\\\f2d9\\\"}\\n.fa-react:before{content:\\\"\\\\f41b\\\"}\\n.fa-reacteurope:before{content:\\\"\\\\f75d\\\"}\\n.fa-readme:before{content:\\\"\\\\f4d5\\\"}\\n.fa-rebel:before{content:\\\"\\\\f1d0\\\"}\\n.fa-receipt:before{content:\\\"\\\\f543\\\"}\\n.fa-record-vinyl:before{content:\\\"\\\\f8d9\\\"}\\n.fa-recycle:before{content:\\\"\\\\f1b8\\\"}\\n.fa-red-river:before{content:\\\"\\\\f3e3\\\"}\\n.fa-reddit:before{content:\\\"\\\\f1a1\\\"}\\n.fa-reddit-alien:before{content:\\\"\\\\f281\\\"}\\n.fa-reddit-square:before{content:\\\"\\\\f1a2\\\"}\\n.fa-redhat:before{content:\\\"\\\\f7bc\\\"}\\n.fa-redo:before{content:\\\"\\\\f01e\\\"}\\n.fa-redo-alt:before{content:\\\"\\\\f2f9\\\"}\\n.fa-registered:before{content:\\\"\\\\f25d\\\"}\\n.fa-remove-format:before{content:\\\"\\\\f87d\\\"}\\n.fa-renren:before{content:\\\"\\\\f18b\\\"}\\n.fa-reply:before{content:\\\"\\\\f3e5\\\"}\\n.fa-reply-all:before{content:\\\"\\\\f122\\\"}\\n.fa-replyd:before{content:\\\"\\\\f3e6\\\"}\\n.fa-republican:before{content:\\\"\\\\f75e\\\"}\\n.fa-researchgate:before{content:\\\"\\\\f4f8\\\"}\\n.fa-resolving:before{content:\\\"\\\\f3e7\\\"}\\n.fa-restroom:before{content:\\\"\\\\f7bd\\\"}\\n.fa-retweet:before{content:\\\"\\\\f079\\\"}\\n.fa-rev:before{content:\\\"\\\\f5b2\\\"}\\n.fa-ribbon:before{content:\\\"\\\\f4d6\\\"}\\n.fa-ring:before{content:\\\"\\\\f70b\\\"}\\n.fa-road:before{content:\\\"\\\\f018\\\"}\\n.fa-robot:before{content:\\\"\\\\f544\\\"}\\n.fa-rocket:before{content:\\\"\\\\f135\\\"}\\n.fa-rocketchat:before{content:\\\"\\\\f3e8\\\"}\\n.fa-rockrms:before{content:\\\"\\\\f3e9\\\"}\\n.fa-route:before{content:\\\"\\\\f4d7\\\"}\\n.fa-rss:before{content:\\\"\\\\f09e\\\"}\\n.fa-rss-square:before{content:\\\"\\\\f143\\\"}\\n.fa-ruble-sign:before{content:\\\"\\\\f158\\\"}\\n.fa-ruler:before{content:\\\"\\\\f545\\\"}\\n.fa-ruler-combined:before{content:\\\"\\\\f546\\\"}\\n.fa-ruler-horizontal:before{content:\\\"\\\\f547\\\"}\\n.fa-ruler-vertical:before{content:\\\"\\\\f548\\\"}\\n.fa-running:before{content:\\\"\\\\f70c\\\"}\\n.fa-rupee-sign:before{content:\\\"\\\\f156\\\"}\\n.fa-rust:before{content:\\\"\\\\e07a\\\"}\\n.fa-sad-cry:before{content:\\\"\\\\f5b3\\\"}\\n.fa-sad-tear:before{content:\\\"\\\\f5b4\\\"}\\n.fa-safari:before{content:\\\"\\\\f267\\\"}\\n.fa-salesforce:before{content:\\\"\\\\f83b\\\"}\\n.fa-sass:before{content:\\\"\\\\f41e\\\"}\\n.fa-satellite:before{content:\\\"\\\\f7bf\\\"}\\n.fa-satellite-dish:before{content:\\\"\\\\f7c0\\\"}\\n.fa-save:before{content:\\\"\\\\f0c7\\\"}\\n.fa-schlix:before{content:\\\"\\\\f3ea\\\"}\\n.fa-school:before{content:\\\"\\\\f549\\\"}\\n.fa-screwdriver:before{content:\\\"\\\\f54a\\\"}\\n.fa-scribd:before{content:\\\"\\\\f28a\\\"}\\n.fa-scroll:before{content:\\\"\\\\f70e\\\"}\\n.fa-sd-card:before{content:\\\"\\\\f7c2\\\"}\\n.fa-search:before{content:\\\"\\\\f002\\\"}\\n.fa-search-dollar:before{content:\\\"\\\\f688\\\"}\\n.fa-search-location:before{content:\\\"\\\\f689\\\"}\\n.fa-search-minus:before{content:\\\"\\\\f010\\\"}\\n.fa-search-plus:before{content:\\\"\\\\f00e\\\"}\\n.fa-searchengin:before{content:\\\"\\\\f3eb\\\"}\\n.fa-seedling:before{content:\\\"\\\\f4d8\\\"}\\n.fa-sellcast:before{content:\\\"\\\\f2da\\\"}\\n.fa-sellsy:before{content:\\\"\\\\f213\\\"}\\n.fa-server:before{content:\\\"\\\\f233\\\"}\\n.fa-servicestack:before{content:\\\"\\\\f3ec\\\"}\\n.fa-shapes:before{content:\\\"\\\\f61f\\\"}\\n.fa-share:before{content:\\\"\\\\f064\\\"}\\n.fa-share-alt:before{content:\\\"\\\\f1e0\\\"}\\n.fa-share-alt-square:before{content:\\\"\\\\f1e1\\\"}\\n.fa-share-square:before{content:\\\"\\\\f14d\\\"}\\n.fa-shekel-sign:before{content:\\\"\\\\f20b\\\"}\\n.fa-shield-alt:before{content:\\\"\\\\f3ed\\\"}\\n.fa-shield-virus:before{content:\\\"\\\\e06c\\\"}\\n.fa-ship:before{content:\\\"\\\\f21a\\\"}\\n.fa-shipping-fast:before{content:\\\"\\\\f48b\\\"}\\n.fa-shirtsinbulk:before{content:\\\"\\\\f214\\\"}\\n.fa-shoe-prints:before{content:\\\"\\\\f54b\\\"}\\n.fa-shopify:before{content:\\\"\\\\e057\\\"}\\n.fa-shopping-bag:before{content:\\\"\\\\f290\\\"}\\n.fa-shopping-basket:before{content:\\\"\\\\f291\\\"}\\n.fa-shopping-cart:before{content:\\\"\\\\f07a\\\"}\\n.fa-shopware:before{content:\\\"\\\\f5b5\\\"}\\n.fa-shower:before{content:\\\"\\\\f2cc\\\"}\\n.fa-shuttle-van:before{content:\\\"\\\\f5b6\\\"}\\n.fa-sign:before{content:\\\"\\\\f4d9\\\"}\\n.fa-sign-in-alt:before{content:\\\"\\\\f2f6\\\"}\\n.fa-sign-language:before{content:\\\"\\\\f2a7\\\"}\\n.fa-sign-out-alt:before{content:\\\"\\\\f2f5\\\"}\\n.fa-signal:before{content:\\\"\\\\f012\\\"}\\n.fa-signature:before{content:\\\"\\\\f5b7\\\"}\\n.fa-sim-card:before{content:\\\"\\\\f7c4\\\"}\\n.fa-simplybuilt:before{content:\\\"\\\\f215\\\"}\\n.fa-sink:before{content:\\\"\\\\e06d\\\"}\\n.fa-sistrix:before{content:\\\"\\\\f3ee\\\"}\\n.fa-sitemap:before{content:\\\"\\\\f0e8\\\"}\\n.fa-sith:before{content:\\\"\\\\f512\\\"}\\n.fa-skating:before{content:\\\"\\\\f7c5\\\"}\\n.fa-sketch:before{content:\\\"\\\\f7c6\\\"}\\n.fa-skiing:before{content:\\\"\\\\f7c9\\\"}\\n.fa-skiing-nordic:before{content:\\\"\\\\f7ca\\\"}\\n.fa-skull:before{content:\\\"\\\\f54c\\\"}\\n.fa-skull-crossbones:before{content:\\\"\\\\f714\\\"}\\n.fa-skyatlas:before{content:\\\"\\\\f216\\\"}\\n.fa-skype:before{content:\\\"\\\\f17e\\\"}\\n.fa-slack:before{content:\\\"\\\\f198\\\"}\\n.fa-slack-hash:before{content:\\\"\\\\f3ef\\\"}\\n.fa-slash:before{content:\\\"\\\\f715\\\"}\\n.fa-sleigh:before{content:\\\"\\\\f7cc\\\"}\\n.fa-sliders-h:before{content:\\\"\\\\f1de\\\"}\\n.fa-slideshare:before{content:\\\"\\\\f1e7\\\"}\\n.fa-smile:before{content:\\\"\\\\f118\\\"}\\n.fa-smile-beam:before{content:\\\"\\\\f5b8\\\"}\\n.fa-smile-wink:before{content:\\\"\\\\f4da\\\"}\\n.fa-smog:before{content:\\\"\\\\f75f\\\"}\\n.fa-smoking:before{content:\\\"\\\\f48d\\\"}\\n.fa-smoking-ban:before{content:\\\"\\\\f54d\\\"}\\n.fa-sms:before{content:\\\"\\\\f7cd\\\"}\\n.fa-snapchat:before{content:\\\"\\\\f2ab\\\"}\\n.fa-snapchat-ghost:before{content:\\\"\\\\f2ac\\\"}\\n.fa-snapchat-square:before{content:\\\"\\\\f2ad\\\"}\\n.fa-snowboarding:before{content:\\\"\\\\f7ce\\\"}\\n.fa-snowflake:before{content:\\\"\\\\f2dc\\\"}\\n.fa-snowman:before{content:\\\"\\\\f7d0\\\"}\\n.fa-snowplow:before{content:\\\"\\\\f7d2\\\"}\\n.fa-soap:before{content:\\\"\\\\e06e\\\"}\\n.fa-socks:before{content:\\\"\\\\f696\\\"}\\n.fa-solar-panel:before{content:\\\"\\\\f5ba\\\"}\\n.fa-sort:before{content:\\\"\\\\f0dc\\\"}\\n.fa-sort-alpha-down:before{content:\\\"\\\\f15d\\\"}\\n.fa-sort-alpha-down-alt:before{content:\\\"\\\\f881\\\"}\\n.fa-sort-alpha-up:before{content:\\\"\\\\f15e\\\"}\\n.fa-sort-alpha-up-alt:before{content:\\\"\\\\f882\\\"}\\n.fa-sort-amount-down:before{content:\\\"\\\\f160\\\"}\\n.fa-sort-amount-down-alt:before{content:\\\"\\\\f884\\\"}\\n.fa-sort-amount-up:before{content:\\\"\\\\f161\\\"}\\n.fa-sort-amount-up-alt:before{content:\\\"\\\\f885\\\"}\\n.fa-sort-down:before{content:\\\"\\\\f0dd\\\"}\\n.fa-sort-numeric-down:before{content:\\\"\\\\f162\\\"}\\n.fa-sort-numeric-down-alt:before{content:\\\"\\\\f886\\\"}\\n.fa-sort-numeric-up:before{content:\\\"\\\\f163\\\"}\\n.fa-sort-numeric-up-alt:before{content:\\\"\\\\f887\\\"}\\n.fa-sort-up:before{content:\\\"\\\\f0de\\\"}\\n.fa-soundcloud:before{content:\\\"\\\\f1be\\\"}\\n.fa-sourcetree:before{content:\\\"\\\\f7d3\\\"}\\n.fa-spa:before{content:\\\"\\\\f5bb\\\"}\\n.fa-space-shuttle:before{content:\\\"\\\\f197\\\"}\\n.fa-speakap:before{content:\\\"\\\\f3f3\\\"}\\n.fa-speaker-deck:before{content:\\\"\\\\f83c\\\"}\\n.fa-spell-check:before{content:\\\"\\\\f891\\\"}\\n.fa-spider:before{content:\\\"\\\\f717\\\"}\\n.fa-spinner:before{content:\\\"\\\\f110\\\"}\\n.fa-splotch:before{content:\\\"\\\\f5bc\\\"}\\n.fa-spotify:before{content:\\\"\\\\f1bc\\\"}\\n.fa-spray-can:before{content:\\\"\\\\f5bd\\\"}\\n.fa-square:before{content:\\\"\\\\f0c8\\\"}\\n.fa-square-full:before{content:\\\"\\\\f45c\\\"}\\n.fa-square-root-alt:before{content:\\\"\\\\f698\\\"}\\n.fa-squarespace:before{content:\\\"\\\\f5be\\\"}\\n.fa-stack-exchange:before{content:\\\"\\\\f18d\\\"}\\n.fa-stack-overflow:before{content:\\\"\\\\f16c\\\"}\\n.fa-stackpath:before{content:\\\"\\\\f842\\\"}\\n.fa-stamp:before{content:\\\"\\\\f5bf\\\"}\\n.fa-star:before{content:\\\"\\\\f005\\\"}\\n.fa-star-and-crescent:before{content:\\\"\\\\f699\\\"}\\n.fa-star-half:before{content:\\\"\\\\f089\\\"}\\n.fa-star-half-alt:before{content:\\\"\\\\f5c0\\\"}\\n.fa-star-of-david:before{content:\\\"\\\\f69a\\\"}\\n.fa-star-of-life:before{content:\\\"\\\\f621\\\"}\\n.fa-staylinked:before{content:\\\"\\\\f3f5\\\"}\\n.fa-steam:before{content:\\\"\\\\f1b6\\\"}\\n.fa-steam-square:before{content:\\\"\\\\f1b7\\\"}\\n.fa-steam-symbol:before{content:\\\"\\\\f3f6\\\"}\\n.fa-step-backward:before{content:\\\"\\\\f048\\\"}\\n.fa-step-forward:before{content:\\\"\\\\f051\\\"}\\n.fa-stethoscope:before{content:\\\"\\\\f0f1\\\"}\\n.fa-sticker-mule:before{content:\\\"\\\\f3f7\\\"}\\n.fa-sticky-note:before{content:\\\"\\\\f249\\\"}\\n.fa-stop:before{content:\\\"\\\\f04d\\\"}\\n.fa-stop-circle:before{content:\\\"\\\\f28d\\\"}\\n.fa-stopwatch:before{content:\\\"\\\\f2f2\\\"}\\n.fa-stopwatch-20:before{content:\\\"\\\\e06f\\\"}\\n.fa-store:before{content:\\\"\\\\f54e\\\"}\\n.fa-store-alt:before{content:\\\"\\\\f54f\\\"}\\n.fa-store-alt-slash:before{content:\\\"\\\\e070\\\"}\\n.fa-store-slash:before{content:\\\"\\\\e071\\\"}\\n.fa-strava:before{content:\\\"\\\\f428\\\"}\\n.fa-stream:before{content:\\\"\\\\f550\\\"}\\n.fa-street-view:before{content:\\\"\\\\f21d\\\"}\\n.fa-strikethrough:before{content:\\\"\\\\f0cc\\\"}\\n.fa-stripe:before{content:\\\"\\\\f429\\\"}\\n.fa-stripe-s:before{content:\\\"\\\\f42a\\\"}\\n.fa-stroopwafel:before{content:\\\"\\\\f551\\\"}\\n.fa-studiovinari:before{content:\\\"\\\\f3f8\\\"}\\n.fa-stumbleupon:before{content:\\\"\\\\f1a4\\\"}\\n.fa-stumbleupon-circle:before{content:\\\"\\\\f1a3\\\"}\\n.fa-subscript:before{content:\\\"\\\\f12c\\\"}\\n.fa-subway:before{content:\\\"\\\\f239\\\"}\\n.fa-suitcase:before{content:\\\"\\\\f0f2\\\"}\\n.fa-suitcase-rolling:before{content:\\\"\\\\f5c1\\\"}\\n.fa-sun:before{content:\\\"\\\\f185\\\"}\\n.fa-superpowers:before{content:\\\"\\\\f2dd\\\"}\\n.fa-superscript:before{content:\\\"\\\\f12b\\\"}\\n.fa-supple:before{content:\\\"\\\\f3f9\\\"}\\n.fa-surprise:before{content:\\\"\\\\f5c2\\\"}\\n.fa-suse:before{content:\\\"\\\\f7d6\\\"}\\n.fa-swatchbook:before{content:\\\"\\\\f5c3\\\"}\\n.fa-swift:before{content:\\\"\\\\f8e1\\\"}\\n.fa-swimmer:before{content:\\\"\\\\f5c4\\\"}\\n.fa-swimming-pool:before{content:\\\"\\\\f5c5\\\"}\\n.fa-symfony:before{content:\\\"\\\\f83d\\\"}\\n.fa-synagogue:before{content:\\\"\\\\f69b\\\"}\\n.fa-sync:before{content:\\\"\\\\f021\\\"}\\n.fa-sync-alt:before{content:\\\"\\\\f2f1\\\"}\\n.fa-syringe:before{content:\\\"\\\\f48e\\\"}\\n.fa-table:before{content:\\\"\\\\f0ce\\\"}\\n.fa-table-tennis:before{content:\\\"\\\\f45d\\\"}\\n.fa-tablet:before{content:\\\"\\\\f10a\\\"}\\n.fa-tablet-alt:before{content:\\\"\\\\f3fa\\\"}\\n.fa-tablets:before{content:\\\"\\\\f490\\\"}\\n.fa-tachometer-alt:before{content:\\\"\\\\f3fd\\\"}\\n.fa-tag:before{content:\\\"\\\\f02b\\\"}\\n.fa-tags:before{content:\\\"\\\\f02c\\\"}\\n.fa-tape:before{content:\\\"\\\\f4db\\\"}\\n.fa-tasks:before{content:\\\"\\\\f0ae\\\"}\\n.fa-taxi:before{content:\\\"\\\\f1ba\\\"}\\n.fa-teamspeak:before{content:\\\"\\\\f4f9\\\"}\\n.fa-teeth:before{content:\\\"\\\\f62e\\\"}\\n.fa-teeth-open:before{content:\\\"\\\\f62f\\\"}\\n.fa-telegram:before{content:\\\"\\\\f2c6\\\"}\\n.fa-telegram-plane:before{content:\\\"\\\\f3fe\\\"}\\n.fa-temperature-high:before{content:\\\"\\\\f769\\\"}\\n.fa-temperature-low:before{content:\\\"\\\\f76b\\\"}\\n.fa-tencent-weibo:before{content:\\\"\\\\f1d5\\\"}\\n.fa-tenge:before{content:\\\"\\\\f7d7\\\"}\\n.fa-terminal:before{content:\\\"\\\\f120\\\"}\\n.fa-text-height:before{content:\\\"\\\\f034\\\"}\\n.fa-text-width:before{content:\\\"\\\\f035\\\"}\\n.fa-th:before{content:\\\"\\\\f00a\\\"}\\n.fa-th-large:before{content:\\\"\\\\f009\\\"}\\n.fa-th-list:before{content:\\\"\\\\f00b\\\"}\\n.fa-the-red-yeti:before{content:\\\"\\\\f69d\\\"}\\n.fa-theater-masks:before{content:\\\"\\\\f630\\\"}\\n.fa-themeco:before{content:\\\"\\\\f5c6\\\"}\\n.fa-themeisle:before{content:\\\"\\\\f2b2\\\"}\\n.fa-thermometer:before{content:\\\"\\\\f491\\\"}\\n.fa-thermometer-empty:before{content:\\\"\\\\f2cb\\\"}\\n.fa-thermometer-full:before{content:\\\"\\\\f2c7\\\"}\\n.fa-thermometer-half:before{content:\\\"\\\\f2c9\\\"}\\n.fa-thermometer-quarter:before{content:\\\"\\\\f2ca\\\"}\\n.fa-thermometer-three-quarters:before{content:\\\"\\\\f2c8\\\"}\\n.fa-think-peaks:before{content:\\\"\\\\f731\\\"}\\n.fa-thumbs-down:before{content:\\\"\\\\f165\\\"}\\n.fa-thumbs-up:before{content:\\\"\\\\f164\\\"}\\n.fa-thumbtack:before{content:\\\"\\\\f08d\\\"}\\n.fa-ticket-alt:before{content:\\\"\\\\f3ff\\\"}\\n.fa-tiktok:before{content:\\\"\\\\e07b\\\"}\\n.fa-times:before{content:\\\"\\\\f00d\\\"}\\n.fa-times-circle:before{content:\\\"\\\\f057\\\"}\\n.fa-tint:before{content:\\\"\\\\f043\\\"}\\n.fa-tint-slash:before{content:\\\"\\\\f5c7\\\"}\\n.fa-tired:before{content:\\\"\\\\f5c8\\\"}\\n.fa-toggle-off:before{content:\\\"\\\\f204\\\"}\\n.fa-toggle-on:before{content:\\\"\\\\f205\\\"}\\n.fa-toilet:before{content:\\\"\\\\f7d8\\\"}\\n.fa-toilet-paper:before{content:\\\"\\\\f71e\\\"}\\n.fa-toilet-paper-slash:before{content:\\\"\\\\e072\\\"}\\n.fa-toolbox:before{content:\\\"\\\\f552\\\"}\\n.fa-tools:before{content:\\\"\\\\f7d9\\\"}\\n.fa-tooth:before{content:\\\"\\\\f5c9\\\"}\\n.fa-torah:before{content:\\\"\\\\f6a0\\\"}\\n.fa-torii-gate:before{content:\\\"\\\\f6a1\\\"}\\n.fa-tractor:before{content:\\\"\\\\f722\\\"}\\n.fa-trade-federation:before{content:\\\"\\\\f513\\\"}\\n.fa-trademark:before{content:\\\"\\\\f25c\\\"}\\n.fa-traffic-light:before{content:\\\"\\\\f637\\\"}\\n.fa-trailer:before{content:\\\"\\\\e041\\\"}\\n.fa-train:before{content:\\\"\\\\f238\\\"}\\n.fa-tram:before{content:\\\"\\\\f7da\\\"}\\n.fa-transgender:before{content:\\\"\\\\f224\\\"}\\n.fa-transgender-alt:before{content:\\\"\\\\f225\\\"}\\n.fa-trash:before{content:\\\"\\\\f1f8\\\"}\\n.fa-trash-alt:before{content:\\\"\\\\f2ed\\\"}\\n.fa-trash-restore:before{content:\\\"\\\\f829\\\"}\\n.fa-trash-restore-alt:before{content:\\\"\\\\f82a\\\"}\\n.fa-tree:before{content:\\\"\\\\f1bb\\\"}\\n.fa-trello:before{content:\\\"\\\\f181\\\"}\\n.fa-trophy:before{content:\\\"\\\\f091\\\"}\\n.fa-truck:before{content:\\\"\\\\f0d1\\\"}\\n.fa-truck-loading:before{content:\\\"\\\\f4de\\\"}\\n.fa-truck-monster:before{content:\\\"\\\\f63b\\\"}\\n.fa-truck-moving:before{content:\\\"\\\\f4df\\\"}\\n.fa-truck-pickup:before{content:\\\"\\\\f63c\\\"}\\n.fa-tshirt:before{content:\\\"\\\\f553\\\"}\\n.fa-tty:before{content:\\\"\\\\f1e4\\\"}\\n.fa-tumblr:before{content:\\\"\\\\f173\\\"}\\n.fa-tumblr-square:before{content:\\\"\\\\f174\\\"}\\n.fa-tv:before{content:\\\"\\\\f26c\\\"}\\n.fa-twitch:before{content:\\\"\\\\f1e8\\\"}\\n.fa-twitter:before{content:\\\"\\\\f099\\\"}\\n.fa-twitter-square:before{content:\\\"\\\\f081\\\"}\\n.fa-typo3:before{content:\\\"\\\\f42b\\\"}\\n.fa-uber:before{content:\\\"\\\\f402\\\"}\\n.fa-ubuntu:before{content:\\\"\\\\f7df\\\"}\\n.fa-uikit:before{content:\\\"\\\\f403\\\"}\\n.fa-umbraco:before{content:\\\"\\\\f8e8\\\"}\\n.fa-umbrella:before{content:\\\"\\\\f0e9\\\"}\\n.fa-umbrella-beach:before{content:\\\"\\\\f5ca\\\"}\\n.fa-uncharted:before{content:\\\"\\\\e084\\\"}\\n.fa-underline:before{content:\\\"\\\\f0cd\\\"}\\n.fa-undo:before{content:\\\"\\\\f0e2\\\"}\\n.fa-undo-alt:before{content:\\\"\\\\f2ea\\\"}\\n.fa-uniregistry:before{content:\\\"\\\\f404\\\"}\\n.fa-unity:before{content:\\\"\\\\e049\\\"}\\n.fa-universal-access:before{content:\\\"\\\\f29a\\\"}\\n.fa-university:before{content:\\\"\\\\f19c\\\"}\\n.fa-unlink:before{content:\\\"\\\\f127\\\"}\\n.fa-unlock:before{content:\\\"\\\\f09c\\\"}\\n.fa-unlock-alt:before{content:\\\"\\\\f13e\\\"}\\n.fa-unsplash:before{content:\\\"\\\\e07c\\\"}\\n.fa-untappd:before{content:\\\"\\\\f405\\\"}\\n.fa-upload:before{content:\\\"\\\\f093\\\"}\\n.fa-ups:before{content:\\\"\\\\f7e0\\\"}\\n.fa-usb:before{content:\\\"\\\\f287\\\"}\\n.fa-user:before{content:\\\"\\\\f007\\\"}\\n.fa-user-alt:before{content:\\\"\\\\f406\\\"}\\n.fa-user-alt-slash:before{content:\\\"\\\\f4fa\\\"}\\n.fa-user-astronaut:before{content:\\\"\\\\f4fb\\\"}\\n.fa-user-check:before{content:\\\"\\\\f4fc\\\"}\\n.fa-user-circle:before{content:\\\"\\\\f2bd\\\"}\\n.fa-user-clock:before{content:\\\"\\\\f4fd\\\"}\\n.fa-user-cog:before{content:\\\"\\\\f4fe\\\"}\\n.fa-user-edit:before{content:\\\"\\\\f4ff\\\"}\\n.fa-user-friends:before{content:\\\"\\\\f500\\\"}\\n.fa-user-graduate:before{content:\\\"\\\\f501\\\"}\\n.fa-user-injured:before{content:\\\"\\\\f728\\\"}\\n.fa-user-lock:before{content:\\\"\\\\f502\\\"}\\n.fa-user-md:before{content:\\\"\\\\f0f0\\\"}\\n.fa-user-minus:before{content:\\\"\\\\f503\\\"}\\n.fa-user-ninja:before{content:\\\"\\\\f504\\\"}\\n.fa-user-nurse:before{content:\\\"\\\\f82f\\\"}\\n.fa-user-plus:before{content:\\\"\\\\f234\\\"}\\n.fa-user-secret:before{content:\\\"\\\\f21b\\\"}\\n.fa-user-shield:before{content:\\\"\\\\f505\\\"}\\n.fa-user-slash:before{content:\\\"\\\\f506\\\"}\\n.fa-user-tag:before{content:\\\"\\\\f507\\\"}\\n.fa-user-tie:before{content:\\\"\\\\f508\\\"}\\n.fa-user-times:before{content:\\\"\\\\f235\\\"}\\n.fa-users:before{content:\\\"\\\\f0c0\\\"}\\n.fa-users-cog:before{content:\\\"\\\\f509\\\"}\\n.fa-users-slash:before{content:\\\"\\\\e073\\\"}\\n.fa-usps:before{content:\\\"\\\\f7e1\\\"}\\n.fa-ussunnah:before{content:\\\"\\\\f407\\\"}\\n.fa-utensil-spoon:before{content:\\\"\\\\f2e5\\\"}\\n.fa-utensils:before{content:\\\"\\\\f2e7\\\"}\\n.fa-vaadin:before{content:\\\"\\\\f408\\\"}\\n.fa-vector-square:before{content:\\\"\\\\f5cb\\\"}\\n.fa-venus:before{content:\\\"\\\\f221\\\"}\\n.fa-venus-double:before{content:\\\"\\\\f226\\\"}\\n.fa-venus-mars:before{content:\\\"\\\\f228\\\"}\\n.fa-vest:before{content:\\\"\\\\e085\\\"}\\n.fa-vest-patches:before{content:\\\"\\\\e086\\\"}\\n.fa-viacoin:before{content:\\\"\\\\f237\\\"}\\n.fa-viadeo:before{content:\\\"\\\\f2a9\\\"}\\n.fa-viadeo-square:before{content:\\\"\\\\f2aa\\\"}\\n.fa-vial:before{content:\\\"\\\\f492\\\"}\\n.fa-vials:before{content:\\\"\\\\f493\\\"}\\n.fa-viber:before{content:\\\"\\\\f409\\\"}\\n.fa-video:before{content:\\\"\\\\f03d\\\"}\\n.fa-video-slash:before{content:\\\"\\\\f4e2\\\"}\\n.fa-vihara:before{content:\\\"\\\\f6a7\\\"}\\n.fa-vimeo:before{content:\\\"\\\\f40a\\\"}\\n.fa-vimeo-square:before{content:\\\"\\\\f194\\\"}\\n.fa-vimeo-v:before{content:\\\"\\\\f27d\\\"}\\n.fa-vine:before{content:\\\"\\\\f1ca\\\"}\\n.fa-virus:before{content:\\\"\\\\e074\\\"}\\n.fa-virus-slash:before{content:\\\"\\\\e075\\\"}\\n.fa-viruses:before{content:\\\"\\\\e076\\\"}\\n.fa-vk:before{content:\\\"\\\\f189\\\"}\\n.fa-vnv:before{content:\\\"\\\\f40b\\\"}\\n.fa-voicemail:before{content:\\\"\\\\f897\\\"}\\n.fa-volleyball-ball:before{content:\\\"\\\\f45f\\\"}\\n.fa-volume-down:before{content:\\\"\\\\f027\\\"}\\n.fa-volume-mute:before{content:\\\"\\\\f6a9\\\"}\\n.fa-volume-off:before{content:\\\"\\\\f026\\\"}\\n.fa-volume-up:before{content:\\\"\\\\f028\\\"}\\n.fa-vote-yea:before{content:\\\"\\\\f772\\\"}\\n.fa-vr-cardboard:before{content:\\\"\\\\f729\\\"}\\n.fa-vuejs:before{content:\\\"\\\\f41f\\\"}\\n.fa-walking:before{content:\\\"\\\\f554\\\"}\\n.fa-wallet:before{content:\\\"\\\\f555\\\"}\\n.fa-warehouse:before{content:\\\"\\\\f494\\\"}\\n.fa-watchman-monitoring:before{content:\\\"\\\\e087\\\"}\\n.fa-water:before{content:\\\"\\\\f773\\\"}\\n.fa-wave-square:before{content:\\\"\\\\f83e\\\"}\\n.fa-waze:before{content:\\\"\\\\f83f\\\"}\\n.fa-weebly:before{content:\\\"\\\\f5cc\\\"}\\n.fa-weibo:before{content:\\\"\\\\f18a\\\"}\\n.fa-weight:before{content:\\\"\\\\f496\\\"}\\n.fa-weight-hanging:before{content:\\\"\\\\f5cd\\\"}\\n.fa-weixin:before{content:\\\"\\\\f1d7\\\"}\\n.fa-whatsapp:before{content:\\\"\\\\f232\\\"}\\n.fa-whatsapp-square:before{content:\\\"\\\\f40c\\\"}\\n.fa-wheelchair:before{content:\\\"\\\\f193\\\"}\\n.fa-whmcs:before{content:\\\"\\\\f40d\\\"}\\n.fa-wifi:before{content:\\\"\\\\f1eb\\\"}\\n.fa-wikipedia-w:before{content:\\\"\\\\f266\\\"}\\n.fa-wind:before{content:\\\"\\\\f72e\\\"}\\n.fa-window-close:before{content:\\\"\\\\f410\\\"}\\n.fa-window-maximize:before{content:\\\"\\\\f2d0\\\"}\\n.fa-window-minimize:before{content:\\\"\\\\f2d1\\\"}\\n.fa-window-restore:before{content:\\\"\\\\f2d2\\\"}\\n.fa-windows:before{content:\\\"\\\\f17a\\\"}\\n.fa-wine-bottle:before{content:\\\"\\\\f72f\\\"}\\n.fa-wine-glass:before{content:\\\"\\\\f4e3\\\"}\\n.fa-wine-glass-alt:before{content:\\\"\\\\f5ce\\\"}\\n.fa-wix:before{content:\\\"\\\\f5cf\\\"}\\n.fa-wizards-of-the-coast:before{content:\\\"\\\\f730\\\"}\\n.fa-wodu:before{content:\\\"\\\\e088\\\"}\\n.fa-wolf-pack-battalion:before{content:\\\"\\\\f514\\\"}\\n.fa-won-sign:before{content:\\\"\\\\f159\\\"}\\n.fa-wordpress:before{content:\\\"\\\\f19a\\\"}\\n.fa-wordpress-simple:before{content:\\\"\\\\f411\\\"}\\n.fa-wpbeginner:before{content:\\\"\\\\f297\\\"}\\n.fa-wpexplorer:before{content:\\\"\\\\f2de\\\"}\\n.fa-wpforms:before{content:\\\"\\\\f298\\\"}\\n.fa-wpressr:before{content:\\\"\\\\f3e4\\\"}\\n.fa-wrench:before{content:\\\"\\\\f0ad\\\"}\\n.fa-x-ray:before{content:\\\"\\\\f497\\\"}\\n.fa-xbox:before{content:\\\"\\\\f412\\\"}\\n.fa-xing:before{content:\\\"\\\\f168\\\"}\\n.fa-xing-square:before{content:\\\"\\\\f169\\\"}\\n.fa-y-combinator:before{content:\\\"\\\\f23b\\\"}\\n.fa-yahoo:before{content:\\\"\\\\f19e\\\"}\\n.fa-yammer:before{content:\\\"\\\\f840\\\"}\\n.fa-yandex:before{content:\\\"\\\\f413\\\"}\\n.fa-yandex-international:before{content:\\\"\\\\f414\\\"}\\n.fa-yarn:before{content:\\\"\\\\f7e3\\\"}\\n.fa-yelp:before{content:\\\"\\\\f1e9\\\"}\\n.fa-yen-sign:before{content:\\\"\\\\f157\\\"}\\n.fa-yin-yang:before{content:\\\"\\\\f6ad\\\"}\\n.fa-yoast:before{content:\\\"\\\\f2b1\\\"}\\n.fa-youtube:before{content:\\\"\\\\f167\\\"}\\n.fa-youtube-square:before{content:\\\"\\\\f431\\\"}\\n.fa-zhihu:before{content:\\\"\\\\f63f\\\"}\\n.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}\\n.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}\\n@font-face{font-family:\\\"Font Awesome 5 Brands\\\";font-style:normal;font-weight:400;font-display:block;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format(\\\"woff2\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") format(\\\"truetype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") format(\\\"svg\\\")}\\n.fab{font-family:\\\"Font Awesome 5 Brands\\\"}\\n@font-face{font-family:\\\"Font Awesome 5 Free\\\";font-style:normal;font-weight:400;font-display:block;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \") format(\\\"woff2\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \") format(\\\"truetype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \") format(\\\"svg\\\")}\\n.fab,.far{font-weight:400}\\n@font-face{font-family:\\\"Font Awesome 5 Free\\\";font-style:normal;font-weight:900;font-display:block;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \") format(\\\"woff2\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \") format(\\\"truetype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \") format(\\\"svg\\\")}\\n.fa,.far,.fas{font-family:\\\"Font Awesome 5 Free\\\"}\\n.fa,.fas{font-weight:900}\", \"\",{\"version\":3,\"sources\":[\"all.min.css\"],\"names\":[],\"mappings\":\"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\",\"file\":\"all.min.css\",\"sourcesContent\":[\"/*!\\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\\n */\\n.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:\\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:\\\"\\\\f26e\\\"}.fa-accessible-icon:before{content:\\\"\\\\f368\\\"}.fa-accusoft:before{content:\\\"\\\\f369\\\"}.fa-acquisitions-incorporated:before{content:\\\"\\\\f6af\\\"}.fa-ad:before{content:\\\"\\\\f641\\\"}.fa-address-book:before{content:\\\"\\\\f2b9\\\"}.fa-address-card:before{content:\\\"\\\\f2bb\\\"}.fa-adjust:before{content:\\\"\\\\f042\\\"}.fa-adn:before{content:\\\"\\\\f170\\\"}.fa-adversal:before{content:\\\"\\\\f36a\\\"}.fa-affiliatetheme:before{content:\\\"\\\\f36b\\\"}.fa-air-freshener:before{content:\\\"\\\\f5d0\\\"}.fa-airbnb:before{content:\\\"\\\\f834\\\"}.fa-algolia:before{content:\\\"\\\\f36c\\\"}.fa-align-center:before{content:\\\"\\\\f037\\\"}.fa-align-justify:before{content:\\\"\\\\f039\\\"}.fa-align-left:before{content:\\\"\\\\f036\\\"}.fa-align-right:before{content:\\\"\\\\f038\\\"}.fa-alipay:before{content:\\\"\\\\f642\\\"}.fa-allergies:before{content:\\\"\\\\f461\\\"}.fa-amazon:before{content:\\\"\\\\f270\\\"}.fa-amazon-pay:before{content:\\\"\\\\f42c\\\"}.fa-ambulance:before{content:\\\"\\\\f0f9\\\"}.fa-american-sign-language-interpreting:before{content:\\\"\\\\f2a3\\\"}.fa-amilia:before{content:\\\"\\\\f36d\\\"}.fa-anchor:before{content:\\\"\\\\f13d\\\"}.fa-android:before{content:\\\"\\\\f17b\\\"}.fa-angellist:before{content:\\\"\\\\f209\\\"}.fa-angle-double-down:before{content:\\\"\\\\f103\\\"}.fa-angle-double-left:before{content:\\\"\\\\f100\\\"}.fa-angle-double-right:before{content:\\\"\\\\f101\\\"}.fa-angle-double-up:before{content:\\\"\\\\f102\\\"}.fa-angle-down:before{content:\\\"\\\\f107\\\"}.fa-angle-left:before{content:\\\"\\\\f104\\\"}.fa-angle-right:before{content:\\\"\\\\f105\\\"}.fa-angle-up:before{content:\\\"\\\\f106\\\"}.fa-angry:before{content:\\\"\\\\f556\\\"}.fa-angrycreative:before{content:\\\"\\\\f36e\\\"}.fa-angular:before{content:\\\"\\\\f420\\\"}.fa-ankh:before{content:\\\"\\\\f644\\\"}.fa-app-store:before{content:\\\"\\\\f36f\\\"}.fa-app-store-ios:before{content:\\\"\\\\f370\\\"}.fa-apper:before{content:\\\"\\\\f371\\\"}.fa-apple:before{content:\\\"\\\\f179\\\"}.fa-apple-alt:before{content:\\\"\\\\f5d1\\\"}.fa-apple-pay:before{content:\\\"\\\\f415\\\"}.fa-archive:before{content:\\\"\\\\f187\\\"}.fa-archway:before{content:\\\"\\\\f557\\\"}.fa-arrow-alt-circle-down:before{content:\\\"\\\\f358\\\"}.fa-arrow-alt-circle-left:before{content:\\\"\\\\f359\\\"}.fa-arrow-alt-circle-right:before{content:\\\"\\\\f35a\\\"}.fa-arrow-alt-circle-up:before{content:\\\"\\\\f35b\\\"}.fa-arrow-circle-down:before{content:\\\"\\\\f0ab\\\"}.fa-arrow-circle-left:before{content:\\\"\\\\f0a8\\\"}.fa-arrow-circle-right:before{content:\\\"\\\\f0a9\\\"}.fa-arrow-circle-up:before{content:\\\"\\\\f0aa\\\"}.fa-arrow-down:before{content:\\\"\\\\f063\\\"}.fa-arrow-left:before{content:\\\"\\\\f060\\\"}.fa-arrow-right:before{content:\\\"\\\\f061\\\"}.fa-arrow-up:before{content:\\\"\\\\f062\\\"}.fa-arrows-alt:before{content:\\\"\\\\f0b2\\\"}.fa-arrows-alt-h:before{content:\\\"\\\\f337\\\"}.fa-arrows-alt-v:before{content:\\\"\\\\f338\\\"}.fa-artstation:before{content:\\\"\\\\f77a\\\"}.fa-assistive-listening-systems:before{content:\\\"\\\\f2a2\\\"}.fa-asterisk:before{content:\\\"\\\\f069\\\"}.fa-asymmetrik:before{content:\\\"\\\\f372\\\"}.fa-at:before{content:\\\"\\\\f1fa\\\"}.fa-atlas:before{content:\\\"\\\\f558\\\"}.fa-atlassian:before{content:\\\"\\\\f77b\\\"}.fa-atom:before{content:\\\"\\\\f5d2\\\"}.fa-audible:before{content:\\\"\\\\f373\\\"}.fa-audio-description:before{content:\\\"\\\\f29e\\\"}.fa-autoprefixer:before{content:\\\"\\\\f41c\\\"}.fa-avianex:before{content:\\\"\\\\f374\\\"}.fa-aviato:before{content:\\\"\\\\f421\\\"}.fa-award:before{content:\\\"\\\\f559\\\"}.fa-aws:before{content:\\\"\\\\f375\\\"}.fa-baby:before{content:\\\"\\\\f77c\\\"}.fa-baby-carriage:before{content:\\\"\\\\f77d\\\"}.fa-backspace:before{content:\\\"\\\\f55a\\\"}.fa-backward:before{content:\\\"\\\\f04a\\\"}.fa-bacon:before{content:\\\"\\\\f7e5\\\"}.fa-bacteria:before{content:\\\"\\\\e059\\\"}.fa-bacterium:before{content:\\\"\\\\e05a\\\"}.fa-bahai:before{content:\\\"\\\\f666\\\"}.fa-balance-scale:before{content:\\\"\\\\f24e\\\"}.fa-balance-scale-left:before{content:\\\"\\\\f515\\\"}.fa-balance-scale-right:before{content:\\\"\\\\f516\\\"}.fa-ban:before{content:\\\"\\\\f05e\\\"}.fa-band-aid:before{content:\\\"\\\\f462\\\"}.fa-bandcamp:before{content:\\\"\\\\f2d5\\\"}.fa-barcode:before{content:\\\"\\\\f02a\\\"}.fa-bars:before{content:\\\"\\\\f0c9\\\"}.fa-baseball-ball:before{content:\\\"\\\\f433\\\"}.fa-basketball-ball:before{content:\\\"\\\\f434\\\"}.fa-bath:before{content:\\\"\\\\f2cd\\\"}.fa-battery-empty:before{content:\\\"\\\\f244\\\"}.fa-battery-full:before{content:\\\"\\\\f240\\\"}.fa-battery-half:before{content:\\\"\\\\f242\\\"}.fa-battery-quarter:before{content:\\\"\\\\f243\\\"}.fa-battery-three-quarters:before{content:\\\"\\\\f241\\\"}.fa-battle-net:before{content:\\\"\\\\f835\\\"}.fa-bed:before{content:\\\"\\\\f236\\\"}.fa-beer:before{content:\\\"\\\\f0fc\\\"}.fa-behance:before{content:\\\"\\\\f1b4\\\"}.fa-behance-square:before{content:\\\"\\\\f1b5\\\"}.fa-bell:before{content:\\\"\\\\f0f3\\\"}.fa-bell-slash:before{content:\\\"\\\\f1f6\\\"}.fa-bezier-curve:before{content:\\\"\\\\f55b\\\"}.fa-bible:before{content:\\\"\\\\f647\\\"}.fa-bicycle:before{content:\\\"\\\\f206\\\"}.fa-biking:before{content:\\\"\\\\f84a\\\"}.fa-bimobject:before{content:\\\"\\\\f378\\\"}.fa-binoculars:before{content:\\\"\\\\f1e5\\\"}.fa-biohazard:before{content:\\\"\\\\f780\\\"}.fa-birthday-cake:before{content:\\\"\\\\f1fd\\\"}.fa-bitbucket:before{content:\\\"\\\\f171\\\"}.fa-bitcoin:before{content:\\\"\\\\f379\\\"}.fa-bity:before{content:\\\"\\\\f37a\\\"}.fa-black-tie:before{content:\\\"\\\\f27e\\\"}.fa-blackberry:before{content:\\\"\\\\f37b\\\"}.fa-blender:before{content:\\\"\\\\f517\\\"}.fa-blender-phone:before{content:\\\"\\\\f6b6\\\"}.fa-blind:before{content:\\\"\\\\f29d\\\"}.fa-blog:before{content:\\\"\\\\f781\\\"}.fa-blogger:before{content:\\\"\\\\f37c\\\"}.fa-blogger-b:before{content:\\\"\\\\f37d\\\"}.fa-bluetooth:before{content:\\\"\\\\f293\\\"}.fa-bluetooth-b:before{content:\\\"\\\\f294\\\"}.fa-bold:before{content:\\\"\\\\f032\\\"}.fa-bolt:before{content:\\\"\\\\f0e7\\\"}.fa-bomb:before{content:\\\"\\\\f1e2\\\"}.fa-bone:before{content:\\\"\\\\f5d7\\\"}.fa-bong:before{content:\\\"\\\\f55c\\\"}.fa-book:before{content:\\\"\\\\f02d\\\"}.fa-book-dead:before{content:\\\"\\\\f6b7\\\"}.fa-book-medical:before{content:\\\"\\\\f7e6\\\"}.fa-book-open:before{content:\\\"\\\\f518\\\"}.fa-book-reader:before{content:\\\"\\\\f5da\\\"}.fa-bookmark:before{content:\\\"\\\\f02e\\\"}.fa-bootstrap:before{content:\\\"\\\\f836\\\"}.fa-border-all:before{content:\\\"\\\\f84c\\\"}.fa-border-none:before{content:\\\"\\\\f850\\\"}.fa-border-style:before{content:\\\"\\\\f853\\\"}.fa-bowling-ball:before{content:\\\"\\\\f436\\\"}.fa-box:before{content:\\\"\\\\f466\\\"}.fa-box-open:before{content:\\\"\\\\f49e\\\"}.fa-box-tissue:before{content:\\\"\\\\e05b\\\"}.fa-boxes:before{content:\\\"\\\\f468\\\"}.fa-braille:before{content:\\\"\\\\f2a1\\\"}.fa-brain:before{content:\\\"\\\\f5dc\\\"}.fa-bread-slice:before{content:\\\"\\\\f7ec\\\"}.fa-briefcase:before{content:\\\"\\\\f0b1\\\"}.fa-briefcase-medical:before{content:\\\"\\\\f469\\\"}.fa-broadcast-tower:before{content:\\\"\\\\f519\\\"}.fa-broom:before{content:\\\"\\\\f51a\\\"}.fa-brush:before{content:\\\"\\\\f55d\\\"}.fa-btc:before{content:\\\"\\\\f15a\\\"}.fa-buffer:before{content:\\\"\\\\f837\\\"}.fa-bug:before{content:\\\"\\\\f188\\\"}.fa-building:before{content:\\\"\\\\f1ad\\\"}.fa-bullhorn:before{content:\\\"\\\\f0a1\\\"}.fa-bullseye:before{content:\\\"\\\\f140\\\"}.fa-burn:before{content:\\\"\\\\f46a\\\"}.fa-buromobelexperte:before{content:\\\"\\\\f37f\\\"}.fa-bus:before{content:\\\"\\\\f207\\\"}.fa-bus-alt:before{content:\\\"\\\\f55e\\\"}.fa-business-time:before{content:\\\"\\\\f64a\\\"}.fa-buy-n-large:before{content:\\\"\\\\f8a6\\\"}.fa-buysellads:before{content:\\\"\\\\f20d\\\"}.fa-calculator:before{content:\\\"\\\\f1ec\\\"}.fa-calendar:before{content:\\\"\\\\f133\\\"}.fa-calendar-alt:before{content:\\\"\\\\f073\\\"}.fa-calendar-check:before{content:\\\"\\\\f274\\\"}.fa-calendar-day:before{content:\\\"\\\\f783\\\"}.fa-calendar-minus:before{content:\\\"\\\\f272\\\"}.fa-calendar-plus:before{content:\\\"\\\\f271\\\"}.fa-calendar-times:before{content:\\\"\\\\f273\\\"}.fa-calendar-week:before{content:\\\"\\\\f784\\\"}.fa-camera:before{content:\\\"\\\\f030\\\"}.fa-camera-retro:before{content:\\\"\\\\f083\\\"}.fa-campground:before{content:\\\"\\\\f6bb\\\"}.fa-canadian-maple-leaf:before{content:\\\"\\\\f785\\\"}.fa-candy-cane:before{content:\\\"\\\\f786\\\"}.fa-cannabis:before{content:\\\"\\\\f55f\\\"}.fa-capsules:before{content:\\\"\\\\f46b\\\"}.fa-car:before{content:\\\"\\\\f1b9\\\"}.fa-car-alt:before{content:\\\"\\\\f5de\\\"}.fa-car-battery:before{content:\\\"\\\\f5df\\\"}.fa-car-crash:before{content:\\\"\\\\f5e1\\\"}.fa-car-side:before{content:\\\"\\\\f5e4\\\"}.fa-caravan:before{content:\\\"\\\\f8ff\\\"}.fa-caret-down:before{content:\\\"\\\\f0d7\\\"}.fa-caret-left:before{content:\\\"\\\\f0d9\\\"}.fa-caret-right:before{content:\\\"\\\\f0da\\\"}.fa-caret-square-down:before{content:\\\"\\\\f150\\\"}.fa-caret-square-left:before{content:\\\"\\\\f191\\\"}.fa-caret-square-right:before{content:\\\"\\\\f152\\\"}.fa-caret-square-up:before{content:\\\"\\\\f151\\\"}.fa-caret-up:before{content:\\\"\\\\f0d8\\\"}.fa-carrot:before{content:\\\"\\\\f787\\\"}.fa-cart-arrow-down:before{content:\\\"\\\\f218\\\"}.fa-cart-plus:before{content:\\\"\\\\f217\\\"}.fa-cash-register:before{content:\\\"\\\\f788\\\"}.fa-cat:before{content:\\\"\\\\f6be\\\"}.fa-cc-amazon-pay:before{content:\\\"\\\\f42d\\\"}.fa-cc-amex:before{content:\\\"\\\\f1f3\\\"}.fa-cc-apple-pay:before{content:\\\"\\\\f416\\\"}.fa-cc-diners-club:before{content:\\\"\\\\f24c\\\"}.fa-cc-discover:before{content:\\\"\\\\f1f2\\\"}.fa-cc-jcb:before{content:\\\"\\\\f24b\\\"}.fa-cc-mastercard:before{content:\\\"\\\\f1f1\\\"}.fa-cc-paypal:before{content:\\\"\\\\f1f4\\\"}.fa-cc-stripe:before{content:\\\"\\\\f1f5\\\"}.fa-cc-visa:before{content:\\\"\\\\f1f0\\\"}.fa-centercode:before{content:\\\"\\\\f380\\\"}.fa-centos:before{content:\\\"\\\\f789\\\"}.fa-certificate:before{content:\\\"\\\\f0a3\\\"}.fa-chair:before{content:\\\"\\\\f6c0\\\"}.fa-chalkboard:before{content:\\\"\\\\f51b\\\"}.fa-chalkboard-teacher:before{content:\\\"\\\\f51c\\\"}.fa-charging-station:before{content:\\\"\\\\f5e7\\\"}.fa-chart-area:before{content:\\\"\\\\f1fe\\\"}.fa-chart-bar:before{content:\\\"\\\\f080\\\"}.fa-chart-line:before{content:\\\"\\\\f201\\\"}.fa-chart-pie:before{content:\\\"\\\\f200\\\"}.fa-check:before{content:\\\"\\\\f00c\\\"}.fa-check-circle:before{content:\\\"\\\\f058\\\"}.fa-check-double:before{content:\\\"\\\\f560\\\"}.fa-check-square:before{content:\\\"\\\\f14a\\\"}.fa-cheese:before{content:\\\"\\\\f7ef\\\"}.fa-chess:before{content:\\\"\\\\f439\\\"}.fa-chess-bishop:before{content:\\\"\\\\f43a\\\"}.fa-chess-board:before{content:\\\"\\\\f43c\\\"}.fa-chess-king:before{content:\\\"\\\\f43f\\\"}.fa-chess-knight:before{content:\\\"\\\\f441\\\"}.fa-chess-pawn:before{content:\\\"\\\\f443\\\"}.fa-chess-queen:before{content:\\\"\\\\f445\\\"}.fa-chess-rook:before{content:\\\"\\\\f447\\\"}.fa-chevron-circle-down:before{content:\\\"\\\\f13a\\\"}.fa-chevron-circle-left:before{content:\\\"\\\\f137\\\"}.fa-chevron-circle-right:before{content:\\\"\\\\f138\\\"}.fa-chevron-circle-up:before{content:\\\"\\\\f139\\\"}.fa-chevron-down:before{content:\\\"\\\\f078\\\"}.fa-chevron-left:before{content:\\\"\\\\f053\\\"}.fa-chevron-right:before{content:\\\"\\\\f054\\\"}.fa-chevron-up:before{content:\\\"\\\\f077\\\"}.fa-child:before{content:\\\"\\\\f1ae\\\"}.fa-chrome:before{content:\\\"\\\\f268\\\"}.fa-chromecast:before{content:\\\"\\\\f838\\\"}.fa-church:before{content:\\\"\\\\f51d\\\"}.fa-circle:before{content:\\\"\\\\f111\\\"}.fa-circle-notch:before{content:\\\"\\\\f1ce\\\"}.fa-city:before{content:\\\"\\\\f64f\\\"}.fa-clinic-medical:before{content:\\\"\\\\f7f2\\\"}.fa-clipboard:before{content:\\\"\\\\f328\\\"}.fa-clipboard-check:before{content:\\\"\\\\f46c\\\"}.fa-clipboard-list:before{content:\\\"\\\\f46d\\\"}.fa-clock:before{content:\\\"\\\\f017\\\"}.fa-clone:before{content:\\\"\\\\f24d\\\"}.fa-closed-captioning:before{content:\\\"\\\\f20a\\\"}.fa-cloud:before{content:\\\"\\\\f0c2\\\"}.fa-cloud-download-alt:before{content:\\\"\\\\f381\\\"}.fa-cloud-meatball:before{content:\\\"\\\\f73b\\\"}.fa-cloud-moon:before{content:\\\"\\\\f6c3\\\"}.fa-cloud-moon-rain:before{content:\\\"\\\\f73c\\\"}.fa-cloud-rain:before{content:\\\"\\\\f73d\\\"}.fa-cloud-showers-heavy:before{content:\\\"\\\\f740\\\"}.fa-cloud-sun:before{content:\\\"\\\\f6c4\\\"}.fa-cloud-sun-rain:before{content:\\\"\\\\f743\\\"}.fa-cloud-upload-alt:before{content:\\\"\\\\f382\\\"}.fa-cloudflare:before{content:\\\"\\\\e07d\\\"}.fa-cloudscale:before{content:\\\"\\\\f383\\\"}.fa-cloudsmith:before{content:\\\"\\\\f384\\\"}.fa-cloudversify:before{content:\\\"\\\\f385\\\"}.fa-cocktail:before{content:\\\"\\\\f561\\\"}.fa-code:before{content:\\\"\\\\f121\\\"}.fa-code-branch:before{content:\\\"\\\\f126\\\"}.fa-codepen:before{content:\\\"\\\\f1cb\\\"}.fa-codiepie:before{content:\\\"\\\\f284\\\"}.fa-coffee:before{content:\\\"\\\\f0f4\\\"}.fa-cog:before{content:\\\"\\\\f013\\\"}.fa-cogs:before{content:\\\"\\\\f085\\\"}.fa-coins:before{content:\\\"\\\\f51e\\\"}.fa-columns:before{content:\\\"\\\\f0db\\\"}.fa-comment:before{content:\\\"\\\\f075\\\"}.fa-comment-alt:before{content:\\\"\\\\f27a\\\"}.fa-comment-dollar:before{content:\\\"\\\\f651\\\"}.fa-comment-dots:before{content:\\\"\\\\f4ad\\\"}.fa-comment-medical:before{content:\\\"\\\\f7f5\\\"}.fa-comment-slash:before{content:\\\"\\\\f4b3\\\"}.fa-comments:before{content:\\\"\\\\f086\\\"}.fa-comments-dollar:before{content:\\\"\\\\f653\\\"}.fa-compact-disc:before{content:\\\"\\\\f51f\\\"}.fa-compass:before{content:\\\"\\\\f14e\\\"}.fa-compress:before{content:\\\"\\\\f066\\\"}.fa-compress-alt:before{content:\\\"\\\\f422\\\"}.fa-compress-arrows-alt:before{content:\\\"\\\\f78c\\\"}.fa-concierge-bell:before{content:\\\"\\\\f562\\\"}.fa-confluence:before{content:\\\"\\\\f78d\\\"}.fa-connectdevelop:before{content:\\\"\\\\f20e\\\"}.fa-contao:before{content:\\\"\\\\f26d\\\"}.fa-cookie:before{content:\\\"\\\\f563\\\"}.fa-cookie-bite:before{content:\\\"\\\\f564\\\"}.fa-copy:before{content:\\\"\\\\f0c5\\\"}.fa-copyright:before{content:\\\"\\\\f1f9\\\"}.fa-cotton-bureau:before{content:\\\"\\\\f89e\\\"}.fa-couch:before{content:\\\"\\\\f4b8\\\"}.fa-cpanel:before{content:\\\"\\\\f388\\\"}.fa-creative-commons:before{content:\\\"\\\\f25e\\\"}.fa-creative-commons-by:before{content:\\\"\\\\f4e7\\\"}.fa-creative-commons-nc:before{content:\\\"\\\\f4e8\\\"}.fa-creative-commons-nc-eu:before{content:\\\"\\\\f4e9\\\"}.fa-creative-commons-nc-jp:before{content:\\\"\\\\f4ea\\\"}.fa-creative-commons-nd:before{content:\\\"\\\\f4eb\\\"}.fa-creative-commons-pd:before{content:\\\"\\\\f4ec\\\"}.fa-creative-commons-pd-alt:before{content:\\\"\\\\f4ed\\\"}.fa-creative-commons-remix:before{content:\\\"\\\\f4ee\\\"}.fa-creative-commons-sa:before{content:\\\"\\\\f4ef\\\"}.fa-creative-commons-sampling:before{content:\\\"\\\\f4f0\\\"}.fa-creative-commons-sampling-plus:before{content:\\\"\\\\f4f1\\\"}.fa-creative-commons-share:before{content:\\\"\\\\f4f2\\\"}.fa-creative-commons-zero:before{content:\\\"\\\\f4f3\\\"}.fa-credit-card:before{content:\\\"\\\\f09d\\\"}.fa-critical-role:before{content:\\\"\\\\f6c9\\\"}.fa-crop:before{content:\\\"\\\\f125\\\"}.fa-crop-alt:before{content:\\\"\\\\f565\\\"}.fa-cross:before{content:\\\"\\\\f654\\\"}.fa-crosshairs:before{content:\\\"\\\\f05b\\\"}.fa-crow:before{content:\\\"\\\\f520\\\"}.fa-crown:before{content:\\\"\\\\f521\\\"}.fa-crutch:before{content:\\\"\\\\f7f7\\\"}.fa-css3:before{content:\\\"\\\\f13c\\\"}.fa-css3-alt:before{content:\\\"\\\\f38b\\\"}.fa-cube:before{content:\\\"\\\\f1b2\\\"}.fa-cubes:before{content:\\\"\\\\f1b3\\\"}.fa-cut:before{content:\\\"\\\\f0c4\\\"}.fa-cuttlefish:before{content:\\\"\\\\f38c\\\"}.fa-d-and-d:before{content:\\\"\\\\f38d\\\"}.fa-d-and-d-beyond:before{content:\\\"\\\\f6ca\\\"}.fa-dailymotion:before{content:\\\"\\\\e052\\\"}.fa-dashcube:before{content:\\\"\\\\f210\\\"}.fa-database:before{content:\\\"\\\\f1c0\\\"}.fa-deaf:before{content:\\\"\\\\f2a4\\\"}.fa-deezer:before{content:\\\"\\\\e077\\\"}.fa-delicious:before{content:\\\"\\\\f1a5\\\"}.fa-democrat:before{content:\\\"\\\\f747\\\"}.fa-deploydog:before{content:\\\"\\\\f38e\\\"}.fa-deskpro:before{content:\\\"\\\\f38f\\\"}.fa-desktop:before{content:\\\"\\\\f108\\\"}.fa-dev:before{content:\\\"\\\\f6cc\\\"}.fa-deviantart:before{content:\\\"\\\\f1bd\\\"}.fa-dharmachakra:before{content:\\\"\\\\f655\\\"}.fa-dhl:before{content:\\\"\\\\f790\\\"}.fa-diagnoses:before{content:\\\"\\\\f470\\\"}.fa-diaspora:before{content:\\\"\\\\f791\\\"}.fa-dice:before{content:\\\"\\\\f522\\\"}.fa-dice-d20:before{content:\\\"\\\\f6cf\\\"}.fa-dice-d6:before{content:\\\"\\\\f6d1\\\"}.fa-dice-five:before{content:\\\"\\\\f523\\\"}.fa-dice-four:before{content:\\\"\\\\f524\\\"}.fa-dice-one:before{content:\\\"\\\\f525\\\"}.fa-dice-six:before{content:\\\"\\\\f526\\\"}.fa-dice-three:before{content:\\\"\\\\f527\\\"}.fa-dice-two:before{content:\\\"\\\\f528\\\"}.fa-digg:before{content:\\\"\\\\f1a6\\\"}.fa-digital-ocean:before{content:\\\"\\\\f391\\\"}.fa-digital-tachograph:before{content:\\\"\\\\f566\\\"}.fa-directions:before{content:\\\"\\\\f5eb\\\"}.fa-discord:before{content:\\\"\\\\f392\\\"}.fa-discourse:before{content:\\\"\\\\f393\\\"}.fa-disease:before{content:\\\"\\\\f7fa\\\"}.fa-divide:before{content:\\\"\\\\f529\\\"}.fa-dizzy:before{content:\\\"\\\\f567\\\"}.fa-dna:before{content:\\\"\\\\f471\\\"}.fa-dochub:before{content:\\\"\\\\f394\\\"}.fa-docker:before{content:\\\"\\\\f395\\\"}.fa-dog:before{content:\\\"\\\\f6d3\\\"}.fa-dollar-sign:before{content:\\\"\\\\f155\\\"}.fa-dolly:before{content:\\\"\\\\f472\\\"}.fa-dolly-flatbed:before{content:\\\"\\\\f474\\\"}.fa-donate:before{content:\\\"\\\\f4b9\\\"}.fa-door-closed:before{content:\\\"\\\\f52a\\\"}.fa-door-open:before{content:\\\"\\\\f52b\\\"}.fa-dot-circle:before{content:\\\"\\\\f192\\\"}.fa-dove:before{content:\\\"\\\\f4ba\\\"}.fa-download:before{content:\\\"\\\\f019\\\"}.fa-draft2digital:before{content:\\\"\\\\f396\\\"}.fa-drafting-compass:before{content:\\\"\\\\f568\\\"}.fa-dragon:before{content:\\\"\\\\f6d5\\\"}.fa-draw-polygon:before{content:\\\"\\\\f5ee\\\"}.fa-dribbble:before{content:\\\"\\\\f17d\\\"}.fa-dribbble-square:before{content:\\\"\\\\f397\\\"}.fa-dropbox:before{content:\\\"\\\\f16b\\\"}.fa-drum:before{content:\\\"\\\\f569\\\"}.fa-drum-steelpan:before{content:\\\"\\\\f56a\\\"}.fa-drumstick-bite:before{content:\\\"\\\\f6d7\\\"}.fa-drupal:before{content:\\\"\\\\f1a9\\\"}.fa-dumbbell:before{content:\\\"\\\\f44b\\\"}.fa-dumpster:before{content:\\\"\\\\f793\\\"}.fa-dumpster-fire:before{content:\\\"\\\\f794\\\"}.fa-dungeon:before{content:\\\"\\\\f6d9\\\"}.fa-dyalog:before{content:\\\"\\\\f399\\\"}.fa-earlybirds:before{content:\\\"\\\\f39a\\\"}.fa-ebay:before{content:\\\"\\\\f4f4\\\"}.fa-edge:before{content:\\\"\\\\f282\\\"}.fa-edge-legacy:before{content:\\\"\\\\e078\\\"}.fa-edit:before{content:\\\"\\\\f044\\\"}.fa-egg:before{content:\\\"\\\\f7fb\\\"}.fa-eject:before{content:\\\"\\\\f052\\\"}.fa-elementor:before{content:\\\"\\\\f430\\\"}.fa-ellipsis-h:before{content:\\\"\\\\f141\\\"}.fa-ellipsis-v:before{content:\\\"\\\\f142\\\"}.fa-ello:before{content:\\\"\\\\f5f1\\\"}.fa-ember:before{content:\\\"\\\\f423\\\"}.fa-empire:before{content:\\\"\\\\f1d1\\\"}.fa-envelope:before{content:\\\"\\\\f0e0\\\"}.fa-envelope-open:before{content:\\\"\\\\f2b6\\\"}.fa-envelope-open-text:before{content:\\\"\\\\f658\\\"}.fa-envelope-square:before{content:\\\"\\\\f199\\\"}.fa-envira:before{content:\\\"\\\\f299\\\"}.fa-equals:before{content:\\\"\\\\f52c\\\"}.fa-eraser:before{content:\\\"\\\\f12d\\\"}.fa-erlang:before{content:\\\"\\\\f39d\\\"}.fa-ethereum:before{content:\\\"\\\\f42e\\\"}.fa-ethernet:before{content:\\\"\\\\f796\\\"}.fa-etsy:before{content:\\\"\\\\f2d7\\\"}.fa-euro-sign:before{content:\\\"\\\\f153\\\"}.fa-evernote:before{content:\\\"\\\\f839\\\"}.fa-exchange-alt:before{content:\\\"\\\\f362\\\"}.fa-exclamation:before{content:\\\"\\\\f12a\\\"}.fa-exclamation-circle:before{content:\\\"\\\\f06a\\\"}.fa-exclamation-triangle:before{content:\\\"\\\\f071\\\"}.fa-expand:before{content:\\\"\\\\f065\\\"}.fa-expand-alt:before{content:\\\"\\\\f424\\\"}.fa-expand-arrows-alt:before{content:\\\"\\\\f31e\\\"}.fa-expeditedssl:before{content:\\\"\\\\f23e\\\"}.fa-external-link-alt:before{content:\\\"\\\\f35d\\\"}.fa-external-link-square-alt:before{content:\\\"\\\\f360\\\"}.fa-eye:before{content:\\\"\\\\f06e\\\"}.fa-eye-dropper:before{content:\\\"\\\\f1fb\\\"}.fa-eye-slash:before{content:\\\"\\\\f070\\\"}.fa-facebook:before{content:\\\"\\\\f09a\\\"}.fa-facebook-f:before{content:\\\"\\\\f39e\\\"}.fa-facebook-messenger:before{content:\\\"\\\\f39f\\\"}.fa-facebook-square:before{content:\\\"\\\\f082\\\"}.fa-fan:before{content:\\\"\\\\f863\\\"}.fa-fantasy-flight-games:before{content:\\\"\\\\f6dc\\\"}.fa-fast-backward:before{content:\\\"\\\\f049\\\"}.fa-fast-forward:before{content:\\\"\\\\f050\\\"}.fa-faucet:before{content:\\\"\\\\e005\\\"}.fa-fax:before{content:\\\"\\\\f1ac\\\"}.fa-feather:before{content:\\\"\\\\f52d\\\"}.fa-feather-alt:before{content:\\\"\\\\f56b\\\"}.fa-fedex:before{content:\\\"\\\\f797\\\"}.fa-fedora:before{content:\\\"\\\\f798\\\"}.fa-female:before{content:\\\"\\\\f182\\\"}.fa-fighter-jet:before{content:\\\"\\\\f0fb\\\"}.fa-figma:before{content:\\\"\\\\f799\\\"}.fa-file:before{content:\\\"\\\\f15b\\\"}.fa-file-alt:before{content:\\\"\\\\f15c\\\"}.fa-file-archive:before{content:\\\"\\\\f1c6\\\"}.fa-file-audio:before{content:\\\"\\\\f1c7\\\"}.fa-file-code:before{content:\\\"\\\\f1c9\\\"}.fa-file-contract:before{content:\\\"\\\\f56c\\\"}.fa-file-csv:before{content:\\\"\\\\f6dd\\\"}.fa-file-download:before{content:\\\"\\\\f56d\\\"}.fa-file-excel:before{content:\\\"\\\\f1c3\\\"}.fa-file-export:before{content:\\\"\\\\f56e\\\"}.fa-file-image:before{content:\\\"\\\\f1c5\\\"}.fa-file-import:before{content:\\\"\\\\f56f\\\"}.fa-file-invoice:before{content:\\\"\\\\f570\\\"}.fa-file-invoice-dollar:before{content:\\\"\\\\f571\\\"}.fa-file-medical:before{content:\\\"\\\\f477\\\"}.fa-file-medical-alt:before{content:\\\"\\\\f478\\\"}.fa-file-pdf:before{content:\\\"\\\\f1c1\\\"}.fa-file-powerpoint:before{content:\\\"\\\\f1c4\\\"}.fa-file-prescription:before{content:\\\"\\\\f572\\\"}.fa-file-signature:before{content:\\\"\\\\f573\\\"}.fa-file-upload:before{content:\\\"\\\\f574\\\"}.fa-file-video:before{content:\\\"\\\\f1c8\\\"}.fa-file-word:before{content:\\\"\\\\f1c2\\\"}.fa-fill:before{content:\\\"\\\\f575\\\"}.fa-fill-drip:before{content:\\\"\\\\f576\\\"}.fa-film:before{content:\\\"\\\\f008\\\"}.fa-filter:before{content:\\\"\\\\f0b0\\\"}.fa-fingerprint:before{content:\\\"\\\\f577\\\"}.fa-fire:before{content:\\\"\\\\f06d\\\"}.fa-fire-alt:before{content:\\\"\\\\f7e4\\\"}.fa-fire-extinguisher:before{content:\\\"\\\\f134\\\"}.fa-firefox:before{content:\\\"\\\\f269\\\"}.fa-firefox-browser:before{content:\\\"\\\\e007\\\"}.fa-first-aid:before{content:\\\"\\\\f479\\\"}.fa-first-order:before{content:\\\"\\\\f2b0\\\"}.fa-first-order-alt:before{content:\\\"\\\\f50a\\\"}.fa-firstdraft:before{content:\\\"\\\\f3a1\\\"}.fa-fish:before{content:\\\"\\\\f578\\\"}.fa-fist-raised:before{content:\\\"\\\\f6de\\\"}.fa-flag:before{content:\\\"\\\\f024\\\"}.fa-flag-checkered:before{content:\\\"\\\\f11e\\\"}.fa-flag-usa:before{content:\\\"\\\\f74d\\\"}.fa-flask:before{content:\\\"\\\\f0c3\\\"}.fa-flickr:before{content:\\\"\\\\f16e\\\"}.fa-flipboard:before{content:\\\"\\\\f44d\\\"}.fa-flushed:before{content:\\\"\\\\f579\\\"}.fa-fly:before{content:\\\"\\\\f417\\\"}.fa-folder:before{content:\\\"\\\\f07b\\\"}.fa-folder-minus:before{content:\\\"\\\\f65d\\\"}.fa-folder-open:before{content:\\\"\\\\f07c\\\"}.fa-folder-plus:before{content:\\\"\\\\f65e\\\"}.fa-font:before{content:\\\"\\\\f031\\\"}.fa-font-awesome:before{content:\\\"\\\\f2b4\\\"}.fa-font-awesome-alt:before{content:\\\"\\\\f35c\\\"}.fa-font-awesome-flag:before{content:\\\"\\\\f425\\\"}.fa-font-awesome-logo-full:before{content:\\\"\\\\f4e6\\\"}.fa-fonticons:before{content:\\\"\\\\f280\\\"}.fa-fonticons-fi:before{content:\\\"\\\\f3a2\\\"}.fa-football-ball:before{content:\\\"\\\\f44e\\\"}.fa-fort-awesome:before{content:\\\"\\\\f286\\\"}.fa-fort-awesome-alt:before{content:\\\"\\\\f3a3\\\"}.fa-forumbee:before{content:\\\"\\\\f211\\\"}.fa-forward:before{content:\\\"\\\\f04e\\\"}.fa-foursquare:before{content:\\\"\\\\f180\\\"}.fa-free-code-camp:before{content:\\\"\\\\f2c5\\\"}.fa-freebsd:before{content:\\\"\\\\f3a4\\\"}.fa-frog:before{content:\\\"\\\\f52e\\\"}.fa-frown:before{content:\\\"\\\\f119\\\"}.fa-frown-open:before{content:\\\"\\\\f57a\\\"}.fa-fulcrum:before{content:\\\"\\\\f50b\\\"}.fa-funnel-dollar:before{content:\\\"\\\\f662\\\"}.fa-futbol:before{content:\\\"\\\\f1e3\\\"}.fa-galactic-republic:before{content:\\\"\\\\f50c\\\"}.fa-galactic-senate:before{content:\\\"\\\\f50d\\\"}.fa-gamepad:before{content:\\\"\\\\f11b\\\"}.fa-gas-pump:before{content:\\\"\\\\f52f\\\"}.fa-gavel:before{content:\\\"\\\\f0e3\\\"}.fa-gem:before{content:\\\"\\\\f3a5\\\"}.fa-genderless:before{content:\\\"\\\\f22d\\\"}.fa-get-pocket:before{content:\\\"\\\\f265\\\"}.fa-gg:before{content:\\\"\\\\f260\\\"}.fa-gg-circle:before{content:\\\"\\\\f261\\\"}.fa-ghost:before{content:\\\"\\\\f6e2\\\"}.fa-gift:before{content:\\\"\\\\f06b\\\"}.fa-gifts:before{content:\\\"\\\\f79c\\\"}.fa-git:before{content:\\\"\\\\f1d3\\\"}.fa-git-alt:before{content:\\\"\\\\f841\\\"}.fa-git-square:before{content:\\\"\\\\f1d2\\\"}.fa-github:before{content:\\\"\\\\f09b\\\"}.fa-github-alt:before{content:\\\"\\\\f113\\\"}.fa-github-square:before{content:\\\"\\\\f092\\\"}.fa-gitkraken:before{content:\\\"\\\\f3a6\\\"}.fa-gitlab:before{content:\\\"\\\\f296\\\"}.fa-gitter:before{content:\\\"\\\\f426\\\"}.fa-glass-cheers:before{content:\\\"\\\\f79f\\\"}.fa-glass-martini:before{content:\\\"\\\\f000\\\"}.fa-glass-martini-alt:before{content:\\\"\\\\f57b\\\"}.fa-glass-whiskey:before{content:\\\"\\\\f7a0\\\"}.fa-glasses:before{content:\\\"\\\\f530\\\"}.fa-glide:before{content:\\\"\\\\f2a5\\\"}.fa-glide-g:before{content:\\\"\\\\f2a6\\\"}.fa-globe:before{content:\\\"\\\\f0ac\\\"}.fa-globe-africa:before{content:\\\"\\\\f57c\\\"}.fa-globe-americas:before{content:\\\"\\\\f57d\\\"}.fa-globe-asia:before{content:\\\"\\\\f57e\\\"}.fa-globe-europe:before{content:\\\"\\\\f7a2\\\"}.fa-gofore:before{content:\\\"\\\\f3a7\\\"}.fa-golf-ball:before{content:\\\"\\\\f450\\\"}.fa-goodreads:before{content:\\\"\\\\f3a8\\\"}.fa-goodreads-g:before{content:\\\"\\\\f3a9\\\"}.fa-google:before{content:\\\"\\\\f1a0\\\"}.fa-google-drive:before{content:\\\"\\\\f3aa\\\"}.fa-google-pay:before{content:\\\"\\\\e079\\\"}.fa-google-play:before{content:\\\"\\\\f3ab\\\"}.fa-google-plus:before{content:\\\"\\\\f2b3\\\"}.fa-google-plus-g:before{content:\\\"\\\\f0d5\\\"}.fa-google-plus-square:before{content:\\\"\\\\f0d4\\\"}.fa-google-wallet:before{content:\\\"\\\\f1ee\\\"}.fa-gopuram:before{content:\\\"\\\\f664\\\"}.fa-graduation-cap:before{content:\\\"\\\\f19d\\\"}.fa-gratipay:before{content:\\\"\\\\f184\\\"}.fa-grav:before{content:\\\"\\\\f2d6\\\"}.fa-greater-than:before{content:\\\"\\\\f531\\\"}.fa-greater-than-equal:before{content:\\\"\\\\f532\\\"}.fa-grimace:before{content:\\\"\\\\f57f\\\"}.fa-grin:before{content:\\\"\\\\f580\\\"}.fa-grin-alt:before{content:\\\"\\\\f581\\\"}.fa-grin-beam:before{content:\\\"\\\\f582\\\"}.fa-grin-beam-sweat:before{content:\\\"\\\\f583\\\"}.fa-grin-hearts:before{content:\\\"\\\\f584\\\"}.fa-grin-squint:before{content:\\\"\\\\f585\\\"}.fa-grin-squint-tears:before{content:\\\"\\\\f586\\\"}.fa-grin-stars:before{content:\\\"\\\\f587\\\"}.fa-grin-tears:before{content:\\\"\\\\f588\\\"}.fa-grin-tongue:before{content:\\\"\\\\f589\\\"}.fa-grin-tongue-squint:before{content:\\\"\\\\f58a\\\"}.fa-grin-tongue-wink:before{content:\\\"\\\\f58b\\\"}.fa-grin-wink:before{content:\\\"\\\\f58c\\\"}.fa-grip-horizontal:before{content:\\\"\\\\f58d\\\"}.fa-grip-lines:before{content:\\\"\\\\f7a4\\\"}.fa-grip-lines-vertical:before{content:\\\"\\\\f7a5\\\"}.fa-grip-vertical:before{content:\\\"\\\\f58e\\\"}.fa-gripfire:before{content:\\\"\\\\f3ac\\\"}.fa-grunt:before{content:\\\"\\\\f3ad\\\"}.fa-guilded:before{content:\\\"\\\\e07e\\\"}.fa-guitar:before{content:\\\"\\\\f7a6\\\"}.fa-gulp:before{content:\\\"\\\\f3ae\\\"}.fa-h-square:before{content:\\\"\\\\f0fd\\\"}.fa-hacker-news:before{content:\\\"\\\\f1d4\\\"}.fa-hacker-news-square:before{content:\\\"\\\\f3af\\\"}.fa-hackerrank:before{content:\\\"\\\\f5f7\\\"}.fa-hamburger:before{content:\\\"\\\\f805\\\"}.fa-hammer:before{content:\\\"\\\\f6e3\\\"}.fa-hamsa:before{content:\\\"\\\\f665\\\"}.fa-hand-holding:before{content:\\\"\\\\f4bd\\\"}.fa-hand-holding-heart:before{content:\\\"\\\\f4be\\\"}.fa-hand-holding-medical:before{content:\\\"\\\\e05c\\\"}.fa-hand-holding-usd:before{content:\\\"\\\\f4c0\\\"}.fa-hand-holding-water:before{content:\\\"\\\\f4c1\\\"}.fa-hand-lizard:before{content:\\\"\\\\f258\\\"}.fa-hand-middle-finger:before{content:\\\"\\\\f806\\\"}.fa-hand-paper:before{content:\\\"\\\\f256\\\"}.fa-hand-peace:before{content:\\\"\\\\f25b\\\"}.fa-hand-point-down:before{content:\\\"\\\\f0a7\\\"}.fa-hand-point-left:before{content:\\\"\\\\f0a5\\\"}.fa-hand-point-right:before{content:\\\"\\\\f0a4\\\"}.fa-hand-point-up:before{content:\\\"\\\\f0a6\\\"}.fa-hand-pointer:before{content:\\\"\\\\f25a\\\"}.fa-hand-rock:before{content:\\\"\\\\f255\\\"}.fa-hand-scissors:before{content:\\\"\\\\f257\\\"}.fa-hand-sparkles:before{content:\\\"\\\\e05d\\\"}.fa-hand-spock:before{content:\\\"\\\\f259\\\"}.fa-hands:before{content:\\\"\\\\f4c2\\\"}.fa-hands-helping:before{content:\\\"\\\\f4c4\\\"}.fa-hands-wash:before{content:\\\"\\\\e05e\\\"}.fa-handshake:before{content:\\\"\\\\f2b5\\\"}.fa-handshake-alt-slash:before{content:\\\"\\\\e05f\\\"}.fa-handshake-slash:before{content:\\\"\\\\e060\\\"}.fa-hanukiah:before{content:\\\"\\\\f6e6\\\"}.fa-hard-hat:before{content:\\\"\\\\f807\\\"}.fa-hashtag:before{content:\\\"\\\\f292\\\"}.fa-hat-cowboy:before{content:\\\"\\\\f8c0\\\"}.fa-hat-cowboy-side:before{content:\\\"\\\\f8c1\\\"}.fa-hat-wizard:before{content:\\\"\\\\f6e8\\\"}.fa-hdd:before{content:\\\"\\\\f0a0\\\"}.fa-head-side-cough:before{content:\\\"\\\\e061\\\"}.fa-head-side-cough-slash:before{content:\\\"\\\\e062\\\"}.fa-head-side-mask:before{content:\\\"\\\\e063\\\"}.fa-head-side-virus:before{content:\\\"\\\\e064\\\"}.fa-heading:before{content:\\\"\\\\f1dc\\\"}.fa-headphones:before{content:\\\"\\\\f025\\\"}.fa-headphones-alt:before{content:\\\"\\\\f58f\\\"}.fa-headset:before{content:\\\"\\\\f590\\\"}.fa-heart:before{content:\\\"\\\\f004\\\"}.fa-heart-broken:before{content:\\\"\\\\f7a9\\\"}.fa-heartbeat:before{content:\\\"\\\\f21e\\\"}.fa-helicopter:before{content:\\\"\\\\f533\\\"}.fa-highlighter:before{content:\\\"\\\\f591\\\"}.fa-hiking:before{content:\\\"\\\\f6ec\\\"}.fa-hippo:before{content:\\\"\\\\f6ed\\\"}.fa-hips:before{content:\\\"\\\\f452\\\"}.fa-hire-a-helper:before{content:\\\"\\\\f3b0\\\"}.fa-history:before{content:\\\"\\\\f1da\\\"}.fa-hive:before{content:\\\"\\\\e07f\\\"}.fa-hockey-puck:before{content:\\\"\\\\f453\\\"}.fa-holly-berry:before{content:\\\"\\\\f7aa\\\"}.fa-home:before{content:\\\"\\\\f015\\\"}.fa-hooli:before{content:\\\"\\\\f427\\\"}.fa-hornbill:before{content:\\\"\\\\f592\\\"}.fa-horse:before{content:\\\"\\\\f6f0\\\"}.fa-horse-head:before{content:\\\"\\\\f7ab\\\"}.fa-hospital:before{content:\\\"\\\\f0f8\\\"}.fa-hospital-alt:before{content:\\\"\\\\f47d\\\"}.fa-hospital-symbol:before{content:\\\"\\\\f47e\\\"}.fa-hospital-user:before{content:\\\"\\\\f80d\\\"}.fa-hot-tub:before{content:\\\"\\\\f593\\\"}.fa-hotdog:before{content:\\\"\\\\f80f\\\"}.fa-hotel:before{content:\\\"\\\\f594\\\"}.fa-hotjar:before{content:\\\"\\\\f3b1\\\"}.fa-hourglass:before{content:\\\"\\\\f254\\\"}.fa-hourglass-end:before{content:\\\"\\\\f253\\\"}.fa-hourglass-half:before{content:\\\"\\\\f252\\\"}.fa-hourglass-start:before{content:\\\"\\\\f251\\\"}.fa-house-damage:before{content:\\\"\\\\f6f1\\\"}.fa-house-user:before{content:\\\"\\\\e065\\\"}.fa-houzz:before{content:\\\"\\\\f27c\\\"}.fa-hryvnia:before{content:\\\"\\\\f6f2\\\"}.fa-html5:before{content:\\\"\\\\f13b\\\"}.fa-hubspot:before{content:\\\"\\\\f3b2\\\"}.fa-i-cursor:before{content:\\\"\\\\f246\\\"}.fa-ice-cream:before{content:\\\"\\\\f810\\\"}.fa-icicles:before{content:\\\"\\\\f7ad\\\"}.fa-icons:before{content:\\\"\\\\f86d\\\"}.fa-id-badge:before{content:\\\"\\\\f2c1\\\"}.fa-id-card:before{content:\\\"\\\\f2c2\\\"}.fa-id-card-alt:before{content:\\\"\\\\f47f\\\"}.fa-ideal:before{content:\\\"\\\\e013\\\"}.fa-igloo:before{content:\\\"\\\\f7ae\\\"}.fa-image:before{content:\\\"\\\\f03e\\\"}.fa-images:before{content:\\\"\\\\f302\\\"}.fa-imdb:before{content:\\\"\\\\f2d8\\\"}.fa-inbox:before{content:\\\"\\\\f01c\\\"}.fa-indent:before{content:\\\"\\\\f03c\\\"}.fa-industry:before{content:\\\"\\\\f275\\\"}.fa-infinity:before{content:\\\"\\\\f534\\\"}.fa-info:before{content:\\\"\\\\f129\\\"}.fa-info-circle:before{content:\\\"\\\\f05a\\\"}.fa-innosoft:before{content:\\\"\\\\e080\\\"}.fa-instagram:before{content:\\\"\\\\f16d\\\"}.fa-instagram-square:before{content:\\\"\\\\e055\\\"}.fa-instalod:before{content:\\\"\\\\e081\\\"}.fa-intercom:before{content:\\\"\\\\f7af\\\"}.fa-internet-explorer:before{content:\\\"\\\\f26b\\\"}.fa-invision:before{content:\\\"\\\\f7b0\\\"}.fa-ioxhost:before{content:\\\"\\\\f208\\\"}.fa-italic:before{content:\\\"\\\\f033\\\"}.fa-itch-io:before{content:\\\"\\\\f83a\\\"}.fa-itunes:before{content:\\\"\\\\f3b4\\\"}.fa-itunes-note:before{content:\\\"\\\\f3b5\\\"}.fa-java:before{content:\\\"\\\\f4e4\\\"}.fa-jedi:before{content:\\\"\\\\f669\\\"}.fa-jedi-order:before{content:\\\"\\\\f50e\\\"}.fa-jenkins:before{content:\\\"\\\\f3b6\\\"}.fa-jira:before{content:\\\"\\\\f7b1\\\"}.fa-joget:before{content:\\\"\\\\f3b7\\\"}.fa-joint:before{content:\\\"\\\\f595\\\"}.fa-joomla:before{content:\\\"\\\\f1aa\\\"}.fa-journal-whills:before{content:\\\"\\\\f66a\\\"}.fa-js:before{content:\\\"\\\\f3b8\\\"}.fa-js-square:before{content:\\\"\\\\f3b9\\\"}.fa-jsfiddle:before{content:\\\"\\\\f1cc\\\"}.fa-kaaba:before{content:\\\"\\\\f66b\\\"}.fa-kaggle:before{content:\\\"\\\\f5fa\\\"}.fa-key:before{content:\\\"\\\\f084\\\"}.fa-keybase:before{content:\\\"\\\\f4f5\\\"}.fa-keyboard:before{content:\\\"\\\\f11c\\\"}.fa-keycdn:before{content:\\\"\\\\f3ba\\\"}.fa-khanda:before{content:\\\"\\\\f66d\\\"}.fa-kickstarter:before{content:\\\"\\\\f3bb\\\"}.fa-kickstarter-k:before{content:\\\"\\\\f3bc\\\"}.fa-kiss:before{content:\\\"\\\\f596\\\"}.fa-kiss-beam:before{content:\\\"\\\\f597\\\"}.fa-kiss-wink-heart:before{content:\\\"\\\\f598\\\"}.fa-kiwi-bird:before{content:\\\"\\\\f535\\\"}.fa-korvue:before{content:\\\"\\\\f42f\\\"}.fa-landmark:before{content:\\\"\\\\f66f\\\"}.fa-language:before{content:\\\"\\\\f1ab\\\"}.fa-laptop:before{content:\\\"\\\\f109\\\"}.fa-laptop-code:before{content:\\\"\\\\f5fc\\\"}.fa-laptop-house:before{content:\\\"\\\\e066\\\"}.fa-laptop-medical:before{content:\\\"\\\\f812\\\"}.fa-laravel:before{content:\\\"\\\\f3bd\\\"}.fa-lastfm:before{content:\\\"\\\\f202\\\"}.fa-lastfm-square:before{content:\\\"\\\\f203\\\"}.fa-laugh:before{content:\\\"\\\\f599\\\"}.fa-laugh-beam:before{content:\\\"\\\\f59a\\\"}.fa-laugh-squint:before{content:\\\"\\\\f59b\\\"}.fa-laugh-wink:before{content:\\\"\\\\f59c\\\"}.fa-layer-group:before{content:\\\"\\\\f5fd\\\"}.fa-leaf:before{content:\\\"\\\\f06c\\\"}.fa-leanpub:before{content:\\\"\\\\f212\\\"}.fa-lemon:before{content:\\\"\\\\f094\\\"}.fa-less:before{content:\\\"\\\\f41d\\\"}.fa-less-than:before{content:\\\"\\\\f536\\\"}.fa-less-than-equal:before{content:\\\"\\\\f537\\\"}.fa-level-down-alt:before{content:\\\"\\\\f3be\\\"}.fa-level-up-alt:before{content:\\\"\\\\f3bf\\\"}.fa-life-ring:before{content:\\\"\\\\f1cd\\\"}.fa-lightbulb:before{content:\\\"\\\\f0eb\\\"}.fa-line:before{content:\\\"\\\\f3c0\\\"}.fa-link:before{content:\\\"\\\\f0c1\\\"}.fa-linkedin:before{content:\\\"\\\\f08c\\\"}.fa-linkedin-in:before{content:\\\"\\\\f0e1\\\"}.fa-linode:before{content:\\\"\\\\f2b8\\\"}.fa-linux:before{content:\\\"\\\\f17c\\\"}.fa-lira-sign:before{content:\\\"\\\\f195\\\"}.fa-list:before{content:\\\"\\\\f03a\\\"}.fa-list-alt:before{content:\\\"\\\\f022\\\"}.fa-list-ol:before{content:\\\"\\\\f0cb\\\"}.fa-list-ul:before{content:\\\"\\\\f0ca\\\"}.fa-location-arrow:before{content:\\\"\\\\f124\\\"}.fa-lock:before{content:\\\"\\\\f023\\\"}.fa-lock-open:before{content:\\\"\\\\f3c1\\\"}.fa-long-arrow-alt-down:before{content:\\\"\\\\f309\\\"}.fa-long-arrow-alt-left:before{content:\\\"\\\\f30a\\\"}.fa-long-arrow-alt-right:before{content:\\\"\\\\f30b\\\"}.fa-long-arrow-alt-up:before{content:\\\"\\\\f30c\\\"}.fa-low-vision:before{content:\\\"\\\\f2a8\\\"}.fa-luggage-cart:before{content:\\\"\\\\f59d\\\"}.fa-lungs:before{content:\\\"\\\\f604\\\"}.fa-lungs-virus:before{content:\\\"\\\\e067\\\"}.fa-lyft:before{content:\\\"\\\\f3c3\\\"}.fa-magento:before{content:\\\"\\\\f3c4\\\"}.fa-magic:before{content:\\\"\\\\f0d0\\\"}.fa-magnet:before{content:\\\"\\\\f076\\\"}.fa-mail-bulk:before{content:\\\"\\\\f674\\\"}.fa-mailchimp:before{content:\\\"\\\\f59e\\\"}.fa-male:before{content:\\\"\\\\f183\\\"}.fa-mandalorian:before{content:\\\"\\\\f50f\\\"}.fa-map:before{content:\\\"\\\\f279\\\"}.fa-map-marked:before{content:\\\"\\\\f59f\\\"}.fa-map-marked-alt:before{content:\\\"\\\\f5a0\\\"}.fa-map-marker:before{content:\\\"\\\\f041\\\"}.fa-map-marker-alt:before{content:\\\"\\\\f3c5\\\"}.fa-map-pin:before{content:\\\"\\\\f276\\\"}.fa-map-signs:before{content:\\\"\\\\f277\\\"}.fa-markdown:before{content:\\\"\\\\f60f\\\"}.fa-marker:before{content:\\\"\\\\f5a1\\\"}.fa-mars:before{content:\\\"\\\\f222\\\"}.fa-mars-double:before{content:\\\"\\\\f227\\\"}.fa-mars-stroke:before{content:\\\"\\\\f229\\\"}.fa-mars-stroke-h:before{content:\\\"\\\\f22b\\\"}.fa-mars-stroke-v:before{content:\\\"\\\\f22a\\\"}.fa-mask:before{content:\\\"\\\\f6fa\\\"}.fa-mastodon:before{content:\\\"\\\\f4f6\\\"}.fa-maxcdn:before{content:\\\"\\\\f136\\\"}.fa-mdb:before{content:\\\"\\\\f8ca\\\"}.fa-medal:before{content:\\\"\\\\f5a2\\\"}.fa-medapps:before{content:\\\"\\\\f3c6\\\"}.fa-medium:before{content:\\\"\\\\f23a\\\"}.fa-medium-m:before{content:\\\"\\\\f3c7\\\"}.fa-medkit:before{content:\\\"\\\\f0fa\\\"}.fa-medrt:before{content:\\\"\\\\f3c8\\\"}.fa-meetup:before{content:\\\"\\\\f2e0\\\"}.fa-megaport:before{content:\\\"\\\\f5a3\\\"}.fa-meh:before{content:\\\"\\\\f11a\\\"}.fa-meh-blank:before{content:\\\"\\\\f5a4\\\"}.fa-meh-rolling-eyes:before{content:\\\"\\\\f5a5\\\"}.fa-memory:before{content:\\\"\\\\f538\\\"}.fa-mendeley:before{content:\\\"\\\\f7b3\\\"}.fa-menorah:before{content:\\\"\\\\f676\\\"}.fa-mercury:before{content:\\\"\\\\f223\\\"}.fa-meteor:before{content:\\\"\\\\f753\\\"}.fa-microblog:before{content:\\\"\\\\e01a\\\"}.fa-microchip:before{content:\\\"\\\\f2db\\\"}.fa-microphone:before{content:\\\"\\\\f130\\\"}.fa-microphone-alt:before{content:\\\"\\\\f3c9\\\"}.fa-microphone-alt-slash:before{content:\\\"\\\\f539\\\"}.fa-microphone-slash:before{content:\\\"\\\\f131\\\"}.fa-microscope:before{content:\\\"\\\\f610\\\"}.fa-microsoft:before{content:\\\"\\\\f3ca\\\"}.fa-minus:before{content:\\\"\\\\f068\\\"}.fa-minus-circle:before{content:\\\"\\\\f056\\\"}.fa-minus-square:before{content:\\\"\\\\f146\\\"}.fa-mitten:before{content:\\\"\\\\f7b5\\\"}.fa-mix:before{content:\\\"\\\\f3cb\\\"}.fa-mixcloud:before{content:\\\"\\\\f289\\\"}.fa-mixer:before{content:\\\"\\\\e056\\\"}.fa-mizuni:before{content:\\\"\\\\f3cc\\\"}.fa-mobile:before{content:\\\"\\\\f10b\\\"}.fa-mobile-alt:before{content:\\\"\\\\f3cd\\\"}.fa-modx:before{content:\\\"\\\\f285\\\"}.fa-monero:before{content:\\\"\\\\f3d0\\\"}.fa-money-bill:before{content:\\\"\\\\f0d6\\\"}.fa-money-bill-alt:before{content:\\\"\\\\f3d1\\\"}.fa-money-bill-wave:before{content:\\\"\\\\f53a\\\"}.fa-money-bill-wave-alt:before{content:\\\"\\\\f53b\\\"}.fa-money-check:before{content:\\\"\\\\f53c\\\"}.fa-money-check-alt:before{content:\\\"\\\\f53d\\\"}.fa-monument:before{content:\\\"\\\\f5a6\\\"}.fa-moon:before{content:\\\"\\\\f186\\\"}.fa-mortar-pestle:before{content:\\\"\\\\f5a7\\\"}.fa-mosque:before{content:\\\"\\\\f678\\\"}.fa-motorcycle:before{content:\\\"\\\\f21c\\\"}.fa-mountain:before{content:\\\"\\\\f6fc\\\"}.fa-mouse:before{content:\\\"\\\\f8cc\\\"}.fa-mouse-pointer:before{content:\\\"\\\\f245\\\"}.fa-mug-hot:before{content:\\\"\\\\f7b6\\\"}.fa-music:before{content:\\\"\\\\f001\\\"}.fa-napster:before{content:\\\"\\\\f3d2\\\"}.fa-neos:before{content:\\\"\\\\f612\\\"}.fa-network-wired:before{content:\\\"\\\\f6ff\\\"}.fa-neuter:before{content:\\\"\\\\f22c\\\"}.fa-newspaper:before{content:\\\"\\\\f1ea\\\"}.fa-nimblr:before{content:\\\"\\\\f5a8\\\"}.fa-node:before{content:\\\"\\\\f419\\\"}.fa-node-js:before{content:\\\"\\\\f3d3\\\"}.fa-not-equal:before{content:\\\"\\\\f53e\\\"}.fa-notes-medical:before{content:\\\"\\\\f481\\\"}.fa-npm:before{content:\\\"\\\\f3d4\\\"}.fa-ns8:before{content:\\\"\\\\f3d5\\\"}.fa-nutritionix:before{content:\\\"\\\\f3d6\\\"}.fa-object-group:before{content:\\\"\\\\f247\\\"}.fa-object-ungroup:before{content:\\\"\\\\f248\\\"}.fa-octopus-deploy:before{content:\\\"\\\\e082\\\"}.fa-odnoklassniki:before{content:\\\"\\\\f263\\\"}.fa-odnoklassniki-square:before{content:\\\"\\\\f264\\\"}.fa-oil-can:before{content:\\\"\\\\f613\\\"}.fa-old-republic:before{content:\\\"\\\\f510\\\"}.fa-om:before{content:\\\"\\\\f679\\\"}.fa-opencart:before{content:\\\"\\\\f23d\\\"}.fa-openid:before{content:\\\"\\\\f19b\\\"}.fa-opera:before{content:\\\"\\\\f26a\\\"}.fa-optin-monster:before{content:\\\"\\\\f23c\\\"}.fa-orcid:before{content:\\\"\\\\f8d2\\\"}.fa-osi:before{content:\\\"\\\\f41a\\\"}.fa-otter:before{content:\\\"\\\\f700\\\"}.fa-outdent:before{content:\\\"\\\\f03b\\\"}.fa-page4:before{content:\\\"\\\\f3d7\\\"}.fa-pagelines:before{content:\\\"\\\\f18c\\\"}.fa-pager:before{content:\\\"\\\\f815\\\"}.fa-paint-brush:before{content:\\\"\\\\f1fc\\\"}.fa-paint-roller:before{content:\\\"\\\\f5aa\\\"}.fa-palette:before{content:\\\"\\\\f53f\\\"}.fa-palfed:before{content:\\\"\\\\f3d8\\\"}.fa-pallet:before{content:\\\"\\\\f482\\\"}.fa-paper-plane:before{content:\\\"\\\\f1d8\\\"}.fa-paperclip:before{content:\\\"\\\\f0c6\\\"}.fa-parachute-box:before{content:\\\"\\\\f4cd\\\"}.fa-paragraph:before{content:\\\"\\\\f1dd\\\"}.fa-parking:before{content:\\\"\\\\f540\\\"}.fa-passport:before{content:\\\"\\\\f5ab\\\"}.fa-pastafarianism:before{content:\\\"\\\\f67b\\\"}.fa-paste:before{content:\\\"\\\\f0ea\\\"}.fa-patreon:before{content:\\\"\\\\f3d9\\\"}.fa-pause:before{content:\\\"\\\\f04c\\\"}.fa-pause-circle:before{content:\\\"\\\\f28b\\\"}.fa-paw:before{content:\\\"\\\\f1b0\\\"}.fa-paypal:before{content:\\\"\\\\f1ed\\\"}.fa-peace:before{content:\\\"\\\\f67c\\\"}.fa-pen:before{content:\\\"\\\\f304\\\"}.fa-pen-alt:before{content:\\\"\\\\f305\\\"}.fa-pen-fancy:before{content:\\\"\\\\f5ac\\\"}.fa-pen-nib:before{content:\\\"\\\\f5ad\\\"}.fa-pen-square:before{content:\\\"\\\\f14b\\\"}.fa-pencil-alt:before{content:\\\"\\\\f303\\\"}.fa-pencil-ruler:before{content:\\\"\\\\f5ae\\\"}.fa-penny-arcade:before{content:\\\"\\\\f704\\\"}.fa-people-arrows:before{content:\\\"\\\\e068\\\"}.fa-people-carry:before{content:\\\"\\\\f4ce\\\"}.fa-pepper-hot:before{content:\\\"\\\\f816\\\"}.fa-perbyte:before{content:\\\"\\\\e083\\\"}.fa-percent:before{content:\\\"\\\\f295\\\"}.fa-percentage:before{content:\\\"\\\\f541\\\"}.fa-periscope:before{content:\\\"\\\\f3da\\\"}.fa-person-booth:before{content:\\\"\\\\f756\\\"}.fa-phabricator:before{content:\\\"\\\\f3db\\\"}.fa-phoenix-framework:before{content:\\\"\\\\f3dc\\\"}.fa-phoenix-squadron:before{content:\\\"\\\\f511\\\"}.fa-phone:before{content:\\\"\\\\f095\\\"}.fa-phone-alt:before{content:\\\"\\\\f879\\\"}.fa-phone-slash:before{content:\\\"\\\\f3dd\\\"}.fa-phone-square:before{content:\\\"\\\\f098\\\"}.fa-phone-square-alt:before{content:\\\"\\\\f87b\\\"}.fa-phone-volume:before{content:\\\"\\\\f2a0\\\"}.fa-photo-video:before{content:\\\"\\\\f87c\\\"}.fa-php:before{content:\\\"\\\\f457\\\"}.fa-pied-piper:before{content:\\\"\\\\f2ae\\\"}.fa-pied-piper-alt:before{content:\\\"\\\\f1a8\\\"}.fa-pied-piper-hat:before{content:\\\"\\\\f4e5\\\"}.fa-pied-piper-pp:before{content:\\\"\\\\f1a7\\\"}.fa-pied-piper-square:before{content:\\\"\\\\e01e\\\"}.fa-piggy-bank:before{content:\\\"\\\\f4d3\\\"}.fa-pills:before{content:\\\"\\\\f484\\\"}.fa-pinterest:before{content:\\\"\\\\f0d2\\\"}.fa-pinterest-p:before{content:\\\"\\\\f231\\\"}.fa-pinterest-square:before{content:\\\"\\\\f0d3\\\"}.fa-pizza-slice:before{content:\\\"\\\\f818\\\"}.fa-place-of-worship:before{content:\\\"\\\\f67f\\\"}.fa-plane:before{content:\\\"\\\\f072\\\"}.fa-plane-arrival:before{content:\\\"\\\\f5af\\\"}.fa-plane-departure:before{content:\\\"\\\\f5b0\\\"}.fa-plane-slash:before{content:\\\"\\\\e069\\\"}.fa-play:before{content:\\\"\\\\f04b\\\"}.fa-play-circle:before{content:\\\"\\\\f144\\\"}.fa-playstation:before{content:\\\"\\\\f3df\\\"}.fa-plug:before{content:\\\"\\\\f1e6\\\"}.fa-plus:before{content:\\\"\\\\f067\\\"}.fa-plus-circle:before{content:\\\"\\\\f055\\\"}.fa-plus-square:before{content:\\\"\\\\f0fe\\\"}.fa-podcast:before{content:\\\"\\\\f2ce\\\"}.fa-poll:before{content:\\\"\\\\f681\\\"}.fa-poll-h:before{content:\\\"\\\\f682\\\"}.fa-poo:before{content:\\\"\\\\f2fe\\\"}.fa-poo-storm:before{content:\\\"\\\\f75a\\\"}.fa-poop:before{content:\\\"\\\\f619\\\"}.fa-portrait:before{content:\\\"\\\\f3e0\\\"}.fa-pound-sign:before{content:\\\"\\\\f154\\\"}.fa-power-off:before{content:\\\"\\\\f011\\\"}.fa-pray:before{content:\\\"\\\\f683\\\"}.fa-praying-hands:before{content:\\\"\\\\f684\\\"}.fa-prescription:before{content:\\\"\\\\f5b1\\\"}.fa-prescription-bottle:before{content:\\\"\\\\f485\\\"}.fa-prescription-bottle-alt:before{content:\\\"\\\\f486\\\"}.fa-print:before{content:\\\"\\\\f02f\\\"}.fa-procedures:before{content:\\\"\\\\f487\\\"}.fa-product-hunt:before{content:\\\"\\\\f288\\\"}.fa-project-diagram:before{content:\\\"\\\\f542\\\"}.fa-pump-medical:before{content:\\\"\\\\e06a\\\"}.fa-pump-soap:before{content:\\\"\\\\e06b\\\"}.fa-pushed:before{content:\\\"\\\\f3e1\\\"}.fa-puzzle-piece:before{content:\\\"\\\\f12e\\\"}.fa-python:before{content:\\\"\\\\f3e2\\\"}.fa-qq:before{content:\\\"\\\\f1d6\\\"}.fa-qrcode:before{content:\\\"\\\\f029\\\"}.fa-question:before{content:\\\"\\\\f128\\\"}.fa-question-circle:before{content:\\\"\\\\f059\\\"}.fa-quidditch:before{content:\\\"\\\\f458\\\"}.fa-quinscape:before{content:\\\"\\\\f459\\\"}.fa-quora:before{content:\\\"\\\\f2c4\\\"}.fa-quote-left:before{content:\\\"\\\\f10d\\\"}.fa-quote-right:before{content:\\\"\\\\f10e\\\"}.fa-quran:before{content:\\\"\\\\f687\\\"}.fa-r-project:before{content:\\\"\\\\f4f7\\\"}.fa-radiation:before{content:\\\"\\\\f7b9\\\"}.fa-radiation-alt:before{content:\\\"\\\\f7ba\\\"}.fa-rainbow:before{content:\\\"\\\\f75b\\\"}.fa-random:before{content:\\\"\\\\f074\\\"}.fa-raspberry-pi:before{content:\\\"\\\\f7bb\\\"}.fa-ravelry:before{content:\\\"\\\\f2d9\\\"}.fa-react:before{content:\\\"\\\\f41b\\\"}.fa-reacteurope:before{content:\\\"\\\\f75d\\\"}.fa-readme:before{content:\\\"\\\\f4d5\\\"}.fa-rebel:before{content:\\\"\\\\f1d0\\\"}.fa-receipt:before{content:\\\"\\\\f543\\\"}.fa-record-vinyl:before{content:\\\"\\\\f8d9\\\"}.fa-recycle:before{content:\\\"\\\\f1b8\\\"}.fa-red-river:before{content:\\\"\\\\f3e3\\\"}.fa-reddit:before{content:\\\"\\\\f1a1\\\"}.fa-reddit-alien:before{content:\\\"\\\\f281\\\"}.fa-reddit-square:before{content:\\\"\\\\f1a2\\\"}.fa-redhat:before{content:\\\"\\\\f7bc\\\"}.fa-redo:before{content:\\\"\\\\f01e\\\"}.fa-redo-alt:before{content:\\\"\\\\f2f9\\\"}.fa-registered:before{content:\\\"\\\\f25d\\\"}.fa-remove-format:before{content:\\\"\\\\f87d\\\"}.fa-renren:before{content:\\\"\\\\f18b\\\"}.fa-reply:before{content:\\\"\\\\f3e5\\\"}.fa-reply-all:before{content:\\\"\\\\f122\\\"}.fa-replyd:before{content:\\\"\\\\f3e6\\\"}.fa-republican:before{content:\\\"\\\\f75e\\\"}.fa-researchgate:before{content:\\\"\\\\f4f8\\\"}.fa-resolving:before{content:\\\"\\\\f3e7\\\"}.fa-restroom:before{content:\\\"\\\\f7bd\\\"}.fa-retweet:before{content:\\\"\\\\f079\\\"}.fa-rev:before{content:\\\"\\\\f5b2\\\"}.fa-ribbon:before{content:\\\"\\\\f4d6\\\"}.fa-ring:before{content:\\\"\\\\f70b\\\"}.fa-road:before{content:\\\"\\\\f018\\\"}.fa-robot:before{content:\\\"\\\\f544\\\"}.fa-rocket:before{content:\\\"\\\\f135\\\"}.fa-rocketchat:before{content:\\\"\\\\f3e8\\\"}.fa-rockrms:before{content:\\\"\\\\f3e9\\\"}.fa-route:before{content:\\\"\\\\f4d7\\\"}.fa-rss:before{content:\\\"\\\\f09e\\\"}.fa-rss-square:before{content:\\\"\\\\f143\\\"}.fa-ruble-sign:before{content:\\\"\\\\f158\\\"}.fa-ruler:before{content:\\\"\\\\f545\\\"}.fa-ruler-combined:before{content:\\\"\\\\f546\\\"}.fa-ruler-horizontal:before{content:\\\"\\\\f547\\\"}.fa-ruler-vertical:before{content:\\\"\\\\f548\\\"}.fa-running:before{content:\\\"\\\\f70c\\\"}.fa-rupee-sign:before{content:\\\"\\\\f156\\\"}.fa-rust:before{content:\\\"\\\\e07a\\\"}.fa-sad-cry:before{content:\\\"\\\\f5b3\\\"}.fa-sad-tear:before{content:\\\"\\\\f5b4\\\"}.fa-safari:before{content:\\\"\\\\f267\\\"}.fa-salesforce:before{content:\\\"\\\\f83b\\\"}.fa-sass:before{content:\\\"\\\\f41e\\\"}.fa-satellite:before{content:\\\"\\\\f7bf\\\"}.fa-satellite-dish:before{content:\\\"\\\\f7c0\\\"}.fa-save:before{content:\\\"\\\\f0c7\\\"}.fa-schlix:before{content:\\\"\\\\f3ea\\\"}.fa-school:before{content:\\\"\\\\f549\\\"}.fa-screwdriver:before{content:\\\"\\\\f54a\\\"}.fa-scribd:before{content:\\\"\\\\f28a\\\"}.fa-scroll:before{content:\\\"\\\\f70e\\\"}.fa-sd-card:before{content:\\\"\\\\f7c2\\\"}.fa-search:before{content:\\\"\\\\f002\\\"}.fa-search-dollar:before{content:\\\"\\\\f688\\\"}.fa-search-location:before{content:\\\"\\\\f689\\\"}.fa-search-minus:before{content:\\\"\\\\f010\\\"}.fa-search-plus:before{content:\\\"\\\\f00e\\\"}.fa-searchengin:before{content:\\\"\\\\f3eb\\\"}.fa-seedling:before{content:\\\"\\\\f4d8\\\"}.fa-sellcast:before{content:\\\"\\\\f2da\\\"}.fa-sellsy:before{content:\\\"\\\\f213\\\"}.fa-server:before{content:\\\"\\\\f233\\\"}.fa-servicestack:before{content:\\\"\\\\f3ec\\\"}.fa-shapes:before{content:\\\"\\\\f61f\\\"}.fa-share:before{content:\\\"\\\\f064\\\"}.fa-share-alt:before{content:\\\"\\\\f1e0\\\"}.fa-share-alt-square:before{content:\\\"\\\\f1e1\\\"}.fa-share-square:before{content:\\\"\\\\f14d\\\"}.fa-shekel-sign:before{content:\\\"\\\\f20b\\\"}.fa-shield-alt:before{content:\\\"\\\\f3ed\\\"}.fa-shield-virus:before{content:\\\"\\\\e06c\\\"}.fa-ship:before{content:\\\"\\\\f21a\\\"}.fa-shipping-fast:before{content:\\\"\\\\f48b\\\"}.fa-shirtsinbulk:before{content:\\\"\\\\f214\\\"}.fa-shoe-prints:before{content:\\\"\\\\f54b\\\"}.fa-shopify:before{content:\\\"\\\\e057\\\"}.fa-shopping-bag:before{content:\\\"\\\\f290\\\"}.fa-shopping-basket:before{content:\\\"\\\\f291\\\"}.fa-shopping-cart:before{content:\\\"\\\\f07a\\\"}.fa-shopware:before{content:\\\"\\\\f5b5\\\"}.fa-shower:before{content:\\\"\\\\f2cc\\\"}.fa-shuttle-van:before{content:\\\"\\\\f5b6\\\"}.fa-sign:before{content:\\\"\\\\f4d9\\\"}.fa-sign-in-alt:before{content:\\\"\\\\f2f6\\\"}.fa-sign-language:before{content:\\\"\\\\f2a7\\\"}.fa-sign-out-alt:before{content:\\\"\\\\f2f5\\\"}.fa-signal:before{content:\\\"\\\\f012\\\"}.fa-signature:before{content:\\\"\\\\f5b7\\\"}.fa-sim-card:before{content:\\\"\\\\f7c4\\\"}.fa-simplybuilt:before{content:\\\"\\\\f215\\\"}.fa-sink:before{content:\\\"\\\\e06d\\\"}.fa-sistrix:before{content:\\\"\\\\f3ee\\\"}.fa-sitemap:before{content:\\\"\\\\f0e8\\\"}.fa-sith:before{content:\\\"\\\\f512\\\"}.fa-skating:before{content:\\\"\\\\f7c5\\\"}.fa-sketch:before{content:\\\"\\\\f7c6\\\"}.fa-skiing:before{content:\\\"\\\\f7c9\\\"}.fa-skiing-nordic:before{content:\\\"\\\\f7ca\\\"}.fa-skull:before{content:\\\"\\\\f54c\\\"}.fa-skull-crossbones:before{content:\\\"\\\\f714\\\"}.fa-skyatlas:before{content:\\\"\\\\f216\\\"}.fa-skype:before{content:\\\"\\\\f17e\\\"}.fa-slack:before{content:\\\"\\\\f198\\\"}.fa-slack-hash:before{content:\\\"\\\\f3ef\\\"}.fa-slash:before{content:\\\"\\\\f715\\\"}.fa-sleigh:before{content:\\\"\\\\f7cc\\\"}.fa-sliders-h:before{content:\\\"\\\\f1de\\\"}.fa-slideshare:before{content:\\\"\\\\f1e7\\\"}.fa-smile:before{content:\\\"\\\\f118\\\"}.fa-smile-beam:before{content:\\\"\\\\f5b8\\\"}.fa-smile-wink:before{content:\\\"\\\\f4da\\\"}.fa-smog:before{content:\\\"\\\\f75f\\\"}.fa-smoking:before{content:\\\"\\\\f48d\\\"}.fa-smoking-ban:before{content:\\\"\\\\f54d\\\"}.fa-sms:before{content:\\\"\\\\f7cd\\\"}.fa-snapchat:before{content:\\\"\\\\f2ab\\\"}.fa-snapchat-ghost:before{content:\\\"\\\\f2ac\\\"}.fa-snapchat-square:before{content:\\\"\\\\f2ad\\\"}.fa-snowboarding:before{content:\\\"\\\\f7ce\\\"}.fa-snowflake:before{content:\\\"\\\\f2dc\\\"}.fa-snowman:before{content:\\\"\\\\f7d0\\\"}.fa-snowplow:before{content:\\\"\\\\f7d2\\\"}.fa-soap:before{content:\\\"\\\\e06e\\\"}.fa-socks:before{content:\\\"\\\\f696\\\"}.fa-solar-panel:before{content:\\\"\\\\f5ba\\\"}.fa-sort:before{content:\\\"\\\\f0dc\\\"}.fa-sort-alpha-down:before{content:\\\"\\\\f15d\\\"}.fa-sort-alpha-down-alt:before{content:\\\"\\\\f881\\\"}.fa-sort-alpha-up:before{content:\\\"\\\\f15e\\\"}.fa-sort-alpha-up-alt:before{content:\\\"\\\\f882\\\"}.fa-sort-amount-down:before{content:\\\"\\\\f160\\\"}.fa-sort-amount-down-alt:before{content:\\\"\\\\f884\\\"}.fa-sort-amount-up:before{content:\\\"\\\\f161\\\"}.fa-sort-amount-up-alt:before{content:\\\"\\\\f885\\\"}.fa-sort-down:before{content:\\\"\\\\f0dd\\\"}.fa-sort-numeric-down:before{content:\\\"\\\\f162\\\"}.fa-sort-numeric-down-alt:before{content:\\\"\\\\f886\\\"}.fa-sort-numeric-up:before{content:\\\"\\\\f163\\\"}.fa-sort-numeric-up-alt:before{content:\\\"\\\\f887\\\"}.fa-sort-up:before{content:\\\"\\\\f0de\\\"}.fa-soundcloud:before{content:\\\"\\\\f1be\\\"}.fa-sourcetree:before{content:\\\"\\\\f7d3\\\"}.fa-spa:before{content:\\\"\\\\f5bb\\\"}.fa-space-shuttle:before{content:\\\"\\\\f197\\\"}.fa-speakap:before{content:\\\"\\\\f3f3\\\"}.fa-speaker-deck:before{content:\\\"\\\\f83c\\\"}.fa-spell-check:before{content:\\\"\\\\f891\\\"}.fa-spider:before{content:\\\"\\\\f717\\\"}.fa-spinner:before{content:\\\"\\\\f110\\\"}.fa-splotch:before{content:\\\"\\\\f5bc\\\"}.fa-spotify:before{content:\\\"\\\\f1bc\\\"}.fa-spray-can:before{content:\\\"\\\\f5bd\\\"}.fa-square:before{content:\\\"\\\\f0c8\\\"}.fa-square-full:before{content:\\\"\\\\f45c\\\"}.fa-square-root-alt:before{content:\\\"\\\\f698\\\"}.fa-squarespace:before{content:\\\"\\\\f5be\\\"}.fa-stack-exchange:before{content:\\\"\\\\f18d\\\"}.fa-stack-overflow:before{content:\\\"\\\\f16c\\\"}.fa-stackpath:before{content:\\\"\\\\f842\\\"}.fa-stamp:before{content:\\\"\\\\f5bf\\\"}.fa-star:before{content:\\\"\\\\f005\\\"}.fa-star-and-crescent:before{content:\\\"\\\\f699\\\"}.fa-star-half:before{content:\\\"\\\\f089\\\"}.fa-star-half-alt:before{content:\\\"\\\\f5c0\\\"}.fa-star-of-david:before{content:\\\"\\\\f69a\\\"}.fa-star-of-life:before{content:\\\"\\\\f621\\\"}.fa-staylinked:before{content:\\\"\\\\f3f5\\\"}.fa-steam:before{content:\\\"\\\\f1b6\\\"}.fa-steam-square:before{content:\\\"\\\\f1b7\\\"}.fa-steam-symbol:before{content:\\\"\\\\f3f6\\\"}.fa-step-backward:before{content:\\\"\\\\f048\\\"}.fa-step-forward:before{content:\\\"\\\\f051\\\"}.fa-stethoscope:before{content:\\\"\\\\f0f1\\\"}.fa-sticker-mule:before{content:\\\"\\\\f3f7\\\"}.fa-sticky-note:before{content:\\\"\\\\f249\\\"}.fa-stop:before{content:\\\"\\\\f04d\\\"}.fa-stop-circle:before{content:\\\"\\\\f28d\\\"}.fa-stopwatch:before{content:\\\"\\\\f2f2\\\"}.fa-stopwatch-20:before{content:\\\"\\\\e06f\\\"}.fa-store:before{content:\\\"\\\\f54e\\\"}.fa-store-alt:before{content:\\\"\\\\f54f\\\"}.fa-store-alt-slash:before{content:\\\"\\\\e070\\\"}.fa-store-slash:before{content:\\\"\\\\e071\\\"}.fa-strava:before{content:\\\"\\\\f428\\\"}.fa-stream:before{content:\\\"\\\\f550\\\"}.fa-street-view:before{content:\\\"\\\\f21d\\\"}.fa-strikethrough:before{content:\\\"\\\\f0cc\\\"}.fa-stripe:before{content:\\\"\\\\f429\\\"}.fa-stripe-s:before{content:\\\"\\\\f42a\\\"}.fa-stroopwafel:before{content:\\\"\\\\f551\\\"}.fa-studiovinari:before{content:\\\"\\\\f3f8\\\"}.fa-stumbleupon:before{content:\\\"\\\\f1a4\\\"}.fa-stumbleupon-circle:before{content:\\\"\\\\f1a3\\\"}.fa-subscript:before{content:\\\"\\\\f12c\\\"}.fa-subway:before{content:\\\"\\\\f239\\\"}.fa-suitcase:before{content:\\\"\\\\f0f2\\\"}.fa-suitcase-rolling:before{content:\\\"\\\\f5c1\\\"}.fa-sun:before{content:\\\"\\\\f185\\\"}.fa-superpowers:before{content:\\\"\\\\f2dd\\\"}.fa-superscript:before{content:\\\"\\\\f12b\\\"}.fa-supple:before{content:\\\"\\\\f3f9\\\"}.fa-surprise:before{content:\\\"\\\\f5c2\\\"}.fa-suse:before{content:\\\"\\\\f7d6\\\"}.fa-swatchbook:before{content:\\\"\\\\f5c3\\\"}.fa-swift:before{content:\\\"\\\\f8e1\\\"}.fa-swimmer:before{content:\\\"\\\\f5c4\\\"}.fa-swimming-pool:before{content:\\\"\\\\f5c5\\\"}.fa-symfony:before{content:\\\"\\\\f83d\\\"}.fa-synagogue:before{content:\\\"\\\\f69b\\\"}.fa-sync:before{content:\\\"\\\\f021\\\"}.fa-sync-alt:before{content:\\\"\\\\f2f1\\\"}.fa-syringe:before{content:\\\"\\\\f48e\\\"}.fa-table:before{content:\\\"\\\\f0ce\\\"}.fa-table-tennis:before{content:\\\"\\\\f45d\\\"}.fa-tablet:before{content:\\\"\\\\f10a\\\"}.fa-tablet-alt:before{content:\\\"\\\\f3fa\\\"}.fa-tablets:before{content:\\\"\\\\f490\\\"}.fa-tachometer-alt:before{content:\\\"\\\\f3fd\\\"}.fa-tag:before{content:\\\"\\\\f02b\\\"}.fa-tags:before{content:\\\"\\\\f02c\\\"}.fa-tape:before{content:\\\"\\\\f4db\\\"}.fa-tasks:before{content:\\\"\\\\f0ae\\\"}.fa-taxi:before{content:\\\"\\\\f1ba\\\"}.fa-teamspeak:before{content:\\\"\\\\f4f9\\\"}.fa-teeth:before{content:\\\"\\\\f62e\\\"}.fa-teeth-open:before{content:\\\"\\\\f62f\\\"}.fa-telegram:before{content:\\\"\\\\f2c6\\\"}.fa-telegram-plane:before{content:\\\"\\\\f3fe\\\"}.fa-temperature-high:before{content:\\\"\\\\f769\\\"}.fa-temperature-low:before{content:\\\"\\\\f76b\\\"}.fa-tencent-weibo:before{content:\\\"\\\\f1d5\\\"}.fa-tenge:before{content:\\\"\\\\f7d7\\\"}.fa-terminal:before{content:\\\"\\\\f120\\\"}.fa-text-height:before{content:\\\"\\\\f034\\\"}.fa-text-width:before{content:\\\"\\\\f035\\\"}.fa-th:before{content:\\\"\\\\f00a\\\"}.fa-th-large:before{content:\\\"\\\\f009\\\"}.fa-th-list:before{content:\\\"\\\\f00b\\\"}.fa-the-red-yeti:before{content:\\\"\\\\f69d\\\"}.fa-theater-masks:before{content:\\\"\\\\f630\\\"}.fa-themeco:before{content:\\\"\\\\f5c6\\\"}.fa-themeisle:before{content:\\\"\\\\f2b2\\\"}.fa-thermometer:before{content:\\\"\\\\f491\\\"}.fa-thermometer-empty:before{content:\\\"\\\\f2cb\\\"}.fa-thermometer-full:before{content:\\\"\\\\f2c7\\\"}.fa-thermometer-half:before{content:\\\"\\\\f2c9\\\"}.fa-thermometer-quarter:before{content:\\\"\\\\f2ca\\\"}.fa-thermometer-three-quarters:before{content:\\\"\\\\f2c8\\\"}.fa-think-peaks:before{content:\\\"\\\\f731\\\"}.fa-thumbs-down:before{content:\\\"\\\\f165\\\"}.fa-thumbs-up:before{content:\\\"\\\\f164\\\"}.fa-thumbtack:before{content:\\\"\\\\f08d\\\"}.fa-ticket-alt:before{content:\\\"\\\\f3ff\\\"}.fa-tiktok:before{content:\\\"\\\\e07b\\\"}.fa-times:before{content:\\\"\\\\f00d\\\"}.fa-times-circle:before{content:\\\"\\\\f057\\\"}.fa-tint:before{content:\\\"\\\\f043\\\"}.fa-tint-slash:before{content:\\\"\\\\f5c7\\\"}.fa-tired:before{content:\\\"\\\\f5c8\\\"}.fa-toggle-off:before{content:\\\"\\\\f204\\\"}.fa-toggle-on:before{content:\\\"\\\\f205\\\"}.fa-toilet:before{content:\\\"\\\\f7d8\\\"}.fa-toilet-paper:before{content:\\\"\\\\f71e\\\"}.fa-toilet-paper-slash:before{content:\\\"\\\\e072\\\"}.fa-toolbox:before{content:\\\"\\\\f552\\\"}.fa-tools:before{content:\\\"\\\\f7d9\\\"}.fa-tooth:before{content:\\\"\\\\f5c9\\\"}.fa-torah:before{content:\\\"\\\\f6a0\\\"}.fa-torii-gate:before{content:\\\"\\\\f6a1\\\"}.fa-tractor:before{content:\\\"\\\\f722\\\"}.fa-trade-federation:before{content:\\\"\\\\f513\\\"}.fa-trademark:before{content:\\\"\\\\f25c\\\"}.fa-traffic-light:before{content:\\\"\\\\f637\\\"}.fa-trailer:before{content:\\\"\\\\e041\\\"}.fa-train:before{content:\\\"\\\\f238\\\"}.fa-tram:before{content:\\\"\\\\f7da\\\"}.fa-transgender:before{content:\\\"\\\\f224\\\"}.fa-transgender-alt:before{content:\\\"\\\\f225\\\"}.fa-trash:before{content:\\\"\\\\f1f8\\\"}.fa-trash-alt:before{content:\\\"\\\\f2ed\\\"}.fa-trash-restore:before{content:\\\"\\\\f829\\\"}.fa-trash-restore-alt:before{content:\\\"\\\\f82a\\\"}.fa-tree:before{content:\\\"\\\\f1bb\\\"}.fa-trello:before{content:\\\"\\\\f181\\\"}.fa-trophy:before{content:\\\"\\\\f091\\\"}.fa-truck:before{content:\\\"\\\\f0d1\\\"}.fa-truck-loading:before{content:\\\"\\\\f4de\\\"}.fa-truck-monster:before{content:\\\"\\\\f63b\\\"}.fa-truck-moving:before{content:\\\"\\\\f4df\\\"}.fa-truck-pickup:before{content:\\\"\\\\f63c\\\"}.fa-tshirt:before{content:\\\"\\\\f553\\\"}.fa-tty:before{content:\\\"\\\\f1e4\\\"}.fa-tumblr:before{content:\\\"\\\\f173\\\"}.fa-tumblr-square:before{content:\\\"\\\\f174\\\"}.fa-tv:before{content:\\\"\\\\f26c\\\"}.fa-twitch:before{content:\\\"\\\\f1e8\\\"}.fa-twitter:before{content:\\\"\\\\f099\\\"}.fa-twitter-square:before{content:\\\"\\\\f081\\\"}.fa-typo3:before{content:\\\"\\\\f42b\\\"}.fa-uber:before{content:\\\"\\\\f402\\\"}.fa-ubuntu:before{content:\\\"\\\\f7df\\\"}.fa-uikit:before{content:\\\"\\\\f403\\\"}.fa-umbraco:before{content:\\\"\\\\f8e8\\\"}.fa-umbrella:before{content:\\\"\\\\f0e9\\\"}.fa-umbrella-beach:before{content:\\\"\\\\f5ca\\\"}.fa-uncharted:before{content:\\\"\\\\e084\\\"}.fa-underline:before{content:\\\"\\\\f0cd\\\"}.fa-undo:before{content:\\\"\\\\f0e2\\\"}.fa-undo-alt:before{content:\\\"\\\\f2ea\\\"}.fa-uniregistry:before{content:\\\"\\\\f404\\\"}.fa-unity:before{content:\\\"\\\\e049\\\"}.fa-universal-access:before{content:\\\"\\\\f29a\\\"}.fa-university:before{content:\\\"\\\\f19c\\\"}.fa-unlink:before{content:\\\"\\\\f127\\\"}.fa-unlock:before{content:\\\"\\\\f09c\\\"}.fa-unlock-alt:before{content:\\\"\\\\f13e\\\"}.fa-unsplash:before{content:\\\"\\\\e07c\\\"}.fa-untappd:before{content:\\\"\\\\f405\\\"}.fa-upload:before{content:\\\"\\\\f093\\\"}.fa-ups:before{content:\\\"\\\\f7e0\\\"}.fa-usb:before{content:\\\"\\\\f287\\\"}.fa-user:before{content:\\\"\\\\f007\\\"}.fa-user-alt:before{content:\\\"\\\\f406\\\"}.fa-user-alt-slash:before{content:\\\"\\\\f4fa\\\"}.fa-user-astronaut:before{content:\\\"\\\\f4fb\\\"}.fa-user-check:before{content:\\\"\\\\f4fc\\\"}.fa-user-circle:before{content:\\\"\\\\f2bd\\\"}.fa-user-clock:before{content:\\\"\\\\f4fd\\\"}.fa-user-cog:before{content:\\\"\\\\f4fe\\\"}.fa-user-edit:before{content:\\\"\\\\f4ff\\\"}.fa-user-friends:before{content:\\\"\\\\f500\\\"}.fa-user-graduate:before{content:\\\"\\\\f501\\\"}.fa-user-injured:before{content:\\\"\\\\f728\\\"}.fa-user-lock:before{content:\\\"\\\\f502\\\"}.fa-user-md:before{content:\\\"\\\\f0f0\\\"}.fa-user-minus:before{content:\\\"\\\\f503\\\"}.fa-user-ninja:before{content:\\\"\\\\f504\\\"}.fa-user-nurse:before{content:\\\"\\\\f82f\\\"}.fa-user-plus:before{content:\\\"\\\\f234\\\"}.fa-user-secret:before{content:\\\"\\\\f21b\\\"}.fa-user-shield:before{content:\\\"\\\\f505\\\"}.fa-user-slash:before{content:\\\"\\\\f506\\\"}.fa-user-tag:before{content:\\\"\\\\f507\\\"}.fa-user-tie:before{content:\\\"\\\\f508\\\"}.fa-user-times:before{content:\\\"\\\\f235\\\"}.fa-users:before{content:\\\"\\\\f0c0\\\"}.fa-users-cog:before{content:\\\"\\\\f509\\\"}.fa-users-slash:before{content:\\\"\\\\e073\\\"}.fa-usps:before{content:\\\"\\\\f7e1\\\"}.fa-ussunnah:before{content:\\\"\\\\f407\\\"}.fa-utensil-spoon:before{content:\\\"\\\\f2e5\\\"}.fa-utensils:before{content:\\\"\\\\f2e7\\\"}.fa-vaadin:before{content:\\\"\\\\f408\\\"}.fa-vector-square:before{content:\\\"\\\\f5cb\\\"}.fa-venus:before{content:\\\"\\\\f221\\\"}.fa-venus-double:before{content:\\\"\\\\f226\\\"}.fa-venus-mars:before{content:\\\"\\\\f228\\\"}.fa-vest:before{content:\\\"\\\\e085\\\"}.fa-vest-patches:before{content:\\\"\\\\e086\\\"}.fa-viacoin:before{content:\\\"\\\\f237\\\"}.fa-viadeo:before{content:\\\"\\\\f2a9\\\"}.fa-viadeo-square:before{content:\\\"\\\\f2aa\\\"}.fa-vial:before{content:\\\"\\\\f492\\\"}.fa-vials:before{content:\\\"\\\\f493\\\"}.fa-viber:before{content:\\\"\\\\f409\\\"}.fa-video:before{content:\\\"\\\\f03d\\\"}.fa-video-slash:before{content:\\\"\\\\f4e2\\\"}.fa-vihara:before{content:\\\"\\\\f6a7\\\"}.fa-vimeo:before{content:\\\"\\\\f40a\\\"}.fa-vimeo-square:before{content:\\\"\\\\f194\\\"}.fa-vimeo-v:before{content:\\\"\\\\f27d\\\"}.fa-vine:before{content:\\\"\\\\f1ca\\\"}.fa-virus:before{content:\\\"\\\\e074\\\"}.fa-virus-slash:before{content:\\\"\\\\e075\\\"}.fa-viruses:before{content:\\\"\\\\e076\\\"}.fa-vk:before{content:\\\"\\\\f189\\\"}.fa-vnv:before{content:\\\"\\\\f40b\\\"}.fa-voicemail:before{content:\\\"\\\\f897\\\"}.fa-volleyball-ball:before{content:\\\"\\\\f45f\\\"}.fa-volume-down:before{content:\\\"\\\\f027\\\"}.fa-volume-mute:before{content:\\\"\\\\f6a9\\\"}.fa-volume-off:before{content:\\\"\\\\f026\\\"}.fa-volume-up:before{content:\\\"\\\\f028\\\"}.fa-vote-yea:before{content:\\\"\\\\f772\\\"}.fa-vr-cardboard:before{content:\\\"\\\\f729\\\"}.fa-vuejs:before{content:\\\"\\\\f41f\\\"}.fa-walking:before{content:\\\"\\\\f554\\\"}.fa-wallet:before{content:\\\"\\\\f555\\\"}.fa-warehouse:before{content:\\\"\\\\f494\\\"}.fa-watchman-monitoring:before{content:\\\"\\\\e087\\\"}.fa-water:before{content:\\\"\\\\f773\\\"}.fa-wave-square:before{content:\\\"\\\\f83e\\\"}.fa-waze:before{content:\\\"\\\\f83f\\\"}.fa-weebly:before{content:\\\"\\\\f5cc\\\"}.fa-weibo:before{content:\\\"\\\\f18a\\\"}.fa-weight:before{content:\\\"\\\\f496\\\"}.fa-weight-hanging:before{content:\\\"\\\\f5cd\\\"}.fa-weixin:before{content:\\\"\\\\f1d7\\\"}.fa-whatsapp:before{content:\\\"\\\\f232\\\"}.fa-whatsapp-square:before{content:\\\"\\\\f40c\\\"}.fa-wheelchair:before{content:\\\"\\\\f193\\\"}.fa-whmcs:before{content:\\\"\\\\f40d\\\"}.fa-wifi:before{content:\\\"\\\\f1eb\\\"}.fa-wikipedia-w:before{content:\\\"\\\\f266\\\"}.fa-wind:before{content:\\\"\\\\f72e\\\"}.fa-window-close:before{content:\\\"\\\\f410\\\"}.fa-window-maximize:before{content:\\\"\\\\f2d0\\\"}.fa-window-minimize:before{content:\\\"\\\\f2d1\\\"}.fa-window-restore:before{content:\\\"\\\\f2d2\\\"}.fa-windows:before{content:\\\"\\\\f17a\\\"}.fa-wine-bottle:before{content:\\\"\\\\f72f\\\"}.fa-wine-glass:before{content:\\\"\\\\f4e3\\\"}.fa-wine-glass-alt:before{content:\\\"\\\\f5ce\\\"}.fa-wix:before{content:\\\"\\\\f5cf\\\"}.fa-wizards-of-the-coast:before{content:\\\"\\\\f730\\\"}.fa-wodu:before{content:\\\"\\\\e088\\\"}.fa-wolf-pack-battalion:before{content:\\\"\\\\f514\\\"}.fa-won-sign:before{content:\\\"\\\\f159\\\"}.fa-wordpress:before{content:\\\"\\\\f19a\\\"}.fa-wordpress-simple:before{content:\\\"\\\\f411\\\"}.fa-wpbeginner:before{content:\\\"\\\\f297\\\"}.fa-wpexplorer:before{content:\\\"\\\\f2de\\\"}.fa-wpforms:before{content:\\\"\\\\f298\\\"}.fa-wpressr:before{content:\\\"\\\\f3e4\\\"}.fa-wrench:before{content:\\\"\\\\f0ad\\\"}.fa-x-ray:before{content:\\\"\\\\f497\\\"}.fa-xbox:before{content:\\\"\\\\f412\\\"}.fa-xing:before{content:\\\"\\\\f168\\\"}.fa-xing-square:before{content:\\\"\\\\f169\\\"}.fa-y-combinator:before{content:\\\"\\\\f23b\\\"}.fa-yahoo:before{content:\\\"\\\\f19e\\\"}.fa-yammer:before{content:\\\"\\\\f840\\\"}.fa-yandex:before{content:\\\"\\\\f413\\\"}.fa-yandex-international:before{content:\\\"\\\\f414\\\"}.fa-yarn:before{content:\\\"\\\\f7e3\\\"}.fa-yelp:before{content:\\\"\\\\f1e9\\\"}.fa-yen-sign:before{content:\\\"\\\\f157\\\"}.fa-yin-yang:before{content:\\\"\\\\f6ad\\\"}.fa-yoast:before{content:\\\"\\\\f2b1\\\"}.fa-youtube:before{content:\\\"\\\\f167\\\"}.fa-youtube-square:before{content:\\\"\\\\f431\\\"}.fa-zhihu:before{content:\\\"\\\\f63f\\\"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:\\\"Font Awesome 5 Brands\\\";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format(\\\"embedded-opentype\\\"),url(../webfonts/fa-brands-400.woff2) format(\\\"woff2\\\"),url(../webfonts/fa-brands-400.woff) format(\\\"woff\\\"),url(../webfonts/fa-brands-400.ttf) format(\\\"truetype\\\"),url(../webfonts/fa-brands-400.svg#fontawesome) format(\\\"svg\\\")}.fab{font-family:\\\"Font Awesome 5 Brands\\\"}@font-face{font-family:\\\"Font Awesome 5 Free\\\";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format(\\\"embedded-opentype\\\"),url(../webfonts/fa-regular-400.woff2) format(\\\"woff2\\\"),url(../webfonts/fa-regular-400.woff) format(\\\"woff\\\"),url(../webfonts/fa-regular-400.ttf) format(\\\"truetype\\\"),url(../webfonts/fa-regular-400.svg#fontawesome) format(\\\"svg\\\")}.fab,.far{font-weight:400}@font-face{font-family:\\\"Font Awesome 5 Free\\\";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format(\\\"embedded-opentype\\\"),url(../webfonts/fa-solid-900.woff2) format(\\\"woff2\\\"),url(../webfonts/fa-solid-900.woff) format(\\\"woff\\\"),url(../webfonts/fa-solid-900.ttf) format(\\\"truetype\\\"),url(../webfonts/fa-solid-900.svg#fontawesome) format(\\\"svg\\\")}.fa,.far,.fas{font-family:\\\"Font Awesome 5 Free\\\"}.fa,.fas{font-weight:900}\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = require(\"../../css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = require(\"leaflet/dist/images/marker-icon.png\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = require(\"leaflet/dist/images/marker-icon-2x.png\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = require(\"leaflet/dist/images/marker-shadow.png\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\nexports.push([module.id, \"/* Default icon options */\\n.leaflet-default-icon-icon {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \"), url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \"); /* normal[, Retina] */\\n\\tcursor: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \"), url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \"), auto; /* normal[, Retina], auto for compliance with cursor syntax */\\n\\twidth: 25px;\\n\\theight: 41px;\\n\\tmargin: -41px -12px; /* margin top and left to reversely position iconAnchor */\\n\\t}\\n.leaflet-default-icon-shadow {\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \"); /* normal[, Retina] */\\n\\tcursor: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \"), auto; /* normal[, Retina], auto */\\n\\twidth: 41px;\\n\\theight: 41px;\\n\\tmargin: -41px -12px; /* margin top and left to reversely position shadowAnchor */\\n\\t}\\n.leaflet-default-icon-popup {\\n\\tmargin: -34px 1px; /* margin top and left to position popupAnchor */\\n\\t}\\n.leaflet-default-icon-tooltip {\\n\\tmargin: -28px 16px; /* margin top and left to position tooltipAnchor, even if direction 'bottom' or 'right' */\\n\\t}\\n\", \"\",{\"version\":3,\"sources\":[\"leaflet-defaulticon-compatibility.webpack.css\"],\"names\":[],\"mappings\":\"AAAA,yBAAyB;AACzB;CACC,kGAAyG,EAAE,qBAAqB;CAChI,8FAAqG,EAAE,6DAA6D;CACpK,WAAW;CACX,YAAY;CACZ,mBAAmB,EAAE,yDAAyD;CAC9E;AACD;CACC,yDAA6D,EAAE,qBAAqB;CACpF,qDAAyD,EAAE,2BAA2B;CACtF,WAAW;CACX,YAAY;CACZ,mBAAmB,EAAE,2DAA2D;CAChF;AACD;CACC,iBAAiB,EAAE,gDAAgD;CACnE;AACD;CACC,kBAAkB,EAAE,yFAAyF;CAC7G\",\"file\":\"leaflet-defaulticon-compatibility.webpack.css\",\"sourcesContent\":[\"/* Default icon options */\\n.leaflet-default-icon-icon {\\n\\tbackground-image: url(~leaflet/dist/images/marker-icon.png), url(~leaflet/dist/images/marker-icon-2x.png); /* normal[, Retina] */\\n\\tcursor: url(~leaflet/dist/images/marker-icon.png), url(~leaflet/dist/images/marker-icon-2x.png), auto; /* normal[, Retina], auto for compliance with cursor syntax */\\n\\twidth: 25px;\\n\\theight: 41px;\\n\\tmargin: -41px -12px; /* margin top and left to reversely position iconAnchor */\\n\\t}\\n.leaflet-default-icon-shadow {\\n\\tbackground-image: url(~leaflet/dist/images/marker-shadow.png); /* normal[, Retina] */\\n\\tcursor: url(~leaflet/dist/images/marker-shadow.png), auto; /* normal[, Retina], auto */\\n\\twidth: 41px;\\n\\theight: 41px;\\n\\tmargin: -41px -12px; /* margin top and left to reversely position shadowAnchor */\\n\\t}\\n.leaflet-default-icon-popup {\\n\\tmargin: -34px 1px; /* margin top and left to position popupAnchor */\\n\\t}\\n.leaflet-default-icon-tooltip {\\n\\tmargin: -28px 16px; /* margin top and left to position tooltipAnchor, even if direction 'bottom' or 'right' */\\n\\t}\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \".marker-cluster-small {\\n\\tbackground-color: rgba(181, 226, 140, 0.6);\\n\\t}\\n.marker-cluster-small div {\\n\\tbackground-color: rgba(110, 204, 57, 0.6);\\n\\t}\\n.marker-cluster-medium {\\n\\tbackground-color: rgba(241, 211, 87, 0.6);\\n\\t}\\n.marker-cluster-medium div {\\n\\tbackground-color: rgba(240, 194, 12, 0.6);\\n\\t}\\n.marker-cluster-large {\\n\\tbackground-color: rgba(253, 156, 115, 0.6);\\n\\t}\\n.marker-cluster-large div {\\n\\tbackground-color: rgba(241, 128, 23, 0.6);\\n\\t}\\n/* IE 6-8 fallback colors */\\n.leaflet-oldie .marker-cluster-small {\\n\\tbackground-color: rgb(181, 226, 140);\\n\\t}\\n.leaflet-oldie .marker-cluster-small div {\\n\\tbackground-color: rgb(110, 204, 57);\\n\\t}\\n.leaflet-oldie .marker-cluster-medium {\\n\\tbackground-color: rgb(241, 211, 87);\\n\\t}\\n.leaflet-oldie .marker-cluster-medium div {\\n\\tbackground-color: rgb(240, 194, 12);\\n\\t}\\n.leaflet-oldie .marker-cluster-large {\\n\\tbackground-color: rgb(253, 156, 115);\\n\\t}\\n.leaflet-oldie .marker-cluster-large div {\\n\\tbackground-color: rgb(241, 128, 23);\\n}\\n.marker-cluster {\\n\\tbackground-clip: padding-box;\\n\\tborder-radius: 20px;\\n\\t}\\n.marker-cluster div {\\n\\twidth: 30px;\\n\\theight: 30px;\\n\\tmargin-left: 5px;\\n\\tmargin-top: 5px;\\n\\n\\ttext-align: center;\\n\\tborder-radius: 15px;\\n\\tfont: 12px \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\n\\t}\\n.marker-cluster span {\\n\\tline-height: 30px;\\n\\t}\", \"\",{\"version\":3,\"sources\":[\"MarkerCluster.Default.css\"],\"names\":[],\"mappings\":\"AAAA;CACC,0CAA0C;CAC1C;AACD;CACC,yCAAyC;CACzC;AAED;CACC,yCAAyC;CACzC;AACD;CACC,yCAAyC;CACzC;AAED;CACC,0CAA0C;CAC1C;AACD;CACC,yCAAyC;CACzC;AAEA,2BAA2B;AAC5B;CACC,oCAAoC;CACpC;AACD;CACC,mCAAmC;CACnC;AAED;CACC,mCAAmC;CACnC;AACD;CACC,mCAAmC;CACnC;AAED;CACC,oCAAoC;CACpC;AACD;CACC,mCAAmC;AACpC;AAEA;CACC,4BAA4B;CAC5B,mBAAmB;CACnB;AACD;CACC,WAAW;CACX,YAAY;CACZ,gBAAgB;CAChB,eAAe;;CAEf,kBAAkB;CAClB,mBAAmB;CACnB,yDAAyD;CACzD;AACD;CACC,iBAAiB;CACjB\",\"file\":\"MarkerCluster.Default.css\",\"sourcesContent\":[\".marker-cluster-small {\\n\\tbackground-color: rgba(181, 226, 140, 0.6);\\n\\t}\\n.marker-cluster-small div {\\n\\tbackground-color: rgba(110, 204, 57, 0.6);\\n\\t}\\n\\n.marker-cluster-medium {\\n\\tbackground-color: rgba(241, 211, 87, 0.6);\\n\\t}\\n.marker-cluster-medium div {\\n\\tbackground-color: rgba(240, 194, 12, 0.6);\\n\\t}\\n\\n.marker-cluster-large {\\n\\tbackground-color: rgba(253, 156, 115, 0.6);\\n\\t}\\n.marker-cluster-large div {\\n\\tbackground-color: rgba(241, 128, 23, 0.6);\\n\\t}\\n\\n\\t/* IE 6-8 fallback colors */\\n.leaflet-oldie .marker-cluster-small {\\n\\tbackground-color: rgb(181, 226, 140);\\n\\t}\\n.leaflet-oldie .marker-cluster-small div {\\n\\tbackground-color: rgb(110, 204, 57);\\n\\t}\\n\\n.leaflet-oldie .marker-cluster-medium {\\n\\tbackground-color: rgb(241, 211, 87);\\n\\t}\\n.leaflet-oldie .marker-cluster-medium div {\\n\\tbackground-color: rgb(240, 194, 12);\\n\\t}\\n\\n.leaflet-oldie .marker-cluster-large {\\n\\tbackground-color: rgb(253, 156, 115);\\n\\t}\\n.leaflet-oldie .marker-cluster-large div {\\n\\tbackground-color: rgb(241, 128, 23);\\n}\\n\\n.marker-cluster {\\n\\tbackground-clip: padding-box;\\n\\tborder-radius: 20px;\\n\\t}\\n.marker-cluster div {\\n\\twidth: 30px;\\n\\theight: 30px;\\n\\tmargin-left: 5px;\\n\\tmargin-top: 5px;\\n\\n\\ttext-align: center;\\n\\tborder-radius: 15px;\\n\\tfont: 12px \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\n\\t}\\n.marker-cluster span {\\n\\tline-height: 30px;\\n\\t}\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \".leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {\\n\\ttransition: transform 0.3s ease-out, opacity 0.3s ease-in;\\n}\\n\\n.leaflet-cluster-spider-leg {\\n\\t/* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */\\n\\ttransition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"MarkerCluster.css\"],\"names\":[],\"mappings\":\"AAAA;CAIC,yDAAyD;AAC1D;;AAEA;CACC,2HAA2H;CAI3H,wEAAwE;AACzE\",\"file\":\"MarkerCluster.css\",\"sourcesContent\":[\".leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {\\n\\t-webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;\\n\\t-moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;\\n\\t-o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;\\n\\ttransition: transform 0.3s ease-out, opacity 0.3s ease-in;\\n}\\n\\n.leaflet-cluster-spider-leg {\\n\\t/* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */\\n\\t-webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;\\n\\t-moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;\\n\\t-o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;\\n\\ttransition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;\\n}\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = require(\"../../css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = require(\"./images/layers.png\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = require(\"./images/layers-2x.png\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = require(\"./images/marker-icon.png\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\nexports.push([module.id, \"/* required styles */\\r\\n\\r\\n.leaflet-pane,\\r\\n.leaflet-tile,\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow,\\r\\n.leaflet-tile-container,\\r\\n.leaflet-pane > svg,\\r\\n.leaflet-pane > canvas,\\r\\n.leaflet-zoom-box,\\r\\n.leaflet-image-layer,\\r\\n.leaflet-layer {\\r\\n\\tposition: absolute;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container {\\r\\n\\toverflow: hidden;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tile,\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow {\\r\\n\\t-webkit-user-select: none;\\r\\n\\t -moz-user-select: none;\\r\\n\\t -ms-user-select: none;\\r\\n\\t user-select: none;\\r\\n\\t -webkit-user-drag: none;\\r\\n\\t}\\r\\n\\r\\n/* Prevents IE11 from highlighting tiles in blue */\\r\\n\\r\\n.leaflet-tile::-moz-selection {\\r\\n\\tbackground: transparent;\\r\\n}\\r\\n\\r\\n.leaflet-tile::selection {\\r\\n\\tbackground: transparent;\\r\\n}\\r\\n\\r\\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\\r\\n\\r\\n.leaflet-safari .leaflet-tile {\\r\\n\\timage-rendering: -webkit-optimize-contrast;\\r\\n\\t}\\r\\n\\r\\n/* hack that prevents hw layers \\\"stretching\\\" when loading new tiles */\\r\\n\\r\\n.leaflet-safari .leaflet-tile-container {\\r\\n\\twidth: 1600px;\\r\\n\\theight: 1600px;\\r\\n\\t-webkit-transform-origin: 0 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow {\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\\r\\n\\r\\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\\r\\n\\r\\n.leaflet-container .leaflet-overlay-pane svg,\\r\\n.leaflet-container .leaflet-marker-pane img,\\r\\n.leaflet-container .leaflet-shadow-pane img,\\r\\n.leaflet-container .leaflet-tile-pane img,\\r\\n.leaflet-container img.leaflet-image-layer,\\r\\n.leaflet-container .leaflet-tile {\\r\\n\\tmax-width: none !important;\\r\\n\\tmax-height: none !important;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container.leaflet-touch-zoom {\\r\\n\\ttouch-action: pan-x pan-y;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container.leaflet-touch-drag {\\r\\n\\t/* Fallback for FF which doesn't support pinch-zoom */\\r\\n\\ttouch-action: none;\\r\\n\\ttouch-action: pinch-zoom;\\r\\n}\\r\\n\\r\\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\\r\\n\\ttouch-action: none;\\r\\n}\\r\\n\\r\\n.leaflet-container {\\r\\n\\t-webkit-tap-highlight-color: transparent;\\r\\n}\\r\\n\\r\\n.leaflet-container a {\\r\\n\\t-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\\r\\n}\\r\\n\\r\\n.leaflet-tile {\\r\\n\\t-webkit-filter: inherit;\\r\\n\\t filter: inherit;\\r\\n\\tvisibility: hidden;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tile-loaded {\\r\\n\\tvisibility: inherit;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-box {\\r\\n\\twidth: 0;\\r\\n\\theight: 0;\\r\\n\\tbox-sizing: border-box;\\r\\n\\tz-index: 800;\\r\\n\\t}\\r\\n\\r\\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\\r\\n\\r\\n.leaflet-overlay-pane svg {\\r\\n\\t-moz-user-select: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-pane { z-index: 400; }\\r\\n\\r\\n.leaflet-tile-pane { z-index: 200; }\\r\\n\\r\\n.leaflet-overlay-pane { z-index: 400; }\\r\\n\\r\\n.leaflet-shadow-pane { z-index: 500; }\\r\\n\\r\\n.leaflet-marker-pane { z-index: 600; }\\r\\n\\r\\n.leaflet-tooltip-pane { z-index: 650; }\\r\\n\\r\\n.leaflet-popup-pane { z-index: 700; }\\r\\n\\r\\n.leaflet-map-pane canvas { z-index: 100; }\\r\\n\\r\\n.leaflet-map-pane svg { z-index: 200; }\\r\\n\\r\\n.leaflet-vml-shape {\\r\\n\\twidth: 1px;\\r\\n\\theight: 1px;\\r\\n\\t}\\r\\n\\r\\n.lvml {\\r\\n\\tbehavior: url(#default#VML);\\r\\n\\tdisplay: inline-block;\\r\\n\\tposition: absolute;\\r\\n\\t}\\r\\n\\r\\n/* control positioning */\\r\\n\\r\\n.leaflet-control {\\r\\n\\tposition: relative;\\r\\n\\tz-index: 800;\\r\\n\\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n\\r\\n.leaflet-top,\\r\\n.leaflet-bottom {\\r\\n\\tposition: absolute;\\r\\n\\tz-index: 1000;\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-top {\\r\\n\\ttop: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-right {\\r\\n\\tright: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bottom {\\r\\n\\tbottom: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-left {\\r\\n\\tleft: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control {\\r\\n\\tfloat: left;\\r\\n\\tclear: both;\\r\\n\\t}\\r\\n\\r\\n.leaflet-right .leaflet-control {\\r\\n\\tfloat: right;\\r\\n\\t}\\r\\n\\r\\n.leaflet-top .leaflet-control {\\r\\n\\tmargin-top: 10px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bottom .leaflet-control {\\r\\n\\tmargin-bottom: 10px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-left .leaflet-control {\\r\\n\\tmargin-left: 10px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-right .leaflet-control {\\r\\n\\tmargin-right: 10px;\\r\\n\\t}\\r\\n\\r\\n/* zoom and fade animations */\\r\\n\\r\\n.leaflet-fade-anim .leaflet-tile {\\r\\n\\twill-change: opacity;\\r\\n\\t}\\r\\n\\r\\n.leaflet-fade-anim .leaflet-popup {\\r\\n\\topacity: 0;\\r\\n\\ttransition: opacity 0.2s linear;\\r\\n\\t}\\r\\n\\r\\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\\r\\n\\topacity: 1;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-animated {\\r\\n\\ttransform-origin: 0 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-anim .leaflet-zoom-animated {\\r\\n\\twill-change: transform;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-anim .leaflet-zoom-animated {\\r\\n\\ttransition: transform 0.25s cubic-bezier(0,0,0.25,1);\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-anim .leaflet-tile,\\r\\n.leaflet-pan-anim .leaflet-tile {\\r\\n\\ttransition: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-anim .leaflet-zoom-hide {\\r\\n\\tvisibility: hidden;\\r\\n\\t}\\r\\n\\r\\n/* cursors */\\r\\n\\r\\n.leaflet-interactive {\\r\\n\\tcursor: pointer;\\r\\n\\t}\\r\\n\\r\\n.leaflet-grab {\\r\\n\\tcursor: -webkit-grab;\\r\\n\\tcursor: grab;\\r\\n\\t}\\r\\n\\r\\n.leaflet-crosshair,\\r\\n.leaflet-crosshair .leaflet-interactive {\\r\\n\\tcursor: crosshair;\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-pane,\\r\\n.leaflet-control {\\r\\n\\tcursor: auto;\\r\\n\\t}\\r\\n\\r\\n.leaflet-dragging .leaflet-grab,\\r\\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\\r\\n.leaflet-dragging .leaflet-marker-draggable {\\r\\n\\tcursor: move;\\r\\n\\tcursor: -webkit-grabbing;\\r\\n\\tcursor: grabbing;\\r\\n\\t}\\r\\n\\r\\n/* marker & overlays interactivity */\\r\\n\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow,\\r\\n.leaflet-image-layer,\\r\\n.leaflet-pane > svg path,\\r\\n.leaflet-tile-container {\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-marker-icon.leaflet-interactive,\\r\\n.leaflet-image-layer.leaflet-interactive,\\r\\n.leaflet-pane > svg path.leaflet-interactive,\\r\\nsvg.leaflet-image-layer.leaflet-interactive path {\\r\\n\\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n\\r\\n/* visual tweaks */\\r\\n\\r\\n.leaflet-container {\\r\\n\\tbackground: #ddd;\\r\\n\\toutline: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container a {\\r\\n\\tcolor: #0078A8;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container a.leaflet-active {\\r\\n\\toutline: 2px solid orange;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-box {\\r\\n\\tborder: 2px dotted #38f;\\r\\n\\tbackground: rgba(255,255,255,0.5);\\r\\n\\t}\\r\\n\\r\\n/* general typography */\\r\\n\\r\\n.leaflet-container {\\r\\n\\tfont: 12px/1.5 \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n\\t}\\r\\n\\r\\n/* general toolbar styles */\\r\\n\\r\\n.leaflet-bar {\\r\\n\\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\\r\\n\\tborder-radius: 4px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bar a,\\r\\n.leaflet-bar a:hover {\\r\\n\\tbackground-color: #fff;\\r\\n\\tborder-bottom: 1px solid #ccc;\\r\\n\\twidth: 26px;\\r\\n\\theight: 26px;\\r\\n\\tline-height: 26px;\\r\\n\\tdisplay: block;\\r\\n\\ttext-align: center;\\r\\n\\ttext-decoration: none;\\r\\n\\tcolor: black;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bar a,\\r\\n.leaflet-control-layers-toggle {\\r\\n\\tbackground-position: 50% 50%;\\r\\n\\tbackground-repeat: no-repeat;\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bar a:hover {\\r\\n\\tbackground-color: #f4f4f4;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bar a:first-child {\\r\\n\\tborder-top-left-radius: 4px;\\r\\n\\tborder-top-right-radius: 4px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bar a:last-child {\\r\\n\\tborder-bottom-left-radius: 4px;\\r\\n\\tborder-bottom-right-radius: 4px;\\r\\n\\tborder-bottom: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bar a.leaflet-disabled {\\r\\n\\tcursor: default;\\r\\n\\tbackground-color: #f4f4f4;\\r\\n\\tcolor: #bbb;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-bar a {\\r\\n\\twidth: 30px;\\r\\n\\theight: 30px;\\r\\n\\tline-height: 30px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-bar a:first-child {\\r\\n\\tborder-top-left-radius: 2px;\\r\\n\\tborder-top-right-radius: 2px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-bar a:last-child {\\r\\n\\tborder-bottom-left-radius: 2px;\\r\\n\\tborder-bottom-right-radius: 2px;\\r\\n\\t}\\r\\n\\r\\n/* zoom control */\\r\\n\\r\\n.leaflet-control-zoom-in,\\r\\n.leaflet-control-zoom-out {\\r\\n\\tfont: bold 18px 'Lucida Console', Monaco, monospace;\\r\\n\\ttext-indent: 1px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\\r\\n\\tfont-size: 22px;\\r\\n\\t}\\r\\n\\r\\n/* layers control */\\r\\n\\r\\n.leaflet-control-layers {\\r\\n\\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\\r\\n\\tbackground: #fff;\\r\\n\\tborder-radius: 5px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers-toggle {\\r\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\r\\n\\twidth: 36px;\\r\\n\\theight: 36px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-retina .leaflet-control-layers-toggle {\\r\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\r\\n\\tbackground-size: 26px 26px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-layers-toggle {\\r\\n\\twidth: 44px;\\r\\n\\theight: 44px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers .leaflet-control-layers-list,\\r\\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\\r\\n\\tdisplay: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\\r\\n\\tdisplay: block;\\r\\n\\tposition: relative;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers-expanded {\\r\\n\\tpadding: 6px 10px 6px 6px;\\r\\n\\tcolor: #333;\\r\\n\\tbackground: #fff;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers-scrollbar {\\r\\n\\toverflow-y: scroll;\\r\\n\\toverflow-x: hidden;\\r\\n\\tpadding-right: 5px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers-selector {\\r\\n\\tmargin-top: 2px;\\r\\n\\tposition: relative;\\r\\n\\ttop: 1px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers label {\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-layers-separator {\\r\\n\\theight: 0;\\r\\n\\tborder-top: 1px solid #ddd;\\r\\n\\tmargin: 5px -10px 5px -6px;\\r\\n\\t}\\r\\n\\r\\n/* Default icon URLs */\\r\\n\\r\\n.leaflet-default-icon-path {\\r\\n\\tbackground-image: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \");\\r\\n\\t}\\r\\n\\r\\n/* attribution and scale controls */\\r\\n\\r\\n.leaflet-container .leaflet-control-attribution {\\r\\n\\tbackground: #fff;\\r\\n\\tbackground: rgba(255, 255, 255, 0.7);\\r\\n\\tmargin: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-attribution,\\r\\n.leaflet-control-scale-line {\\r\\n\\tpadding: 0 5px;\\r\\n\\tcolor: #333;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-attribution a {\\r\\n\\ttext-decoration: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-attribution a:hover {\\r\\n\\ttext-decoration: underline;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container .leaflet-control-attribution,\\r\\n.leaflet-container .leaflet-control-scale {\\r\\n\\tfont-size: 11px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-left .leaflet-control-scale {\\r\\n\\tmargin-left: 5px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-bottom .leaflet-control-scale {\\r\\n\\tmargin-bottom: 5px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-scale-line {\\r\\n\\tborder: 2px solid #777;\\r\\n\\tborder-top: none;\\r\\n\\tline-height: 1.1;\\r\\n\\tpadding: 2px 5px 1px;\\r\\n\\tfont-size: 11px;\\r\\n\\twhite-space: nowrap;\\r\\n\\toverflow: hidden;\\r\\n\\tbox-sizing: border-box;\\r\\n\\r\\n\\tbackground: #fff;\\r\\n\\tbackground: rgba(255, 255, 255, 0.5);\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-scale-line:not(:first-child) {\\r\\n\\tborder-top: 2px solid #777;\\r\\n\\tborder-bottom: none;\\r\\n\\tmargin-top: -2px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\\r\\n\\tborder-bottom: 2px solid #777;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-attribution,\\r\\n.leaflet-touch .leaflet-control-layers,\\r\\n.leaflet-touch .leaflet-bar {\\r\\n\\tbox-shadow: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-layers,\\r\\n.leaflet-touch .leaflet-bar {\\r\\n\\tborder: 2px solid rgba(0,0,0,0.2);\\r\\n\\tbackground-clip: padding-box;\\r\\n\\t}\\r\\n\\r\\n/* popup */\\r\\n\\r\\n.leaflet-popup {\\r\\n\\tposition: absolute;\\r\\n\\ttext-align: center;\\r\\n\\tmargin-bottom: 20px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-content-wrapper {\\r\\n\\tpadding: 1px;\\r\\n\\ttext-align: left;\\r\\n\\tborder-radius: 12px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-content {\\r\\n\\tmargin: 13px 19px;\\r\\n\\tline-height: 1.4;\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-content p {\\r\\n\\tmargin: 18px 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-tip-container {\\r\\n\\twidth: 40px;\\r\\n\\theight: 20px;\\r\\n\\tposition: absolute;\\r\\n\\tleft: 50%;\\r\\n\\tmargin-left: -20px;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-tip {\\r\\n\\twidth: 17px;\\r\\n\\theight: 17px;\\r\\n\\tpadding: 1px;\\r\\n\\r\\n\\tmargin: -10px auto 0;\\r\\n\\ttransform: rotate(45deg);\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-content-wrapper,\\r\\n.leaflet-popup-tip {\\r\\n\\tbackground: white;\\r\\n\\tcolor: #333;\\r\\n\\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\\r\\n\\t}\\r\\n\\r\\n.leaflet-container a.leaflet-popup-close-button {\\r\\n\\tposition: absolute;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tpadding: 4px 4px 0 0;\\r\\n\\tborder: none;\\r\\n\\ttext-align: center;\\r\\n\\twidth: 18px;\\r\\n\\theight: 14px;\\r\\n\\tfont: 16px/14px Tahoma, Verdana, sans-serif;\\r\\n\\tcolor: #c3c3c3;\\r\\n\\ttext-decoration: none;\\r\\n\\tfont-weight: bold;\\r\\n\\tbackground: transparent;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container a.leaflet-popup-close-button:hover {\\r\\n\\tcolor: #999;\\r\\n\\t}\\r\\n\\r\\n.leaflet-popup-scrolled {\\r\\n\\toverflow: auto;\\r\\n\\tborder-bottom: 1px solid #ddd;\\r\\n\\tborder-top: 1px solid #ddd;\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-popup-content-wrapper {\\r\\n\\t-ms-zoom: 1;\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-popup-tip {\\r\\n\\twidth: 24px;\\r\\n\\tmargin: 0 auto;\\r\\n\\r\\n\\t-ms-filter: \\\"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\\\";\\r\\n\\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-popup-tip-container {\\r\\n\\tmargin-top: -1px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-control-zoom,\\r\\n.leaflet-oldie .leaflet-control-layers,\\r\\n.leaflet-oldie .leaflet-popup-content-wrapper,\\r\\n.leaflet-oldie .leaflet-popup-tip {\\r\\n\\tborder: 1px solid #999;\\r\\n\\t}\\r\\n\\r\\n/* div icon */\\r\\n\\r\\n.leaflet-div-icon {\\r\\n\\tbackground: #fff;\\r\\n\\tborder: 1px solid #666;\\r\\n\\t}\\r\\n\\r\\n/* Tooltip */\\r\\n\\r\\n/* Base styles for the element that has a tooltip */\\r\\n\\r\\n.leaflet-tooltip {\\r\\n\\tposition: absolute;\\r\\n\\tpadding: 6px;\\r\\n\\tbackground-color: #fff;\\r\\n\\tborder: 1px solid #fff;\\r\\n\\tborder-radius: 3px;\\r\\n\\tcolor: #222;\\r\\n\\twhite-space: nowrap;\\r\\n\\t-webkit-user-select: none;\\r\\n\\t-moz-user-select: none;\\r\\n\\t-ms-user-select: none;\\r\\n\\tuser-select: none;\\r\\n\\tpointer-events: none;\\r\\n\\tbox-shadow: 0 1px 3px rgba(0,0,0,0.4);\\r\\n\\t}\\r\\n\\r\\n.leaflet-tooltip.leaflet-clickable {\\r\\n\\tcursor: pointer;\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tooltip-top:before,\\r\\n.leaflet-tooltip-bottom:before,\\r\\n.leaflet-tooltip-left:before,\\r\\n.leaflet-tooltip-right:before {\\r\\n\\tposition: absolute;\\r\\n\\tpointer-events: none;\\r\\n\\tborder: 6px solid transparent;\\r\\n\\tbackground: transparent;\\r\\n\\tcontent: \\\"\\\";\\r\\n\\t}\\r\\n\\r\\n/* Directions */\\r\\n\\r\\n.leaflet-tooltip-bottom {\\r\\n\\tmargin-top: 6px;\\r\\n}\\r\\n\\r\\n.leaflet-tooltip-top {\\r\\n\\tmargin-top: -6px;\\r\\n}\\r\\n\\r\\n.leaflet-tooltip-bottom:before,\\r\\n.leaflet-tooltip-top:before {\\r\\n\\tleft: 50%;\\r\\n\\tmargin-left: -6px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tooltip-top:before {\\r\\n\\tbottom: 0;\\r\\n\\tmargin-bottom: -12px;\\r\\n\\tborder-top-color: #fff;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tooltip-bottom:before {\\r\\n\\ttop: 0;\\r\\n\\tmargin-top: -12px;\\r\\n\\tmargin-left: -6px;\\r\\n\\tborder-bottom-color: #fff;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tooltip-left {\\r\\n\\tmargin-left: -6px;\\r\\n}\\r\\n\\r\\n.leaflet-tooltip-right {\\r\\n\\tmargin-left: 6px;\\r\\n}\\r\\n\\r\\n.leaflet-tooltip-left:before,\\r\\n.leaflet-tooltip-right:before {\\r\\n\\ttop: 50%;\\r\\n\\tmargin-top: -6px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tooltip-left:before {\\r\\n\\tright: 0;\\r\\n\\tmargin-right: -12px;\\r\\n\\tborder-left-color: #fff;\\r\\n\\t}\\r\\n\\r\\n.leaflet-tooltip-right:before {\\r\\n\\tleft: 0;\\r\\n\\tmargin-left: -12px;\\r\\n\\tborder-right-color: #fff;\\r\\n\\t}\\r\\n\", \"\",{\"version\":3,\"sources\":[\"leaflet.css\"],\"names\":[],\"mappings\":\"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\",\"file\":\"leaflet.css\",\"sourcesContent\":[\"/* required styles */\\r\\n\\r\\n.leaflet-pane,\\r\\n.leaflet-tile,\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow,\\r\\n.leaflet-tile-container,\\r\\n.leaflet-pane > svg,\\r\\n.leaflet-pane > canvas,\\r\\n.leaflet-zoom-box,\\r\\n.leaflet-image-layer,\\r\\n.leaflet-layer {\\r\\n\\tposition: absolute;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\t}\\r\\n.leaflet-container {\\r\\n\\toverflow: hidden;\\r\\n\\t}\\r\\n.leaflet-tile,\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow {\\r\\n\\t-webkit-user-select: none;\\r\\n\\t -moz-user-select: none;\\r\\n\\t user-select: none;\\r\\n\\t -webkit-user-drag: none;\\r\\n\\t}\\r\\n/* Prevents IE11 from highlighting tiles in blue */\\r\\n.leaflet-tile::selection {\\r\\n\\tbackground: transparent;\\r\\n}\\r\\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\\r\\n.leaflet-safari .leaflet-tile {\\r\\n\\timage-rendering: -webkit-optimize-contrast;\\r\\n\\t}\\r\\n/* hack that prevents hw layers \\\"stretching\\\" when loading new tiles */\\r\\n.leaflet-safari .leaflet-tile-container {\\r\\n\\twidth: 1600px;\\r\\n\\theight: 1600px;\\r\\n\\t-webkit-transform-origin: 0 0;\\r\\n\\t}\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow {\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\\r\\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\\r\\n.leaflet-container .leaflet-overlay-pane svg,\\r\\n.leaflet-container .leaflet-marker-pane img,\\r\\n.leaflet-container .leaflet-shadow-pane img,\\r\\n.leaflet-container .leaflet-tile-pane img,\\r\\n.leaflet-container img.leaflet-image-layer,\\r\\n.leaflet-container .leaflet-tile {\\r\\n\\tmax-width: none !important;\\r\\n\\tmax-height: none !important;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container.leaflet-touch-zoom {\\r\\n\\t-ms-touch-action: pan-x pan-y;\\r\\n\\ttouch-action: pan-x pan-y;\\r\\n\\t}\\r\\n.leaflet-container.leaflet-touch-drag {\\r\\n\\t-ms-touch-action: pinch-zoom;\\r\\n\\t/* Fallback for FF which doesn't support pinch-zoom */\\r\\n\\ttouch-action: none;\\r\\n\\ttouch-action: pinch-zoom;\\r\\n}\\r\\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\\r\\n\\t-ms-touch-action: none;\\r\\n\\ttouch-action: none;\\r\\n}\\r\\n.leaflet-container {\\r\\n\\t-webkit-tap-highlight-color: transparent;\\r\\n}\\r\\n.leaflet-container a {\\r\\n\\t-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\\r\\n}\\r\\n.leaflet-tile {\\r\\n\\tfilter: inherit;\\r\\n\\tvisibility: hidden;\\r\\n\\t}\\r\\n.leaflet-tile-loaded {\\r\\n\\tvisibility: inherit;\\r\\n\\t}\\r\\n.leaflet-zoom-box {\\r\\n\\twidth: 0;\\r\\n\\theight: 0;\\r\\n\\t-moz-box-sizing: border-box;\\r\\n\\t box-sizing: border-box;\\r\\n\\tz-index: 800;\\r\\n\\t}\\r\\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\\r\\n.leaflet-overlay-pane svg {\\r\\n\\t-moz-user-select: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-pane { z-index: 400; }\\r\\n\\r\\n.leaflet-tile-pane { z-index: 200; }\\r\\n.leaflet-overlay-pane { z-index: 400; }\\r\\n.leaflet-shadow-pane { z-index: 500; }\\r\\n.leaflet-marker-pane { z-index: 600; }\\r\\n.leaflet-tooltip-pane { z-index: 650; }\\r\\n.leaflet-popup-pane { z-index: 700; }\\r\\n\\r\\n.leaflet-map-pane canvas { z-index: 100; }\\r\\n.leaflet-map-pane svg { z-index: 200; }\\r\\n\\r\\n.leaflet-vml-shape {\\r\\n\\twidth: 1px;\\r\\n\\theight: 1px;\\r\\n\\t}\\r\\n.lvml {\\r\\n\\tbehavior: url(#default#VML);\\r\\n\\tdisplay: inline-block;\\r\\n\\tposition: absolute;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* control positioning */\\r\\n\\r\\n.leaflet-control {\\r\\n\\tposition: relative;\\r\\n\\tz-index: 800;\\r\\n\\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n.leaflet-top,\\r\\n.leaflet-bottom {\\r\\n\\tposition: absolute;\\r\\n\\tz-index: 1000;\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n.leaflet-top {\\r\\n\\ttop: 0;\\r\\n\\t}\\r\\n.leaflet-right {\\r\\n\\tright: 0;\\r\\n\\t}\\r\\n.leaflet-bottom {\\r\\n\\tbottom: 0;\\r\\n\\t}\\r\\n.leaflet-left {\\r\\n\\tleft: 0;\\r\\n\\t}\\r\\n.leaflet-control {\\r\\n\\tfloat: left;\\r\\n\\tclear: both;\\r\\n\\t}\\r\\n.leaflet-right .leaflet-control {\\r\\n\\tfloat: right;\\r\\n\\t}\\r\\n.leaflet-top .leaflet-control {\\r\\n\\tmargin-top: 10px;\\r\\n\\t}\\r\\n.leaflet-bottom .leaflet-control {\\r\\n\\tmargin-bottom: 10px;\\r\\n\\t}\\r\\n.leaflet-left .leaflet-control {\\r\\n\\tmargin-left: 10px;\\r\\n\\t}\\r\\n.leaflet-right .leaflet-control {\\r\\n\\tmargin-right: 10px;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* zoom and fade animations */\\r\\n\\r\\n.leaflet-fade-anim .leaflet-tile {\\r\\n\\twill-change: opacity;\\r\\n\\t}\\r\\n.leaflet-fade-anim .leaflet-popup {\\r\\n\\topacity: 0;\\r\\n\\t-webkit-transition: opacity 0.2s linear;\\r\\n\\t -moz-transition: opacity 0.2s linear;\\r\\n\\t transition: opacity 0.2s linear;\\r\\n\\t}\\r\\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\\r\\n\\topacity: 1;\\r\\n\\t}\\r\\n.leaflet-zoom-animated {\\r\\n\\t-webkit-transform-origin: 0 0;\\r\\n\\t -ms-transform-origin: 0 0;\\r\\n\\t transform-origin: 0 0;\\r\\n\\t}\\r\\n.leaflet-zoom-anim .leaflet-zoom-animated {\\r\\n\\twill-change: transform;\\r\\n\\t}\\r\\n.leaflet-zoom-anim .leaflet-zoom-animated {\\r\\n\\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\\r\\n\\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\\r\\n\\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\\r\\n\\t}\\r\\n.leaflet-zoom-anim .leaflet-tile,\\r\\n.leaflet-pan-anim .leaflet-tile {\\r\\n\\t-webkit-transition: none;\\r\\n\\t -moz-transition: none;\\r\\n\\t transition: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-anim .leaflet-zoom-hide {\\r\\n\\tvisibility: hidden;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* cursors */\\r\\n\\r\\n.leaflet-interactive {\\r\\n\\tcursor: pointer;\\r\\n\\t}\\r\\n.leaflet-grab {\\r\\n\\tcursor: -webkit-grab;\\r\\n\\tcursor: -moz-grab;\\r\\n\\tcursor: grab;\\r\\n\\t}\\r\\n.leaflet-crosshair,\\r\\n.leaflet-crosshair .leaflet-interactive {\\r\\n\\tcursor: crosshair;\\r\\n\\t}\\r\\n.leaflet-popup-pane,\\r\\n.leaflet-control {\\r\\n\\tcursor: auto;\\r\\n\\t}\\r\\n.leaflet-dragging .leaflet-grab,\\r\\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\\r\\n.leaflet-dragging .leaflet-marker-draggable {\\r\\n\\tcursor: move;\\r\\n\\tcursor: -webkit-grabbing;\\r\\n\\tcursor: -moz-grabbing;\\r\\n\\tcursor: grabbing;\\r\\n\\t}\\r\\n\\r\\n/* marker & overlays interactivity */\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow,\\r\\n.leaflet-image-layer,\\r\\n.leaflet-pane > svg path,\\r\\n.leaflet-tile-container {\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-marker-icon.leaflet-interactive,\\r\\n.leaflet-image-layer.leaflet-interactive,\\r\\n.leaflet-pane > svg path.leaflet-interactive,\\r\\nsvg.leaflet-image-layer.leaflet-interactive path {\\r\\n\\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n\\r\\n/* visual tweaks */\\r\\n\\r\\n.leaflet-container {\\r\\n\\tbackground: #ddd;\\r\\n\\toutline: 0;\\r\\n\\t}\\r\\n.leaflet-container a {\\r\\n\\tcolor: #0078A8;\\r\\n\\t}\\r\\n.leaflet-container a.leaflet-active {\\r\\n\\toutline: 2px solid orange;\\r\\n\\t}\\r\\n.leaflet-zoom-box {\\r\\n\\tborder: 2px dotted #38f;\\r\\n\\tbackground: rgba(255,255,255,0.5);\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* general typography */\\r\\n.leaflet-container {\\r\\n\\tfont: 12px/1.5 \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* general toolbar styles */\\r\\n\\r\\n.leaflet-bar {\\r\\n\\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\\r\\n\\tborder-radius: 4px;\\r\\n\\t}\\r\\n.leaflet-bar a,\\r\\n.leaflet-bar a:hover {\\r\\n\\tbackground-color: #fff;\\r\\n\\tborder-bottom: 1px solid #ccc;\\r\\n\\twidth: 26px;\\r\\n\\theight: 26px;\\r\\n\\tline-height: 26px;\\r\\n\\tdisplay: block;\\r\\n\\ttext-align: center;\\r\\n\\ttext-decoration: none;\\r\\n\\tcolor: black;\\r\\n\\t}\\r\\n.leaflet-bar a,\\r\\n.leaflet-control-layers-toggle {\\r\\n\\tbackground-position: 50% 50%;\\r\\n\\tbackground-repeat: no-repeat;\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n.leaflet-bar a:hover {\\r\\n\\tbackground-color: #f4f4f4;\\r\\n\\t}\\r\\n.leaflet-bar a:first-child {\\r\\n\\tborder-top-left-radius: 4px;\\r\\n\\tborder-top-right-radius: 4px;\\r\\n\\t}\\r\\n.leaflet-bar a:last-child {\\r\\n\\tborder-bottom-left-radius: 4px;\\r\\n\\tborder-bottom-right-radius: 4px;\\r\\n\\tborder-bottom: none;\\r\\n\\t}\\r\\n.leaflet-bar a.leaflet-disabled {\\r\\n\\tcursor: default;\\r\\n\\tbackground-color: #f4f4f4;\\r\\n\\tcolor: #bbb;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-bar a {\\r\\n\\twidth: 30px;\\r\\n\\theight: 30px;\\r\\n\\tline-height: 30px;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-bar a:first-child {\\r\\n\\tborder-top-left-radius: 2px;\\r\\n\\tborder-top-right-radius: 2px;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-bar a:last-child {\\r\\n\\tborder-bottom-left-radius: 2px;\\r\\n\\tborder-bottom-right-radius: 2px;\\r\\n\\t}\\r\\n\\r\\n/* zoom control */\\r\\n\\r\\n.leaflet-control-zoom-in,\\r\\n.leaflet-control-zoom-out {\\r\\n\\tfont: bold 18px 'Lucida Console', Monaco, monospace;\\r\\n\\ttext-indent: 1px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\\r\\n\\tfont-size: 22px;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* layers control */\\r\\n\\r\\n.leaflet-control-layers {\\r\\n\\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\\r\\n\\tbackground: #fff;\\r\\n\\tborder-radius: 5px;\\r\\n\\t}\\r\\n.leaflet-control-layers-toggle {\\r\\n\\tbackground-image: url(images/layers.png);\\r\\n\\twidth: 36px;\\r\\n\\theight: 36px;\\r\\n\\t}\\r\\n.leaflet-retina .leaflet-control-layers-toggle {\\r\\n\\tbackground-image: url(images/layers-2x.png);\\r\\n\\tbackground-size: 26px 26px;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-control-layers-toggle {\\r\\n\\twidth: 44px;\\r\\n\\theight: 44px;\\r\\n\\t}\\r\\n.leaflet-control-layers .leaflet-control-layers-list,\\r\\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\\r\\n\\tdisplay: none;\\r\\n\\t}\\r\\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\\r\\n\\tdisplay: block;\\r\\n\\tposition: relative;\\r\\n\\t}\\r\\n.leaflet-control-layers-expanded {\\r\\n\\tpadding: 6px 10px 6px 6px;\\r\\n\\tcolor: #333;\\r\\n\\tbackground: #fff;\\r\\n\\t}\\r\\n.leaflet-control-layers-scrollbar {\\r\\n\\toverflow-y: scroll;\\r\\n\\toverflow-x: hidden;\\r\\n\\tpadding-right: 5px;\\r\\n\\t}\\r\\n.leaflet-control-layers-selector {\\r\\n\\tmargin-top: 2px;\\r\\n\\tposition: relative;\\r\\n\\ttop: 1px;\\r\\n\\t}\\r\\n.leaflet-control-layers label {\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n.leaflet-control-layers-separator {\\r\\n\\theight: 0;\\r\\n\\tborder-top: 1px solid #ddd;\\r\\n\\tmargin: 5px -10px 5px -6px;\\r\\n\\t}\\r\\n\\r\\n/* Default icon URLs */\\r\\n.leaflet-default-icon-path {\\r\\n\\tbackground-image: url(images/marker-icon.png);\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* attribution and scale controls */\\r\\n\\r\\n.leaflet-container .leaflet-control-attribution {\\r\\n\\tbackground: #fff;\\r\\n\\tbackground: rgba(255, 255, 255, 0.7);\\r\\n\\tmargin: 0;\\r\\n\\t}\\r\\n.leaflet-control-attribution,\\r\\n.leaflet-control-scale-line {\\r\\n\\tpadding: 0 5px;\\r\\n\\tcolor: #333;\\r\\n\\t}\\r\\n.leaflet-control-attribution a {\\r\\n\\ttext-decoration: none;\\r\\n\\t}\\r\\n.leaflet-control-attribution a:hover {\\r\\n\\ttext-decoration: underline;\\r\\n\\t}\\r\\n.leaflet-container .leaflet-control-attribution,\\r\\n.leaflet-container .leaflet-control-scale {\\r\\n\\tfont-size: 11px;\\r\\n\\t}\\r\\n.leaflet-left .leaflet-control-scale {\\r\\n\\tmargin-left: 5px;\\r\\n\\t}\\r\\n.leaflet-bottom .leaflet-control-scale {\\r\\n\\tmargin-bottom: 5px;\\r\\n\\t}\\r\\n.leaflet-control-scale-line {\\r\\n\\tborder: 2px solid #777;\\r\\n\\tborder-top: none;\\r\\n\\tline-height: 1.1;\\r\\n\\tpadding: 2px 5px 1px;\\r\\n\\tfont-size: 11px;\\r\\n\\twhite-space: nowrap;\\r\\n\\toverflow: hidden;\\r\\n\\t-moz-box-sizing: border-box;\\r\\n\\t box-sizing: border-box;\\r\\n\\r\\n\\tbackground: #fff;\\r\\n\\tbackground: rgba(255, 255, 255, 0.5);\\r\\n\\t}\\r\\n.leaflet-control-scale-line:not(:first-child) {\\r\\n\\tborder-top: 2px solid #777;\\r\\n\\tborder-bottom: none;\\r\\n\\tmargin-top: -2px;\\r\\n\\t}\\r\\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\\r\\n\\tborder-bottom: 2px solid #777;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-attribution,\\r\\n.leaflet-touch .leaflet-control-layers,\\r\\n.leaflet-touch .leaflet-bar {\\r\\n\\tbox-shadow: none;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-control-layers,\\r\\n.leaflet-touch .leaflet-bar {\\r\\n\\tborder: 2px solid rgba(0,0,0,0.2);\\r\\n\\tbackground-clip: padding-box;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* popup */\\r\\n\\r\\n.leaflet-popup {\\r\\n\\tposition: absolute;\\r\\n\\ttext-align: center;\\r\\n\\tmargin-bottom: 20px;\\r\\n\\t}\\r\\n.leaflet-popup-content-wrapper {\\r\\n\\tpadding: 1px;\\r\\n\\ttext-align: left;\\r\\n\\tborder-radius: 12px;\\r\\n\\t}\\r\\n.leaflet-popup-content {\\r\\n\\tmargin: 13px 19px;\\r\\n\\tline-height: 1.4;\\r\\n\\t}\\r\\n.leaflet-popup-content p {\\r\\n\\tmargin: 18px 0;\\r\\n\\t}\\r\\n.leaflet-popup-tip-container {\\r\\n\\twidth: 40px;\\r\\n\\theight: 20px;\\r\\n\\tposition: absolute;\\r\\n\\tleft: 50%;\\r\\n\\tmargin-left: -20px;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n.leaflet-popup-tip {\\r\\n\\twidth: 17px;\\r\\n\\theight: 17px;\\r\\n\\tpadding: 1px;\\r\\n\\r\\n\\tmargin: -10px auto 0;\\r\\n\\r\\n\\t-webkit-transform: rotate(45deg);\\r\\n\\t -moz-transform: rotate(45deg);\\r\\n\\t -ms-transform: rotate(45deg);\\r\\n\\t transform: rotate(45deg);\\r\\n\\t}\\r\\n.leaflet-popup-content-wrapper,\\r\\n.leaflet-popup-tip {\\r\\n\\tbackground: white;\\r\\n\\tcolor: #333;\\r\\n\\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\\r\\n\\t}\\r\\n.leaflet-container a.leaflet-popup-close-button {\\r\\n\\tposition: absolute;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tpadding: 4px 4px 0 0;\\r\\n\\tborder: none;\\r\\n\\ttext-align: center;\\r\\n\\twidth: 18px;\\r\\n\\theight: 14px;\\r\\n\\tfont: 16px/14px Tahoma, Verdana, sans-serif;\\r\\n\\tcolor: #c3c3c3;\\r\\n\\ttext-decoration: none;\\r\\n\\tfont-weight: bold;\\r\\n\\tbackground: transparent;\\r\\n\\t}\\r\\n.leaflet-container a.leaflet-popup-close-button:hover {\\r\\n\\tcolor: #999;\\r\\n\\t}\\r\\n.leaflet-popup-scrolled {\\r\\n\\toverflow: auto;\\r\\n\\tborder-bottom: 1px solid #ddd;\\r\\n\\tborder-top: 1px solid #ddd;\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-popup-content-wrapper {\\r\\n\\t-ms-zoom: 1;\\r\\n\\t}\\r\\n.leaflet-oldie .leaflet-popup-tip {\\r\\n\\twidth: 24px;\\r\\n\\tmargin: 0 auto;\\r\\n\\r\\n\\t-ms-filter: \\\"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\\\";\\r\\n\\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\\r\\n\\t}\\r\\n.leaflet-oldie .leaflet-popup-tip-container {\\r\\n\\tmargin-top: -1px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-control-zoom,\\r\\n.leaflet-oldie .leaflet-control-layers,\\r\\n.leaflet-oldie .leaflet-popup-content-wrapper,\\r\\n.leaflet-oldie .leaflet-popup-tip {\\r\\n\\tborder: 1px solid #999;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* div icon */\\r\\n\\r\\n.leaflet-div-icon {\\r\\n\\tbackground: #fff;\\r\\n\\tborder: 1px solid #666;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* Tooltip */\\r\\n/* Base styles for the element that has a tooltip */\\r\\n.leaflet-tooltip {\\r\\n\\tposition: absolute;\\r\\n\\tpadding: 6px;\\r\\n\\tbackground-color: #fff;\\r\\n\\tborder: 1px solid #fff;\\r\\n\\tborder-radius: 3px;\\r\\n\\tcolor: #222;\\r\\n\\twhite-space: nowrap;\\r\\n\\t-webkit-user-select: none;\\r\\n\\t-moz-user-select: none;\\r\\n\\t-ms-user-select: none;\\r\\n\\tuser-select: none;\\r\\n\\tpointer-events: none;\\r\\n\\tbox-shadow: 0 1px 3px rgba(0,0,0,0.4);\\r\\n\\t}\\r\\n.leaflet-tooltip.leaflet-clickable {\\r\\n\\tcursor: pointer;\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n.leaflet-tooltip-top:before,\\r\\n.leaflet-tooltip-bottom:before,\\r\\n.leaflet-tooltip-left:before,\\r\\n.leaflet-tooltip-right:before {\\r\\n\\tposition: absolute;\\r\\n\\tpointer-events: none;\\r\\n\\tborder: 6px solid transparent;\\r\\n\\tbackground: transparent;\\r\\n\\tcontent: \\\"\\\";\\r\\n\\t}\\r\\n\\r\\n/* Directions */\\r\\n\\r\\n.leaflet-tooltip-bottom {\\r\\n\\tmargin-top: 6px;\\r\\n}\\r\\n.leaflet-tooltip-top {\\r\\n\\tmargin-top: -6px;\\r\\n}\\r\\n.leaflet-tooltip-bottom:before,\\r\\n.leaflet-tooltip-top:before {\\r\\n\\tleft: 50%;\\r\\n\\tmargin-left: -6px;\\r\\n\\t}\\r\\n.leaflet-tooltip-top:before {\\r\\n\\tbottom: 0;\\r\\n\\tmargin-bottom: -12px;\\r\\n\\tborder-top-color: #fff;\\r\\n\\t}\\r\\n.leaflet-tooltip-bottom:before {\\r\\n\\ttop: 0;\\r\\n\\tmargin-top: -12px;\\r\\n\\tmargin-left: -6px;\\r\\n\\tborder-bottom-color: #fff;\\r\\n\\t}\\r\\n.leaflet-tooltip-left {\\r\\n\\tmargin-left: -6px;\\r\\n}\\r\\n.leaflet-tooltip-right {\\r\\n\\tmargin-left: 6px;\\r\\n}\\r\\n.leaflet-tooltip-left:before,\\r\\n.leaflet-tooltip-right:before {\\r\\n\\ttop: 50%;\\r\\n\\tmargin-top: -6px;\\r\\n\\t}\\r\\n.leaflet-tooltip-left:before {\\r\\n\\tright: 0;\\r\\n\\tmargin-right: -12px;\\r\\n\\tborder-left-color: #fff;\\r\\n\\t}\\r\\n.leaflet-tooltip-right:before {\\r\\n\\tleft: 0;\\r\\n\\tmargin-left: -12px;\\r\\n\\tborder-right-color: #fff;\\r\\n\\t}\\r\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \".rc-slider {\\n position: relative;\\n height: 14px;\\n padding: 5px 0;\\n width: 100%;\\n border-radius: 6px;\\n touch-action: none;\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider * {\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider-rail {\\n position: absolute;\\n width: 100%;\\n background-color: #e9e9e9;\\n height: 4px;\\n border-radius: 6px;\\n}\\n.rc-slider-track {\\n position: absolute;\\n left: 0;\\n height: 4px;\\n border-radius: 6px;\\n background-color: #abe2fb;\\n}\\n.rc-slider-handle {\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n cursor: pointer;\\n cursor: -webkit-grab;\\n margin-top: -5px;\\n cursor: grab;\\n border-radius: 50%;\\n border: solid 2px #96dbfa;\\n background-color: #fff;\\n touch-action: pan-x;\\n}\\n.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging {\\n border-color: #57c5f7;\\n box-shadow: 0 0 0 5px #96dbfa;\\n}\\n.rc-slider-handle:focus {\\n outline: none;\\n}\\n.rc-slider-handle-click-focused:focus {\\n border-color: #96dbfa;\\n box-shadow: unset;\\n}\\n.rc-slider-handle:hover {\\n border-color: #57c5f7;\\n}\\n.rc-slider-handle:active {\\n border-color: #57c5f7;\\n box-shadow: 0 0 5px #57c5f7;\\n cursor: -webkit-grabbing;\\n cursor: grabbing;\\n}\\n.rc-slider-mark {\\n position: absolute;\\n top: 18px;\\n left: 0;\\n width: 100%;\\n font-size: 12px;\\n}\\n.rc-slider-mark-text {\\n position: absolute;\\n display: inline-block;\\n vertical-align: middle;\\n text-align: center;\\n cursor: pointer;\\n color: #999;\\n}\\n.rc-slider-mark-text-active {\\n color: #666;\\n}\\n.rc-slider-step {\\n position: absolute;\\n width: 100%;\\n height: 4px;\\n background: transparent;\\n}\\n.rc-slider-dot {\\n position: absolute;\\n bottom: -2px;\\n margin-left: -4px;\\n width: 8px;\\n height: 8px;\\n border: 2px solid #e9e9e9;\\n background-color: #fff;\\n cursor: pointer;\\n border-radius: 50%;\\n vertical-align: middle;\\n}\\n.rc-slider-dot-active {\\n border-color: #96dbfa;\\n}\\n.rc-slider-dot-reverse {\\n margin-right: -4px;\\n}\\n.rc-slider-disabled {\\n background-color: #e9e9e9;\\n}\\n.rc-slider-disabled .rc-slider-track {\\n background-color: #ccc;\\n}\\n.rc-slider-disabled .rc-slider-handle,\\n.rc-slider-disabled .rc-slider-dot {\\n border-color: #ccc;\\n box-shadow: none;\\n background-color: #fff;\\n cursor: not-allowed;\\n}\\n.rc-slider-disabled .rc-slider-mark-text,\\n.rc-slider-disabled .rc-slider-dot {\\n cursor: not-allowed !important;\\n}\\n.rc-slider-vertical {\\n width: 14px;\\n height: 100%;\\n padding: 0 5px;\\n}\\n.rc-slider-vertical .rc-slider-rail {\\n height: 100%;\\n width: 4px;\\n}\\n.rc-slider-vertical .rc-slider-track {\\n left: 5px;\\n bottom: 0;\\n width: 4px;\\n}\\n.rc-slider-vertical .rc-slider-handle {\\n margin-left: -5px;\\n touch-action: pan-y;\\n}\\n.rc-slider-vertical .rc-slider-mark {\\n top: 0;\\n left: 18px;\\n height: 100%;\\n}\\n.rc-slider-vertical .rc-slider-step {\\n height: 100%;\\n width: 4px;\\n}\\n.rc-slider-vertical .rc-slider-dot {\\n left: 2px;\\n margin-bottom: -4px;\\n}\\n.rc-slider-vertical .rc-slider-dot:first-child {\\n margin-bottom: -4px;\\n}\\n.rc-slider-vertical .rc-slider-dot:last-child {\\n margin-bottom: -4px;\\n}\\n.rc-slider-tooltip-zoom-down-enter,\\n.rc-slider-tooltip-zoom-down-appear {\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n display: block !important;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.rc-slider-tooltip-zoom-down-leave {\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both;\\n display: block !important;\\n -webkit-animation-play-state: paused;\\n animation-play-state: paused;\\n}\\n.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,\\n.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active {\\n -webkit-animation-name: rcSliderTooltipZoomDownIn;\\n animation-name: rcSliderTooltipZoomDownIn;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active {\\n -webkit-animation-name: rcSliderTooltipZoomDownOut;\\n animation-name: rcSliderTooltipZoomDownOut;\\n -webkit-animation-play-state: running;\\n animation-play-state: running;\\n}\\n.rc-slider-tooltip-zoom-down-enter,\\n.rc-slider-tooltip-zoom-down-appear {\\n transform: scale(0, 0);\\n -webkit-animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.rc-slider-tooltip-zoom-down-leave {\\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n}\\n@-webkit-keyframes rcSliderTooltipZoomDownIn {\\n 0% {\\n opacity: 0;\\n transform-origin: 50% 100%;\\n transform: scale(0, 0);\\n }\\n 100% {\\n transform-origin: 50% 100%;\\n transform: scale(1, 1);\\n }\\n}\\n@keyframes rcSliderTooltipZoomDownIn {\\n 0% {\\n opacity: 0;\\n transform-origin: 50% 100%;\\n transform: scale(0, 0);\\n }\\n 100% {\\n transform-origin: 50% 100%;\\n transform: scale(1, 1);\\n }\\n}\\n@-webkit-keyframes rcSliderTooltipZoomDownOut {\\n 0% {\\n transform-origin: 50% 100%;\\n transform: scale(1, 1);\\n }\\n 100% {\\n opacity: 0;\\n transform-origin: 50% 100%;\\n transform: scale(0, 0);\\n }\\n}\\n@keyframes rcSliderTooltipZoomDownOut {\\n 0% {\\n transform-origin: 50% 100%;\\n transform: scale(1, 1);\\n }\\n 100% {\\n opacity: 0;\\n transform-origin: 50% 100%;\\n transform: scale(0, 0);\\n }\\n}\\n.rc-slider-tooltip {\\n position: absolute;\\n left: -9999px;\\n top: -9999px;\\n visibility: visible;\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider-tooltip * {\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider-tooltip-hidden {\\n display: none;\\n}\\n.rc-slider-tooltip-placement-top {\\n padding: 4px 0 8px 0;\\n}\\n.rc-slider-tooltip-inner {\\n padding: 6px 2px;\\n min-width: 24px;\\n height: 24px;\\n font-size: 12px;\\n line-height: 1;\\n color: #fff;\\n text-align: center;\\n text-decoration: none;\\n background-color: #6c6c6c;\\n border-radius: 6px;\\n box-shadow: 0 0 4px #d9d9d9;\\n}\\n.rc-slider-tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-color: transparent;\\n border-style: solid;\\n}\\n.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow {\\n bottom: 4px;\\n left: 50%;\\n margin-left: -4px;\\n border-width: 4px 4px 0;\\n border-top-color: #6c6c6c;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;EAClB,YAAY;EACZ,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,kBAAkB;EAClB,sBAAsB;EACtB,6CAA6C;AAC/C;AACA;EACE,sBAAsB;EACtB,6CAA6C;AAC/C;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,WAAW;EACX,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,kBAAkB;EAClB,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,eAAe;EACf,oBAAoB;EACpB,gBAAgB;EAChB,YAAY;EACZ,kBAAkB;EAClB,yBAAyB;EACzB,sBAAsB;EACtB,mBAAmB;AACrB;AACA;EACE,qBAAqB;EACrB,6BAA6B;AAC/B;AACA;EACE,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,iBAAiB;AACnB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,qBAAqB;EACrB,2BAA2B;EAC3B,wBAAwB;EACxB,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,WAAW;EACX,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,kBAAkB;EAClB,eAAe;EACf,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,WAAW;EACX,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,iBAAiB;EACjB,UAAU;EACV,WAAW;EACX,yBAAyB;EACzB,sBAAsB;EACtB,eAAe;EACf,kBAAkB;EAClB,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,sBAAsB;AACxB;AACA;;EAEE,kBAAkB;EAClB,gBAAgB;EAChB,sBAAsB;EACtB,mBAAmB;AACrB;AACA;;EAEE,8BAA8B;AAChC;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;AACA;EACE,YAAY;EACZ,UAAU;AACZ;AACA;EACE,SAAS;EACT,SAAS;EACT,UAAU;AACZ;AACA;EACE,iBAAiB;EACjB,mBAAmB;AACrB;AACA;EACE,MAAM;EACN,UAAU;EACV,YAAY;AACd;AACA;EACE,YAAY;EACZ,UAAU;AACZ;AACA;EACE,SAAS;EACT,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;;EAEE,gCAAwB;UAAxB,wBAAwB;EACxB,iCAAyB;UAAzB,yBAAyB;EACzB,yBAAyB;EACzB,oCAA4B;UAA5B,4BAA4B;AAC9B;AACA;EACE,gCAAwB;UAAxB,wBAAwB;EACxB,iCAAyB;UAAzB,yBAAyB;EACzB,yBAAyB;EACzB,oCAA4B;UAA5B,4BAA4B;AAC9B;AACA;;EAEE,iDAAyC;UAAzC,yCAAyC;EACzC,qCAA6B;UAA7B,6BAA6B;AAC/B;AACA;EACE,kDAA0C;UAA1C,0CAA0C;EAC1C,qCAA6B;UAA7B,6BAA6B;AAC/B;AACA;;EAEE,sBAAsB;EACtB,iEAAyD;UAAzD,yDAAyD;AAC3D;AACA;EACE,yEAAiE;UAAjE,iEAAiE;AACnE;AACA;EACE;IACE,UAAU;IACV,0BAA0B;IAC1B,sBAAsB;EACxB;EACA;IACE,0BAA0B;IAC1B,sBAAsB;EACxB;AACF;AAVA;EACE;IACE,UAAU;IACV,0BAA0B;IAC1B,sBAAsB;EACxB;EACA;IACE,0BAA0B;IAC1B,sBAAsB;EACxB;AACF;AACA;EACE;IACE,0BAA0B;IAC1B,sBAAsB;EACxB;EACA;IACE,UAAU;IACV,0BAA0B;IAC1B,sBAAsB;EACxB;AACF;AAVA;EACE;IACE,0BAA0B;IAC1B,sBAAsB;EACxB;EACA;IACE,UAAU;IACV,0BAA0B;IAC1B,sBAAsB;EACxB;AACF;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,YAAY;EACZ,mBAAmB;EACnB,sBAAsB;EACtB,6CAA6C;AAC/C;AACA;EACE,sBAAsB;EACtB,6CAA6C;AAC/C;AACA;EACE,aAAa;AACf;AACA;EACE,oBAAoB;AACtB;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,YAAY;EACZ,eAAe;EACf,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,qBAAqB;EACrB,yBAAyB;EACzB,kBAAkB;EAClB,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,yBAAyB;EACzB,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,SAAS;EACT,iBAAiB;EACjB,uBAAuB;EACvB,yBAAyB;AAC3B\",\"file\":\"index.css\",\"sourcesContent\":[\".rc-slider {\\n position: relative;\\n height: 14px;\\n padding: 5px 0;\\n width: 100%;\\n border-radius: 6px;\\n touch-action: none;\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider * {\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider-rail {\\n position: absolute;\\n width: 100%;\\n background-color: #e9e9e9;\\n height: 4px;\\n border-radius: 6px;\\n}\\n.rc-slider-track {\\n position: absolute;\\n left: 0;\\n height: 4px;\\n border-radius: 6px;\\n background-color: #abe2fb;\\n}\\n.rc-slider-handle {\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n cursor: pointer;\\n cursor: -webkit-grab;\\n margin-top: -5px;\\n cursor: grab;\\n border-radius: 50%;\\n border: solid 2px #96dbfa;\\n background-color: #fff;\\n touch-action: pan-x;\\n}\\n.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging {\\n border-color: #57c5f7;\\n box-shadow: 0 0 0 5px #96dbfa;\\n}\\n.rc-slider-handle:focus {\\n outline: none;\\n}\\n.rc-slider-handle-click-focused:focus {\\n border-color: #96dbfa;\\n box-shadow: unset;\\n}\\n.rc-slider-handle:hover {\\n border-color: #57c5f7;\\n}\\n.rc-slider-handle:active {\\n border-color: #57c5f7;\\n box-shadow: 0 0 5px #57c5f7;\\n cursor: -webkit-grabbing;\\n cursor: grabbing;\\n}\\n.rc-slider-mark {\\n position: absolute;\\n top: 18px;\\n left: 0;\\n width: 100%;\\n font-size: 12px;\\n}\\n.rc-slider-mark-text {\\n position: absolute;\\n display: inline-block;\\n vertical-align: middle;\\n text-align: center;\\n cursor: pointer;\\n color: #999;\\n}\\n.rc-slider-mark-text-active {\\n color: #666;\\n}\\n.rc-slider-step {\\n position: absolute;\\n width: 100%;\\n height: 4px;\\n background: transparent;\\n}\\n.rc-slider-dot {\\n position: absolute;\\n bottom: -2px;\\n margin-left: -4px;\\n width: 8px;\\n height: 8px;\\n border: 2px solid #e9e9e9;\\n background-color: #fff;\\n cursor: pointer;\\n border-radius: 50%;\\n vertical-align: middle;\\n}\\n.rc-slider-dot-active {\\n border-color: #96dbfa;\\n}\\n.rc-slider-dot-reverse {\\n margin-right: -4px;\\n}\\n.rc-slider-disabled {\\n background-color: #e9e9e9;\\n}\\n.rc-slider-disabled .rc-slider-track {\\n background-color: #ccc;\\n}\\n.rc-slider-disabled .rc-slider-handle,\\n.rc-slider-disabled .rc-slider-dot {\\n border-color: #ccc;\\n box-shadow: none;\\n background-color: #fff;\\n cursor: not-allowed;\\n}\\n.rc-slider-disabled .rc-slider-mark-text,\\n.rc-slider-disabled .rc-slider-dot {\\n cursor: not-allowed !important;\\n}\\n.rc-slider-vertical {\\n width: 14px;\\n height: 100%;\\n padding: 0 5px;\\n}\\n.rc-slider-vertical .rc-slider-rail {\\n height: 100%;\\n width: 4px;\\n}\\n.rc-slider-vertical .rc-slider-track {\\n left: 5px;\\n bottom: 0;\\n width: 4px;\\n}\\n.rc-slider-vertical .rc-slider-handle {\\n margin-left: -5px;\\n touch-action: pan-y;\\n}\\n.rc-slider-vertical .rc-slider-mark {\\n top: 0;\\n left: 18px;\\n height: 100%;\\n}\\n.rc-slider-vertical .rc-slider-step {\\n height: 100%;\\n width: 4px;\\n}\\n.rc-slider-vertical .rc-slider-dot {\\n left: 2px;\\n margin-bottom: -4px;\\n}\\n.rc-slider-vertical .rc-slider-dot:first-child {\\n margin-bottom: -4px;\\n}\\n.rc-slider-vertical .rc-slider-dot:last-child {\\n margin-bottom: -4px;\\n}\\n.rc-slider-tooltip-zoom-down-enter,\\n.rc-slider-tooltip-zoom-down-appear {\\n animation-duration: 0.3s;\\n animation-fill-mode: both;\\n display: block !important;\\n animation-play-state: paused;\\n}\\n.rc-slider-tooltip-zoom-down-leave {\\n animation-duration: 0.3s;\\n animation-fill-mode: both;\\n display: block !important;\\n animation-play-state: paused;\\n}\\n.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,\\n.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active {\\n animation-name: rcSliderTooltipZoomDownIn;\\n animation-play-state: running;\\n}\\n.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active {\\n animation-name: rcSliderTooltipZoomDownOut;\\n animation-play-state: running;\\n}\\n.rc-slider-tooltip-zoom-down-enter,\\n.rc-slider-tooltip-zoom-down-appear {\\n transform: scale(0, 0);\\n animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.rc-slider-tooltip-zoom-down-leave {\\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\\n}\\n@keyframes rcSliderTooltipZoomDownIn {\\n 0% {\\n opacity: 0;\\n transform-origin: 50% 100%;\\n transform: scale(0, 0);\\n }\\n 100% {\\n transform-origin: 50% 100%;\\n transform: scale(1, 1);\\n }\\n}\\n@keyframes rcSliderTooltipZoomDownOut {\\n 0% {\\n transform-origin: 50% 100%;\\n transform: scale(1, 1);\\n }\\n 100% {\\n opacity: 0;\\n transform-origin: 50% 100%;\\n transform: scale(0, 0);\\n }\\n}\\n.rc-slider-tooltip {\\n position: absolute;\\n left: -9999px;\\n top: -9999px;\\n visibility: visible;\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider-tooltip * {\\n box-sizing: border-box;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n}\\n.rc-slider-tooltip-hidden {\\n display: none;\\n}\\n.rc-slider-tooltip-placement-top {\\n padding: 4px 0 8px 0;\\n}\\n.rc-slider-tooltip-inner {\\n padding: 6px 2px;\\n min-width: 24px;\\n height: 24px;\\n font-size: 12px;\\n line-height: 1;\\n color: #fff;\\n text-align: center;\\n text-decoration: none;\\n background-color: #6c6c6c;\\n border-radius: 6px;\\n box-shadow: 0 0 4px #d9d9d9;\\n}\\n.rc-slider-tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-color: transparent;\\n border-style: solid;\\n}\\n.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow {\\n bottom: 4px;\\n left: 50%;\\n margin-left: -4px;\\n border-width: 4px 4px 0;\\n border-top-color: #6c6c6c;\\n}\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \"@charset \\\"UTF-8\\\";\\n.rbc-btn {\\n color: inherit;\\n font: inherit;\\n margin: 0; }\\nbutton.rbc-btn {\\n overflow: visible;\\n text-transform: none;\\n -webkit-appearance: button;\\n cursor: pointer; }\\nbutton[disabled].rbc-btn {\\n cursor: not-allowed; }\\nbutton.rbc-input::-moz-focus-inner {\\n border: 0;\\n padding: 0; }\\n.rbc-calendar {\\n box-sizing: border-box;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: stretch; }\\n.rbc-calendar *,\\n.rbc-calendar *:before,\\n.rbc-calendar *:after {\\n box-sizing: inherit; }\\n.rbc-abs-full, .rbc-row-bg {\\n overflow: hidden;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0; }\\n.rbc-ellipsis, .rbc-event-label, .rbc-row-segment .rbc-event-content, .rbc-show-more {\\n display: block;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n.rbc-rtl {\\n direction: rtl; }\\n.rbc-off-range {\\n color: #999999; }\\n.rbc-off-range-bg {\\n background: #e6e6e6; }\\n.rbc-header {\\n overflow: hidden;\\n flex: 1 0;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n padding: 0 3px;\\n text-align: center;\\n vertical-align: middle;\\n font-weight: bold;\\n font-size: 90%;\\n min-height: 0;\\n border-bottom: 1px solid #DDD; }\\n.rbc-header + .rbc-header {\\n border-left: 1px solid #DDD; }\\n.rbc-rtl .rbc-header + .rbc-header {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n.rbc-header > a, .rbc-header > a:active, .rbc-header > a:visited {\\n color: inherit;\\n text-decoration: none; }\\n.rbc-row-content {\\n position: relative;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n -webkit-user-select: none;\\n z-index: 4; }\\n.rbc-row-content-scrollable {\\n display: flex;\\n flex-direction: column;\\n height: 100%; }\\n.rbc-row-content-scrollable .rbc-row-content-scroll-container {\\n height: 100%;\\n overflow-y: scroll;\\n /* Hide scrollbar for Chrome, Safari and Opera */\\n -ms-overflow-style: none;\\n /* IE and Edge */\\n scrollbar-width: none;\\n /* Firefox */ }\\n.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar {\\n display: none; }\\n.rbc-today {\\n background-color: #eaf6ff; }\\n.rbc-toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: center;\\n align-items: center;\\n margin-bottom: 10px;\\n font-size: 16px; }\\n.rbc-toolbar .rbc-toolbar-label {\\n flex-grow: 1;\\n padding: 0 10px;\\n text-align: center; }\\n.rbc-toolbar button {\\n color: #373a3c;\\n display: inline-block;\\n margin: 0;\\n text-align: center;\\n vertical-align: middle;\\n background: none;\\n background-image: none;\\n border: 1px solid #ccc;\\n padding: .375rem 1rem;\\n border-radius: 4px;\\n line-height: normal;\\n white-space: nowrap; }\\n.rbc-toolbar button:active, .rbc-toolbar button.rbc-active {\\n background-image: none;\\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\\n background-color: #e6e6e6;\\n border-color: #adadad; }\\n.rbc-toolbar button:active:hover, .rbc-toolbar button:active:focus, .rbc-toolbar button.rbc-active:hover, .rbc-toolbar button.rbc-active:focus {\\n color: #373a3c;\\n background-color: #d4d4d4;\\n border-color: #8c8c8c; }\\n.rbc-toolbar button:focus {\\n color: #373a3c;\\n background-color: #e6e6e6;\\n border-color: #adadad; }\\n.rbc-toolbar button:hover {\\n color: #373a3c;\\n background-color: #e6e6e6;\\n border-color: #adadad; }\\n.rbc-btn-group {\\n display: inline-block;\\n white-space: nowrap; }\\n.rbc-btn-group > button:first-child:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n.rbc-btn-group > button:last-child:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n.rbc-rtl .rbc-btn-group > button:first-child:not(:last-child) {\\n border-radius: 4px;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n.rbc-rtl .rbc-btn-group > button:last-child:not(:first-child) {\\n border-radius: 4px;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n.rbc-btn-group > button:not(:first-child):not(:last-child) {\\n border-radius: 0; }\\n.rbc-btn-group button + button {\\n margin-left: -1px; }\\n.rbc-rtl .rbc-btn-group button + button {\\n margin-left: 0;\\n margin-right: -1px; }\\n.rbc-btn-group + .rbc-btn-group,\\n .rbc-btn-group + button {\\n margin-left: 10px; }\\n.rbc-event {\\n border: none;\\n box-sizing: border-box;\\n box-shadow: none;\\n margin: 0;\\n padding: 2px 5px;\\n background-color: #3174ad;\\n border-radius: 5px;\\n color: #fff;\\n cursor: pointer;\\n width: 100%;\\n text-align: left; }\\n.rbc-slot-selecting .rbc-event {\\n cursor: inherit;\\n pointer-events: none; }\\n.rbc-event.rbc-selected {\\n background-color: #265985; }\\n.rbc-event:focus {\\n outline: 5px auto #3b99fc; }\\n.rbc-event-label {\\n font-size: 80%; }\\n.rbc-event-overlaps {\\n box-shadow: -1px 1px 5px 0px rgba(51, 51, 51, 0.5); }\\n.rbc-event-continues-prior {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n.rbc-event-continues-after {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n.rbc-event-continues-earlier {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n.rbc-event-continues-later {\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n.rbc-row {\\n display: flex;\\n flex-direction: row; }\\n.rbc-row-segment {\\n padding: 0 1px 1px 1px; }\\n.rbc-selected-cell {\\n background-color: rgba(0, 0, 0, 0.1); }\\n.rbc-show-more {\\n background-color: rgba(255, 255, 255, 0.3);\\n z-index: 4;\\n font-weight: bold;\\n font-size: 85%;\\n height: auto;\\n line-height: normal; }\\n.rbc-month-view {\\n position: relative;\\n border: 1px solid #DDD;\\n display: flex;\\n flex-direction: column;\\n flex: 1 0;\\n width: 100%;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n -webkit-user-select: none;\\n height: 100%; }\\n.rbc-month-header {\\n display: flex;\\n flex-direction: row; }\\n.rbc-month-row {\\n display: flex;\\n position: relative;\\n flex-direction: column;\\n flex: 1 0;\\n flex-basis: 0px;\\n overflow: hidden;\\n height: 100%; }\\n.rbc-month-row + .rbc-month-row {\\n border-top: 1px solid #DDD; }\\n.rbc-date-cell {\\n flex: 1 1;\\n min-width: 0;\\n padding-right: 5px;\\n text-align: right; }\\n.rbc-date-cell.rbc-now {\\n font-weight: bold; }\\n.rbc-date-cell > a, .rbc-date-cell > a:active, .rbc-date-cell > a:visited {\\n color: inherit;\\n text-decoration: none; }\\n.rbc-row-bg {\\n display: flex;\\n flex-direction: row;\\n flex: 1 0;\\n overflow: hidden; }\\n.rbc-day-bg {\\n flex: 1 0; }\\n.rbc-day-bg + .rbc-day-bg {\\n border-left: 1px solid #DDD; }\\n.rbc-rtl .rbc-day-bg + .rbc-day-bg {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n.rbc-overlay {\\n position: absolute;\\n z-index: 5;\\n border: 1px solid #e5e5e5;\\n background-color: #fff;\\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25);\\n padding: 10px; }\\n.rbc-overlay > * + * {\\n margin-top: 1px; }\\n.rbc-overlay-header {\\n border-bottom: 1px solid #e5e5e5;\\n margin: -10px -10px 5px -10px;\\n padding: 2px 10px; }\\n.rbc-agenda-view {\\n display: flex;\\n flex-direction: column;\\n flex: 1 0;\\n overflow: auto; }\\n.rbc-agenda-view table.rbc-agenda-table {\\n width: 100%;\\n border: 1px solid #DDD;\\n border-spacing: 0;\\n border-collapse: collapse; }\\n.rbc-agenda-view table.rbc-agenda-table tbody > tr > td {\\n padding: 5px 10px;\\n vertical-align: top; }\\n.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell {\\n padding-left: 15px;\\n padding-right: 15px;\\n text-transform: lowercase; }\\n.rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {\\n border-left: 1px solid #DDD; }\\n.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n.rbc-agenda-view table.rbc-agenda-table tbody > tr + tr {\\n border-top: 1px solid #DDD; }\\n.rbc-agenda-view table.rbc-agenda-table thead > tr > th {\\n padding: 3px 5px;\\n text-align: left;\\n border-bottom: 1px solid #DDD; }\\n.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead > tr > th {\\n text-align: right; }\\n.rbc-agenda-time-cell {\\n text-transform: lowercase; }\\n.rbc-agenda-time-cell .rbc-continues-after:after {\\n content: ' »'; }\\n.rbc-agenda-time-cell .rbc-continues-prior:before {\\n content: '« '; }\\n.rbc-agenda-date-cell,\\n.rbc-agenda-time-cell {\\n white-space: nowrap; }\\n.rbc-agenda-event-cell {\\n width: 100%; }\\n.rbc-time-column {\\n display: flex;\\n flex-direction: column;\\n min-height: 100%; }\\n.rbc-time-column .rbc-timeslot-group {\\n flex: 1 1; }\\n.rbc-timeslot-group {\\n border-bottom: 1px solid #DDD;\\n min-height: 40px;\\n display: flex;\\n flex-flow: column nowrap; }\\n.rbc-time-gutter,\\n.rbc-header-gutter {\\n flex: none; }\\n.rbc-label {\\n padding: 0 5px; }\\n.rbc-day-slot {\\n position: relative; }\\n.rbc-day-slot .rbc-events-container {\\n bottom: 0;\\n left: 0;\\n position: absolute;\\n right: 0;\\n margin-right: 10px;\\n top: 0; }\\n.rbc-day-slot .rbc-events-container.rbc-rtl {\\n left: 10px;\\n right: 0; }\\n.rbc-day-slot .rbc-event {\\n border: 1px solid #265985;\\n display: flex;\\n max-height: 100%;\\n min-height: 20px;\\n flex-flow: column wrap;\\n align-items: flex-start;\\n overflow: hidden;\\n position: absolute; }\\n.rbc-day-slot .rbc-event-label {\\n flex: none;\\n padding-right: 5px;\\n width: auto; }\\n.rbc-day-slot .rbc-event-content {\\n width: 100%;\\n flex: 1 1;\\n word-wrap: break-word;\\n line-height: 1;\\n height: 100%;\\n min-height: 1em; }\\n.rbc-day-slot .rbc-time-slot {\\n border-top: 1px solid #f7f7f7; }\\n.rbc-time-view-resources .rbc-time-gutter,\\n.rbc-time-view-resources .rbc-time-header-gutter {\\n position: -webkit-sticky;\\n position: sticky;\\n left: 0;\\n background-color: white;\\n border-right: 1px solid #DDD;\\n z-index: 10;\\n margin-right: -1px; }\\n.rbc-time-view-resources .rbc-time-header {\\n overflow: hidden; }\\n.rbc-time-view-resources .rbc-time-header-content {\\n min-width: auto;\\n flex: 1 0;\\n flex-basis: 0px; }\\n.rbc-time-view-resources .rbc-time-header-cell-single-day {\\n display: none; }\\n.rbc-time-view-resources .rbc-day-slot {\\n min-width: 140px; }\\n.rbc-time-view-resources .rbc-header,\\n.rbc-time-view-resources .rbc-day-bg {\\n width: 140px;\\n flex: 1 1;\\n flex-basis: 0 px; }\\n.rbc-time-header-content + .rbc-time-header-content {\\n margin-left: -1px; }\\n.rbc-time-slot {\\n flex: 1 0; }\\n.rbc-time-slot.rbc-now {\\n font-weight: bold; }\\n.rbc-day-header {\\n text-align: center; }\\n.rbc-slot-selection {\\n z-index: 10;\\n position: absolute;\\n background-color: rgba(0, 0, 0, 0.5);\\n color: white;\\n font-size: 75%;\\n width: 100%;\\n padding: 3px; }\\n.rbc-slot-selecting {\\n cursor: move; }\\n.rbc-time-view {\\n display: flex;\\n flex-direction: column;\\n flex: 1 1;\\n width: 100%;\\n border: 1px solid #DDD;\\n min-height: 0; }\\n.rbc-time-view .rbc-time-gutter {\\n white-space: nowrap; }\\n.rbc-time-view .rbc-allday-cell {\\n box-sizing: content-box;\\n width: 100%;\\n height: 100%;\\n position: relative; }\\n.rbc-time-view .rbc-allday-cell + .rbc-allday-cell {\\n border-left: 1px solid #DDD; }\\n.rbc-time-view .rbc-allday-events {\\n position: relative;\\n z-index: 4; }\\n.rbc-time-view .rbc-row {\\n box-sizing: border-box;\\n min-height: 20px; }\\n.rbc-time-header {\\n display: flex;\\n flex: 0 0 auto;\\n flex-direction: row; }\\n.rbc-time-header.rbc-overflowing {\\n border-right: 1px solid #DDD; }\\n.rbc-rtl .rbc-time-header.rbc-overflowing {\\n border-right-width: 0;\\n border-left: 1px solid #DDD; }\\n.rbc-time-header > .rbc-row:first-child {\\n border-bottom: 1px solid #DDD; }\\n.rbc-time-header > .rbc-row.rbc-row-resource {\\n border-bottom: 1px solid #DDD; }\\n.rbc-time-header-cell-single-day {\\n display: none; }\\n.rbc-time-header-content {\\n flex: 1 1;\\n display: flex;\\n min-width: 0;\\n flex-direction: column;\\n border-left: 1px solid #DDD; }\\n.rbc-rtl .rbc-time-header-content {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n.rbc-time-header-content > .rbc-row.rbc-row-resource {\\n border-bottom: 1px solid #DDD;\\n flex-shrink: 0; }\\n.rbc-time-content {\\n display: flex;\\n flex: 1 0;\\n align-items: flex-start;\\n width: 100%;\\n border-top: 2px solid #DDD;\\n overflow-y: auto;\\n position: relative; }\\n.rbc-time-content > .rbc-time-gutter {\\n flex: none; }\\n.rbc-time-content > * + * > * {\\n border-left: 1px solid #DDD; }\\n.rbc-rtl .rbc-time-content > * + * > * {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n.rbc-time-content > .rbc-day-slot {\\n width: 100%;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n -webkit-user-select: none; }\\n.rbc-current-time-indicator {\\n position: absolute;\\n z-index: 3;\\n left: 0;\\n right: 0;\\n height: 1px;\\n background-color: #74ad31;\\n pointer-events: none; }\\n\", \"\",{\"version\":3,\"sources\":[\"react-big-calendar.css\"],\"names\":[],\"mappings\":\"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\",\"file\":\"react-big-calendar.css\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n.rbc-btn {\\n color: inherit;\\n font: inherit;\\n margin: 0; }\\n\\nbutton.rbc-btn {\\n overflow: visible;\\n text-transform: none;\\n -webkit-appearance: button;\\n cursor: pointer; }\\n\\nbutton[disabled].rbc-btn {\\n cursor: not-allowed; }\\n\\nbutton.rbc-input::-moz-focus-inner {\\n border: 0;\\n padding: 0; }\\n\\n.rbc-calendar {\\n box-sizing: border-box;\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: stretch; }\\n\\n.rbc-calendar *,\\n.rbc-calendar *:before,\\n.rbc-calendar *:after {\\n box-sizing: inherit; }\\n\\n.rbc-abs-full, .rbc-row-bg {\\n overflow: hidden;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0; }\\n\\n.rbc-ellipsis, .rbc-event-label, .rbc-row-segment .rbc-event-content, .rbc-show-more {\\n display: block;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.rbc-rtl {\\n direction: rtl; }\\n\\n.rbc-off-range {\\n color: #999999; }\\n\\n.rbc-off-range-bg {\\n background: #e6e6e6; }\\n\\n.rbc-header {\\n overflow: hidden;\\n flex: 1 0 0%;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n padding: 0 3px;\\n text-align: center;\\n vertical-align: middle;\\n font-weight: bold;\\n font-size: 90%;\\n min-height: 0;\\n border-bottom: 1px solid #DDD; }\\n .rbc-header + .rbc-header {\\n border-left: 1px solid #DDD; }\\n .rbc-rtl .rbc-header + .rbc-header {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n .rbc-header > a, .rbc-header > a:active, .rbc-header > a:visited {\\n color: inherit;\\n text-decoration: none; }\\n\\n.rbc-row-content {\\n position: relative;\\n user-select: none;\\n -webkit-user-select: none;\\n z-index: 4; }\\n\\n.rbc-row-content-scrollable {\\n display: flex;\\n flex-direction: column;\\n height: 100%; }\\n .rbc-row-content-scrollable .rbc-row-content-scroll-container {\\n height: 100%;\\n overflow-y: scroll;\\n /* Hide scrollbar for Chrome, Safari and Opera */\\n -ms-overflow-style: none;\\n /* IE and Edge */\\n scrollbar-width: none;\\n /* Firefox */ }\\n .rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar {\\n display: none; }\\n\\n.rbc-today {\\n background-color: #eaf6ff; }\\n\\n.rbc-toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: center;\\n align-items: center;\\n margin-bottom: 10px;\\n font-size: 16px; }\\n .rbc-toolbar .rbc-toolbar-label {\\n flex-grow: 1;\\n padding: 0 10px;\\n text-align: center; }\\n .rbc-toolbar button {\\n color: #373a3c;\\n display: inline-block;\\n margin: 0;\\n text-align: center;\\n vertical-align: middle;\\n background: none;\\n background-image: none;\\n border: 1px solid #ccc;\\n padding: .375rem 1rem;\\n border-radius: 4px;\\n line-height: normal;\\n white-space: nowrap; }\\n .rbc-toolbar button:active, .rbc-toolbar button.rbc-active {\\n background-image: none;\\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\\n background-color: #e6e6e6;\\n border-color: #adadad; }\\n .rbc-toolbar button:active:hover, .rbc-toolbar button:active:focus, .rbc-toolbar button.rbc-active:hover, .rbc-toolbar button.rbc-active:focus {\\n color: #373a3c;\\n background-color: #d4d4d4;\\n border-color: #8c8c8c; }\\n .rbc-toolbar button:focus {\\n color: #373a3c;\\n background-color: #e6e6e6;\\n border-color: #adadad; }\\n .rbc-toolbar button:hover {\\n color: #373a3c;\\n background-color: #e6e6e6;\\n border-color: #adadad; }\\n\\n.rbc-btn-group {\\n display: inline-block;\\n white-space: nowrap; }\\n .rbc-btn-group > button:first-child:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .rbc-btn-group > button:last-child:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n .rbc-rtl .rbc-btn-group > button:first-child:not(:last-child) {\\n border-radius: 4px;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n .rbc-rtl .rbc-btn-group > button:last-child:not(:first-child) {\\n border-radius: 4px;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .rbc-btn-group > button:not(:first-child):not(:last-child) {\\n border-radius: 0; }\\n .rbc-btn-group button + button {\\n margin-left: -1px; }\\n .rbc-rtl .rbc-btn-group button + button {\\n margin-left: 0;\\n margin-right: -1px; }\\n .rbc-btn-group + .rbc-btn-group,\\n .rbc-btn-group + button {\\n margin-left: 10px; }\\n\\n.rbc-event {\\n border: none;\\n box-sizing: border-box;\\n box-shadow: none;\\n margin: 0;\\n padding: 2px 5px;\\n background-color: #3174ad;\\n border-radius: 5px;\\n color: #fff;\\n cursor: pointer;\\n width: 100%;\\n text-align: left; }\\n .rbc-slot-selecting .rbc-event {\\n cursor: inherit;\\n pointer-events: none; }\\n .rbc-event.rbc-selected {\\n background-color: #265985; }\\n .rbc-event:focus {\\n outline: 5px auto #3b99fc; }\\n\\n.rbc-event-label {\\n font-size: 80%; }\\n\\n.rbc-event-overlaps {\\n box-shadow: -1px 1px 5px 0px rgba(51, 51, 51, 0.5); }\\n\\n.rbc-event-continues-prior {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.rbc-event-continues-after {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.rbc-event-continues-earlier {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.rbc-event-continues-later {\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.rbc-row {\\n display: flex;\\n flex-direction: row; }\\n\\n.rbc-row-segment {\\n padding: 0 1px 1px 1px; }\\n\\n.rbc-selected-cell {\\n background-color: rgba(0, 0, 0, 0.1); }\\n\\n.rbc-show-more {\\n background-color: rgba(255, 255, 255, 0.3);\\n z-index: 4;\\n font-weight: bold;\\n font-size: 85%;\\n height: auto;\\n line-height: normal; }\\n\\n.rbc-month-view {\\n position: relative;\\n border: 1px solid #DDD;\\n display: flex;\\n flex-direction: column;\\n flex: 1 0 0;\\n width: 100%;\\n user-select: none;\\n -webkit-user-select: none;\\n height: 100%; }\\n\\n.rbc-month-header {\\n display: flex;\\n flex-direction: row; }\\n\\n.rbc-month-row {\\n display: flex;\\n position: relative;\\n flex-direction: column;\\n flex: 1 0 0;\\n flex-basis: 0px;\\n overflow: hidden;\\n height: 100%; }\\n .rbc-month-row + .rbc-month-row {\\n border-top: 1px solid #DDD; }\\n\\n.rbc-date-cell {\\n flex: 1 1 0;\\n min-width: 0;\\n padding-right: 5px;\\n text-align: right; }\\n .rbc-date-cell.rbc-now {\\n font-weight: bold; }\\n .rbc-date-cell > a, .rbc-date-cell > a:active, .rbc-date-cell > a:visited {\\n color: inherit;\\n text-decoration: none; }\\n\\n.rbc-row-bg {\\n display: flex;\\n flex-direction: row;\\n flex: 1 0 0;\\n overflow: hidden; }\\n\\n.rbc-day-bg {\\n flex: 1 0 0%; }\\n .rbc-day-bg + .rbc-day-bg {\\n border-left: 1px solid #DDD; }\\n .rbc-rtl .rbc-day-bg + .rbc-day-bg {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n\\n.rbc-overlay {\\n position: absolute;\\n z-index: 5;\\n border: 1px solid #e5e5e5;\\n background-color: #fff;\\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25);\\n padding: 10px; }\\n .rbc-overlay > * + * {\\n margin-top: 1px; }\\n\\n.rbc-overlay-header {\\n border-bottom: 1px solid #e5e5e5;\\n margin: -10px -10px 5px -10px;\\n padding: 2px 10px; }\\n\\n.rbc-agenda-view {\\n display: flex;\\n flex-direction: column;\\n flex: 1 0 0;\\n overflow: auto; }\\n .rbc-agenda-view table.rbc-agenda-table {\\n width: 100%;\\n border: 1px solid #DDD;\\n border-spacing: 0;\\n border-collapse: collapse; }\\n .rbc-agenda-view table.rbc-agenda-table tbody > tr > td {\\n padding: 5px 10px;\\n vertical-align: top; }\\n .rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell {\\n padding-left: 15px;\\n padding-right: 15px;\\n text-transform: lowercase; }\\n .rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {\\n border-left: 1px solid #DDD; }\\n .rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n .rbc-agenda-view table.rbc-agenda-table tbody > tr + tr {\\n border-top: 1px solid #DDD; }\\n .rbc-agenda-view table.rbc-agenda-table thead > tr > th {\\n padding: 3px 5px;\\n text-align: left;\\n border-bottom: 1px solid #DDD; }\\n .rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead > tr > th {\\n text-align: right; }\\n\\n.rbc-agenda-time-cell {\\n text-transform: lowercase; }\\n .rbc-agenda-time-cell .rbc-continues-after:after {\\n content: ' »'; }\\n .rbc-agenda-time-cell .rbc-continues-prior:before {\\n content: '« '; }\\n\\n.rbc-agenda-date-cell,\\n.rbc-agenda-time-cell {\\n white-space: nowrap; }\\n\\n.rbc-agenda-event-cell {\\n width: 100%; }\\n\\n.rbc-time-column {\\n display: flex;\\n flex-direction: column;\\n min-height: 100%; }\\n .rbc-time-column .rbc-timeslot-group {\\n flex: 1; }\\n\\n.rbc-timeslot-group {\\n border-bottom: 1px solid #DDD;\\n min-height: 40px;\\n display: flex;\\n flex-flow: column nowrap; }\\n\\n.rbc-time-gutter,\\n.rbc-header-gutter {\\n flex: none; }\\n\\n.rbc-label {\\n padding: 0 5px; }\\n\\n.rbc-day-slot {\\n position: relative; }\\n .rbc-day-slot .rbc-events-container {\\n bottom: 0;\\n left: 0;\\n position: absolute;\\n right: 0;\\n margin-right: 10px;\\n top: 0; }\\n .rbc-day-slot .rbc-events-container.rbc-rtl {\\n left: 10px;\\n right: 0; }\\n .rbc-day-slot .rbc-event {\\n border: 1px solid #265985;\\n display: flex;\\n max-height: 100%;\\n min-height: 20px;\\n flex-flow: column wrap;\\n align-items: flex-start;\\n overflow: hidden;\\n position: absolute; }\\n .rbc-day-slot .rbc-event-label {\\n flex: none;\\n padding-right: 5px;\\n width: auto; }\\n .rbc-day-slot .rbc-event-content {\\n width: 100%;\\n flex: 1 1 0;\\n word-wrap: break-word;\\n line-height: 1;\\n height: 100%;\\n min-height: 1em; }\\n .rbc-day-slot .rbc-time-slot {\\n border-top: 1px solid #f7f7f7; }\\n\\n.rbc-time-view-resources .rbc-time-gutter,\\n.rbc-time-view-resources .rbc-time-header-gutter {\\n position: sticky;\\n left: 0;\\n background-color: white;\\n border-right: 1px solid #DDD;\\n z-index: 10;\\n margin-right: -1px; }\\n\\n.rbc-time-view-resources .rbc-time-header {\\n overflow: hidden; }\\n\\n.rbc-time-view-resources .rbc-time-header-content {\\n min-width: auto;\\n flex: 1 0 0;\\n flex-basis: 0px; }\\n\\n.rbc-time-view-resources .rbc-time-header-cell-single-day {\\n display: none; }\\n\\n.rbc-time-view-resources .rbc-day-slot {\\n min-width: 140px; }\\n\\n.rbc-time-view-resources .rbc-header,\\n.rbc-time-view-resources .rbc-day-bg {\\n width: 140px;\\n flex: 1 1 0;\\n flex-basis: 0 px; }\\n\\n.rbc-time-header-content + .rbc-time-header-content {\\n margin-left: -1px; }\\n\\n.rbc-time-slot {\\n flex: 1 0 0; }\\n .rbc-time-slot.rbc-now {\\n font-weight: bold; }\\n\\n.rbc-day-header {\\n text-align: center; }\\n\\n.rbc-slot-selection {\\n z-index: 10;\\n position: absolute;\\n background-color: rgba(0, 0, 0, 0.5);\\n color: white;\\n font-size: 75%;\\n width: 100%;\\n padding: 3px; }\\n\\n.rbc-slot-selecting {\\n cursor: move; }\\n\\n.rbc-time-view {\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n width: 100%;\\n border: 1px solid #DDD;\\n min-height: 0; }\\n .rbc-time-view .rbc-time-gutter {\\n white-space: nowrap; }\\n .rbc-time-view .rbc-allday-cell {\\n box-sizing: content-box;\\n width: 100%;\\n height: 100%;\\n position: relative; }\\n .rbc-time-view .rbc-allday-cell + .rbc-allday-cell {\\n border-left: 1px solid #DDD; }\\n .rbc-time-view .rbc-allday-events {\\n position: relative;\\n z-index: 4; }\\n .rbc-time-view .rbc-row {\\n box-sizing: border-box;\\n min-height: 20px; }\\n\\n.rbc-time-header {\\n display: flex;\\n flex: 0 0 auto;\\n flex-direction: row; }\\n .rbc-time-header.rbc-overflowing {\\n border-right: 1px solid #DDD; }\\n .rbc-rtl .rbc-time-header.rbc-overflowing {\\n border-right-width: 0;\\n border-left: 1px solid #DDD; }\\n .rbc-time-header > .rbc-row:first-child {\\n border-bottom: 1px solid #DDD; }\\n .rbc-time-header > .rbc-row.rbc-row-resource {\\n border-bottom: 1px solid #DDD; }\\n\\n.rbc-time-header-cell-single-day {\\n display: none; }\\n\\n.rbc-time-header-content {\\n flex: 1;\\n display: flex;\\n min-width: 0;\\n flex-direction: column;\\n border-left: 1px solid #DDD; }\\n .rbc-rtl .rbc-time-header-content {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n .rbc-time-header-content > .rbc-row.rbc-row-resource {\\n border-bottom: 1px solid #DDD;\\n flex-shrink: 0; }\\n\\n.rbc-time-content {\\n display: flex;\\n flex: 1 0 0%;\\n align-items: flex-start;\\n width: 100%;\\n border-top: 2px solid #DDD;\\n overflow-y: auto;\\n position: relative; }\\n .rbc-time-content > .rbc-time-gutter {\\n flex: none; }\\n .rbc-time-content > * + * > * {\\n border-left: 1px solid #DDD; }\\n .rbc-rtl .rbc-time-content > * + * > * {\\n border-left-width: 0;\\n border-right: 1px solid #DDD; }\\n .rbc-time-content > .rbc-day-slot {\\n width: 100%;\\n user-select: none;\\n -webkit-user-select: none; }\\n\\n.rbc-current-time-indicator {\\n position: absolute;\\n z-index: 3;\\n left: 0;\\n right: 0;\\n height: 1px;\\n background-color: #74ad31;\\n pointer-events: none; }\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \".PresetDateRangePicker_panel {\\n padding: 0 22px 11px\\n}\\n.PresetDateRangePicker_button {\\n position: relative;\\n height: 100%;\\n text-align: center;\\n background: 0 0;\\n border: 2px solid #00a699;\\n color: #00a699;\\n padding: 4px 12px;\\n margin-right: 8px;\\n font: inherit;\\n font-weight: 700;\\n line-height: normal;\\n overflow: visible;\\n box-sizing: border-box;\\n cursor: pointer\\n}\\n.PresetDateRangePicker_button:active {\\n outline: 0\\n}\\n.PresetDateRangePicker_button__selected {\\n color: #fff;\\n background: #00a699\\n}\\n.SingleDatePickerInput {\\n display: inline-block;\\n background-color: #fff\\n}\\n.SingleDatePickerInput__withBorder {\\n border-radius: 2px;\\n border: 1px solid #dbdbdb\\n}\\n.SingleDatePickerInput__rtl {\\n direction: rtl\\n}\\n.SingleDatePickerInput__disabled {\\n background-color: #f2f2f2\\n}\\n.SingleDatePickerInput__block {\\n display: block\\n}\\n.SingleDatePickerInput__showClearDate {\\n padding-right: 30px\\n}\\n.SingleDatePickerInput_clearDate {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n padding: 10px;\\n margin: 0 10px 0 5px;\\n position: absolute;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%)\\n}\\n.SingleDatePickerInput_clearDate__default:focus,\\n.SingleDatePickerInput_clearDate__default:hover {\\n background: #dbdbdb;\\n border-radius: 50%\\n}\\n.SingleDatePickerInput_clearDate__small {\\n padding: 6px\\n}\\n.SingleDatePickerInput_clearDate__hide {\\n visibility: hidden\\n}\\n.SingleDatePickerInput_clearDate_svg {\\n fill: #82888a;\\n height: 12px;\\n width: 15px;\\n vertical-align: middle\\n}\\n.SingleDatePickerInput_clearDate_svg__small {\\n height: 9px\\n}\\n.SingleDatePickerInput_calendarIcon {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n display: inline-block;\\n vertical-align: middle;\\n padding: 10px;\\n margin: 0 5px 0 10px\\n}\\n.SingleDatePickerInput_calendarIcon_svg {\\n fill: #82888a;\\n height: 15px;\\n width: 14px;\\n vertical-align: middle\\n}\\n.SingleDatePicker {\\n position: relative;\\n display: inline-block\\n}\\n.SingleDatePicker__block {\\n display: block\\n}\\n.SingleDatePicker_picker {\\n z-index: 1;\\n background-color: #fff;\\n position: absolute\\n}\\n.SingleDatePicker_picker__rtl {\\n direction: rtl\\n}\\n.SingleDatePicker_picker__directionLeft {\\n left: 0\\n}\\n.SingleDatePicker_picker__directionRight {\\n right: 0\\n}\\n.SingleDatePicker_picker__portal {\\n background-color: rgba(0,0,0,.3);\\n position: fixed;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%\\n}\\n.SingleDatePicker_picker__fullScreenPortal {\\n background-color: #fff\\n}\\n.SingleDatePicker_closeButton {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: 15px;\\n z-index: 2\\n}\\n.SingleDatePicker_closeButton:focus,\\n.SingleDatePicker_closeButton:hover {\\n color: darken(#cacccd,10%);\\n text-decoration: none\\n}\\n.SingleDatePicker_closeButton_svg {\\n height: 15px;\\n width: 15px;\\n fill: #cacccd\\n}\\n.DayPickerKeyboardShortcuts_buttonReset {\\n background: 0 0;\\n border: 0;\\n border-radius: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n padding: 0;\\n cursor: pointer;\\n font-size: 14px\\n}\\n.DayPickerKeyboardShortcuts_buttonReset:active {\\n outline: 0\\n}\\n.DayPickerKeyboardShortcuts_show {\\n width: 33px;\\n height: 26px;\\n position: absolute;\\n z-index: 2\\n}\\n.DayPickerKeyboardShortcuts_show::before {\\n content: \\\"\\\";\\n display: block;\\n position: absolute\\n}\\n.DayPickerKeyboardShortcuts_show__bottomRight {\\n bottom: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__bottomRight::before {\\n border-top: 26px solid transparent;\\n border-right: 33px solid #00a699;\\n bottom: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__bottomRight:hover::before {\\n border-right: 33px solid #008489\\n}\\n.DayPickerKeyboardShortcuts_show__topRight {\\n top: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topRight::before {\\n border-bottom: 26px solid transparent;\\n border-right: 33px solid #00a699;\\n top: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topRight:hover::before {\\n border-right: 33px solid #008489\\n}\\n.DayPickerKeyboardShortcuts_show__topLeft {\\n top: 0;\\n left: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topLeft::before {\\n border-bottom: 26px solid transparent;\\n border-left: 33px solid #00a699;\\n top: 0;\\n left: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topLeft:hover::before {\\n border-left: 33px solid #008489\\n}\\n.DayPickerKeyboardShortcuts_showSpan {\\n color: #fff;\\n position: absolute\\n}\\n.DayPickerKeyboardShortcuts_showSpan__bottomRight {\\n bottom: 0;\\n right: 5px\\n}\\n.DayPickerKeyboardShortcuts_showSpan__topRight {\\n top: 1px;\\n right: 5px\\n}\\n.DayPickerKeyboardShortcuts_showSpan__topLeft {\\n top: 1px;\\n left: 5px\\n}\\n.DayPickerKeyboardShortcuts_panel {\\n overflow: auto;\\n background: #fff;\\n border: 1px solid #dbdbdb;\\n border-radius: 2px;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n z-index: 2;\\n padding: 22px;\\n margin: 33px;\\n text-align: left\\n}\\n.DayPickerKeyboardShortcuts_title {\\n font-size: 16px;\\n font-weight: 700;\\n margin: 0\\n}\\n.DayPickerKeyboardShortcuts_list {\\n list-style: none;\\n padding: 0;\\n font-size: 14px\\n}\\n.DayPickerKeyboardShortcuts_close {\\n position: absolute;\\n right: 22px;\\n top: 22px;\\n z-index: 2\\n}\\n.DayPickerKeyboardShortcuts_close:active {\\n outline: 0\\n}\\n.DayPickerKeyboardShortcuts_closeSvg {\\n height: 15px;\\n width: 15px;\\n fill: #cacccd\\n}\\n.DayPickerKeyboardShortcuts_closeSvg:focus,\\n.DayPickerKeyboardShortcuts_closeSvg:hover {\\n fill: #82888a\\n}\\n.CalendarDay {\\n box-sizing: border-box;\\n cursor: pointer;\\n font-size: 14px;\\n text-align: center\\n}\\n.CalendarDay:active {\\n outline: 0\\n}\\n.CalendarDay__defaultCursor {\\n cursor: default\\n}\\n.CalendarDay__default {\\n border: 1px solid #e4e7e7;\\n color: #484848;\\n background: #fff\\n}\\n.CalendarDay__default:hover {\\n background: #e4e7e7;\\n border: 1px solid #e4e7e7;\\n color: inherit\\n}\\n.CalendarDay__hovered_offset {\\n background: #f4f5f5;\\n border: 1px double #e4e7e7;\\n color: inherit\\n}\\n.CalendarDay__outside {\\n border: 0;\\n background: #fff;\\n color: #484848\\n}\\n.CalendarDay__outside:hover {\\n border: 0\\n}\\n.CalendarDay__blocked_minimum_nights {\\n background: #fff;\\n border: 1px solid #eceeee;\\n color: #cacccd\\n}\\n.CalendarDay__blocked_minimum_nights:active,\\n.CalendarDay__blocked_minimum_nights:hover {\\n background: #fff;\\n color: #cacccd\\n}\\n.CalendarDay__highlighted_calendar {\\n background: #ffe8bc;\\n color: #484848\\n}\\n.CalendarDay__highlighted_calendar:active,\\n.CalendarDay__highlighted_calendar:hover {\\n background: #ffce71;\\n color: #484848\\n}\\n.CalendarDay__selected_span {\\n background: #66e2da;\\n border: 1px double #33dacd;\\n color: #fff\\n}\\n.CalendarDay__selected_span:active,\\n.CalendarDay__selected_span:hover {\\n background: #33dacd;\\n border: 1px double #33dacd;\\n color: #fff\\n}\\n.CalendarDay__selected,\\n.CalendarDay__selected:active,\\n.CalendarDay__selected:hover {\\n background: #00a699;\\n border: 1px double #00a699;\\n color: #fff\\n}\\n.CalendarDay__hovered_span,\\n.CalendarDay__hovered_span:hover {\\n background: #b2f1ec;\\n border: 1px double #80e8e0;\\n color: #007a87\\n}\\n.CalendarDay__hovered_span:active {\\n background: #80e8e0;\\n border: 1px double #80e8e0;\\n color: #007a87\\n}\\n.CalendarDay__blocked_calendar,\\n.CalendarDay__blocked_calendar:active,\\n.CalendarDay__blocked_calendar:hover {\\n background: #cacccd;\\n border: 1px solid #cacccd;\\n color: #82888a\\n}\\n.CalendarDay__blocked_out_of_range,\\n.CalendarDay__blocked_out_of_range:active,\\n.CalendarDay__blocked_out_of_range:hover {\\n background: #fff;\\n border: 1px solid #e4e7e7;\\n color: #cacccd\\n}\\n.CalendarDay__hovered_start_first_possible_end {\\n background: #eceeee;\\n border: 1px double #eceeee\\n}\\n.CalendarDay__hovered_start_blocked_min_nights {\\n background: #eceeee;\\n border: 1px double #e4e7e7\\n}\\n.CalendarMonth {\\n background: #fff;\\n text-align: center;\\n vertical-align: top;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none\\n}\\n.CalendarMonth_table {\\n border-collapse: collapse;\\n border-spacing: 0\\n}\\n.CalendarMonth_verticalSpacing {\\n border-collapse: separate\\n}\\n.CalendarMonth_caption {\\n color: #484848;\\n font-size: 18px;\\n text-align: center;\\n padding-top: 22px;\\n padding-bottom: 37px;\\n caption-side: top;\\n caption-side: initial\\n}\\n.CalendarMonth_caption__verticalScrollable {\\n padding-top: 12px;\\n padding-bottom: 7px\\n}\\n.CalendarMonthGrid {\\n background: #fff;\\n text-align: left;\\n z-index: 0\\n}\\n.CalendarMonthGrid__animating {\\n z-index: 1\\n}\\n.CalendarMonthGrid__horizontal {\\n position: absolute;\\n left: 9px\\n}\\n.CalendarMonthGrid__vertical,\\n.CalendarMonthGrid__vertical_scrollable {\\n margin: 0 auto\\n}\\n.CalendarMonthGrid_month__horizontal {\\n display: inline-block;\\n vertical-align: top;\\n min-height: 100%\\n}\\n.CalendarMonthGrid_month__hideForAnimation {\\n position: absolute;\\n z-index: -1;\\n opacity: 0;\\n pointer-events: none\\n}\\n.CalendarMonthGrid_month__hidden {\\n visibility: hidden\\n}\\n.DayPickerNavigation {\\n position: relative;\\n z-index: 2\\n}\\n.DayPickerNavigation__horizontal {\\n height: 0\\n}\\n.DayPickerNavigation__verticalScrollable_prevNav {\\n z-index: 1\\n}\\n.DayPickerNavigation__verticalDefault {\\n position: absolute;\\n width: 100%;\\n height: 52px;\\n bottom: 0;\\n left: 0\\n}\\n.DayPickerNavigation__verticalScrollableDefault {\\n position: relative\\n}\\n.DayPickerNavigation__bottom {\\n height: auto\\n}\\n.DayPickerNavigation__bottomDefault {\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n display: flex;\\n justify-content: space-between\\n}\\n.DayPickerNavigation_button {\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n border: 0;\\n padding: 0;\\n margin: 0\\n}\\n.DayPickerNavigation_button__default {\\n border: 1px solid #e4e7e7;\\n background-color: #fff;\\n color: #757575\\n}\\n.DayPickerNavigation_button__default:focus,\\n.DayPickerNavigation_button__default:hover {\\n border: 1px solid #c4c4c4\\n}\\n.DayPickerNavigation_button__default:active {\\n background: #f2f2f2\\n}\\n.DayPickerNavigation_button__disabled {\\n cursor: default;\\n border: 1px solid #f2f2f2\\n}\\n.DayPickerNavigation_button__disabled:focus,\\n.DayPickerNavigation_button__disabled:hover {\\n border: 1px solid #f2f2f2\\n}\\n.DayPickerNavigation_button__disabled:active {\\n background: 0 0\\n}\\n.DayPickerNavigation_button__horizontalDefault {\\n position: absolute;\\n top: 18px;\\n line-height: .78;\\n border-radius: 3px;\\n padding: 6px 9px\\n}\\n.DayPickerNavigation_bottomButton__horizontalDefault {\\n position: static;\\n margin: -10px 22px 30px\\n}\\n.DayPickerNavigation_leftButton__horizontalDefault {\\n left: 22px\\n}\\n.DayPickerNavigation_rightButton__horizontalDefault {\\n right: 22px\\n}\\n.DayPickerNavigation_button__verticalDefault {\\n padding: 5px;\\n background: #fff;\\n box-shadow: 0 0 5px 2px rgba(0,0,0,.1);\\n position: relative;\\n display: inline-block;\\n text-align: center;\\n height: 100%;\\n width: 50%\\n}\\n.DayPickerNavigation_nextButton__verticalDefault {\\n border-left: 0\\n}\\n.DayPickerNavigation_nextButton__verticalScrollableDefault,\\n.DayPickerNavigation_prevButton__verticalScrollableDefault {\\n width: 100%\\n}\\n.DayPickerNavigation_svg__horizontal {\\n height: 19px;\\n width: 19px;\\n fill: #82888a;\\n display: block\\n}\\n.DayPickerNavigation_svg__vertical {\\n height: 42px;\\n width: 42px;\\n fill: #484848\\n}\\n.DayPickerNavigation_svg__disabled {\\n fill: #f2f2f2\\n}\\n.DayPicker {\\n background: #fff;\\n position: relative;\\n text-align: left\\n}\\n.DayPicker__horizontal {\\n background: #fff\\n}\\n.DayPicker__verticalScrollable {\\n height: 100%\\n}\\n.DayPicker__hidden {\\n visibility: hidden\\n}\\n.DayPicker__withBorder {\\n box-shadow: 0 2px 6px rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.07);\\n border-radius: 3px\\n}\\n.DayPicker_portal__horizontal {\\n box-shadow: none;\\n position: absolute;\\n left: 50%;\\n top: 50%\\n}\\n.DayPicker_portal__vertical {\\n position: static;\\n position: initial\\n}\\n.DayPicker_focusRegion {\\n outline: 0\\n}\\n.DayPicker_calendarInfo__horizontal,\\n.DayPicker_wrapper__horizontal {\\n display: inline-block;\\n vertical-align: top\\n}\\n.DayPicker_weekHeaders {\\n position: relative\\n}\\n.DayPicker_weekHeaders__horizontal {\\n margin-left: 9px\\n}\\n.DayPicker_weekHeader {\\n color: #757575;\\n position: absolute;\\n top: 62px;\\n z-index: 2;\\n text-align: left\\n}\\n.DayPicker_weekHeader__vertical {\\n left: 50%\\n}\\n.DayPicker_weekHeader__verticalScrollable {\\n top: 0;\\n display: table-row;\\n border-bottom: 1px solid #dbdbdb;\\n background: #fff;\\n margin-left: 0;\\n left: 0;\\n width: 100%;\\n text-align: center\\n}\\n.DayPicker_weekHeader_ul {\\n list-style: none;\\n margin: 1px 0;\\n padding-left: 0;\\n padding-right: 0;\\n font-size: 14px\\n}\\n.DayPicker_weekHeader_li {\\n display: inline-block;\\n text-align: center\\n}\\n.DayPicker_transitionContainer {\\n position: relative;\\n overflow: hidden;\\n border-radius: 3px\\n}\\n.DayPicker_transitionContainer__horizontal {\\n transition: height .2s ease-in-out\\n}\\n.DayPicker_transitionContainer__vertical {\\n width: 100%\\n}\\n.DayPicker_transitionContainer__verticalScrollable {\\n padding-top: 20px;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n overflow-y: scroll\\n}\\n.DateInput {\\n margin: 0;\\n padding: 0;\\n background: #fff;\\n position: relative;\\n display: inline-block;\\n width: 130px;\\n vertical-align: middle\\n}\\n.DateInput__small {\\n width: 97px\\n}\\n.DateInput__block {\\n width: 100%\\n}\\n.DateInput__disabled {\\n background: #f2f2f2;\\n color: #dbdbdb\\n}\\n.DateInput_input {\\n font-weight: 200;\\n font-size: 19px;\\n line-height: 24px;\\n color: #484848;\\n background-color: #fff;\\n width: 100%;\\n padding: 11px 11px 9px;\\n border: 0;\\n border-top: 0;\\n border-right: 0;\\n border-bottom: 2px solid transparent;\\n border-left: 0;\\n border-radius: 0\\n}\\n.DateInput_input__small {\\n font-size: 15px;\\n line-height: 18px;\\n letter-spacing: .2px;\\n padding: 7px 7px 5px\\n}\\n.DateInput_input__regular {\\n font-weight: auto\\n}\\n.DateInput_input__readOnly {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none\\n}\\n.DateInput_input__focused {\\n outline: 0;\\n background: #fff;\\n border: 0;\\n border-top: 0;\\n border-right: 0;\\n border-bottom: 2px solid #008489;\\n border-left: 0\\n}\\n.DateInput_input__disabled {\\n background: #f2f2f2;\\n font-style: italic\\n}\\n.DateInput_screenReaderMessage {\\n border: 0;\\n clip: rect(0,0,0,0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n.DateInput_fang {\\n position: absolute;\\n width: 20px;\\n height: 10px;\\n left: 22px;\\n z-index: 2\\n}\\n.DateInput_fangShape {\\n fill: #fff\\n}\\n.DateInput_fangStroke {\\n stroke: #dbdbdb;\\n fill: transparent\\n}\\n.DateRangePickerInput {\\n background-color: #fff;\\n display: inline-block\\n}\\n.DateRangePickerInput__disabled {\\n background: #f2f2f2\\n}\\n.DateRangePickerInput__withBorder {\\n border-radius: 2px;\\n border: 1px solid #dbdbdb\\n}\\n.DateRangePickerInput__rtl {\\n direction: rtl\\n}\\n.DateRangePickerInput__block {\\n display: block\\n}\\n.DateRangePickerInput__showClearDates {\\n padding-right: 30px\\n}\\n.DateRangePickerInput_arrow {\\n display: inline-block;\\n vertical-align: middle;\\n color: #484848\\n}\\n.DateRangePickerInput_arrow_svg {\\n vertical-align: middle;\\n fill: #484848;\\n height: 24px;\\n width: 24px\\n}\\n.DateRangePickerInput_clearDates {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n padding: 10px;\\n margin: 0 10px 0 5px;\\n position: absolute;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%)\\n}\\n.DateRangePickerInput_clearDates__small {\\n padding: 6px\\n}\\n.DateRangePickerInput_clearDates_default:focus,\\n.DateRangePickerInput_clearDates_default:hover {\\n background: #dbdbdb;\\n border-radius: 50%\\n}\\n.DateRangePickerInput_clearDates__hide {\\n visibility: hidden\\n}\\n.DateRangePickerInput_clearDates_svg {\\n fill: #82888a;\\n height: 12px;\\n width: 15px;\\n vertical-align: middle\\n}\\n.DateRangePickerInput_clearDates_svg__small {\\n height: 9px\\n}\\n.DateRangePickerInput_calendarIcon {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n display: inline-block;\\n vertical-align: middle;\\n padding: 10px;\\n margin: 0 5px 0 10px\\n}\\n.DateRangePickerInput_calendarIcon_svg {\\n fill: #82888a;\\n height: 15px;\\n width: 14px;\\n vertical-align: middle\\n}\\n.DateRangePicker {\\n position: relative;\\n display: inline-block\\n}\\n.DateRangePicker__block {\\n display: block\\n}\\n.DateRangePicker_picker {\\n z-index: 1;\\n background-color: #fff;\\n position: absolute\\n}\\n.DateRangePicker_picker__rtl {\\n direction: rtl\\n}\\n.DateRangePicker_picker__directionLeft {\\n left: 0\\n}\\n.DateRangePicker_picker__directionRight {\\n right: 0\\n}\\n.DateRangePicker_picker__portal {\\n background-color: rgba(0,0,0,.3);\\n position: fixed;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%\\n}\\n.DateRangePicker_picker__fullScreenPortal {\\n background-color: #fff\\n}\\n.DateRangePicker_closeButton {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: 15px;\\n z-index: 2\\n}\\n.DateRangePicker_closeButton:focus,\\n.DateRangePicker_closeButton:hover {\\n color: darken(#cacccd,10%);\\n text-decoration: none\\n}\\n.DateRangePicker_closeButton_svg {\\n height: 15px;\\n width: 15px;\\n fill: #cacccd\\n}\", \"\",{\"version\":3,\"sources\":[\"_datepicker.css\"],\"names\":[],\"mappings\":\"AAAA;EACE;AACF;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,kBAAkB;EAClB,eAAe;EACf,yBAAyB;EACzB,cAAc;EACd,iBAAiB;EACjB,iBAAiB;EACjB,aAAa;EACb,gBAAgB;EAChB,mBAAmB;EACnB,iBAAiB;EAEjB,sBAAsB;EACtB;AACF;AACA;EACE;AACF;AACA;EACE,WAAW;EACX;AACF;AACA;EACE,qBAAqB;EACrB;AACF;AACA;EACE,kBAAkB;EAClB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,eAAe;EACf,SAAS;EACT,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,aAAa;EACb,oBAAoB;EACpB,kBAAkB;EAClB,QAAQ;EACR,QAAQ;EAGR;AACF;AACA;;EAEE,mBAAmB;EACnB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,aAAa;EACb,YAAY;EACZ,WAAW;EACX;AACF;AACA;EACE;AACF;AACA;EACE,eAAe;EACf,SAAS;EACT,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,qBAAqB;EACrB,sBAAsB;EACtB,aAAa;EACb;AACF;AACA;EACE,aAAa;EACb,YAAY;EACZ,WAAW;EACX;AACF;AACA;EACE,kBAAkB;EAClB;AACF;AACA;EACE;AACF;AACA;EACE,UAAU;EACV,sBAAsB;EACtB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,gCAAgC;EAChC,eAAe;EACf,MAAM;EACN,OAAO;EACP,YAAY;EACZ;AACF;AACA;EACE;AACF;AACA;EACE,eAAe;EACf,SAAS;EACT,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,aAAa;EACb;AACF;AACA;;EAEE,0BAA0B;EAC1B;AACF;AACA;EACE,YAAY;EACZ,WAAW;EACX;AACF;AACA;EACE,eAAe;EACf,SAAS;EACT,gBAAgB;EAChB,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,UAAU;EACV,eAAe;EACf;AACF;AACA;EACE;AACF;AACA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB;AACF;AACA;EACE,WAAW;EACX,cAAc;EACd;AACF;AACA;EACE,SAAS;EACT;AACF;AACA;EACE,kCAAkC;EAClC,gCAAgC;EAChC,SAAS;EACT;AACF;AACA;EACE;AACF;AACA;EACE,MAAM;EACN;AACF;AACA;EACE,qCAAqC;EACrC,gCAAgC;EAChC,MAAM;EACN;AACF;AACA;EACE;AACF;AACA;EACE,MAAM;EACN;AACF;AACA;EACE,qCAAqC;EACrC,+BAA+B;EAC/B,MAAM;EACN;AACF;AACA;EACE;AACF;AACA;EACE,WAAW;EACX;AACF;AACA;EACE,SAAS;EACT;AACF;AACA;EACE,QAAQ;EACR;AACF;AACA;EACE,QAAQ;EACR;AACF;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,yBAAyB;EACzB,kBAAkB;EAClB,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,QAAQ;EACR,OAAO;EACP,UAAU;EACV,aAAa;EACb,YAAY;EACZ;AACF;AACA;EACE,eAAe;EACf,gBAAgB;EAChB;AACF;AACA;EACE,gBAAgB;EAChB,UAAU;EACV;AACF;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,SAAS;EACT;AACF;AACA;EACE;AACF;AACA;EACE,YAAY;EACZ,WAAW;EACX;AACF;AACA;;EAEE;AACF;AACA;EAEE,sBAAsB;EACtB,eAAe;EACf,eAAe;EACf;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,yBAAyB;EACzB,cAAc;EACd;AACF;AACA;EACE,mBAAmB;EACnB,yBAAyB;EACzB;AACF;AACA;EACE,mBAAmB;EACnB,0BAA0B;EAC1B;AACF;AACA;EACE,SAAS;EACT,gBAAgB;EAChB;AACF;AACA;EACE;AACF;AACA;EACE,gBAAgB;EAChB,yBAAyB;EACzB;AACF;AACA;;EAEE,gBAAgB;EAChB;AACF;AACA;EACE,mBAAmB;EACnB;AACF;AACA;;EAEE,mBAAmB;EACnB;AACF;AACA;EACE,mBAAmB;EACnB,0BAA0B;EAC1B;AACF;AACA;;EAEE,mBAAmB;EACnB,0BAA0B;EAC1B;AACF;AACA;;;EAGE,mBAAmB;EACnB,0BAA0B;EAC1B;AACF;AACA;;EAEE,mBAAmB;EACnB,0BAA0B;EAC1B;AACF;AACA;EACE,mBAAmB;EACnB,0BAA0B;EAC1B;AACF;AACA;;;EAGE,mBAAmB;EACnB,yBAAyB;EACzB;AACF;AACA;;;EAGE,gBAAgB;EAChB,yBAAyB;EACzB;AACF;AACA;EACE,mBAAmB;EACnB;AACF;AACA;EACE,mBAAmB;EACnB;AACF;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB;AACF;AACA;EACE,yBAAyB;EACzB;AACF;AACA;EACE;AACF;AACA;EACE,cAAc;EACd,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,oBAAoB;EACpB,iBAAoB;EAApB;AACF;AACA;EACE,iBAAiB;EACjB;AACF;AACA;EACE,gBAAgB;EAChB,gBAAgB;EAChB;AACF;AACA;EACE;AACF;AACA;EACE,kBAAkB;EAClB;AACF;AACA;;EAEE;AACF;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB;AACF;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,UAAU;EACV;AACF;AACA;EACE;AACF;AACA;EACE,kBAAkB;EAClB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,SAAS;EACT;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,yBAAyB;EACzB,sBAAsB;EAKtB,aAAa;EAEb;AACF;AACA;EACE,eAAe;EACf,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EACjB,SAAS;EACT,UAAU;EACV;AACF;AACA;EACE,yBAAyB;EACzB,sBAAsB;EACtB;AACF;AACA;;EAEE;AACF;AACA;EACE;AACF;AACA;EACE,eAAe;EACf;AACF;AACA;;EAEE;AACF;AACA;EACE;AACF;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;EAChB,kBAAkB;EAClB;AACF;AACA;EACE,gBAAgB;EAChB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,YAAY;EACZ,gBAAgB;EAChB,sCAAsC;EACtC,kBAAkB;EAClB,qBAAqB;EACrB,kBAAkB;EAClB,YAAY;EACZ;AACF;AACA;EACE;AACF;AACA;;EAEE;AACF;AACA;EACE,YAAY;EACZ,WAAW;EACX,aAAa;EACb;AACF;AACA;EACE,YAAY;EACZ,WAAW;EACX;AACF;AACA;EACE;AACF;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,+DAA+D;EAC/D;AACF;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,SAAS;EACT;AACF;AACA;EACE,gBAAgB;EAAhB;AACF;AACA;EACE;AACF;AACA;;EAEE,qBAAqB;EACrB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV;AACF;AACA;EACE;AACF;AACA;EACE,MAAM;EACN,kBAAkB;EAClB,gCAAgC;EAChC,gBAAgB;EAChB,cAAc;EACd,OAAO;EACP,WAAW;EACX;AACF;AACA;EACE,gBAAgB;EAChB,aAAa;EACb,eAAe;EACf,gBAAgB;EAChB;AACF;AACA;EACE,qBAAqB;EACrB;AACF;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB;AACF;AACA;EAGE;AACF;AACA;EACE;AACF;AACA;EACE,iBAAiB;EACjB,YAAY;EACZ,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,QAAQ;EACR,OAAO;EACP;AACF;AACA;EACE,SAAS;EACT,UAAU;EACV,gBAAgB;EAChB,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;EACZ;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,mBAAmB;EACnB;AACF;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,iBAAiB;EACjB,cAAc;EACd,sBAAsB;EACtB,WAAW;EACX,sBAAsB;EACtB,SAAS;EACT,aAAa;EACb,eAAe;EACf,oCAAoC;EACpC,cAAc;EACd;AACF;AACA;EACE,eAAe;EACf,iBAAiB;EACjB,oBAAoB;EACpB;AACF;AACA;EACE;AACF;AACA;EACE,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB;AACF;AACA;EACE,UAAU;EACV,gBAAgB;EAChB,SAAS;EACT,aAAa;EACb,eAAe;EACf,gCAAgC;EAChC;AACF;AACA;EACE,mBAAmB;EACnB;AACF;AACA;EACE,SAAS;EACT,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,UAAU;EACV,kBAAkB;EAClB;AACF;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,UAAU;EACV;AACF;AACA;EACE;AACF;AACA;EACE,eAAe;EACf;AACF;AACA;EACE,sBAAsB;EACtB;AACF;AACA;EACE;AACF;AACA;EACE,kBAAkB;EAClB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,qBAAqB;EACrB,sBAAsB;EACtB;AACF;AACA;EACE,sBAAsB;EACtB,aAAa;EACb,YAAY;EACZ;AACF;AACA;EACE,eAAe;EACf,SAAS;EACT,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,aAAa;EACb,oBAAoB;EACpB,kBAAkB;EAClB,QAAQ;EACR,QAAQ;EAGR;AACF;AACA;EACE;AACF;AACA;;EAEE,mBAAmB;EACnB;AACF;AACA;EACE;AACF;AACA;EACE,aAAa;EACb,YAAY;EACZ,WAAW;EACX;AACF;AACA;EACE;AACF;AACA;EACE,eAAe;EACf,SAAS;EACT,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,qBAAqB;EACrB,sBAAsB;EACtB,aAAa;EACb;AACF;AACA;EACE,aAAa;EACb,YAAY;EACZ,WAAW;EACX;AACF;AACA;EACE,kBAAkB;EAClB;AACF;AACA;EACE;AACF;AACA;EACE,UAAU;EACV,sBAAsB;EACtB;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE;AACF;AACA;EACE,gCAAgC;EAChC,eAAe;EACf,MAAM;EACN,OAAO;EACP,YAAY;EACZ;AACF;AACA;EACE;AACF;AACA;EACE,eAAe;EACf,SAAS;EACT,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,aAAa;EACb;AACF;AACA;;EAEE,0BAA0B;EAC1B;AACF;AACA;EACE,YAAY;EACZ,WAAW;EACX;AACF\",\"file\":\"_datepicker.css\",\"sourcesContent\":[\".PresetDateRangePicker_panel {\\n padding: 0 22px 11px\\n}\\n.PresetDateRangePicker_button {\\n position: relative;\\n height: 100%;\\n text-align: center;\\n background: 0 0;\\n border: 2px solid #00a699;\\n color: #00a699;\\n padding: 4px 12px;\\n margin-right: 8px;\\n font: inherit;\\n font-weight: 700;\\n line-height: normal;\\n overflow: visible;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n cursor: pointer\\n}\\n.PresetDateRangePicker_button:active {\\n outline: 0\\n}\\n.PresetDateRangePicker_button__selected {\\n color: #fff;\\n background: #00a699\\n}\\n.SingleDatePickerInput {\\n display: inline-block;\\n background-color: #fff\\n}\\n.SingleDatePickerInput__withBorder {\\n border-radius: 2px;\\n border: 1px solid #dbdbdb\\n}\\n.SingleDatePickerInput__rtl {\\n direction: rtl\\n}\\n.SingleDatePickerInput__disabled {\\n background-color: #f2f2f2\\n}\\n.SingleDatePickerInput__block {\\n display: block\\n}\\n.SingleDatePickerInput__showClearDate {\\n padding-right: 30px\\n}\\n.SingleDatePickerInput_clearDate {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n padding: 10px;\\n margin: 0 10px 0 5px;\\n position: absolute;\\n right: 0;\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%)\\n}\\n.SingleDatePickerInput_clearDate__default:focus,\\n.SingleDatePickerInput_clearDate__default:hover {\\n background: #dbdbdb;\\n border-radius: 50%\\n}\\n.SingleDatePickerInput_clearDate__small {\\n padding: 6px\\n}\\n.SingleDatePickerInput_clearDate__hide {\\n visibility: hidden\\n}\\n.SingleDatePickerInput_clearDate_svg {\\n fill: #82888a;\\n height: 12px;\\n width: 15px;\\n vertical-align: middle\\n}\\n.SingleDatePickerInput_clearDate_svg__small {\\n height: 9px\\n}\\n.SingleDatePickerInput_calendarIcon {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n display: inline-block;\\n vertical-align: middle;\\n padding: 10px;\\n margin: 0 5px 0 10px\\n}\\n.SingleDatePickerInput_calendarIcon_svg {\\n fill: #82888a;\\n height: 15px;\\n width: 14px;\\n vertical-align: middle\\n}\\n.SingleDatePicker {\\n position: relative;\\n display: inline-block\\n}\\n.SingleDatePicker__block {\\n display: block\\n}\\n.SingleDatePicker_picker {\\n z-index: 1;\\n background-color: #fff;\\n position: absolute\\n}\\n.SingleDatePicker_picker__rtl {\\n direction: rtl\\n}\\n.SingleDatePicker_picker__directionLeft {\\n left: 0\\n}\\n.SingleDatePicker_picker__directionRight {\\n right: 0\\n}\\n.SingleDatePicker_picker__portal {\\n background-color: rgba(0,0,0,.3);\\n position: fixed;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%\\n}\\n.SingleDatePicker_picker__fullScreenPortal {\\n background-color: #fff\\n}\\n.SingleDatePicker_closeButton {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: 15px;\\n z-index: 2\\n}\\n.SingleDatePicker_closeButton:focus,\\n.SingleDatePicker_closeButton:hover {\\n color: darken(#cacccd,10%);\\n text-decoration: none\\n}\\n.SingleDatePicker_closeButton_svg {\\n height: 15px;\\n width: 15px;\\n fill: #cacccd\\n}\\n.DayPickerKeyboardShortcuts_buttonReset {\\n background: 0 0;\\n border: 0;\\n border-radius: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n padding: 0;\\n cursor: pointer;\\n font-size: 14px\\n}\\n.DayPickerKeyboardShortcuts_buttonReset:active {\\n outline: 0\\n}\\n.DayPickerKeyboardShortcuts_show {\\n width: 33px;\\n height: 26px;\\n position: absolute;\\n z-index: 2\\n}\\n.DayPickerKeyboardShortcuts_show::before {\\n content: \\\"\\\";\\n display: block;\\n position: absolute\\n}\\n.DayPickerKeyboardShortcuts_show__bottomRight {\\n bottom: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__bottomRight::before {\\n border-top: 26px solid transparent;\\n border-right: 33px solid #00a699;\\n bottom: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__bottomRight:hover::before {\\n border-right: 33px solid #008489\\n}\\n.DayPickerKeyboardShortcuts_show__topRight {\\n top: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topRight::before {\\n border-bottom: 26px solid transparent;\\n border-right: 33px solid #00a699;\\n top: 0;\\n right: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topRight:hover::before {\\n border-right: 33px solid #008489\\n}\\n.DayPickerKeyboardShortcuts_show__topLeft {\\n top: 0;\\n left: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topLeft::before {\\n border-bottom: 26px solid transparent;\\n border-left: 33px solid #00a699;\\n top: 0;\\n left: 0\\n}\\n.DayPickerKeyboardShortcuts_show__topLeft:hover::before {\\n border-left: 33px solid #008489\\n}\\n.DayPickerKeyboardShortcuts_showSpan {\\n color: #fff;\\n position: absolute\\n}\\n.DayPickerKeyboardShortcuts_showSpan__bottomRight {\\n bottom: 0;\\n right: 5px\\n}\\n.DayPickerKeyboardShortcuts_showSpan__topRight {\\n top: 1px;\\n right: 5px\\n}\\n.DayPickerKeyboardShortcuts_showSpan__topLeft {\\n top: 1px;\\n left: 5px\\n}\\n.DayPickerKeyboardShortcuts_panel {\\n overflow: auto;\\n background: #fff;\\n border: 1px solid #dbdbdb;\\n border-radius: 2px;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n z-index: 2;\\n padding: 22px;\\n margin: 33px;\\n text-align: left\\n}\\n.DayPickerKeyboardShortcuts_title {\\n font-size: 16px;\\n font-weight: 700;\\n margin: 0\\n}\\n.DayPickerKeyboardShortcuts_list {\\n list-style: none;\\n padding: 0;\\n font-size: 14px\\n}\\n.DayPickerKeyboardShortcuts_close {\\n position: absolute;\\n right: 22px;\\n top: 22px;\\n z-index: 2\\n}\\n.DayPickerKeyboardShortcuts_close:active {\\n outline: 0\\n}\\n.DayPickerKeyboardShortcuts_closeSvg {\\n height: 15px;\\n width: 15px;\\n fill: #cacccd\\n}\\n.DayPickerKeyboardShortcuts_closeSvg:focus,\\n.DayPickerKeyboardShortcuts_closeSvg:hover {\\n fill: #82888a\\n}\\n.CalendarDay {\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n cursor: pointer;\\n font-size: 14px;\\n text-align: center\\n}\\n.CalendarDay:active {\\n outline: 0\\n}\\n.CalendarDay__defaultCursor {\\n cursor: default\\n}\\n.CalendarDay__default {\\n border: 1px solid #e4e7e7;\\n color: #484848;\\n background: #fff\\n}\\n.CalendarDay__default:hover {\\n background: #e4e7e7;\\n border: 1px solid #e4e7e7;\\n color: inherit\\n}\\n.CalendarDay__hovered_offset {\\n background: #f4f5f5;\\n border: 1px double #e4e7e7;\\n color: inherit\\n}\\n.CalendarDay__outside {\\n border: 0;\\n background: #fff;\\n color: #484848\\n}\\n.CalendarDay__outside:hover {\\n border: 0\\n}\\n.CalendarDay__blocked_minimum_nights {\\n background: #fff;\\n border: 1px solid #eceeee;\\n color: #cacccd\\n}\\n.CalendarDay__blocked_minimum_nights:active,\\n.CalendarDay__blocked_minimum_nights:hover {\\n background: #fff;\\n color: #cacccd\\n}\\n.CalendarDay__highlighted_calendar {\\n background: #ffe8bc;\\n color: #484848\\n}\\n.CalendarDay__highlighted_calendar:active,\\n.CalendarDay__highlighted_calendar:hover {\\n background: #ffce71;\\n color: #484848\\n}\\n.CalendarDay__selected_span {\\n background: #66e2da;\\n border: 1px double #33dacd;\\n color: #fff\\n}\\n.CalendarDay__selected_span:active,\\n.CalendarDay__selected_span:hover {\\n background: #33dacd;\\n border: 1px double #33dacd;\\n color: #fff\\n}\\n.CalendarDay__selected,\\n.CalendarDay__selected:active,\\n.CalendarDay__selected:hover {\\n background: #00a699;\\n border: 1px double #00a699;\\n color: #fff\\n}\\n.CalendarDay__hovered_span,\\n.CalendarDay__hovered_span:hover {\\n background: #b2f1ec;\\n border: 1px double #80e8e0;\\n color: #007a87\\n}\\n.CalendarDay__hovered_span:active {\\n background: #80e8e0;\\n border: 1px double #80e8e0;\\n color: #007a87\\n}\\n.CalendarDay__blocked_calendar,\\n.CalendarDay__blocked_calendar:active,\\n.CalendarDay__blocked_calendar:hover {\\n background: #cacccd;\\n border: 1px solid #cacccd;\\n color: #82888a\\n}\\n.CalendarDay__blocked_out_of_range,\\n.CalendarDay__blocked_out_of_range:active,\\n.CalendarDay__blocked_out_of_range:hover {\\n background: #fff;\\n border: 1px solid #e4e7e7;\\n color: #cacccd\\n}\\n.CalendarDay__hovered_start_first_possible_end {\\n background: #eceeee;\\n border: 1px double #eceeee\\n}\\n.CalendarDay__hovered_start_blocked_min_nights {\\n background: #eceeee;\\n border: 1px double #e4e7e7\\n}\\n.CalendarMonth {\\n background: #fff;\\n text-align: center;\\n vertical-align: top;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none\\n}\\n.CalendarMonth_table {\\n border-collapse: collapse;\\n border-spacing: 0\\n}\\n.CalendarMonth_verticalSpacing {\\n border-collapse: separate\\n}\\n.CalendarMonth_caption {\\n color: #484848;\\n font-size: 18px;\\n text-align: center;\\n padding-top: 22px;\\n padding-bottom: 37px;\\n caption-side: initial\\n}\\n.CalendarMonth_caption__verticalScrollable {\\n padding-top: 12px;\\n padding-bottom: 7px\\n}\\n.CalendarMonthGrid {\\n background: #fff;\\n text-align: left;\\n z-index: 0\\n}\\n.CalendarMonthGrid__animating {\\n z-index: 1\\n}\\n.CalendarMonthGrid__horizontal {\\n position: absolute;\\n left: 9px\\n}\\n.CalendarMonthGrid__vertical,\\n.CalendarMonthGrid__vertical_scrollable {\\n margin: 0 auto\\n}\\n.CalendarMonthGrid_month__horizontal {\\n display: inline-block;\\n vertical-align: top;\\n min-height: 100%\\n}\\n.CalendarMonthGrid_month__hideForAnimation {\\n position: absolute;\\n z-index: -1;\\n opacity: 0;\\n pointer-events: none\\n}\\n.CalendarMonthGrid_month__hidden {\\n visibility: hidden\\n}\\n.DayPickerNavigation {\\n position: relative;\\n z-index: 2\\n}\\n.DayPickerNavigation__horizontal {\\n height: 0\\n}\\n.DayPickerNavigation__verticalScrollable_prevNav {\\n z-index: 1\\n}\\n.DayPickerNavigation__verticalDefault {\\n position: absolute;\\n width: 100%;\\n height: 52px;\\n bottom: 0;\\n left: 0\\n}\\n.DayPickerNavigation__verticalScrollableDefault {\\n position: relative\\n}\\n.DayPickerNavigation__bottom {\\n height: auto\\n}\\n.DayPickerNavigation__bottomDefault {\\n -webkit-box-pack: justify;\\n -ms-flex-pack: justify;\\n display: -webkit-box;\\n display: -moz-box;\\n display: -ms-flexbox;\\n display: -webkit-flex;\\n display: flex;\\n -webkit-justify-content: space-between;\\n justify-content: space-between\\n}\\n.DayPickerNavigation_button {\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n border: 0;\\n padding: 0;\\n margin: 0\\n}\\n.DayPickerNavigation_button__default {\\n border: 1px solid #e4e7e7;\\n background-color: #fff;\\n color: #757575\\n}\\n.DayPickerNavigation_button__default:focus,\\n.DayPickerNavigation_button__default:hover {\\n border: 1px solid #c4c4c4\\n}\\n.DayPickerNavigation_button__default:active {\\n background: #f2f2f2\\n}\\n.DayPickerNavigation_button__disabled {\\n cursor: default;\\n border: 1px solid #f2f2f2\\n}\\n.DayPickerNavigation_button__disabled:focus,\\n.DayPickerNavigation_button__disabled:hover {\\n border: 1px solid #f2f2f2\\n}\\n.DayPickerNavigation_button__disabled:active {\\n background: 0 0\\n}\\n.DayPickerNavigation_button__horizontalDefault {\\n position: absolute;\\n top: 18px;\\n line-height: .78;\\n border-radius: 3px;\\n padding: 6px 9px\\n}\\n.DayPickerNavigation_bottomButton__horizontalDefault {\\n position: static;\\n margin: -10px 22px 30px\\n}\\n.DayPickerNavigation_leftButton__horizontalDefault {\\n left: 22px\\n}\\n.DayPickerNavigation_rightButton__horizontalDefault {\\n right: 22px\\n}\\n.DayPickerNavigation_button__verticalDefault {\\n padding: 5px;\\n background: #fff;\\n box-shadow: 0 0 5px 2px rgba(0,0,0,.1);\\n position: relative;\\n display: inline-block;\\n text-align: center;\\n height: 100%;\\n width: 50%\\n}\\n.DayPickerNavigation_nextButton__verticalDefault {\\n border-left: 0\\n}\\n.DayPickerNavigation_nextButton__verticalScrollableDefault,\\n.DayPickerNavigation_prevButton__verticalScrollableDefault {\\n width: 100%\\n}\\n.DayPickerNavigation_svg__horizontal {\\n height: 19px;\\n width: 19px;\\n fill: #82888a;\\n display: block\\n}\\n.DayPickerNavigation_svg__vertical {\\n height: 42px;\\n width: 42px;\\n fill: #484848\\n}\\n.DayPickerNavigation_svg__disabled {\\n fill: #f2f2f2\\n}\\n.DayPicker {\\n background: #fff;\\n position: relative;\\n text-align: left\\n}\\n.DayPicker__horizontal {\\n background: #fff\\n}\\n.DayPicker__verticalScrollable {\\n height: 100%\\n}\\n.DayPicker__hidden {\\n visibility: hidden\\n}\\n.DayPicker__withBorder {\\n box-shadow: 0 2px 6px rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.07);\\n border-radius: 3px\\n}\\n.DayPicker_portal__horizontal {\\n box-shadow: none;\\n position: absolute;\\n left: 50%;\\n top: 50%\\n}\\n.DayPicker_portal__vertical {\\n position: initial\\n}\\n.DayPicker_focusRegion {\\n outline: 0\\n}\\n.DayPicker_calendarInfo__horizontal,\\n.DayPicker_wrapper__horizontal {\\n display: inline-block;\\n vertical-align: top\\n}\\n.DayPicker_weekHeaders {\\n position: relative\\n}\\n.DayPicker_weekHeaders__horizontal {\\n margin-left: 9px\\n}\\n.DayPicker_weekHeader {\\n color: #757575;\\n position: absolute;\\n top: 62px;\\n z-index: 2;\\n text-align: left\\n}\\n.DayPicker_weekHeader__vertical {\\n left: 50%\\n}\\n.DayPicker_weekHeader__verticalScrollable {\\n top: 0;\\n display: table-row;\\n border-bottom: 1px solid #dbdbdb;\\n background: #fff;\\n margin-left: 0;\\n left: 0;\\n width: 100%;\\n text-align: center\\n}\\n.DayPicker_weekHeader_ul {\\n list-style: none;\\n margin: 1px 0;\\n padding-left: 0;\\n padding-right: 0;\\n font-size: 14px\\n}\\n.DayPicker_weekHeader_li {\\n display: inline-block;\\n text-align: center\\n}\\n.DayPicker_transitionContainer {\\n position: relative;\\n overflow: hidden;\\n border-radius: 3px\\n}\\n.DayPicker_transitionContainer__horizontal {\\n -webkit-transition: height .2s ease-in-out;\\n -moz-transition: height .2s ease-in-out;\\n transition: height .2s ease-in-out\\n}\\n.DayPicker_transitionContainer__vertical {\\n width: 100%\\n}\\n.DayPicker_transitionContainer__verticalScrollable {\\n padding-top: 20px;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n overflow-y: scroll\\n}\\n.DateInput {\\n margin: 0;\\n padding: 0;\\n background: #fff;\\n position: relative;\\n display: inline-block;\\n width: 130px;\\n vertical-align: middle\\n}\\n.DateInput__small {\\n width: 97px\\n}\\n.DateInput__block {\\n width: 100%\\n}\\n.DateInput__disabled {\\n background: #f2f2f2;\\n color: #dbdbdb\\n}\\n.DateInput_input {\\n font-weight: 200;\\n font-size: 19px;\\n line-height: 24px;\\n color: #484848;\\n background-color: #fff;\\n width: 100%;\\n padding: 11px 11px 9px;\\n border: 0;\\n border-top: 0;\\n border-right: 0;\\n border-bottom: 2px solid transparent;\\n border-left: 0;\\n border-radius: 0\\n}\\n.DateInput_input__small {\\n font-size: 15px;\\n line-height: 18px;\\n letter-spacing: .2px;\\n padding: 7px 7px 5px\\n}\\n.DateInput_input__regular {\\n font-weight: auto\\n}\\n.DateInput_input__readOnly {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none\\n}\\n.DateInput_input__focused {\\n outline: 0;\\n background: #fff;\\n border: 0;\\n border-top: 0;\\n border-right: 0;\\n border-bottom: 2px solid #008489;\\n border-left: 0\\n}\\n.DateInput_input__disabled {\\n background: #f2f2f2;\\n font-style: italic\\n}\\n.DateInput_screenReaderMessage {\\n border: 0;\\n clip: rect(0,0,0,0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px\\n}\\n.DateInput_fang {\\n position: absolute;\\n width: 20px;\\n height: 10px;\\n left: 22px;\\n z-index: 2\\n}\\n.DateInput_fangShape {\\n fill: #fff\\n}\\n.DateInput_fangStroke {\\n stroke: #dbdbdb;\\n fill: transparent\\n}\\n.DateRangePickerInput {\\n background-color: #fff;\\n display: inline-block\\n}\\n.DateRangePickerInput__disabled {\\n background: #f2f2f2\\n}\\n.DateRangePickerInput__withBorder {\\n border-radius: 2px;\\n border: 1px solid #dbdbdb\\n}\\n.DateRangePickerInput__rtl {\\n direction: rtl\\n}\\n.DateRangePickerInput__block {\\n display: block\\n}\\n.DateRangePickerInput__showClearDates {\\n padding-right: 30px\\n}\\n.DateRangePickerInput_arrow {\\n display: inline-block;\\n vertical-align: middle;\\n color: #484848\\n}\\n.DateRangePickerInput_arrow_svg {\\n vertical-align: middle;\\n fill: #484848;\\n height: 24px;\\n width: 24px\\n}\\n.DateRangePickerInput_clearDates {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n padding: 10px;\\n margin: 0 10px 0 5px;\\n position: absolute;\\n right: 0;\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%)\\n}\\n.DateRangePickerInput_clearDates__small {\\n padding: 6px\\n}\\n.DateRangePickerInput_clearDates_default:focus,\\n.DateRangePickerInput_clearDates_default:hover {\\n background: #dbdbdb;\\n border-radius: 50%\\n}\\n.DateRangePickerInput_clearDates__hide {\\n visibility: hidden\\n}\\n.DateRangePickerInput_clearDates_svg {\\n fill: #82888a;\\n height: 12px;\\n width: 15px;\\n vertical-align: middle\\n}\\n.DateRangePickerInput_clearDates_svg__small {\\n height: 9px\\n}\\n.DateRangePickerInput_calendarIcon {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n display: inline-block;\\n vertical-align: middle;\\n padding: 10px;\\n margin: 0 5px 0 10px\\n}\\n.DateRangePickerInput_calendarIcon_svg {\\n fill: #82888a;\\n height: 15px;\\n width: 14px;\\n vertical-align: middle\\n}\\n.DateRangePicker {\\n position: relative;\\n display: inline-block\\n}\\n.DateRangePicker__block {\\n display: block\\n}\\n.DateRangePicker_picker {\\n z-index: 1;\\n background-color: #fff;\\n position: absolute\\n}\\n.DateRangePicker_picker__rtl {\\n direction: rtl\\n}\\n.DateRangePicker_picker__directionLeft {\\n left: 0\\n}\\n.DateRangePicker_picker__directionRight {\\n right: 0\\n}\\n.DateRangePicker_picker__portal {\\n background-color: rgba(0,0,0,.3);\\n position: fixed;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%\\n}\\n.DateRangePicker_picker__fullScreenPortal {\\n background-color: #fff\\n}\\n.DateRangePicker_closeButton {\\n background: 0 0;\\n border: 0;\\n color: inherit;\\n font: inherit;\\n line-height: normal;\\n overflow: visible;\\n cursor: pointer;\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: 15px;\\n z-index: 2\\n}\\n.DateRangePicker_closeButton:focus,\\n.DateRangePicker_closeButton:hover {\\n color: darken(#cacccd,10%);\\n text-decoration: none\\n}\\n.DateRangePicker_closeButton_svg {\\n height: 15px;\\n width: 15px;\\n fill: #cacccd\\n}\"]}]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \"main > .container-fluid, main > .container-sm, main > .container-md, main > .container-lg, main > .container-xl {\\n padding-top: 5rem; }\\n\\nmain > .container {\\n padding-top: 5rem; }\\n\\nbody {\\n padding-top: 6rem; }\\n\\n.app-content {\\n padding-top: 5rem; }\\n\\n.saved-searches-dropdown {\\n padding: 1em; }\\n\\n.modal-header-no-border {\\n border-bottom: 0 none !important; }\\n\\nbutton.btn-delete-saved-list-item {\\n color: lightgrey; }\\n\\nbutton.btn-delete-saved-list-item:hover {\\n color: darkred; }\\n\\n.saved-list-item-option {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.add-collection-btn {\\n line-height: 1.35 !important;\\n vertical-align: top !important;\\n padding: 0.0rem 0.25rem !important; }\\n\\n.image-gallery-description {\\n left: 0;\\n top: 0;\\n bottom: auto !important;\\n margin: 0 auto;\\n width: 300px; }\\n\\n.virtual-checkbox {\\n margin-left: 2.5em !important; }\\n\\n.audit-table-cell {\\n border-bottom: 1px solid lightgray;\\n border-collapse: collapse;\\n padding: 10px; }\\n\\n.active-days-table {\\n padding: 10px;\\n border: 1px solid lightgray;\\n border-collapse: collapse; }\\n\\n.audit-trail div {\\n float: left;\\n clear: none; }\\n\\n.audit-trail-section {\\n padding: 2em; }\\n\\n.react-pdf__Page__canvas {\\n margin: 0 auto;\\n width: 100% !important;\\n height: 100% !important; }\\n\\n.export-link {\\n text-align: right; }\\n\\n/*!\\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\\n * Copyright 2011-2020 The Bootstrap Authors\\n * Copyright 2011-2020 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */\\n\\n:root {\\n --blue: #007bff;\\n --indigo: #6610f2;\\n --purple: #6f42c1;\\n --pink: #e83e8c;\\n --red: #dc3545;\\n --orange: #fd7e14;\\n --yellow: #ffc107;\\n --green: #28a745;\\n --teal: #20c997;\\n --cyan: #17a2b8;\\n --white: #fff;\\n --gray: #6c757d;\\n --gray-dark: #343a40;\\n --primary: #205492;\\n --secondary: #6c757d;\\n --success: #28a745;\\n --info: #17a2b8;\\n --warning: #ffc107;\\n --danger: #dc3545;\\n --light: #f8f9fa;\\n --dark: #343a40;\\n --breakpoint-xs: 0;\\n --breakpoint-sm: 576px;\\n --breakpoint-md: 768px;\\n --breakpoint-lg: 992px;\\n --breakpoint-xl: 1200px;\\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; }\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box; }\\n\\nhtml {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\\n\\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\\n display: block; }\\n\\nbody {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #212529;\\n text-align: left;\\n background-color: #f8f9fa; }\\n\\n[tabindex=\\\"-1\\\"]:focus:not(:focus-visible) {\\n outline: 0 !important; }\\n\\nhr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible; }\\n\\nh1, h2, h3, h4, h5, h6 {\\n margin-top: 0;\\n margin-bottom: 0.5rem; }\\n\\np {\\n margin-top: 0;\\n margin-bottom: 1rem; }\\n\\nabbr[title],\\nabbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n -webkit-text-decoration-skip-ink: none;\\n text-decoration-skip-ink: none; }\\n\\naddress {\\n margin-bottom: 1rem;\\n font-style: normal;\\n line-height: inherit; }\\n\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 1rem; }\\n\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0; }\\n\\ndt {\\n font-weight: 700; }\\n\\ndd {\\n margin-bottom: .5rem;\\n margin-left: 0; }\\n\\nblockquote {\\n margin: 0 0 1rem; }\\n\\nb,\\nstrong {\\n font-weight: bolder; }\\n\\nsmall {\\n font-size: 80%; }\\n\\nsub,\\nsup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline; }\\n\\nsub {\\n bottom: -.25em; }\\n\\nsup {\\n top: -.5em; }\\n\\na {\\n color: #205492;\\n text-decoration: none;\\n background-color: transparent; }\\n\\na:hover {\\n color: #123053;\\n text-decoration: underline; }\\n\\na:not([href]):not([class]) {\\n color: inherit;\\n text-decoration: none; }\\n\\na:not([href]):not([class]):hover {\\n color: inherit;\\n text-decoration: none; }\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace;\\n font-size: 1em; }\\n\\npre {\\n margin-top: 0;\\n margin-bottom: 1rem;\\n overflow: auto;\\n -ms-overflow-style: scrollbar; }\\n\\nfigure {\\n margin: 0 0 1rem; }\\n\\nimg {\\n vertical-align: middle;\\n border-style: none; }\\n\\nsvg {\\n overflow: hidden;\\n vertical-align: middle; }\\n\\ntable {\\n border-collapse: collapse; }\\n\\ncaption {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom; }\\n\\nth {\\n text-align: inherit; }\\n\\nlabel {\\n display: inline-block;\\n margin-bottom: 0.5rem; }\\n\\nbutton {\\n border-radius: 0; }\\n\\nbutton:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color; }\\n\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit; }\\n\\nbutton,\\ninput {\\n overflow: visible; }\\n\\nbutton,\\nselect {\\n text-transform: none; }\\n\\n[role=\\\"button\\\"] {\\n cursor: pointer; }\\n\\nselect {\\n word-wrap: normal; }\\n\\nbutton,\\n[type=\\\"button\\\"],\\n[type=\\\"reset\\\"],\\n[type=\\\"submit\\\"] {\\n -webkit-appearance: button; }\\n\\nbutton:not(:disabled),\\n[type=\\\"button\\\"]:not(:disabled),\\n[type=\\\"reset\\\"]:not(:disabled),\\n[type=\\\"submit\\\"]:not(:disabled) {\\n cursor: pointer; }\\n\\nbutton::-moz-focus-inner,\\n[type=\\\"button\\\"]::-moz-focus-inner,\\n[type=\\\"reset\\\"]::-moz-focus-inner,\\n[type=\\\"submit\\\"]::-moz-focus-inner {\\n padding: 0;\\n border-style: none; }\\n\\ninput[type=\\\"radio\\\"],\\ninput[type=\\\"checkbox\\\"] {\\n box-sizing: border-box;\\n padding: 0; }\\n\\ntextarea {\\n overflow: auto;\\n resize: vertical; }\\n\\nfieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0; }\\n\\nlegend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: .5rem;\\n font-size: 1.5rem;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal; }\\n\\nprogress {\\n vertical-align: baseline; }\\n\\n[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n height: auto; }\\n\\n[type=\\\"search\\\"] {\\n outline-offset: -2px;\\n -webkit-appearance: none; }\\n\\n[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none; }\\n\\n::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button; }\\n\\noutput {\\n display: inline-block; }\\n\\nsummary {\\n display: list-item;\\n cursor: pointer; }\\n\\ntemplate {\\n display: none; }\\n\\n[hidden] {\\n display: none !important; }\\n\\nh1, h2, h3, h4, h5, h6,\\n.h1, .h2, .h3, .h4, .h5, .h6 {\\n margin-bottom: 0.5rem;\\n font-weight: 500;\\n line-height: 1.2; }\\n\\nh1, .h1 {\\n font-size: 2.5rem; }\\n\\nh2, .h2 {\\n font-size: 2rem; }\\n\\nh3, .h3 {\\n font-size: 1.75rem; }\\n\\nh4, .h4 {\\n font-size: 1.5rem; }\\n\\nh5, .h5 {\\n font-size: 1.25rem; }\\n\\nh6, .h6 {\\n font-size: 1rem; }\\n\\n.lead {\\n font-size: 1.25rem;\\n font-weight: 300; }\\n\\n.display-1 {\\n font-size: 6rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\n.display-2 {\\n font-size: 5.5rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\n.display-3 {\\n font-size: 4.5rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\n.display-4 {\\n font-size: 3.5rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\nhr {\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n border: 0;\\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\\n\\nsmall,\\n.small {\\n font-size: 80%;\\n font-weight: 400; }\\n\\nmark,\\n.mark {\\n padding: 0.2em;\\n background-color: #fcf8e3; }\\n\\n.list-unstyled {\\n padding-left: 0;\\n list-style: none; }\\n\\n.list-inline {\\n padding-left: 0;\\n list-style: none; }\\n\\n.list-inline-item {\\n display: inline-block; }\\n\\n.list-inline-item:not(:last-child) {\\n margin-right: 0.5rem; }\\n\\n.initialism {\\n font-size: 90%;\\n text-transform: uppercase; }\\n\\n.blockquote {\\n margin-bottom: 1rem;\\n font-size: 1.25rem; }\\n\\n.blockquote-footer {\\n display: block;\\n font-size: 80%;\\n color: #6c757d; }\\n\\n.blockquote-footer::before {\\n content: \\\"\\\\2014\\\\00A0\\\"; }\\n\\n.img-fluid {\\n max-width: 100%;\\n height: auto; }\\n\\n.img-thumbnail {\\n padding: 0.25rem;\\n background-color: #f8f9fa;\\n border: 1px solid #dee2e6;\\n border-radius: 0.25rem;\\n max-width: 100%;\\n height: auto; }\\n\\n.figure {\\n display: inline-block; }\\n\\n.figure-img {\\n margin-bottom: 0.5rem;\\n line-height: 1; }\\n\\n.figure-caption {\\n font-size: 90%;\\n color: #6c757d; }\\n\\ncode {\\n font-size: 87.5%;\\n color: #e83e8c;\\n word-wrap: break-word; }\\n\\na > code {\\n color: inherit; }\\n\\nkbd {\\n padding: 0.2rem 0.4rem;\\n font-size: 87.5%;\\n color: #fff;\\n background-color: #212529;\\n border-radius: 0.2rem; }\\n\\nkbd kbd {\\n padding: 0;\\n font-size: 100%;\\n font-weight: 700; }\\n\\npre {\\n display: block;\\n font-size: 87.5%;\\n color: #212529; }\\n\\npre code {\\n font-size: inherit;\\n color: inherit;\\n word-break: normal; }\\n\\n.pre-scrollable {\\n max-height: 340px;\\n overflow-y: scroll; }\\n\\n.container,\\n.container-fluid,\\n.container-sm,\\n.container-md,\\n.container-lg,\\n.container-xl {\\n width: 100%;\\n padding-right: 15px;\\n padding-left: 15px;\\n margin-right: auto;\\n margin-left: auto; }\\n\\n@media (min-width: 576px) {\\n .container, .container-sm {\\n max-width: 540px; } }\\n\\n@media (min-width: 768px) {\\n .container, .container-sm, .container-md {\\n max-width: 720px; } }\\n\\n@media (min-width: 992px) {\\n .container, .container-sm, .container-md, .container-lg {\\n max-width: 960px; } }\\n\\n@media (min-width: 1200px) {\\n .container, .container-sm, .container-md, .container-lg, .container-xl {\\n max-width: 1140px; } }\\n\\n.row {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -15px;\\n margin-left: -15px; }\\n\\n.no-gutters {\\n margin-right: 0;\\n margin-left: 0; }\\n\\n.no-gutters > .col,\\n .no-gutters > [class*=\\\"col-\\\"] {\\n padding-right: 0;\\n padding-left: 0; }\\n\\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\\n.col-xl-auto {\\n position: relative;\\n width: 100%;\\n padding-right: 15px;\\n padding-left: 15px; }\\n\\n.col {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n\\n.row-cols-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n\\n.row-cols-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n\\n.row-cols-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n\\n.row-cols-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n\\n.row-cols-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n\\n.row-cols-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n\\n.col-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n\\n.col-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n\\n.col-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n\\n.col-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n\\n.col-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n\\n.col-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n\\n.col-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n\\n.col-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n\\n.col-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n\\n.col-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n\\n.col-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n\\n.col-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n\\n.col-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n\\n.order-first {\\n order: -1; }\\n\\n.order-last {\\n order: 13; }\\n\\n.order-0 {\\n order: 0; }\\n\\n.order-1 {\\n order: 1; }\\n\\n.order-2 {\\n order: 2; }\\n\\n.order-3 {\\n order: 3; }\\n\\n.order-4 {\\n order: 4; }\\n\\n.order-5 {\\n order: 5; }\\n\\n.order-6 {\\n order: 6; }\\n\\n.order-7 {\\n order: 7; }\\n\\n.order-8 {\\n order: 8; }\\n\\n.order-9 {\\n order: 9; }\\n\\n.order-10 {\\n order: 10; }\\n\\n.order-11 {\\n order: 11; }\\n\\n.order-12 {\\n order: 12; }\\n\\n.offset-1 {\\n margin-left: 8.33333%; }\\n\\n.offset-2 {\\n margin-left: 16.66667%; }\\n\\n.offset-3 {\\n margin-left: 25%; }\\n\\n.offset-4 {\\n margin-left: 33.33333%; }\\n\\n.offset-5 {\\n margin-left: 41.66667%; }\\n\\n.offset-6 {\\n margin-left: 50%; }\\n\\n.offset-7 {\\n margin-left: 58.33333%; }\\n\\n.offset-8 {\\n margin-left: 66.66667%; }\\n\\n.offset-9 {\\n margin-left: 75%; }\\n\\n.offset-10 {\\n margin-left: 83.33333%; }\\n\\n.offset-11 {\\n margin-left: 91.66667%; }\\n\\n@media (min-width: 576px) {\\n .col-sm {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-sm-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-sm-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-sm-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-sm-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-sm-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-sm-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-sm-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-sm-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-sm-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-sm-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-sm-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-sm-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-sm-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-sm-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-sm-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-sm-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-sm-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-sm-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-sm-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-sm-first {\\n order: -1; }\\n .order-sm-last {\\n order: 13; }\\n .order-sm-0 {\\n order: 0; }\\n .order-sm-1 {\\n order: 1; }\\n .order-sm-2 {\\n order: 2; }\\n .order-sm-3 {\\n order: 3; }\\n .order-sm-4 {\\n order: 4; }\\n .order-sm-5 {\\n order: 5; }\\n .order-sm-6 {\\n order: 6; }\\n .order-sm-7 {\\n order: 7; }\\n .order-sm-8 {\\n order: 8; }\\n .order-sm-9 {\\n order: 9; }\\n .order-sm-10 {\\n order: 10; }\\n .order-sm-11 {\\n order: 11; }\\n .order-sm-12 {\\n order: 12; }\\n .offset-sm-0 {\\n margin-left: 0; }\\n .offset-sm-1 {\\n margin-left: 8.33333%; }\\n .offset-sm-2 {\\n margin-left: 16.66667%; }\\n .offset-sm-3 {\\n margin-left: 25%; }\\n .offset-sm-4 {\\n margin-left: 33.33333%; }\\n .offset-sm-5 {\\n margin-left: 41.66667%; }\\n .offset-sm-6 {\\n margin-left: 50%; }\\n .offset-sm-7 {\\n margin-left: 58.33333%; }\\n .offset-sm-8 {\\n margin-left: 66.66667%; }\\n .offset-sm-9 {\\n margin-left: 75%; }\\n .offset-sm-10 {\\n margin-left: 83.33333%; }\\n .offset-sm-11 {\\n margin-left: 91.66667%; } }\\n\\n@media (min-width: 768px) {\\n .col-md {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-md-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-md-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-md-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-md-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-md-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-md-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-md-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-md-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-md-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-md-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-md-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-md-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-md-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-md-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-md-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-md-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-md-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-md-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-md-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-md-first {\\n order: -1; }\\n .order-md-last {\\n order: 13; }\\n .order-md-0 {\\n order: 0; }\\n .order-md-1 {\\n order: 1; }\\n .order-md-2 {\\n order: 2; }\\n .order-md-3 {\\n order: 3; }\\n .order-md-4 {\\n order: 4; }\\n .order-md-5 {\\n order: 5; }\\n .order-md-6 {\\n order: 6; }\\n .order-md-7 {\\n order: 7; }\\n .order-md-8 {\\n order: 8; }\\n .order-md-9 {\\n order: 9; }\\n .order-md-10 {\\n order: 10; }\\n .order-md-11 {\\n order: 11; }\\n .order-md-12 {\\n order: 12; }\\n .offset-md-0 {\\n margin-left: 0; }\\n .offset-md-1 {\\n margin-left: 8.33333%; }\\n .offset-md-2 {\\n margin-left: 16.66667%; }\\n .offset-md-3 {\\n margin-left: 25%; }\\n .offset-md-4 {\\n margin-left: 33.33333%; }\\n .offset-md-5 {\\n margin-left: 41.66667%; }\\n .offset-md-6 {\\n margin-left: 50%; }\\n .offset-md-7 {\\n margin-left: 58.33333%; }\\n .offset-md-8 {\\n margin-left: 66.66667%; }\\n .offset-md-9 {\\n margin-left: 75%; }\\n .offset-md-10 {\\n margin-left: 83.33333%; }\\n .offset-md-11 {\\n margin-left: 91.66667%; } }\\n\\n@media (min-width: 992px) {\\n .col-lg {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-lg-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-lg-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-lg-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-lg-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-lg-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-lg-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-lg-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-lg-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-lg-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-lg-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-lg-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-lg-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-lg-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-lg-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-lg-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-lg-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-lg-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-lg-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-lg-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-lg-first {\\n order: -1; }\\n .order-lg-last {\\n order: 13; }\\n .order-lg-0 {\\n order: 0; }\\n .order-lg-1 {\\n order: 1; }\\n .order-lg-2 {\\n order: 2; }\\n .order-lg-3 {\\n order: 3; }\\n .order-lg-4 {\\n order: 4; }\\n .order-lg-5 {\\n order: 5; }\\n .order-lg-6 {\\n order: 6; }\\n .order-lg-7 {\\n order: 7; }\\n .order-lg-8 {\\n order: 8; }\\n .order-lg-9 {\\n order: 9; }\\n .order-lg-10 {\\n order: 10; }\\n .order-lg-11 {\\n order: 11; }\\n .order-lg-12 {\\n order: 12; }\\n .offset-lg-0 {\\n margin-left: 0; }\\n .offset-lg-1 {\\n margin-left: 8.33333%; }\\n .offset-lg-2 {\\n margin-left: 16.66667%; }\\n .offset-lg-3 {\\n margin-left: 25%; }\\n .offset-lg-4 {\\n margin-left: 33.33333%; }\\n .offset-lg-5 {\\n margin-left: 41.66667%; }\\n .offset-lg-6 {\\n margin-left: 50%; }\\n .offset-lg-7 {\\n margin-left: 58.33333%; }\\n .offset-lg-8 {\\n margin-left: 66.66667%; }\\n .offset-lg-9 {\\n margin-left: 75%; }\\n .offset-lg-10 {\\n margin-left: 83.33333%; }\\n .offset-lg-11 {\\n margin-left: 91.66667%; } }\\n\\n@media (min-width: 1200px) {\\n .col-xl {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-xl-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-xl-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-xl-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-xl-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-xl-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-xl-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-xl-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-xl-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-xl-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-xl-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-xl-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-xl-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-xl-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-xl-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-xl-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-xl-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-xl-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-xl-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-xl-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-xl-first {\\n order: -1; }\\n .order-xl-last {\\n order: 13; }\\n .order-xl-0 {\\n order: 0; }\\n .order-xl-1 {\\n order: 1; }\\n .order-xl-2 {\\n order: 2; }\\n .order-xl-3 {\\n order: 3; }\\n .order-xl-4 {\\n order: 4; }\\n .order-xl-5 {\\n order: 5; }\\n .order-xl-6 {\\n order: 6; }\\n .order-xl-7 {\\n order: 7; }\\n .order-xl-8 {\\n order: 8; }\\n .order-xl-9 {\\n order: 9; }\\n .order-xl-10 {\\n order: 10; }\\n .order-xl-11 {\\n order: 11; }\\n .order-xl-12 {\\n order: 12; }\\n .offset-xl-0 {\\n margin-left: 0; }\\n .offset-xl-1 {\\n margin-left: 8.33333%; }\\n .offset-xl-2 {\\n margin-left: 16.66667%; }\\n .offset-xl-3 {\\n margin-left: 25%; }\\n .offset-xl-4 {\\n margin-left: 33.33333%; }\\n .offset-xl-5 {\\n margin-left: 41.66667%; }\\n .offset-xl-6 {\\n margin-left: 50%; }\\n .offset-xl-7 {\\n margin-left: 58.33333%; }\\n .offset-xl-8 {\\n margin-left: 66.66667%; }\\n .offset-xl-9 {\\n margin-left: 75%; }\\n .offset-xl-10 {\\n margin-left: 83.33333%; }\\n .offset-xl-11 {\\n margin-left: 91.66667%; } }\\n\\n.table {\\n width: 100%;\\n margin-bottom: 1rem;\\n color: #212529; }\\n\\n.table th,\\n .table td {\\n padding: 0.75rem;\\n vertical-align: top;\\n border-top: 1px solid #dee2e6; }\\n\\n.table thead th {\\n vertical-align: bottom;\\n border-bottom: 2px solid #dee2e6; }\\n\\n.table tbody + tbody {\\n border-top: 2px solid #dee2e6; }\\n\\n.table-sm th,\\n.table-sm td {\\n padding: 0.3rem; }\\n\\n.table-bordered {\\n border: 1px solid #dee2e6; }\\n\\n.table-bordered th,\\n .table-bordered td {\\n border: 1px solid #dee2e6; }\\n\\n.table-bordered thead th,\\n .table-bordered thead td {\\n border-bottom-width: 2px; }\\n\\n.table-borderless th,\\n.table-borderless td,\\n.table-borderless thead th,\\n.table-borderless tbody + tbody {\\n border: 0; }\\n\\n.table-striped tbody tr:nth-of-type(odd) {\\n background-color: rgba(0, 0, 0, 0.05); }\\n\\n.table-hover tbody tr:hover {\\n color: #212529;\\n background-color: rgba(0, 0, 0, 0.075); }\\n\\n.table-primary,\\n.table-primary > th,\\n.table-primary > td {\\n background-color: #c1cfe0; }\\n\\n.table-primary th,\\n.table-primary td,\\n.table-primary thead th,\\n.table-primary tbody + tbody {\\n border-color: #8ba6c6; }\\n\\n.table-hover .table-primary:hover {\\n background-color: #b0c2d8; }\\n\\n.table-hover .table-primary:hover > td,\\n .table-hover .table-primary:hover > th {\\n background-color: #b0c2d8; }\\n\\n.table-secondary,\\n.table-secondary > th,\\n.table-secondary > td {\\n background-color: #d6d8db; }\\n\\n.table-secondary th,\\n.table-secondary td,\\n.table-secondary thead th,\\n.table-secondary tbody + tbody {\\n border-color: #b3b7bb; }\\n\\n.table-hover .table-secondary:hover {\\n background-color: #c8cbcf; }\\n\\n.table-hover .table-secondary:hover > td,\\n .table-hover .table-secondary:hover > th {\\n background-color: #c8cbcf; }\\n\\n.table-success,\\n.table-success > th,\\n.table-success > td {\\n background-color: #c3e6cb; }\\n\\n.table-success th,\\n.table-success td,\\n.table-success thead th,\\n.table-success tbody + tbody {\\n border-color: #8fd19e; }\\n\\n.table-hover .table-success:hover {\\n background-color: #b1dfbb; }\\n\\n.table-hover .table-success:hover > td,\\n .table-hover .table-success:hover > th {\\n background-color: #b1dfbb; }\\n\\n.table-info,\\n.table-info > th,\\n.table-info > td {\\n background-color: #bee5eb; }\\n\\n.table-info th,\\n.table-info td,\\n.table-info thead th,\\n.table-info tbody + tbody {\\n border-color: #86cfda; }\\n\\n.table-hover .table-info:hover {\\n background-color: #abdde5; }\\n\\n.table-hover .table-info:hover > td,\\n .table-hover .table-info:hover > th {\\n background-color: #abdde5; }\\n\\n.table-warning,\\n.table-warning > th,\\n.table-warning > td {\\n background-color: #ffeeba; }\\n\\n.table-warning th,\\n.table-warning td,\\n.table-warning thead th,\\n.table-warning tbody + tbody {\\n border-color: #ffdf7e; }\\n\\n.table-hover .table-warning:hover {\\n background-color: #ffe8a1; }\\n\\n.table-hover .table-warning:hover > td,\\n .table-hover .table-warning:hover > th {\\n background-color: #ffe8a1; }\\n\\n.table-danger,\\n.table-danger > th,\\n.table-danger > td {\\n background-color: #f5c6cb; }\\n\\n.table-danger th,\\n.table-danger td,\\n.table-danger thead th,\\n.table-danger tbody + tbody {\\n border-color: #ed969e; }\\n\\n.table-hover .table-danger:hover {\\n background-color: #f1b0b7; }\\n\\n.table-hover .table-danger:hover > td,\\n .table-hover .table-danger:hover > th {\\n background-color: #f1b0b7; }\\n\\n.table-light,\\n.table-light > th,\\n.table-light > td {\\n background-color: #fdfdfe; }\\n\\n.table-light th,\\n.table-light td,\\n.table-light thead th,\\n.table-light tbody + tbody {\\n border-color: #fbfcfc; }\\n\\n.table-hover .table-light:hover {\\n background-color: #ececf6; }\\n\\n.table-hover .table-light:hover > td,\\n .table-hover .table-light:hover > th {\\n background-color: #ececf6; }\\n\\n.table-dark,\\n.table-dark > th,\\n.table-dark > td {\\n background-color: #c6c8ca; }\\n\\n.table-dark th,\\n.table-dark td,\\n.table-dark thead th,\\n.table-dark tbody + tbody {\\n border-color: #95999c; }\\n\\n.table-hover .table-dark:hover {\\n background-color: #b9bbbe; }\\n\\n.table-hover .table-dark:hover > td,\\n .table-hover .table-dark:hover > th {\\n background-color: #b9bbbe; }\\n\\n.table-active,\\n.table-active > th,\\n.table-active > td {\\n background-color: rgba(0, 0, 0, 0.075); }\\n\\n.table-hover .table-active:hover {\\n background-color: rgba(0, 0, 0, 0.075); }\\n\\n.table-hover .table-active:hover > td,\\n .table-hover .table-active:hover > th {\\n background-color: rgba(0, 0, 0, 0.075); }\\n\\n.table .thead-dark th {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #454d55; }\\n\\n.table .thead-light th {\\n color: #495057;\\n background-color: #e9ecef;\\n border-color: #dee2e6; }\\n\\n.table-dark {\\n color: #fff;\\n background-color: #343a40; }\\n\\n.table-dark th,\\n .table-dark td,\\n .table-dark thead th {\\n border-color: #454d55; }\\n\\n.table-dark.table-bordered {\\n border: 0; }\\n\\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\\n background-color: rgba(255, 255, 255, 0.05); }\\n\\n.table-dark.table-hover tbody tr:hover {\\n color: #fff;\\n background-color: rgba(255, 255, 255, 0.075); }\\n\\n@media (max-width: 575.98px) {\\n .table-responsive-sm {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-sm > .table-bordered {\\n border: 0; } }\\n\\n@media (max-width: 767.98px) {\\n .table-responsive-md {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-md > .table-bordered {\\n border: 0; } }\\n\\n@media (max-width: 991.98px) {\\n .table-responsive-lg {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-lg > .table-bordered {\\n border: 0; } }\\n\\n@media (max-width: 1199.98px) {\\n .table-responsive-xl {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-xl > .table-bordered {\\n border: 0; } }\\n\\n.table-responsive {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n\\n.table-responsive > .table-bordered {\\n border: 0; }\\n\\n.form-control {\\n display: block;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .form-control {\\n transition: none; } }\\n\\n.form-control::-ms-expand {\\n background-color: transparent;\\n border: 0; }\\n\\n.form-control:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 #495057; }\\n\\n.form-control:focus {\\n color: #495057;\\n background-color: #fff;\\n border-color: #5793da;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.form-control::-moz-placeholder {\\n color: #6c757d;\\n opacity: 1; }\\n\\n.form-control:-ms-input-placeholder {\\n color: #6c757d;\\n opacity: 1; }\\n\\n.form-control::-ms-input-placeholder {\\n color: #6c757d;\\n opacity: 1; }\\n\\n.form-control::placeholder {\\n color: #6c757d;\\n opacity: 1; }\\n\\n.form-control:disabled, .form-control[readonly] {\\n background-color: #e9ecef;\\n opacity: 1; }\\n\\ninput[type=\\\"date\\\"].form-control,\\ninput[type=\\\"time\\\"].form-control,\\ninput[type=\\\"datetime-local\\\"].form-control,\\ninput[type=\\\"month\\\"].form-control {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none; }\\n\\nselect.form-control:focus::-ms-value {\\n color: #495057;\\n background-color: #fff; }\\n\\n.form-control-file,\\n.form-control-range {\\n display: block;\\n width: 100%; }\\n\\n.col-form-label {\\n padding-top: calc(0.375rem + 1px);\\n padding-bottom: calc(0.375rem + 1px);\\n margin-bottom: 0;\\n font-size: inherit;\\n line-height: 1.5; }\\n\\n.col-form-label-lg {\\n padding-top: calc(0.5rem + 1px);\\n padding-bottom: calc(0.5rem + 1px);\\n font-size: 1.25rem;\\n line-height: 1.5; }\\n\\n.col-form-label-sm {\\n padding-top: calc(0.25rem + 1px);\\n padding-bottom: calc(0.25rem + 1px);\\n font-size: 0.875rem;\\n line-height: 1.5; }\\n\\n.form-control-plaintext {\\n display: block;\\n width: 100%;\\n padding: 0.375rem 0;\\n margin-bottom: 0;\\n font-size: 1rem;\\n line-height: 1.5;\\n color: #212529;\\n background-color: transparent;\\n border: solid transparent;\\n border-width: 1px 0; }\\n\\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\\n padding-right: 0;\\n padding-left: 0; }\\n\\n.form-control-sm {\\n height: calc(1.5em + 0.5rem + 2px);\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n border-radius: 0.2rem; }\\n\\n.form-control-lg {\\n height: calc(1.5em + 1rem + 2px);\\n padding: 0.5rem 1rem;\\n font-size: 1.25rem;\\n line-height: 1.5;\\n border-radius: 0.3rem; }\\n\\nselect.form-control[size], select.form-control[multiple] {\\n height: auto; }\\n\\ntextarea.form-control {\\n height: auto; }\\n\\n.form-group {\\n margin-bottom: 1rem; }\\n\\n.form-text {\\n display: block;\\n margin-top: 0.25rem; }\\n\\n.form-row {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -5px;\\n margin-left: -5px; }\\n\\n.form-row > .col,\\n .form-row > [class*=\\\"col-\\\"] {\\n padding-right: 5px;\\n padding-left: 5px; }\\n\\n.form-check {\\n position: relative;\\n display: block;\\n padding-left: 1.25rem; }\\n\\n.form-check-input {\\n position: absolute;\\n margin-top: 0.3rem;\\n margin-left: -1.25rem; }\\n\\n.form-check-input[disabled] ~ .form-check-label,\\n .form-check-input:disabled ~ .form-check-label {\\n color: #6c757d; }\\n\\n.form-check-label {\\n margin-bottom: 0; }\\n\\n.form-check-inline {\\n display: inline-flex;\\n align-items: center;\\n padding-left: 0;\\n margin-right: 0.75rem; }\\n\\n.form-check-inline .form-check-input {\\n position: static;\\n margin-top: 0;\\n margin-right: 0.3125rem;\\n margin-left: 0; }\\n\\n.valid-feedback {\\n display: none;\\n width: 100%;\\n margin-top: 0.25rem;\\n font-size: 80%;\\n color: #28a745; }\\n\\n.valid-tooltip {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 5;\\n display: none;\\n max-width: 100%;\\n padding: 0.25rem 0.5rem;\\n margin-top: .1rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n color: #fff;\\n background-color: rgba(40, 167, 69, 0.9);\\n border-radius: 0.25rem; }\\n\\n.was-validated :valid ~ .valid-feedback,\\n.was-validated :valid ~ .valid-tooltip,\\n.is-valid ~ .valid-feedback,\\n.is-valid ~ .valid-tooltip {\\n display: block; }\\n\\n.was-validated .form-control:valid, .form-control.is-valid {\\n border-color: #28a745;\\n padding-right: calc(1.5em + 0.75rem);\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\");\\n background-repeat: no-repeat;\\n background-position: right calc(0.375em + 0.1875rem) center;\\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n\\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\\n border-color: #28a745;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\\n padding-right: calc(1.5em + 0.75rem);\\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\\n\\n.was-validated .custom-select:valid, .custom-select.is-valid {\\n border-color: #28a745;\\n padding-right: calc(0.75em + 2.3125rem);\\n background: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") no-repeat right 0.75rem center/8px 10px, url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n\\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\\n border-color: #28a745;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\\n color: #28a745; }\\n\\n.was-validated .form-check-input:valid ~ .valid-feedback,\\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\\n.form-check-input.is-valid ~ .valid-tooltip {\\n display: block; }\\n\\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\\n color: #28a745; }\\n\\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\\n border-color: #28a745; }\\n\\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\\n border-color: #34ce57;\\n background-color: #34ce57; }\\n\\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: #28a745; }\\n\\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\\n border-color: #28a745; }\\n\\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\\n border-color: #28a745;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.invalid-feedback {\\n display: none;\\n width: 100%;\\n margin-top: 0.25rem;\\n font-size: 80%;\\n color: #dc3545; }\\n\\n.invalid-tooltip {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 5;\\n display: none;\\n max-width: 100%;\\n padding: 0.25rem 0.5rem;\\n margin-top: .1rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n color: #fff;\\n background-color: rgba(220, 53, 69, 0.9);\\n border-radius: 0.25rem; }\\n\\n.was-validated :invalid ~ .invalid-feedback,\\n.was-validated :invalid ~ .invalid-tooltip,\\n.is-invalid ~ .invalid-feedback,\\n.is-invalid ~ .invalid-tooltip {\\n display: block; }\\n\\n.was-validated .form-control:invalid, .form-control.is-invalid {\\n border-color: #dc3545;\\n padding-right: calc(1.5em + 0.75rem);\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\\\");\\n background-repeat: no-repeat;\\n background-position: right calc(0.375em + 0.1875rem) center;\\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n\\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\\n border-color: #dc3545;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\\n padding-right: calc(1.5em + 0.75rem);\\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\\n\\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\\n border-color: #dc3545;\\n padding-right: calc(0.75em + 2.3125rem);\\n background: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") no-repeat right 0.75rem center/8px 10px, url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\\\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n\\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\\n border-color: #dc3545;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\\n color: #dc3545; }\\n\\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\\n.form-check-input.is-invalid ~ .invalid-tooltip {\\n display: block; }\\n\\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\\n color: #dc3545; }\\n\\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\\n border-color: #dc3545; }\\n\\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\\n border-color: #e4606d;\\n background-color: #e4606d; }\\n\\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: #dc3545; }\\n\\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\\n border-color: #dc3545; }\\n\\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\\n border-color: #dc3545;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.form-inline {\\n display: flex;\\n flex-flow: row wrap;\\n align-items: center; }\\n\\n.form-inline .form-check {\\n width: 100%; }\\n\\n@media (min-width: 576px) {\\n .form-inline label {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin-bottom: 0; }\\n .form-inline .form-group {\\n display: flex;\\n flex: 0 0 auto;\\n flex-flow: row wrap;\\n align-items: center;\\n margin-bottom: 0; }\\n .form-inline .form-control {\\n display: inline-block;\\n width: auto;\\n vertical-align: middle; }\\n .form-inline .form-control-plaintext {\\n display: inline-block; }\\n .form-inline .input-group,\\n .form-inline .custom-select {\\n width: auto; }\\n .form-inline .form-check {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: auto;\\n padding-left: 0; }\\n .form-inline .form-check-input {\\n position: relative;\\n flex-shrink: 0;\\n margin-top: 0;\\n margin-right: 0.25rem;\\n margin-left: 0; }\\n .form-inline .custom-control {\\n align-items: center;\\n justify-content: center; }\\n .form-inline .custom-control-label {\\n margin-bottom: 0; } }\\n\\n.btn {\\n display: inline-block;\\n font-weight: 400;\\n color: #212529;\\n text-align: center;\\n vertical-align: middle;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n background-color: transparent;\\n border: 1px solid transparent;\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem;\\n line-height: 1.5;\\n border-radius: 0.25rem;\\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .btn {\\n transition: none; } }\\n\\n.btn:hover {\\n color: #212529;\\n text-decoration: none; }\\n\\n.btn:focus, .btn.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.btn.disabled, .btn:disabled {\\n opacity: 0.65; }\\n\\n.btn:not(:disabled):not(.disabled) {\\n cursor: pointer; }\\n\\na.btn.disabled,\\nfieldset:disabled a.btn {\\n pointer-events: none; }\\n\\n.btn-primary {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n\\n.btn-primary:hover {\\n color: #fff;\\n background-color: #194273;\\n border-color: #173c68; }\\n\\n.btn-primary:focus, .btn-primary.focus {\\n color: #fff;\\n background-color: #194273;\\n border-color: #173c68;\\n box-shadow: 0 0 0 0.2rem rgba(65, 110, 162, 0.5); }\\n\\n.btn-primary.disabled, .btn-primary:disabled {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n\\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\\n .show > .btn-primary.dropdown-toggle {\\n color: #fff;\\n background-color: #173c68;\\n border-color: #15365e; }\\n\\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-primary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(65, 110, 162, 0.5); }\\n\\n.btn-secondary {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-secondary:hover {\\n color: #fff;\\n background-color: #5a6268;\\n border-color: #545b62; }\\n\\n.btn-secondary:focus, .btn-secondary.focus {\\n color: #fff;\\n background-color: #5a6268;\\n border-color: #545b62;\\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); }\\n\\n.btn-secondary.disabled, .btn-secondary:disabled {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\\n .show > .btn-secondary.dropdown-toggle {\\n color: #fff;\\n background-color: #545b62;\\n border-color: #4e555b; }\\n\\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-secondary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); }\\n\\n.btn-success {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n\\n.btn-success:hover {\\n color: #fff;\\n background-color: #218838;\\n border-color: #1e7e34; }\\n\\n.btn-success:focus, .btn-success.focus {\\n color: #fff;\\n background-color: #218838;\\n border-color: #1e7e34;\\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); }\\n\\n.btn-success.disabled, .btn-success:disabled {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n\\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\\n .show > .btn-success.dropdown-toggle {\\n color: #fff;\\n background-color: #1e7e34;\\n border-color: #1c7430; }\\n\\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-success.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); }\\n\\n.btn-info {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n\\n.btn-info:hover {\\n color: #fff;\\n background-color: #138496;\\n border-color: #117a8b; }\\n\\n.btn-info:focus, .btn-info.focus {\\n color: #fff;\\n background-color: #138496;\\n border-color: #117a8b;\\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); }\\n\\n.btn-info.disabled, .btn-info:disabled {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n\\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\\n .show > .btn-info.dropdown-toggle {\\n color: #fff;\\n background-color: #117a8b;\\n border-color: #10707f; }\\n\\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-info.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); }\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n\\n.btn-warning:hover {\\n color: #212529;\\n background-color: #e0a800;\\n border-color: #d39e00; }\\n\\n.btn-warning:focus, .btn-warning.focus {\\n color: #212529;\\n background-color: #e0a800;\\n border-color: #d39e00;\\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); }\\n\\n.btn-warning.disabled, .btn-warning:disabled {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n\\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\\n .show > .btn-warning.dropdown-toggle {\\n color: #212529;\\n background-color: #d39e00;\\n border-color: #c69500; }\\n\\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-warning.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); }\\n\\n.btn-danger {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n\\n.btn-danger:hover {\\n color: #fff;\\n background-color: #c82333;\\n border-color: #bd2130; }\\n\\n.btn-danger:focus, .btn-danger.focus {\\n color: #fff;\\n background-color: #c82333;\\n border-color: #bd2130;\\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); }\\n\\n.btn-danger.disabled, .btn-danger:disabled {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n\\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\\n .show > .btn-danger.dropdown-toggle {\\n color: #fff;\\n background-color: #bd2130;\\n border-color: #b21f2d; }\\n\\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-danger.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); }\\n\\n.btn-light {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n\\n.btn-light:hover {\\n color: #212529;\\n background-color: #e2e6ea;\\n border-color: #dae0e5; }\\n\\n.btn-light:focus, .btn-light.focus {\\n color: #212529;\\n background-color: #e2e6ea;\\n border-color: #dae0e5;\\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\\n\\n.btn-light.disabled, .btn-light:disabled {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n\\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\\n .show > .btn-light.dropdown-toggle {\\n color: #212529;\\n background-color: #dae0e5;\\n border-color: #d3d9df; }\\n\\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-light.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\\n\\n.btn-dark {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n\\n.btn-dark:hover {\\n color: #fff;\\n background-color: #23272b;\\n border-color: #1d2124; }\\n\\n.btn-dark:focus, .btn-dark.focus {\\n color: #fff;\\n background-color: #23272b;\\n border-color: #1d2124;\\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\\n\\n.btn-dark.disabled, .btn-dark:disabled {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n\\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\\n .show > .btn-dark.dropdown-toggle {\\n color: #fff;\\n background-color: #1d2124;\\n border-color: #171a1d; }\\n\\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-dark.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\\n\\n.btn-outline-primary {\\n color: #205492;\\n border-color: #205492; }\\n\\n.btn-outline-primary:hover {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n\\n.btn-outline-primary:focus, .btn-outline-primary.focus {\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.5); }\\n\\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\\n color: #205492;\\n background-color: transparent; }\\n\\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-primary.dropdown-toggle {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n\\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-primary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.5); }\\n\\n.btn-outline-secondary {\\n color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-outline-secondary:hover {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n\\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\\n color: #6c757d;\\n background-color: transparent; }\\n\\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-secondary.dropdown-toggle {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n\\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-secondary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n\\n.btn-outline-success {\\n color: #28a745;\\n border-color: #28a745; }\\n\\n.btn-outline-success:hover {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n\\n.btn-outline-success:focus, .btn-outline-success.focus {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n\\n.btn-outline-success.disabled, .btn-outline-success:disabled {\\n color: #28a745;\\n background-color: transparent; }\\n\\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-success.dropdown-toggle {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n\\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-success.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n\\n.btn-outline-info {\\n color: #17a2b8;\\n border-color: #17a2b8; }\\n\\n.btn-outline-info:hover {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n\\n.btn-outline-info:focus, .btn-outline-info.focus {\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n\\n.btn-outline-info.disabled, .btn-outline-info:disabled {\\n color: #17a2b8;\\n background-color: transparent; }\\n\\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-info.dropdown-toggle {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n\\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-info.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n\\n.btn-outline-warning {\\n color: #ffc107;\\n border-color: #ffc107; }\\n\\n.btn-outline-warning:hover {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n\\n.btn-outline-warning:focus, .btn-outline-warning.focus {\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n\\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\\n color: #ffc107;\\n background-color: transparent; }\\n\\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-warning.dropdown-toggle {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n\\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-warning.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n\\n.btn-outline-danger {\\n color: #dc3545;\\n border-color: #dc3545; }\\n\\n.btn-outline-danger:hover {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n\\n.btn-outline-danger:focus, .btn-outline-danger.focus {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n\\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\\n color: #dc3545;\\n background-color: transparent; }\\n\\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-danger.dropdown-toggle {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n\\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-danger.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n\\n.btn-outline-light {\\n color: #f8f9fa;\\n border-color: #f8f9fa; }\\n\\n.btn-outline-light:hover {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n\\n.btn-outline-light:focus, .btn-outline-light.focus {\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n\\n.btn-outline-light.disabled, .btn-outline-light:disabled {\\n color: #f8f9fa;\\n background-color: transparent; }\\n\\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-light.dropdown-toggle {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n\\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-light.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n\\n.btn-outline-dark {\\n color: #343a40;\\n border-color: #343a40; }\\n\\n.btn-outline-dark:hover {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n\\n.btn-outline-dark:focus, .btn-outline-dark.focus {\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n\\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\\n color: #343a40;\\n background-color: transparent; }\\n\\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-dark.dropdown-toggle {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n\\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-dark.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n\\n.btn-link {\\n font-weight: 400;\\n color: #205492;\\n text-decoration: none; }\\n\\n.btn-link:hover {\\n color: #123053;\\n text-decoration: underline; }\\n\\n.btn-link:focus, .btn-link.focus {\\n text-decoration: underline; }\\n\\n.btn-link:disabled, .btn-link.disabled {\\n color: #6c757d;\\n pointer-events: none; }\\n\\n.btn-lg, .btn-group-lg > .btn {\\n padding: 0.5rem 1rem;\\n font-size: 1.25rem;\\n line-height: 1.5;\\n border-radius: 0.3rem; }\\n\\n.btn-sm, .btn-group-sm > .btn {\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n border-radius: 0.2rem; }\\n\\n.btn-block {\\n display: block;\\n width: 100%; }\\n\\n.btn-block + .btn-block {\\n margin-top: 0.5rem; }\\n\\ninput[type=\\\"submit\\\"].btn-block,\\ninput[type=\\\"reset\\\"].btn-block,\\ninput[type=\\\"button\\\"].btn-block {\\n width: 100%; }\\n\\n.fade {\\n transition: opacity 0.15s linear; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fade {\\n transition: none; } }\\n\\n.fade:not(.show) {\\n opacity: 0; }\\n\\n.collapse:not(.show) {\\n display: none; }\\n\\n.collapsing {\\n position: relative;\\n height: 0;\\n overflow: hidden;\\n transition: height 0.35s ease; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .collapsing {\\n transition: none; } }\\n\\n.dropup,\\n.dropright,\\n.dropdown,\\n.dropleft {\\n position: relative; }\\n\\n.dropdown-toggle {\\n white-space: nowrap; }\\n\\n.dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0.3em solid;\\n border-right: 0.3em solid transparent;\\n border-bottom: 0;\\n border-left: 0.3em solid transparent; }\\n\\n.dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropdown-menu {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 1000;\\n display: none;\\n float: left;\\n min-width: 10rem;\\n padding: 0.5rem 0;\\n margin: 0.125rem 0 0;\\n font-size: 1rem;\\n color: #212529;\\n text-align: left;\\n list-style: none;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.15);\\n border-radius: 0.25rem; }\\n\\n.dropdown-menu-left {\\n right: auto;\\n left: 0; }\\n\\n.dropdown-menu-right {\\n right: 0;\\n left: auto; }\\n\\n@media (min-width: 576px) {\\n .dropdown-menu-sm-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-sm-right {\\n right: 0;\\n left: auto; } }\\n\\n@media (min-width: 768px) {\\n .dropdown-menu-md-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-md-right {\\n right: 0;\\n left: auto; } }\\n\\n@media (min-width: 992px) {\\n .dropdown-menu-lg-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-lg-right {\\n right: 0;\\n left: auto; } }\\n\\n@media (min-width: 1200px) {\\n .dropdown-menu-xl-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-xl-right {\\n right: 0;\\n left: auto; } }\\n\\n.dropup .dropdown-menu {\\n top: auto;\\n bottom: 100%;\\n margin-top: 0;\\n margin-bottom: 0.125rem; }\\n\\n.dropup .dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0;\\n border-right: 0.3em solid transparent;\\n border-bottom: 0.3em solid;\\n border-left: 0.3em solid transparent; }\\n\\n.dropup .dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropright .dropdown-menu {\\n top: 0;\\n right: auto;\\n left: 100%;\\n margin-top: 0;\\n margin-left: 0.125rem; }\\n\\n.dropright .dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0.3em solid transparent;\\n border-right: 0;\\n border-bottom: 0.3em solid transparent;\\n border-left: 0.3em solid; }\\n\\n.dropright .dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropright .dropdown-toggle::after {\\n vertical-align: 0; }\\n\\n.dropleft .dropdown-menu {\\n top: 0;\\n right: 100%;\\n left: auto;\\n margin-top: 0;\\n margin-right: 0.125rem; }\\n\\n.dropleft .dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\"; }\\n\\n.dropleft .dropdown-toggle::after {\\n display: none; }\\n\\n.dropleft .dropdown-toggle::before {\\n display: inline-block;\\n margin-right: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0.3em solid transparent;\\n border-right: 0.3em solid;\\n border-bottom: 0.3em solid transparent; }\\n\\n.dropleft .dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropleft .dropdown-toggle::before {\\n vertical-align: 0; }\\n\\n.dropdown-menu[x-placement^=\\\"top\\\"], .dropdown-menu[x-placement^=\\\"right\\\"], .dropdown-menu[x-placement^=\\\"bottom\\\"], .dropdown-menu[x-placement^=\\\"left\\\"] {\\n right: auto;\\n bottom: auto; }\\n\\n.dropdown-divider {\\n height: 0;\\n margin: 0.5rem 0;\\n overflow: hidden;\\n border-top: 1px solid #e9ecef; }\\n\\n.dropdown-item {\\n display: block;\\n width: 100%;\\n padding: 0.25rem 1.5rem;\\n clear: both;\\n font-weight: 400;\\n color: #212529;\\n text-align: inherit;\\n white-space: nowrap;\\n background-color: transparent;\\n border: 0; }\\n\\n.dropdown-item:hover, .dropdown-item:focus {\\n color: #16181b;\\n text-decoration: none;\\n background-color: #f8f9fa; }\\n\\n.dropdown-item.active, .dropdown-item:active {\\n color: #fff;\\n text-decoration: none;\\n background-color: #205492; }\\n\\n.dropdown-item.disabled, .dropdown-item:disabled {\\n color: #6c757d;\\n pointer-events: none;\\n background-color: transparent; }\\n\\n.dropdown-menu.show {\\n display: block; }\\n\\n.dropdown-header {\\n display: block;\\n padding: 0.5rem 1.5rem;\\n margin-bottom: 0;\\n font-size: 0.875rem;\\n color: #6c757d;\\n white-space: nowrap; }\\n\\n.dropdown-item-text {\\n display: block;\\n padding: 0.25rem 1.5rem;\\n color: #212529; }\\n\\n.btn-group,\\n.btn-group-vertical {\\n position: relative;\\n display: inline-flex;\\n vertical-align: middle; }\\n\\n.btn-group > .btn,\\n .btn-group-vertical > .btn {\\n position: relative;\\n flex: 1 1 auto; }\\n\\n.btn-group > .btn:hover,\\n .btn-group-vertical > .btn:hover {\\n z-index: 1; }\\n\\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\\n .btn-group-vertical > .btn:focus,\\n .btn-group-vertical > .btn:active,\\n .btn-group-vertical > .btn.active {\\n z-index: 1; }\\n\\n.btn-toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-start; }\\n\\n.btn-toolbar .input-group {\\n width: auto; }\\n\\n.btn-group > .btn:not(:first-child),\\n.btn-group > .btn-group:not(:first-child) {\\n margin-left: -1px; }\\n\\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\\n.btn-group > .btn-group:not(:last-child) > .btn {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.btn-group > .btn:not(:first-child),\\n.btn-group > .btn-group:not(:first-child) > .btn {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.dropdown-toggle-split {\\n padding-right: 0.5625rem;\\n padding-left: 0.5625rem; }\\n\\n.dropdown-toggle-split::after,\\n .dropup .dropdown-toggle-split::after,\\n .dropright .dropdown-toggle-split::after {\\n margin-left: 0; }\\n\\n.dropleft .dropdown-toggle-split::before {\\n margin-right: 0; }\\n\\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\\n padding-right: 0.375rem;\\n padding-left: 0.375rem; }\\n\\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\\n padding-right: 0.75rem;\\n padding-left: 0.75rem; }\\n\\n.btn-group-vertical {\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center; }\\n\\n.btn-group-vertical > .btn,\\n .btn-group-vertical > .btn-group {\\n width: 100%; }\\n\\n.btn-group-vertical > .btn:not(:first-child),\\n .btn-group-vertical > .btn-group:not(:first-child) {\\n margin-top: -1px; }\\n\\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.btn-group-vertical > .btn:not(:first-child),\\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.btn-group-toggle > .btn,\\n.btn-group-toggle > .btn-group > .btn {\\n margin-bottom: 0; }\\n\\n.btn-group-toggle > .btn input[type=\\\"radio\\\"],\\n .btn-group-toggle > .btn input[type=\\\"checkbox\\\"],\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"radio\\\"],\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n clip: rect(0, 0, 0, 0);\\n pointer-events: none; }\\n\\n.input-group {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap;\\n align-items: stretch;\\n width: 100%; }\\n\\n.input-group > .form-control,\\n .input-group > .form-control-plaintext,\\n .input-group > .custom-select,\\n .input-group > .custom-file {\\n position: relative;\\n flex: 1 1 auto;\\n width: 1%;\\n min-width: 0;\\n margin-bottom: 0; }\\n\\n.input-group > .form-control + .form-control,\\n .input-group > .form-control + .custom-select,\\n .input-group > .form-control + .custom-file,\\n .input-group > .form-control-plaintext + .form-control,\\n .input-group > .form-control-plaintext + .custom-select,\\n .input-group > .form-control-plaintext + .custom-file,\\n .input-group > .custom-select + .form-control,\\n .input-group > .custom-select + .custom-select,\\n .input-group > .custom-select + .custom-file,\\n .input-group > .custom-file + .form-control,\\n .input-group > .custom-file + .custom-select,\\n .input-group > .custom-file + .custom-file {\\n margin-left: -1px; }\\n\\n.input-group > .form-control:focus,\\n .input-group > .custom-select:focus,\\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\\n z-index: 3; }\\n\\n.input-group > .custom-file .custom-file-input:focus {\\n z-index: 4; }\\n\\n.input-group > .form-control:not(:last-child),\\n .input-group > .custom-select:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.input-group > .form-control:not(:first-child),\\n .input-group > .custom-select:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.input-group > .custom-file {\\n display: flex;\\n align-items: center; }\\n\\n.input-group > .custom-file:not(:last-child) .custom-file-label,\\n .input-group > .custom-file:not(:last-child) .custom-file-label::after {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.input-group > .custom-file:not(:first-child) .custom-file-label {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.input-group-prepend,\\n.input-group-append {\\n display: flex; }\\n\\n.input-group-prepend .btn,\\n .input-group-append .btn {\\n position: relative;\\n z-index: 2; }\\n\\n.input-group-prepend .btn:focus,\\n .input-group-append .btn:focus {\\n z-index: 3; }\\n\\n.input-group-prepend .btn + .btn,\\n .input-group-prepend .btn + .input-group-text,\\n .input-group-prepend .input-group-text + .input-group-text,\\n .input-group-prepend .input-group-text + .btn,\\n .input-group-append .btn + .btn,\\n .input-group-append .btn + .input-group-text,\\n .input-group-append .input-group-text + .input-group-text,\\n .input-group-append .input-group-text + .btn {\\n margin-left: -1px; }\\n\\n.input-group-prepend {\\n margin-right: -1px; }\\n\\n.input-group-append {\\n margin-left: -1px; }\\n\\n.input-group-text {\\n display: flex;\\n align-items: center;\\n padding: 0.375rem 0.75rem;\\n margin-bottom: 0;\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n text-align: center;\\n white-space: nowrap;\\n background-color: #e9ecef;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem; }\\n\\n.input-group-text input[type=\\\"radio\\\"],\\n .input-group-text input[type=\\\"checkbox\\\"] {\\n margin-top: 0; }\\n\\n.input-group-lg > .form-control:not(textarea),\\n.input-group-lg > .custom-select {\\n height: calc(1.5em + 1rem + 2px); }\\n\\n.input-group-lg > .form-control,\\n.input-group-lg > .custom-select,\\n.input-group-lg > .input-group-prepend > .input-group-text,\\n.input-group-lg > .input-group-append > .input-group-text,\\n.input-group-lg > .input-group-prepend > .btn,\\n.input-group-lg > .input-group-append > .btn {\\n padding: 0.5rem 1rem;\\n font-size: 1.25rem;\\n line-height: 1.5;\\n border-radius: 0.3rem; }\\n\\n.input-group-sm > .form-control:not(textarea),\\n.input-group-sm > .custom-select {\\n height: calc(1.5em + 0.5rem + 2px); }\\n\\n.input-group-sm > .form-control,\\n.input-group-sm > .custom-select,\\n.input-group-sm > .input-group-prepend > .input-group-text,\\n.input-group-sm > .input-group-append > .input-group-text,\\n.input-group-sm > .input-group-prepend > .btn,\\n.input-group-sm > .input-group-append > .btn {\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n border-radius: 0.2rem; }\\n\\n.input-group-lg > .custom-select,\\n.input-group-sm > .custom-select {\\n padding-right: 1.75rem; }\\n\\n.input-group > .input-group-prepend > .btn,\\n.input-group > .input-group-prepend > .input-group-text,\\n.input-group > .input-group-append:not(:last-child) > .btn,\\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.input-group > .input-group-append > .btn,\\n.input-group > .input-group-append > .input-group-text,\\n.input-group > .input-group-prepend:not(:first-child) > .btn,\\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.custom-control {\\n position: relative;\\n z-index: 1;\\n display: block;\\n min-height: 1.5rem;\\n padding-left: 1.5rem; }\\n\\n.custom-control-inline {\\n display: inline-flex;\\n margin-right: 1rem; }\\n\\n.custom-control-input {\\n position: absolute;\\n left: 0;\\n z-index: -1;\\n width: 1rem;\\n height: 1.25rem;\\n opacity: 0; }\\n\\n.custom-control-input:checked ~ .custom-control-label::before {\\n color: #fff;\\n border-color: #205492;\\n background-color: #205492; }\\n\\n.custom-control-input:focus ~ .custom-control-label::before {\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: #5793da; }\\n\\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\\n color: #fff;\\n background-color: #81aee3;\\n border-color: #81aee3; }\\n\\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\\n color: #6c757d; }\\n\\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\\n background-color: #e9ecef; }\\n\\n.custom-control-label {\\n position: relative;\\n margin-bottom: 0;\\n vertical-align: top; }\\n\\n.custom-control-label::before {\\n position: absolute;\\n top: 0.25rem;\\n left: -1.5rem;\\n display: block;\\n width: 1rem;\\n height: 1rem;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: #fff;\\n border: #adb5bd solid 1px; }\\n\\n.custom-control-label::after {\\n position: absolute;\\n top: 0.25rem;\\n left: -1.5rem;\\n display: block;\\n width: 1rem;\\n height: 1rem;\\n content: \\\"\\\";\\n background: no-repeat 50% / 50% 50%; }\\n\\n.custom-checkbox .custom-control-label::before {\\n border-radius: 0.25rem; }\\n\\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\\\"); }\\n\\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\\n border-color: #205492;\\n background-color: #205492; }\\n\\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\\\"); }\\n\\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-radio .custom-control-label::before {\\n border-radius: 50%; }\\n\\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\\\"); }\\n\\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-switch {\\n padding-left: 2.25rem; }\\n\\n.custom-switch .custom-control-label::before {\\n left: -2.25rem;\\n width: 1.75rem;\\n pointer-events: all;\\n border-radius: 0.5rem; }\\n\\n.custom-switch .custom-control-label::after {\\n top: calc(0.25rem + 2px);\\n left: calc(-2.25rem + 2px);\\n width: calc(1rem - 4px);\\n height: calc(1rem - 4px);\\n background-color: #adb5bd;\\n border-radius: 0.5rem;\\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .custom-switch .custom-control-label::after {\\n transition: none; } }\\n\\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\\n background-color: #fff;\\n transform: translateX(0.75rem); }\\n\\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-select {\\n display: inline-block;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n vertical-align: middle;\\n background: #fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") no-repeat right 0.75rem center/8px 10px;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none; }\\n\\n.custom-select:focus {\\n border-color: #5793da;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.custom-select:focus::-ms-value {\\n color: #495057;\\n background-color: #fff; }\\n\\n.custom-select[multiple], .custom-select[size]:not([size=\\\"1\\\"]) {\\n height: auto;\\n padding-right: 0.75rem;\\n background-image: none; }\\n\\n.custom-select:disabled {\\n color: #6c757d;\\n background-color: #e9ecef; }\\n\\n.custom-select::-ms-expand {\\n display: none; }\\n\\n.custom-select:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 #495057; }\\n\\n.custom-select-sm {\\n height: calc(1.5em + 0.5rem + 2px);\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem;\\n padding-left: 0.5rem;\\n font-size: 0.875rem; }\\n\\n.custom-select-lg {\\n height: calc(1.5em + 1rem + 2px);\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n padding-left: 1rem;\\n font-size: 1.25rem; }\\n\\n.custom-file {\\n position: relative;\\n display: inline-block;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n margin-bottom: 0; }\\n\\n.custom-file-input {\\n position: relative;\\n z-index: 2;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n margin: 0;\\n opacity: 0; }\\n\\n.custom-file-input:focus ~ .custom-file-label {\\n border-color: #5793da;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.custom-file-input[disabled] ~ .custom-file-label,\\n .custom-file-input:disabled ~ .custom-file-label {\\n background-color: #e9ecef; }\\n\\n.custom-file-input:lang(en) ~ .custom-file-label::after {\\n content: \\\"Browse\\\"; }\\n\\n.custom-file-input ~ .custom-file-label[data-browse]::after {\\n content: attr(data-browse); }\\n\\n.custom-file-label {\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: 1;\\n height: calc(1.5em + 0.75rem + 2px);\\n padding: 0.375rem 0.75rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n background-color: #fff;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem; }\\n\\n.custom-file-label::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n z-index: 3;\\n display: block;\\n height: calc(1.5em + 0.75rem);\\n padding: 0.375rem 0.75rem;\\n line-height: 1.5;\\n color: #495057;\\n content: \\\"Browse\\\";\\n background-color: #e9ecef;\\n border-left: inherit;\\n border-radius: 0 0.25rem 0.25rem 0; }\\n\\n.custom-range {\\n width: 100%;\\n height: 1.4rem;\\n padding: 0;\\n background-color: transparent;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none; }\\n\\n.custom-range:focus {\\n outline: none; }\\n\\n.custom-range:focus::-webkit-slider-thumb {\\n box-shadow: 0 0 0 1px #f8f9fa, 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.custom-range:focus::-moz-range-thumb {\\n box-shadow: 0 0 0 1px #f8f9fa, 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.custom-range:focus::-ms-thumb {\\n box-shadow: 0 0 0 1px #f8f9fa, 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.custom-range::-moz-focus-outer {\\n border: 0; }\\n\\n.custom-range::-webkit-slider-thumb {\\n width: 1rem;\\n height: 1rem;\\n margin-top: -0.25rem;\\n background-color: #205492;\\n border: 0;\\n border-radius: 1rem;\\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n -webkit-appearance: none;\\n appearance: none; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .custom-range::-webkit-slider-thumb {\\n -webkit-transition: none;\\n transition: none; } }\\n\\n.custom-range::-webkit-slider-thumb:active {\\n background-color: #81aee3; }\\n\\n.custom-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: 0.5rem;\\n color: transparent;\\n cursor: pointer;\\n background-color: #dee2e6;\\n border-color: transparent;\\n border-radius: 1rem; }\\n\\n.custom-range::-moz-range-thumb {\\n width: 1rem;\\n height: 1rem;\\n background-color: #205492;\\n border: 0;\\n border-radius: 1rem;\\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n -moz-appearance: none;\\n appearance: none; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .custom-range::-moz-range-thumb {\\n -moz-transition: none;\\n transition: none; } }\\n\\n.custom-range::-moz-range-thumb:active {\\n background-color: #81aee3; }\\n\\n.custom-range::-moz-range-track {\\n width: 100%;\\n height: 0.5rem;\\n color: transparent;\\n cursor: pointer;\\n background-color: #dee2e6;\\n border-color: transparent;\\n border-radius: 1rem; }\\n\\n.custom-range::-ms-thumb {\\n width: 1rem;\\n height: 1rem;\\n margin-top: 0;\\n margin-right: 0.2rem;\\n margin-left: 0.2rem;\\n background-color: #205492;\\n border: 0;\\n border-radius: 1rem;\\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n appearance: none; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .custom-range::-ms-thumb {\\n -ms-transition: none;\\n transition: none; } }\\n\\n.custom-range::-ms-thumb:active {\\n background-color: #81aee3; }\\n\\n.custom-range::-ms-track {\\n width: 100%;\\n height: 0.5rem;\\n color: transparent;\\n cursor: pointer;\\n background-color: transparent;\\n border-color: transparent;\\n border-width: 0.5rem; }\\n\\n.custom-range::-ms-fill-lower {\\n background-color: #dee2e6;\\n border-radius: 1rem; }\\n\\n.custom-range::-ms-fill-upper {\\n margin-right: 15px;\\n background-color: #dee2e6;\\n border-radius: 1rem; }\\n\\n.custom-range:disabled::-webkit-slider-thumb {\\n background-color: #adb5bd; }\\n\\n.custom-range:disabled::-webkit-slider-runnable-track {\\n cursor: default; }\\n\\n.custom-range:disabled::-moz-range-thumb {\\n background-color: #adb5bd; }\\n\\n.custom-range:disabled::-moz-range-track {\\n cursor: default; }\\n\\n.custom-range:disabled::-ms-thumb {\\n background-color: #adb5bd; }\\n\\n.custom-control-label::before,\\n.custom-file-label,\\n.custom-select {\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .custom-control-label::before,\\n .custom-file-label,\\n .custom-select {\\n transition: none; } }\\n\\n.nav {\\n display: flex;\\n flex-wrap: wrap;\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none; }\\n\\n.nav-link {\\n display: block;\\n padding: 0.5rem 1rem; }\\n\\n.nav-link:hover, .nav-link:focus {\\n text-decoration: none; }\\n\\n.nav-link.disabled {\\n color: #6c757d;\\n pointer-events: none;\\n cursor: default; }\\n\\n.nav-tabs {\\n border-bottom: 1px solid #dee2e6; }\\n\\n.nav-tabs .nav-item {\\n margin-bottom: -1px; }\\n\\n.nav-tabs .nav-link {\\n border: 1px solid transparent;\\n border-top-left-radius: 0.25rem;\\n border-top-right-radius: 0.25rem; }\\n\\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\\n border-color: #e9ecef #e9ecef #dee2e6; }\\n\\n.nav-tabs .nav-link.disabled {\\n color: #6c757d;\\n background-color: transparent;\\n border-color: transparent; }\\n\\n.nav-tabs .nav-link.active,\\n .nav-tabs .nav-item.show .nav-link {\\n color: #495057;\\n background-color: #f8f9fa;\\n border-color: #dee2e6 #dee2e6 #f8f9fa; }\\n\\n.nav-tabs .dropdown-menu {\\n margin-top: -1px;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.nav-pills .nav-link {\\n border-radius: 0.25rem; }\\n\\n.nav-pills .nav-link.active,\\n.nav-pills .show > .nav-link {\\n color: #fff;\\n background-color: #205492; }\\n\\n.nav-fill > .nav-link,\\n.nav-fill .nav-item {\\n flex: 1 1 auto;\\n text-align: center; }\\n\\n.nav-justified > .nav-link,\\n.nav-justified .nav-item {\\n flex-basis: 0;\\n flex-grow: 1;\\n text-align: center; }\\n\\n.tab-content > .tab-pane {\\n display: none; }\\n\\n.tab-content > .active {\\n display: block; }\\n\\n.navbar {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: space-between;\\n padding: 0.5rem 1rem; }\\n\\n.navbar .container,\\n .navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.navbar-brand {\\n display: inline-block;\\n padding-top: 0.3125rem;\\n padding-bottom: 0.3125rem;\\n margin-right: 1rem;\\n font-size: 1.25rem;\\n line-height: inherit;\\n white-space: nowrap; }\\n\\n.navbar-brand:hover, .navbar-brand:focus {\\n text-decoration: none; }\\n\\n.navbar-nav {\\n display: flex;\\n flex-direction: column;\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none; }\\n\\n.navbar-nav .nav-link {\\n padding-right: 0;\\n padding-left: 0; }\\n\\n.navbar-nav .dropdown-menu {\\n position: static;\\n float: none; }\\n\\n.navbar-text {\\n display: inline-block;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem; }\\n\\n.navbar-collapse {\\n flex-basis: 100%;\\n flex-grow: 1;\\n align-items: center; }\\n\\n.navbar-toggler {\\n padding: 0.25rem 0.75rem;\\n font-size: 1.25rem;\\n line-height: 1;\\n background-color: transparent;\\n border: 1px solid transparent;\\n border-radius: 0.25rem; }\\n\\n.navbar-toggler:hover, .navbar-toggler:focus {\\n text-decoration: none; }\\n\\n.navbar-toggler-icon {\\n display: inline-block;\\n width: 1.5em;\\n height: 1.5em;\\n vertical-align: middle;\\n content: \\\"\\\";\\n background: no-repeat center center;\\n background-size: 100% 100%; }\\n\\n@media (max-width: 575.98px) {\\n .navbar-expand-sm > .container,\\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 576px) {\\n .navbar-expand-sm {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-sm .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-sm .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-sm .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-sm > .container,\\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-sm .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-sm .navbar-toggler {\\n display: none; } }\\n\\n@media (max-width: 767.98px) {\\n .navbar-expand-md > .container,\\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 768px) {\\n .navbar-expand-md {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-md .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-md .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-md .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-md > .container,\\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-md .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-md .navbar-toggler {\\n display: none; } }\\n\\n@media (max-width: 991.98px) {\\n .navbar-expand-lg > .container,\\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 992px) {\\n .navbar-expand-lg {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-lg .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-lg .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-lg .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-lg > .container,\\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-lg .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-lg .navbar-toggler {\\n display: none; } }\\n\\n@media (max-width: 1199.98px) {\\n .navbar-expand-xl > .container,\\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 1200px) {\\n .navbar-expand-xl {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-xl .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-xl .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-xl .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-xl > .container,\\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-xl .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-xl .navbar-toggler {\\n display: none; } }\\n\\n.navbar-expand {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n\\n.navbar-expand > .container,\\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\\n padding-right: 0;\\n padding-left: 0; }\\n\\n.navbar-expand .navbar-nav {\\n flex-direction: row; }\\n\\n.navbar-expand .navbar-nav .dropdown-menu {\\n position: absolute; }\\n\\n.navbar-expand .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n\\n.navbar-expand > .container,\\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\\n flex-wrap: nowrap; }\\n\\n.navbar-expand .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n\\n.navbar-expand .navbar-toggler {\\n display: none; }\\n\\n.navbar-light .navbar-brand {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-light .navbar-nav .nav-link {\\n color: rgba(0, 0, 0, 0.5); }\\n\\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\\n color: rgba(0, 0, 0, 0.7); }\\n\\n.navbar-light .navbar-nav .nav-link.disabled {\\n color: rgba(0, 0, 0, 0.3); }\\n\\n.navbar-light .navbar-nav .show > .nav-link,\\n.navbar-light .navbar-nav .active > .nav-link,\\n.navbar-light .navbar-nav .nav-link.show,\\n.navbar-light .navbar-nav .nav-link.active {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-light .navbar-toggler {\\n color: rgba(0, 0, 0, 0.5);\\n border-color: rgba(0, 0, 0, 0.1); }\\n\\n.navbar-light .navbar-toggler-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\"); }\\n\\n.navbar-light .navbar-text {\\n color: rgba(0, 0, 0, 0.5); }\\n\\n.navbar-light .navbar-text a {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-dark .navbar-brand {\\n color: #fff; }\\n\\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\\n color: #fff; }\\n\\n.navbar-dark .navbar-nav .nav-link {\\n color: rgba(255, 255, 255, 0.5); }\\n\\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\\n color: rgba(255, 255, 255, 0.75); }\\n\\n.navbar-dark .navbar-nav .nav-link.disabled {\\n color: rgba(255, 255, 255, 0.25); }\\n\\n.navbar-dark .navbar-nav .show > .nav-link,\\n.navbar-dark .navbar-nav .active > .nav-link,\\n.navbar-dark .navbar-nav .nav-link.show,\\n.navbar-dark .navbar-nav .nav-link.active {\\n color: #fff; }\\n\\n.navbar-dark .navbar-toggler {\\n color: rgba(255, 255, 255, 0.5);\\n border-color: rgba(255, 255, 255, 0.1); }\\n\\n.navbar-dark .navbar-toggler-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\"); }\\n\\n.navbar-dark .navbar-text {\\n color: rgba(255, 255, 255, 0.5); }\\n\\n.navbar-dark .navbar-text a {\\n color: #fff; }\\n\\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\\n color: #fff; }\\n\\n.card {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n min-width: 0;\\n word-wrap: break-word;\\n background-color: #fff;\\n background-clip: border-box;\\n border: 1px solid rgba(0, 0, 0, 0.125);\\n border-radius: 0.25rem; }\\n\\n.card > hr {\\n margin-right: 0;\\n margin-left: 0; }\\n\\n.card > .list-group {\\n border-top: inherit;\\n border-bottom: inherit; }\\n\\n.card > .list-group:first-child {\\n border-top-width: 0;\\n border-top-left-radius: calc(0.25rem - 1px);\\n border-top-right-radius: calc(0.25rem - 1px); }\\n\\n.card > .list-group:last-child {\\n border-bottom-width: 0;\\n border-bottom-right-radius: calc(0.25rem - 1px);\\n border-bottom-left-radius: calc(0.25rem - 1px); }\\n\\n.card > .card-header + .list-group,\\n .card > .list-group + .card-footer {\\n border-top: 0; }\\n\\n.card-body {\\n flex: 1 1 auto;\\n min-height: 1px;\\n padding: 1.25rem; }\\n\\n.card-title {\\n margin-bottom: 0.75rem; }\\n\\n.card-subtitle {\\n margin-top: -0.375rem;\\n margin-bottom: 0; }\\n\\n.card-text:last-child {\\n margin-bottom: 0; }\\n\\n.card-link:hover {\\n text-decoration: none; }\\n\\n.card-link + .card-link {\\n margin-left: 1.25rem; }\\n\\n.card-header {\\n padding: 0.75rem 1.25rem;\\n margin-bottom: 0;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\\n\\n.card-header:first-child {\\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\\n\\n.card-footer {\\n padding: 0.75rem 1.25rem;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\\n\\n.card-footer:last-child {\\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\\n\\n.card-header-tabs {\\n margin-right: -0.625rem;\\n margin-bottom: -0.75rem;\\n margin-left: -0.625rem;\\n border-bottom: 0; }\\n\\n.card-header-pills {\\n margin-right: -0.625rem;\\n margin-left: -0.625rem; }\\n\\n.card-img-overlay {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n padding: 1.25rem;\\n border-radius: calc(0.25rem - 1px); }\\n\\n.card-img,\\n.card-img-top,\\n.card-img-bottom {\\n flex-shrink: 0;\\n width: 100%; }\\n\\n.card-img,\\n.card-img-top {\\n border-top-left-radius: calc(0.25rem - 1px);\\n border-top-right-radius: calc(0.25rem - 1px); }\\n\\n.card-img,\\n.card-img-bottom {\\n border-bottom-right-radius: calc(0.25rem - 1px);\\n border-bottom-left-radius: calc(0.25rem - 1px); }\\n\\n.card-deck .card {\\n margin-bottom: 15px; }\\n\\n@media (min-width: 576px) {\\n .card-deck {\\n display: flex;\\n flex-flow: row wrap;\\n margin-right: -15px;\\n margin-left: -15px; }\\n .card-deck .card {\\n flex: 1 0;\\n margin-right: 15px;\\n margin-bottom: 0;\\n margin-left: 15px; } }\\n\\n.card-group > .card {\\n margin-bottom: 15px; }\\n\\n@media (min-width: 576px) {\\n .card-group {\\n display: flex;\\n flex-flow: row wrap; }\\n .card-group > .card {\\n flex: 1 0;\\n margin-bottom: 0; }\\n .card-group > .card + .card {\\n margin-left: 0;\\n border-left: 0; }\\n .card-group > .card:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .card-group > .card:not(:last-child) .card-img-top,\\n .card-group > .card:not(:last-child) .card-header {\\n border-top-right-radius: 0; }\\n .card-group > .card:not(:last-child) .card-img-bottom,\\n .card-group > .card:not(:last-child) .card-footer {\\n border-bottom-right-radius: 0; }\\n .card-group > .card:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n .card-group > .card:not(:first-child) .card-img-top,\\n .card-group > .card:not(:first-child) .card-header {\\n border-top-left-radius: 0; }\\n .card-group > .card:not(:first-child) .card-img-bottom,\\n .card-group > .card:not(:first-child) .card-footer {\\n border-bottom-left-radius: 0; } }\\n\\n.card-columns .card {\\n margin-bottom: 0.75rem; }\\n\\n@media (min-width: 576px) {\\n .card-columns {\\n -moz-column-count: 3;\\n column-count: 3;\\n grid-column-gap: 1.25rem;\\n -moz-column-gap: 1.25rem;\\n column-gap: 1.25rem;\\n orphans: 1;\\n widows: 1; }\\n .card-columns .card {\\n display: inline-block;\\n width: 100%; } }\\n\\n.accordion {\\n overflow-anchor: none; }\\n\\n.accordion > .card {\\n overflow: hidden; }\\n\\n.accordion > .card:not(:last-of-type) {\\n border-bottom: 0;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.accordion > .card:not(:first-of-type) {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.accordion > .card > .card-header {\\n border-radius: 0;\\n margin-bottom: -1px; }\\n\\n.breadcrumb {\\n display: flex;\\n flex-wrap: wrap;\\n padding: 0.75rem 1rem;\\n margin-bottom: 1rem;\\n list-style: none;\\n background-color: #e9ecef;\\n border-radius: 0.25rem; }\\n\\n.breadcrumb-item {\\n display: flex; }\\n\\n.breadcrumb-item + .breadcrumb-item {\\n padding-left: 0.5rem; }\\n\\n.breadcrumb-item + .breadcrumb-item::before {\\n display: inline-block;\\n padding-right: 0.5rem;\\n color: #6c757d;\\n content: \\\"/\\\"; }\\n\\n.breadcrumb-item + .breadcrumb-item:hover::before {\\n text-decoration: underline; }\\n\\n.breadcrumb-item + .breadcrumb-item:hover::before {\\n text-decoration: none; }\\n\\n.breadcrumb-item.active {\\n color: #6c757d; }\\n\\n.pagination {\\n display: flex;\\n padding-left: 0;\\n list-style: none;\\n border-radius: 0.25rem; }\\n\\n.page-link {\\n position: relative;\\n display: block;\\n padding: 0.5rem 0.75rem;\\n margin-left: -1px;\\n line-height: 1.25;\\n color: #205492;\\n background-color: #fff;\\n border: 1px solid #dee2e6; }\\n\\n.page-link:hover {\\n z-index: 2;\\n color: #123053;\\n text-decoration: none;\\n background-color: #e9ecef;\\n border-color: #dee2e6; }\\n\\n.page-link:focus {\\n z-index: 3;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.page-item:first-child .page-link {\\n margin-left: 0;\\n border-top-left-radius: 0.25rem;\\n border-bottom-left-radius: 0.25rem; }\\n\\n.page-item:last-child .page-link {\\n border-top-right-radius: 0.25rem;\\n border-bottom-right-radius: 0.25rem; }\\n\\n.page-item.active .page-link {\\n z-index: 3;\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n\\n.page-item.disabled .page-link {\\n color: #6c757d;\\n pointer-events: none;\\n cursor: auto;\\n background-color: #fff;\\n border-color: #dee2e6; }\\n\\n.pagination-lg .page-link {\\n padding: 0.75rem 1.5rem;\\n font-size: 1.25rem;\\n line-height: 1.5; }\\n\\n.pagination-lg .page-item:first-child .page-link {\\n border-top-left-radius: 0.3rem;\\n border-bottom-left-radius: 0.3rem; }\\n\\n.pagination-lg .page-item:last-child .page-link {\\n border-top-right-radius: 0.3rem;\\n border-bottom-right-radius: 0.3rem; }\\n\\n.pagination-sm .page-link {\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5; }\\n\\n.pagination-sm .page-item:first-child .page-link {\\n border-top-left-radius: 0.2rem;\\n border-bottom-left-radius: 0.2rem; }\\n\\n.pagination-sm .page-item:last-child .page-link {\\n border-top-right-radius: 0.2rem;\\n border-bottom-right-radius: 0.2rem; }\\n\\n.badge {\\n display: inline-block;\\n padding: 0.25em 0.4em;\\n font-size: 75%;\\n font-weight: 700;\\n line-height: 1;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: baseline;\\n border-radius: 0.25rem;\\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .badge {\\n transition: none; } }\\n\\na.badge:hover, a.badge:focus {\\n text-decoration: none; }\\n\\n.badge:empty {\\n display: none; }\\n\\n.btn .badge {\\n position: relative;\\n top: -1px; }\\n\\n.badge-pill {\\n padding-right: 0.6em;\\n padding-left: 0.6em;\\n border-radius: 10rem; }\\n\\n.badge-primary {\\n color: #fff;\\n background-color: #205492; }\\n\\na.badge-primary:hover, a.badge-primary:focus {\\n color: #fff;\\n background-color: #173c68; }\\n\\na.badge-primary:focus, a.badge-primary.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.5); }\\n\\n.badge-secondary {\\n color: #fff;\\n background-color: #6c757d; }\\n\\na.badge-secondary:hover, a.badge-secondary:focus {\\n color: #fff;\\n background-color: #545b62; }\\n\\na.badge-secondary:focus, a.badge-secondary.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n\\n.badge-success {\\n color: #fff;\\n background-color: #28a745; }\\n\\na.badge-success:hover, a.badge-success:focus {\\n color: #fff;\\n background-color: #1e7e34; }\\n\\na.badge-success:focus, a.badge-success.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n\\n.badge-info {\\n color: #fff;\\n background-color: #17a2b8; }\\n\\na.badge-info:hover, a.badge-info:focus {\\n color: #fff;\\n background-color: #117a8b; }\\n\\na.badge-info:focus, a.badge-info.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n\\n.badge-warning {\\n color: #212529;\\n background-color: #ffc107; }\\n\\na.badge-warning:hover, a.badge-warning:focus {\\n color: #212529;\\n background-color: #d39e00; }\\n\\na.badge-warning:focus, a.badge-warning.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n\\n.badge-danger {\\n color: #fff;\\n background-color: #dc3545; }\\n\\na.badge-danger:hover, a.badge-danger:focus {\\n color: #fff;\\n background-color: #bd2130; }\\n\\na.badge-danger:focus, a.badge-danger.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n\\n.badge-light {\\n color: #212529;\\n background-color: #f8f9fa; }\\n\\na.badge-light:hover, a.badge-light:focus {\\n color: #212529;\\n background-color: #dae0e5; }\\n\\na.badge-light:focus, a.badge-light.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n\\n.badge-dark {\\n color: #fff;\\n background-color: #343a40; }\\n\\na.badge-dark:hover, a.badge-dark:focus {\\n color: #fff;\\n background-color: #1d2124; }\\n\\na.badge-dark:focus, a.badge-dark.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n\\n.jumbotron {\\n padding: 2rem 1rem;\\n margin-bottom: 2rem;\\n background-color: #e9ecef;\\n border-radius: 0.3rem; }\\n\\n@media (min-width: 576px) {\\n .jumbotron {\\n padding: 4rem 2rem; } }\\n\\n.jumbotron-fluid {\\n padding-right: 0;\\n padding-left: 0;\\n border-radius: 0; }\\n\\n.alert {\\n position: relative;\\n padding: 0.75rem 1.25rem;\\n margin-bottom: 1rem;\\n border: 1px solid transparent;\\n border-radius: 0.25rem; }\\n\\n.alert-heading {\\n color: inherit; }\\n\\n.alert-link {\\n font-weight: 700; }\\n\\n.alert-dismissible {\\n padding-right: 4rem; }\\n\\n.alert-dismissible .close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: 0.75rem 1.25rem;\\n color: inherit; }\\n\\n.alert-primary {\\n color: #112c4c;\\n background-color: #d2dde9;\\n border-color: #c1cfe0; }\\n\\n.alert-primary hr {\\n border-top-color: #b0c2d8; }\\n\\n.alert-primary .alert-link {\\n color: #081422; }\\n\\n.alert-secondary {\\n color: #383d41;\\n background-color: #e2e3e5;\\n border-color: #d6d8db; }\\n\\n.alert-secondary hr {\\n border-top-color: #c8cbcf; }\\n\\n.alert-secondary .alert-link {\\n color: #202326; }\\n\\n.alert-success {\\n color: #155724;\\n background-color: #d4edda;\\n border-color: #c3e6cb; }\\n\\n.alert-success hr {\\n border-top-color: #b1dfbb; }\\n\\n.alert-success .alert-link {\\n color: #0b2e13; }\\n\\n.alert-info {\\n color: #0c5460;\\n background-color: #d1ecf1;\\n border-color: #bee5eb; }\\n\\n.alert-info hr {\\n border-top-color: #abdde5; }\\n\\n.alert-info .alert-link {\\n color: #062c33; }\\n\\n.alert-warning {\\n color: #856404;\\n background-color: #fff3cd;\\n border-color: #ffeeba; }\\n\\n.alert-warning hr {\\n border-top-color: #ffe8a1; }\\n\\n.alert-warning .alert-link {\\n color: #533f03; }\\n\\n.alert-danger {\\n color: #721c24;\\n background-color: #f8d7da;\\n border-color: #f5c6cb; }\\n\\n.alert-danger hr {\\n border-top-color: #f1b0b7; }\\n\\n.alert-danger .alert-link {\\n color: #491217; }\\n\\n.alert-light {\\n color: #818182;\\n background-color: #fefefe;\\n border-color: #fdfdfe; }\\n\\n.alert-light hr {\\n border-top-color: #ececf6; }\\n\\n.alert-light .alert-link {\\n color: #686868; }\\n\\n.alert-dark {\\n color: #1b1e21;\\n background-color: #d6d8d9;\\n border-color: #c6c8ca; }\\n\\n.alert-dark hr {\\n border-top-color: #b9bbbe; }\\n\\n.alert-dark .alert-link {\\n color: #040505; }\\n\\n@-webkit-keyframes progress-bar-stripes {\\n from {\\n background-position: 1rem 0; }\\n to {\\n background-position: 0 0; } }\\n\\n@keyframes progress-bar-stripes {\\n from {\\n background-position: 1rem 0; }\\n to {\\n background-position: 0 0; } }\\n\\n.progress {\\n display: flex;\\n height: 1rem;\\n overflow: hidden;\\n line-height: 0;\\n font-size: 0.75rem;\\n background-color: #e9ecef;\\n border-radius: 0.25rem; }\\n\\n.progress-bar {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n overflow: hidden;\\n color: #fff;\\n text-align: center;\\n white-space: nowrap;\\n background-color: #205492;\\n transition: width 0.6s ease; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .progress-bar {\\n transition: none; } }\\n\\n.progress-bar-striped {\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-size: 1rem 1rem; }\\n\\n.progress-bar-animated {\\n -webkit-animation: progress-bar-stripes 1s linear infinite;\\n animation: progress-bar-stripes 1s linear infinite; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .progress-bar-animated {\\n -webkit-animation: none;\\n animation: none; } }\\n\\n.media {\\n display: flex;\\n align-items: flex-start; }\\n\\n.media-body {\\n flex: 1 1; }\\n\\n.list-group {\\n display: flex;\\n flex-direction: column;\\n padding-left: 0;\\n margin-bottom: 0;\\n border-radius: 0.25rem; }\\n\\n.list-group-item-action {\\n width: 100%;\\n color: #495057;\\n text-align: inherit; }\\n\\n.list-group-item-action:hover, .list-group-item-action:focus {\\n z-index: 1;\\n color: #495057;\\n text-decoration: none;\\n background-color: #f8f9fa; }\\n\\n.list-group-item-action:active {\\n color: #212529;\\n background-color: #e9ecef; }\\n\\n.list-group-item {\\n position: relative;\\n display: block;\\n padding: 0.75rem 1.25rem;\\n background-color: #fff;\\n border: 1px solid rgba(0, 0, 0, 0.125); }\\n\\n.list-group-item:first-child {\\n border-top-left-radius: inherit;\\n border-top-right-radius: inherit; }\\n\\n.list-group-item:last-child {\\n border-bottom-right-radius: inherit;\\n border-bottom-left-radius: inherit; }\\n\\n.list-group-item.disabled, .list-group-item:disabled {\\n color: #6c757d;\\n pointer-events: none;\\n background-color: #fff; }\\n\\n.list-group-item.active {\\n z-index: 2;\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n\\n.list-group-item + .list-group-item {\\n border-top-width: 0; }\\n\\n.list-group-item + .list-group-item.active {\\n margin-top: -1px;\\n border-top-width: 1px; }\\n\\n.list-group-horizontal {\\n flex-direction: row; }\\n\\n.list-group-horizontal > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n\\n.list-group-horizontal > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n\\n.list-group-horizontal > .list-group-item.active {\\n margin-top: 0; }\\n\\n.list-group-horizontal > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n\\n.list-group-horizontal > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; }\\n\\n@media (min-width: 576px) {\\n .list-group-horizontal-sm {\\n flex-direction: row; }\\n .list-group-horizontal-sm > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-sm > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-sm > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n@media (min-width: 768px) {\\n .list-group-horizontal-md {\\n flex-direction: row; }\\n .list-group-horizontal-md > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-md > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-md > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-md > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n@media (min-width: 992px) {\\n .list-group-horizontal-lg {\\n flex-direction: row; }\\n .list-group-horizontal-lg > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-lg > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-lg > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n@media (min-width: 1200px) {\\n .list-group-horizontal-xl {\\n flex-direction: row; }\\n .list-group-horizontal-xl > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-xl > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-xl > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n.list-group-flush {\\n border-radius: 0; }\\n\\n.list-group-flush > .list-group-item {\\n border-width: 0 0 1px; }\\n\\n.list-group-flush > .list-group-item:last-child {\\n border-bottom-width: 0; }\\n\\n.list-group-item-primary {\\n color: #112c4c;\\n background-color: #c1cfe0; }\\n\\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\\n color: #112c4c;\\n background-color: #b0c2d8; }\\n\\n.list-group-item-primary.list-group-item-action.active {\\n color: #fff;\\n background-color: #112c4c;\\n border-color: #112c4c; }\\n\\n.list-group-item-secondary {\\n color: #383d41;\\n background-color: #d6d8db; }\\n\\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\\n color: #383d41;\\n background-color: #c8cbcf; }\\n\\n.list-group-item-secondary.list-group-item-action.active {\\n color: #fff;\\n background-color: #383d41;\\n border-color: #383d41; }\\n\\n.list-group-item-success {\\n color: #155724;\\n background-color: #c3e6cb; }\\n\\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\\n color: #155724;\\n background-color: #b1dfbb; }\\n\\n.list-group-item-success.list-group-item-action.active {\\n color: #fff;\\n background-color: #155724;\\n border-color: #155724; }\\n\\n.list-group-item-info {\\n color: #0c5460;\\n background-color: #bee5eb; }\\n\\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\\n color: #0c5460;\\n background-color: #abdde5; }\\n\\n.list-group-item-info.list-group-item-action.active {\\n color: #fff;\\n background-color: #0c5460;\\n border-color: #0c5460; }\\n\\n.list-group-item-warning {\\n color: #856404;\\n background-color: #ffeeba; }\\n\\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\\n color: #856404;\\n background-color: #ffe8a1; }\\n\\n.list-group-item-warning.list-group-item-action.active {\\n color: #fff;\\n background-color: #856404;\\n border-color: #856404; }\\n\\n.list-group-item-danger {\\n color: #721c24;\\n background-color: #f5c6cb; }\\n\\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\\n color: #721c24;\\n background-color: #f1b0b7; }\\n\\n.list-group-item-danger.list-group-item-action.active {\\n color: #fff;\\n background-color: #721c24;\\n border-color: #721c24; }\\n\\n.list-group-item-light {\\n color: #818182;\\n background-color: #fdfdfe; }\\n\\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\\n color: #818182;\\n background-color: #ececf6; }\\n\\n.list-group-item-light.list-group-item-action.active {\\n color: #fff;\\n background-color: #818182;\\n border-color: #818182; }\\n\\n.list-group-item-dark {\\n color: #1b1e21;\\n background-color: #c6c8ca; }\\n\\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\\n color: #1b1e21;\\n background-color: #b9bbbe; }\\n\\n.list-group-item-dark.list-group-item-action.active {\\n color: #fff;\\n background-color: #1b1e21;\\n border-color: #1b1e21; }\\n\\n.close {\\n float: right;\\n font-size: 1.5rem;\\n font-weight: 700;\\n line-height: 1;\\n color: #000;\\n text-shadow: 0 1px 0 #fff;\\n opacity: .5; }\\n\\n.close:hover {\\n color: #000;\\n text-decoration: none; }\\n\\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\\n opacity: .75; }\\n\\nbutton.close {\\n padding: 0;\\n background-color: transparent;\\n border: 0; }\\n\\na.close.disabled {\\n pointer-events: none; }\\n\\n.toast {\\n flex-basis: 350px;\\n max-width: 350px;\\n font-size: 0.875rem;\\n background-color: rgba(255, 255, 255, 0.85);\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\\n opacity: 0;\\n border-radius: 0.25rem; }\\n\\n.toast:not(:last-child) {\\n margin-bottom: 0.75rem; }\\n\\n.toast.showing {\\n opacity: 1; }\\n\\n.toast.show {\\n display: block;\\n opacity: 1; }\\n\\n.toast.hide {\\n display: none; }\\n\\n.toast-header {\\n display: flex;\\n align-items: center;\\n padding: 0.25rem 0.75rem;\\n color: #6c757d;\\n background-color: rgba(255, 255, 255, 0.85);\\n background-clip: padding-box;\\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\\n border-top-left-radius: calc(0.25rem - 1px);\\n border-top-right-radius: calc(0.25rem - 1px); }\\n\\n.toast-body {\\n padding: 0.75rem; }\\n\\n.modal-open {\\n overflow: hidden; }\\n\\n.modal-open .modal {\\n overflow-x: hidden;\\n overflow-y: auto; }\\n\\n.modal {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 1050;\\n display: none;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n outline: 0; }\\n\\n.modal-dialog {\\n position: relative;\\n width: auto;\\n margin: 0.5rem;\\n pointer-events: none; }\\n\\n.modal.fade .modal-dialog {\\n transition: transform 0.3s ease-out;\\n transform: translate(0, -50px); }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .modal.fade .modal-dialog {\\n transition: none; } }\\n\\n.modal.show .modal-dialog {\\n transform: none; }\\n\\n.modal.modal-static .modal-dialog {\\n transform: scale(1.02); }\\n\\n.modal-dialog-scrollable {\\n display: flex;\\n max-height: calc(100% - 1rem); }\\n\\n.modal-dialog-scrollable .modal-content {\\n max-height: calc(100vh - 1rem);\\n overflow: hidden; }\\n\\n.modal-dialog-scrollable .modal-header,\\n .modal-dialog-scrollable .modal-footer {\\n flex-shrink: 0; }\\n\\n.modal-dialog-scrollable .modal-body {\\n overflow-y: auto; }\\n\\n.modal-dialog-centered {\\n display: flex;\\n align-items: center;\\n min-height: calc(100% - 1rem); }\\n\\n.modal-dialog-centered::before {\\n display: block;\\n height: calc(100vh - 1rem);\\n height: -webkit-min-content;\\n height: -moz-min-content;\\n height: min-content;\\n content: \\\"\\\"; }\\n\\n.modal-dialog-centered.modal-dialog-scrollable {\\n flex-direction: column;\\n justify-content: center;\\n height: 100%; }\\n\\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\\n max-height: none; }\\n\\n.modal-dialog-centered.modal-dialog-scrollable::before {\\n content: none; }\\n\\n.modal-content {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n pointer-events: auto;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 0.3rem;\\n outline: 0; }\\n\\n.modal-backdrop {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 1040;\\n width: 100vw;\\n height: 100vh;\\n background-color: #000; }\\n\\n.modal-backdrop.fade {\\n opacity: 0; }\\n\\n.modal-backdrop.show {\\n opacity: 0.5; }\\n\\n.modal-header {\\n display: flex;\\n align-items: flex-start;\\n justify-content: space-between;\\n padding: 1rem 1rem;\\n border-bottom: 1px solid #dee2e6;\\n border-top-left-radius: calc(0.3rem - 1px);\\n border-top-right-radius: calc(0.3rem - 1px); }\\n\\n.modal-header .close {\\n padding: 1rem 1rem;\\n margin: -1rem -1rem -1rem auto; }\\n\\n.modal-title {\\n margin-bottom: 0;\\n line-height: 1.5; }\\n\\n.modal-body {\\n position: relative;\\n flex: 1 1 auto;\\n padding: 1rem; }\\n\\n.modal-footer {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: flex-end;\\n padding: 0.75rem;\\n border-top: 1px solid #dee2e6;\\n border-bottom-right-radius: calc(0.3rem - 1px);\\n border-bottom-left-radius: calc(0.3rem - 1px); }\\n\\n.modal-footer > * {\\n margin: 0.25rem; }\\n\\n.modal-scrollbar-measure {\\n position: absolute;\\n top: -9999px;\\n width: 50px;\\n height: 50px;\\n overflow: scroll; }\\n\\n@media (min-width: 576px) {\\n .modal-dialog {\\n max-width: 500px;\\n margin: 1.75rem auto; }\\n .modal-dialog-scrollable {\\n max-height: calc(100% - 3.5rem); }\\n .modal-dialog-scrollable .modal-content {\\n max-height: calc(100vh - 3.5rem); }\\n .modal-dialog-centered {\\n min-height: calc(100% - 3.5rem); }\\n .modal-dialog-centered::before {\\n height: calc(100vh - 3.5rem);\\n height: -webkit-min-content;\\n height: -moz-min-content;\\n height: min-content; }\\n .modal-sm {\\n max-width: 300px; } }\\n\\n@media (min-width: 992px) {\\n .modal-lg,\\n .modal-xl {\\n max-width: 800px; } }\\n\\n@media (min-width: 1200px) {\\n .modal-xl {\\n max-width: 1140px; } }\\n\\n.tooltip {\\n position: absolute;\\n z-index: 1070;\\n display: block;\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1.5;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n white-space: normal;\\n line-break: auto;\\n font-size: 0.875rem;\\n word-wrap: break-word;\\n opacity: 0; }\\n\\n.tooltip.show {\\n opacity: 0.9; }\\n\\n.tooltip .arrow {\\n position: absolute;\\n display: block;\\n width: 0.8rem;\\n height: 0.4rem; }\\n\\n.tooltip .arrow::before {\\n position: absolute;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid; }\\n\\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\\\"top\\\"] {\\n padding: 0.4rem 0; }\\n\\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow {\\n bottom: 0; }\\n\\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow::before {\\n top: 0;\\n border-width: 0.4rem 0.4rem 0;\\n border-top-color: #000; }\\n\\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\\\"right\\\"] {\\n padding: 0 0.4rem; }\\n\\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow {\\n left: 0;\\n width: 0.4rem;\\n height: 0.8rem; }\\n\\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow::before {\\n right: 0;\\n border-width: 0.4rem 0.4rem 0.4rem 0;\\n border-right-color: #000; }\\n\\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\\\"bottom\\\"] {\\n padding: 0.4rem 0; }\\n\\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow {\\n top: 0; }\\n\\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow::before {\\n bottom: 0;\\n border-width: 0 0.4rem 0.4rem;\\n border-bottom-color: #000; }\\n\\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\\\"left\\\"] {\\n padding: 0 0.4rem; }\\n\\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow {\\n right: 0;\\n width: 0.4rem;\\n height: 0.8rem; }\\n\\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow::before {\\n left: 0;\\n border-width: 0.4rem 0 0.4rem 0.4rem;\\n border-left-color: #000; }\\n\\n.tooltip-inner {\\n max-width: 200px;\\n padding: 0.25rem 0.5rem;\\n color: #fff;\\n text-align: center;\\n background-color: #000;\\n border-radius: 0.25rem; }\\n\\n.popover {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 1060;\\n display: block;\\n max-width: 276px;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1.5;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n white-space: normal;\\n line-break: auto;\\n font-size: 0.875rem;\\n word-wrap: break-word;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 0.3rem; }\\n\\n.popover .arrow {\\n position: absolute;\\n display: block;\\n width: 1rem;\\n height: 0.5rem;\\n margin: 0 0.3rem; }\\n\\n.popover .arrow::before, .popover .arrow::after {\\n position: absolute;\\n display: block;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid; }\\n\\n.bs-popover-top, .bs-popover-auto[x-placement^=\\\"top\\\"] {\\n margin-bottom: 0.5rem; }\\n\\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\\\"top\\\"] > .arrow {\\n bottom: calc(-0.5rem - 1px); }\\n\\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\\\"top\\\"] > .arrow::before {\\n bottom: 0;\\n border-width: 0.5rem 0.5rem 0;\\n border-top-color: rgba(0, 0, 0, 0.25); }\\n\\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\\\"top\\\"] > .arrow::after {\\n bottom: 1px;\\n border-width: 0.5rem 0.5rem 0;\\n border-top-color: #fff; }\\n\\n.bs-popover-right, .bs-popover-auto[x-placement^=\\\"right\\\"] {\\n margin-left: 0.5rem; }\\n\\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\\\"right\\\"] > .arrow {\\n left: calc(-0.5rem - 1px);\\n width: 0.5rem;\\n height: 1rem;\\n margin: 0.3rem 0; }\\n\\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\\\"right\\\"] > .arrow::before {\\n left: 0;\\n border-width: 0.5rem 0.5rem 0.5rem 0;\\n border-right-color: rgba(0, 0, 0, 0.25); }\\n\\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\\\"right\\\"] > .arrow::after {\\n left: 1px;\\n border-width: 0.5rem 0.5rem 0.5rem 0;\\n border-right-color: #fff; }\\n\\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\\\"bottom\\\"] {\\n margin-top: 0.5rem; }\\n\\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\\\"bottom\\\"] > .arrow {\\n top: calc(-0.5rem - 1px); }\\n\\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\\\"bottom\\\"] > .arrow::before {\\n top: 0;\\n border-width: 0 0.5rem 0.5rem 0.5rem;\\n border-bottom-color: rgba(0, 0, 0, 0.25); }\\n\\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\\\"bottom\\\"] > .arrow::after {\\n top: 1px;\\n border-width: 0 0.5rem 0.5rem 0.5rem;\\n border-bottom-color: #fff; }\\n\\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\\\"bottom\\\"] .popover-header::before {\\n position: absolute;\\n top: 0;\\n left: 50%;\\n display: block;\\n width: 1rem;\\n margin-left: -0.5rem;\\n content: \\\"\\\";\\n border-bottom: 1px solid #f7f7f7; }\\n\\n.bs-popover-left, .bs-popover-auto[x-placement^=\\\"left\\\"] {\\n margin-right: 0.5rem; }\\n\\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\\\"left\\\"] > .arrow {\\n right: calc(-0.5rem - 1px);\\n width: 0.5rem;\\n height: 1rem;\\n margin: 0.3rem 0; }\\n\\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\\\"left\\\"] > .arrow::before {\\n right: 0;\\n border-width: 0.5rem 0 0.5rem 0.5rem;\\n border-left-color: rgba(0, 0, 0, 0.25); }\\n\\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\\\"left\\\"] > .arrow::after {\\n right: 1px;\\n border-width: 0.5rem 0 0.5rem 0.5rem;\\n border-left-color: #fff; }\\n\\n.popover-header {\\n padding: 0.5rem 0.75rem;\\n margin-bottom: 0;\\n font-size: 1rem;\\n background-color: #f7f7f7;\\n border-bottom: 1px solid #ebebeb;\\n border-top-left-radius: calc(0.3rem - 1px);\\n border-top-right-radius: calc(0.3rem - 1px); }\\n\\n.popover-header:empty {\\n display: none; }\\n\\n.popover-body {\\n padding: 0.5rem 0.75rem;\\n color: #212529; }\\n\\n.carousel {\\n position: relative; }\\n\\n.carousel.pointer-event {\\n touch-action: pan-y; }\\n\\n.carousel-inner {\\n position: relative;\\n width: 100%;\\n overflow: hidden; }\\n\\n.carousel-inner::after {\\n display: block;\\n clear: both;\\n content: \\\"\\\"; }\\n\\n.carousel-item {\\n position: relative;\\n display: none;\\n float: left;\\n width: 100%;\\n margin-right: -100%;\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n transition: transform 0.6s ease-in-out; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .carousel-item {\\n transition: none; } }\\n\\n.carousel-item.active,\\n.carousel-item-next,\\n.carousel-item-prev {\\n display: block; }\\n\\n.carousel-item-next:not(.carousel-item-left),\\n.active.carousel-item-right {\\n transform: translateX(100%); }\\n\\n.carousel-item-prev:not(.carousel-item-right),\\n.active.carousel-item-left {\\n transform: translateX(-100%); }\\n\\n.carousel-fade .carousel-item {\\n opacity: 0;\\n transition-property: opacity;\\n transform: none; }\\n\\n.carousel-fade .carousel-item.active,\\n.carousel-fade .carousel-item-next.carousel-item-left,\\n.carousel-fade .carousel-item-prev.carousel-item-right {\\n z-index: 1;\\n opacity: 1; }\\n\\n.carousel-fade .active.carousel-item-left,\\n.carousel-fade .active.carousel-item-right {\\n z-index: 0;\\n opacity: 0;\\n transition: opacity 0s 0.6s; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .carousel-fade .active.carousel-item-left,\\n .carousel-fade .active.carousel-item-right {\\n transition: none; } }\\n\\n.carousel-control-prev,\\n.carousel-control-next {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 15%;\\n color: #fff;\\n text-align: center;\\n opacity: 0.5;\\n transition: opacity 0.15s ease; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .carousel-control-prev,\\n .carousel-control-next {\\n transition: none; } }\\n\\n.carousel-control-prev:hover, .carousel-control-prev:focus,\\n .carousel-control-next:hover,\\n .carousel-control-next:focus {\\n color: #fff;\\n text-decoration: none;\\n outline: 0;\\n opacity: 0.9; }\\n\\n.carousel-control-prev {\\n left: 0; }\\n\\n.carousel-control-next {\\n right: 0; }\\n\\n.carousel-control-prev-icon,\\n.carousel-control-next-icon {\\n display: inline-block;\\n width: 20px;\\n height: 20px;\\n background: no-repeat 50% / 100% 100%; }\\n\\n.carousel-control-prev-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\\\"); }\\n\\n.carousel-control-next-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\\\"); }\\n\\n.carousel-indicators {\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 15;\\n display: flex;\\n justify-content: center;\\n padding-left: 0;\\n margin-right: 15%;\\n margin-left: 15%;\\n list-style: none; }\\n\\n.carousel-indicators li {\\n box-sizing: content-box;\\n flex: 0 1 auto;\\n width: 30px;\\n height: 3px;\\n margin-right: 3px;\\n margin-left: 3px;\\n text-indent: -999px;\\n cursor: pointer;\\n background-color: #fff;\\n background-clip: padding-box;\\n border-top: 10px solid transparent;\\n border-bottom: 10px solid transparent;\\n opacity: .5;\\n transition: opacity 0.6s ease; }\\n\\n@media (prefers-reduced-motion: reduce) {\\n .carousel-indicators li {\\n transition: none; } }\\n\\n.carousel-indicators .active {\\n opacity: 1; }\\n\\n.carousel-caption {\\n position: absolute;\\n right: 15%;\\n bottom: 20px;\\n left: 15%;\\n z-index: 10;\\n padding-top: 20px;\\n padding-bottom: 20px;\\n color: #fff;\\n text-align: center; }\\n\\n@-webkit-keyframes spinner-border {\\n to {\\n transform: rotate(360deg); } }\\n\\n@keyframes spinner-border {\\n to {\\n transform: rotate(360deg); } }\\n\\n.spinner-border {\\n display: inline-block;\\n width: 2rem;\\n height: 2rem;\\n vertical-align: text-bottom;\\n border: 0.25em solid currentColor;\\n border-right-color: transparent;\\n border-radius: 50%;\\n -webkit-animation: spinner-border .75s linear infinite;\\n animation: spinner-border .75s linear infinite; }\\n\\n.spinner-border-sm {\\n width: 1rem;\\n height: 1rem;\\n border-width: 0.2em; }\\n\\n@-webkit-keyframes spinner-grow {\\n 0% {\\n transform: scale(0); }\\n 50% {\\n opacity: 1;\\n transform: none; } }\\n\\n@keyframes spinner-grow {\\n 0% {\\n transform: scale(0); }\\n 50% {\\n opacity: 1;\\n transform: none; } }\\n\\n.spinner-grow {\\n display: inline-block;\\n width: 2rem;\\n height: 2rem;\\n vertical-align: text-bottom;\\n background-color: currentColor;\\n border-radius: 50%;\\n opacity: 0;\\n -webkit-animation: spinner-grow .75s linear infinite;\\n animation: spinner-grow .75s linear infinite; }\\n\\n.spinner-grow-sm {\\n width: 1rem;\\n height: 1rem; }\\n\\n.align-baseline {\\n vertical-align: baseline !important; }\\n\\n.align-top {\\n vertical-align: top !important; }\\n\\n.align-middle {\\n vertical-align: middle !important; }\\n\\n.align-bottom {\\n vertical-align: bottom !important; }\\n\\n.align-text-bottom {\\n vertical-align: text-bottom !important; }\\n\\n.align-text-top {\\n vertical-align: text-top !important; }\\n\\n.bg-primary {\\n background-color: #205492 !important; }\\n\\na.bg-primary:hover, a.bg-primary:focus,\\nbutton.bg-primary:hover,\\nbutton.bg-primary:focus {\\n background-color: #173c68 !important; }\\n\\n.bg-secondary {\\n background-color: #6c757d !important; }\\n\\na.bg-secondary:hover, a.bg-secondary:focus,\\nbutton.bg-secondary:hover,\\nbutton.bg-secondary:focus {\\n background-color: #545b62 !important; }\\n\\n.bg-success {\\n background-color: #28a745 !important; }\\n\\na.bg-success:hover, a.bg-success:focus,\\nbutton.bg-success:hover,\\nbutton.bg-success:focus {\\n background-color: #1e7e34 !important; }\\n\\n.bg-info {\\n background-color: #17a2b8 !important; }\\n\\na.bg-info:hover, a.bg-info:focus,\\nbutton.bg-info:hover,\\nbutton.bg-info:focus {\\n background-color: #117a8b !important; }\\n\\n.bg-warning {\\n background-color: #ffc107 !important; }\\n\\na.bg-warning:hover, a.bg-warning:focus,\\nbutton.bg-warning:hover,\\nbutton.bg-warning:focus {\\n background-color: #d39e00 !important; }\\n\\n.bg-danger {\\n background-color: #dc3545 !important; }\\n\\na.bg-danger:hover, a.bg-danger:focus,\\nbutton.bg-danger:hover,\\nbutton.bg-danger:focus {\\n background-color: #bd2130 !important; }\\n\\n.bg-light {\\n background-color: #f8f9fa !important; }\\n\\na.bg-light:hover, a.bg-light:focus,\\nbutton.bg-light:hover,\\nbutton.bg-light:focus {\\n background-color: #dae0e5 !important; }\\n\\n.bg-dark {\\n background-color: #343a40 !important; }\\n\\na.bg-dark:hover, a.bg-dark:focus,\\nbutton.bg-dark:hover,\\nbutton.bg-dark:focus {\\n background-color: #1d2124 !important; }\\n\\n.bg-white {\\n background-color: #fff !important; }\\n\\n.bg-transparent {\\n background-color: transparent !important; }\\n\\n.border {\\n border: 1px solid #dee2e6 !important; }\\n\\n.border-top {\\n border-top: 1px solid #dee2e6 !important; }\\n\\n.border-right {\\n border-right: 1px solid #dee2e6 !important; }\\n\\n.border-bottom {\\n border-bottom: 1px solid #dee2e6 !important; }\\n\\n.border-left {\\n border-left: 1px solid #dee2e6 !important; }\\n\\n.border-0 {\\n border: 0 !important; }\\n\\n.border-top-0 {\\n border-top: 0 !important; }\\n\\n.border-right-0 {\\n border-right: 0 !important; }\\n\\n.border-bottom-0 {\\n border-bottom: 0 !important; }\\n\\n.border-left-0 {\\n border-left: 0 !important; }\\n\\n.border-primary {\\n border-color: #205492 !important; }\\n\\n.border-secondary {\\n border-color: #6c757d !important; }\\n\\n.border-success {\\n border-color: #28a745 !important; }\\n\\n.border-info {\\n border-color: #17a2b8 !important; }\\n\\n.border-warning {\\n border-color: #ffc107 !important; }\\n\\n.border-danger {\\n border-color: #dc3545 !important; }\\n\\n.border-light {\\n border-color: #f8f9fa !important; }\\n\\n.border-dark {\\n border-color: #343a40 !important; }\\n\\n.border-white {\\n border-color: #fff !important; }\\n\\n.rounded-sm {\\n border-radius: 0.2rem !important; }\\n\\n.rounded {\\n border-radius: 0.25rem !important; }\\n\\n.rounded-top {\\n border-top-left-radius: 0.25rem !important;\\n border-top-right-radius: 0.25rem !important; }\\n\\n.rounded-right {\\n border-top-right-radius: 0.25rem !important;\\n border-bottom-right-radius: 0.25rem !important; }\\n\\n.rounded-bottom {\\n border-bottom-right-radius: 0.25rem !important;\\n border-bottom-left-radius: 0.25rem !important; }\\n\\n.rounded-left {\\n border-top-left-radius: 0.25rem !important;\\n border-bottom-left-radius: 0.25rem !important; }\\n\\n.rounded-lg {\\n border-radius: 0.3rem !important; }\\n\\n.rounded-circle {\\n border-radius: 50% !important; }\\n\\n.rounded-pill {\\n border-radius: 50rem !important; }\\n\\n.rounded-0 {\\n border-radius: 0 !important; }\\n\\n.clearfix::after {\\n display: block;\\n clear: both;\\n content: \\\"\\\"; }\\n\\n.d-none {\\n display: none !important; }\\n\\n.d-inline {\\n display: inline !important; }\\n\\n.d-inline-block {\\n display: inline-block !important; }\\n\\n.d-block {\\n display: block !important; }\\n\\n.d-table {\\n display: table !important; }\\n\\n.d-table-row {\\n display: table-row !important; }\\n\\n.d-table-cell {\\n display: table-cell !important; }\\n\\n.d-flex {\\n display: flex !important; }\\n\\n.d-inline-flex {\\n display: inline-flex !important; }\\n\\n@media (min-width: 576px) {\\n .d-sm-none {\\n display: none !important; }\\n .d-sm-inline {\\n display: inline !important; }\\n .d-sm-inline-block {\\n display: inline-block !important; }\\n .d-sm-block {\\n display: block !important; }\\n .d-sm-table {\\n display: table !important; }\\n .d-sm-table-row {\\n display: table-row !important; }\\n .d-sm-table-cell {\\n display: table-cell !important; }\\n .d-sm-flex {\\n display: flex !important; }\\n .d-sm-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media (min-width: 768px) {\\n .d-md-none {\\n display: none !important; }\\n .d-md-inline {\\n display: inline !important; }\\n .d-md-inline-block {\\n display: inline-block !important; }\\n .d-md-block {\\n display: block !important; }\\n .d-md-table {\\n display: table !important; }\\n .d-md-table-row {\\n display: table-row !important; }\\n .d-md-table-cell {\\n display: table-cell !important; }\\n .d-md-flex {\\n display: flex !important; }\\n .d-md-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media (min-width: 992px) {\\n .d-lg-none {\\n display: none !important; }\\n .d-lg-inline {\\n display: inline !important; }\\n .d-lg-inline-block {\\n display: inline-block !important; }\\n .d-lg-block {\\n display: block !important; }\\n .d-lg-table {\\n display: table !important; }\\n .d-lg-table-row {\\n display: table-row !important; }\\n .d-lg-table-cell {\\n display: table-cell !important; }\\n .d-lg-flex {\\n display: flex !important; }\\n .d-lg-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media (min-width: 1200px) {\\n .d-xl-none {\\n display: none !important; }\\n .d-xl-inline {\\n display: inline !important; }\\n .d-xl-inline-block {\\n display: inline-block !important; }\\n .d-xl-block {\\n display: block !important; }\\n .d-xl-table {\\n display: table !important; }\\n .d-xl-table-row {\\n display: table-row !important; }\\n .d-xl-table-cell {\\n display: table-cell !important; }\\n .d-xl-flex {\\n display: flex !important; }\\n .d-xl-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media print {\\n .d-print-none {\\n display: none !important; }\\n .d-print-inline {\\n display: inline !important; }\\n .d-print-inline-block {\\n display: inline-block !important; }\\n .d-print-block {\\n display: block !important; }\\n .d-print-table {\\n display: table !important; }\\n .d-print-table-row {\\n display: table-row !important; }\\n .d-print-table-cell {\\n display: table-cell !important; }\\n .d-print-flex {\\n display: flex !important; }\\n .d-print-inline-flex {\\n display: inline-flex !important; } }\\n\\n.embed-responsive {\\n position: relative;\\n display: block;\\n width: 100%;\\n padding: 0;\\n overflow: hidden; }\\n\\n.embed-responsive::before {\\n display: block;\\n content: \\\"\\\"; }\\n\\n.embed-responsive .embed-responsive-item,\\n .embed-responsive iframe,\\n .embed-responsive embed,\\n .embed-responsive object,\\n .embed-responsive video {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0; }\\n\\n.embed-responsive-21by9::before {\\n padding-top: 42.85714%; }\\n\\n.embed-responsive-16by9::before {\\n padding-top: 56.25%; }\\n\\n.embed-responsive-4by3::before {\\n padding-top: 75%; }\\n\\n.embed-responsive-1by1::before {\\n padding-top: 100%; }\\n\\n.flex-row {\\n flex-direction: row !important; }\\n\\n.flex-column {\\n flex-direction: column !important; }\\n\\n.flex-row-reverse {\\n flex-direction: row-reverse !important; }\\n\\n.flex-column-reverse {\\n flex-direction: column-reverse !important; }\\n\\n.flex-wrap {\\n flex-wrap: wrap !important; }\\n\\n.flex-nowrap {\\n flex-wrap: nowrap !important; }\\n\\n.flex-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n\\n.flex-fill {\\n flex: 1 1 auto !important; }\\n\\n.flex-grow-0 {\\n flex-grow: 0 !important; }\\n\\n.flex-grow-1 {\\n flex-grow: 1 !important; }\\n\\n.flex-shrink-0 {\\n flex-shrink: 0 !important; }\\n\\n.flex-shrink-1 {\\n flex-shrink: 1 !important; }\\n\\n.justify-content-start {\\n justify-content: flex-start !important; }\\n\\n.justify-content-end {\\n justify-content: flex-end !important; }\\n\\n.justify-content-center {\\n justify-content: center !important; }\\n\\n.justify-content-between {\\n justify-content: space-between !important; }\\n\\n.justify-content-around {\\n justify-content: space-around !important; }\\n\\n.align-items-start {\\n align-items: flex-start !important; }\\n\\n.align-items-end {\\n align-items: flex-end !important; }\\n\\n.align-items-center {\\n align-items: center !important; }\\n\\n.align-items-baseline {\\n align-items: baseline !important; }\\n\\n.align-items-stretch {\\n align-items: stretch !important; }\\n\\n.align-content-start {\\n align-content: flex-start !important; }\\n\\n.align-content-end {\\n align-content: flex-end !important; }\\n\\n.align-content-center {\\n align-content: center !important; }\\n\\n.align-content-between {\\n align-content: space-between !important; }\\n\\n.align-content-around {\\n align-content: space-around !important; }\\n\\n.align-content-stretch {\\n align-content: stretch !important; }\\n\\n.align-self-auto {\\n align-self: auto !important; }\\n\\n.align-self-start {\\n align-self: flex-start !important; }\\n\\n.align-self-end {\\n align-self: flex-end !important; }\\n\\n.align-self-center {\\n align-self: center !important; }\\n\\n.align-self-baseline {\\n align-self: baseline !important; }\\n\\n.align-self-stretch {\\n align-self: stretch !important; }\\n\\n@media (min-width: 576px) {\\n .flex-sm-row {\\n flex-direction: row !important; }\\n .flex-sm-column {\\n flex-direction: column !important; }\\n .flex-sm-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-sm-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-sm-wrap {\\n flex-wrap: wrap !important; }\\n .flex-sm-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-sm-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-sm-fill {\\n flex: 1 1 auto !important; }\\n .flex-sm-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-sm-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-sm-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-sm-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-sm-start {\\n justify-content: flex-start !important; }\\n .justify-content-sm-end {\\n justify-content: flex-end !important; }\\n .justify-content-sm-center {\\n justify-content: center !important; }\\n .justify-content-sm-between {\\n justify-content: space-between !important; }\\n .justify-content-sm-around {\\n justify-content: space-around !important; }\\n .align-items-sm-start {\\n align-items: flex-start !important; }\\n .align-items-sm-end {\\n align-items: flex-end !important; }\\n .align-items-sm-center {\\n align-items: center !important; }\\n .align-items-sm-baseline {\\n align-items: baseline !important; }\\n .align-items-sm-stretch {\\n align-items: stretch !important; }\\n .align-content-sm-start {\\n align-content: flex-start !important; }\\n .align-content-sm-end {\\n align-content: flex-end !important; }\\n .align-content-sm-center {\\n align-content: center !important; }\\n .align-content-sm-between {\\n align-content: space-between !important; }\\n .align-content-sm-around {\\n align-content: space-around !important; }\\n .align-content-sm-stretch {\\n align-content: stretch !important; }\\n .align-self-sm-auto {\\n align-self: auto !important; }\\n .align-self-sm-start {\\n align-self: flex-start !important; }\\n .align-self-sm-end {\\n align-self: flex-end !important; }\\n .align-self-sm-center {\\n align-self: center !important; }\\n .align-self-sm-baseline {\\n align-self: baseline !important; }\\n .align-self-sm-stretch {\\n align-self: stretch !important; } }\\n\\n@media (min-width: 768px) {\\n .flex-md-row {\\n flex-direction: row !important; }\\n .flex-md-column {\\n flex-direction: column !important; }\\n .flex-md-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-md-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-md-wrap {\\n flex-wrap: wrap !important; }\\n .flex-md-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-md-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-md-fill {\\n flex: 1 1 auto !important; }\\n .flex-md-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-md-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-md-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-md-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-md-start {\\n justify-content: flex-start !important; }\\n .justify-content-md-end {\\n justify-content: flex-end !important; }\\n .justify-content-md-center {\\n justify-content: center !important; }\\n .justify-content-md-between {\\n justify-content: space-between !important; }\\n .justify-content-md-around {\\n justify-content: space-around !important; }\\n .align-items-md-start {\\n align-items: flex-start !important; }\\n .align-items-md-end {\\n align-items: flex-end !important; }\\n .align-items-md-center {\\n align-items: center !important; }\\n .align-items-md-baseline {\\n align-items: baseline !important; }\\n .align-items-md-stretch {\\n align-items: stretch !important; }\\n .align-content-md-start {\\n align-content: flex-start !important; }\\n .align-content-md-end {\\n align-content: flex-end !important; }\\n .align-content-md-center {\\n align-content: center !important; }\\n .align-content-md-between {\\n align-content: space-between !important; }\\n .align-content-md-around {\\n align-content: space-around !important; }\\n .align-content-md-stretch {\\n align-content: stretch !important; }\\n .align-self-md-auto {\\n align-self: auto !important; }\\n .align-self-md-start {\\n align-self: flex-start !important; }\\n .align-self-md-end {\\n align-self: flex-end !important; }\\n .align-self-md-center {\\n align-self: center !important; }\\n .align-self-md-baseline {\\n align-self: baseline !important; }\\n .align-self-md-stretch {\\n align-self: stretch !important; } }\\n\\n@media (min-width: 992px) {\\n .flex-lg-row {\\n flex-direction: row !important; }\\n .flex-lg-column {\\n flex-direction: column !important; }\\n .flex-lg-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-lg-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-lg-wrap {\\n flex-wrap: wrap !important; }\\n .flex-lg-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-lg-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-lg-fill {\\n flex: 1 1 auto !important; }\\n .flex-lg-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-lg-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-lg-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-lg-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-lg-start {\\n justify-content: flex-start !important; }\\n .justify-content-lg-end {\\n justify-content: flex-end !important; }\\n .justify-content-lg-center {\\n justify-content: center !important; }\\n .justify-content-lg-between {\\n justify-content: space-between !important; }\\n .justify-content-lg-around {\\n justify-content: space-around !important; }\\n .align-items-lg-start {\\n align-items: flex-start !important; }\\n .align-items-lg-end {\\n align-items: flex-end !important; }\\n .align-items-lg-center {\\n align-items: center !important; }\\n .align-items-lg-baseline {\\n align-items: baseline !important; }\\n .align-items-lg-stretch {\\n align-items: stretch !important; }\\n .align-content-lg-start {\\n align-content: flex-start !important; }\\n .align-content-lg-end {\\n align-content: flex-end !important; }\\n .align-content-lg-center {\\n align-content: center !important; }\\n .align-content-lg-between {\\n align-content: space-between !important; }\\n .align-content-lg-around {\\n align-content: space-around !important; }\\n .align-content-lg-stretch {\\n align-content: stretch !important; }\\n .align-self-lg-auto {\\n align-self: auto !important; }\\n .align-self-lg-start {\\n align-self: flex-start !important; }\\n .align-self-lg-end {\\n align-self: flex-end !important; }\\n .align-self-lg-center {\\n align-self: center !important; }\\n .align-self-lg-baseline {\\n align-self: baseline !important; }\\n .align-self-lg-stretch {\\n align-self: stretch !important; } }\\n\\n@media (min-width: 1200px) {\\n .flex-xl-row {\\n flex-direction: row !important; }\\n .flex-xl-column {\\n flex-direction: column !important; }\\n .flex-xl-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-xl-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-xl-wrap {\\n flex-wrap: wrap !important; }\\n .flex-xl-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-xl-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-xl-fill {\\n flex: 1 1 auto !important; }\\n .flex-xl-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-xl-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-xl-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-xl-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-xl-start {\\n justify-content: flex-start !important; }\\n .justify-content-xl-end {\\n justify-content: flex-end !important; }\\n .justify-content-xl-center {\\n justify-content: center !important; }\\n .justify-content-xl-between {\\n justify-content: space-between !important; }\\n .justify-content-xl-around {\\n justify-content: space-around !important; }\\n .align-items-xl-start {\\n align-items: flex-start !important; }\\n .align-items-xl-end {\\n align-items: flex-end !important; }\\n .align-items-xl-center {\\n align-items: center !important; }\\n .align-items-xl-baseline {\\n align-items: baseline !important; }\\n .align-items-xl-stretch {\\n align-items: stretch !important; }\\n .align-content-xl-start {\\n align-content: flex-start !important; }\\n .align-content-xl-end {\\n align-content: flex-end !important; }\\n .align-content-xl-center {\\n align-content: center !important; }\\n .align-content-xl-between {\\n align-content: space-between !important; }\\n .align-content-xl-around {\\n align-content: space-around !important; }\\n .align-content-xl-stretch {\\n align-content: stretch !important; }\\n .align-self-xl-auto {\\n align-self: auto !important; }\\n .align-self-xl-start {\\n align-self: flex-start !important; }\\n .align-self-xl-end {\\n align-self: flex-end !important; }\\n .align-self-xl-center {\\n align-self: center !important; }\\n .align-self-xl-baseline {\\n align-self: baseline !important; }\\n .align-self-xl-stretch {\\n align-self: stretch !important; } }\\n\\n.float-left {\\n float: left !important; }\\n\\n.float-right {\\n float: right !important; }\\n\\n.float-none {\\n float: none !important; }\\n\\n@media (min-width: 576px) {\\n .float-sm-left {\\n float: left !important; }\\n .float-sm-right {\\n float: right !important; }\\n .float-sm-none {\\n float: none !important; } }\\n\\n@media (min-width: 768px) {\\n .float-md-left {\\n float: left !important; }\\n .float-md-right {\\n float: right !important; }\\n .float-md-none {\\n float: none !important; } }\\n\\n@media (min-width: 992px) {\\n .float-lg-left {\\n float: left !important; }\\n .float-lg-right {\\n float: right !important; }\\n .float-lg-none {\\n float: none !important; } }\\n\\n@media (min-width: 1200px) {\\n .float-xl-left {\\n float: left !important; }\\n .float-xl-right {\\n float: right !important; }\\n .float-xl-none {\\n float: none !important; } }\\n\\n.user-select-all {\\n -webkit-user-select: all !important;\\n -moz-user-select: all !important;\\n -ms-user-select: all !important;\\n user-select: all !important; }\\n\\n.user-select-auto {\\n -webkit-user-select: auto !important;\\n -moz-user-select: auto !important;\\n -ms-user-select: auto !important;\\n user-select: auto !important; }\\n\\n.user-select-none {\\n -webkit-user-select: none !important;\\n -moz-user-select: none !important;\\n -ms-user-select: none !important;\\n user-select: none !important; }\\n\\n.overflow-auto {\\n overflow: auto !important; }\\n\\n.overflow-hidden {\\n overflow: hidden !important; }\\n\\n.position-static {\\n position: static !important; }\\n\\n.position-relative {\\n position: relative !important; }\\n\\n.position-absolute {\\n position: absolute !important; }\\n\\n.position-fixed {\\n position: fixed !important; }\\n\\n.position-sticky {\\n position: -webkit-sticky !important;\\n position: sticky !important; }\\n\\n.fixed-top {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: 1030; }\\n\\n.fixed-bottom {\\n position: fixed;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1030; }\\n\\n@supports ((position: -webkit-sticky) or (position: sticky)) {\\n .sticky-top {\\n position: -webkit-sticky;\\n position: sticky;\\n top: 0;\\n z-index: 1020; } }\\n\\n.sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border: 0; }\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n position: static;\\n width: auto;\\n height: auto;\\n overflow: visible;\\n clip: auto;\\n white-space: normal; }\\n\\n.shadow-sm {\\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\\n\\n.shadow {\\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\\n\\n.shadow-lg {\\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\\n\\n.shadow-none {\\n box-shadow: none !important; }\\n\\n.w-25 {\\n width: 25% !important; }\\n\\n.w-50 {\\n width: 50% !important; }\\n\\n.w-75 {\\n width: 75% !important; }\\n\\n.w-100 {\\n width: 100% !important; }\\n\\n.w-auto {\\n width: auto !important; }\\n\\n.h-25 {\\n height: 25% !important; }\\n\\n.h-50 {\\n height: 50% !important; }\\n\\n.h-75 {\\n height: 75% !important; }\\n\\n.h-100 {\\n height: 100% !important; }\\n\\n.h-auto {\\n height: auto !important; }\\n\\n.mw-100 {\\n max-width: 100% !important; }\\n\\n.mh-100 {\\n max-height: 100% !important; }\\n\\n.min-vw-100 {\\n min-width: 100vw !important; }\\n\\n.min-vh-100 {\\n min-height: 100vh !important; }\\n\\n.vw-100 {\\n width: 100vw !important; }\\n\\n.vh-100 {\\n height: 100vh !important; }\\n\\n.m-0 {\\n margin: 0 !important; }\\n\\n.mt-0,\\n.my-0 {\\n margin-top: 0 !important; }\\n\\n.mr-0,\\n.mx-0 {\\n margin-right: 0 !important; }\\n\\n.mb-0,\\n.my-0 {\\n margin-bottom: 0 !important; }\\n\\n.ml-0,\\n.mx-0 {\\n margin-left: 0 !important; }\\n\\n.m-1 {\\n margin: 0.25rem !important; }\\n\\n.mt-1,\\n.my-1 {\\n margin-top: 0.25rem !important; }\\n\\n.mr-1,\\n.mx-1 {\\n margin-right: 0.25rem !important; }\\n\\n.mb-1,\\n.my-1 {\\n margin-bottom: 0.25rem !important; }\\n\\n.ml-1,\\n.mx-1 {\\n margin-left: 0.25rem !important; }\\n\\n.m-2 {\\n margin: 0.5rem !important; }\\n\\n.mt-2,\\n.my-2 {\\n margin-top: 0.5rem !important; }\\n\\n.mr-2,\\n.mx-2 {\\n margin-right: 0.5rem !important; }\\n\\n.mb-2,\\n.my-2 {\\n margin-bottom: 0.5rem !important; }\\n\\n.ml-2,\\n.mx-2 {\\n margin-left: 0.5rem !important; }\\n\\n.m-3 {\\n margin: 1rem !important; }\\n\\n.mt-3,\\n.my-3 {\\n margin-top: 1rem !important; }\\n\\n.mr-3,\\n.mx-3 {\\n margin-right: 1rem !important; }\\n\\n.mb-3,\\n.my-3 {\\n margin-bottom: 1rem !important; }\\n\\n.ml-3,\\n.mx-3 {\\n margin-left: 1rem !important; }\\n\\n.m-4 {\\n margin: 1.5rem !important; }\\n\\n.mt-4,\\n.my-4 {\\n margin-top: 1.5rem !important; }\\n\\n.mr-4,\\n.mx-4 {\\n margin-right: 1.5rem !important; }\\n\\n.mb-4,\\n.my-4 {\\n margin-bottom: 1.5rem !important; }\\n\\n.ml-4,\\n.mx-4 {\\n margin-left: 1.5rem !important; }\\n\\n.m-5 {\\n margin: 3rem !important; }\\n\\n.mt-5,\\n.my-5 {\\n margin-top: 3rem !important; }\\n\\n.mr-5,\\n.mx-5 {\\n margin-right: 3rem !important; }\\n\\n.mb-5,\\n.my-5 {\\n margin-bottom: 3rem !important; }\\n\\n.ml-5,\\n.mx-5 {\\n margin-left: 3rem !important; }\\n\\n.p-0 {\\n padding: 0 !important; }\\n\\n.pt-0,\\n.py-0 {\\n padding-top: 0 !important; }\\n\\n.pr-0,\\n.px-0 {\\n padding-right: 0 !important; }\\n\\n.pb-0,\\n.py-0 {\\n padding-bottom: 0 !important; }\\n\\n.pl-0,\\n.px-0 {\\n padding-left: 0 !important; }\\n\\n.p-1 {\\n padding: 0.25rem !important; }\\n\\n.pt-1,\\n.py-1 {\\n padding-top: 0.25rem !important; }\\n\\n.pr-1,\\n.px-1 {\\n padding-right: 0.25rem !important; }\\n\\n.pb-1,\\n.py-1 {\\n padding-bottom: 0.25rem !important; }\\n\\n.pl-1,\\n.px-1 {\\n padding-left: 0.25rem !important; }\\n\\n.p-2 {\\n padding: 0.5rem !important; }\\n\\n.pt-2,\\n.py-2 {\\n padding-top: 0.5rem !important; }\\n\\n.pr-2,\\n.px-2 {\\n padding-right: 0.5rem !important; }\\n\\n.pb-2,\\n.py-2 {\\n padding-bottom: 0.5rem !important; }\\n\\n.pl-2,\\n.px-2 {\\n padding-left: 0.5rem !important; }\\n\\n.p-3 {\\n padding: 1rem !important; }\\n\\n.pt-3,\\n.py-3 {\\n padding-top: 1rem !important; }\\n\\n.pr-3,\\n.px-3 {\\n padding-right: 1rem !important; }\\n\\n.pb-3,\\n.py-3 {\\n padding-bottom: 1rem !important; }\\n\\n.pl-3,\\n.px-3 {\\n padding-left: 1rem !important; }\\n\\n.p-4 {\\n padding: 1.5rem !important; }\\n\\n.pt-4,\\n.py-4 {\\n padding-top: 1.5rem !important; }\\n\\n.pr-4,\\n.px-4 {\\n padding-right: 1.5rem !important; }\\n\\n.pb-4,\\n.py-4 {\\n padding-bottom: 1.5rem !important; }\\n\\n.pl-4,\\n.px-4 {\\n padding-left: 1.5rem !important; }\\n\\n.p-5 {\\n padding: 3rem !important; }\\n\\n.pt-5,\\n.py-5 {\\n padding-top: 3rem !important; }\\n\\n.pr-5,\\n.px-5 {\\n padding-right: 3rem !important; }\\n\\n.pb-5,\\n.py-5 {\\n padding-bottom: 3rem !important; }\\n\\n.pl-5,\\n.px-5 {\\n padding-left: 3rem !important; }\\n\\n.m-n1 {\\n margin: -0.25rem !important; }\\n\\n.mt-n1,\\n.my-n1 {\\n margin-top: -0.25rem !important; }\\n\\n.mr-n1,\\n.mx-n1 {\\n margin-right: -0.25rem !important; }\\n\\n.mb-n1,\\n.my-n1 {\\n margin-bottom: -0.25rem !important; }\\n\\n.ml-n1,\\n.mx-n1 {\\n margin-left: -0.25rem !important; }\\n\\n.m-n2 {\\n margin: -0.5rem !important; }\\n\\n.mt-n2,\\n.my-n2 {\\n margin-top: -0.5rem !important; }\\n\\n.mr-n2,\\n.mx-n2 {\\n margin-right: -0.5rem !important; }\\n\\n.mb-n2,\\n.my-n2 {\\n margin-bottom: -0.5rem !important; }\\n\\n.ml-n2,\\n.mx-n2 {\\n margin-left: -0.5rem !important; }\\n\\n.m-n3 {\\n margin: -1rem !important; }\\n\\n.mt-n3,\\n.my-n3 {\\n margin-top: -1rem !important; }\\n\\n.mr-n3,\\n.mx-n3 {\\n margin-right: -1rem !important; }\\n\\n.mb-n3,\\n.my-n3 {\\n margin-bottom: -1rem !important; }\\n\\n.ml-n3,\\n.mx-n3 {\\n margin-left: -1rem !important; }\\n\\n.m-n4 {\\n margin: -1.5rem !important; }\\n\\n.mt-n4,\\n.my-n4 {\\n margin-top: -1.5rem !important; }\\n\\n.mr-n4,\\n.mx-n4 {\\n margin-right: -1.5rem !important; }\\n\\n.mb-n4,\\n.my-n4 {\\n margin-bottom: -1.5rem !important; }\\n\\n.ml-n4,\\n.mx-n4 {\\n margin-left: -1.5rem !important; }\\n\\n.m-n5 {\\n margin: -3rem !important; }\\n\\n.mt-n5,\\n.my-n5 {\\n margin-top: -3rem !important; }\\n\\n.mr-n5,\\n.mx-n5 {\\n margin-right: -3rem !important; }\\n\\n.mb-n5,\\n.my-n5 {\\n margin-bottom: -3rem !important; }\\n\\n.ml-n5,\\n.mx-n5 {\\n margin-left: -3rem !important; }\\n\\n.m-auto {\\n margin: auto !important; }\\n\\n.mt-auto,\\n.my-auto {\\n margin-top: auto !important; }\\n\\n.mr-auto,\\n.mx-auto {\\n margin-right: auto !important; }\\n\\n.mb-auto,\\n.my-auto {\\n margin-bottom: auto !important; }\\n\\n.ml-auto,\\n.mx-auto {\\n margin-left: auto !important; }\\n\\n@media (min-width: 576px) {\\n .m-sm-0 {\\n margin: 0 !important; }\\n .mt-sm-0,\\n .my-sm-0 {\\n margin-top: 0 !important; }\\n .mr-sm-0,\\n .mx-sm-0 {\\n margin-right: 0 !important; }\\n .mb-sm-0,\\n .my-sm-0 {\\n margin-bottom: 0 !important; }\\n .ml-sm-0,\\n .mx-sm-0 {\\n margin-left: 0 !important; }\\n .m-sm-1 {\\n margin: 0.25rem !important; }\\n .mt-sm-1,\\n .my-sm-1 {\\n margin-top: 0.25rem !important; }\\n .mr-sm-1,\\n .mx-sm-1 {\\n margin-right: 0.25rem !important; }\\n .mb-sm-1,\\n .my-sm-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-sm-1,\\n .mx-sm-1 {\\n margin-left: 0.25rem !important; }\\n .m-sm-2 {\\n margin: 0.5rem !important; }\\n .mt-sm-2,\\n .my-sm-2 {\\n margin-top: 0.5rem !important; }\\n .mr-sm-2,\\n .mx-sm-2 {\\n margin-right: 0.5rem !important; }\\n .mb-sm-2,\\n .my-sm-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-sm-2,\\n .mx-sm-2 {\\n margin-left: 0.5rem !important; }\\n .m-sm-3 {\\n margin: 1rem !important; }\\n .mt-sm-3,\\n .my-sm-3 {\\n margin-top: 1rem !important; }\\n .mr-sm-3,\\n .mx-sm-3 {\\n margin-right: 1rem !important; }\\n .mb-sm-3,\\n .my-sm-3 {\\n margin-bottom: 1rem !important; }\\n .ml-sm-3,\\n .mx-sm-3 {\\n margin-left: 1rem !important; }\\n .m-sm-4 {\\n margin: 1.5rem !important; }\\n .mt-sm-4,\\n .my-sm-4 {\\n margin-top: 1.5rem !important; }\\n .mr-sm-4,\\n .mx-sm-4 {\\n margin-right: 1.5rem !important; }\\n .mb-sm-4,\\n .my-sm-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-sm-4,\\n .mx-sm-4 {\\n margin-left: 1.5rem !important; }\\n .m-sm-5 {\\n margin: 3rem !important; }\\n .mt-sm-5,\\n .my-sm-5 {\\n margin-top: 3rem !important; }\\n .mr-sm-5,\\n .mx-sm-5 {\\n margin-right: 3rem !important; }\\n .mb-sm-5,\\n .my-sm-5 {\\n margin-bottom: 3rem !important; }\\n .ml-sm-5,\\n .mx-sm-5 {\\n margin-left: 3rem !important; }\\n .p-sm-0 {\\n padding: 0 !important; }\\n .pt-sm-0,\\n .py-sm-0 {\\n padding-top: 0 !important; }\\n .pr-sm-0,\\n .px-sm-0 {\\n padding-right: 0 !important; }\\n .pb-sm-0,\\n .py-sm-0 {\\n padding-bottom: 0 !important; }\\n .pl-sm-0,\\n .px-sm-0 {\\n padding-left: 0 !important; }\\n .p-sm-1 {\\n padding: 0.25rem !important; }\\n .pt-sm-1,\\n .py-sm-1 {\\n padding-top: 0.25rem !important; }\\n .pr-sm-1,\\n .px-sm-1 {\\n padding-right: 0.25rem !important; }\\n .pb-sm-1,\\n .py-sm-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-sm-1,\\n .px-sm-1 {\\n padding-left: 0.25rem !important; }\\n .p-sm-2 {\\n padding: 0.5rem !important; }\\n .pt-sm-2,\\n .py-sm-2 {\\n padding-top: 0.5rem !important; }\\n .pr-sm-2,\\n .px-sm-2 {\\n padding-right: 0.5rem !important; }\\n .pb-sm-2,\\n .py-sm-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-sm-2,\\n .px-sm-2 {\\n padding-left: 0.5rem !important; }\\n .p-sm-3 {\\n padding: 1rem !important; }\\n .pt-sm-3,\\n .py-sm-3 {\\n padding-top: 1rem !important; }\\n .pr-sm-3,\\n .px-sm-3 {\\n padding-right: 1rem !important; }\\n .pb-sm-3,\\n .py-sm-3 {\\n padding-bottom: 1rem !important; }\\n .pl-sm-3,\\n .px-sm-3 {\\n padding-left: 1rem !important; }\\n .p-sm-4 {\\n padding: 1.5rem !important; }\\n .pt-sm-4,\\n .py-sm-4 {\\n padding-top: 1.5rem !important; }\\n .pr-sm-4,\\n .px-sm-4 {\\n padding-right: 1.5rem !important; }\\n .pb-sm-4,\\n .py-sm-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-sm-4,\\n .px-sm-4 {\\n padding-left: 1.5rem !important; }\\n .p-sm-5 {\\n padding: 3rem !important; }\\n .pt-sm-5,\\n .py-sm-5 {\\n padding-top: 3rem !important; }\\n .pr-sm-5,\\n .px-sm-5 {\\n padding-right: 3rem !important; }\\n .pb-sm-5,\\n .py-sm-5 {\\n padding-bottom: 3rem !important; }\\n .pl-sm-5,\\n .px-sm-5 {\\n padding-left: 3rem !important; }\\n .m-sm-n1 {\\n margin: -0.25rem !important; }\\n .mt-sm-n1,\\n .my-sm-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-sm-n1,\\n .mx-sm-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-sm-n1,\\n .my-sm-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-sm-n1,\\n .mx-sm-n1 {\\n margin-left: -0.25rem !important; }\\n .m-sm-n2 {\\n margin: -0.5rem !important; }\\n .mt-sm-n2,\\n .my-sm-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-sm-n2,\\n .mx-sm-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-sm-n2,\\n .my-sm-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-sm-n2,\\n .mx-sm-n2 {\\n margin-left: -0.5rem !important; }\\n .m-sm-n3 {\\n margin: -1rem !important; }\\n .mt-sm-n3,\\n .my-sm-n3 {\\n margin-top: -1rem !important; }\\n .mr-sm-n3,\\n .mx-sm-n3 {\\n margin-right: -1rem !important; }\\n .mb-sm-n3,\\n .my-sm-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-sm-n3,\\n .mx-sm-n3 {\\n margin-left: -1rem !important; }\\n .m-sm-n4 {\\n margin: -1.5rem !important; }\\n .mt-sm-n4,\\n .my-sm-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-sm-n4,\\n .mx-sm-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-sm-n4,\\n .my-sm-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-sm-n4,\\n .mx-sm-n4 {\\n margin-left: -1.5rem !important; }\\n .m-sm-n5 {\\n margin: -3rem !important; }\\n .mt-sm-n5,\\n .my-sm-n5 {\\n margin-top: -3rem !important; }\\n .mr-sm-n5,\\n .mx-sm-n5 {\\n margin-right: -3rem !important; }\\n .mb-sm-n5,\\n .my-sm-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-sm-n5,\\n .mx-sm-n5 {\\n margin-left: -3rem !important; }\\n .m-sm-auto {\\n margin: auto !important; }\\n .mt-sm-auto,\\n .my-sm-auto {\\n margin-top: auto !important; }\\n .mr-sm-auto,\\n .mx-sm-auto {\\n margin-right: auto !important; }\\n .mb-sm-auto,\\n .my-sm-auto {\\n margin-bottom: auto !important; }\\n .ml-sm-auto,\\n .mx-sm-auto {\\n margin-left: auto !important; } }\\n\\n@media (min-width: 768px) {\\n .m-md-0 {\\n margin: 0 !important; }\\n .mt-md-0,\\n .my-md-0 {\\n margin-top: 0 !important; }\\n .mr-md-0,\\n .mx-md-0 {\\n margin-right: 0 !important; }\\n .mb-md-0,\\n .my-md-0 {\\n margin-bottom: 0 !important; }\\n .ml-md-0,\\n .mx-md-0 {\\n margin-left: 0 !important; }\\n .m-md-1 {\\n margin: 0.25rem !important; }\\n .mt-md-1,\\n .my-md-1 {\\n margin-top: 0.25rem !important; }\\n .mr-md-1,\\n .mx-md-1 {\\n margin-right: 0.25rem !important; }\\n .mb-md-1,\\n .my-md-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-md-1,\\n .mx-md-1 {\\n margin-left: 0.25rem !important; }\\n .m-md-2 {\\n margin: 0.5rem !important; }\\n .mt-md-2,\\n .my-md-2 {\\n margin-top: 0.5rem !important; }\\n .mr-md-2,\\n .mx-md-2 {\\n margin-right: 0.5rem !important; }\\n .mb-md-2,\\n .my-md-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-md-2,\\n .mx-md-2 {\\n margin-left: 0.5rem !important; }\\n .m-md-3 {\\n margin: 1rem !important; }\\n .mt-md-3,\\n .my-md-3 {\\n margin-top: 1rem !important; }\\n .mr-md-3,\\n .mx-md-3 {\\n margin-right: 1rem !important; }\\n .mb-md-3,\\n .my-md-3 {\\n margin-bottom: 1rem !important; }\\n .ml-md-3,\\n .mx-md-3 {\\n margin-left: 1rem !important; }\\n .m-md-4 {\\n margin: 1.5rem !important; }\\n .mt-md-4,\\n .my-md-4 {\\n margin-top: 1.5rem !important; }\\n .mr-md-4,\\n .mx-md-4 {\\n margin-right: 1.5rem !important; }\\n .mb-md-4,\\n .my-md-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-md-4,\\n .mx-md-4 {\\n margin-left: 1.5rem !important; }\\n .m-md-5 {\\n margin: 3rem !important; }\\n .mt-md-5,\\n .my-md-5 {\\n margin-top: 3rem !important; }\\n .mr-md-5,\\n .mx-md-5 {\\n margin-right: 3rem !important; }\\n .mb-md-5,\\n .my-md-5 {\\n margin-bottom: 3rem !important; }\\n .ml-md-5,\\n .mx-md-5 {\\n margin-left: 3rem !important; }\\n .p-md-0 {\\n padding: 0 !important; }\\n .pt-md-0,\\n .py-md-0 {\\n padding-top: 0 !important; }\\n .pr-md-0,\\n .px-md-0 {\\n padding-right: 0 !important; }\\n .pb-md-0,\\n .py-md-0 {\\n padding-bottom: 0 !important; }\\n .pl-md-0,\\n .px-md-0 {\\n padding-left: 0 !important; }\\n .p-md-1 {\\n padding: 0.25rem !important; }\\n .pt-md-1,\\n .py-md-1 {\\n padding-top: 0.25rem !important; }\\n .pr-md-1,\\n .px-md-1 {\\n padding-right: 0.25rem !important; }\\n .pb-md-1,\\n .py-md-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-md-1,\\n .px-md-1 {\\n padding-left: 0.25rem !important; }\\n .p-md-2 {\\n padding: 0.5rem !important; }\\n .pt-md-2,\\n .py-md-2 {\\n padding-top: 0.5rem !important; }\\n .pr-md-2,\\n .px-md-2 {\\n padding-right: 0.5rem !important; }\\n .pb-md-2,\\n .py-md-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-md-2,\\n .px-md-2 {\\n padding-left: 0.5rem !important; }\\n .p-md-3 {\\n padding: 1rem !important; }\\n .pt-md-3,\\n .py-md-3 {\\n padding-top: 1rem !important; }\\n .pr-md-3,\\n .px-md-3 {\\n padding-right: 1rem !important; }\\n .pb-md-3,\\n .py-md-3 {\\n padding-bottom: 1rem !important; }\\n .pl-md-3,\\n .px-md-3 {\\n padding-left: 1rem !important; }\\n .p-md-4 {\\n padding: 1.5rem !important; }\\n .pt-md-4,\\n .py-md-4 {\\n padding-top: 1.5rem !important; }\\n .pr-md-4,\\n .px-md-4 {\\n padding-right: 1.5rem !important; }\\n .pb-md-4,\\n .py-md-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-md-4,\\n .px-md-4 {\\n padding-left: 1.5rem !important; }\\n .p-md-5 {\\n padding: 3rem !important; }\\n .pt-md-5,\\n .py-md-5 {\\n padding-top: 3rem !important; }\\n .pr-md-5,\\n .px-md-5 {\\n padding-right: 3rem !important; }\\n .pb-md-5,\\n .py-md-5 {\\n padding-bottom: 3rem !important; }\\n .pl-md-5,\\n .px-md-5 {\\n padding-left: 3rem !important; }\\n .m-md-n1 {\\n margin: -0.25rem !important; }\\n .mt-md-n1,\\n .my-md-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-md-n1,\\n .mx-md-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-md-n1,\\n .my-md-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-md-n1,\\n .mx-md-n1 {\\n margin-left: -0.25rem !important; }\\n .m-md-n2 {\\n margin: -0.5rem !important; }\\n .mt-md-n2,\\n .my-md-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-md-n2,\\n .mx-md-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-md-n2,\\n .my-md-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-md-n2,\\n .mx-md-n2 {\\n margin-left: -0.5rem !important; }\\n .m-md-n3 {\\n margin: -1rem !important; }\\n .mt-md-n3,\\n .my-md-n3 {\\n margin-top: -1rem !important; }\\n .mr-md-n3,\\n .mx-md-n3 {\\n margin-right: -1rem !important; }\\n .mb-md-n3,\\n .my-md-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-md-n3,\\n .mx-md-n3 {\\n margin-left: -1rem !important; }\\n .m-md-n4 {\\n margin: -1.5rem !important; }\\n .mt-md-n4,\\n .my-md-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-md-n4,\\n .mx-md-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-md-n4,\\n .my-md-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-md-n4,\\n .mx-md-n4 {\\n margin-left: -1.5rem !important; }\\n .m-md-n5 {\\n margin: -3rem !important; }\\n .mt-md-n5,\\n .my-md-n5 {\\n margin-top: -3rem !important; }\\n .mr-md-n5,\\n .mx-md-n5 {\\n margin-right: -3rem !important; }\\n .mb-md-n5,\\n .my-md-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-md-n5,\\n .mx-md-n5 {\\n margin-left: -3rem !important; }\\n .m-md-auto {\\n margin: auto !important; }\\n .mt-md-auto,\\n .my-md-auto {\\n margin-top: auto !important; }\\n .mr-md-auto,\\n .mx-md-auto {\\n margin-right: auto !important; }\\n .mb-md-auto,\\n .my-md-auto {\\n margin-bottom: auto !important; }\\n .ml-md-auto,\\n .mx-md-auto {\\n margin-left: auto !important; } }\\n\\n@media (min-width: 992px) {\\n .m-lg-0 {\\n margin: 0 !important; }\\n .mt-lg-0,\\n .my-lg-0 {\\n margin-top: 0 !important; }\\n .mr-lg-0,\\n .mx-lg-0 {\\n margin-right: 0 !important; }\\n .mb-lg-0,\\n .my-lg-0 {\\n margin-bottom: 0 !important; }\\n .ml-lg-0,\\n .mx-lg-0 {\\n margin-left: 0 !important; }\\n .m-lg-1 {\\n margin: 0.25rem !important; }\\n .mt-lg-1,\\n .my-lg-1 {\\n margin-top: 0.25rem !important; }\\n .mr-lg-1,\\n .mx-lg-1 {\\n margin-right: 0.25rem !important; }\\n .mb-lg-1,\\n .my-lg-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-lg-1,\\n .mx-lg-1 {\\n margin-left: 0.25rem !important; }\\n .m-lg-2 {\\n margin: 0.5rem !important; }\\n .mt-lg-2,\\n .my-lg-2 {\\n margin-top: 0.5rem !important; }\\n .mr-lg-2,\\n .mx-lg-2 {\\n margin-right: 0.5rem !important; }\\n .mb-lg-2,\\n .my-lg-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-lg-2,\\n .mx-lg-2 {\\n margin-left: 0.5rem !important; }\\n .m-lg-3 {\\n margin: 1rem !important; }\\n .mt-lg-3,\\n .my-lg-3 {\\n margin-top: 1rem !important; }\\n .mr-lg-3,\\n .mx-lg-3 {\\n margin-right: 1rem !important; }\\n .mb-lg-3,\\n .my-lg-3 {\\n margin-bottom: 1rem !important; }\\n .ml-lg-3,\\n .mx-lg-3 {\\n margin-left: 1rem !important; }\\n .m-lg-4 {\\n margin: 1.5rem !important; }\\n .mt-lg-4,\\n .my-lg-4 {\\n margin-top: 1.5rem !important; }\\n .mr-lg-4,\\n .mx-lg-4 {\\n margin-right: 1.5rem !important; }\\n .mb-lg-4,\\n .my-lg-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-lg-4,\\n .mx-lg-4 {\\n margin-left: 1.5rem !important; }\\n .m-lg-5 {\\n margin: 3rem !important; }\\n .mt-lg-5,\\n .my-lg-5 {\\n margin-top: 3rem !important; }\\n .mr-lg-5,\\n .mx-lg-5 {\\n margin-right: 3rem !important; }\\n .mb-lg-5,\\n .my-lg-5 {\\n margin-bottom: 3rem !important; }\\n .ml-lg-5,\\n .mx-lg-5 {\\n margin-left: 3rem !important; }\\n .p-lg-0 {\\n padding: 0 !important; }\\n .pt-lg-0,\\n .py-lg-0 {\\n padding-top: 0 !important; }\\n .pr-lg-0,\\n .px-lg-0 {\\n padding-right: 0 !important; }\\n .pb-lg-0,\\n .py-lg-0 {\\n padding-bottom: 0 !important; }\\n .pl-lg-0,\\n .px-lg-0 {\\n padding-left: 0 !important; }\\n .p-lg-1 {\\n padding: 0.25rem !important; }\\n .pt-lg-1,\\n .py-lg-1 {\\n padding-top: 0.25rem !important; }\\n .pr-lg-1,\\n .px-lg-1 {\\n padding-right: 0.25rem !important; }\\n .pb-lg-1,\\n .py-lg-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-lg-1,\\n .px-lg-1 {\\n padding-left: 0.25rem !important; }\\n .p-lg-2 {\\n padding: 0.5rem !important; }\\n .pt-lg-2,\\n .py-lg-2 {\\n padding-top: 0.5rem !important; }\\n .pr-lg-2,\\n .px-lg-2 {\\n padding-right: 0.5rem !important; }\\n .pb-lg-2,\\n .py-lg-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-lg-2,\\n .px-lg-2 {\\n padding-left: 0.5rem !important; }\\n .p-lg-3 {\\n padding: 1rem !important; }\\n .pt-lg-3,\\n .py-lg-3 {\\n padding-top: 1rem !important; }\\n .pr-lg-3,\\n .px-lg-3 {\\n padding-right: 1rem !important; }\\n .pb-lg-3,\\n .py-lg-3 {\\n padding-bottom: 1rem !important; }\\n .pl-lg-3,\\n .px-lg-3 {\\n padding-left: 1rem !important; }\\n .p-lg-4 {\\n padding: 1.5rem !important; }\\n .pt-lg-4,\\n .py-lg-4 {\\n padding-top: 1.5rem !important; }\\n .pr-lg-4,\\n .px-lg-4 {\\n padding-right: 1.5rem !important; }\\n .pb-lg-4,\\n .py-lg-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-lg-4,\\n .px-lg-4 {\\n padding-left: 1.5rem !important; }\\n .p-lg-5 {\\n padding: 3rem !important; }\\n .pt-lg-5,\\n .py-lg-5 {\\n padding-top: 3rem !important; }\\n .pr-lg-5,\\n .px-lg-5 {\\n padding-right: 3rem !important; }\\n .pb-lg-5,\\n .py-lg-5 {\\n padding-bottom: 3rem !important; }\\n .pl-lg-5,\\n .px-lg-5 {\\n padding-left: 3rem !important; }\\n .m-lg-n1 {\\n margin: -0.25rem !important; }\\n .mt-lg-n1,\\n .my-lg-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-lg-n1,\\n .mx-lg-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-lg-n1,\\n .my-lg-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-lg-n1,\\n .mx-lg-n1 {\\n margin-left: -0.25rem !important; }\\n .m-lg-n2 {\\n margin: -0.5rem !important; }\\n .mt-lg-n2,\\n .my-lg-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-lg-n2,\\n .mx-lg-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-lg-n2,\\n .my-lg-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-lg-n2,\\n .mx-lg-n2 {\\n margin-left: -0.5rem !important; }\\n .m-lg-n3 {\\n margin: -1rem !important; }\\n .mt-lg-n3,\\n .my-lg-n3 {\\n margin-top: -1rem !important; }\\n .mr-lg-n3,\\n .mx-lg-n3 {\\n margin-right: -1rem !important; }\\n .mb-lg-n3,\\n .my-lg-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-lg-n3,\\n .mx-lg-n3 {\\n margin-left: -1rem !important; }\\n .m-lg-n4 {\\n margin: -1.5rem !important; }\\n .mt-lg-n4,\\n .my-lg-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-lg-n4,\\n .mx-lg-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-lg-n4,\\n .my-lg-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-lg-n4,\\n .mx-lg-n4 {\\n margin-left: -1.5rem !important; }\\n .m-lg-n5 {\\n margin: -3rem !important; }\\n .mt-lg-n5,\\n .my-lg-n5 {\\n margin-top: -3rem !important; }\\n .mr-lg-n5,\\n .mx-lg-n5 {\\n margin-right: -3rem !important; }\\n .mb-lg-n5,\\n .my-lg-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-lg-n5,\\n .mx-lg-n5 {\\n margin-left: -3rem !important; }\\n .m-lg-auto {\\n margin: auto !important; }\\n .mt-lg-auto,\\n .my-lg-auto {\\n margin-top: auto !important; }\\n .mr-lg-auto,\\n .mx-lg-auto {\\n margin-right: auto !important; }\\n .mb-lg-auto,\\n .my-lg-auto {\\n margin-bottom: auto !important; }\\n .ml-lg-auto,\\n .mx-lg-auto {\\n margin-left: auto !important; } }\\n\\n@media (min-width: 1200px) {\\n .m-xl-0 {\\n margin: 0 !important; }\\n .mt-xl-0,\\n .my-xl-0 {\\n margin-top: 0 !important; }\\n .mr-xl-0,\\n .mx-xl-0 {\\n margin-right: 0 !important; }\\n .mb-xl-0,\\n .my-xl-0 {\\n margin-bottom: 0 !important; }\\n .ml-xl-0,\\n .mx-xl-0 {\\n margin-left: 0 !important; }\\n .m-xl-1 {\\n margin: 0.25rem !important; }\\n .mt-xl-1,\\n .my-xl-1 {\\n margin-top: 0.25rem !important; }\\n .mr-xl-1,\\n .mx-xl-1 {\\n margin-right: 0.25rem !important; }\\n .mb-xl-1,\\n .my-xl-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-xl-1,\\n .mx-xl-1 {\\n margin-left: 0.25rem !important; }\\n .m-xl-2 {\\n margin: 0.5rem !important; }\\n .mt-xl-2,\\n .my-xl-2 {\\n margin-top: 0.5rem !important; }\\n .mr-xl-2,\\n .mx-xl-2 {\\n margin-right: 0.5rem !important; }\\n .mb-xl-2,\\n .my-xl-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-xl-2,\\n .mx-xl-2 {\\n margin-left: 0.5rem !important; }\\n .m-xl-3 {\\n margin: 1rem !important; }\\n .mt-xl-3,\\n .my-xl-3 {\\n margin-top: 1rem !important; }\\n .mr-xl-3,\\n .mx-xl-3 {\\n margin-right: 1rem !important; }\\n .mb-xl-3,\\n .my-xl-3 {\\n margin-bottom: 1rem !important; }\\n .ml-xl-3,\\n .mx-xl-3 {\\n margin-left: 1rem !important; }\\n .m-xl-4 {\\n margin: 1.5rem !important; }\\n .mt-xl-4,\\n .my-xl-4 {\\n margin-top: 1.5rem !important; }\\n .mr-xl-4,\\n .mx-xl-4 {\\n margin-right: 1.5rem !important; }\\n .mb-xl-4,\\n .my-xl-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-xl-4,\\n .mx-xl-4 {\\n margin-left: 1.5rem !important; }\\n .m-xl-5 {\\n margin: 3rem !important; }\\n .mt-xl-5,\\n .my-xl-5 {\\n margin-top: 3rem !important; }\\n .mr-xl-5,\\n .mx-xl-5 {\\n margin-right: 3rem !important; }\\n .mb-xl-5,\\n .my-xl-5 {\\n margin-bottom: 3rem !important; }\\n .ml-xl-5,\\n .mx-xl-5 {\\n margin-left: 3rem !important; }\\n .p-xl-0 {\\n padding: 0 !important; }\\n .pt-xl-0,\\n .py-xl-0 {\\n padding-top: 0 !important; }\\n .pr-xl-0,\\n .px-xl-0 {\\n padding-right: 0 !important; }\\n .pb-xl-0,\\n .py-xl-0 {\\n padding-bottom: 0 !important; }\\n .pl-xl-0,\\n .px-xl-0 {\\n padding-left: 0 !important; }\\n .p-xl-1 {\\n padding: 0.25rem !important; }\\n .pt-xl-1,\\n .py-xl-1 {\\n padding-top: 0.25rem !important; }\\n .pr-xl-1,\\n .px-xl-1 {\\n padding-right: 0.25rem !important; }\\n .pb-xl-1,\\n .py-xl-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-xl-1,\\n .px-xl-1 {\\n padding-left: 0.25rem !important; }\\n .p-xl-2 {\\n padding: 0.5rem !important; }\\n .pt-xl-2,\\n .py-xl-2 {\\n padding-top: 0.5rem !important; }\\n .pr-xl-2,\\n .px-xl-2 {\\n padding-right: 0.5rem !important; }\\n .pb-xl-2,\\n .py-xl-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-xl-2,\\n .px-xl-2 {\\n padding-left: 0.5rem !important; }\\n .p-xl-3 {\\n padding: 1rem !important; }\\n .pt-xl-3,\\n .py-xl-3 {\\n padding-top: 1rem !important; }\\n .pr-xl-3,\\n .px-xl-3 {\\n padding-right: 1rem !important; }\\n .pb-xl-3,\\n .py-xl-3 {\\n padding-bottom: 1rem !important; }\\n .pl-xl-3,\\n .px-xl-3 {\\n padding-left: 1rem !important; }\\n .p-xl-4 {\\n padding: 1.5rem !important; }\\n .pt-xl-4,\\n .py-xl-4 {\\n padding-top: 1.5rem !important; }\\n .pr-xl-4,\\n .px-xl-4 {\\n padding-right: 1.5rem !important; }\\n .pb-xl-4,\\n .py-xl-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-xl-4,\\n .px-xl-4 {\\n padding-left: 1.5rem !important; }\\n .p-xl-5 {\\n padding: 3rem !important; }\\n .pt-xl-5,\\n .py-xl-5 {\\n padding-top: 3rem !important; }\\n .pr-xl-5,\\n .px-xl-5 {\\n padding-right: 3rem !important; }\\n .pb-xl-5,\\n .py-xl-5 {\\n padding-bottom: 3rem !important; }\\n .pl-xl-5,\\n .px-xl-5 {\\n padding-left: 3rem !important; }\\n .m-xl-n1 {\\n margin: -0.25rem !important; }\\n .mt-xl-n1,\\n .my-xl-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-xl-n1,\\n .mx-xl-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-xl-n1,\\n .my-xl-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-xl-n1,\\n .mx-xl-n1 {\\n margin-left: -0.25rem !important; }\\n .m-xl-n2 {\\n margin: -0.5rem !important; }\\n .mt-xl-n2,\\n .my-xl-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-xl-n2,\\n .mx-xl-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-xl-n2,\\n .my-xl-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-xl-n2,\\n .mx-xl-n2 {\\n margin-left: -0.5rem !important; }\\n .m-xl-n3 {\\n margin: -1rem !important; }\\n .mt-xl-n3,\\n .my-xl-n3 {\\n margin-top: -1rem !important; }\\n .mr-xl-n3,\\n .mx-xl-n3 {\\n margin-right: -1rem !important; }\\n .mb-xl-n3,\\n .my-xl-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-xl-n3,\\n .mx-xl-n3 {\\n margin-left: -1rem !important; }\\n .m-xl-n4 {\\n margin: -1.5rem !important; }\\n .mt-xl-n4,\\n .my-xl-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-xl-n4,\\n .mx-xl-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-xl-n4,\\n .my-xl-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-xl-n4,\\n .mx-xl-n4 {\\n margin-left: -1.5rem !important; }\\n .m-xl-n5 {\\n margin: -3rem !important; }\\n .mt-xl-n5,\\n .my-xl-n5 {\\n margin-top: -3rem !important; }\\n .mr-xl-n5,\\n .mx-xl-n5 {\\n margin-right: -3rem !important; }\\n .mb-xl-n5,\\n .my-xl-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-xl-n5,\\n .mx-xl-n5 {\\n margin-left: -3rem !important; }\\n .m-xl-auto {\\n margin: auto !important; }\\n .mt-xl-auto,\\n .my-xl-auto {\\n margin-top: auto !important; }\\n .mr-xl-auto,\\n .mx-xl-auto {\\n margin-right: auto !important; }\\n .mb-xl-auto,\\n .my-xl-auto {\\n margin-bottom: auto !important; }\\n .ml-xl-auto,\\n .mx-xl-auto {\\n margin-left: auto !important; } }\\n\\n.stretched-link::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n pointer-events: auto;\\n content: \\\"\\\";\\n background-color: rgba(0, 0, 0, 0); }\\n\\n.text-monospace {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace !important; }\\n\\n.text-justify {\\n text-align: justify !important; }\\n\\n.text-wrap {\\n white-space: normal !important; }\\n\\n.text-nowrap {\\n white-space: nowrap !important; }\\n\\n.text-truncate {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.text-left {\\n text-align: left !important; }\\n\\n.text-right {\\n text-align: right !important; }\\n\\n.text-center {\\n text-align: center !important; }\\n\\n@media (min-width: 576px) {\\n .text-sm-left {\\n text-align: left !important; }\\n .text-sm-right {\\n text-align: right !important; }\\n .text-sm-center {\\n text-align: center !important; } }\\n\\n@media (min-width: 768px) {\\n .text-md-left {\\n text-align: left !important; }\\n .text-md-right {\\n text-align: right !important; }\\n .text-md-center {\\n text-align: center !important; } }\\n\\n@media (min-width: 992px) {\\n .text-lg-left {\\n text-align: left !important; }\\n .text-lg-right {\\n text-align: right !important; }\\n .text-lg-center {\\n text-align: center !important; } }\\n\\n@media (min-width: 1200px) {\\n .text-xl-left {\\n text-align: left !important; }\\n .text-xl-right {\\n text-align: right !important; }\\n .text-xl-center {\\n text-align: center !important; } }\\n\\n.text-lowercase {\\n text-transform: lowercase !important; }\\n\\n.text-uppercase {\\n text-transform: uppercase !important; }\\n\\n.text-capitalize {\\n text-transform: capitalize !important; }\\n\\n.font-weight-light {\\n font-weight: 300 !important; }\\n\\n.font-weight-lighter {\\n font-weight: lighter !important; }\\n\\n.font-weight-normal {\\n font-weight: 400 !important; }\\n\\n.font-weight-bold {\\n font-weight: 700 !important; }\\n\\n.font-weight-bolder {\\n font-weight: bolder !important; }\\n\\n.font-italic {\\n font-style: italic !important; }\\n\\n.text-white {\\n color: #fff !important; }\\n\\n.text-primary {\\n color: #205492 !important; }\\n\\na.text-primary:hover, a.text-primary:focus {\\n color: #123053 !important; }\\n\\n.text-secondary {\\n color: #6c757d !important; }\\n\\na.text-secondary:hover, a.text-secondary:focus {\\n color: #494f54 !important; }\\n\\n.text-success {\\n color: #28a745 !important; }\\n\\na.text-success:hover, a.text-success:focus {\\n color: #19692c !important; }\\n\\n.text-info {\\n color: #17a2b8 !important; }\\n\\na.text-info:hover, a.text-info:focus {\\n color: #0f6674 !important; }\\n\\n.text-warning {\\n color: #ffc107 !important; }\\n\\na.text-warning:hover, a.text-warning:focus {\\n color: #ba8b00 !important; }\\n\\n.text-danger {\\n color: #dc3545 !important; }\\n\\na.text-danger:hover, a.text-danger:focus {\\n color: #a71d2a !important; }\\n\\n.text-light {\\n color: #f8f9fa !important; }\\n\\na.text-light:hover, a.text-light:focus {\\n color: #cbd3da !important; }\\n\\n.text-dark {\\n color: #343a40 !important; }\\n\\na.text-dark:hover, a.text-dark:focus {\\n color: #121416 !important; }\\n\\n.text-body {\\n color: #212529 !important; }\\n\\n.text-muted {\\n color: #6c757d !important; }\\n\\n.text-black-50 {\\n color: rgba(0, 0, 0, 0.5) !important; }\\n\\n.text-white-50 {\\n color: rgba(255, 255, 255, 0.5) !important; }\\n\\n.text-hide {\\n font: 0/0 a;\\n color: transparent;\\n text-shadow: none;\\n background-color: transparent;\\n border: 0; }\\n\\n.text-decoration-none {\\n text-decoration: none !important; }\\n\\n.text-break {\\n word-break: break-word !important;\\n overflow-wrap: break-word !important; }\\n\\n.text-reset {\\n color: inherit !important; }\\n\\n.visible {\\n visibility: visible !important; }\\n\\n.invisible {\\n visibility: hidden !important; }\\n\\n@media print {\\n *,\\n *::before,\\n *::after {\\n text-shadow: none !important;\\n box-shadow: none !important; }\\n a:not(.btn) {\\n text-decoration: underline; }\\n abbr[title]::after {\\n content: \\\" (\\\" attr(title) \\\")\\\"; }\\n pre {\\n white-space: pre-wrap !important; }\\n pre,\\n blockquote {\\n border: 1px solid #adb5bd;\\n page-break-inside: avoid; }\\n thead {\\n display: table-header-group; }\\n tr,\\n img {\\n page-break-inside: avoid; }\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3; }\\n h2,\\n h3 {\\n page-break-after: avoid; }\\n @page {\\n size: a3; }\\n body {\\n min-width: 992px !important; }\\n .container {\\n min-width: 992px !important; }\\n .navbar {\\n display: none; }\\n .badge {\\n border: 1px solid #000; }\\n .table {\\n border-collapse: collapse !important; }\\n .table td,\\n .table th {\\n background-color: #fff !important; }\\n .table-bordered th,\\n .table-bordered td {\\n border: 1px solid #dee2e6 !important; }\\n .table-dark {\\n color: inherit; }\\n .table-dark th,\\n .table-dark td,\\n .table-dark thead th,\\n .table-dark tbody + tbody {\\n border-color: #dee2e6; }\\n .table .thead-dark th {\\n color: inherit;\\n border-color: #dee2e6; } }\\n\\n.image-gallery-icon {\\n color: #fff;\\n transition: all .3s ease-out;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n background-color: transparent;\\n border: 0;\\n cursor: pointer;\\n outline: none;\\n position: absolute;\\n z-index: 4;\\n -webkit-filter: drop-shadow(0 2px 2px #1a1a1a);\\n filter: drop-shadow(0 2px 2px #1a1a1a); }\\n\\n@media (hover: hover) and (pointer: fine) {\\n .image-gallery-icon:hover {\\n color: #337ab7; }\\n .image-gallery-icon:hover .image-gallery-svg {\\n transform: scale(1.1); } }\\n\\n.image-gallery-icon:focus {\\n outline: 2px solid #337ab7; }\\n\\n.image-gallery-using-mouse .image-gallery-icon:focus {\\n outline: none; }\\n\\n.image-gallery-fullscreen-button,\\n.image-gallery-play-button {\\n bottom: 0;\\n padding: 20px; }\\n\\n.image-gallery-fullscreen-button .image-gallery-svg,\\n .image-gallery-play-button .image-gallery-svg {\\n height: 28px;\\n width: 28px; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-fullscreen-button,\\n .image-gallery-play-button {\\n padding: 15px; }\\n .image-gallery-fullscreen-button .image-gallery-svg,\\n .image-gallery-play-button .image-gallery-svg {\\n height: 24px;\\n width: 24px; } }\\n\\n@media (max-width: 480px) {\\n .image-gallery-fullscreen-button,\\n .image-gallery-play-button {\\n padding: 10px; }\\n .image-gallery-fullscreen-button .image-gallery-svg,\\n .image-gallery-play-button .image-gallery-svg {\\n height: 16px;\\n width: 16px; } }\\n\\n.image-gallery-fullscreen-button {\\n right: 0; }\\n\\n.image-gallery-play-button {\\n left: 0; }\\n\\n.image-gallery-left-nav,\\n.image-gallery-right-nav {\\n padding: 50px 10px;\\n top: 50%;\\n transform: translateY(-50%); }\\n\\n.image-gallery-left-nav .image-gallery-svg,\\n .image-gallery-right-nav .image-gallery-svg {\\n height: 120px;\\n width: 60px; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-left-nav .image-gallery-svg,\\n .image-gallery-right-nav .image-gallery-svg {\\n height: 72px;\\n width: 36px; } }\\n\\n@media (max-width: 480px) {\\n .image-gallery-left-nav .image-gallery-svg,\\n .image-gallery-right-nav .image-gallery-svg {\\n height: 48px;\\n width: 24px; } }\\n\\n.image-gallery-left-nav[disabled],\\n .image-gallery-right-nav[disabled] {\\n cursor: disabled;\\n opacity: .6;\\n pointer-events: none; }\\n\\n.image-gallery-left-nav {\\n left: 0; }\\n\\n.image-gallery-right-nav {\\n right: 0; }\\n\\n.image-gallery {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n position: relative; }\\n\\n.image-gallery.fullscreen-modal {\\n background: #000;\\n bottom: 0;\\n height: 100%;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n width: 100%;\\n z-index: 5; }\\n\\n.image-gallery.fullscreen-modal .image-gallery-content {\\n top: 50%;\\n transform: translateY(-50%); }\\n\\n.image-gallery-content {\\n position: relative;\\n line-height: 0;\\n top: 0; }\\n\\n.image-gallery-content.fullscreen {\\n background: #000; }\\n\\n.image-gallery-content .image-gallery-slide .image-gallery-image {\\n max-height: calc(100vh - 80px); }\\n\\n.image-gallery-content.left .image-gallery-slide .image-gallery-image, .image-gallery-content.right .image-gallery-slide .image-gallery-image {\\n max-height: 100vh; }\\n\\n.image-gallery-slide-wrapper {\\n position: relative; }\\n\\n.image-gallery-slide-wrapper.left, .image-gallery-slide-wrapper.right {\\n display: inline-block;\\n width: calc(100% - 110px); }\\n\\n@media (max-width: 768px) {\\n .image-gallery-slide-wrapper.left, .image-gallery-slide-wrapper.right {\\n width: calc(100% - 87px); } }\\n\\n.image-gallery-slide-wrapper.image-gallery-rtl {\\n direction: rtl; }\\n\\n.image-gallery-slides {\\n line-height: 0;\\n overflow: hidden;\\n position: relative;\\n white-space: nowrap;\\n text-align: center; }\\n\\n.image-gallery-slide {\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%; }\\n\\n.image-gallery-slide.center {\\n position: relative; }\\n\\n.image-gallery-slide .image-gallery-image {\\n width: 100%;\\n -o-object-fit: contain;\\n object-fit: contain; }\\n\\n.image-gallery-slide .image-gallery-description {\\n background: rgba(0, 0, 0, 0.4);\\n bottom: 70px;\\n color: #fff;\\n left: 0;\\n line-height: 1;\\n padding: 10px 20px;\\n position: absolute;\\n white-space: normal; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-slide .image-gallery-description {\\n bottom: 45px;\\n font-size: .8em;\\n padding: 8px 15px; } }\\n\\n.image-gallery-bullets {\\n bottom: 20px;\\n left: 0;\\n margin: 0 auto;\\n position: absolute;\\n right: 0;\\n width: 80%;\\n z-index: 4; }\\n\\n.image-gallery-bullets .image-gallery-bullets-container {\\n margin: 0;\\n padding: 0;\\n text-align: center; }\\n\\n.image-gallery-bullets .image-gallery-bullet {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n background-color: transparent;\\n border: 1px solid #fff;\\n border-radius: 50%;\\n box-shadow: 0 2px 2px #1a1a1a;\\n cursor: pointer;\\n display: inline-block;\\n margin: 0 5px;\\n outline: none;\\n padding: 5px;\\n transition: all .2s ease-out; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-bullets .image-gallery-bullet {\\n margin: 0 3px;\\n padding: 3px; } }\\n\\n@media (max-width: 480px) {\\n .image-gallery-bullets .image-gallery-bullet {\\n padding: 2.7px; } }\\n\\n.image-gallery-bullets .image-gallery-bullet:focus {\\n transform: scale(1.2);\\n background: #337ab7;\\n border: 1px solid #337ab7; }\\n\\n.image-gallery-bullets .image-gallery-bullet.active {\\n transform: scale(1.2);\\n border: 1px solid #fff;\\n background: #fff; }\\n\\n@media (hover: hover) and (pointer: fine) {\\n .image-gallery-bullets .image-gallery-bullet:hover {\\n background: #337ab7;\\n border: 1px solid #337ab7; }\\n .image-gallery-bullets .image-gallery-bullet.active:hover {\\n background: #337ab7; } }\\n\\n.image-gallery-thumbnails-wrapper {\\n position: relative; }\\n\\n.image-gallery-thumbnails-wrapper.thumbnails-swipe-horizontal {\\n touch-action: pan-y; }\\n\\n.image-gallery-thumbnails-wrapper.thumbnails-swipe-vertical {\\n touch-action: pan-x; }\\n\\n.image-gallery-thumbnails-wrapper.thumbnails-wrapper-rtl {\\n direction: rtl; }\\n\\n.image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n display: inline-block;\\n vertical-align: top;\\n width: 100px; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n width: 81px; } }\\n\\n.image-gallery-thumbnails-wrapper.left .image-gallery-thumbnails, .image-gallery-thumbnails-wrapper.right .image-gallery-thumbnails {\\n height: 100%;\\n width: 100%;\\n left: 0;\\n padding: 0;\\n position: absolute;\\n top: 0; }\\n\\n.image-gallery-thumbnails-wrapper.left .image-gallery-thumbnails .image-gallery-thumbnail, .image-gallery-thumbnails-wrapper.right .image-gallery-thumbnails .image-gallery-thumbnail {\\n display: block;\\n margin-right: 0;\\n padding: 0; }\\n\\n.image-gallery-thumbnails-wrapper.left .image-gallery-thumbnails .image-gallery-thumbnail + .image-gallery-thumbnail, .image-gallery-thumbnails-wrapper.right .image-gallery-thumbnails .image-gallery-thumbnail + .image-gallery-thumbnail {\\n margin-left: 0;\\n margin-top: 2px; }\\n\\n.image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n margin: 0 5px; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n margin: 0 3px; } }\\n\\n.image-gallery-thumbnails {\\n overflow: hidden;\\n padding: 5px 0; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-thumbnails {\\n padding: 3px 0; } }\\n\\n.image-gallery-thumbnails .image-gallery-thumbnails-container {\\n cursor: pointer;\\n text-align: center;\\n white-space: nowrap; }\\n\\n.image-gallery-thumbnail {\\n display: inline-block;\\n border: 4px solid transparent;\\n transition: border .3s ease-out;\\n width: 100px;\\n background: transparent;\\n padding: 0; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-thumbnail {\\n border: 3px solid transparent;\\n width: 81px; } }\\n\\n.image-gallery-thumbnail + .image-gallery-thumbnail {\\n margin-left: 2px; }\\n\\n.image-gallery-thumbnail .image-gallery-thumbnail-inner {\\n display: block;\\n position: relative; }\\n\\n.image-gallery-thumbnail .image-gallery-thumbnail-image {\\n vertical-align: middle;\\n width: 100%;\\n line-height: 0; }\\n\\n.image-gallery-thumbnail.active, .image-gallery-thumbnail:focus {\\n outline: none;\\n border: 4px solid #337ab7; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-thumbnail.active, .image-gallery-thumbnail:focus {\\n border: 3px solid #337ab7; } }\\n\\n@media (hover: hover) and (pointer: fine) {\\n .image-gallery-thumbnail:hover {\\n outline: none;\\n border: 4px solid #337ab7; } }\\n\\n@media (hover: hover) and (pointer: fine) and (max-width: 768px) {\\n .image-gallery-thumbnail:hover {\\n border: 3px solid #337ab7; } }\\n\\n.image-gallery-thumbnail-label {\\n box-sizing: border-box;\\n color: white;\\n font-size: 1em;\\n left: 0;\\n line-height: 1em;\\n padding: 5%;\\n position: absolute;\\n top: 50%;\\n text-shadow: 0 2px 2px #1a1a1a;\\n transform: translateY(-50%);\\n white-space: normal;\\n width: 100%; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-thumbnail-label {\\n font-size: .8em;\\n line-height: .8em; } }\\n\\n.image-gallery-index {\\n background: rgba(0, 0, 0, 0.4);\\n color: #fff;\\n line-height: 1;\\n padding: 10px 20px;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 4; }\\n\\n@media (max-width: 768px) {\\n .image-gallery-index {\\n font-size: .8em;\\n padding: 5px 10px; } }\\n\", \"\",{\"version\":3,\"sources\":[\"/ycle/app/javascript/stylesheets/application.scss\",\"/ycle/node_modules/bootstrap/scss/bootstrap.scss\",\"application.scss\",\"/ycle/node_modules/bootstrap/scss/_root.scss\",\"/ycle/node_modules/bootstrap/scss/_reboot.scss\",\"/ycle/node_modules/bootstrap/scss/_variables.scss\",\"/ycle/node_modules/bootstrap/scss/vendor/_rfs.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_hover.scss\",\"/ycle/node_modules/bootstrap/scss/_type.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_lists.scss\",\"/ycle/node_modules/bootstrap/scss/_images.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_image.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_border-radius.scss\",\"/ycle/node_modules/bootstrap/scss/_code.scss\",\"/ycle/node_modules/bootstrap/scss/_grid.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_grid.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_breakpoints.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_grid-framework.scss\",\"/ycle/node_modules/bootstrap/scss/_tables.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_table-row.scss\",\"/ycle/node_modules/bootstrap/scss/_functions.scss\",\"/ycle/node_modules/bootstrap/scss/_forms.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_transition.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_forms.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_gradients.scss\",\"/ycle/node_modules/bootstrap/scss/_buttons.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_buttons.scss\",\"/ycle/node_modules/bootstrap/scss/_transitions.scss\",\"/ycle/node_modules/bootstrap/scss/_dropdown.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_caret.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_nav-divider.scss\",\"/ycle/node_modules/bootstrap/scss/_button-group.scss\",\"/ycle/node_modules/bootstrap/scss/_input-group.scss\",\"/ycle/node_modules/bootstrap/scss/_custom-forms.scss\",\"/ycle/node_modules/bootstrap/scss/_nav.scss\",\"/ycle/node_modules/bootstrap/scss/_navbar.scss\",\"/ycle/node_modules/bootstrap/scss/_card.scss\",\"/ycle/node_modules/bootstrap/scss/_breadcrumb.scss\",\"/ycle/node_modules/bootstrap/scss/_pagination.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_pagination.scss\",\"/ycle/node_modules/bootstrap/scss/_badge.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_badge.scss\",\"/ycle/node_modules/bootstrap/scss/_jumbotron.scss\",\"/ycle/node_modules/bootstrap/scss/_alert.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_alert.scss\",\"/ycle/node_modules/bootstrap/scss/_progress.scss\",\"/ycle/node_modules/bootstrap/scss/_media.scss\",\"/ycle/node_modules/bootstrap/scss/_list-group.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_list-group.scss\",\"/ycle/node_modules/bootstrap/scss/_close.scss\",\"/ycle/node_modules/bootstrap/scss/_toasts.scss\",\"/ycle/node_modules/bootstrap/scss/_modal.scss\",\"/ycle/node_modules/bootstrap/scss/_tooltip.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_reset-text.scss\",\"/ycle/node_modules/bootstrap/scss/_popover.scss\",\"/ycle/node_modules/bootstrap/scss/_carousel.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_clearfix.scss\",\"/ycle/node_modules/bootstrap/scss/_spinners.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_align.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_background-variant.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_background.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_borders.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_display.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_embed.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_flex.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_float.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_interactions.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_overflow.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_position.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_screenreaders.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_screen-reader.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_shadows.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_sizing.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_spacing.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_stretched-link.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_text.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_text-truncate.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_text-emphasis.scss\",\"/ycle/node_modules/bootstrap/scss/mixins/_text-hide.scss\",\"/ycle/node_modules/bootstrap/scss/utilities/_visibility.scss\",\"/ycle/node_modules/bootstrap/scss/_print.scss\",\"/ycle/node_modules/react-image-gallery/styles/scss/image-gallery.scss\"],\"names\":[],\"mappings\":\"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AiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBtBa;EOxBb,sBP6NgC,EAAA;;AkB/MhC;;;;EAuCE,cAAc,EAAA;;AAvChB;EA6CE,qBlBnCW;EkBsCT,oCHuCwD;EGtCxD,iRHvB0E;EGwB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHmCwD,EAAA;;AGvF5D;IAwDI,qBlB9CS;IkB+CT,gDlB/CS,EAAA;;AkBVb;EAkEI,oCHqBwD;EGpBxD,kFHoBwD,EAAA;;AGvF5D;EA0EE,qBlBhEW;EkBmET,uCHUwD;EGTxD,ujBAA8J,EAAA;;AA9ElK;IAkFI,qBlBxES;IkByET,gDlBzES,EAAA;;AkBVb;EA2FI,clBjFS,EAAA;;AkBVb;;;EAgGI,cAAc,EAAA;;AAhGlB;EAwGI,clB9FS,EAAA;;AkBVb;IA2GM,qBlBjGO,EAAA;;AkBVb;EAiHM,qBAAkC;EC3IxC,yBD4I+C,EAAA;;AAlH/C;EAwHM,gDlB9GO,EAAA;;AkBVb;EA4HM,qBlBlHO,EAAA;;AkBVb;EAsII,qBlB5HS,EAAA;;AkBVb;EA2IM,qBlBjIO;EkBkIP,gDlBlIO,EAAA;;AkBEf;EACE,aAAa;EACb,WAAW;EACX,mBlByc0C;EChb1C,cAAW;EiBvBX,clBVa,EAAA;;AkBaf;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlB8xBqC;EkB7xBrC,iBAAiB;EjBmEf,mBAtCY;EiB3Bd,gBlBsO6B;EkBrO7B,WlBxDW;EkByDX,wClBzBa;EOrBb,sBP6NgC,EAAA;;AkB/MhC;;;;EAuCE,cAAc,EAAA;;AAvChB;EA6CE,qBlBtCW;EkByCT,oCHuCwD;EGtCxD,4UHvB0E;EGwB1E,4BAA4B;EAC5B,2DAA6D;EAC7D,gEHmCwD,EAAA;;AGvF5D;IAwDI,qBlBjDS;IkBkDT,gDlBlDS,EAAA;;AkBPb;EAkEI,oCHqBwD;EGpBxD,kFHoBwD,EAAA;;AGvF5D;EA0EE,qBlBnEW;EkBsET,uCHUwD;EGTxD,knBAA8J,EAAA;;AA9ElK;IAkFI,qBlB3ES;IkB4ET,gDlB5ES,EAAA;;AkBPb;EA2FI,clBpFS,EAAA;;AkBPb;;;EAgGI,cAAc,EAAA;;AAhGlB;EAwGI,clBjGS,EAAA;;AkBPb;IA2GM,qBlBpGO,EAAA;;AkBPb;EAiHM,qBAAkC;EC3IxC,yBD4I+C,EAAA;;AAlH/C;EAwHM,gDlBjHO,EAAA;;AkBPb;EA4HM,qBlBrHO,EAAA;;AkBPb;EAsII,qBlB/HS,EAAA;;AkBPb;EA2IM,qBlBpIO;EkBqIP,gDlBrIO,EAAA;;AgB2OjB;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB,EAAA;;AAHrB;IASI,WAAW,EAAA;;AL/NX;IKsNJ;MAeM,aAAa;MACb,mBAAmB;MACnB,uBAAuB;MACvB,gBAAgB,EAAA;IAlBtB;MAuBM,aAAa;MACb,cAAc;MACd,mBAAmB;MACnB,mBAAmB;MACnB,gBAAgB,EAAA;IA3BtB;MAgCM,qBAAqB;MACrB,WAAW;MACX,sBAAsB,EAAA;IAlC5B;MAuCM,qBAAqB,EAAA;IAvC3B;;MA4CM,WAAW,EAAA;IA5CjB;MAkDM,aAAa;MACb,mBAAmB;MACnB,uBAAuB;MACvB,WAAW;MACX,eAAe,EAAA;IAtDrB;MAyDM,kBAAkB;MAClB,cAAc;MACd,aAAa;MACb,qBhB8KwC;MgB7KxC,cAAc,EAAA;IA7DpB;MAiEM,mBAAmB;MACnB,uBAAuB,EAAA;IAlE7B;MAqEM,gBAAgB,EAAA,EACjB;;AIlVL;EACE,qBAAqB;EAErB,gBpBsR+B;EoBrR/B,cpBMgB;EoBLhB,kBAAkB;EAGlB,sBAAsB;EACtB,yBAAiB;KAAjB,sBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB0RkC;ECnQ9B,eAtCY;EoBiBhB,gBrB0L+B;EOlR7B,sBP6NgC;EiB/N9B,qIjB+a6I,EAAA;;AiB3a7I;IGdN;MHeQ,gBAAgB,EAAA,EG8BvB;;AlBvCC;IkBUE,cpBNc;IoBOd,qBAAqB,EAAA;;AAjBzB;IAsBI,UAAU;IACV,gDzB1BgB,EAAA;;AyBGpB;IA6BI,apBgZ6B,EAAA;;AoB7ajC;IAkCI,eAAsD,EAAA;;AAc1D;;EAEE,oBAAoB,EAAA;;AASpB;EC3DA,WrBCa;EmBDX,yBxBHgB;E0BKlB,qB1BLkB,EAAA;;AOSlB;ImBAE,WrBLW;ImBDX,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,WrBZW;ImBDX,yBEDoF;IAgBpF,qBAhByH;IAqBvH,gDAAiF,EAAA;;AAKrF;IAEE,WrB1BW;IqB2BX,yB1B/BgB;I0BgChB,qB1BhCgB,EAAA;;A0BuClB;;IAGE,WrBtCW;IqBuCX,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,gDAAiF,EAAA;;ADQvF;EC3DA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB,EAAA;;AEDhB;ImBAE,WrBLW;ImBDX,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,WrBZW;ImBDX,yBEDoF;IAgBpF,qBAhByH;IAqBvH,iDAAiF,EAAA;;AAKrF;IAEE,WrB1BW;IqB2BX,yBrBrBc;IqBsBd,qBrBtBc,EAAA;;AqB6BhB;;IAGE,WrBtCW;IqBuCX,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,iDAAiF,EAAA;;ADQvF;EC3DA,WrBCa;EmBDX,yBnBoCa;EqBlCf,qBrBkCe,EAAA;;AE9Bf;ImBAE,WrBLW;ImBDX,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,WrBZW;ImBDX,yBEDoF;IAgBpF,qBAhByH;IAqBvH,+CAAiF,EAAA;;AAKrF;IAEE,WrB1BW;IqB2BX,yBrBQa;IqBPb,qBrBOa,EAAA;;AqBAf;;IAGE,WrBtCW;IqBuCX,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,+CAAiF,EAAA;;ADQvF;EC3DA,WrBCa;EmBDX,yBnBsCa;EqBpCf,qBrBoCe,EAAA;;AEhCf;ImBAE,WrBLW;ImBDX,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,WrBZW;ImBDX,yBEDoF;IAgBpF,qBAhByH;IAqBvH,gDAAiF,EAAA;;AAKrF;IAEE,WrB1BW;IqB2BX,yBrBUa;IqBTb,qBrBSa,EAAA;;AqBFf;;IAGE,WrBtCW;IqBuCX,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,gDAAiF,EAAA;;ADQvF;EC3DA,crBUgB;EmBVd,yBnBmCa;EqBjCf,qBrBiCe,EAAA;;AE7Bf;ImBAE,crBIc;ImBVd,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,crBHc;ImBVd,yBEDoF;IAgBpF,qBAhByH;IAqBvH,gDAAiF,EAAA;;AAKrF;IAEE,crBjBc;IqBkBd,yBrBOa;IqBNb,qBrBMa,EAAA;;AqBCf;;IAGE,crB7Bc;IqB8Bd,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,gDAAiF,EAAA;;ADQvF;EC3DA,WrBCa;EmBDX,yBnBiCa;EqB/Bf,qBrB+Be,EAAA;;AE3Bf;ImBAE,WrBLW;ImBDX,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,WrBZW;ImBDX,yBEDoF;IAgBpF,qBAhByH;IAqBvH,+CAAiF,EAAA;;AAKrF;IAEE,WrB1BW;IqB2BX,yBrBKa;IqBJb,qBrBIa,EAAA;;AqBGf;;IAGE,WrBtCW;IqBuCX,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,+CAAiF,EAAA;;ADQvF;EC3DA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB,EAAA;;AEIhB;ImBAE,crBIc;ImBVd,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,crBHc;ImBVd,yBEDoF;IAgBpF,qBAhByH;IAqBvH,iDAAiF,EAAA;;AAKrF;IAEE,crBjBc;IqBkBd,yBrB1Bc;IqB2Bd,qBrB3Bc,EAAA;;AqBkChB;;IAGE,crB7Bc;IqB8Bd,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,iDAAiF,EAAA;;ADQvF;EC3DA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB,EAAA;;AEHhB;ImBAE,WrBLW;ImBDX,yBEDoF;IASpF,qBATyH,EAAA;;AAY3H;IAEE,WrBZW;ImBDX,yBEDoF;IAgBpF,qBAhByH;IAqBvH,8CAAiF,EAAA;;AAKrF;IAEE,WrB1BW;IqB2BX,yBrBnBc;IqBoBd,qBrBpBc,EAAA;;AqB2BhB;;IAGE,WrBtCW;IqBuCX,yBAzCuK;IA6CvK,qBA7C+M,EAAA;;AA+C/M;;MAKI,8CAAiF,EAAA;;ADcvF;ECPA,c1B7DkB;E0B8DlB,qB1B9DkB,EAAA;;AOSlB;ImBwDE,WrB7DW;IqB8DX,yB1BlEgB;I0BmEhB,qB1BnEgB,EAAA;;A0BsElB;IAEE,+C1BxEgB,EAAA;;A0B2ElB;IAEE,c1B7EgB;I0B8EhB,6BAA6B,EAAA;;AAG/B;;IAGE,WrBhFW;IqBiFX,yB1BrFgB;I0BsFhB,qB1BtFgB,EAAA;;A0BwFhB;;MAKI,+C1B7FY,EAAA;;AyBoElB;ECPA,crBnDgB;EqBoDhB,qBrBpDgB,EAAA;;AEDhB;ImBwDE,WrB7DW;IqB8DX,yBrBxDc;IqByDd,qBrBzDc,EAAA;;AqB4DhB;IAEE,iDrB9Dc,EAAA;;AqBiEhB;IAEE,crBnEc;IqBoEd,6BAA6B,EAAA;;AAG/B;;IAGE,WrBhFW;IqBiFX,yBrB3Ec;IqB4Ed,qBrB5Ec,EAAA;;AqB8Ed;;MAKI,iDrBnFU,EAAA;;AoB0DhB;ECPA,crBtBe;EqBuBf,qBrBvBe,EAAA;;AE9Bf;ImBwDE,WrB7DW;IqB8DX,yBrB3Ba;IqB4Bb,qBrB5Ba,EAAA;;AqB+Bf;IAEE,+CrBjCa,EAAA;;AqBoCf;IAEE,crBtCa;IqBuCb,6BAA6B,EAAA;;AAG/B;;IAGE,WrBhFW;IqBiFX,yBrB9Ca;IqB+Cb,qBrB/Ca,EAAA;;AqBiDb;;MAKI,+CrBtDS,EAAA;;AoB6Bf;ECPA,crBpBe;EqBqBf,qBrBrBe,EAAA;;AEhCf;ImBwDE,WrB7DW;IqB8DX,yBrBzBa;IqB0Bb,qBrB1Ba,EAAA;;AqB6Bf;IAEE,gDrB/Ba,EAAA;;AqBkCf;IAEE,crBpCa;IqBqCb,6BAA6B,EAAA;;AAG/B;;IAGE,WrBhFW;IqBiFX,yBrB5Ca;IqB6Cb,qBrB7Ca,EAAA;;AqB+Cb;;MAKI,gDrBpDS,EAAA;;AoB2Bf;ECPA,crBvBe;EqBwBf,qBrBxBe,EAAA;;AE7Bf;ImBwDE,crBpDc;IqBqDd,yBrB5Ba;IqB6Bb,qBrB7Ba,EAAA;;AqBgCf;IAEE,+CrBlCa,EAAA;;AqBqCf;IAEE,crBvCa;IqBwCb,6BAA6B,EAAA;;AAG/B;;IAGE,crBvEc;IqBwEd,yBrB/Ca;IqBgDb,qBrBhDa,EAAA;;AqBkDb;;MAKI,+CrBvDS,EAAA;;AoB8Bf;ECPA,crBzBe;EqB0Bf,qBrB1Be,EAAA;;AE3Bf;ImBwDE,WrB7DW;IqB8DX,yBrB9Ba;IqB+Bb,qBrB/Ba,EAAA;;AqBkCf;IAEE,+CrBpCa,EAAA;;AqBuCf;IAEE,crBzCa;IqB0Cb,6BAA6B,EAAA;;AAG/B;;IAGE,WrBhFW;IqBiFX,yBrBjDa;IqBkDb,qBrBlDa,EAAA;;AqBoDb;;MAKI,+CrBzDS,EAAA;;AoBgCf;ECPA,crBxDgB;EqByDhB,qBrBzDgB,EAAA;;AEIhB;ImBwDE,crBpDc;IqBqDd,yBrB7Dc;IqB8Dd,qBrB9Dc,EAAA;;AqBiEhB;IAEE,iDrBnEc,EAAA;;AqBsEhB;IAEE,crBxEc;IqByEd,6BAA6B,EAAA;;AAG/B;;IAGE,crBvEc;IqBwEd,yBrBhFc;IqBiFd,qBrBjFc,EAAA;;AqBmFd;;MAKI,iDrBxFU,EAAA;;AoB+DhB;ECPA,crBjDgB;EqBkDhB,qBrBlDgB,EAAA;;AEHhB;ImBwDE,WrB7DW;IqB8DX,yBrBtDc;IqBuDd,qBrBvDc,EAAA;;AqB0DhB;IAEE,8CrB5Dc,EAAA;;AqB+DhB;IAEE,crBjEc;IqBkEd,6BAA6B,EAAA;;AAG/B;;IAGE,WrBhFW;IqBiFX,yBrBzEc;IqB0Ed,qBrB1Ec,EAAA;;AqB4Ed;;MAKI,8CrBjFU,EAAA;;AoBmElB;EACE,gBpB4M+B;EoB3M/B,czBjFkB;EyBkFlB,qBpB2F4C,EAAA;;AEpK5C;IkB4EE,cpByF8D;IoBxF9D,0BpByF+C,EAAA;;AoBhGnD;IAYI,0BpBoF+C,EAAA;;AoBhGnD;IAiBI,cpBtFc;IoBuFd,oBAAoB,EAAA;;AAWxB;ECPE,oBrBySgC;EClR5B,kBAtCY;EoBiBhB,gBrB+H+B;EOvN7B,qBP8N+B,EAAA;;AoB7HnC;ECXE,uBrBoSiC;EC7Q7B,mBAtCY;EoBiBhB,gBrBgI+B;EOxN7B,qBP+N+B,EAAA;;AoBrHnC;EACE,cAAc;EACd,WAAW,EAAA;;AAFb;IAMI,kBpBsT+B,EAAA;;AoBjTn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W5BubwC;I4BtbxC,Y5BsbwC;I4BrbxC,oBAAoB;IACpB,WAAW;IACX,sB5BpFW;I4BqFX,yB5BgJ6B,EAAA;;A4BlKjC;IAwBI,kBAAkB;IAClB,YAA+E;IAC/E,aAA+D;IAC/D,cAAc;IACd,W5BwawC;I4BvaxC,Y5BuawC;I4BtaxC,WAAW;IACX,mCAAgE,EAAA;;AASpE;ErBhGI,sBP6NgC,EAAA;;A4B7HpC;EAOM,kOb/D4E,EAAA;;AawDlF;EAaM,qBjC5Hc;EwBGhB,yBxBHgB,EAAA;;AiC+GpB;EAkBM,+Kb1E4E,EAAA;;AawDlF;ET5GI,wCxBHgB,EAAA;;AiC+GpB;ET5GI,wCxBHgB,EAAA;;AiCmJpB;EAGI,kB5ByZ+C,EAAA;;A4B5ZnD;EAQM,8KbpG4E,EAAA;;Aa4FlF;EThJI,wCxBHgB,EAAA;;AiC2KpB;EACE,qBAA2D,EAAA;;AAD7D;IAKM,cAAqD;IACrD,c5BiY+E;I4BhY/E,mBAAmB;IAEnB,qB5B+X4E,EAAA;;A4BxYlF;IAaM,wBbpE0D;IaqE1D,0BbrE0D;IasE1D,uBblD0D;IamD1D,wBbnD0D;IaoD1D,yB5BnLY;I4BqLZ,qB5BqX4E;IiBtiB5E,yIjBwf+H,EAAA;;AiBpf/H;MW0JN;QXzJQ,gBAAgB,EAAA,EW8KnB;;AArBL;IA0BM,sB5BjMS;I4BkMT,8BAA4E,EAAA;;AA3BlF;ITxKI,wCxBHgB,EAAA;;AiCwNpB;EACE,qBAAqB;EACrB,WAAW;EACX,mCbvG8D;EawG9D,0C5BmKkC;ECnQ9B,eAtCY;E2ByIhB,gB5B6D+B;E4B5D/B,gB5BiE+B;E4BhE/B,c5BtNgB;E4BuNhB,sBAAsB;EACtB,uO5BkW+I;E4BjW/I,yB5B5NgB;EOOd,sBP6NgC;E4BLlC,wBAAgB;KAAhB,qBAAgB;UAAhB,gBAAgB,EAAA;;AAflB;IAkBI,qB5BuPsE;I4BtPtE,UAAU;IAKR,gDjChPc,EAAA;;AiCwNpB;MAiCM,c5B9OY;M4B+OZ,sB5BtPS,EAAA;;A4BoNf;IAwCI,YAAY;IACZ,sB5B8HgC;I4B7HhC,sBAAsB,EAAA;;AA1C1B;IA8CI,c5B5Pc;I4B6Pd,yB5BjQc,EAAA;;A4BkNlB;IAoDI,aAAa,EAAA;;AApDjB;IAyDI,kBAAkB;IAClB,0B5BvQc,EAAA;;A4B2QlB;EACE,kCbnK8D;EaoK9D,oB5BgHkC;E4B/GlC,uB5B+GkC;E4B9GlC,oB5B+GiC;EC7Q7B,mBAtCY,EAAA;;A2BwMlB;EACE,gCb3K8D;Ea4K9D,mB5B6GiC;E4B5GjC,sB5B4GiC;E4B3GjC,kB5B4GgC;EClR5B,kBAtCY,EAAA;;A2BqNlB;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCb3L8D;Ea4L9D,gBAAgB,EAAA;;AAGlB;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbnM8D;EaoM9D,SAAS;EACT,UAAU,EAAA;;AANZ;IASI,qB5BqKsE;I4BpKtE,gDjC7TgB,EAAA;;AiCmTpB;;IAgBI,yB5B7Tc,EAAA;;A4B6SlB;IAqBM,iB5B4TQ,EAAA;;A4BjVd;IA0BI,0BAA0B,EAAA;;AAI9B;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbnO8D;EaoO9D,yB5BuCkC;E4BrClC,gB5B9D+B;E4B+D/B,gB5B1D+B;E4B2D/B,c5BjVgB;E4BkVhB,sB5BzVa;E4B0Vb,yB5BtVgB;EOOd,sBP6NgC,EAAA;;A4BqGpC;IAkBI,kBAAkB;IAClB,MAAM;IACN,QAAQ;IACR,SAAS;IACT,UAAU;IACV,cAAc;IACd,6BbrP4D;IasP5D,yB5BqBgC;I4BpBhC,gB5B1E6B;I4B2E7B,c5BjWc;I4BkWd,iBAAiB;IT1WjB,yBnBGc;I4ByWd,oBAAoB;IrBhWpB,kCqBiWgF,EAAA;;AAUpF;EACE,WAAW;EACX,cb3Q2B;Ea4Q3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;KAAhB,qBAAgB;UAAhB,gBAAgB,EAAA;;AALlB;IAQI,aAAa,EAAA;;AARjB;MAY8B,mEjCtYV,EAAA;;AiC0XpB;MAa8B,mEjCvYV,EAAA;;AiC0XpB;MAc8B,mEjCxYV,EAAA;;AiC0XpB;IAkBI,SAAS,EAAA;;AAlBb;IAsBI,W5BqN6C;I4BpN7C,Y5BoN6C;I4BnN7C,oBAAyE;IT/YzE,yBxBHgB;IiCoZhB,S5BoN0C;IOzlB1C,mBP0lB6C;IiB5lB3C,oHjBwf+H;IiBxf/H,4GjBwf+H;I4B7GjI,wBAAgB;YAAhB,gBAAgB,EAAA;;AXvYd;MWyWN;QXxWQ,wBAAgB;QAAhB,gBAAgB,EAAA,EW2YrB;;AAnCH;MTvXI,yBnB0mB2E,EAAA;;A4BnP/E;IAsCI,W5B8LoC;I4B7LpC,c5B8LqC;I4B7LrC,kBAAkB;IAClB,e5B6LuC;I4B5LvC,yB5B7Zc;I4B8Zd,yBAAyB;IrBtZzB,mBPmlBoC,EAAA;;A4BxOxC;IAiDI,W5B0L6C;I4BzL7C,Y5ByL6C;ImBlmB7C,yBxBHgB;IiC8ahB,S5B0L0C;IOzlB1C,mBP0lB6C;IiB5lB3C,iHjBwf+H;IiBxf/H,4GjBwf+H;I4BnFjI,qBAAgB;SAAhB,gBAAgB,EAAA;;AXjad;MWyWN;QXxWQ,qBAAgB;QAAhB,gBAAgB,EAAA,EWqarB;;AA7DH;MTvXI,yBnB0mB2E,EAAA;;A4BnP/E;IAgEI,W5BoKoC;I4BnKpC,c5BoKqC;I4BnKrC,kBAAkB;IAClB,e5BmKuC;I4BlKvC,yB5Bvbc;I4Bwbd,yBAAyB;IrBhbzB,mBPmlBoC,EAAA;;A4BxOxC;IA2EI,W5BgK6C;I4B/J7C,Y5B+J6C;I4B9J7C,aAAa;IACb,oB5BpE+B;I4BqE/B,mB5BrE+B;ImBjY/B,yBxBHgB;IiC2chB,S5B6J0C;IOzlB1C,mBP0lB6C;IiB5lB3C,gHjBwf+H;IiBxf/H,4GjBwf+H;I4BtDjI,gBAAgB,EAAA;;AX9bd;MWyWN;QXxWQ,oBAAgB;QAAhB,gBAAgB,EAAA,EWkcrB;;AA1FH;MTvXI,yBnB0mB2E,EAAA;;A4BnP/E;IA6FI,W5BuIoC;I4BtIpC,c5BuIqC;I4BtIrC,kBAAkB;IAClB,e5BsIuC;I4BrIvC,6BAA6B;IAC7B,yBAAyB;IACzB,oBAA4C,EAAA;;AAnGhD;IAwGI,yB5B3dc;IOQd,mBPmlBoC,EAAA;;A4BxOxC;IA6GI,kBAAkB;IAClB,yB5Bjec;IOQd,mBPmlBoC,EAAA;;A4BxOxC;IAoHM,yB5BreY,EAAA;;A4BiXlB;IAwHM,eAAe,EAAA;;AAxHrB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BjCkO+B;EiCjO/B,iBjC+wBsC;EiC9wBtC,ctCTkB;EsCWlB,sBjCPa;EiCQb,yBjCLgB,EAAA;;AiCJlB;IAYI,UAAU;IACV,cjC8J8D;IiC7J9D,qBAAqB;IACrB,yBjCZc;IiCad,qBjCZc,EAAA;;AiCJlB;IAoBI,UAAU;IACV,UjCuwBiC;IiCtwBjC,gDtCzBgB,EAAA;;AsC6BpB;EAGM,cAAc;E1BahB,+BP+LgC;EO9LhC,kCP8LgC,EAAA;;AiC/MpC;E1BEI,gCP6MgC;EO5MhC,mCP4MgC,EAAA;;AiC/MpC;EAcI,UAAU;EACV,WjCxCW;EiCyCX,yBtC7CgB;EsC8ChB,qBtC9CgB,EAAA;;AsC6BpB;EAqBI,cjCxCc;EiCyCd,oBAAoB;EAEpB,YAAY;EACZ,sBjClDW;EiCmDX,qBjChDc,EAAA;;AkCPhB;EACE,uBlCqxBsC;EC1pBpC,kBAtCY;EiCnFd,gBlCmO6B,EAAA;;AkC9N3B;E3BqCF,8BPgM+B;EO/L/B,iCP+L+B,EAAA;;AkChO7B;E3BkBF,+BP8M+B;EO7M/B,kCP6M+B,EAAA;;AkC7OjC;EACE,uBlCmxBqC;ECxpBnC,mBAtCY;EiCnFd,gBlCoO6B,EAAA;;AkC/N3B;E3BqCF,8BPiM+B;EOhM/B,iCPgM+B,EAAA;;AkCjO7B;E3BkBF,+BP+M+B;EO9M/B,kCP8M+B,EAAA;;AmC5OnC;EACE,qBAAqB;EACrB,qBnCo5BsC;ECn1BpC,cAAW;EkC/Db,gBnCuR+B;EmCtR/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BKtB,sBP6NgC;EiB/N9B,qIjB+a6I,EAAA;;AiB3a7I;IkBfN;MlBgBQ,gBAAgB,EAAA,EkBMvB;;AjCXC;IiCGI,qBAAqB,EAAA;;AAd3B;IAoBI,aAAa,EAAA;;AAKjB;EACE,kBAAkB;EAClB,SAAS,EAAA;;AAOX;EACE,oBnCy3BsC;EmCx3BtC,mBnCw3BsC;EO/4BpC,oBPk5BqC,EAAA;;AmCl3BvC;ECjDA,WpCMa;EoCLb,yBzCCkB,EAAA;;AOalB;IkCVI,WpCCS;IoCAT,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,+CzCVc,EAAA;;AwC+ClB;ECjDA,WpCMa;EoCLb,yBpCWgB,EAAA;;AEGhB;IkCVI,WpCCS;IoCAT,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,iDpCAY,EAAA;;AmCqChB;ECjDA,WpCMa;EoCLb,yBpCwCe,EAAA;;AE1Bf;IkCVI,WpCCS;IoCAT,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,+CpC6BW,EAAA;;AmCQf;ECjDA,WpCMa;EoCLb,yBpC0Ce,EAAA;;AE5Bf;IkCVI,WpCCS;IoCAT,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,gDpC+BW,EAAA;;AmCMf;ECjDA,cpCegB;EoCdhB,yBpCuCe,EAAA;;AEzBf;IkCVI,cpCUY;IoCTZ,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,+CpC4BW,EAAA;;AmCSf;ECjDA,WpCMa;EoCLb,yBpCqCe,EAAA;;AEvBf;IkCVI,WpCCS;IoCAT,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,+CpC0BW,EAAA;;AmCWf;ECjDA,cpCegB;EoCdhB,yBpCMgB,EAAA;;AEQhB;IkCVI,cpCUY;IoCTZ,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,iDpCLY,EAAA;;AmC0ChB;ECjDA,WpCMa;EoCLb,yBpCagB,EAAA;;AEChB;IkCVI,WpCCS;IoCAT,yBAAkC,EAAA;;AAH9B;IAQJ,UAAU;IACV,8CpCEY,EAAA;;AqCflB;EACE,kBAAoD;EACpD,mBrCizBsC;EqC/yBtC,yBrCKgB;EOSd,qBP8N+B,EAAA;;AWpL/B;I0B5DJ;MAQI,kBrC2yBoC,EAAA,EqCzyBvC;;AAED;EACE,gBAAgB;EAChB,eAAe;E9BIb,gB8BHsB,EAAA;;ACX1B;EACE,kBAAkB;EAClB,wBtCi9ByC;EsCh9BzC,mBtCi9BsC;EsCh9BtC,6BAA6C;E/BU3C,sBP6NgC,EAAA;;AsClOpC;EAEE,cAAc,EAAA;;AAIhB;EACE,gBtC4Q+B,EAAA;;AsCpQjC;EACE,mBAAsD,EAAA;;AADxD;IAKI,kBAAkB;IAClB,MAAM;IACN,QAAQ;IACR,wBtCm7BuC;IsCl7BvC,cAAc,EAAA;;AAUhB;EC9CA,cxBqGg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M0CzHvB,oBAAoB,EAAA;MApB1B;QAuBQ,iB1CsHqB;Q0CrHrB,sB1CqHqB,EAAA,E0CpHtB;;A/B5DP;E+BmCA;IACE,mBAAmB,EAAA;IADrB;MnCtBA,kCPsKgC;MOlLhC,0BmCwCwC,EAAA;IANxC;MnClCA,gCPkLgC;MOtKhC,4BmCiC0C,EAAA;IAX1C;MAeM,aAAa,EAAA;IAfnB;MAmBM,qB1C0HuB;M0CzHvB,oBAAoB,EAAA;MApB1B;QAuBQ,iB1CsHqB;Q0CrHrB,sB1CqHqB,EAAA,E0CpHtB;;A/B5DP;E+BmCA;IACE,mBAAmB,EAAA;IADrB;MnCtBA,kCPsKgC;MOlLhC,0BmCwCwC,EAAA;IANxC;MnClCA,gCPkLgC;MOtKhC,4BmCiC0C,EAAA;IAX1C;MAeM,aAAa,EAAA;IAfnB;MAmBM,qB1C0HuB;M0CzHvB,oBAAoB,EAAA;MApB1B;QAuBQ,iB1CsHqB;Q0CrHrB,sB1CqHqB,EAAA,E0CpHtB;;A/B5DP;E+BmCA;IACE,mBAAmB,EAAA;IADrB;MnCtBA,kCPsKgC;MOlLhC,0BmCwCwC,EAAA;IANxC;MnClCA,gCPkLgC;MOtKhC,4BmCiC0C,EAAA;IAX1C;MAeM,aAAa,EAAA;IAfnB;MAmBM,qB1C0HuB;M0CzHvB,oBAAoB,EAAA;MApB1B;QAuBQ,iB1CsHqB;Q0CrHrB,sB1CqHqB,EAAA,E0CpHtB;;AAaX;EnCnHI,gBmCoHsB,EAAA;;AAD1B;IAII,qB1CmG6B,EAAA;;A0CvGjC;MAOM,sBAAsB,EAAA;;ACzI1B;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A4BnGhE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A4BnGhE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A4BnGhE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A4BnGhE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A4BnGhE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A4BnGhE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A4BnGhE;EACE,c5BkG8D;E4BjG9D,yB5BiG8D,EAAA;;AbtFhE;IyCPM,c5B6F0D;I4B5F1D,yBAAyC,EAAA;;AAP/C;IAWM,W3CPO;I2CQP,yB5BuF0D;I4BtF1D,qB5BsF0D,EAAA;;A6BtGlE;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5C6R+B;E4C5R/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW,EAAA;;A1CKX;I0CDE,W5CMW;I4CLX,qBAAqB,EAAA;;A1CIvB;I0CCI,YAAY,EAAA;;AAWlB;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS,EAAA;;AAMX;EACE,oBAAoB,EAAA;;ACtCtB;EAGE,iB7Cm4BuC;E6Cl4BvC,gB7Ck4BuC;ECvwBnC,mBAtCY;E4ClFhB,2C7CAa;E6CCb,4BAA4B;EAC5B,oC7Co4BmD;E6Cn4BnD,gD7COa;E6CNb,UAAU;EtCOR,sBP43BsC,EAAA;;A6C94B1C;IAeI,sB7Cw3BsC,EAAA;;A6Cv4B1C;IAmBI,UAAU,EAAA;;AAnBd;IAuBI,cAAc;IACd,UAAU,EAAA;;AAxBd;IA4BI,aAAa,EAAA;;AAIjB;EACE,aAAa;EACb,mBAAmB;EACnB,wB7Co2BwC;E6Cn2BxC,c7CvBgB;E6CwBhB,2C7C9Ba;E6C+Bb,4BAA4B;EAC5B,4C7C42BoD;EOx3BlD,2CQgH4D;ER/G5D,4CQ+G4D,EAAA;;A8BhGhE;EACE,gB7C21BwC,EAAA;;A8Cj4B1C;EAEE,gBAAgB,EAAA;;AAFlB;IAKI,kBAAkB;IAClB,gBAAgB,EAAA;;AAKpB;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C0pBsC;E8CzpBtC,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;EAGhB,UAAU,EAAA;;AAOZ;EACE,kBAAkB;EAClB,WAAW;EACX,c9Cy4BuC;E8Cv4BvC,oBAAoB,EAAA;;AAGpB;I7B3BI,mCjB87BoD;I8Cj6BtD,8B9C+5BmD,EAAA;;AiBx7BjD;M6BuBJ;Q7BtBM,gBAAgB,EAAA,E6ByBrB;;AACD;IACE,e9C65BoC,EAAA;;A8Cz5BtC;IACE,sB9C05B2C,EAAA;;A8Ct5B/C;EACE,aAAa;EACb,6B/BgF8D,EAAA;;A+BlFhE;IAKI,8B/B6E4D;I+B5E5D,gBAAgB,EAAA;;AANpB;;IAWI,cAAc,EAAA;;AAXlB;IAeI,gBAAgB,EAAA;;AAIpB;EACE,aAAa;EACb,mBAAmB;EACnB,6B/B4D8D,EAAA;;A+B/DhE;IAOI,cAAc;IACd,0B/BuD4D;I+BtD5D,2BAAmB;IAAnB,wBAAmB;IAAnB,mBAAmB;IACnB,WAAW,EAAA;;AAVf;IAeI,sBAAsB;IACtB,uBAAuB;IACvB,YAAY,EAAA;;AAjBhB;MAoBM,gBAAgB,EAAA;;AApBtB;MAwBM,aAAa,EAAA;;AAMnB;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,WAAW;EAGX,oBAAoB;EACpB,sB9C3Ga;E8C4Gb,4BAA4B;EAC5B,oC9CnGa;EOCX,qBP8N+B;E8CxHjC,UAAU,EAAA;;AAIZ;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a9C8iBsC;E8C7iBtC,YAAY;EACZ,aAAa;EACb,sB9ClHa,EAAA;;A8C2Gf;IAUW,UAAU,EAAA;;AAVrB;IAWW,Y9CuzB2B,EAAA;;A8ClzBtC;EACE,aAAa;EACb,uBAAuB;EACvB,8BAA8B;EAC9B,kB9CozBsC;E8CnzBtC,gC9CvIgB;EOiBd,0CQgH4D;ER/G5D,2CQ+G4D,EAAA;;A+BChE;IASI,kB9C+yBoC;I8C7yBpC,8BAA6F,EAAA;;AAKjG;EACE,gBAAgB;EAChB,gB9CsI+B,EAAA;;A8CjIjC;EACE,kBAAkB;EAGlB,cAAc;EACd,a9CkwBsC,EAAA;;A8C9vBxC;EACE,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgE;EAChE,6B9CxKgB;EO+Bd,8CQkG4D;ERjG5D,6CQiG4D,EAAA;;A+BiChE;IAaI,eAAwC,EAAA;;AAK5C;EACE,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,gBAAgB,EAAA;;AnCvId;EmCzBJ;IAuKI,gB9C+vBqC;I8C9vBrC,oBAAyC,EAAA;EAlJ7C;IAsJI,+B/BpE4D,EAAA;I+BlFhE;MAyJM,gC/BvE0D,EAAA;E+B/DhE;IA2II,+B/B5E4D,EAAA;I+B/DhE;MA8IM,4B/B/E0D;M+BgF1D,2BAAmB;MAAnB,wBAAmB;MAAnB,mBAAmB,EAAA;EAQvB;IAAY,gB9CuuB2B,EAAA,E8CvuBH;;AnCvKlC;EmC2KF;;IAEE,gB9C+tBqC,EAAA,E8C9tBtC;;AnC9KC;EmCkLF;IAAY,iB9CytB4B,EAAA,E8CztBJ;;AC7OtC;EACE,kBAAkB;EAClB,a/C8qBsC;E+C7qBtC,cAAc;EACd,S/Cq1BmC;EgDz1BnC,kMhDmRiN;EgDjRjN,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;E8C9EhB,qBAAqB;EACrB,UAAU,EAAA;;AAXZ;IAaW,Y/Cy0B2B,EAAA;;A+Ct1BtC;IAgBI,kBAAkB;IAClB,cAAc;IACd,a/Cy0BqC;I+Cx0BrC,c/Cy0BqC,EAAA;;A+C51BzC;MAsBM,kBAAkB;MAClB,WAAW;MACX,yBAAyB;MACzB,mBAAmB,EAAA;;AAKzB;EACE,iBAAgC,EAAA;;AADlC;IAII,SAAS,EAAA;;AAJb;MAOM,MAAM;MACN,6BAAgE;MAChE,sB/CvBS,EAAA;;A+C4Bf;EACE,iB/C+yBuC,EAAA;;A+ChzBzC;IAII,OAAO;IACP,a/C2yBqC;I+C1yBrC,c/CyyBqC,EAAA;;A+C/yBzC;MASM,QAAQ;MACR,oCAA2F;MAC3F,wB/CvCS,EAAA;;A+C4Cf;EACE,iBAAgC,EAAA;;AADlC;IAII,MAAM,EAAA;;AAJV;MAOM,SAAS;MACT,6B/CwxBmC;M+CvxBnC,yB/CrDS,EAAA;;A+C0Df;EACE,iB/CixBuC,EAAA;;A+ClxBzC;IAII,QAAQ;IACR,a/C6wBqC;I+C5wBrC,c/C2wBqC,EAAA;;A+CjxBzC;MASM,OAAO;MACP,oC/CwwBmC;M+CvwBnC,uB/CrES,EAAA;;A+C0Ff;EACE,gB/CuuBuC;E+CtuBvC,uB/C4uBuC;E+C3uBvC,W/CvGa;E+CwGb,kBAAkB;EAClB,sB/C/Fa;EOCX,sBP6NgC,EAAA;;AiD/OpC;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,ajD4qBsC;EiD3qBtC,cAAc;EACd,gBjDu2BuC;EgD52BvC,kMhDmRiN;EgDjRjN,kBAAkB;EAClB,gBhD2R+B;EgD1R/B,gBhD+R+B;EgD9R/B,gBAAgB;EAChB,iBAAiB;EACjB,qBAAqB;EACrB,iBAAiB;EACjB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;E/CgHZ,mBAtCY;EgD7EhB,qBAAqB;EACrB,sBjDNa;EiDOb,4BAA4B;EAC5B,oCjDEa;EOCX,qBP8N+B,EAAA;;AiDhPnC;IAoBI,kBAAkB;IAClB,cAAc;IACd,WjDu2BoC;IiDt2BpC,cjDu2BqC;IiDt2BrC,gBjDwN+B,EAAA;;AiDhPnC;MA4BM,kBAAkB;MAClB,cAAc;MACd,WAAW;MACX,yBAAyB;MACzB,mBAAmB,EAAA;;AAKzB;EACE,qBjDw1BuC,EAAA;;AiDz1BzC;IAII,2BlCkG4D,EAAA;;AkCtGhE;MAOM,SAAS;MACT,6BAAgE;MAChE,qCjDm1BiE,EAAA;;AiD51BvE;MAaM,WjD0L2B;MiDzL3B,6BAAgE;MAChE,sBjD7CS,EAAA;;AiDkDf;EACE,mBjDo0BuC,EAAA;;AiDr0BzC;IAII,yBlC8E4D;IkC7E5D,ajDg0BqC;IiD/zBrC,YjD8zBoC;IiD7zBpC,gBAAgC,EAAA;;AAPpC;MAUM,OAAO;MACP,oCAA2F;MAC3F,uCjD4zBiE,EAAA;;AiDx0BvE;MAgBM,SjDmK2B;MiDlK3B,oCAA2F;MAC3F,wBjDpES,EAAA;;AiDyEf;EACE,kBjD6yBuC,EAAA;;AiD9yBzC;IAII,wBlCuD4D,EAAA;;AkC3DhE;MAOM,MAAM;MACN,oCAA2F;MAC3F,wCjDwyBiE,EAAA;;AiDjzBvE;MAaM,QjD+I2B;MiD9I3B,oCAA2F;MAC3F,yBjDxFS,EAAA;;AiDyEf;IAqBI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,cAAc;IACd,WjDoxBoC;IiDnxBpC,oBAAsC;IACtC,WAAW;IACX,gCjDwwBuD,EAAA;;AiDpwB3D;EACE,oBjD6wBuC,EAAA;;AiD9wBzC;IAII,0BlCuB4D;IkCtB5D,ajDywBqC;IiDxwBrC,YjDuwBoC;IiDtwBpC,gBAAgC,EAAA;;AAPpC;MAUM,QAAQ;MACR,oCjDmwBmC;MiDlwBnC,sCjDqwBiE,EAAA;;AiDjxBvE;MAgBM,UjD4G2B;MiD3G3B,oCjD6vBmC;MiD5vBnC,uBjD3HS,EAAA;;AiDiJf;EACE,uBjD8tBwC;EiD7tBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjDutByD;EiDttBzD,gCAAyE;E1CnIvE,0CQgH4D;ER/G5D,2CQ+G4D,EAAA;;AkCahE;IAUI,aAAa,EAAA;;AAIjB;EACE,uBjDgtBwC;EiD/sBxC,cjDxJgB,EAAA;;AkDHlB;EACE,kBAAkB,EAAA;;AAGpB;EACE,mBAAmB,EAAA;;AAGrB;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB,EAAA;;ACvBhB;IACE,cAAc;IACd,WAAW;IACX,WAAW,EAAA;;ADwBf;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,mCAA2B;UAA3B,2BAA2B;EjClBvB,sCjBmjCkF,EAAA;;AiB/iClF;IiCQN;MjCPQ,gBAAgB,EAAA,EiCevB;;AAED;;;EAGE,cAAc,EAAA;;AAGhB;;EAEE,2BAA2B,EAAA;;AAG7B;;EAEE,4BAA4B,EAAA;;AAQ9B;EAEI,UAAU;EACV,4BAA4B;EAC5B,eAAe,EAAA;;AAJnB;;;EAUI,UAAU;EACV,UAAU,EAAA;;AAXd;;EAgBI,UAAU;EACV,UAAU;EjC5DR,2BjBkjCkC,EAAA;;AiB9iClC;IiCuCN;;MjCtCQ,gBAAgB,EAAA,EiCyDrB;;AAQH;;EAEE,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,UAAU;EAEV,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,UlD88BsC;EkD78BtC,WlD1Fa;EkD2Fb,kBAAkB;EAClB,YlD48BqC;EiB/hCjC,8BjBiiCgD,EAAA;;AiB7hChD;IiCkEN;;MjCjEQ,gBAAgB,EAAA,EiCwFvB;;AhD7FC;;;IgDwFE,WlDjGW;IkDkGX,qBAAqB;IACrB,UAAU;IACV,YlDq8BmC,EAAA;;AkDl8BvC;EACE,OAAO,EAAA;;AAKT;EACE,QAAQ,EAAA;;AAOV;;EAEE,qBAAqB;EACrB,WlD87BuC;EkD77BvC,YlD67BuC;EkD57BvC,qCAAqC,EAAA;;AAEvC;EACE,sNnC1EgF,EAAA;;AmC4ElF;EACE,uNnC7EgF,EAAA;;AmCsFlF;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,OAAO;EACP,WAAW;EACX,aAAa;EACb,uBAAuB;EACvB,eAAe;EAEf,iBlDo5BsC;EkDn5BtC,gBlDm5BsC;EkDl5BtC,gBAAgB,EAAA;;AAZlB;IAeI,uBAAuB;IACvB,cAAc;IACd,WlDk5BqC;IkDj5BrC,WlDk5BoC;IkDj5BpC,iBlDm5BoC;IkDl5BpC,gBlDk5BoC;IkDj5BpC,mBAAmB;IACnB,eAAe;IACf,sBlDhKW;IkDiKX,4BAA4B;IAE5B,kCAAiE;IACjE,qCAAoE;IACpE,WAAW;IjC5JT,6BjBwiC+C,EAAA;;AiBpiC/C;MiC4HN;QjC3HQ,gBAAgB,EAAA,EiCyJrB;;AA9BH;IAiCI,UAAU,EAAA;;AASd;EACE,kBAAkB;EAClB,UAA2C;EAC3C,YAAY;EACZ,SAA0C;EAC1C,WAAW;EACX,iBAAiB;EACjB,oBAAoB;EACpB,WlD3La;EkD4Lb,kBAAkB,EAAA;;AE/LpB;EACE;IAAK,yBAAyB,EAAA,EAAA;;AADhC;EACE;IAAK,yBAAyB,EAAA,EAAA;;AAGhC;EACE,qBAAqB;EACrB,WpD8jC0B;EoD7jC1B,YpD6jC0B;EoD5jC1B,2BAA2B;EAC3B,iCAAgD;EAChD,+BAA+B;EAE/B,kBAAkB;EAClB,sDAA8C;UAA9C,8CAA8C,EAAA;;AAGhD;EACE,WpDujC4B;EoDtjC5B,YpDsjC4B;EoDrjC5B,mBpDujC4B,EAAA;;AoDhjC9B;EACE;IACE,mBAAmB,EAAA;EAErB;IACE,UAAU;IACV,eAAe,EAAA,EAAA;;AANnB;EACE;IACE,mBAAmB,EAAA;EAErB;IACE,UAAU;IACV,eAAe,EAAA,EAAA;;AAInB;EACE,qBAAqB;EACrB,WpD8hC0B;EoD7hC1B,YpD6hC0B;EoD5hC1B,2BAA2B;EAC3B,8BAA8B;EAE9B,kBAAkB;EAClB,UAAU;EACV,oDAA4C;UAA5C,4CAA4C,EAAA;;AAG9C;EACE,WpDuhC4B;EoDthC5B,YpDshC4B,EAAA;;AqD1kC9B;EAAqB,mCAAmC,EAAA;;AACxD;EAAqB,8BAA8B,EAAA;;AACnD;EAAqB,iCAAiC,EAAA;;AACtD;EAAqB,iCAAiC,EAAA;;AACtD;EAAqB,sCAAsC,EAAA;;AAC3D;EAAqB,mCAAmC,EAAA;;ACFtD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;AANpD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;AANpD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;AANpD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;AANpD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;AANpD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;AANpD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;AANpD;EACE,oCAAmC,EAAA;;ApDUrC;;;EoDLI,oCAAgD,EAAA;;ACCtD;EACE,iCAAmC,EAAA;;AAGrC;EACE,wCAAwC,EAAA;;ACX1C;EAAkB,oCAAoD,EAAA;;AACtE;EAAkB,wCAAwD,EAAA;;AAC1E;EAAkB,0CAA0D,EAAA;;AAC5E;EAAkB,2CAA2D,EAAA;;AAC7E;EAAkB,yCAAyD,EAAA;;AAE3E;EAAmB,oBAAoB,EAAA;;AACvC;EAAmB,wBAAwB,EAAA;;AAC3C;EAAmB,0BAA0B,EAAA;;AAC7C;EAAmB,2BAA2B,EAAA;;AAC9C;EAAmB,yBAAyB,EAAA;;AAG1C;EACE,gCAA+B,EAAA;;AADjC;EACE,gCAA+B,EAAA;;AADjC;EACE,gCAA+B,EAAA;;AADjC;EACE,gCAA+B,EAAA;;AADjC;EACE,gCAA+B,EAAA;;AADjC;EACE,gCAA+B,EAAA;;AADjC;EACE,gCAA+B,EAAA;;AADjC;EACE,gCAA+B,EAAA;;AAInC;EACE,6BAA+B,EAAA;;AAOjC;EACE,gCAA2C,EAAA;;AAG7C;EACE,iCAAwC,EAAA;;AAG1C;EACE,0CAAiD;EACjD,2CAAkD,EAAA;;AAGpD;EACE,2CAAkD;EAClD,8CAAqD,EAAA;;AAGvD;EACE,8CAAqD;EACrD,6CAAoD,EAAA;;AAGtD;EACE,0CAAiD;EACjD,6CAAoD,EAAA;;AAGtD;EACE,gCAA2C,EAAA;;AAG7C;EACE,6BAA6B,EAAA;;AAG/B;EACE,+BAAuC,EAAA;;AAGzC;EACE,2BAA2B,EAAA;;ALxE3B;EACE,cAAc;EACd,WAAW;EACX,WAAW,EAAA;;AMOT;EAAwB,wBAA0B,EAAA;;AAAlD;EAAwB,0BAA0B,EAAA;;AAAlD;EAAwB,gCAA0B,EAAA;;AAAlD;EAAwB,yBAA0B,EAAA;;AAAlD;EAAwB,yBAA0B,EAAA;;AAAlD;EAAwB,6BAA0B,EAAA;;AAAlD;EAAwB,8BAA0B,EAAA;;AAAlD;EAAwB,wBAA0B,EAAA;;AAAlD;EAAwB,+BAA0B,EAAA;;A9CiDpD;E8CjDE;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,0BAA0B,EAAA;EAAlD;IAAwB,gCAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,6BAA0B,EAAA;EAAlD;IAAwB,8BAA0B,EAAA;EAAlD;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,+BAA0B,EAAA,EAAI;;A9CiDxD;E8CjDE;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,0BAA0B,EAAA;EAAlD;IAAwB,gCAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,6BAA0B,EAAA;EAAlD;IAAwB,8BAA0B,EAAA;EAAlD;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,+BAA0B,EAAA,EAAI;;A9CiDxD;E8CjDE;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,0BAA0B,EAAA;EAAlD;IAAwB,gCAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,6BAA0B,EAAA;EAAlD;IAAwB,8BAA0B,EAAA;EAAlD;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,+BAA0B,EAAA,EAAI;;A9CiDxD;E8CjDE;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,0BAA0B,EAAA;EAAlD;IAAwB,gCAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,yBAA0B,EAAA;EAAlD;IAAwB,6BAA0B,EAAA;EAAlD;IAAwB,8BAA0B,EAAA;EAAlD;IAAwB,wBAA0B,EAAA;EAAlD;IAAwB,+BAA0B,EAAA,EAAI;;AAU5D;EAEI;IAAqB,wBAA0B,EAAA;EAA/C;IAAqB,0BAA0B,EAAA;EAA/C;IAAqB,gCAA0B,EAAA;EAA/C;IAAqB,yBAA0B,EAAA;EAA/C;IAAqB,yBAA0B,EAAA;EAA/C;IAAqB,6BAA0B,EAAA;EAA/C;IAAqB,8BAA0B,EAAA;EAA/C;IAAqB,wBAA0B,EAAA;EAA/C;IAAqB,+BAA0B,EAAA,EAAI;;ACrBvD;EACE,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,UAAU;EACV,gBAAgB,EAAA;;AALlB;IAQI,cAAc;IACd,WAAW,EAAA;;AATf;;;;;IAiBI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,OAAO;IACP,WAAW;IACX,YAAY;IACZ,SAAS,EAAA;;AAQX;EAEI,sBAA4F,EAAA;;AAFhG;EAEI,mBAA4F,EAAA;;AAFhG;EAEI,gBAA4F,EAAA;;AAFhG;EAEI,iBAA4F,EAAA;;ACzB9F;EAAgC,8BAA8B,EAAA;;AAC9D;EAAgC,iCAAiC,EAAA;;AACjE;EAAgC,sCAAsC,EAAA;;AACtE;EAAgC,yCAAyC,EAAA;;AAEzE;EAA8B,0BAA0B,EAAA;;AACxD;EAA8B,4BAA4B,EAAA;;AAC1D;EAA8B,kCAAkC,EAAA;;AAChE;EAA8B,yBAAyB,EAAA;;AACvD;EAA8B,uBAAuB,EAAA;;AACrD;EAA8B,uBAAuB,EAAA;;AACrD;EAA8B,yBAAyB,EAAA;;AACvD;EAA8B,yBAAyB,EAAA;;AAEvD;EAAoC,sCAAsC,EAAA;;AAC1E;EAAoC,oCAAoC,EAAA;;AACxE;EAAoC,kCAAkC,EAAA;;AACtE;EAAoC,yCAAyC,EAAA;;AAC7E;EAAoC,wCAAwC,EAAA;;AAE5E;EAAiC,kCAAkC,EAAA;;AACnE;EAAiC,gCAAgC,EAAA;;AACjE;EAAiC,8BAA8B,EAAA;;AAC/D;EAAiC,gCAAgC,EAAA;;AACjE;EAAiC,+BAA+B,EAAA;;AAEhE;EAAkC,oCAAoC,EAAA;;AACtE;EAAkC,kCAAkC,EAAA;;AACpE;EAAkC,gCAAgC,EAAA;;AAClE;EAAkC,uCAAuC,EAAA;;AACzE;EAAkC,sCAAsC,EAAA;;AACxE;EAAkC,iCAAiC,EAAA;;AAEnE;EAAgC,2BAA2B,EAAA;;AAC3D;EAAgC,iCAAiC,EAAA;;AACjE;EAAgC,+BAA+B,EAAA;;AAC/D;EAAgC,6BAA6B,EAAA;;AAC7D;EAAgC,+BAA+B,EAAA;;AAC/D;EAAgC,8BAA8B,EAAA;;AhDY9D;EgDlDA;IAAgC,8BAA8B,EAAA;EAC9D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,sCAAsC,EAAA;EACtE;IAAgC,yCAAyC,EAAA;EAEzE;IAA8B,0BAA0B,EAAA;EACxD;IAA8B,4BAA4B,EAAA;EAC1D;IAA8B,kCAAkC,EAAA;EAChE;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,yBAAyB,EAAA;EAEvD;IAAoC,sCAAsC,EAAA;EAC1E;IAAoC,oCAAoC,EAAA;EACxE;IAAoC,kCAAkC,EAAA;EACtE;IAAoC,yCAAyC,EAAA;EAC7E;IAAoC,wCAAwC,EAAA;EAE5E;IAAiC,kCAAkC,EAAA;EACnE;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,8BAA8B,EAAA;EAC/D;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,+BAA+B,EAAA;EAEhE;IAAkC,oCAAoC,EAAA;EACtE;IAAkC,kCAAkC,EAAA;EACpE;IAAkC,gCAAgC,EAAA;EAClE;IAAkC,uCAAuC,EAAA;EACzE;IAAkC,sCAAsC,EAAA;EACxE;IAAkC,iCAAiC,EAAA;EAEnE;IAAgC,2BAA2B,EAAA;EAC3D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,6BAA6B,EAAA;EAC7D;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,8BAA8B,EAAA,EAAI;;AhDYlE;EgDlDA;IAAgC,8BAA8B,EAAA;EAC9D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,sCAAsC,EAAA;EACtE;IAAgC,yCAAyC,EAAA;EAEzE;IAA8B,0BAA0B,EAAA;EACxD;IAA8B,4BAA4B,EAAA;EAC1D;IAA8B,kCAAkC,EAAA;EAChE;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,yBAAyB,EAAA;EAEvD;IAAoC,sCAAsC,EAAA;EAC1E;IAAoC,oCAAoC,EAAA;EACxE;IAAoC,kCAAkC,EAAA;EACtE;IAAoC,yCAAyC,EAAA;EAC7E;IAAoC,wCAAwC,EAAA;EAE5E;IAAiC,kCAAkC,EAAA;EACnE;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,8BAA8B,EAAA;EAC/D;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,+BAA+B,EAAA;EAEhE;IAAkC,oCAAoC,EAAA;EACtE;IAAkC,kCAAkC,EAAA;EACpE;IAAkC,gCAAgC,EAAA;EAClE;IAAkC,uCAAuC,EAAA;EACzE;IAAkC,sCAAsC,EAAA;EACxE;IAAkC,iCAAiC,EAAA;EAEnE;IAAgC,2BAA2B,EAAA;EAC3D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,6BAA6B,EAAA;EAC7D;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,8BAA8B,EAAA,EAAI;;AhDYlE;EgDlDA;IAAgC,8BAA8B,EAAA;EAC9D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,sCAAsC,EAAA;EACtE;IAAgC,yCAAyC,EAAA;EAEzE;IAA8B,0BAA0B,EAAA;EACxD;IAA8B,4BAA4B,EAAA;EAC1D;IAA8B,kCAAkC,EAAA;EAChE;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,yBAAyB,EAAA;EAEvD;IAAoC,sCAAsC,EAAA;EAC1E;IAAoC,oCAAoC,EAAA;EACxE;IAAoC,kCAAkC,EAAA;EACtE;IAAoC,yCAAyC,EAAA;EAC7E;IAAoC,wCAAwC,EAAA;EAE5E;IAAiC,kCAAkC,EAAA;EACnE;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,8BAA8B,EAAA;EAC/D;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,+BAA+B,EAAA;EAEhE;IAAkC,oCAAoC,EAAA;EACtE;IAAkC,kCAAkC,EAAA;EACpE;IAAkC,gCAAgC,EAAA;EAClE;IAAkC,uCAAuC,EAAA;EACzE;IAAkC,sCAAsC,EAAA;EACxE;IAAkC,iCAAiC,EAAA;EAEnE;IAAgC,2BAA2B,EAAA;EAC3D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,6BAA6B,EAAA;EAC7D;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,8BAA8B,EAAA,EAAI;;AhDYlE;EgDlDA;IAAgC,8BAA8B,EAAA;EAC9D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,sCAAsC,EAAA;EACtE;IAAgC,yCAAyC,EAAA;EAEzE;IAA8B,0BAA0B,EAAA;EACxD;IAA8B,4BAA4B,EAAA;EAC1D;IAA8B,kCAAkC,EAAA;EAChE;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,uBAAuB,EAAA;EACrD;IAA8B,yBAAyB,EAAA;EACvD;IAA8B,yBAAyB,EAAA;EAEvD;IAAoC,sCAAsC,EAAA;EAC1E;IAAoC,oCAAoC,EAAA;EACxE;IAAoC,kCAAkC,EAAA;EACtE;IAAoC,yCAAyC,EAAA;EAC7E;IAAoC,wCAAwC,EAAA;EAE5E;IAAiC,kCAAkC,EAAA;EACnE;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,8BAA8B,EAAA;EAC/D;IAAiC,gCAAgC,EAAA;EACjE;IAAiC,+BAA+B,EAAA;EAEhE;IAAkC,oCAAoC,EAAA;EACtE;IAAkC,kCAAkC,EAAA;EACpE;IAAkC,gCAAgC,EAAA;EAClE;IAAkC,uCAAuC,EAAA;EACzE;IAAkC,sCAAsC,EAAA;EACxE;IAAkC,iCAAiC,EAAA;EAEnE;IAAgC,2BAA2B,EAAA;EAC3D;IAAgC,iCAAiC,EAAA;EACjE;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,6BAA6B,EAAA;EAC7D;IAAgC,+BAA+B,EAAA;EAC/D;IAAgC,8BAA8B,EAAA,EAAI;;AC1ClE;EAAwB,sBAAsB,EAAA;;AAC9C;EAAwB,uBAAuB,EAAA;;AAC/C;EAAwB,sBAAsB,EAAA;;AjDoD9C;EiDtDA;IAAwB,sBAAsB,EAAA;EAC9C;IAAwB,uBAAuB,EAAA;EAC/C;IAAwB,sBAAsB,EAAA,EAAI;;AjDoDlD;EiDtDA;IAAwB,sBAAsB,EAAA;EAC9C;IAAwB,uBAAuB,EAAA;EAC/C;IAAwB,sBAAsB,EAAA,EAAI;;AjDoDlD;EiDtDA;IAAwB,sBAAsB,EAAA;EAC9C;IAAwB,uBAAuB,EAAA;EAC/C;IAAwB,sBAAsB,EAAA,EAAI;;AjDoDlD;EiDtDA;IAAwB,sBAAsB,EAAA;EAC9C;IAAwB,uBAAuB,EAAA;EAC/C;IAAwB,sBAAsB,EAAA,EAAI;;ACLpD;EAAyB,mCAA8B;KAA9B,gCAA8B;MAA9B,+BAA8B;UAA9B,2BAA8B,EAAA;;AAAvD;EAAyB,oCAA8B;KAA9B,iCAA8B;MAA9B,gCAA8B;UAA9B,4BAA8B,EAAA;;AAAvD;EAAyB,oCAA8B;KAA9B,iCAA8B;MAA9B,gCAA8B;UAA9B,4BAA8B,EAAA;;ACAvD;EAAsB,yBAA2B,EAAA;;AAAjD;EAAsB,2BAA2B,EAAA;;ACCjD;EAAyB,2BAA8B,EAAA;;AAAvD;EAAyB,6BAA8B,EAAA;;AAAvD;EAAyB,6BAA8B,EAAA;;AAAvD;EAAyB,0BAA8B,EAAA;;AAAvD;EAAyB,mCAA8B;EAA9B,2BAA8B,EAAA;;AAKzD;EACE,eAAe;EACf,MAAM;EACN,QAAQ;EACR,OAAO;EACP,a/D+pBsC,EAAA;;A+D5pBxC;EACE,eAAe;EACf,QAAQ;EACR,SAAS;EACT,OAAO;EACP,a/DupBsC,EAAA;;A+DnpBV;EAD9B;IAEI,wBAAgB;IAAhB,gBAAgB;IAChB,MAAM;IACN,a/D+oBoC,EAAA,E+D7oBvC;;AC3BD;ECEE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,UAAU;EACV,YAAY;EACZ,gBAAgB;EAChB,sBAAsB;EACtB,mBAAmB;EACnB,SAAS,EAAA;;AAUT;EAEE,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,UAAU;EACV,mBAAmB,EAAA;;AC7BvB;EAAa,8DAAqC,EAAA;;AAClD;EAAU,wDAAkC,EAAA;;AAC5C;EAAa,uDAAqC,EAAA;;AAClD;EAAe,2BAA2B,EAAA;;ACCtC;EAAuB,qBAA4B,EAAA;;AAAnD;EAAuB,qBAA4B,EAAA;;AAAnD;EAAuB,qBAA4B,EAAA;;AAAnD;EAAuB,sBAA4B,EAAA;;AAAnD;EAAuB,sBAA4B,EAAA;;AAAnD;EAAuB,sBAA4B,EAAA;;AAAnD;EAAuB,sBAA4B,EAAA;;AAAnD;EAAuB,sBAA4B,EAAA;;AAAnD;EAAuB,uBAA4B,EAAA;;AAAnD;EAAuB,uBAA4B,EAAA;;AAIvD;EAAU,0BAA0B,EAAA;;AACpC;EAAU,2BAA2B,EAAA;;AAIrC;EAAc,2BAA2B,EAAA;;AACzC;EAAc,4BAA4B,EAAA;;AAE1C;EAAU,uBAAuB,EAAA;;AACjC;EAAU,wBAAwB,EAAA;;ACT1B;EAAgC,oBAA4B,EAAA;;AAC5D;;EAEE,wBAAoC,EAAA;;AAEtC;;EAEE,0BAAwC,EAAA;;AAE1C;;EAEE,2BAA0C,EAAA;;AAE5C;;EAEE,yBAAsC,EAAA;;AAfxC;EAAgC,0BAA4B,EAAA;;AAC5D;;EAEE,8BAAoC,EAAA;;AAEtC;;EAEE,gCAAwC,EAAA;;AAE1C;;EAEE,iCAA0C,EAAA;;AAE5C;;EAEE,+BAAsC,EAAA;;AAfxC;EAAgC,yBAA4B,EAAA;;AAC5D;;EAEE,6BAAoC,EAAA;;AAEtC;;EAEE,+BAAwC,EAAA;;AAE1C;;EAEE,gCAA0C,EAAA;;AAE5C;;EAEE,8BAAsC,EAAA;;AAfxC;EAAgC,uBAA4B,EAAA;;AAC5D;;EAEE,2BAAoC,EAAA;;AAEtC;;EAEE,6BAAwC,EAAA;;AAE1C;;EAEE,8BAA0C,EAAA;;AAE5C;;EAEE,4BAAsC,EAAA;;AAfxC;EAAgC,yBAA4B,EAAA;;AAC5D;;EAEE,6BAAoC,EAAA;;AAEtC;;EAEE,+BAAwC,EAAA;;AAE1C;;EAEE,gCAA0C,EAAA;;AAE5C;;EAEE,8BAAsC,EAAA;;AAfxC;EAAgC,uBAA4B,EAAA;;AAC5D;;EAEE,2BAAoC,EAAA;;AAEtC;;EAEE,6BAAwC,EAAA;;AAE1C;;EAEE,8BAA0C,EAAA;;AAE5C;;EAEE,4BAAsC,EAAA;;AAfxC;EAAgC,qBAA4B,EAAA;;AAC5D;;EAEE,yBAAoC,EAAA;;AAEtC;;EAEE,2BAAwC,EAAA;;AAE1C;;EAEE,4BAA0C,EAAA;;AAE5C;;EAEE,0BAAsC,EAAA;;AAfxC;EAAgC,2BAA4B,EAAA;;AAC5D;;EAEE,+BAAoC,EAAA;;AAEtC;;EAEE,iCAAwC,EAAA;;AAE1C;;EAEE,kCAA0C,EAAA;;AAE5C;;EAEE,gCAAsC,EAAA;;AAfxC;EAAgC,0BAA4B,EAAA;;AAC5D;;EAEE,8BAAoC,EAAA;;AAEtC;;EAEE,gCAAwC,EAAA;;AAE1C;;EAEE,iCAA0C,EAAA;;AAE5C;;EAEE,+BAAsC,EAAA;;AAfxC;EAAgC,wBAA4B,EAAA;;AAC5D;;EAEE,4BAAoC,EAAA;;AAEtC;;EAEE,8BAAwC,EAAA;;AAE1C;;EAEE,+BAA0C,EAAA;;AAE5C;;EAEE,6BAAsC,EAAA;;AAfxC;EAAgC,0BAA4B,EAAA;;AAC5D;;EAEE,8BAAoC,EAAA;;AAEtC;;EAEE,gCAAwC,EAAA;;AAE1C;;EAEE,iCAA0C,EAAA;;AAE5C;;EAEE,+BAAsC,EAAA;;AAfxC;EAAgC,wBAA4B,EAAA;;AAC5D;;EAEE,4BAAoC,EAAA;;AAEtC;;EAEE,8BAAwC,EAAA;;AAE1C;;EAEE,+BAA0C,EAAA;;AAE5C;;EAEE,6BAAsC,EAAA;;AAQxC;EAAwB,2BAA2B,EAAA;;AACnD;;EAEE,+BAA+B,EAAA;;AAEjC;;EAEE,iCAAiC,EAAA;;AAEnC;;EAEE,kCAAkC,EAAA;;AAEpC;;EAEE,gCAAgC,EAAA;;AAflC;EAAwB,0BAA2B,EAAA;;AACnD;;EAEE,8BAA+B,EAAA;;AAEjC;;EAEE,gCAAiC,EAAA;;AAEnC;;EAEE,iCAAkC,EAAA;;AAEpC;;EAEE,+BAAgC,EAAA;;AAflC;EAAwB,wBAA2B,EAAA;;AACnD;;EAEE,4BAA+B,EAAA;;AAEjC;;EAEE,8BAAiC,EAAA;;AAEnC;;EAEE,+BAAkC,EAAA;;AAEpC;;EAEE,6BAAgC,EAAA;;AAflC;EAAwB,0BAA2B,EAAA;;AACnD;;EAEE,8BAA+B,EAAA;;AAEjC;;EAEE,gCAAiC,EAAA;;AAEnC;;EAEE,iCAAkC,EAAA;;AAEpC;;EAEE,+BAAgC,EAAA;;AAflC;EAAwB,wBAA2B,EAAA;;AACnD;;EAEE,4BAA+B,EAAA;;AAEjC;;EAEE,8BAAiC,EAAA;;AAEnC;;EAEE,+BAAkC,EAAA;;AAEpC;;EAEE,6BAAgC,EAAA;;AAMtC;EAAmB,uBAAuB,EAAA;;AAC1C;;EAEE,2BAA2B,EAAA;;AAE7B;;EAEE,6BAA6B,EAAA;;AAE/B;;EAEE,8BAA8B,EAAA;;AAEhC;;EAEE,4BAA4B,EAAA;;AzDT9B;EyDlDI;IAAgC,oBAA4B,EAAA;EAC5D;;IAEE,wBAAoC,EAAA;EAEtC;;IAEE,0BAAwC,EAAA;EAE1C;;IAEE,2BAA0C,EAAA;EAE5C;;IAEE,yBAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,qBAA4B,EAAA;EAC5D;;IAEE,yBAAoC,EAAA;EAEtC;;IAEE,2BAAwC,EAAA;EAE1C;;IAEE,4BAA0C,EAAA;EAE5C;;IAEE,0BAAsC,EAAA;EAfxC;IAAgC,2BAA4B,EAAA;EAC5D;;IAEE,+BAAoC,EAAA;EAEtC;;IAEE,iCAAwC,EAAA;EAE1C;;IAEE,kCAA0C,EAAA;EAE5C;;IAEE,gCAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAQxC;IAAwB,2BAA2B,EAAA;EACnD;;IAEE,+BAA+B,EAAA;EAEjC;;IAEE,iCAAiC,EAAA;EAEnC;;IAEE,kCAAkC,EAAA;EAEpC;;IAEE,gCAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAMtC;IAAmB,uBAAuB,EAAA;EAC1C;;IAEE,2BAA2B,EAAA;EAE7B;;IAEE,6BAA6B,EAAA;EAE/B;;IAEE,8BAA8B,EAAA;EAEhC;;IAEE,4BAA4B,EAAA,EAC7B;;AzDVD;EyDlDI;IAAgC,oBAA4B,EAAA;EAC5D;;IAEE,wBAAoC,EAAA;EAEtC;;IAEE,0BAAwC,EAAA;EAE1C;;IAEE,2BAA0C,EAAA;EAE5C;;IAEE,yBAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,qBAA4B,EAAA;EAC5D;;IAEE,yBAAoC,EAAA;EAEtC;;IAEE,2BAAwC,EAAA;EAE1C;;IAEE,4BAA0C,EAAA;EAE5C;;IAEE,0BAAsC,EAAA;EAfxC;IAAgC,2BAA4B,EAAA;EAC5D;;IAEE,+BAAoC,EAAA;EAEtC;;IAEE,iCAAwC,EAAA;EAE1C;;IAEE,kCAA0C,EAAA;EAE5C;;IAEE,gCAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAQxC;IAAwB,2BAA2B,EAAA;EACnD;;IAEE,+BAA+B,EAAA;EAEjC;;IAEE,iCAAiC,EAAA;EAEnC;;IAEE,kCAAkC,EAAA;EAEpC;;IAEE,gCAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAMtC;IAAmB,uBAAuB,EAAA;EAC1C;;IAEE,2BAA2B,EAAA;EAE7B;;IAEE,6BAA6B,EAAA;EAE/B;;IAEE,8BAA8B,EAAA;EAEhC;;IAEE,4BAA4B,EAAA,EAC7B;;AzDVD;EyDlDI;IAAgC,oBAA4B,EAAA;EAC5D;;IAEE,wBAAoC,EAAA;EAEtC;;IAEE,0BAAwC,EAAA;EAE1C;;IAEE,2BAA0C,EAAA;EAE5C;;IAEE,yBAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,qBAA4B,EAAA;EAC5D;;IAEE,yBAAoC,EAAA;EAEtC;;IAEE,2BAAwC,EAAA;EAE1C;;IAEE,4BAA0C,EAAA;EAE5C;;IAEE,0BAAsC,EAAA;EAfxC;IAAgC,2BAA4B,EAAA;EAC5D;;IAEE,+BAAoC,EAAA;EAEtC;;IAEE,iCAAwC,EAAA;EAE1C;;IAEE,kCAA0C,EAAA;EAE5C;;IAEE,gCAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAQxC;IAAwB,2BAA2B,EAAA;EACnD;;IAEE,+BAA+B,EAAA;EAEjC;;IAEE,iCAAiC,EAAA;EAEnC;;IAEE,kCAAkC,EAAA;EAEpC;;IAEE,gCAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAMtC;IAAmB,uBAAuB,EAAA;EAC1C;;IAEE,2BAA2B,EAAA;EAE7B;;IAEE,6BAA6B,EAAA;EAE/B;;IAEE,8BAA8B,EAAA;EAEhC;;IAEE,4BAA4B,EAAA,EAC7B;;AzDVD;EyDlDI;IAAgC,oBAA4B,EAAA;EAC5D;;IAEE,wBAAoC,EAAA;EAEtC;;IAEE,0BAAwC,EAAA;EAE1C;;IAEE,2BAA0C,EAAA;EAE5C;;IAEE,yBAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,yBAA4B,EAAA;EAC5D;;IAEE,6BAAoC,EAAA;EAEtC;;IAEE,+BAAwC,EAAA;EAE1C;;IAEE,gCAA0C,EAAA;EAE5C;;IAEE,8BAAsC,EAAA;EAfxC;IAAgC,uBAA4B,EAAA;EAC5D;;IAEE,2BAAoC,EAAA;EAEtC;;IAEE,6BAAwC,EAAA;EAE1C;;IAEE,8BAA0C,EAAA;EAE5C;;IAEE,4BAAsC,EAAA;EAfxC;IAAgC,qBAA4B,EAAA;EAC5D;;IAEE,yBAAoC,EAAA;EAEtC;;IAEE,2BAAwC,EAAA;EAE1C;;IAEE,4BAA0C,EAAA;EAE5C;;IAEE,0BAAsC,EAAA;EAfxC;IAAgC,2BAA4B,EAAA;EAC5D;;IAEE,+BAAoC,EAAA;EAEtC;;IAEE,iCAAwC,EAAA;EAE1C;;IAEE,kCAA0C,EAAA;EAE5C;;IAEE,gCAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAfxC;IAAgC,0BAA4B,EAAA;EAC5D;;IAEE,8BAAoC,EAAA;EAEtC;;IAEE,gCAAwC,EAAA;EAE1C;;IAEE,iCAA0C,EAAA;EAE5C;;IAEE,+BAAsC,EAAA;EAfxC;IAAgC,wBAA4B,EAAA;EAC5D;;IAEE,4BAAoC,EAAA;EAEtC;;IAEE,8BAAwC,EAAA;EAE1C;;IAEE,+BAA0C,EAAA;EAE5C;;IAEE,6BAAsC,EAAA;EAQxC;IAAwB,2BAA2B,EAAA;EACnD;;IAEE,+BAA+B,EAAA;EAEjC;;IAEE,iCAAiC,EAAA;EAEnC;;IAEE,kCAAkC,EAAA;EAEpC;;IAEE,gCAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAflC;IAAwB,0BAA2B,EAAA;EACnD;;IAEE,8BAA+B,EAAA;EAEjC;;IAEE,gCAAiC,EAAA;EAEnC;;IAEE,iCAAkC,EAAA;EAEpC;;IAEE,+BAAgC,EAAA;EAflC;IAAwB,wBAA2B,EAAA;EACnD;;IAEE,4BAA+B,EAAA;EAEjC;;IAEE,8BAAiC,EAAA;EAEnC;;IAEE,+BAAkC,EAAA;EAEpC;;IAEE,6BAAgC,EAAA;EAMtC;IAAmB,uBAAuB,EAAA;EAC1C;;IAEE,2BAA2B,EAAA;EAE7B;;IAEE,6BAA6B,EAAA;EAE/B;;IAEE,8BAA8B,EAAA;EAEhC;;IAEE,4BAA4B,EAAA,EAC7B;;AClEL;EAEI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,UAAU;EAEV,oBAAoB;EACpB,WAAW;EAEX,kCAAkC,EAAA;;ACVtC;EAAkB,4GAA8C,EAAA;;AAIhE;EAAiB,8BAA8B,EAAA;;AAC/C;EAAiB,8BAA8B,EAAA;;AAC/C;EAAiB,8BAA8B,EAAA;;AAC/C;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB,EAAA;;ADejB;EAAwB,2BAA2B,EAAA;;AACnD;EAAwB,4BAA4B,EAAA;;AACpD;EAAwB,6BAA6B,EAAA;;A3DqCrD;E2DvCA;IAAwB,2BAA2B,EAAA;EACnD;IAAwB,4BAA4B,EAAA;EACpD;IAAwB,6BAA6B,EAAA,EAAI;;A3DqCzD;E2DvCA;IAAwB,2BAA2B,EAAA;EACnD;IAAwB,4BAA4B,EAAA;EACpD;IAAwB,6BAA6B,EAAA,EAAI;;A3DqCzD;E2DvCA;IAAwB,2BAA2B,EAAA;EACnD;IAAwB,4BAA4B,EAAA;EACpD;IAAwB,6BAA6B,EAAA,EAAI;;A3DqCzD;E2DvCA;IAAwB,2BAA2B,EAAA;EACnD;IAAwB,4BAA4B,EAAA;EACpD;IAAwB,6BAA6B,EAAA,EAAI;;AAM7D;EAAmB,oCAAoC,EAAA;;AACvD;EAAmB,oCAAoC,EAAA;;AACvD;EAAmB,qCAAqC,EAAA;;AAIxD;EAAuB,2BAA0C,EAAA;;AACjE;EAAuB,+BAA4C,EAAA;;AACnE;EAAuB,2BAA2C,EAAA;;AAClE;EAAuB,2BAAyC,EAAA;;AAChE;EAAuB,8BAA2C,EAAA;;AAClE;EAAuB,6BAA6B,EAAA;;AAIpD;EAAc,sBAAwB,EAAA;;AEvCpC;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AANhF;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AANhF;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AANhF;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AANhF;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AANhF;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AANhF;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AANhF;EACE,yBAAwB,EAAA;;AtEU1B;EsELM,yBAA0E,EAAA;;AFuClF;EAAa,yBAA6B,EAAA;;AAC1C;EAAc,yBAA6B,EAAA;;AAE3C;EAAiB,oCAAkC,EAAA;;AACnD;EAAiB,0CAAkC,EAAA;;AAInD;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS,EAAA;;AHuDX;EAAwB,gCAAgC,EAAA;;AAExD;EACE,iCAAiC;EACjC,oCAAoC,EAAA;;AAKtC;EAAc,yBAAyB,EAAA;;AIjEvC;EACE,8BAA8B,EAAA;;AAGhC;EACE,6BAA6B,EAAA;;ACA7B;E5EOF;;;I4EDM,4BAA4B;IAE5B,2BAA2B,EAAA;EAG7B;IAEI,0BAA0B,EAAA;EAS9B;IACE,6BAA6B,EAAA;E5E8LnC;I4E/KM,gCAAgC,EAAA;EAElC;;IAEE,yB3EzCY;I2E0CZ,wBAAwB,EAAA;EAQ1B;IACE,2BAA2B,EAAA;EAG7B;;IAEE,wBAAwB,EAAA;EAG1B;;;IAGE,UAAU;IACV,SAAS,EAAA;EAGX;;IAEE,uBAAuB,EAAA;EAQzB;IACE,Q3EyhCgC,EAAA;ELpmCtC;IgF8EM,2BAA2C,EAAA;EAE7C;IACE,2BAA2C,EAAA;E7C9EjD;I6CmFM,aAAa,EAAA;ExC/FnB;IwCkGM,sB3EtFS,EAAA;Eabf;I8DuGM,oCAAoC,EAAA;IADtC;;MAKI,iCAAmC,EAAA;E9DnE3C;;I8D0EQ,oCAAsC,EAAA;E9DW9C;I8DNM,cAAc,EAAA;I7DtHlB;;;;M6D4HM,qB3EvHU,EAAA;EaqGlB;I8DuBM,cAAc;IACd,qB3E7HY,EAAA,E2E8Hb;;ACxHL;EACE,WAfa;EAgBb,4BAA4B;EAC5B,wBAAgB;KAAhB,qBAAgB;UAAhB,gBAAgB;EAChB,6BAA6B;EAC7B,SAAS;EACT,eAAe;EACf,aAAa;EACb,kBAAkB;EAClB,UAAU;EACV,8CAA+B;UAA/B,sCAA+B,EAAA;;AAE/B;IAZF;MAcM,cA1BW,EAAA;MAYjB;QAgBQ,qBAAqB,EAAA,EACtB;;AAjBP;IAuBI,0BAnCa,EAAA;;AAuCjB;EAGM,aAAa,EAAA;;AAKnB;;EAEE,SAAS;EACT,aAAa,EAAA;;AAHf;;IAMI,YAAY;IACZ,WAAW,EAAA;;AAGb;IAVF;;MAWI,aAAa,EAAA;MAXjB;;QAcM,YAAY;QACZ,WAAW,EAAA,EACZ;;AAGH;IAnBF;;MAoBI,aAAa,EAAA;MApBjB;;QAuBM,YAAY;QACZ,WAAW,EAAA,EACZ;;AAIL;EACE,QAAQ,EAAA;;AAGV;EACE,OAAO,EAAA;;AAGT;;EAEE,kBAAkB;EAClB,QAAQ;EACR,2BAA2B,EAAA;;AAJ7B;;IAOI,aAAa;IACb,WAAW,EAAA;;AAGb;IAXF;;MAaM,YAAY;MACZ,WAAW,EAAA,EACZ;;AAGH;IAlBF;;MAoBM,YAAY;MACZ,WAAW,EAAA,EACZ;;AAtBL;;IA0BI,gBAAgB;IAChB,WAAW;IACX,oBAAoB,EAAA;;AAIxB;EACE,OAAO,EAAA;;AAGT;EACE,QAAQ,EAAA;;AAIV;EAtHI,yBAAoB;EAApB,sBAAoB;EAApB,qBAAoB;EAApB,oBAAoB;EAApB,iBAAoB;EAwHtB,6CA7H+B;EA8H/B,kBAAkB,EAAA;;AAHpB;IAMI,gBApIW;IAqIX,SAAS;IACT,YAAY;IACZ,OAAO;IACP,eAAe;IACf,QAAQ;IACR,MAAM;IACN,WAAW;IACX,UAAU,EAAA;;AAdd;MAiBM,QAAQ;MACR,2BAA2B,EAAA;;AAKjC;EACE,kBAAkB;EAClB,cAAc;EACd,MAAM,EAAA;;AAHR;IAMI,gBA3JW,EAAA;;AAqJf;IAUI,8BAA8B,EAAA;;AAVlC;IAgBM,iBAAiB,EAAA;;AAKvB;EACE,kBAAkB,EAAA;;AADpB;IAKI,qBAAqB;IACrB,yBAAyB,EAAA;;AAEzB;MARJ;QASM,wBAAwB,EAAA,EAE3B;;AAXH;IAaI,cAAc,EAAA;;AAIlB;EACE,cAAc;EACd,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,kBAAkB,EAAA;;AAGpB;EACE,OAAO;EACP,kBAAkB;EAClB,MAAM;EACN,WAAW,EAAA;;AAJb;IAOI,kBAAkB,EAAA;;AAPtB;IAWI,WAAW;IACX,sBAAmB;OAAnB,mBAAmB,EAAA;;AAZvB;IAgBI,8BAjNmC;IAkNnC,YAAY;IACZ,WAtNW;IAuNX,OAAO;IACP,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB,EAAA;;AAEnB;MAzBJ;QA0BM,YAAY;QACZ,eAAe;QACf,iBAAiB,EAAA,EAGpB;;AAGH;EACE,YAAY;EACZ,OAAO;EACP,cAAc;EACd,kBAAkB;EAClB,QAAQ;EACR,UAAU;EACV,UAAU,EAAA;;AAPZ;IAUI,SAAS;IACT,UAAU;IACV,kBAAkB,EAAA;;AAZtB;IAgBI,wBAAgB;OAAhB,qBAAgB;YAAhB,gBAAgB;IAChB,6BAA6B;IAC7B,sBAxPW;IAyPX,kBAAkB;IAClB,6BArPyC;IAsPzC,eAAe;IACf,qBAAqB;IACrB,aAAa;IACb,aAAa;IACb,YAAY;IACZ,4BAA4B,EAAA;;AAE5B;MA5BJ;QA6BM,aAAa;QACb,YAAY,EAAA,EA6Bf;;AA1BC;MAjCJ;QAkCM,cAAc,EAAA,EAyBjB;;AA3DH;MAsCM,qBAAqB;MACrB,mBA3QW;MA4QX,yBA5QW,EAAA;;AAoOjB;MA4CM,qBAAqB;MACrB,sBAnRS;MAoRT,gBApRS,EAAA;;AAuRX;MAjDJ;QAmDQ,mBAvRS;QAwRT,yBAxRS,EAAA;MAoOjB;QAwDQ,mBA5RS,EAAA,EA6RV;;AAKP;EACE,kBAAkB,EAAA;;AADpB;IAII,mBAAmB,EAAA;;AAJvB;IAQI,mBAAmB,EAAA;;AARvB;IAYI,cAAc,EAAA;;AAZlB;IAgBI,qBAAqB;IACrB,mBAAmB;IACnB,YAAY,EAAA;;AAEZ;MApBJ;QAqBM,WAAW,EAAA,EAwBd;;AA7CH;MAyBM,YAAY;MACZ,WAAW;MACX,OAAO;MACP,UAAU;MACV,kBAAkB;MAClB,MAAM,EAAA;;AA9BZ;QAiCQ,cAAc;QACd,eAAe;QACf,UAAU,EAAA;;AAnClB;UAsCU,cAAc;UACd,eAAe,EAAA;;AAvCzB;IAiDI,aAAa,EAAA;;AAEb;MAnDJ;QAoDM,aAAa,EAAA,EAEhB;;AAGH;EACE,gBAAgB;EAChB,cAAc,EAAA;;AAEd;IAJF;MAKI,cAAc,EAAA,EASjB;;AAdD;IASI,eAAe;IACf,kBAAkB;IAClB,mBAAmB,EAAA;;AAKvB;EACE,qBAAqB;EACrB,6BAA6B;EAC7B,+BAA+B;EAC/B,YAAY;EACZ,uBAAuB;EACvB,UAAU,EAAA;;AAEV;IARF;MASI,6BAA6B;MAC7B,WAAW,EAAA,EAuCd;;AAjDD;IAcI,gBAAgB,EAAA;;AAdpB;IAkBI,cAAc;IACd,kBAAkB,EAAA;;AAnBtB;IAuBI,sBAAsB;IACtB,WAAW;IACX,cAAc,EAAA;;AAzBlB;IA8BI,aAAa;IACb,yBA1Ya,EAAA;;AA4Yb;MAjCJ;QAkCM,yBA7YW,EAAA,EA+Yd;;AAED;IAtCF;MAwCM,aAAa;MACb,yBApZW,EAAA,EAyZZ;;AAHC;IA3CN;MA4CQ,yBAvZS,EAAA,EAyZZ;;AAKL;EACE,sBAAsB;EACtB,YAAY;EACZ,cAAc;EACd,OAAO;EACP,gBAAgB;EAChB,WAAW;EACX,kBAAkB;EAClB,QAAQ;EACR,8BApa2C;EAqa3C,2BAA2B;EAC3B,mBAAmB;EACnB,WAAW,EAAA;;AAEX;IAdF;MAeI,eAAe;MACf,iBAAiB,EAAA,EAEpB;;AAED;EACE,8BAlbqC;EAmbrC,WAtba;EAubb,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,UAAU,EAAA;;AAEV;IAVF;MAWI,eAAe;MACf,iBAAiB,EAAA,EAEpB\",\"file\":\"application.scss\",\"sourcesContent\":[\"$body-bg: #f8f9fa;\\n\\n$theme-colors: (\\n \\\"primary\\\": #205492\\n);\\n\\nmain > .container-fluid {\\n padding-top: 5rem;\\n}\\n\\nmain > .container {\\n padding-top: 5rem;\\n}\\n\\nbody {\\npadding-top: 6rem;\\n}\\n\\n.app-content {\\n padding-top: 5rem;\\n}\\n\\n.saved-searches-dropdown {\\n padding: 1em;\\n}\\n\\n.modal-header-no-border {\\n border-bottom: 0 none !important;\\n}\\n\\nbutton.btn-delete-saved-list-item {\\n color: lightgrey;\\n}\\n\\nbutton.btn-delete-saved-list-item:hover {\\n color: darkred;\\n}\\n\\n.saved-list-item-option {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n\\n.add-collection-btn {\\n line-height: 1.35 !important;\\n vertical-align: top !important;\\n padding: 0.0rem 0.25rem !important;\\n}\\n\\n.image-gallery-description {\\n left: 0;\\n top: 0;\\n bottom: auto!important;\\n margin: 0 auto;\\n width: 300px;\\n}\\n\\n.virtual-checkbox {\\n margin-left: 2.5em !important;\\n}\\n\\n.audit-table-cell {\\n border-bottom: 1px solid lightgray;\\n border-collapse: collapse;\\n padding: 10px;\\n}\\n\\n.active-days-table {\\n padding: 10px;\\n border: 1px solid lightgray;\\n border-collapse: collapse;\\n}\\n\\n.audit-trail div {\\n float: left;\\n clear: none;\\n}\\n\\n.audit-trail-section {\\n padding: 2em;\\n}\\n\\n.react-pdf__Page__canvas {\\n margin: 0 auto;\\n width: 100% !important;\\n height: 100% !important;\\n}\\n\\n.export-link {\\n text-align: right;\\n}\\n\\n@import \\\"~bootstrap/scss/bootstrap\\\";\\n@import \\\"~react-image-gallery/styles/scss/image-gallery.scss\\\";\\n\\n\\n\",\"/*!\\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\\n * Copyright 2011-2020 The Bootstrap Authors\\n * Copyright 2011-2020 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */\\n\\n@import \\\"functions\\\";\\n@import \\\"variables\\\";\\n@import \\\"mixins\\\";\\n@import \\\"root\\\";\\n@import \\\"reboot\\\";\\n@import \\\"type\\\";\\n@import \\\"images\\\";\\n@import \\\"code\\\";\\n@import \\\"grid\\\";\\n@import \\\"tables\\\";\\n@import \\\"forms\\\";\\n@import \\\"buttons\\\";\\n@import \\\"transitions\\\";\\n@import \\\"dropdown\\\";\\n@import \\\"button-group\\\";\\n@import \\\"input-group\\\";\\n@import \\\"custom-forms\\\";\\n@import \\\"nav\\\";\\n@import \\\"navbar\\\";\\n@import \\\"card\\\";\\n@import \\\"breadcrumb\\\";\\n@import \\\"pagination\\\";\\n@import \\\"badge\\\";\\n@import \\\"jumbotron\\\";\\n@import \\\"alert\\\";\\n@import \\\"progress\\\";\\n@import \\\"media\\\";\\n@import \\\"list-group\\\";\\n@import \\\"close\\\";\\n@import \\\"toasts\\\";\\n@import \\\"modal\\\";\\n@import \\\"tooltip\\\";\\n@import \\\"popover\\\";\\n@import \\\"carousel\\\";\\n@import \\\"spinners\\\";\\n@import \\\"utilities\\\";\\n@import \\\"print\\\";\\n\",\"main > .container-fluid, main > .container-sm, main > .container-md, main > .container-lg, main > .container-xl {\\n padding-top: 5rem; }\\n\\nmain > .container {\\n padding-top: 5rem; }\\n\\nbody {\\n padding-top: 6rem; }\\n\\n.app-content {\\n padding-top: 5rem; }\\n\\n.saved-searches-dropdown {\\n padding: 1em; }\\n\\n.modal-header-no-border {\\n border-bottom: 0 none !important; }\\n\\nbutton.btn-delete-saved-list-item {\\n color: lightgrey; }\\n\\nbutton.btn-delete-saved-list-item:hover {\\n color: darkred; }\\n\\n.saved-list-item-option {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n\\n.add-collection-btn {\\n line-height: 1.35 !important;\\n vertical-align: top !important;\\n padding: 0.0rem 0.25rem !important; }\\n\\n.image-gallery-description {\\n left: 0;\\n top: 0;\\n bottom: auto !important;\\n margin: 0 auto;\\n width: 300px; }\\n\\n.virtual-checkbox {\\n margin-left: 2.5em !important; }\\n\\n.audit-table-cell {\\n border-bottom: 1px solid lightgray;\\n border-collapse: collapse;\\n padding: 10px; }\\n\\n.active-days-table {\\n padding: 10px;\\n border: 1px solid lightgray;\\n border-collapse: collapse; }\\n\\n.audit-trail div {\\n float: left;\\n clear: none; }\\n\\n.audit-trail-section {\\n padding: 2em; }\\n\\n.react-pdf__Page__canvas {\\n margin: 0 auto;\\n width: 100% !important;\\n height: 100% !important; }\\n\\n.export-link {\\n text-align: right; }\\n\\n/*!\\n * Bootstrap v4.5.2 (https://getbootstrap.com/)\\n * Copyright 2011-2020 The Bootstrap Authors\\n * Copyright 2011-2020 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */\\n:root {\\n --blue: #007bff;\\n --indigo: #6610f2;\\n --purple: #6f42c1;\\n --pink: #e83e8c;\\n --red: #dc3545;\\n --orange: #fd7e14;\\n --yellow: #ffc107;\\n --green: #28a745;\\n --teal: #20c997;\\n --cyan: #17a2b8;\\n --white: #fff;\\n --gray: #6c757d;\\n --gray-dark: #343a40;\\n --primary: #205492;\\n --secondary: #6c757d;\\n --success: #28a745;\\n --info: #17a2b8;\\n --warning: #ffc107;\\n --danger: #dc3545;\\n --light: #f8f9fa;\\n --dark: #343a40;\\n --breakpoint-xs: 0;\\n --breakpoint-sm: 576px;\\n --breakpoint-md: 768px;\\n --breakpoint-lg: 992px;\\n --breakpoint-xl: 1200px;\\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; }\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box; }\\n\\nhtml {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\\n\\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\\n display: block; }\\n\\nbody {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #212529;\\n text-align: left;\\n background-color: #f8f9fa; }\\n\\n[tabindex=\\\"-1\\\"]:focus:not(:focus-visible) {\\n outline: 0 !important; }\\n\\nhr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible; }\\n\\nh1, h2, h3, h4, h5, h6 {\\n margin-top: 0;\\n margin-bottom: 0.5rem; }\\n\\np {\\n margin-top: 0;\\n margin-bottom: 1rem; }\\n\\nabbr[title],\\nabbr[data-original-title] {\\n text-decoration: underline;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n text-decoration-skip-ink: none; }\\n\\naddress {\\n margin-bottom: 1rem;\\n font-style: normal;\\n line-height: inherit; }\\n\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 1rem; }\\n\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0; }\\n\\ndt {\\n font-weight: 700; }\\n\\ndd {\\n margin-bottom: .5rem;\\n margin-left: 0; }\\n\\nblockquote {\\n margin: 0 0 1rem; }\\n\\nb,\\nstrong {\\n font-weight: bolder; }\\n\\nsmall {\\n font-size: 80%; }\\n\\nsub,\\nsup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline; }\\n\\nsub {\\n bottom: -.25em; }\\n\\nsup {\\n top: -.5em; }\\n\\na {\\n color: #205492;\\n text-decoration: none;\\n background-color: transparent; }\\n a:hover {\\n color: #123053;\\n text-decoration: underline; }\\n\\na:not([href]):not([class]) {\\n color: inherit;\\n text-decoration: none; }\\n a:not([href]):not([class]):hover {\\n color: inherit;\\n text-decoration: none; }\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace;\\n font-size: 1em; }\\n\\npre {\\n margin-top: 0;\\n margin-bottom: 1rem;\\n overflow: auto;\\n -ms-overflow-style: scrollbar; }\\n\\nfigure {\\n margin: 0 0 1rem; }\\n\\nimg {\\n vertical-align: middle;\\n border-style: none; }\\n\\nsvg {\\n overflow: hidden;\\n vertical-align: middle; }\\n\\ntable {\\n border-collapse: collapse; }\\n\\ncaption {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom; }\\n\\nth {\\n text-align: inherit; }\\n\\nlabel {\\n display: inline-block;\\n margin-bottom: 0.5rem; }\\n\\nbutton {\\n border-radius: 0; }\\n\\nbutton:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color; }\\n\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit; }\\n\\nbutton,\\ninput {\\n overflow: visible; }\\n\\nbutton,\\nselect {\\n text-transform: none; }\\n\\n[role=\\\"button\\\"] {\\n cursor: pointer; }\\n\\nselect {\\n word-wrap: normal; }\\n\\nbutton,\\n[type=\\\"button\\\"],\\n[type=\\\"reset\\\"],\\n[type=\\\"submit\\\"] {\\n -webkit-appearance: button; }\\n\\nbutton:not(:disabled),\\n[type=\\\"button\\\"]:not(:disabled),\\n[type=\\\"reset\\\"]:not(:disabled),\\n[type=\\\"submit\\\"]:not(:disabled) {\\n cursor: pointer; }\\n\\nbutton::-moz-focus-inner,\\n[type=\\\"button\\\"]::-moz-focus-inner,\\n[type=\\\"reset\\\"]::-moz-focus-inner,\\n[type=\\\"submit\\\"]::-moz-focus-inner {\\n padding: 0;\\n border-style: none; }\\n\\ninput[type=\\\"radio\\\"],\\ninput[type=\\\"checkbox\\\"] {\\n box-sizing: border-box;\\n padding: 0; }\\n\\ntextarea {\\n overflow: auto;\\n resize: vertical; }\\n\\nfieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0; }\\n\\nlegend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: .5rem;\\n font-size: 1.5rem;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal; }\\n\\nprogress {\\n vertical-align: baseline; }\\n\\n[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n height: auto; }\\n\\n[type=\\\"search\\\"] {\\n outline-offset: -2px;\\n -webkit-appearance: none; }\\n\\n[type=\\\"search\\\"]::-webkit-search-decoration {\\n -webkit-appearance: none; }\\n\\n::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button; }\\n\\noutput {\\n display: inline-block; }\\n\\nsummary {\\n display: list-item;\\n cursor: pointer; }\\n\\ntemplate {\\n display: none; }\\n\\n[hidden] {\\n display: none !important; }\\n\\nh1, h2, h3, h4, h5, h6,\\n.h1, .h2, .h3, .h4, .h5, .h6 {\\n margin-bottom: 0.5rem;\\n font-weight: 500;\\n line-height: 1.2; }\\n\\nh1, .h1 {\\n font-size: 2.5rem; }\\n\\nh2, .h2 {\\n font-size: 2rem; }\\n\\nh3, .h3 {\\n font-size: 1.75rem; }\\n\\nh4, .h4 {\\n font-size: 1.5rem; }\\n\\nh5, .h5 {\\n font-size: 1.25rem; }\\n\\nh6, .h6 {\\n font-size: 1rem; }\\n\\n.lead {\\n font-size: 1.25rem;\\n font-weight: 300; }\\n\\n.display-1 {\\n font-size: 6rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\n.display-2 {\\n font-size: 5.5rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\n.display-3 {\\n font-size: 4.5rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\n.display-4 {\\n font-size: 3.5rem;\\n font-weight: 300;\\n line-height: 1.2; }\\n\\nhr {\\n margin-top: 1rem;\\n margin-bottom: 1rem;\\n border: 0;\\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\\n\\nsmall,\\n.small {\\n font-size: 80%;\\n font-weight: 400; }\\n\\nmark,\\n.mark {\\n padding: 0.2em;\\n background-color: #fcf8e3; }\\n\\n.list-unstyled {\\n padding-left: 0;\\n list-style: none; }\\n\\n.list-inline {\\n padding-left: 0;\\n list-style: none; }\\n\\n.list-inline-item {\\n display: inline-block; }\\n .list-inline-item:not(:last-child) {\\n margin-right: 0.5rem; }\\n\\n.initialism {\\n font-size: 90%;\\n text-transform: uppercase; }\\n\\n.blockquote {\\n margin-bottom: 1rem;\\n font-size: 1.25rem; }\\n\\n.blockquote-footer {\\n display: block;\\n font-size: 80%;\\n color: #6c757d; }\\n .blockquote-footer::before {\\n content: \\\"\\\\2014\\\\00A0\\\"; }\\n\\n.img-fluid {\\n max-width: 100%;\\n height: auto; }\\n\\n.img-thumbnail {\\n padding: 0.25rem;\\n background-color: #f8f9fa;\\n border: 1px solid #dee2e6;\\n border-radius: 0.25rem;\\n max-width: 100%;\\n height: auto; }\\n\\n.figure {\\n display: inline-block; }\\n\\n.figure-img {\\n margin-bottom: 0.5rem;\\n line-height: 1; }\\n\\n.figure-caption {\\n font-size: 90%;\\n color: #6c757d; }\\n\\ncode {\\n font-size: 87.5%;\\n color: #e83e8c;\\n word-wrap: break-word; }\\n a > code {\\n color: inherit; }\\n\\nkbd {\\n padding: 0.2rem 0.4rem;\\n font-size: 87.5%;\\n color: #fff;\\n background-color: #212529;\\n border-radius: 0.2rem; }\\n kbd kbd {\\n padding: 0;\\n font-size: 100%;\\n font-weight: 700; }\\n\\npre {\\n display: block;\\n font-size: 87.5%;\\n color: #212529; }\\n pre code {\\n font-size: inherit;\\n color: inherit;\\n word-break: normal; }\\n\\n.pre-scrollable {\\n max-height: 340px;\\n overflow-y: scroll; }\\n\\n.container,\\n.container-fluid,\\n.container-sm,\\n.container-md,\\n.container-lg,\\n.container-xl {\\n width: 100%;\\n padding-right: 15px;\\n padding-left: 15px;\\n margin-right: auto;\\n margin-left: auto; }\\n\\n@media (min-width: 576px) {\\n .container, .container-sm {\\n max-width: 540px; } }\\n\\n@media (min-width: 768px) {\\n .container, .container-sm, .container-md {\\n max-width: 720px; } }\\n\\n@media (min-width: 992px) {\\n .container, .container-sm, .container-md, .container-lg {\\n max-width: 960px; } }\\n\\n@media (min-width: 1200px) {\\n .container, .container-sm, .container-md, .container-lg, .container-xl {\\n max-width: 1140px; } }\\n\\n.row {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -15px;\\n margin-left: -15px; }\\n\\n.no-gutters {\\n margin-right: 0;\\n margin-left: 0; }\\n .no-gutters > .col,\\n .no-gutters > [class*=\\\"col-\\\"] {\\n padding-right: 0;\\n padding-left: 0; }\\n\\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\\n.col-xl-auto {\\n position: relative;\\n width: 100%;\\n padding-right: 15px;\\n padding-left: 15px; }\\n\\n.col {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n\\n.row-cols-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n\\n.row-cols-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n\\n.row-cols-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n\\n.row-cols-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n\\n.row-cols-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n\\n.row-cols-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n\\n.col-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n\\n.col-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n\\n.col-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n\\n.col-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n\\n.col-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n\\n.col-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n\\n.col-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n\\n.col-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n\\n.col-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n\\n.col-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n\\n.col-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n\\n.col-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n\\n.col-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n\\n.order-first {\\n order: -1; }\\n\\n.order-last {\\n order: 13; }\\n\\n.order-0 {\\n order: 0; }\\n\\n.order-1 {\\n order: 1; }\\n\\n.order-2 {\\n order: 2; }\\n\\n.order-3 {\\n order: 3; }\\n\\n.order-4 {\\n order: 4; }\\n\\n.order-5 {\\n order: 5; }\\n\\n.order-6 {\\n order: 6; }\\n\\n.order-7 {\\n order: 7; }\\n\\n.order-8 {\\n order: 8; }\\n\\n.order-9 {\\n order: 9; }\\n\\n.order-10 {\\n order: 10; }\\n\\n.order-11 {\\n order: 11; }\\n\\n.order-12 {\\n order: 12; }\\n\\n.offset-1 {\\n margin-left: 8.33333%; }\\n\\n.offset-2 {\\n margin-left: 16.66667%; }\\n\\n.offset-3 {\\n margin-left: 25%; }\\n\\n.offset-4 {\\n margin-left: 33.33333%; }\\n\\n.offset-5 {\\n margin-left: 41.66667%; }\\n\\n.offset-6 {\\n margin-left: 50%; }\\n\\n.offset-7 {\\n margin-left: 58.33333%; }\\n\\n.offset-8 {\\n margin-left: 66.66667%; }\\n\\n.offset-9 {\\n margin-left: 75%; }\\n\\n.offset-10 {\\n margin-left: 83.33333%; }\\n\\n.offset-11 {\\n margin-left: 91.66667%; }\\n\\n@media (min-width: 576px) {\\n .col-sm {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-sm-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-sm-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-sm-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-sm-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-sm-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-sm-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-sm-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-sm-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-sm-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-sm-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-sm-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-sm-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-sm-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-sm-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-sm-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-sm-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-sm-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-sm-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-sm-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-sm-first {\\n order: -1; }\\n .order-sm-last {\\n order: 13; }\\n .order-sm-0 {\\n order: 0; }\\n .order-sm-1 {\\n order: 1; }\\n .order-sm-2 {\\n order: 2; }\\n .order-sm-3 {\\n order: 3; }\\n .order-sm-4 {\\n order: 4; }\\n .order-sm-5 {\\n order: 5; }\\n .order-sm-6 {\\n order: 6; }\\n .order-sm-7 {\\n order: 7; }\\n .order-sm-8 {\\n order: 8; }\\n .order-sm-9 {\\n order: 9; }\\n .order-sm-10 {\\n order: 10; }\\n .order-sm-11 {\\n order: 11; }\\n .order-sm-12 {\\n order: 12; }\\n .offset-sm-0 {\\n margin-left: 0; }\\n .offset-sm-1 {\\n margin-left: 8.33333%; }\\n .offset-sm-2 {\\n margin-left: 16.66667%; }\\n .offset-sm-3 {\\n margin-left: 25%; }\\n .offset-sm-4 {\\n margin-left: 33.33333%; }\\n .offset-sm-5 {\\n margin-left: 41.66667%; }\\n .offset-sm-6 {\\n margin-left: 50%; }\\n .offset-sm-7 {\\n margin-left: 58.33333%; }\\n .offset-sm-8 {\\n margin-left: 66.66667%; }\\n .offset-sm-9 {\\n margin-left: 75%; }\\n .offset-sm-10 {\\n margin-left: 83.33333%; }\\n .offset-sm-11 {\\n margin-left: 91.66667%; } }\\n\\n@media (min-width: 768px) {\\n .col-md {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-md-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-md-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-md-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-md-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-md-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-md-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-md-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-md-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-md-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-md-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-md-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-md-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-md-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-md-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-md-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-md-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-md-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-md-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-md-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-md-first {\\n order: -1; }\\n .order-md-last {\\n order: 13; }\\n .order-md-0 {\\n order: 0; }\\n .order-md-1 {\\n order: 1; }\\n .order-md-2 {\\n order: 2; }\\n .order-md-3 {\\n order: 3; }\\n .order-md-4 {\\n order: 4; }\\n .order-md-5 {\\n order: 5; }\\n .order-md-6 {\\n order: 6; }\\n .order-md-7 {\\n order: 7; }\\n .order-md-8 {\\n order: 8; }\\n .order-md-9 {\\n order: 9; }\\n .order-md-10 {\\n order: 10; }\\n .order-md-11 {\\n order: 11; }\\n .order-md-12 {\\n order: 12; }\\n .offset-md-0 {\\n margin-left: 0; }\\n .offset-md-1 {\\n margin-left: 8.33333%; }\\n .offset-md-2 {\\n margin-left: 16.66667%; }\\n .offset-md-3 {\\n margin-left: 25%; }\\n .offset-md-4 {\\n margin-left: 33.33333%; }\\n .offset-md-5 {\\n margin-left: 41.66667%; }\\n .offset-md-6 {\\n margin-left: 50%; }\\n .offset-md-7 {\\n margin-left: 58.33333%; }\\n .offset-md-8 {\\n margin-left: 66.66667%; }\\n .offset-md-9 {\\n margin-left: 75%; }\\n .offset-md-10 {\\n margin-left: 83.33333%; }\\n .offset-md-11 {\\n margin-left: 91.66667%; } }\\n\\n@media (min-width: 992px) {\\n .col-lg {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-lg-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-lg-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-lg-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-lg-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-lg-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-lg-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-lg-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-lg-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-lg-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-lg-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-lg-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-lg-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-lg-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-lg-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-lg-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-lg-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-lg-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-lg-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-lg-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-lg-first {\\n order: -1; }\\n .order-lg-last {\\n order: 13; }\\n .order-lg-0 {\\n order: 0; }\\n .order-lg-1 {\\n order: 1; }\\n .order-lg-2 {\\n order: 2; }\\n .order-lg-3 {\\n order: 3; }\\n .order-lg-4 {\\n order: 4; }\\n .order-lg-5 {\\n order: 5; }\\n .order-lg-6 {\\n order: 6; }\\n .order-lg-7 {\\n order: 7; }\\n .order-lg-8 {\\n order: 8; }\\n .order-lg-9 {\\n order: 9; }\\n .order-lg-10 {\\n order: 10; }\\n .order-lg-11 {\\n order: 11; }\\n .order-lg-12 {\\n order: 12; }\\n .offset-lg-0 {\\n margin-left: 0; }\\n .offset-lg-1 {\\n margin-left: 8.33333%; }\\n .offset-lg-2 {\\n margin-left: 16.66667%; }\\n .offset-lg-3 {\\n margin-left: 25%; }\\n .offset-lg-4 {\\n margin-left: 33.33333%; }\\n .offset-lg-5 {\\n margin-left: 41.66667%; }\\n .offset-lg-6 {\\n margin-left: 50%; }\\n .offset-lg-7 {\\n margin-left: 58.33333%; }\\n .offset-lg-8 {\\n margin-left: 66.66667%; }\\n .offset-lg-9 {\\n margin-left: 75%; }\\n .offset-lg-10 {\\n margin-left: 83.33333%; }\\n .offset-lg-11 {\\n margin-left: 91.66667%; } }\\n\\n@media (min-width: 1200px) {\\n .col-xl {\\n flex-basis: 0;\\n flex-grow: 1;\\n max-width: 100%; }\\n .row-cols-xl-1 > * {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .row-cols-xl-2 > * {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .row-cols-xl-3 > * {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .row-cols-xl-4 > * {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .row-cols-xl-5 > * {\\n flex: 0 0 20%;\\n max-width: 20%; }\\n .row-cols-xl-6 > * {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-xl-auto {\\n flex: 0 0 auto;\\n width: auto;\\n max-width: 100%; }\\n .col-xl-1 {\\n flex: 0 0 8.33333%;\\n max-width: 8.33333%; }\\n .col-xl-2 {\\n flex: 0 0 16.66667%;\\n max-width: 16.66667%; }\\n .col-xl-3 {\\n flex: 0 0 25%;\\n max-width: 25%; }\\n .col-xl-4 {\\n flex: 0 0 33.33333%;\\n max-width: 33.33333%; }\\n .col-xl-5 {\\n flex: 0 0 41.66667%;\\n max-width: 41.66667%; }\\n .col-xl-6 {\\n flex: 0 0 50%;\\n max-width: 50%; }\\n .col-xl-7 {\\n flex: 0 0 58.33333%;\\n max-width: 58.33333%; }\\n .col-xl-8 {\\n flex: 0 0 66.66667%;\\n max-width: 66.66667%; }\\n .col-xl-9 {\\n flex: 0 0 75%;\\n max-width: 75%; }\\n .col-xl-10 {\\n flex: 0 0 83.33333%;\\n max-width: 83.33333%; }\\n .col-xl-11 {\\n flex: 0 0 91.66667%;\\n max-width: 91.66667%; }\\n .col-xl-12 {\\n flex: 0 0 100%;\\n max-width: 100%; }\\n .order-xl-first {\\n order: -1; }\\n .order-xl-last {\\n order: 13; }\\n .order-xl-0 {\\n order: 0; }\\n .order-xl-1 {\\n order: 1; }\\n .order-xl-2 {\\n order: 2; }\\n .order-xl-3 {\\n order: 3; }\\n .order-xl-4 {\\n order: 4; }\\n .order-xl-5 {\\n order: 5; }\\n .order-xl-6 {\\n order: 6; }\\n .order-xl-7 {\\n order: 7; }\\n .order-xl-8 {\\n order: 8; }\\n .order-xl-9 {\\n order: 9; }\\n .order-xl-10 {\\n order: 10; }\\n .order-xl-11 {\\n order: 11; }\\n .order-xl-12 {\\n order: 12; }\\n .offset-xl-0 {\\n margin-left: 0; }\\n .offset-xl-1 {\\n margin-left: 8.33333%; }\\n .offset-xl-2 {\\n margin-left: 16.66667%; }\\n .offset-xl-3 {\\n margin-left: 25%; }\\n .offset-xl-4 {\\n margin-left: 33.33333%; }\\n .offset-xl-5 {\\n margin-left: 41.66667%; }\\n .offset-xl-6 {\\n margin-left: 50%; }\\n .offset-xl-7 {\\n margin-left: 58.33333%; }\\n .offset-xl-8 {\\n margin-left: 66.66667%; }\\n .offset-xl-9 {\\n margin-left: 75%; }\\n .offset-xl-10 {\\n margin-left: 83.33333%; }\\n .offset-xl-11 {\\n margin-left: 91.66667%; } }\\n\\n.table {\\n width: 100%;\\n margin-bottom: 1rem;\\n color: #212529; }\\n .table th,\\n .table td {\\n padding: 0.75rem;\\n vertical-align: top;\\n border-top: 1px solid #dee2e6; }\\n .table thead th {\\n vertical-align: bottom;\\n border-bottom: 2px solid #dee2e6; }\\n .table tbody + tbody {\\n border-top: 2px solid #dee2e6; }\\n\\n.table-sm th,\\n.table-sm td {\\n padding: 0.3rem; }\\n\\n.table-bordered {\\n border: 1px solid #dee2e6; }\\n .table-bordered th,\\n .table-bordered td {\\n border: 1px solid #dee2e6; }\\n .table-bordered thead th,\\n .table-bordered thead td {\\n border-bottom-width: 2px; }\\n\\n.table-borderless th,\\n.table-borderless td,\\n.table-borderless thead th,\\n.table-borderless tbody + tbody {\\n border: 0; }\\n\\n.table-striped tbody tr:nth-of-type(odd) {\\n background-color: rgba(0, 0, 0, 0.05); }\\n\\n.table-hover tbody tr:hover {\\n color: #212529;\\n background-color: rgba(0, 0, 0, 0.075); }\\n\\n.table-primary,\\n.table-primary > th,\\n.table-primary > td {\\n background-color: #c1cfe0; }\\n\\n.table-primary th,\\n.table-primary td,\\n.table-primary thead th,\\n.table-primary tbody + tbody {\\n border-color: #8ba6c6; }\\n\\n.table-hover .table-primary:hover {\\n background-color: #b0c2d8; }\\n .table-hover .table-primary:hover > td,\\n .table-hover .table-primary:hover > th {\\n background-color: #b0c2d8; }\\n\\n.table-secondary,\\n.table-secondary > th,\\n.table-secondary > td {\\n background-color: #d6d8db; }\\n\\n.table-secondary th,\\n.table-secondary td,\\n.table-secondary thead th,\\n.table-secondary tbody + tbody {\\n border-color: #b3b7bb; }\\n\\n.table-hover .table-secondary:hover {\\n background-color: #c8cbcf; }\\n .table-hover .table-secondary:hover > td,\\n .table-hover .table-secondary:hover > th {\\n background-color: #c8cbcf; }\\n\\n.table-success,\\n.table-success > th,\\n.table-success > td {\\n background-color: #c3e6cb; }\\n\\n.table-success th,\\n.table-success td,\\n.table-success thead th,\\n.table-success tbody + tbody {\\n border-color: #8fd19e; }\\n\\n.table-hover .table-success:hover {\\n background-color: #b1dfbb; }\\n .table-hover .table-success:hover > td,\\n .table-hover .table-success:hover > th {\\n background-color: #b1dfbb; }\\n\\n.table-info,\\n.table-info > th,\\n.table-info > td {\\n background-color: #bee5eb; }\\n\\n.table-info th,\\n.table-info td,\\n.table-info thead th,\\n.table-info tbody + tbody {\\n border-color: #86cfda; }\\n\\n.table-hover .table-info:hover {\\n background-color: #abdde5; }\\n .table-hover .table-info:hover > td,\\n .table-hover .table-info:hover > th {\\n background-color: #abdde5; }\\n\\n.table-warning,\\n.table-warning > th,\\n.table-warning > td {\\n background-color: #ffeeba; }\\n\\n.table-warning th,\\n.table-warning td,\\n.table-warning thead th,\\n.table-warning tbody + tbody {\\n border-color: #ffdf7e; }\\n\\n.table-hover .table-warning:hover {\\n background-color: #ffe8a1; }\\n .table-hover .table-warning:hover > td,\\n .table-hover .table-warning:hover > th {\\n background-color: #ffe8a1; }\\n\\n.table-danger,\\n.table-danger > th,\\n.table-danger > td {\\n background-color: #f5c6cb; }\\n\\n.table-danger th,\\n.table-danger td,\\n.table-danger thead th,\\n.table-danger tbody + tbody {\\n border-color: #ed969e; }\\n\\n.table-hover .table-danger:hover {\\n background-color: #f1b0b7; }\\n .table-hover .table-danger:hover > td,\\n .table-hover .table-danger:hover > th {\\n background-color: #f1b0b7; }\\n\\n.table-light,\\n.table-light > th,\\n.table-light > td {\\n background-color: #fdfdfe; }\\n\\n.table-light th,\\n.table-light td,\\n.table-light thead th,\\n.table-light tbody + tbody {\\n border-color: #fbfcfc; }\\n\\n.table-hover .table-light:hover {\\n background-color: #ececf6; }\\n .table-hover .table-light:hover > td,\\n .table-hover .table-light:hover > th {\\n background-color: #ececf6; }\\n\\n.table-dark,\\n.table-dark > th,\\n.table-dark > td {\\n background-color: #c6c8ca; }\\n\\n.table-dark th,\\n.table-dark td,\\n.table-dark thead th,\\n.table-dark tbody + tbody {\\n border-color: #95999c; }\\n\\n.table-hover .table-dark:hover {\\n background-color: #b9bbbe; }\\n .table-hover .table-dark:hover > td,\\n .table-hover .table-dark:hover > th {\\n background-color: #b9bbbe; }\\n\\n.table-active,\\n.table-active > th,\\n.table-active > td {\\n background-color: rgba(0, 0, 0, 0.075); }\\n\\n.table-hover .table-active:hover {\\n background-color: rgba(0, 0, 0, 0.075); }\\n .table-hover .table-active:hover > td,\\n .table-hover .table-active:hover > th {\\n background-color: rgba(0, 0, 0, 0.075); }\\n\\n.table .thead-dark th {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #454d55; }\\n\\n.table .thead-light th {\\n color: #495057;\\n background-color: #e9ecef;\\n border-color: #dee2e6; }\\n\\n.table-dark {\\n color: #fff;\\n background-color: #343a40; }\\n .table-dark th,\\n .table-dark td,\\n .table-dark thead th {\\n border-color: #454d55; }\\n .table-dark.table-bordered {\\n border: 0; }\\n .table-dark.table-striped tbody tr:nth-of-type(odd) {\\n background-color: rgba(255, 255, 255, 0.05); }\\n .table-dark.table-hover tbody tr:hover {\\n color: #fff;\\n background-color: rgba(255, 255, 255, 0.075); }\\n\\n@media (max-width: 575.98px) {\\n .table-responsive-sm {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-sm > .table-bordered {\\n border: 0; } }\\n\\n@media (max-width: 767.98px) {\\n .table-responsive-md {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-md > .table-bordered {\\n border: 0; } }\\n\\n@media (max-width: 991.98px) {\\n .table-responsive-lg {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-lg > .table-bordered {\\n border: 0; } }\\n\\n@media (max-width: 1199.98px) {\\n .table-responsive-xl {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive-xl > .table-bordered {\\n border: 0; } }\\n\\n.table-responsive {\\n display: block;\\n width: 100%;\\n overflow-x: auto;\\n -webkit-overflow-scrolling: touch; }\\n .table-responsive > .table-bordered {\\n border: 0; }\\n\\n.form-control {\\n display: block;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n @media (prefers-reduced-motion: reduce) {\\n .form-control {\\n transition: none; } }\\n .form-control::-ms-expand {\\n background-color: transparent;\\n border: 0; }\\n .form-control:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 #495057; }\\n .form-control:focus {\\n color: #495057;\\n background-color: #fff;\\n border-color: #5793da;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .form-control::placeholder {\\n color: #6c757d;\\n opacity: 1; }\\n .form-control:disabled, .form-control[readonly] {\\n background-color: #e9ecef;\\n opacity: 1; }\\n\\ninput[type=\\\"date\\\"].form-control,\\ninput[type=\\\"time\\\"].form-control,\\ninput[type=\\\"datetime-local\\\"].form-control,\\ninput[type=\\\"month\\\"].form-control {\\n appearance: none; }\\n\\nselect.form-control:focus::-ms-value {\\n color: #495057;\\n background-color: #fff; }\\n\\n.form-control-file,\\n.form-control-range {\\n display: block;\\n width: 100%; }\\n\\n.col-form-label {\\n padding-top: calc(0.375rem + 1px);\\n padding-bottom: calc(0.375rem + 1px);\\n margin-bottom: 0;\\n font-size: inherit;\\n line-height: 1.5; }\\n\\n.col-form-label-lg {\\n padding-top: calc(0.5rem + 1px);\\n padding-bottom: calc(0.5rem + 1px);\\n font-size: 1.25rem;\\n line-height: 1.5; }\\n\\n.col-form-label-sm {\\n padding-top: calc(0.25rem + 1px);\\n padding-bottom: calc(0.25rem + 1px);\\n font-size: 0.875rem;\\n line-height: 1.5; }\\n\\n.form-control-plaintext {\\n display: block;\\n width: 100%;\\n padding: 0.375rem 0;\\n margin-bottom: 0;\\n font-size: 1rem;\\n line-height: 1.5;\\n color: #212529;\\n background-color: transparent;\\n border: solid transparent;\\n border-width: 1px 0; }\\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\\n padding-right: 0;\\n padding-left: 0; }\\n\\n.form-control-sm {\\n height: calc(1.5em + 0.5rem + 2px);\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n border-radius: 0.2rem; }\\n\\n.form-control-lg {\\n height: calc(1.5em + 1rem + 2px);\\n padding: 0.5rem 1rem;\\n font-size: 1.25rem;\\n line-height: 1.5;\\n border-radius: 0.3rem; }\\n\\nselect.form-control[size], select.form-control[multiple] {\\n height: auto; }\\n\\ntextarea.form-control {\\n height: auto; }\\n\\n.form-group {\\n margin-bottom: 1rem; }\\n\\n.form-text {\\n display: block;\\n margin-top: 0.25rem; }\\n\\n.form-row {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -5px;\\n margin-left: -5px; }\\n .form-row > .col,\\n .form-row > [class*=\\\"col-\\\"] {\\n padding-right: 5px;\\n padding-left: 5px; }\\n\\n.form-check {\\n position: relative;\\n display: block;\\n padding-left: 1.25rem; }\\n\\n.form-check-input {\\n position: absolute;\\n margin-top: 0.3rem;\\n margin-left: -1.25rem; }\\n .form-check-input[disabled] ~ .form-check-label,\\n .form-check-input:disabled ~ .form-check-label {\\n color: #6c757d; }\\n\\n.form-check-label {\\n margin-bottom: 0; }\\n\\n.form-check-inline {\\n display: inline-flex;\\n align-items: center;\\n padding-left: 0;\\n margin-right: 0.75rem; }\\n .form-check-inline .form-check-input {\\n position: static;\\n margin-top: 0;\\n margin-right: 0.3125rem;\\n margin-left: 0; }\\n\\n.valid-feedback {\\n display: none;\\n width: 100%;\\n margin-top: 0.25rem;\\n font-size: 80%;\\n color: #28a745; }\\n\\n.valid-tooltip {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 5;\\n display: none;\\n max-width: 100%;\\n padding: 0.25rem 0.5rem;\\n margin-top: .1rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n color: #fff;\\n background-color: rgba(40, 167, 69, 0.9);\\n border-radius: 0.25rem; }\\n\\n.was-validated :valid ~ .valid-feedback,\\n.was-validated :valid ~ .valid-tooltip,\\n.is-valid ~ .valid-feedback,\\n.is-valid ~ .valid-tooltip {\\n display: block; }\\n\\n.was-validated .form-control:valid, .form-control.is-valid {\\n border-color: #28a745;\\n padding-right: calc(1.5em + 0.75rem);\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\");\\n background-repeat: no-repeat;\\n background-position: right calc(0.375em + 0.1875rem) center;\\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\\n border-color: #28a745;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\\n padding-right: calc(1.5em + 0.75rem);\\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\\n\\n.was-validated .custom-select:valid, .custom-select.is-valid {\\n border-color: #28a745;\\n padding-right: calc(0.75em + 2.3125rem);\\n background: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") no-repeat right 0.75rem center/8px 10px, url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\\\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\\n border-color: #28a745;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\\n color: #28a745; }\\n\\n.was-validated .form-check-input:valid ~ .valid-feedback,\\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\\n.form-check-input.is-valid ~ .valid-tooltip {\\n display: block; }\\n\\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\\n color: #28a745; }\\n .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\\n border-color: #28a745; }\\n\\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\\n border-color: #34ce57;\\n background-color: #34ce57; }\\n\\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: #28a745; }\\n\\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\\n border-color: #28a745; }\\n\\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\\n border-color: #28a745;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }\\n\\n.invalid-feedback {\\n display: none;\\n width: 100%;\\n margin-top: 0.25rem;\\n font-size: 80%;\\n color: #dc3545; }\\n\\n.invalid-tooltip {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 5;\\n display: none;\\n max-width: 100%;\\n padding: 0.25rem 0.5rem;\\n margin-top: .1rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n color: #fff;\\n background-color: rgba(220, 53, 69, 0.9);\\n border-radius: 0.25rem; }\\n\\n.was-validated :invalid ~ .invalid-feedback,\\n.was-validated :invalid ~ .invalid-tooltip,\\n.is-invalid ~ .invalid-feedback,\\n.is-invalid ~ .invalid-tooltip {\\n display: block; }\\n\\n.was-validated .form-control:invalid, .form-control.is-invalid {\\n border-color: #dc3545;\\n padding-right: calc(1.5em + 0.75rem);\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\\\");\\n background-repeat: no-repeat;\\n background-position: right calc(0.375em + 0.1875rem) center;\\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\\n border-color: #dc3545;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\\n padding-right: calc(1.5em + 0.75rem);\\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\\n\\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\\n border-color: #dc3545;\\n padding-right: calc(0.75em + 2.3125rem);\\n background: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") no-repeat right 0.75rem center/8px 10px, url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\\\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\\n .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\\n border-color: #dc3545;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\\n color: #dc3545; }\\n\\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\\n.form-check-input.is-invalid ~ .invalid-tooltip {\\n display: block; }\\n\\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\\n color: #dc3545; }\\n .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\\n border-color: #dc3545; }\\n\\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\\n border-color: #e4606d;\\n background-color: #e4606d; }\\n\\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: #dc3545; }\\n\\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\\n border-color: #dc3545; }\\n\\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\\n border-color: #dc3545;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }\\n\\n.form-inline {\\n display: flex;\\n flex-flow: row wrap;\\n align-items: center; }\\n .form-inline .form-check {\\n width: 100%; }\\n @media (min-width: 576px) {\\n .form-inline label {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin-bottom: 0; }\\n .form-inline .form-group {\\n display: flex;\\n flex: 0 0 auto;\\n flex-flow: row wrap;\\n align-items: center;\\n margin-bottom: 0; }\\n .form-inline .form-control {\\n display: inline-block;\\n width: auto;\\n vertical-align: middle; }\\n .form-inline .form-control-plaintext {\\n display: inline-block; }\\n .form-inline .input-group,\\n .form-inline .custom-select {\\n width: auto; }\\n .form-inline .form-check {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: auto;\\n padding-left: 0; }\\n .form-inline .form-check-input {\\n position: relative;\\n flex-shrink: 0;\\n margin-top: 0;\\n margin-right: 0.25rem;\\n margin-left: 0; }\\n .form-inline .custom-control {\\n align-items: center;\\n justify-content: center; }\\n .form-inline .custom-control-label {\\n margin-bottom: 0; } }\\n\\n.btn {\\n display: inline-block;\\n font-weight: 400;\\n color: #212529;\\n text-align: center;\\n vertical-align: middle;\\n user-select: none;\\n background-color: transparent;\\n border: 1px solid transparent;\\n padding: 0.375rem 0.75rem;\\n font-size: 1rem;\\n line-height: 1.5;\\n border-radius: 0.25rem;\\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n @media (prefers-reduced-motion: reduce) {\\n .btn {\\n transition: none; } }\\n .btn:hover {\\n color: #212529;\\n text-decoration: none; }\\n .btn:focus, .btn.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .btn.disabled, .btn:disabled {\\n opacity: 0.65; }\\n .btn:not(:disabled):not(.disabled) {\\n cursor: pointer; }\\n\\na.btn.disabled,\\nfieldset:disabled a.btn {\\n pointer-events: none; }\\n\\n.btn-primary {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n .btn-primary:hover {\\n color: #fff;\\n background-color: #194273;\\n border-color: #173c68; }\\n .btn-primary:focus, .btn-primary.focus {\\n color: #fff;\\n background-color: #194273;\\n border-color: #173c68;\\n box-shadow: 0 0 0 0.2rem rgba(65, 110, 162, 0.5); }\\n .btn-primary.disabled, .btn-primary:disabled {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\\n .show > .btn-primary.dropdown-toggle {\\n color: #fff;\\n background-color: #173c68;\\n border-color: #15365e; }\\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-primary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(65, 110, 162, 0.5); }\\n\\n.btn-secondary {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n .btn-secondary:hover {\\n color: #fff;\\n background-color: #5a6268;\\n border-color: #545b62; }\\n .btn-secondary:focus, .btn-secondary.focus {\\n color: #fff;\\n background-color: #5a6268;\\n border-color: #545b62;\\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); }\\n .btn-secondary.disabled, .btn-secondary:disabled {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\\n .show > .btn-secondary.dropdown-toggle {\\n color: #fff;\\n background-color: #545b62;\\n border-color: #4e555b; }\\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-secondary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); }\\n\\n.btn-success {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n .btn-success:hover {\\n color: #fff;\\n background-color: #218838;\\n border-color: #1e7e34; }\\n .btn-success:focus, .btn-success.focus {\\n color: #fff;\\n background-color: #218838;\\n border-color: #1e7e34;\\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); }\\n .btn-success.disabled, .btn-success:disabled {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\\n .show > .btn-success.dropdown-toggle {\\n color: #fff;\\n background-color: #1e7e34;\\n border-color: #1c7430; }\\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-success.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); }\\n\\n.btn-info {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n .btn-info:hover {\\n color: #fff;\\n background-color: #138496;\\n border-color: #117a8b; }\\n .btn-info:focus, .btn-info.focus {\\n color: #fff;\\n background-color: #138496;\\n border-color: #117a8b;\\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); }\\n .btn-info.disabled, .btn-info:disabled {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\\n .show > .btn-info.dropdown-toggle {\\n color: #fff;\\n background-color: #117a8b;\\n border-color: #10707f; }\\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-info.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); }\\n\\n.btn-warning {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n .btn-warning:hover {\\n color: #212529;\\n background-color: #e0a800;\\n border-color: #d39e00; }\\n .btn-warning:focus, .btn-warning.focus {\\n color: #212529;\\n background-color: #e0a800;\\n border-color: #d39e00;\\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); }\\n .btn-warning.disabled, .btn-warning:disabled {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\\n .show > .btn-warning.dropdown-toggle {\\n color: #212529;\\n background-color: #d39e00;\\n border-color: #c69500; }\\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-warning.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); }\\n\\n.btn-danger {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n .btn-danger:hover {\\n color: #fff;\\n background-color: #c82333;\\n border-color: #bd2130; }\\n .btn-danger:focus, .btn-danger.focus {\\n color: #fff;\\n background-color: #c82333;\\n border-color: #bd2130;\\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); }\\n .btn-danger.disabled, .btn-danger:disabled {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\\n .show > .btn-danger.dropdown-toggle {\\n color: #fff;\\n background-color: #bd2130;\\n border-color: #b21f2d; }\\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-danger.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); }\\n\\n.btn-light {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n .btn-light:hover {\\n color: #212529;\\n background-color: #e2e6ea;\\n border-color: #dae0e5; }\\n .btn-light:focus, .btn-light.focus {\\n color: #212529;\\n background-color: #e2e6ea;\\n border-color: #dae0e5;\\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\\n .btn-light.disabled, .btn-light:disabled {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\\n .show > .btn-light.dropdown-toggle {\\n color: #212529;\\n background-color: #dae0e5;\\n border-color: #d3d9df; }\\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-light.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); }\\n\\n.btn-dark {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n .btn-dark:hover {\\n color: #fff;\\n background-color: #23272b;\\n border-color: #1d2124; }\\n .btn-dark:focus, .btn-dark.focus {\\n color: #fff;\\n background-color: #23272b;\\n border-color: #1d2124;\\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\\n .btn-dark.disabled, .btn-dark:disabled {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\\n .show > .btn-dark.dropdown-toggle {\\n color: #fff;\\n background-color: #1d2124;\\n border-color: #171a1d; }\\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-dark.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); }\\n\\n.btn-outline-primary {\\n color: #205492;\\n border-color: #205492; }\\n .btn-outline-primary:hover {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n .btn-outline-primary:focus, .btn-outline-primary.focus {\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.5); }\\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\\n color: #205492;\\n background-color: transparent; }\\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-primary.dropdown-toggle {\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-primary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.5); }\\n\\n.btn-outline-secondary {\\n color: #6c757d;\\n border-color: #6c757d; }\\n .btn-outline-secondary:hover {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\\n color: #6c757d;\\n background-color: transparent; }\\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-secondary.dropdown-toggle {\\n color: #fff;\\n background-color: #6c757d;\\n border-color: #6c757d; }\\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-secondary.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n\\n.btn-outline-success {\\n color: #28a745;\\n border-color: #28a745; }\\n .btn-outline-success:hover {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n .btn-outline-success:focus, .btn-outline-success.focus {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n .btn-outline-success.disabled, .btn-outline-success:disabled {\\n color: #28a745;\\n background-color: transparent; }\\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-success.dropdown-toggle {\\n color: #fff;\\n background-color: #28a745;\\n border-color: #28a745; }\\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-success.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n\\n.btn-outline-info {\\n color: #17a2b8;\\n border-color: #17a2b8; }\\n .btn-outline-info:hover {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n .btn-outline-info:focus, .btn-outline-info.focus {\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n .btn-outline-info.disabled, .btn-outline-info:disabled {\\n color: #17a2b8;\\n background-color: transparent; }\\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-info.dropdown-toggle {\\n color: #fff;\\n background-color: #17a2b8;\\n border-color: #17a2b8; }\\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-info.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n\\n.btn-outline-warning {\\n color: #ffc107;\\n border-color: #ffc107; }\\n .btn-outline-warning:hover {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n .btn-outline-warning:focus, .btn-outline-warning.focus {\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\\n color: #ffc107;\\n background-color: transparent; }\\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-warning.dropdown-toggle {\\n color: #212529;\\n background-color: #ffc107;\\n border-color: #ffc107; }\\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-warning.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n\\n.btn-outline-danger {\\n color: #dc3545;\\n border-color: #dc3545; }\\n .btn-outline-danger:hover {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n .btn-outline-danger:focus, .btn-outline-danger.focus {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\\n color: #dc3545;\\n background-color: transparent; }\\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-danger.dropdown-toggle {\\n color: #fff;\\n background-color: #dc3545;\\n border-color: #dc3545; }\\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-danger.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n\\n.btn-outline-light {\\n color: #f8f9fa;\\n border-color: #f8f9fa; }\\n .btn-outline-light:hover {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n .btn-outline-light:focus, .btn-outline-light.focus {\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n .btn-outline-light.disabled, .btn-outline-light:disabled {\\n color: #f8f9fa;\\n background-color: transparent; }\\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-light.dropdown-toggle {\\n color: #212529;\\n background-color: #f8f9fa;\\n border-color: #f8f9fa; }\\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-light.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n\\n.btn-outline-dark {\\n color: #343a40;\\n border-color: #343a40; }\\n .btn-outline-dark:hover {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n .btn-outline-dark:focus, .btn-outline-dark.focus {\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\\n color: #343a40;\\n background-color: transparent; }\\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\\n .show > .btn-outline-dark.dropdown-toggle {\\n color: #fff;\\n background-color: #343a40;\\n border-color: #343a40; }\\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\\n .show > .btn-outline-dark.dropdown-toggle:focus {\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n\\n.btn-link {\\n font-weight: 400;\\n color: #205492;\\n text-decoration: none; }\\n .btn-link:hover {\\n color: #123053;\\n text-decoration: underline; }\\n .btn-link:focus, .btn-link.focus {\\n text-decoration: underline; }\\n .btn-link:disabled, .btn-link.disabled {\\n color: #6c757d;\\n pointer-events: none; }\\n\\n.btn-lg, .btn-group-lg > .btn {\\n padding: 0.5rem 1rem;\\n font-size: 1.25rem;\\n line-height: 1.5;\\n border-radius: 0.3rem; }\\n\\n.btn-sm, .btn-group-sm > .btn {\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n border-radius: 0.2rem; }\\n\\n.btn-block {\\n display: block;\\n width: 100%; }\\n .btn-block + .btn-block {\\n margin-top: 0.5rem; }\\n\\ninput[type=\\\"submit\\\"].btn-block,\\ninput[type=\\\"reset\\\"].btn-block,\\ninput[type=\\\"button\\\"].btn-block {\\n width: 100%; }\\n\\n.fade {\\n transition: opacity 0.15s linear; }\\n @media (prefers-reduced-motion: reduce) {\\n .fade {\\n transition: none; } }\\n .fade:not(.show) {\\n opacity: 0; }\\n\\n.collapse:not(.show) {\\n display: none; }\\n\\n.collapsing {\\n position: relative;\\n height: 0;\\n overflow: hidden;\\n transition: height 0.35s ease; }\\n @media (prefers-reduced-motion: reduce) {\\n .collapsing {\\n transition: none; } }\\n\\n.dropup,\\n.dropright,\\n.dropdown,\\n.dropleft {\\n position: relative; }\\n\\n.dropdown-toggle {\\n white-space: nowrap; }\\n .dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0.3em solid;\\n border-right: 0.3em solid transparent;\\n border-bottom: 0;\\n border-left: 0.3em solid transparent; }\\n .dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropdown-menu {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n z-index: 1000;\\n display: none;\\n float: left;\\n min-width: 10rem;\\n padding: 0.5rem 0;\\n margin: 0.125rem 0 0;\\n font-size: 1rem;\\n color: #212529;\\n text-align: left;\\n list-style: none;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.15);\\n border-radius: 0.25rem; }\\n\\n.dropdown-menu-left {\\n right: auto;\\n left: 0; }\\n\\n.dropdown-menu-right {\\n right: 0;\\n left: auto; }\\n\\n@media (min-width: 576px) {\\n .dropdown-menu-sm-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-sm-right {\\n right: 0;\\n left: auto; } }\\n\\n@media (min-width: 768px) {\\n .dropdown-menu-md-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-md-right {\\n right: 0;\\n left: auto; } }\\n\\n@media (min-width: 992px) {\\n .dropdown-menu-lg-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-lg-right {\\n right: 0;\\n left: auto; } }\\n\\n@media (min-width: 1200px) {\\n .dropdown-menu-xl-left {\\n right: auto;\\n left: 0; }\\n .dropdown-menu-xl-right {\\n right: 0;\\n left: auto; } }\\n\\n.dropup .dropdown-menu {\\n top: auto;\\n bottom: 100%;\\n margin-top: 0;\\n margin-bottom: 0.125rem; }\\n\\n.dropup .dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0;\\n border-right: 0.3em solid transparent;\\n border-bottom: 0.3em solid;\\n border-left: 0.3em solid transparent; }\\n\\n.dropup .dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropright .dropdown-menu {\\n top: 0;\\n right: auto;\\n left: 100%;\\n margin-top: 0;\\n margin-left: 0.125rem; }\\n\\n.dropright .dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0.3em solid transparent;\\n border-right: 0;\\n border-bottom: 0.3em solid transparent;\\n border-left: 0.3em solid; }\\n\\n.dropright .dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropright .dropdown-toggle::after {\\n vertical-align: 0; }\\n\\n.dropleft .dropdown-menu {\\n top: 0;\\n right: 100%;\\n left: auto;\\n margin-top: 0;\\n margin-right: 0.125rem; }\\n\\n.dropleft .dropdown-toggle::after {\\n display: inline-block;\\n margin-left: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\"; }\\n\\n.dropleft .dropdown-toggle::after {\\n display: none; }\\n\\n.dropleft .dropdown-toggle::before {\\n display: inline-block;\\n margin-right: 0.255em;\\n vertical-align: 0.255em;\\n content: \\\"\\\";\\n border-top: 0.3em solid transparent;\\n border-right: 0.3em solid;\\n border-bottom: 0.3em solid transparent; }\\n\\n.dropleft .dropdown-toggle:empty::after {\\n margin-left: 0; }\\n\\n.dropleft .dropdown-toggle::before {\\n vertical-align: 0; }\\n\\n.dropdown-menu[x-placement^=\\\"top\\\"], .dropdown-menu[x-placement^=\\\"right\\\"], .dropdown-menu[x-placement^=\\\"bottom\\\"], .dropdown-menu[x-placement^=\\\"left\\\"] {\\n right: auto;\\n bottom: auto; }\\n\\n.dropdown-divider {\\n height: 0;\\n margin: 0.5rem 0;\\n overflow: hidden;\\n border-top: 1px solid #e9ecef; }\\n\\n.dropdown-item {\\n display: block;\\n width: 100%;\\n padding: 0.25rem 1.5rem;\\n clear: both;\\n font-weight: 400;\\n color: #212529;\\n text-align: inherit;\\n white-space: nowrap;\\n background-color: transparent;\\n border: 0; }\\n .dropdown-item:hover, .dropdown-item:focus {\\n color: #16181b;\\n text-decoration: none;\\n background-color: #f8f9fa; }\\n .dropdown-item.active, .dropdown-item:active {\\n color: #fff;\\n text-decoration: none;\\n background-color: #205492; }\\n .dropdown-item.disabled, .dropdown-item:disabled {\\n color: #6c757d;\\n pointer-events: none;\\n background-color: transparent; }\\n\\n.dropdown-menu.show {\\n display: block; }\\n\\n.dropdown-header {\\n display: block;\\n padding: 0.5rem 1.5rem;\\n margin-bottom: 0;\\n font-size: 0.875rem;\\n color: #6c757d;\\n white-space: nowrap; }\\n\\n.dropdown-item-text {\\n display: block;\\n padding: 0.25rem 1.5rem;\\n color: #212529; }\\n\\n.btn-group,\\n.btn-group-vertical {\\n position: relative;\\n display: inline-flex;\\n vertical-align: middle; }\\n .btn-group > .btn,\\n .btn-group-vertical > .btn {\\n position: relative;\\n flex: 1 1 auto; }\\n .btn-group > .btn:hover,\\n .btn-group-vertical > .btn:hover {\\n z-index: 1; }\\n .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\\n .btn-group-vertical > .btn:focus,\\n .btn-group-vertical > .btn:active,\\n .btn-group-vertical > .btn.active {\\n z-index: 1; }\\n\\n.btn-toolbar {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: flex-start; }\\n .btn-toolbar .input-group {\\n width: auto; }\\n\\n.btn-group > .btn:not(:first-child),\\n.btn-group > .btn-group:not(:first-child) {\\n margin-left: -1px; }\\n\\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\\n.btn-group > .btn-group:not(:last-child) > .btn {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.btn-group > .btn:not(:first-child),\\n.btn-group > .btn-group:not(:first-child) > .btn {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.dropdown-toggle-split {\\n padding-right: 0.5625rem;\\n padding-left: 0.5625rem; }\\n .dropdown-toggle-split::after,\\n .dropup .dropdown-toggle-split::after,\\n .dropright .dropdown-toggle-split::after {\\n margin-left: 0; }\\n .dropleft .dropdown-toggle-split::before {\\n margin-right: 0; }\\n\\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\\n padding-right: 0.375rem;\\n padding-left: 0.375rem; }\\n\\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\\n padding-right: 0.75rem;\\n padding-left: 0.75rem; }\\n\\n.btn-group-vertical {\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center; }\\n .btn-group-vertical > .btn,\\n .btn-group-vertical > .btn-group {\\n width: 100%; }\\n .btn-group-vertical > .btn:not(:first-child),\\n .btn-group-vertical > .btn-group:not(:first-child) {\\n margin-top: -1px; }\\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0; }\\n .btn-group-vertical > .btn:not(:first-child),\\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.btn-group-toggle > .btn,\\n.btn-group-toggle > .btn-group > .btn {\\n margin-bottom: 0; }\\n .btn-group-toggle > .btn input[type=\\\"radio\\\"],\\n .btn-group-toggle > .btn input[type=\\\"checkbox\\\"],\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"radio\\\"],\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"checkbox\\\"] {\\n position: absolute;\\n clip: rect(0, 0, 0, 0);\\n pointer-events: none; }\\n\\n.input-group {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap;\\n align-items: stretch;\\n width: 100%; }\\n .input-group > .form-control,\\n .input-group > .form-control-plaintext,\\n .input-group > .custom-select,\\n .input-group > .custom-file {\\n position: relative;\\n flex: 1 1 auto;\\n width: 1%;\\n min-width: 0;\\n margin-bottom: 0; }\\n .input-group > .form-control + .form-control,\\n .input-group > .form-control + .custom-select,\\n .input-group > .form-control + .custom-file,\\n .input-group > .form-control-plaintext + .form-control,\\n .input-group > .form-control-plaintext + .custom-select,\\n .input-group > .form-control-plaintext + .custom-file,\\n .input-group > .custom-select + .form-control,\\n .input-group > .custom-select + .custom-select,\\n .input-group > .custom-select + .custom-file,\\n .input-group > .custom-file + .form-control,\\n .input-group > .custom-file + .custom-select,\\n .input-group > .custom-file + .custom-file {\\n margin-left: -1px; }\\n .input-group > .form-control:focus,\\n .input-group > .custom-select:focus,\\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\\n z-index: 3; }\\n .input-group > .custom-file .custom-file-input:focus {\\n z-index: 4; }\\n .input-group > .form-control:not(:last-child),\\n .input-group > .custom-select:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .input-group > .form-control:not(:first-child),\\n .input-group > .custom-select:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n .input-group > .custom-file {\\n display: flex;\\n align-items: center; }\\n .input-group > .custom-file:not(:last-child) .custom-file-label,\\n .input-group > .custom-file:not(:last-child) .custom-file-label::after {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .input-group > .custom-file:not(:first-child) .custom-file-label {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.input-group-prepend,\\n.input-group-append {\\n display: flex; }\\n .input-group-prepend .btn,\\n .input-group-append .btn {\\n position: relative;\\n z-index: 2; }\\n .input-group-prepend .btn:focus,\\n .input-group-append .btn:focus {\\n z-index: 3; }\\n .input-group-prepend .btn + .btn,\\n .input-group-prepend .btn + .input-group-text,\\n .input-group-prepend .input-group-text + .input-group-text,\\n .input-group-prepend .input-group-text + .btn,\\n .input-group-append .btn + .btn,\\n .input-group-append .btn + .input-group-text,\\n .input-group-append .input-group-text + .input-group-text,\\n .input-group-append .input-group-text + .btn {\\n margin-left: -1px; }\\n\\n.input-group-prepend {\\n margin-right: -1px; }\\n\\n.input-group-append {\\n margin-left: -1px; }\\n\\n.input-group-text {\\n display: flex;\\n align-items: center;\\n padding: 0.375rem 0.75rem;\\n margin-bottom: 0;\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n text-align: center;\\n white-space: nowrap;\\n background-color: #e9ecef;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem; }\\n .input-group-text input[type=\\\"radio\\\"],\\n .input-group-text input[type=\\\"checkbox\\\"] {\\n margin-top: 0; }\\n\\n.input-group-lg > .form-control:not(textarea),\\n.input-group-lg > .custom-select {\\n height: calc(1.5em + 1rem + 2px); }\\n\\n.input-group-lg > .form-control,\\n.input-group-lg > .custom-select,\\n.input-group-lg > .input-group-prepend > .input-group-text,\\n.input-group-lg > .input-group-append > .input-group-text,\\n.input-group-lg > .input-group-prepend > .btn,\\n.input-group-lg > .input-group-append > .btn {\\n padding: 0.5rem 1rem;\\n font-size: 1.25rem;\\n line-height: 1.5;\\n border-radius: 0.3rem; }\\n\\n.input-group-sm > .form-control:not(textarea),\\n.input-group-sm > .custom-select {\\n height: calc(1.5em + 0.5rem + 2px); }\\n\\n.input-group-sm > .form-control,\\n.input-group-sm > .custom-select,\\n.input-group-sm > .input-group-prepend > .input-group-text,\\n.input-group-sm > .input-group-append > .input-group-text,\\n.input-group-sm > .input-group-prepend > .btn,\\n.input-group-sm > .input-group-append > .btn {\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5;\\n border-radius: 0.2rem; }\\n\\n.input-group-lg > .custom-select,\\n.input-group-sm > .custom-select {\\n padding-right: 1.75rem; }\\n\\n.input-group > .input-group-prepend > .btn,\\n.input-group > .input-group-prepend > .input-group-text,\\n.input-group > .input-group-append:not(:last-child) > .btn,\\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.input-group > .input-group-append > .btn,\\n.input-group > .input-group-append > .input-group-text,\\n.input-group > .input-group-prepend:not(:first-child) > .btn,\\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n\\n.custom-control {\\n position: relative;\\n z-index: 1;\\n display: block;\\n min-height: 1.5rem;\\n padding-left: 1.5rem; }\\n\\n.custom-control-inline {\\n display: inline-flex;\\n margin-right: 1rem; }\\n\\n.custom-control-input {\\n position: absolute;\\n left: 0;\\n z-index: -1;\\n width: 1rem;\\n height: 1.25rem;\\n opacity: 0; }\\n .custom-control-input:checked ~ .custom-control-label::before {\\n color: #fff;\\n border-color: #205492;\\n background-color: #205492; }\\n .custom-control-input:focus ~ .custom-control-label::before {\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\\n border-color: #5793da; }\\n .custom-control-input:not(:disabled):active ~ .custom-control-label::before {\\n color: #fff;\\n background-color: #81aee3;\\n border-color: #81aee3; }\\n .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\\n color: #6c757d; }\\n .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\\n background-color: #e9ecef; }\\n\\n.custom-control-label {\\n position: relative;\\n margin-bottom: 0;\\n vertical-align: top; }\\n .custom-control-label::before {\\n position: absolute;\\n top: 0.25rem;\\n left: -1.5rem;\\n display: block;\\n width: 1rem;\\n height: 1rem;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: #fff;\\n border: #adb5bd solid 1px; }\\n .custom-control-label::after {\\n position: absolute;\\n top: 0.25rem;\\n left: -1.5rem;\\n display: block;\\n width: 1rem;\\n height: 1rem;\\n content: \\\"\\\";\\n background: no-repeat 50% / 50% 50%; }\\n\\n.custom-checkbox .custom-control-label::before {\\n border-radius: 0.25rem; }\\n\\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\\\"); }\\n\\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\\n border-color: #205492;\\n background-color: #205492; }\\n\\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\\\"); }\\n\\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-radio .custom-control-label::before {\\n border-radius: 50%; }\\n\\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\\\"); }\\n\\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-switch {\\n padding-left: 2.25rem; }\\n .custom-switch .custom-control-label::before {\\n left: -2.25rem;\\n width: 1.75rem;\\n pointer-events: all;\\n border-radius: 0.5rem; }\\n .custom-switch .custom-control-label::after {\\n top: calc(0.25rem + 2px);\\n left: calc(-2.25rem + 2px);\\n width: calc(1rem - 4px);\\n height: calc(1rem - 4px);\\n background-color: #adb5bd;\\n border-radius: 0.5rem;\\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n @media (prefers-reduced-motion: reduce) {\\n .custom-switch .custom-control-label::after {\\n transition: none; } }\\n .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\\n background-color: #fff;\\n transform: translateX(0.75rem); }\\n .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\\n background-color: rgba(32, 84, 146, 0.5); }\\n\\n.custom-select {\\n display: inline-block;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\\n font-size: 1rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n vertical-align: middle;\\n background: #fff url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\\\") no-repeat right 0.75rem center/8px 10px;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem;\\n appearance: none; }\\n .custom-select:focus {\\n border-color: #5793da;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .custom-select:focus::-ms-value {\\n color: #495057;\\n background-color: #fff; }\\n .custom-select[multiple], .custom-select[size]:not([size=\\\"1\\\"]) {\\n height: auto;\\n padding-right: 0.75rem;\\n background-image: none; }\\n .custom-select:disabled {\\n color: #6c757d;\\n background-color: #e9ecef; }\\n .custom-select::-ms-expand {\\n display: none; }\\n .custom-select:-moz-focusring {\\n color: transparent;\\n text-shadow: 0 0 0 #495057; }\\n\\n.custom-select-sm {\\n height: calc(1.5em + 0.5rem + 2px);\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem;\\n padding-left: 0.5rem;\\n font-size: 0.875rem; }\\n\\n.custom-select-lg {\\n height: calc(1.5em + 1rem + 2px);\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n padding-left: 1rem;\\n font-size: 1.25rem; }\\n\\n.custom-file {\\n position: relative;\\n display: inline-block;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n margin-bottom: 0; }\\n\\n.custom-file-input {\\n position: relative;\\n z-index: 2;\\n width: 100%;\\n height: calc(1.5em + 0.75rem + 2px);\\n margin: 0;\\n opacity: 0; }\\n .custom-file-input:focus ~ .custom-file-label {\\n border-color: #5793da;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .custom-file-input[disabled] ~ .custom-file-label,\\n .custom-file-input:disabled ~ .custom-file-label {\\n background-color: #e9ecef; }\\n .custom-file-input:lang(en) ~ .custom-file-label::after {\\n content: \\\"Browse\\\"; }\\n .custom-file-input ~ .custom-file-label[data-browse]::after {\\n content: attr(data-browse); }\\n\\n.custom-file-label {\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: 1;\\n height: calc(1.5em + 0.75rem + 2px);\\n padding: 0.375rem 0.75rem;\\n font-weight: 400;\\n line-height: 1.5;\\n color: #495057;\\n background-color: #fff;\\n border: 1px solid #ced4da;\\n border-radius: 0.25rem; }\\n .custom-file-label::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n z-index: 3;\\n display: block;\\n height: calc(1.5em + 0.75rem);\\n padding: 0.375rem 0.75rem;\\n line-height: 1.5;\\n color: #495057;\\n content: \\\"Browse\\\";\\n background-color: #e9ecef;\\n border-left: inherit;\\n border-radius: 0 0.25rem 0.25rem 0; }\\n\\n.custom-range {\\n width: 100%;\\n height: 1.4rem;\\n padding: 0;\\n background-color: transparent;\\n appearance: none; }\\n .custom-range:focus {\\n outline: none; }\\n .custom-range:focus::-webkit-slider-thumb {\\n box-shadow: 0 0 0 1px #f8f9fa, 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .custom-range:focus::-moz-range-thumb {\\n box-shadow: 0 0 0 1px #f8f9fa, 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .custom-range:focus::-ms-thumb {\\n box-shadow: 0 0 0 1px #f8f9fa, 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n .custom-range::-moz-focus-outer {\\n border: 0; }\\n .custom-range::-webkit-slider-thumb {\\n width: 1rem;\\n height: 1rem;\\n margin-top: -0.25rem;\\n background-color: #205492;\\n border: 0;\\n border-radius: 1rem;\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n appearance: none; }\\n @media (prefers-reduced-motion: reduce) {\\n .custom-range::-webkit-slider-thumb {\\n transition: none; } }\\n .custom-range::-webkit-slider-thumb:active {\\n background-color: #81aee3; }\\n .custom-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: 0.5rem;\\n color: transparent;\\n cursor: pointer;\\n background-color: #dee2e6;\\n border-color: transparent;\\n border-radius: 1rem; }\\n .custom-range::-moz-range-thumb {\\n width: 1rem;\\n height: 1rem;\\n background-color: #205492;\\n border: 0;\\n border-radius: 1rem;\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n appearance: none; }\\n @media (prefers-reduced-motion: reduce) {\\n .custom-range::-moz-range-thumb {\\n transition: none; } }\\n .custom-range::-moz-range-thumb:active {\\n background-color: #81aee3; }\\n .custom-range::-moz-range-track {\\n width: 100%;\\n height: 0.5rem;\\n color: transparent;\\n cursor: pointer;\\n background-color: #dee2e6;\\n border-color: transparent;\\n border-radius: 1rem; }\\n .custom-range::-ms-thumb {\\n width: 1rem;\\n height: 1rem;\\n margin-top: 0;\\n margin-right: 0.2rem;\\n margin-left: 0.2rem;\\n background-color: #205492;\\n border: 0;\\n border-radius: 1rem;\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n appearance: none; }\\n @media (prefers-reduced-motion: reduce) {\\n .custom-range::-ms-thumb {\\n transition: none; } }\\n .custom-range::-ms-thumb:active {\\n background-color: #81aee3; }\\n .custom-range::-ms-track {\\n width: 100%;\\n height: 0.5rem;\\n color: transparent;\\n cursor: pointer;\\n background-color: transparent;\\n border-color: transparent;\\n border-width: 0.5rem; }\\n .custom-range::-ms-fill-lower {\\n background-color: #dee2e6;\\n border-radius: 1rem; }\\n .custom-range::-ms-fill-upper {\\n margin-right: 15px;\\n background-color: #dee2e6;\\n border-radius: 1rem; }\\n .custom-range:disabled::-webkit-slider-thumb {\\n background-color: #adb5bd; }\\n .custom-range:disabled::-webkit-slider-runnable-track {\\n cursor: default; }\\n .custom-range:disabled::-moz-range-thumb {\\n background-color: #adb5bd; }\\n .custom-range:disabled::-moz-range-track {\\n cursor: default; }\\n .custom-range:disabled::-ms-thumb {\\n background-color: #adb5bd; }\\n\\n.custom-control-label::before,\\n.custom-file-label,\\n.custom-select {\\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n @media (prefers-reduced-motion: reduce) {\\n .custom-control-label::before,\\n .custom-file-label,\\n .custom-select {\\n transition: none; } }\\n\\n.nav {\\n display: flex;\\n flex-wrap: wrap;\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none; }\\n\\n.nav-link {\\n display: block;\\n padding: 0.5rem 1rem; }\\n .nav-link:hover, .nav-link:focus {\\n text-decoration: none; }\\n .nav-link.disabled {\\n color: #6c757d;\\n pointer-events: none;\\n cursor: default; }\\n\\n.nav-tabs {\\n border-bottom: 1px solid #dee2e6; }\\n .nav-tabs .nav-item {\\n margin-bottom: -1px; }\\n .nav-tabs .nav-link {\\n border: 1px solid transparent;\\n border-top-left-radius: 0.25rem;\\n border-top-right-radius: 0.25rem; }\\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\\n border-color: #e9ecef #e9ecef #dee2e6; }\\n .nav-tabs .nav-link.disabled {\\n color: #6c757d;\\n background-color: transparent;\\n border-color: transparent; }\\n .nav-tabs .nav-link.active,\\n .nav-tabs .nav-item.show .nav-link {\\n color: #495057;\\n background-color: #f8f9fa;\\n border-color: #dee2e6 #dee2e6 #f8f9fa; }\\n .nav-tabs .dropdown-menu {\\n margin-top: -1px;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.nav-pills .nav-link {\\n border-radius: 0.25rem; }\\n\\n.nav-pills .nav-link.active,\\n.nav-pills .show > .nav-link {\\n color: #fff;\\n background-color: #205492; }\\n\\n.nav-fill > .nav-link,\\n.nav-fill .nav-item {\\n flex: 1 1 auto;\\n text-align: center; }\\n\\n.nav-justified > .nav-link,\\n.nav-justified .nav-item {\\n flex-basis: 0;\\n flex-grow: 1;\\n text-align: center; }\\n\\n.tab-content > .tab-pane {\\n display: none; }\\n\\n.tab-content > .active {\\n display: block; }\\n\\n.navbar {\\n position: relative;\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: space-between;\\n padding: 0.5rem 1rem; }\\n .navbar .container,\\n .navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: space-between; }\\n\\n.navbar-brand {\\n display: inline-block;\\n padding-top: 0.3125rem;\\n padding-bottom: 0.3125rem;\\n margin-right: 1rem;\\n font-size: 1.25rem;\\n line-height: inherit;\\n white-space: nowrap; }\\n .navbar-brand:hover, .navbar-brand:focus {\\n text-decoration: none; }\\n\\n.navbar-nav {\\n display: flex;\\n flex-direction: column;\\n padding-left: 0;\\n margin-bottom: 0;\\n list-style: none; }\\n .navbar-nav .nav-link {\\n padding-right: 0;\\n padding-left: 0; }\\n .navbar-nav .dropdown-menu {\\n position: static;\\n float: none; }\\n\\n.navbar-text {\\n display: inline-block;\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem; }\\n\\n.navbar-collapse {\\n flex-basis: 100%;\\n flex-grow: 1;\\n align-items: center; }\\n\\n.navbar-toggler {\\n padding: 0.25rem 0.75rem;\\n font-size: 1.25rem;\\n line-height: 1;\\n background-color: transparent;\\n border: 1px solid transparent;\\n border-radius: 0.25rem; }\\n .navbar-toggler:hover, .navbar-toggler:focus {\\n text-decoration: none; }\\n\\n.navbar-toggler-icon {\\n display: inline-block;\\n width: 1.5em;\\n height: 1.5em;\\n vertical-align: middle;\\n content: \\\"\\\";\\n background: no-repeat center center;\\n background-size: 100% 100%; }\\n\\n@media (max-width: 575.98px) {\\n .navbar-expand-sm > .container,\\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 576px) {\\n .navbar-expand-sm {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-sm .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-sm .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-sm .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-sm > .container,\\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-sm .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-sm .navbar-toggler {\\n display: none; } }\\n\\n@media (max-width: 767.98px) {\\n .navbar-expand-md > .container,\\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 768px) {\\n .navbar-expand-md {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-md .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-md .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-md .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-md > .container,\\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-md .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-md .navbar-toggler {\\n display: none; } }\\n\\n@media (max-width: 991.98px) {\\n .navbar-expand-lg > .container,\\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 992px) {\\n .navbar-expand-lg {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-lg .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-lg .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-lg .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-lg > .container,\\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-lg .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-lg .navbar-toggler {\\n display: none; } }\\n\\n@media (max-width: 1199.98px) {\\n .navbar-expand-xl > .container,\\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\\n padding-right: 0;\\n padding-left: 0; } }\\n\\n@media (min-width: 1200px) {\\n .navbar-expand-xl {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand-xl .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand-xl .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand-xl .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand-xl > .container,\\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand-xl .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand-xl .navbar-toggler {\\n display: none; } }\\n\\n.navbar-expand {\\n flex-flow: row nowrap;\\n justify-content: flex-start; }\\n .navbar-expand > .container,\\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\\n padding-right: 0;\\n padding-left: 0; }\\n .navbar-expand .navbar-nav {\\n flex-direction: row; }\\n .navbar-expand .navbar-nav .dropdown-menu {\\n position: absolute; }\\n .navbar-expand .navbar-nav .nav-link {\\n padding-right: 0.5rem;\\n padding-left: 0.5rem; }\\n .navbar-expand > .container,\\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\\n flex-wrap: nowrap; }\\n .navbar-expand .navbar-collapse {\\n display: flex !important;\\n flex-basis: auto; }\\n .navbar-expand .navbar-toggler {\\n display: none; }\\n\\n.navbar-light .navbar-brand {\\n color: rgba(0, 0, 0, 0.9); }\\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-light .navbar-nav .nav-link {\\n color: rgba(0, 0, 0, 0.5); }\\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\\n color: rgba(0, 0, 0, 0.7); }\\n .navbar-light .navbar-nav .nav-link.disabled {\\n color: rgba(0, 0, 0, 0.3); }\\n\\n.navbar-light .navbar-nav .show > .nav-link,\\n.navbar-light .navbar-nav .active > .nav-link,\\n.navbar-light .navbar-nav .nav-link.show,\\n.navbar-light .navbar-nav .nav-link.active {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-light .navbar-toggler {\\n color: rgba(0, 0, 0, 0.5);\\n border-color: rgba(0, 0, 0, 0.1); }\\n\\n.navbar-light .navbar-toggler-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\"); }\\n\\n.navbar-light .navbar-text {\\n color: rgba(0, 0, 0, 0.5); }\\n .navbar-light .navbar-text a {\\n color: rgba(0, 0, 0, 0.9); }\\n .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\\n color: rgba(0, 0, 0, 0.9); }\\n\\n.navbar-dark .navbar-brand {\\n color: #fff; }\\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\\n color: #fff; }\\n\\n.navbar-dark .navbar-nav .nav-link {\\n color: rgba(255, 255, 255, 0.5); }\\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\\n color: rgba(255, 255, 255, 0.75); }\\n .navbar-dark .navbar-nav .nav-link.disabled {\\n color: rgba(255, 255, 255, 0.25); }\\n\\n.navbar-dark .navbar-nav .show > .nav-link,\\n.navbar-dark .navbar-nav .active > .nav-link,\\n.navbar-dark .navbar-nav .nav-link.show,\\n.navbar-dark .navbar-nav .nav-link.active {\\n color: #fff; }\\n\\n.navbar-dark .navbar-toggler {\\n color: rgba(255, 255, 255, 0.5);\\n border-color: rgba(255, 255, 255, 0.1); }\\n\\n.navbar-dark .navbar-toggler-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\\\"); }\\n\\n.navbar-dark .navbar-text {\\n color: rgba(255, 255, 255, 0.5); }\\n .navbar-dark .navbar-text a {\\n color: #fff; }\\n .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\\n color: #fff; }\\n\\n.card {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n min-width: 0;\\n word-wrap: break-word;\\n background-color: #fff;\\n background-clip: border-box;\\n border: 1px solid rgba(0, 0, 0, 0.125);\\n border-radius: 0.25rem; }\\n .card > hr {\\n margin-right: 0;\\n margin-left: 0; }\\n .card > .list-group {\\n border-top: inherit;\\n border-bottom: inherit; }\\n .card > .list-group:first-child {\\n border-top-width: 0;\\n border-top-left-radius: calc(0.25rem - 1px);\\n border-top-right-radius: calc(0.25rem - 1px); }\\n .card > .list-group:last-child {\\n border-bottom-width: 0;\\n border-bottom-right-radius: calc(0.25rem - 1px);\\n border-bottom-left-radius: calc(0.25rem - 1px); }\\n .card > .card-header + .list-group,\\n .card > .list-group + .card-footer {\\n border-top: 0; }\\n\\n.card-body {\\n flex: 1 1 auto;\\n min-height: 1px;\\n padding: 1.25rem; }\\n\\n.card-title {\\n margin-bottom: 0.75rem; }\\n\\n.card-subtitle {\\n margin-top: -0.375rem;\\n margin-bottom: 0; }\\n\\n.card-text:last-child {\\n margin-bottom: 0; }\\n\\n.card-link:hover {\\n text-decoration: none; }\\n\\n.card-link + .card-link {\\n margin-left: 1.25rem; }\\n\\n.card-header {\\n padding: 0.75rem 1.25rem;\\n margin-bottom: 0;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\\n .card-header:first-child {\\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\\n\\n.card-footer {\\n padding: 0.75rem 1.25rem;\\n background-color: rgba(0, 0, 0, 0.03);\\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\\n .card-footer:last-child {\\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\\n\\n.card-header-tabs {\\n margin-right: -0.625rem;\\n margin-bottom: -0.75rem;\\n margin-left: -0.625rem;\\n border-bottom: 0; }\\n\\n.card-header-pills {\\n margin-right: -0.625rem;\\n margin-left: -0.625rem; }\\n\\n.card-img-overlay {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n padding: 1.25rem;\\n border-radius: calc(0.25rem - 1px); }\\n\\n.card-img,\\n.card-img-top,\\n.card-img-bottom {\\n flex-shrink: 0;\\n width: 100%; }\\n\\n.card-img,\\n.card-img-top {\\n border-top-left-radius: calc(0.25rem - 1px);\\n border-top-right-radius: calc(0.25rem - 1px); }\\n\\n.card-img,\\n.card-img-bottom {\\n border-bottom-right-radius: calc(0.25rem - 1px);\\n border-bottom-left-radius: calc(0.25rem - 1px); }\\n\\n.card-deck .card {\\n margin-bottom: 15px; }\\n\\n@media (min-width: 576px) {\\n .card-deck {\\n display: flex;\\n flex-flow: row wrap;\\n margin-right: -15px;\\n margin-left: -15px; }\\n .card-deck .card {\\n flex: 1 0 0%;\\n margin-right: 15px;\\n margin-bottom: 0;\\n margin-left: 15px; } }\\n\\n.card-group > .card {\\n margin-bottom: 15px; }\\n\\n@media (min-width: 576px) {\\n .card-group {\\n display: flex;\\n flex-flow: row wrap; }\\n .card-group > .card {\\n flex: 1 0 0%;\\n margin-bottom: 0; }\\n .card-group > .card + .card {\\n margin-left: 0;\\n border-left: 0; }\\n .card-group > .card:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0; }\\n .card-group > .card:not(:last-child) .card-img-top,\\n .card-group > .card:not(:last-child) .card-header {\\n border-top-right-radius: 0; }\\n .card-group > .card:not(:last-child) .card-img-bottom,\\n .card-group > .card:not(:last-child) .card-footer {\\n border-bottom-right-radius: 0; }\\n .card-group > .card:not(:first-child) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0; }\\n .card-group > .card:not(:first-child) .card-img-top,\\n .card-group > .card:not(:first-child) .card-header {\\n border-top-left-radius: 0; }\\n .card-group > .card:not(:first-child) .card-img-bottom,\\n .card-group > .card:not(:first-child) .card-footer {\\n border-bottom-left-radius: 0; } }\\n\\n.card-columns .card {\\n margin-bottom: 0.75rem; }\\n\\n@media (min-width: 576px) {\\n .card-columns {\\n column-count: 3;\\n column-gap: 1.25rem;\\n orphans: 1;\\n widows: 1; }\\n .card-columns .card {\\n display: inline-block;\\n width: 100%; } }\\n\\n.accordion {\\n overflow-anchor: none; }\\n .accordion > .card {\\n overflow: hidden; }\\n .accordion > .card:not(:last-of-type) {\\n border-bottom: 0;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0; }\\n .accordion > .card:not(:first-of-type) {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n .accordion > .card > .card-header {\\n border-radius: 0;\\n margin-bottom: -1px; }\\n\\n.breadcrumb {\\n display: flex;\\n flex-wrap: wrap;\\n padding: 0.75rem 1rem;\\n margin-bottom: 1rem;\\n list-style: none;\\n background-color: #e9ecef;\\n border-radius: 0.25rem; }\\n\\n.breadcrumb-item {\\n display: flex; }\\n .breadcrumb-item + .breadcrumb-item {\\n padding-left: 0.5rem; }\\n .breadcrumb-item + .breadcrumb-item::before {\\n display: inline-block;\\n padding-right: 0.5rem;\\n color: #6c757d;\\n content: \\\"/\\\"; }\\n .breadcrumb-item + .breadcrumb-item:hover::before {\\n text-decoration: underline; }\\n .breadcrumb-item + .breadcrumb-item:hover::before {\\n text-decoration: none; }\\n .breadcrumb-item.active {\\n color: #6c757d; }\\n\\n.pagination {\\n display: flex;\\n padding-left: 0;\\n list-style: none;\\n border-radius: 0.25rem; }\\n\\n.page-link {\\n position: relative;\\n display: block;\\n padding: 0.5rem 0.75rem;\\n margin-left: -1px;\\n line-height: 1.25;\\n color: #205492;\\n background-color: #fff;\\n border: 1px solid #dee2e6; }\\n .page-link:hover {\\n z-index: 2;\\n color: #123053;\\n text-decoration: none;\\n background-color: #e9ecef;\\n border-color: #dee2e6; }\\n .page-link:focus {\\n z-index: 3;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.25); }\\n\\n.page-item:first-child .page-link {\\n margin-left: 0;\\n border-top-left-radius: 0.25rem;\\n border-bottom-left-radius: 0.25rem; }\\n\\n.page-item:last-child .page-link {\\n border-top-right-radius: 0.25rem;\\n border-bottom-right-radius: 0.25rem; }\\n\\n.page-item.active .page-link {\\n z-index: 3;\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n\\n.page-item.disabled .page-link {\\n color: #6c757d;\\n pointer-events: none;\\n cursor: auto;\\n background-color: #fff;\\n border-color: #dee2e6; }\\n\\n.pagination-lg .page-link {\\n padding: 0.75rem 1.5rem;\\n font-size: 1.25rem;\\n line-height: 1.5; }\\n\\n.pagination-lg .page-item:first-child .page-link {\\n border-top-left-radius: 0.3rem;\\n border-bottom-left-radius: 0.3rem; }\\n\\n.pagination-lg .page-item:last-child .page-link {\\n border-top-right-radius: 0.3rem;\\n border-bottom-right-radius: 0.3rem; }\\n\\n.pagination-sm .page-link {\\n padding: 0.25rem 0.5rem;\\n font-size: 0.875rem;\\n line-height: 1.5; }\\n\\n.pagination-sm .page-item:first-child .page-link {\\n border-top-left-radius: 0.2rem;\\n border-bottom-left-radius: 0.2rem; }\\n\\n.pagination-sm .page-item:last-child .page-link {\\n border-top-right-radius: 0.2rem;\\n border-bottom-right-radius: 0.2rem; }\\n\\n.badge {\\n display: inline-block;\\n padding: 0.25em 0.4em;\\n font-size: 75%;\\n font-weight: 700;\\n line-height: 1;\\n text-align: center;\\n white-space: nowrap;\\n vertical-align: baseline;\\n border-radius: 0.25rem;\\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\\n @media (prefers-reduced-motion: reduce) {\\n .badge {\\n transition: none; } }\\n a.badge:hover, a.badge:focus {\\n text-decoration: none; }\\n .badge:empty {\\n display: none; }\\n\\n.btn .badge {\\n position: relative;\\n top: -1px; }\\n\\n.badge-pill {\\n padding-right: 0.6em;\\n padding-left: 0.6em;\\n border-radius: 10rem; }\\n\\n.badge-primary {\\n color: #fff;\\n background-color: #205492; }\\n a.badge-primary:hover, a.badge-primary:focus {\\n color: #fff;\\n background-color: #173c68; }\\n a.badge-primary:focus, a.badge-primary.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(32, 84, 146, 0.5); }\\n\\n.badge-secondary {\\n color: #fff;\\n background-color: #6c757d; }\\n a.badge-secondary:hover, a.badge-secondary:focus {\\n color: #fff;\\n background-color: #545b62; }\\n a.badge-secondary:focus, a.badge-secondary.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }\\n\\n.badge-success {\\n color: #fff;\\n background-color: #28a745; }\\n a.badge-success:hover, a.badge-success:focus {\\n color: #fff;\\n background-color: #1e7e34; }\\n a.badge-success:focus, a.badge-success.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); }\\n\\n.badge-info {\\n color: #fff;\\n background-color: #17a2b8; }\\n a.badge-info:hover, a.badge-info:focus {\\n color: #fff;\\n background-color: #117a8b; }\\n a.badge-info:focus, a.badge-info.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); }\\n\\n.badge-warning {\\n color: #212529;\\n background-color: #ffc107; }\\n a.badge-warning:hover, a.badge-warning:focus {\\n color: #212529;\\n background-color: #d39e00; }\\n a.badge-warning:focus, a.badge-warning.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); }\\n\\n.badge-danger {\\n color: #fff;\\n background-color: #dc3545; }\\n a.badge-danger:hover, a.badge-danger:focus {\\n color: #fff;\\n background-color: #bd2130; }\\n a.badge-danger:focus, a.badge-danger.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); }\\n\\n.badge-light {\\n color: #212529;\\n background-color: #f8f9fa; }\\n a.badge-light:hover, a.badge-light:focus {\\n color: #212529;\\n background-color: #dae0e5; }\\n a.badge-light:focus, a.badge-light.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }\\n\\n.badge-dark {\\n color: #fff;\\n background-color: #343a40; }\\n a.badge-dark:hover, a.badge-dark:focus {\\n color: #fff;\\n background-color: #1d2124; }\\n a.badge-dark:focus, a.badge-dark.focus {\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); }\\n\\n.jumbotron {\\n padding: 2rem 1rem;\\n margin-bottom: 2rem;\\n background-color: #e9ecef;\\n border-radius: 0.3rem; }\\n @media (min-width: 576px) {\\n .jumbotron {\\n padding: 4rem 2rem; } }\\n\\n.jumbotron-fluid {\\n padding-right: 0;\\n padding-left: 0;\\n border-radius: 0; }\\n\\n.alert {\\n position: relative;\\n padding: 0.75rem 1.25rem;\\n margin-bottom: 1rem;\\n border: 1px solid transparent;\\n border-radius: 0.25rem; }\\n\\n.alert-heading {\\n color: inherit; }\\n\\n.alert-link {\\n font-weight: 700; }\\n\\n.alert-dismissible {\\n padding-right: 4rem; }\\n .alert-dismissible .close {\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: 0.75rem 1.25rem;\\n color: inherit; }\\n\\n.alert-primary {\\n color: #112c4c;\\n background-color: #d2dde9;\\n border-color: #c1cfe0; }\\n .alert-primary hr {\\n border-top-color: #b0c2d8; }\\n .alert-primary .alert-link {\\n color: #081422; }\\n\\n.alert-secondary {\\n color: #383d41;\\n background-color: #e2e3e5;\\n border-color: #d6d8db; }\\n .alert-secondary hr {\\n border-top-color: #c8cbcf; }\\n .alert-secondary .alert-link {\\n color: #202326; }\\n\\n.alert-success {\\n color: #155724;\\n background-color: #d4edda;\\n border-color: #c3e6cb; }\\n .alert-success hr {\\n border-top-color: #b1dfbb; }\\n .alert-success .alert-link {\\n color: #0b2e13; }\\n\\n.alert-info {\\n color: #0c5460;\\n background-color: #d1ecf1;\\n border-color: #bee5eb; }\\n .alert-info hr {\\n border-top-color: #abdde5; }\\n .alert-info .alert-link {\\n color: #062c33; }\\n\\n.alert-warning {\\n color: #856404;\\n background-color: #fff3cd;\\n border-color: #ffeeba; }\\n .alert-warning hr {\\n border-top-color: #ffe8a1; }\\n .alert-warning .alert-link {\\n color: #533f03; }\\n\\n.alert-danger {\\n color: #721c24;\\n background-color: #f8d7da;\\n border-color: #f5c6cb; }\\n .alert-danger hr {\\n border-top-color: #f1b0b7; }\\n .alert-danger .alert-link {\\n color: #491217; }\\n\\n.alert-light {\\n color: #818182;\\n background-color: #fefefe;\\n border-color: #fdfdfe; }\\n .alert-light hr {\\n border-top-color: #ececf6; }\\n .alert-light .alert-link {\\n color: #686868; }\\n\\n.alert-dark {\\n color: #1b1e21;\\n background-color: #d6d8d9;\\n border-color: #c6c8ca; }\\n .alert-dark hr {\\n border-top-color: #b9bbbe; }\\n .alert-dark .alert-link {\\n color: #040505; }\\n\\n@keyframes progress-bar-stripes {\\n from {\\n background-position: 1rem 0; }\\n to {\\n background-position: 0 0; } }\\n\\n.progress {\\n display: flex;\\n height: 1rem;\\n overflow: hidden;\\n line-height: 0;\\n font-size: 0.75rem;\\n background-color: #e9ecef;\\n border-radius: 0.25rem; }\\n\\n.progress-bar {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n overflow: hidden;\\n color: #fff;\\n text-align: center;\\n white-space: nowrap;\\n background-color: #205492;\\n transition: width 0.6s ease; }\\n @media (prefers-reduced-motion: reduce) {\\n .progress-bar {\\n transition: none; } }\\n\\n.progress-bar-striped {\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\n background-size: 1rem 1rem; }\\n\\n.progress-bar-animated {\\n animation: progress-bar-stripes 1s linear infinite; }\\n @media (prefers-reduced-motion: reduce) {\\n .progress-bar-animated {\\n animation: none; } }\\n\\n.media {\\n display: flex;\\n align-items: flex-start; }\\n\\n.media-body {\\n flex: 1; }\\n\\n.list-group {\\n display: flex;\\n flex-direction: column;\\n padding-left: 0;\\n margin-bottom: 0;\\n border-radius: 0.25rem; }\\n\\n.list-group-item-action {\\n width: 100%;\\n color: #495057;\\n text-align: inherit; }\\n .list-group-item-action:hover, .list-group-item-action:focus {\\n z-index: 1;\\n color: #495057;\\n text-decoration: none;\\n background-color: #f8f9fa; }\\n .list-group-item-action:active {\\n color: #212529;\\n background-color: #e9ecef; }\\n\\n.list-group-item {\\n position: relative;\\n display: block;\\n padding: 0.75rem 1.25rem;\\n background-color: #fff;\\n border: 1px solid rgba(0, 0, 0, 0.125); }\\n .list-group-item:first-child {\\n border-top-left-radius: inherit;\\n border-top-right-radius: inherit; }\\n .list-group-item:last-child {\\n border-bottom-right-radius: inherit;\\n border-bottom-left-radius: inherit; }\\n .list-group-item.disabled, .list-group-item:disabled {\\n color: #6c757d;\\n pointer-events: none;\\n background-color: #fff; }\\n .list-group-item.active {\\n z-index: 2;\\n color: #fff;\\n background-color: #205492;\\n border-color: #205492; }\\n .list-group-item + .list-group-item {\\n border-top-width: 0; }\\n .list-group-item + .list-group-item.active {\\n margin-top: -1px;\\n border-top-width: 1px; }\\n\\n.list-group-horizontal {\\n flex-direction: row; }\\n .list-group-horizontal > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; }\\n\\n@media (min-width: 576px) {\\n .list-group-horizontal-sm {\\n flex-direction: row; }\\n .list-group-horizontal-sm > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-sm > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-sm > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n@media (min-width: 768px) {\\n .list-group-horizontal-md {\\n flex-direction: row; }\\n .list-group-horizontal-md > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-md > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-md > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-md > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n@media (min-width: 992px) {\\n .list-group-horizontal-lg {\\n flex-direction: row; }\\n .list-group-horizontal-lg > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-lg > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-lg > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n@media (min-width: 1200px) {\\n .list-group-horizontal-xl {\\n flex-direction: row; }\\n .list-group-horizontal-xl > .list-group-item:first-child {\\n border-bottom-left-radius: 0.25rem;\\n border-top-right-radius: 0; }\\n .list-group-horizontal-xl > .list-group-item:last-child {\\n border-top-right-radius: 0.25rem;\\n border-bottom-left-radius: 0; }\\n .list-group-horizontal-xl > .list-group-item.active {\\n margin-top: 0; }\\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\\n border-top-width: 1px;\\n border-left-width: 0; }\\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\\n margin-left: -1px;\\n border-left-width: 1px; } }\\n\\n.list-group-flush {\\n border-radius: 0; }\\n .list-group-flush > .list-group-item {\\n border-width: 0 0 1px; }\\n .list-group-flush > .list-group-item:last-child {\\n border-bottom-width: 0; }\\n\\n.list-group-item-primary {\\n color: #112c4c;\\n background-color: #c1cfe0; }\\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\\n color: #112c4c;\\n background-color: #b0c2d8; }\\n .list-group-item-primary.list-group-item-action.active {\\n color: #fff;\\n background-color: #112c4c;\\n border-color: #112c4c; }\\n\\n.list-group-item-secondary {\\n color: #383d41;\\n background-color: #d6d8db; }\\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\\n color: #383d41;\\n background-color: #c8cbcf; }\\n .list-group-item-secondary.list-group-item-action.active {\\n color: #fff;\\n background-color: #383d41;\\n border-color: #383d41; }\\n\\n.list-group-item-success {\\n color: #155724;\\n background-color: #c3e6cb; }\\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\\n color: #155724;\\n background-color: #b1dfbb; }\\n .list-group-item-success.list-group-item-action.active {\\n color: #fff;\\n background-color: #155724;\\n border-color: #155724; }\\n\\n.list-group-item-info {\\n color: #0c5460;\\n background-color: #bee5eb; }\\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\\n color: #0c5460;\\n background-color: #abdde5; }\\n .list-group-item-info.list-group-item-action.active {\\n color: #fff;\\n background-color: #0c5460;\\n border-color: #0c5460; }\\n\\n.list-group-item-warning {\\n color: #856404;\\n background-color: #ffeeba; }\\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\\n color: #856404;\\n background-color: #ffe8a1; }\\n .list-group-item-warning.list-group-item-action.active {\\n color: #fff;\\n background-color: #856404;\\n border-color: #856404; }\\n\\n.list-group-item-danger {\\n color: #721c24;\\n background-color: #f5c6cb; }\\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\\n color: #721c24;\\n background-color: #f1b0b7; }\\n .list-group-item-danger.list-group-item-action.active {\\n color: #fff;\\n background-color: #721c24;\\n border-color: #721c24; }\\n\\n.list-group-item-light {\\n color: #818182;\\n background-color: #fdfdfe; }\\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\\n color: #818182;\\n background-color: #ececf6; }\\n .list-group-item-light.list-group-item-action.active {\\n color: #fff;\\n background-color: #818182;\\n border-color: #818182; }\\n\\n.list-group-item-dark {\\n color: #1b1e21;\\n background-color: #c6c8ca; }\\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\\n color: #1b1e21;\\n background-color: #b9bbbe; }\\n .list-group-item-dark.list-group-item-action.active {\\n color: #fff;\\n background-color: #1b1e21;\\n border-color: #1b1e21; }\\n\\n.close {\\n float: right;\\n font-size: 1.5rem;\\n font-weight: 700;\\n line-height: 1;\\n color: #000;\\n text-shadow: 0 1px 0 #fff;\\n opacity: .5; }\\n .close:hover {\\n color: #000;\\n text-decoration: none; }\\n .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\\n opacity: .75; }\\n\\nbutton.close {\\n padding: 0;\\n background-color: transparent;\\n border: 0; }\\n\\na.close.disabled {\\n pointer-events: none; }\\n\\n.toast {\\n flex-basis: 350px;\\n max-width: 350px;\\n font-size: 0.875rem;\\n background-color: rgba(255, 255, 255, 0.85);\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.1);\\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\\n opacity: 0;\\n border-radius: 0.25rem; }\\n .toast:not(:last-child) {\\n margin-bottom: 0.75rem; }\\n .toast.showing {\\n opacity: 1; }\\n .toast.show {\\n display: block;\\n opacity: 1; }\\n .toast.hide {\\n display: none; }\\n\\n.toast-header {\\n display: flex;\\n align-items: center;\\n padding: 0.25rem 0.75rem;\\n color: #6c757d;\\n background-color: rgba(255, 255, 255, 0.85);\\n background-clip: padding-box;\\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\\n border-top-left-radius: calc(0.25rem - 1px);\\n border-top-right-radius: calc(0.25rem - 1px); }\\n\\n.toast-body {\\n padding: 0.75rem; }\\n\\n.modal-open {\\n overflow: hidden; }\\n .modal-open .modal {\\n overflow-x: hidden;\\n overflow-y: auto; }\\n\\n.modal {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 1050;\\n display: none;\\n width: 100%;\\n height: 100%;\\n overflow: hidden;\\n outline: 0; }\\n\\n.modal-dialog {\\n position: relative;\\n width: auto;\\n margin: 0.5rem;\\n pointer-events: none; }\\n .modal.fade .modal-dialog {\\n transition: transform 0.3s ease-out;\\n transform: translate(0, -50px); }\\n @media (prefers-reduced-motion: reduce) {\\n .modal.fade .modal-dialog {\\n transition: none; } }\\n .modal.show .modal-dialog {\\n transform: none; }\\n .modal.modal-static .modal-dialog {\\n transform: scale(1.02); }\\n\\n.modal-dialog-scrollable {\\n display: flex;\\n max-height: calc(100% - 1rem); }\\n .modal-dialog-scrollable .modal-content {\\n max-height: calc(100vh - 1rem);\\n overflow: hidden; }\\n .modal-dialog-scrollable .modal-header,\\n .modal-dialog-scrollable .modal-footer {\\n flex-shrink: 0; }\\n .modal-dialog-scrollable .modal-body {\\n overflow-y: auto; }\\n\\n.modal-dialog-centered {\\n display: flex;\\n align-items: center;\\n min-height: calc(100% - 1rem); }\\n .modal-dialog-centered::before {\\n display: block;\\n height: calc(100vh - 1rem);\\n height: min-content;\\n content: \\\"\\\"; }\\n .modal-dialog-centered.modal-dialog-scrollable {\\n flex-direction: column;\\n justify-content: center;\\n height: 100%; }\\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\\n max-height: none; }\\n .modal-dialog-centered.modal-dialog-scrollable::before {\\n content: none; }\\n\\n.modal-content {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n pointer-events: auto;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 0.3rem;\\n outline: 0; }\\n\\n.modal-backdrop {\\n position: fixed;\\n top: 0;\\n left: 0;\\n z-index: 1040;\\n width: 100vw;\\n height: 100vh;\\n background-color: #000; }\\n .modal-backdrop.fade {\\n opacity: 0; }\\n .modal-backdrop.show {\\n opacity: 0.5; }\\n\\n.modal-header {\\n display: flex;\\n align-items: flex-start;\\n justify-content: space-between;\\n padding: 1rem 1rem;\\n border-bottom: 1px solid #dee2e6;\\n border-top-left-radius: calc(0.3rem - 1px);\\n border-top-right-radius: calc(0.3rem - 1px); }\\n .modal-header .close {\\n padding: 1rem 1rem;\\n margin: -1rem -1rem -1rem auto; }\\n\\n.modal-title {\\n margin-bottom: 0;\\n line-height: 1.5; }\\n\\n.modal-body {\\n position: relative;\\n flex: 1 1 auto;\\n padding: 1rem; }\\n\\n.modal-footer {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: flex-end;\\n padding: 0.75rem;\\n border-top: 1px solid #dee2e6;\\n border-bottom-right-radius: calc(0.3rem - 1px);\\n border-bottom-left-radius: calc(0.3rem - 1px); }\\n .modal-footer > * {\\n margin: 0.25rem; }\\n\\n.modal-scrollbar-measure {\\n position: absolute;\\n top: -9999px;\\n width: 50px;\\n height: 50px;\\n overflow: scroll; }\\n\\n@media (min-width: 576px) {\\n .modal-dialog {\\n max-width: 500px;\\n margin: 1.75rem auto; }\\n .modal-dialog-scrollable {\\n max-height: calc(100% - 3.5rem); }\\n .modal-dialog-scrollable .modal-content {\\n max-height: calc(100vh - 3.5rem); }\\n .modal-dialog-centered {\\n min-height: calc(100% - 3.5rem); }\\n .modal-dialog-centered::before {\\n height: calc(100vh - 3.5rem);\\n height: min-content; }\\n .modal-sm {\\n max-width: 300px; } }\\n\\n@media (min-width: 992px) {\\n .modal-lg,\\n .modal-xl {\\n max-width: 800px; } }\\n\\n@media (min-width: 1200px) {\\n .modal-xl {\\n max-width: 1140px; } }\\n\\n.tooltip {\\n position: absolute;\\n z-index: 1070;\\n display: block;\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1.5;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n white-space: normal;\\n line-break: auto;\\n font-size: 0.875rem;\\n word-wrap: break-word;\\n opacity: 0; }\\n .tooltip.show {\\n opacity: 0.9; }\\n .tooltip .arrow {\\n position: absolute;\\n display: block;\\n width: 0.8rem;\\n height: 0.4rem; }\\n .tooltip .arrow::before {\\n position: absolute;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid; }\\n\\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\\\"top\\\"] {\\n padding: 0.4rem 0; }\\n .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow {\\n bottom: 0; }\\n .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\\\"top\\\"] .arrow::before {\\n top: 0;\\n border-width: 0.4rem 0.4rem 0;\\n border-top-color: #000; }\\n\\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\\\"right\\\"] {\\n padding: 0 0.4rem; }\\n .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow {\\n left: 0;\\n width: 0.4rem;\\n height: 0.8rem; }\\n .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\\\"right\\\"] .arrow::before {\\n right: 0;\\n border-width: 0.4rem 0.4rem 0.4rem 0;\\n border-right-color: #000; }\\n\\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\\\"bottom\\\"] {\\n padding: 0.4rem 0; }\\n .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow {\\n top: 0; }\\n .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\\\"bottom\\\"] .arrow::before {\\n bottom: 0;\\n border-width: 0 0.4rem 0.4rem;\\n border-bottom-color: #000; }\\n\\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\\\"left\\\"] {\\n padding: 0 0.4rem; }\\n .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow {\\n right: 0;\\n width: 0.4rem;\\n height: 0.8rem; }\\n .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\\\"left\\\"] .arrow::before {\\n left: 0;\\n border-width: 0.4rem 0 0.4rem 0.4rem;\\n border-left-color: #000; }\\n\\n.tooltip-inner {\\n max-width: 200px;\\n padding: 0.25rem 0.5rem;\\n color: #fff;\\n text-align: center;\\n background-color: #000;\\n border-radius: 0.25rem; }\\n\\n.popover {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 1060;\\n display: block;\\n max-width: 276px;\\n font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\";\\n font-style: normal;\\n font-weight: 400;\\n line-height: 1.5;\\n text-align: left;\\n text-align: start;\\n text-decoration: none;\\n text-shadow: none;\\n text-transform: none;\\n letter-spacing: normal;\\n word-break: normal;\\n word-spacing: normal;\\n white-space: normal;\\n line-break: auto;\\n font-size: 0.875rem;\\n word-wrap: break-word;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 0.3rem; }\\n .popover .arrow {\\n position: absolute;\\n display: block;\\n width: 1rem;\\n height: 0.5rem;\\n margin: 0 0.3rem; }\\n .popover .arrow::before, .popover .arrow::after {\\n position: absolute;\\n display: block;\\n content: \\\"\\\";\\n border-color: transparent;\\n border-style: solid; }\\n\\n.bs-popover-top, .bs-popover-auto[x-placement^=\\\"top\\\"] {\\n margin-bottom: 0.5rem; }\\n .bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\\\"top\\\"] > .arrow {\\n bottom: calc(-0.5rem - 1px); }\\n .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\\\"top\\\"] > .arrow::before {\\n bottom: 0;\\n border-width: 0.5rem 0.5rem 0;\\n border-top-color: rgba(0, 0, 0, 0.25); }\\n .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\\\"top\\\"] > .arrow::after {\\n bottom: 1px;\\n border-width: 0.5rem 0.5rem 0;\\n border-top-color: #fff; }\\n\\n.bs-popover-right, .bs-popover-auto[x-placement^=\\\"right\\\"] {\\n margin-left: 0.5rem; }\\n .bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\\\"right\\\"] > .arrow {\\n left: calc(-0.5rem - 1px);\\n width: 0.5rem;\\n height: 1rem;\\n margin: 0.3rem 0; }\\n .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\\\"right\\\"] > .arrow::before {\\n left: 0;\\n border-width: 0.5rem 0.5rem 0.5rem 0;\\n border-right-color: rgba(0, 0, 0, 0.25); }\\n .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\\\"right\\\"] > .arrow::after {\\n left: 1px;\\n border-width: 0.5rem 0.5rem 0.5rem 0;\\n border-right-color: #fff; }\\n\\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\\\"bottom\\\"] {\\n margin-top: 0.5rem; }\\n .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\\\"bottom\\\"] > .arrow {\\n top: calc(-0.5rem - 1px); }\\n .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\\\"bottom\\\"] > .arrow::before {\\n top: 0;\\n border-width: 0 0.5rem 0.5rem 0.5rem;\\n border-bottom-color: rgba(0, 0, 0, 0.25); }\\n .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\\\"bottom\\\"] > .arrow::after {\\n top: 1px;\\n border-width: 0 0.5rem 0.5rem 0.5rem;\\n border-bottom-color: #fff; }\\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\\\"bottom\\\"] .popover-header::before {\\n position: absolute;\\n top: 0;\\n left: 50%;\\n display: block;\\n width: 1rem;\\n margin-left: -0.5rem;\\n content: \\\"\\\";\\n border-bottom: 1px solid #f7f7f7; }\\n\\n.bs-popover-left, .bs-popover-auto[x-placement^=\\\"left\\\"] {\\n margin-right: 0.5rem; }\\n .bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\\\"left\\\"] > .arrow {\\n right: calc(-0.5rem - 1px);\\n width: 0.5rem;\\n height: 1rem;\\n margin: 0.3rem 0; }\\n .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\\\"left\\\"] > .arrow::before {\\n right: 0;\\n border-width: 0.5rem 0 0.5rem 0.5rem;\\n border-left-color: rgba(0, 0, 0, 0.25); }\\n .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\\\"left\\\"] > .arrow::after {\\n right: 1px;\\n border-width: 0.5rem 0 0.5rem 0.5rem;\\n border-left-color: #fff; }\\n\\n.popover-header {\\n padding: 0.5rem 0.75rem;\\n margin-bottom: 0;\\n font-size: 1rem;\\n background-color: #f7f7f7;\\n border-bottom: 1px solid #ebebeb;\\n border-top-left-radius: calc(0.3rem - 1px);\\n border-top-right-radius: calc(0.3rem - 1px); }\\n .popover-header:empty {\\n display: none; }\\n\\n.popover-body {\\n padding: 0.5rem 0.75rem;\\n color: #212529; }\\n\\n.carousel {\\n position: relative; }\\n\\n.carousel.pointer-event {\\n touch-action: pan-y; }\\n\\n.carousel-inner {\\n position: relative;\\n width: 100%;\\n overflow: hidden; }\\n .carousel-inner::after {\\n display: block;\\n clear: both;\\n content: \\\"\\\"; }\\n\\n.carousel-item {\\n position: relative;\\n display: none;\\n float: left;\\n width: 100%;\\n margin-right: -100%;\\n backface-visibility: hidden;\\n transition: transform 0.6s ease-in-out; }\\n @media (prefers-reduced-motion: reduce) {\\n .carousel-item {\\n transition: none; } }\\n\\n.carousel-item.active,\\n.carousel-item-next,\\n.carousel-item-prev {\\n display: block; }\\n\\n.carousel-item-next:not(.carousel-item-left),\\n.active.carousel-item-right {\\n transform: translateX(100%); }\\n\\n.carousel-item-prev:not(.carousel-item-right),\\n.active.carousel-item-left {\\n transform: translateX(-100%); }\\n\\n.carousel-fade .carousel-item {\\n opacity: 0;\\n transition-property: opacity;\\n transform: none; }\\n\\n.carousel-fade .carousel-item.active,\\n.carousel-fade .carousel-item-next.carousel-item-left,\\n.carousel-fade .carousel-item-prev.carousel-item-right {\\n z-index: 1;\\n opacity: 1; }\\n\\n.carousel-fade .active.carousel-item-left,\\n.carousel-fade .active.carousel-item-right {\\n z-index: 0;\\n opacity: 0;\\n transition: opacity 0s 0.6s; }\\n @media (prefers-reduced-motion: reduce) {\\n .carousel-fade .active.carousel-item-left,\\n .carousel-fade .active.carousel-item-right {\\n transition: none; } }\\n\\n.carousel-control-prev,\\n.carousel-control-next {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 15%;\\n color: #fff;\\n text-align: center;\\n opacity: 0.5;\\n transition: opacity 0.15s ease; }\\n @media (prefers-reduced-motion: reduce) {\\n .carousel-control-prev,\\n .carousel-control-next {\\n transition: none; } }\\n .carousel-control-prev:hover, .carousel-control-prev:focus,\\n .carousel-control-next:hover,\\n .carousel-control-next:focus {\\n color: #fff;\\n text-decoration: none;\\n outline: 0;\\n opacity: 0.9; }\\n\\n.carousel-control-prev {\\n left: 0; }\\n\\n.carousel-control-next {\\n right: 0; }\\n\\n.carousel-control-prev-icon,\\n.carousel-control-next-icon {\\n display: inline-block;\\n width: 20px;\\n height: 20px;\\n background: no-repeat 50% / 100% 100%; }\\n\\n.carousel-control-prev-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\\\"); }\\n\\n.carousel-control-next-icon {\\n background-image: url(\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\\\"); }\\n\\n.carousel-indicators {\\n position: absolute;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 15;\\n display: flex;\\n justify-content: center;\\n padding-left: 0;\\n margin-right: 15%;\\n margin-left: 15%;\\n list-style: none; }\\n .carousel-indicators li {\\n box-sizing: content-box;\\n flex: 0 1 auto;\\n width: 30px;\\n height: 3px;\\n margin-right: 3px;\\n margin-left: 3px;\\n text-indent: -999px;\\n cursor: pointer;\\n background-color: #fff;\\n background-clip: padding-box;\\n border-top: 10px solid transparent;\\n border-bottom: 10px solid transparent;\\n opacity: .5;\\n transition: opacity 0.6s ease; }\\n @media (prefers-reduced-motion: reduce) {\\n .carousel-indicators li {\\n transition: none; } }\\n .carousel-indicators .active {\\n opacity: 1; }\\n\\n.carousel-caption {\\n position: absolute;\\n right: 15%;\\n bottom: 20px;\\n left: 15%;\\n z-index: 10;\\n padding-top: 20px;\\n padding-bottom: 20px;\\n color: #fff;\\n text-align: center; }\\n\\n@keyframes spinner-border {\\n to {\\n transform: rotate(360deg); } }\\n\\n.spinner-border {\\n display: inline-block;\\n width: 2rem;\\n height: 2rem;\\n vertical-align: text-bottom;\\n border: 0.25em solid currentColor;\\n border-right-color: transparent;\\n border-radius: 50%;\\n animation: spinner-border .75s linear infinite; }\\n\\n.spinner-border-sm {\\n width: 1rem;\\n height: 1rem;\\n border-width: 0.2em; }\\n\\n@keyframes spinner-grow {\\n 0% {\\n transform: scale(0); }\\n 50% {\\n opacity: 1;\\n transform: none; } }\\n\\n.spinner-grow {\\n display: inline-block;\\n width: 2rem;\\n height: 2rem;\\n vertical-align: text-bottom;\\n background-color: currentColor;\\n border-radius: 50%;\\n opacity: 0;\\n animation: spinner-grow .75s linear infinite; }\\n\\n.spinner-grow-sm {\\n width: 1rem;\\n height: 1rem; }\\n\\n.align-baseline {\\n vertical-align: baseline !important; }\\n\\n.align-top {\\n vertical-align: top !important; }\\n\\n.align-middle {\\n vertical-align: middle !important; }\\n\\n.align-bottom {\\n vertical-align: bottom !important; }\\n\\n.align-text-bottom {\\n vertical-align: text-bottom !important; }\\n\\n.align-text-top {\\n vertical-align: text-top !important; }\\n\\n.bg-primary {\\n background-color: #205492 !important; }\\n\\na.bg-primary:hover, a.bg-primary:focus,\\nbutton.bg-primary:hover,\\nbutton.bg-primary:focus {\\n background-color: #173c68 !important; }\\n\\n.bg-secondary {\\n background-color: #6c757d !important; }\\n\\na.bg-secondary:hover, a.bg-secondary:focus,\\nbutton.bg-secondary:hover,\\nbutton.bg-secondary:focus {\\n background-color: #545b62 !important; }\\n\\n.bg-success {\\n background-color: #28a745 !important; }\\n\\na.bg-success:hover, a.bg-success:focus,\\nbutton.bg-success:hover,\\nbutton.bg-success:focus {\\n background-color: #1e7e34 !important; }\\n\\n.bg-info {\\n background-color: #17a2b8 !important; }\\n\\na.bg-info:hover, a.bg-info:focus,\\nbutton.bg-info:hover,\\nbutton.bg-info:focus {\\n background-color: #117a8b !important; }\\n\\n.bg-warning {\\n background-color: #ffc107 !important; }\\n\\na.bg-warning:hover, a.bg-warning:focus,\\nbutton.bg-warning:hover,\\nbutton.bg-warning:focus {\\n background-color: #d39e00 !important; }\\n\\n.bg-danger {\\n background-color: #dc3545 !important; }\\n\\na.bg-danger:hover, a.bg-danger:focus,\\nbutton.bg-danger:hover,\\nbutton.bg-danger:focus {\\n background-color: #bd2130 !important; }\\n\\n.bg-light {\\n background-color: #f8f9fa !important; }\\n\\na.bg-light:hover, a.bg-light:focus,\\nbutton.bg-light:hover,\\nbutton.bg-light:focus {\\n background-color: #dae0e5 !important; }\\n\\n.bg-dark {\\n background-color: #343a40 !important; }\\n\\na.bg-dark:hover, a.bg-dark:focus,\\nbutton.bg-dark:hover,\\nbutton.bg-dark:focus {\\n background-color: #1d2124 !important; }\\n\\n.bg-white {\\n background-color: #fff !important; }\\n\\n.bg-transparent {\\n background-color: transparent !important; }\\n\\n.border {\\n border: 1px solid #dee2e6 !important; }\\n\\n.border-top {\\n border-top: 1px solid #dee2e6 !important; }\\n\\n.border-right {\\n border-right: 1px solid #dee2e6 !important; }\\n\\n.border-bottom {\\n border-bottom: 1px solid #dee2e6 !important; }\\n\\n.border-left {\\n border-left: 1px solid #dee2e6 !important; }\\n\\n.border-0 {\\n border: 0 !important; }\\n\\n.border-top-0 {\\n border-top: 0 !important; }\\n\\n.border-right-0 {\\n border-right: 0 !important; }\\n\\n.border-bottom-0 {\\n border-bottom: 0 !important; }\\n\\n.border-left-0 {\\n border-left: 0 !important; }\\n\\n.border-primary {\\n border-color: #205492 !important; }\\n\\n.border-secondary {\\n border-color: #6c757d !important; }\\n\\n.border-success {\\n border-color: #28a745 !important; }\\n\\n.border-info {\\n border-color: #17a2b8 !important; }\\n\\n.border-warning {\\n border-color: #ffc107 !important; }\\n\\n.border-danger {\\n border-color: #dc3545 !important; }\\n\\n.border-light {\\n border-color: #f8f9fa !important; }\\n\\n.border-dark {\\n border-color: #343a40 !important; }\\n\\n.border-white {\\n border-color: #fff !important; }\\n\\n.rounded-sm {\\n border-radius: 0.2rem !important; }\\n\\n.rounded {\\n border-radius: 0.25rem !important; }\\n\\n.rounded-top {\\n border-top-left-radius: 0.25rem !important;\\n border-top-right-radius: 0.25rem !important; }\\n\\n.rounded-right {\\n border-top-right-radius: 0.25rem !important;\\n border-bottom-right-radius: 0.25rem !important; }\\n\\n.rounded-bottom {\\n border-bottom-right-radius: 0.25rem !important;\\n border-bottom-left-radius: 0.25rem !important; }\\n\\n.rounded-left {\\n border-top-left-radius: 0.25rem !important;\\n border-bottom-left-radius: 0.25rem !important; }\\n\\n.rounded-lg {\\n border-radius: 0.3rem !important; }\\n\\n.rounded-circle {\\n border-radius: 50% !important; }\\n\\n.rounded-pill {\\n border-radius: 50rem !important; }\\n\\n.rounded-0 {\\n border-radius: 0 !important; }\\n\\n.clearfix::after {\\n display: block;\\n clear: both;\\n content: \\\"\\\"; }\\n\\n.d-none {\\n display: none !important; }\\n\\n.d-inline {\\n display: inline !important; }\\n\\n.d-inline-block {\\n display: inline-block !important; }\\n\\n.d-block {\\n display: block !important; }\\n\\n.d-table {\\n display: table !important; }\\n\\n.d-table-row {\\n display: table-row !important; }\\n\\n.d-table-cell {\\n display: table-cell !important; }\\n\\n.d-flex {\\n display: flex !important; }\\n\\n.d-inline-flex {\\n display: inline-flex !important; }\\n\\n@media (min-width: 576px) {\\n .d-sm-none {\\n display: none !important; }\\n .d-sm-inline {\\n display: inline !important; }\\n .d-sm-inline-block {\\n display: inline-block !important; }\\n .d-sm-block {\\n display: block !important; }\\n .d-sm-table {\\n display: table !important; }\\n .d-sm-table-row {\\n display: table-row !important; }\\n .d-sm-table-cell {\\n display: table-cell !important; }\\n .d-sm-flex {\\n display: flex !important; }\\n .d-sm-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media (min-width: 768px) {\\n .d-md-none {\\n display: none !important; }\\n .d-md-inline {\\n display: inline !important; }\\n .d-md-inline-block {\\n display: inline-block !important; }\\n .d-md-block {\\n display: block !important; }\\n .d-md-table {\\n display: table !important; }\\n .d-md-table-row {\\n display: table-row !important; }\\n .d-md-table-cell {\\n display: table-cell !important; }\\n .d-md-flex {\\n display: flex !important; }\\n .d-md-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media (min-width: 992px) {\\n .d-lg-none {\\n display: none !important; }\\n .d-lg-inline {\\n display: inline !important; }\\n .d-lg-inline-block {\\n display: inline-block !important; }\\n .d-lg-block {\\n display: block !important; }\\n .d-lg-table {\\n display: table !important; }\\n .d-lg-table-row {\\n display: table-row !important; }\\n .d-lg-table-cell {\\n display: table-cell !important; }\\n .d-lg-flex {\\n display: flex !important; }\\n .d-lg-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media (min-width: 1200px) {\\n .d-xl-none {\\n display: none !important; }\\n .d-xl-inline {\\n display: inline !important; }\\n .d-xl-inline-block {\\n display: inline-block !important; }\\n .d-xl-block {\\n display: block !important; }\\n .d-xl-table {\\n display: table !important; }\\n .d-xl-table-row {\\n display: table-row !important; }\\n .d-xl-table-cell {\\n display: table-cell !important; }\\n .d-xl-flex {\\n display: flex !important; }\\n .d-xl-inline-flex {\\n display: inline-flex !important; } }\\n\\n@media print {\\n .d-print-none {\\n display: none !important; }\\n .d-print-inline {\\n display: inline !important; }\\n .d-print-inline-block {\\n display: inline-block !important; }\\n .d-print-block {\\n display: block !important; }\\n .d-print-table {\\n display: table !important; }\\n .d-print-table-row {\\n display: table-row !important; }\\n .d-print-table-cell {\\n display: table-cell !important; }\\n .d-print-flex {\\n display: flex !important; }\\n .d-print-inline-flex {\\n display: inline-flex !important; } }\\n\\n.embed-responsive {\\n position: relative;\\n display: block;\\n width: 100%;\\n padding: 0;\\n overflow: hidden; }\\n .embed-responsive::before {\\n display: block;\\n content: \\\"\\\"; }\\n .embed-responsive .embed-responsive-item,\\n .embed-responsive iframe,\\n .embed-responsive embed,\\n .embed-responsive object,\\n .embed-responsive video {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0; }\\n\\n.embed-responsive-21by9::before {\\n padding-top: 42.85714%; }\\n\\n.embed-responsive-16by9::before {\\n padding-top: 56.25%; }\\n\\n.embed-responsive-4by3::before {\\n padding-top: 75%; }\\n\\n.embed-responsive-1by1::before {\\n padding-top: 100%; }\\n\\n.flex-row {\\n flex-direction: row !important; }\\n\\n.flex-column {\\n flex-direction: column !important; }\\n\\n.flex-row-reverse {\\n flex-direction: row-reverse !important; }\\n\\n.flex-column-reverse {\\n flex-direction: column-reverse !important; }\\n\\n.flex-wrap {\\n flex-wrap: wrap !important; }\\n\\n.flex-nowrap {\\n flex-wrap: nowrap !important; }\\n\\n.flex-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n\\n.flex-fill {\\n flex: 1 1 auto !important; }\\n\\n.flex-grow-0 {\\n flex-grow: 0 !important; }\\n\\n.flex-grow-1 {\\n flex-grow: 1 !important; }\\n\\n.flex-shrink-0 {\\n flex-shrink: 0 !important; }\\n\\n.flex-shrink-1 {\\n flex-shrink: 1 !important; }\\n\\n.justify-content-start {\\n justify-content: flex-start !important; }\\n\\n.justify-content-end {\\n justify-content: flex-end !important; }\\n\\n.justify-content-center {\\n justify-content: center !important; }\\n\\n.justify-content-between {\\n justify-content: space-between !important; }\\n\\n.justify-content-around {\\n justify-content: space-around !important; }\\n\\n.align-items-start {\\n align-items: flex-start !important; }\\n\\n.align-items-end {\\n align-items: flex-end !important; }\\n\\n.align-items-center {\\n align-items: center !important; }\\n\\n.align-items-baseline {\\n align-items: baseline !important; }\\n\\n.align-items-stretch {\\n align-items: stretch !important; }\\n\\n.align-content-start {\\n align-content: flex-start !important; }\\n\\n.align-content-end {\\n align-content: flex-end !important; }\\n\\n.align-content-center {\\n align-content: center !important; }\\n\\n.align-content-between {\\n align-content: space-between !important; }\\n\\n.align-content-around {\\n align-content: space-around !important; }\\n\\n.align-content-stretch {\\n align-content: stretch !important; }\\n\\n.align-self-auto {\\n align-self: auto !important; }\\n\\n.align-self-start {\\n align-self: flex-start !important; }\\n\\n.align-self-end {\\n align-self: flex-end !important; }\\n\\n.align-self-center {\\n align-self: center !important; }\\n\\n.align-self-baseline {\\n align-self: baseline !important; }\\n\\n.align-self-stretch {\\n align-self: stretch !important; }\\n\\n@media (min-width: 576px) {\\n .flex-sm-row {\\n flex-direction: row !important; }\\n .flex-sm-column {\\n flex-direction: column !important; }\\n .flex-sm-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-sm-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-sm-wrap {\\n flex-wrap: wrap !important; }\\n .flex-sm-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-sm-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-sm-fill {\\n flex: 1 1 auto !important; }\\n .flex-sm-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-sm-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-sm-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-sm-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-sm-start {\\n justify-content: flex-start !important; }\\n .justify-content-sm-end {\\n justify-content: flex-end !important; }\\n .justify-content-sm-center {\\n justify-content: center !important; }\\n .justify-content-sm-between {\\n justify-content: space-between !important; }\\n .justify-content-sm-around {\\n justify-content: space-around !important; }\\n .align-items-sm-start {\\n align-items: flex-start !important; }\\n .align-items-sm-end {\\n align-items: flex-end !important; }\\n .align-items-sm-center {\\n align-items: center !important; }\\n .align-items-sm-baseline {\\n align-items: baseline !important; }\\n .align-items-sm-stretch {\\n align-items: stretch !important; }\\n .align-content-sm-start {\\n align-content: flex-start !important; }\\n .align-content-sm-end {\\n align-content: flex-end !important; }\\n .align-content-sm-center {\\n align-content: center !important; }\\n .align-content-sm-between {\\n align-content: space-between !important; }\\n .align-content-sm-around {\\n align-content: space-around !important; }\\n .align-content-sm-stretch {\\n align-content: stretch !important; }\\n .align-self-sm-auto {\\n align-self: auto !important; }\\n .align-self-sm-start {\\n align-self: flex-start !important; }\\n .align-self-sm-end {\\n align-self: flex-end !important; }\\n .align-self-sm-center {\\n align-self: center !important; }\\n .align-self-sm-baseline {\\n align-self: baseline !important; }\\n .align-self-sm-stretch {\\n align-self: stretch !important; } }\\n\\n@media (min-width: 768px) {\\n .flex-md-row {\\n flex-direction: row !important; }\\n .flex-md-column {\\n flex-direction: column !important; }\\n .flex-md-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-md-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-md-wrap {\\n flex-wrap: wrap !important; }\\n .flex-md-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-md-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-md-fill {\\n flex: 1 1 auto !important; }\\n .flex-md-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-md-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-md-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-md-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-md-start {\\n justify-content: flex-start !important; }\\n .justify-content-md-end {\\n justify-content: flex-end !important; }\\n .justify-content-md-center {\\n justify-content: center !important; }\\n .justify-content-md-between {\\n justify-content: space-between !important; }\\n .justify-content-md-around {\\n justify-content: space-around !important; }\\n .align-items-md-start {\\n align-items: flex-start !important; }\\n .align-items-md-end {\\n align-items: flex-end !important; }\\n .align-items-md-center {\\n align-items: center !important; }\\n .align-items-md-baseline {\\n align-items: baseline !important; }\\n .align-items-md-stretch {\\n align-items: stretch !important; }\\n .align-content-md-start {\\n align-content: flex-start !important; }\\n .align-content-md-end {\\n align-content: flex-end !important; }\\n .align-content-md-center {\\n align-content: center !important; }\\n .align-content-md-between {\\n align-content: space-between !important; }\\n .align-content-md-around {\\n align-content: space-around !important; }\\n .align-content-md-stretch {\\n align-content: stretch !important; }\\n .align-self-md-auto {\\n align-self: auto !important; }\\n .align-self-md-start {\\n align-self: flex-start !important; }\\n .align-self-md-end {\\n align-self: flex-end !important; }\\n .align-self-md-center {\\n align-self: center !important; }\\n .align-self-md-baseline {\\n align-self: baseline !important; }\\n .align-self-md-stretch {\\n align-self: stretch !important; } }\\n\\n@media (min-width: 992px) {\\n .flex-lg-row {\\n flex-direction: row !important; }\\n .flex-lg-column {\\n flex-direction: column !important; }\\n .flex-lg-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-lg-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-lg-wrap {\\n flex-wrap: wrap !important; }\\n .flex-lg-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-lg-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-lg-fill {\\n flex: 1 1 auto !important; }\\n .flex-lg-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-lg-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-lg-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-lg-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-lg-start {\\n justify-content: flex-start !important; }\\n .justify-content-lg-end {\\n justify-content: flex-end !important; }\\n .justify-content-lg-center {\\n justify-content: center !important; }\\n .justify-content-lg-between {\\n justify-content: space-between !important; }\\n .justify-content-lg-around {\\n justify-content: space-around !important; }\\n .align-items-lg-start {\\n align-items: flex-start !important; }\\n .align-items-lg-end {\\n align-items: flex-end !important; }\\n .align-items-lg-center {\\n align-items: center !important; }\\n .align-items-lg-baseline {\\n align-items: baseline !important; }\\n .align-items-lg-stretch {\\n align-items: stretch !important; }\\n .align-content-lg-start {\\n align-content: flex-start !important; }\\n .align-content-lg-end {\\n align-content: flex-end !important; }\\n .align-content-lg-center {\\n align-content: center !important; }\\n .align-content-lg-between {\\n align-content: space-between !important; }\\n .align-content-lg-around {\\n align-content: space-around !important; }\\n .align-content-lg-stretch {\\n align-content: stretch !important; }\\n .align-self-lg-auto {\\n align-self: auto !important; }\\n .align-self-lg-start {\\n align-self: flex-start !important; }\\n .align-self-lg-end {\\n align-self: flex-end !important; }\\n .align-self-lg-center {\\n align-self: center !important; }\\n .align-self-lg-baseline {\\n align-self: baseline !important; }\\n .align-self-lg-stretch {\\n align-self: stretch !important; } }\\n\\n@media (min-width: 1200px) {\\n .flex-xl-row {\\n flex-direction: row !important; }\\n .flex-xl-column {\\n flex-direction: column !important; }\\n .flex-xl-row-reverse {\\n flex-direction: row-reverse !important; }\\n .flex-xl-column-reverse {\\n flex-direction: column-reverse !important; }\\n .flex-xl-wrap {\\n flex-wrap: wrap !important; }\\n .flex-xl-nowrap {\\n flex-wrap: nowrap !important; }\\n .flex-xl-wrap-reverse {\\n flex-wrap: wrap-reverse !important; }\\n .flex-xl-fill {\\n flex: 1 1 auto !important; }\\n .flex-xl-grow-0 {\\n flex-grow: 0 !important; }\\n .flex-xl-grow-1 {\\n flex-grow: 1 !important; }\\n .flex-xl-shrink-0 {\\n flex-shrink: 0 !important; }\\n .flex-xl-shrink-1 {\\n flex-shrink: 1 !important; }\\n .justify-content-xl-start {\\n justify-content: flex-start !important; }\\n .justify-content-xl-end {\\n justify-content: flex-end !important; }\\n .justify-content-xl-center {\\n justify-content: center !important; }\\n .justify-content-xl-between {\\n justify-content: space-between !important; }\\n .justify-content-xl-around {\\n justify-content: space-around !important; }\\n .align-items-xl-start {\\n align-items: flex-start !important; }\\n .align-items-xl-end {\\n align-items: flex-end !important; }\\n .align-items-xl-center {\\n align-items: center !important; }\\n .align-items-xl-baseline {\\n align-items: baseline !important; }\\n .align-items-xl-stretch {\\n align-items: stretch !important; }\\n .align-content-xl-start {\\n align-content: flex-start !important; }\\n .align-content-xl-end {\\n align-content: flex-end !important; }\\n .align-content-xl-center {\\n align-content: center !important; }\\n .align-content-xl-between {\\n align-content: space-between !important; }\\n .align-content-xl-around {\\n align-content: space-around !important; }\\n .align-content-xl-stretch {\\n align-content: stretch !important; }\\n .align-self-xl-auto {\\n align-self: auto !important; }\\n .align-self-xl-start {\\n align-self: flex-start !important; }\\n .align-self-xl-end {\\n align-self: flex-end !important; }\\n .align-self-xl-center {\\n align-self: center !important; }\\n .align-self-xl-baseline {\\n align-self: baseline !important; }\\n .align-self-xl-stretch {\\n align-self: stretch !important; } }\\n\\n.float-left {\\n float: left !important; }\\n\\n.float-right {\\n float: right !important; }\\n\\n.float-none {\\n float: none !important; }\\n\\n@media (min-width: 576px) {\\n .float-sm-left {\\n float: left !important; }\\n .float-sm-right {\\n float: right !important; }\\n .float-sm-none {\\n float: none !important; } }\\n\\n@media (min-width: 768px) {\\n .float-md-left {\\n float: left !important; }\\n .float-md-right {\\n float: right !important; }\\n .float-md-none {\\n float: none !important; } }\\n\\n@media (min-width: 992px) {\\n .float-lg-left {\\n float: left !important; }\\n .float-lg-right {\\n float: right !important; }\\n .float-lg-none {\\n float: none !important; } }\\n\\n@media (min-width: 1200px) {\\n .float-xl-left {\\n float: left !important; }\\n .float-xl-right {\\n float: right !important; }\\n .float-xl-none {\\n float: none !important; } }\\n\\n.user-select-all {\\n user-select: all !important; }\\n\\n.user-select-auto {\\n user-select: auto !important; }\\n\\n.user-select-none {\\n user-select: none !important; }\\n\\n.overflow-auto {\\n overflow: auto !important; }\\n\\n.overflow-hidden {\\n overflow: hidden !important; }\\n\\n.position-static {\\n position: static !important; }\\n\\n.position-relative {\\n position: relative !important; }\\n\\n.position-absolute {\\n position: absolute !important; }\\n\\n.position-fixed {\\n position: fixed !important; }\\n\\n.position-sticky {\\n position: sticky !important; }\\n\\n.fixed-top {\\n position: fixed;\\n top: 0;\\n right: 0;\\n left: 0;\\n z-index: 1030; }\\n\\n.fixed-bottom {\\n position: fixed;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1030; }\\n\\n@supports (position: sticky) {\\n .sticky-top {\\n position: sticky;\\n top: 0;\\n z-index: 1020; } }\\n\\n.sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border: 0; }\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n position: static;\\n width: auto;\\n height: auto;\\n overflow: visible;\\n clip: auto;\\n white-space: normal; }\\n\\n.shadow-sm {\\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\\n\\n.shadow {\\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\\n\\n.shadow-lg {\\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\\n\\n.shadow-none {\\n box-shadow: none !important; }\\n\\n.w-25 {\\n width: 25% !important; }\\n\\n.w-50 {\\n width: 50% !important; }\\n\\n.w-75 {\\n width: 75% !important; }\\n\\n.w-100 {\\n width: 100% !important; }\\n\\n.w-auto {\\n width: auto !important; }\\n\\n.h-25 {\\n height: 25% !important; }\\n\\n.h-50 {\\n height: 50% !important; }\\n\\n.h-75 {\\n height: 75% !important; }\\n\\n.h-100 {\\n height: 100% !important; }\\n\\n.h-auto {\\n height: auto !important; }\\n\\n.mw-100 {\\n max-width: 100% !important; }\\n\\n.mh-100 {\\n max-height: 100% !important; }\\n\\n.min-vw-100 {\\n min-width: 100vw !important; }\\n\\n.min-vh-100 {\\n min-height: 100vh !important; }\\n\\n.vw-100 {\\n width: 100vw !important; }\\n\\n.vh-100 {\\n height: 100vh !important; }\\n\\n.m-0 {\\n margin: 0 !important; }\\n\\n.mt-0,\\n.my-0 {\\n margin-top: 0 !important; }\\n\\n.mr-0,\\n.mx-0 {\\n margin-right: 0 !important; }\\n\\n.mb-0,\\n.my-0 {\\n margin-bottom: 0 !important; }\\n\\n.ml-0,\\n.mx-0 {\\n margin-left: 0 !important; }\\n\\n.m-1 {\\n margin: 0.25rem !important; }\\n\\n.mt-1,\\n.my-1 {\\n margin-top: 0.25rem !important; }\\n\\n.mr-1,\\n.mx-1 {\\n margin-right: 0.25rem !important; }\\n\\n.mb-1,\\n.my-1 {\\n margin-bottom: 0.25rem !important; }\\n\\n.ml-1,\\n.mx-1 {\\n margin-left: 0.25rem !important; }\\n\\n.m-2 {\\n margin: 0.5rem !important; }\\n\\n.mt-2,\\n.my-2 {\\n margin-top: 0.5rem !important; }\\n\\n.mr-2,\\n.mx-2 {\\n margin-right: 0.5rem !important; }\\n\\n.mb-2,\\n.my-2 {\\n margin-bottom: 0.5rem !important; }\\n\\n.ml-2,\\n.mx-2 {\\n margin-left: 0.5rem !important; }\\n\\n.m-3 {\\n margin: 1rem !important; }\\n\\n.mt-3,\\n.my-3 {\\n margin-top: 1rem !important; }\\n\\n.mr-3,\\n.mx-3 {\\n margin-right: 1rem !important; }\\n\\n.mb-3,\\n.my-3 {\\n margin-bottom: 1rem !important; }\\n\\n.ml-3,\\n.mx-3 {\\n margin-left: 1rem !important; }\\n\\n.m-4 {\\n margin: 1.5rem !important; }\\n\\n.mt-4,\\n.my-4 {\\n margin-top: 1.5rem !important; }\\n\\n.mr-4,\\n.mx-4 {\\n margin-right: 1.5rem !important; }\\n\\n.mb-4,\\n.my-4 {\\n margin-bottom: 1.5rem !important; }\\n\\n.ml-4,\\n.mx-4 {\\n margin-left: 1.5rem !important; }\\n\\n.m-5 {\\n margin: 3rem !important; }\\n\\n.mt-5,\\n.my-5 {\\n margin-top: 3rem !important; }\\n\\n.mr-5,\\n.mx-5 {\\n margin-right: 3rem !important; }\\n\\n.mb-5,\\n.my-5 {\\n margin-bottom: 3rem !important; }\\n\\n.ml-5,\\n.mx-5 {\\n margin-left: 3rem !important; }\\n\\n.p-0 {\\n padding: 0 !important; }\\n\\n.pt-0,\\n.py-0 {\\n padding-top: 0 !important; }\\n\\n.pr-0,\\n.px-0 {\\n padding-right: 0 !important; }\\n\\n.pb-0,\\n.py-0 {\\n padding-bottom: 0 !important; }\\n\\n.pl-0,\\n.px-0 {\\n padding-left: 0 !important; }\\n\\n.p-1 {\\n padding: 0.25rem !important; }\\n\\n.pt-1,\\n.py-1 {\\n padding-top: 0.25rem !important; }\\n\\n.pr-1,\\n.px-1 {\\n padding-right: 0.25rem !important; }\\n\\n.pb-1,\\n.py-1 {\\n padding-bottom: 0.25rem !important; }\\n\\n.pl-1,\\n.px-1 {\\n padding-left: 0.25rem !important; }\\n\\n.p-2 {\\n padding: 0.5rem !important; }\\n\\n.pt-2,\\n.py-2 {\\n padding-top: 0.5rem !important; }\\n\\n.pr-2,\\n.px-2 {\\n padding-right: 0.5rem !important; }\\n\\n.pb-2,\\n.py-2 {\\n padding-bottom: 0.5rem !important; }\\n\\n.pl-2,\\n.px-2 {\\n padding-left: 0.5rem !important; }\\n\\n.p-3 {\\n padding: 1rem !important; }\\n\\n.pt-3,\\n.py-3 {\\n padding-top: 1rem !important; }\\n\\n.pr-3,\\n.px-3 {\\n padding-right: 1rem !important; }\\n\\n.pb-3,\\n.py-3 {\\n padding-bottom: 1rem !important; }\\n\\n.pl-3,\\n.px-3 {\\n padding-left: 1rem !important; }\\n\\n.p-4 {\\n padding: 1.5rem !important; }\\n\\n.pt-4,\\n.py-4 {\\n padding-top: 1.5rem !important; }\\n\\n.pr-4,\\n.px-4 {\\n padding-right: 1.5rem !important; }\\n\\n.pb-4,\\n.py-4 {\\n padding-bottom: 1.5rem !important; }\\n\\n.pl-4,\\n.px-4 {\\n padding-left: 1.5rem !important; }\\n\\n.p-5 {\\n padding: 3rem !important; }\\n\\n.pt-5,\\n.py-5 {\\n padding-top: 3rem !important; }\\n\\n.pr-5,\\n.px-5 {\\n padding-right: 3rem !important; }\\n\\n.pb-5,\\n.py-5 {\\n padding-bottom: 3rem !important; }\\n\\n.pl-5,\\n.px-5 {\\n padding-left: 3rem !important; }\\n\\n.m-n1 {\\n margin: -0.25rem !important; }\\n\\n.mt-n1,\\n.my-n1 {\\n margin-top: -0.25rem !important; }\\n\\n.mr-n1,\\n.mx-n1 {\\n margin-right: -0.25rem !important; }\\n\\n.mb-n1,\\n.my-n1 {\\n margin-bottom: -0.25rem !important; }\\n\\n.ml-n1,\\n.mx-n1 {\\n margin-left: -0.25rem !important; }\\n\\n.m-n2 {\\n margin: -0.5rem !important; }\\n\\n.mt-n2,\\n.my-n2 {\\n margin-top: -0.5rem !important; }\\n\\n.mr-n2,\\n.mx-n2 {\\n margin-right: -0.5rem !important; }\\n\\n.mb-n2,\\n.my-n2 {\\n margin-bottom: -0.5rem !important; }\\n\\n.ml-n2,\\n.mx-n2 {\\n margin-left: -0.5rem !important; }\\n\\n.m-n3 {\\n margin: -1rem !important; }\\n\\n.mt-n3,\\n.my-n3 {\\n margin-top: -1rem !important; }\\n\\n.mr-n3,\\n.mx-n3 {\\n margin-right: -1rem !important; }\\n\\n.mb-n3,\\n.my-n3 {\\n margin-bottom: -1rem !important; }\\n\\n.ml-n3,\\n.mx-n3 {\\n margin-left: -1rem !important; }\\n\\n.m-n4 {\\n margin: -1.5rem !important; }\\n\\n.mt-n4,\\n.my-n4 {\\n margin-top: -1.5rem !important; }\\n\\n.mr-n4,\\n.mx-n4 {\\n margin-right: -1.5rem !important; }\\n\\n.mb-n4,\\n.my-n4 {\\n margin-bottom: -1.5rem !important; }\\n\\n.ml-n4,\\n.mx-n4 {\\n margin-left: -1.5rem !important; }\\n\\n.m-n5 {\\n margin: -3rem !important; }\\n\\n.mt-n5,\\n.my-n5 {\\n margin-top: -3rem !important; }\\n\\n.mr-n5,\\n.mx-n5 {\\n margin-right: -3rem !important; }\\n\\n.mb-n5,\\n.my-n5 {\\n margin-bottom: -3rem !important; }\\n\\n.ml-n5,\\n.mx-n5 {\\n margin-left: -3rem !important; }\\n\\n.m-auto {\\n margin: auto !important; }\\n\\n.mt-auto,\\n.my-auto {\\n margin-top: auto !important; }\\n\\n.mr-auto,\\n.mx-auto {\\n margin-right: auto !important; }\\n\\n.mb-auto,\\n.my-auto {\\n margin-bottom: auto !important; }\\n\\n.ml-auto,\\n.mx-auto {\\n margin-left: auto !important; }\\n\\n@media (min-width: 576px) {\\n .m-sm-0 {\\n margin: 0 !important; }\\n .mt-sm-0,\\n .my-sm-0 {\\n margin-top: 0 !important; }\\n .mr-sm-0,\\n .mx-sm-0 {\\n margin-right: 0 !important; }\\n .mb-sm-0,\\n .my-sm-0 {\\n margin-bottom: 0 !important; }\\n .ml-sm-0,\\n .mx-sm-0 {\\n margin-left: 0 !important; }\\n .m-sm-1 {\\n margin: 0.25rem !important; }\\n .mt-sm-1,\\n .my-sm-1 {\\n margin-top: 0.25rem !important; }\\n .mr-sm-1,\\n .mx-sm-1 {\\n margin-right: 0.25rem !important; }\\n .mb-sm-1,\\n .my-sm-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-sm-1,\\n .mx-sm-1 {\\n margin-left: 0.25rem !important; }\\n .m-sm-2 {\\n margin: 0.5rem !important; }\\n .mt-sm-2,\\n .my-sm-2 {\\n margin-top: 0.5rem !important; }\\n .mr-sm-2,\\n .mx-sm-2 {\\n margin-right: 0.5rem !important; }\\n .mb-sm-2,\\n .my-sm-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-sm-2,\\n .mx-sm-2 {\\n margin-left: 0.5rem !important; }\\n .m-sm-3 {\\n margin: 1rem !important; }\\n .mt-sm-3,\\n .my-sm-3 {\\n margin-top: 1rem !important; }\\n .mr-sm-3,\\n .mx-sm-3 {\\n margin-right: 1rem !important; }\\n .mb-sm-3,\\n .my-sm-3 {\\n margin-bottom: 1rem !important; }\\n .ml-sm-3,\\n .mx-sm-3 {\\n margin-left: 1rem !important; }\\n .m-sm-4 {\\n margin: 1.5rem !important; }\\n .mt-sm-4,\\n .my-sm-4 {\\n margin-top: 1.5rem !important; }\\n .mr-sm-4,\\n .mx-sm-4 {\\n margin-right: 1.5rem !important; }\\n .mb-sm-4,\\n .my-sm-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-sm-4,\\n .mx-sm-4 {\\n margin-left: 1.5rem !important; }\\n .m-sm-5 {\\n margin: 3rem !important; }\\n .mt-sm-5,\\n .my-sm-5 {\\n margin-top: 3rem !important; }\\n .mr-sm-5,\\n .mx-sm-5 {\\n margin-right: 3rem !important; }\\n .mb-sm-5,\\n .my-sm-5 {\\n margin-bottom: 3rem !important; }\\n .ml-sm-5,\\n .mx-sm-5 {\\n margin-left: 3rem !important; }\\n .p-sm-0 {\\n padding: 0 !important; }\\n .pt-sm-0,\\n .py-sm-0 {\\n padding-top: 0 !important; }\\n .pr-sm-0,\\n .px-sm-0 {\\n padding-right: 0 !important; }\\n .pb-sm-0,\\n .py-sm-0 {\\n padding-bottom: 0 !important; }\\n .pl-sm-0,\\n .px-sm-0 {\\n padding-left: 0 !important; }\\n .p-sm-1 {\\n padding: 0.25rem !important; }\\n .pt-sm-1,\\n .py-sm-1 {\\n padding-top: 0.25rem !important; }\\n .pr-sm-1,\\n .px-sm-1 {\\n padding-right: 0.25rem !important; }\\n .pb-sm-1,\\n .py-sm-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-sm-1,\\n .px-sm-1 {\\n padding-left: 0.25rem !important; }\\n .p-sm-2 {\\n padding: 0.5rem !important; }\\n .pt-sm-2,\\n .py-sm-2 {\\n padding-top: 0.5rem !important; }\\n .pr-sm-2,\\n .px-sm-2 {\\n padding-right: 0.5rem !important; }\\n .pb-sm-2,\\n .py-sm-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-sm-2,\\n .px-sm-2 {\\n padding-left: 0.5rem !important; }\\n .p-sm-3 {\\n padding: 1rem !important; }\\n .pt-sm-3,\\n .py-sm-3 {\\n padding-top: 1rem !important; }\\n .pr-sm-3,\\n .px-sm-3 {\\n padding-right: 1rem !important; }\\n .pb-sm-3,\\n .py-sm-3 {\\n padding-bottom: 1rem !important; }\\n .pl-sm-3,\\n .px-sm-3 {\\n padding-left: 1rem !important; }\\n .p-sm-4 {\\n padding: 1.5rem !important; }\\n .pt-sm-4,\\n .py-sm-4 {\\n padding-top: 1.5rem !important; }\\n .pr-sm-4,\\n .px-sm-4 {\\n padding-right: 1.5rem !important; }\\n .pb-sm-4,\\n .py-sm-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-sm-4,\\n .px-sm-4 {\\n padding-left: 1.5rem !important; }\\n .p-sm-5 {\\n padding: 3rem !important; }\\n .pt-sm-5,\\n .py-sm-5 {\\n padding-top: 3rem !important; }\\n .pr-sm-5,\\n .px-sm-5 {\\n padding-right: 3rem !important; }\\n .pb-sm-5,\\n .py-sm-5 {\\n padding-bottom: 3rem !important; }\\n .pl-sm-5,\\n .px-sm-5 {\\n padding-left: 3rem !important; }\\n .m-sm-n1 {\\n margin: -0.25rem !important; }\\n .mt-sm-n1,\\n .my-sm-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-sm-n1,\\n .mx-sm-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-sm-n1,\\n .my-sm-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-sm-n1,\\n .mx-sm-n1 {\\n margin-left: -0.25rem !important; }\\n .m-sm-n2 {\\n margin: -0.5rem !important; }\\n .mt-sm-n2,\\n .my-sm-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-sm-n2,\\n .mx-sm-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-sm-n2,\\n .my-sm-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-sm-n2,\\n .mx-sm-n2 {\\n margin-left: -0.5rem !important; }\\n .m-sm-n3 {\\n margin: -1rem !important; }\\n .mt-sm-n3,\\n .my-sm-n3 {\\n margin-top: -1rem !important; }\\n .mr-sm-n3,\\n .mx-sm-n3 {\\n margin-right: -1rem !important; }\\n .mb-sm-n3,\\n .my-sm-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-sm-n3,\\n .mx-sm-n3 {\\n margin-left: -1rem !important; }\\n .m-sm-n4 {\\n margin: -1.5rem !important; }\\n .mt-sm-n4,\\n .my-sm-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-sm-n4,\\n .mx-sm-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-sm-n4,\\n .my-sm-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-sm-n4,\\n .mx-sm-n4 {\\n margin-left: -1.5rem !important; }\\n .m-sm-n5 {\\n margin: -3rem !important; }\\n .mt-sm-n5,\\n .my-sm-n5 {\\n margin-top: -3rem !important; }\\n .mr-sm-n5,\\n .mx-sm-n5 {\\n margin-right: -3rem !important; }\\n .mb-sm-n5,\\n .my-sm-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-sm-n5,\\n .mx-sm-n5 {\\n margin-left: -3rem !important; }\\n .m-sm-auto {\\n margin: auto !important; }\\n .mt-sm-auto,\\n .my-sm-auto {\\n margin-top: auto !important; }\\n .mr-sm-auto,\\n .mx-sm-auto {\\n margin-right: auto !important; }\\n .mb-sm-auto,\\n .my-sm-auto {\\n margin-bottom: auto !important; }\\n .ml-sm-auto,\\n .mx-sm-auto {\\n margin-left: auto !important; } }\\n\\n@media (min-width: 768px) {\\n .m-md-0 {\\n margin: 0 !important; }\\n .mt-md-0,\\n .my-md-0 {\\n margin-top: 0 !important; }\\n .mr-md-0,\\n .mx-md-0 {\\n margin-right: 0 !important; }\\n .mb-md-0,\\n .my-md-0 {\\n margin-bottom: 0 !important; }\\n .ml-md-0,\\n .mx-md-0 {\\n margin-left: 0 !important; }\\n .m-md-1 {\\n margin: 0.25rem !important; }\\n .mt-md-1,\\n .my-md-1 {\\n margin-top: 0.25rem !important; }\\n .mr-md-1,\\n .mx-md-1 {\\n margin-right: 0.25rem !important; }\\n .mb-md-1,\\n .my-md-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-md-1,\\n .mx-md-1 {\\n margin-left: 0.25rem !important; }\\n .m-md-2 {\\n margin: 0.5rem !important; }\\n .mt-md-2,\\n .my-md-2 {\\n margin-top: 0.5rem !important; }\\n .mr-md-2,\\n .mx-md-2 {\\n margin-right: 0.5rem !important; }\\n .mb-md-2,\\n .my-md-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-md-2,\\n .mx-md-2 {\\n margin-left: 0.5rem !important; }\\n .m-md-3 {\\n margin: 1rem !important; }\\n .mt-md-3,\\n .my-md-3 {\\n margin-top: 1rem !important; }\\n .mr-md-3,\\n .mx-md-3 {\\n margin-right: 1rem !important; }\\n .mb-md-3,\\n .my-md-3 {\\n margin-bottom: 1rem !important; }\\n .ml-md-3,\\n .mx-md-3 {\\n margin-left: 1rem !important; }\\n .m-md-4 {\\n margin: 1.5rem !important; }\\n .mt-md-4,\\n .my-md-4 {\\n margin-top: 1.5rem !important; }\\n .mr-md-4,\\n .mx-md-4 {\\n margin-right: 1.5rem !important; }\\n .mb-md-4,\\n .my-md-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-md-4,\\n .mx-md-4 {\\n margin-left: 1.5rem !important; }\\n .m-md-5 {\\n margin: 3rem !important; }\\n .mt-md-5,\\n .my-md-5 {\\n margin-top: 3rem !important; }\\n .mr-md-5,\\n .mx-md-5 {\\n margin-right: 3rem !important; }\\n .mb-md-5,\\n .my-md-5 {\\n margin-bottom: 3rem !important; }\\n .ml-md-5,\\n .mx-md-5 {\\n margin-left: 3rem !important; }\\n .p-md-0 {\\n padding: 0 !important; }\\n .pt-md-0,\\n .py-md-0 {\\n padding-top: 0 !important; }\\n .pr-md-0,\\n .px-md-0 {\\n padding-right: 0 !important; }\\n .pb-md-0,\\n .py-md-0 {\\n padding-bottom: 0 !important; }\\n .pl-md-0,\\n .px-md-0 {\\n padding-left: 0 !important; }\\n .p-md-1 {\\n padding: 0.25rem !important; }\\n .pt-md-1,\\n .py-md-1 {\\n padding-top: 0.25rem !important; }\\n .pr-md-1,\\n .px-md-1 {\\n padding-right: 0.25rem !important; }\\n .pb-md-1,\\n .py-md-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-md-1,\\n .px-md-1 {\\n padding-left: 0.25rem !important; }\\n .p-md-2 {\\n padding: 0.5rem !important; }\\n .pt-md-2,\\n .py-md-2 {\\n padding-top: 0.5rem !important; }\\n .pr-md-2,\\n .px-md-2 {\\n padding-right: 0.5rem !important; }\\n .pb-md-2,\\n .py-md-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-md-2,\\n .px-md-2 {\\n padding-left: 0.5rem !important; }\\n .p-md-3 {\\n padding: 1rem !important; }\\n .pt-md-3,\\n .py-md-3 {\\n padding-top: 1rem !important; }\\n .pr-md-3,\\n .px-md-3 {\\n padding-right: 1rem !important; }\\n .pb-md-3,\\n .py-md-3 {\\n padding-bottom: 1rem !important; }\\n .pl-md-3,\\n .px-md-3 {\\n padding-left: 1rem !important; }\\n .p-md-4 {\\n padding: 1.5rem !important; }\\n .pt-md-4,\\n .py-md-4 {\\n padding-top: 1.5rem !important; }\\n .pr-md-4,\\n .px-md-4 {\\n padding-right: 1.5rem !important; }\\n .pb-md-4,\\n .py-md-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-md-4,\\n .px-md-4 {\\n padding-left: 1.5rem !important; }\\n .p-md-5 {\\n padding: 3rem !important; }\\n .pt-md-5,\\n .py-md-5 {\\n padding-top: 3rem !important; }\\n .pr-md-5,\\n .px-md-5 {\\n padding-right: 3rem !important; }\\n .pb-md-5,\\n .py-md-5 {\\n padding-bottom: 3rem !important; }\\n .pl-md-5,\\n .px-md-5 {\\n padding-left: 3rem !important; }\\n .m-md-n1 {\\n margin: -0.25rem !important; }\\n .mt-md-n1,\\n .my-md-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-md-n1,\\n .mx-md-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-md-n1,\\n .my-md-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-md-n1,\\n .mx-md-n1 {\\n margin-left: -0.25rem !important; }\\n .m-md-n2 {\\n margin: -0.5rem !important; }\\n .mt-md-n2,\\n .my-md-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-md-n2,\\n .mx-md-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-md-n2,\\n .my-md-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-md-n2,\\n .mx-md-n2 {\\n margin-left: -0.5rem !important; }\\n .m-md-n3 {\\n margin: -1rem !important; }\\n .mt-md-n3,\\n .my-md-n3 {\\n margin-top: -1rem !important; }\\n .mr-md-n3,\\n .mx-md-n3 {\\n margin-right: -1rem !important; }\\n .mb-md-n3,\\n .my-md-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-md-n3,\\n .mx-md-n3 {\\n margin-left: -1rem !important; }\\n .m-md-n4 {\\n margin: -1.5rem !important; }\\n .mt-md-n4,\\n .my-md-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-md-n4,\\n .mx-md-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-md-n4,\\n .my-md-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-md-n4,\\n .mx-md-n4 {\\n margin-left: -1.5rem !important; }\\n .m-md-n5 {\\n margin: -3rem !important; }\\n .mt-md-n5,\\n .my-md-n5 {\\n margin-top: -3rem !important; }\\n .mr-md-n5,\\n .mx-md-n5 {\\n margin-right: -3rem !important; }\\n .mb-md-n5,\\n .my-md-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-md-n5,\\n .mx-md-n5 {\\n margin-left: -3rem !important; }\\n .m-md-auto {\\n margin: auto !important; }\\n .mt-md-auto,\\n .my-md-auto {\\n margin-top: auto !important; }\\n .mr-md-auto,\\n .mx-md-auto {\\n margin-right: auto !important; }\\n .mb-md-auto,\\n .my-md-auto {\\n margin-bottom: auto !important; }\\n .ml-md-auto,\\n .mx-md-auto {\\n margin-left: auto !important; } }\\n\\n@media (min-width: 992px) {\\n .m-lg-0 {\\n margin: 0 !important; }\\n .mt-lg-0,\\n .my-lg-0 {\\n margin-top: 0 !important; }\\n .mr-lg-0,\\n .mx-lg-0 {\\n margin-right: 0 !important; }\\n .mb-lg-0,\\n .my-lg-0 {\\n margin-bottom: 0 !important; }\\n .ml-lg-0,\\n .mx-lg-0 {\\n margin-left: 0 !important; }\\n .m-lg-1 {\\n margin: 0.25rem !important; }\\n .mt-lg-1,\\n .my-lg-1 {\\n margin-top: 0.25rem !important; }\\n .mr-lg-1,\\n .mx-lg-1 {\\n margin-right: 0.25rem !important; }\\n .mb-lg-1,\\n .my-lg-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-lg-1,\\n .mx-lg-1 {\\n margin-left: 0.25rem !important; }\\n .m-lg-2 {\\n margin: 0.5rem !important; }\\n .mt-lg-2,\\n .my-lg-2 {\\n margin-top: 0.5rem !important; }\\n .mr-lg-2,\\n .mx-lg-2 {\\n margin-right: 0.5rem !important; }\\n .mb-lg-2,\\n .my-lg-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-lg-2,\\n .mx-lg-2 {\\n margin-left: 0.5rem !important; }\\n .m-lg-3 {\\n margin: 1rem !important; }\\n .mt-lg-3,\\n .my-lg-3 {\\n margin-top: 1rem !important; }\\n .mr-lg-3,\\n .mx-lg-3 {\\n margin-right: 1rem !important; }\\n .mb-lg-3,\\n .my-lg-3 {\\n margin-bottom: 1rem !important; }\\n .ml-lg-3,\\n .mx-lg-3 {\\n margin-left: 1rem !important; }\\n .m-lg-4 {\\n margin: 1.5rem !important; }\\n .mt-lg-4,\\n .my-lg-4 {\\n margin-top: 1.5rem !important; }\\n .mr-lg-4,\\n .mx-lg-4 {\\n margin-right: 1.5rem !important; }\\n .mb-lg-4,\\n .my-lg-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-lg-4,\\n .mx-lg-4 {\\n margin-left: 1.5rem !important; }\\n .m-lg-5 {\\n margin: 3rem !important; }\\n .mt-lg-5,\\n .my-lg-5 {\\n margin-top: 3rem !important; }\\n .mr-lg-5,\\n .mx-lg-5 {\\n margin-right: 3rem !important; }\\n .mb-lg-5,\\n .my-lg-5 {\\n margin-bottom: 3rem !important; }\\n .ml-lg-5,\\n .mx-lg-5 {\\n margin-left: 3rem !important; }\\n .p-lg-0 {\\n padding: 0 !important; }\\n .pt-lg-0,\\n .py-lg-0 {\\n padding-top: 0 !important; }\\n .pr-lg-0,\\n .px-lg-0 {\\n padding-right: 0 !important; }\\n .pb-lg-0,\\n .py-lg-0 {\\n padding-bottom: 0 !important; }\\n .pl-lg-0,\\n .px-lg-0 {\\n padding-left: 0 !important; }\\n .p-lg-1 {\\n padding: 0.25rem !important; }\\n .pt-lg-1,\\n .py-lg-1 {\\n padding-top: 0.25rem !important; }\\n .pr-lg-1,\\n .px-lg-1 {\\n padding-right: 0.25rem !important; }\\n .pb-lg-1,\\n .py-lg-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-lg-1,\\n .px-lg-1 {\\n padding-left: 0.25rem !important; }\\n .p-lg-2 {\\n padding: 0.5rem !important; }\\n .pt-lg-2,\\n .py-lg-2 {\\n padding-top: 0.5rem !important; }\\n .pr-lg-2,\\n .px-lg-2 {\\n padding-right: 0.5rem !important; }\\n .pb-lg-2,\\n .py-lg-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-lg-2,\\n .px-lg-2 {\\n padding-left: 0.5rem !important; }\\n .p-lg-3 {\\n padding: 1rem !important; }\\n .pt-lg-3,\\n .py-lg-3 {\\n padding-top: 1rem !important; }\\n .pr-lg-3,\\n .px-lg-3 {\\n padding-right: 1rem !important; }\\n .pb-lg-3,\\n .py-lg-3 {\\n padding-bottom: 1rem !important; }\\n .pl-lg-3,\\n .px-lg-3 {\\n padding-left: 1rem !important; }\\n .p-lg-4 {\\n padding: 1.5rem !important; }\\n .pt-lg-4,\\n .py-lg-4 {\\n padding-top: 1.5rem !important; }\\n .pr-lg-4,\\n .px-lg-4 {\\n padding-right: 1.5rem !important; }\\n .pb-lg-4,\\n .py-lg-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-lg-4,\\n .px-lg-4 {\\n padding-left: 1.5rem !important; }\\n .p-lg-5 {\\n padding: 3rem !important; }\\n .pt-lg-5,\\n .py-lg-5 {\\n padding-top: 3rem !important; }\\n .pr-lg-5,\\n .px-lg-5 {\\n padding-right: 3rem !important; }\\n .pb-lg-5,\\n .py-lg-5 {\\n padding-bottom: 3rem !important; }\\n .pl-lg-5,\\n .px-lg-5 {\\n padding-left: 3rem !important; }\\n .m-lg-n1 {\\n margin: -0.25rem !important; }\\n .mt-lg-n1,\\n .my-lg-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-lg-n1,\\n .mx-lg-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-lg-n1,\\n .my-lg-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-lg-n1,\\n .mx-lg-n1 {\\n margin-left: -0.25rem !important; }\\n .m-lg-n2 {\\n margin: -0.5rem !important; }\\n .mt-lg-n2,\\n .my-lg-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-lg-n2,\\n .mx-lg-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-lg-n2,\\n .my-lg-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-lg-n2,\\n .mx-lg-n2 {\\n margin-left: -0.5rem !important; }\\n .m-lg-n3 {\\n margin: -1rem !important; }\\n .mt-lg-n3,\\n .my-lg-n3 {\\n margin-top: -1rem !important; }\\n .mr-lg-n3,\\n .mx-lg-n3 {\\n margin-right: -1rem !important; }\\n .mb-lg-n3,\\n .my-lg-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-lg-n3,\\n .mx-lg-n3 {\\n margin-left: -1rem !important; }\\n .m-lg-n4 {\\n margin: -1.5rem !important; }\\n .mt-lg-n4,\\n .my-lg-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-lg-n4,\\n .mx-lg-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-lg-n4,\\n .my-lg-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-lg-n4,\\n .mx-lg-n4 {\\n margin-left: -1.5rem !important; }\\n .m-lg-n5 {\\n margin: -3rem !important; }\\n .mt-lg-n5,\\n .my-lg-n5 {\\n margin-top: -3rem !important; }\\n .mr-lg-n5,\\n .mx-lg-n5 {\\n margin-right: -3rem !important; }\\n .mb-lg-n5,\\n .my-lg-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-lg-n5,\\n .mx-lg-n5 {\\n margin-left: -3rem !important; }\\n .m-lg-auto {\\n margin: auto !important; }\\n .mt-lg-auto,\\n .my-lg-auto {\\n margin-top: auto !important; }\\n .mr-lg-auto,\\n .mx-lg-auto {\\n margin-right: auto !important; }\\n .mb-lg-auto,\\n .my-lg-auto {\\n margin-bottom: auto !important; }\\n .ml-lg-auto,\\n .mx-lg-auto {\\n margin-left: auto !important; } }\\n\\n@media (min-width: 1200px) {\\n .m-xl-0 {\\n margin: 0 !important; }\\n .mt-xl-0,\\n .my-xl-0 {\\n margin-top: 0 !important; }\\n .mr-xl-0,\\n .mx-xl-0 {\\n margin-right: 0 !important; }\\n .mb-xl-0,\\n .my-xl-0 {\\n margin-bottom: 0 !important; }\\n .ml-xl-0,\\n .mx-xl-0 {\\n margin-left: 0 !important; }\\n .m-xl-1 {\\n margin: 0.25rem !important; }\\n .mt-xl-1,\\n .my-xl-1 {\\n margin-top: 0.25rem !important; }\\n .mr-xl-1,\\n .mx-xl-1 {\\n margin-right: 0.25rem !important; }\\n .mb-xl-1,\\n .my-xl-1 {\\n margin-bottom: 0.25rem !important; }\\n .ml-xl-1,\\n .mx-xl-1 {\\n margin-left: 0.25rem !important; }\\n .m-xl-2 {\\n margin: 0.5rem !important; }\\n .mt-xl-2,\\n .my-xl-2 {\\n margin-top: 0.5rem !important; }\\n .mr-xl-2,\\n .mx-xl-2 {\\n margin-right: 0.5rem !important; }\\n .mb-xl-2,\\n .my-xl-2 {\\n margin-bottom: 0.5rem !important; }\\n .ml-xl-2,\\n .mx-xl-2 {\\n margin-left: 0.5rem !important; }\\n .m-xl-3 {\\n margin: 1rem !important; }\\n .mt-xl-3,\\n .my-xl-3 {\\n margin-top: 1rem !important; }\\n .mr-xl-3,\\n .mx-xl-3 {\\n margin-right: 1rem !important; }\\n .mb-xl-3,\\n .my-xl-3 {\\n margin-bottom: 1rem !important; }\\n .ml-xl-3,\\n .mx-xl-3 {\\n margin-left: 1rem !important; }\\n .m-xl-4 {\\n margin: 1.5rem !important; }\\n .mt-xl-4,\\n .my-xl-4 {\\n margin-top: 1.5rem !important; }\\n .mr-xl-4,\\n .mx-xl-4 {\\n margin-right: 1.5rem !important; }\\n .mb-xl-4,\\n .my-xl-4 {\\n margin-bottom: 1.5rem !important; }\\n .ml-xl-4,\\n .mx-xl-4 {\\n margin-left: 1.5rem !important; }\\n .m-xl-5 {\\n margin: 3rem !important; }\\n .mt-xl-5,\\n .my-xl-5 {\\n margin-top: 3rem !important; }\\n .mr-xl-5,\\n .mx-xl-5 {\\n margin-right: 3rem !important; }\\n .mb-xl-5,\\n .my-xl-5 {\\n margin-bottom: 3rem !important; }\\n .ml-xl-5,\\n .mx-xl-5 {\\n margin-left: 3rem !important; }\\n .p-xl-0 {\\n padding: 0 !important; }\\n .pt-xl-0,\\n .py-xl-0 {\\n padding-top: 0 !important; }\\n .pr-xl-0,\\n .px-xl-0 {\\n padding-right: 0 !important; }\\n .pb-xl-0,\\n .py-xl-0 {\\n padding-bottom: 0 !important; }\\n .pl-xl-0,\\n .px-xl-0 {\\n padding-left: 0 !important; }\\n .p-xl-1 {\\n padding: 0.25rem !important; }\\n .pt-xl-1,\\n .py-xl-1 {\\n padding-top: 0.25rem !important; }\\n .pr-xl-1,\\n .px-xl-1 {\\n padding-right: 0.25rem !important; }\\n .pb-xl-1,\\n .py-xl-1 {\\n padding-bottom: 0.25rem !important; }\\n .pl-xl-1,\\n .px-xl-1 {\\n padding-left: 0.25rem !important; }\\n .p-xl-2 {\\n padding: 0.5rem !important; }\\n .pt-xl-2,\\n .py-xl-2 {\\n padding-top: 0.5rem !important; }\\n .pr-xl-2,\\n .px-xl-2 {\\n padding-right: 0.5rem !important; }\\n .pb-xl-2,\\n .py-xl-2 {\\n padding-bottom: 0.5rem !important; }\\n .pl-xl-2,\\n .px-xl-2 {\\n padding-left: 0.5rem !important; }\\n .p-xl-3 {\\n padding: 1rem !important; }\\n .pt-xl-3,\\n .py-xl-3 {\\n padding-top: 1rem !important; }\\n .pr-xl-3,\\n .px-xl-3 {\\n padding-right: 1rem !important; }\\n .pb-xl-3,\\n .py-xl-3 {\\n padding-bottom: 1rem !important; }\\n .pl-xl-3,\\n .px-xl-3 {\\n padding-left: 1rem !important; }\\n .p-xl-4 {\\n padding: 1.5rem !important; }\\n .pt-xl-4,\\n .py-xl-4 {\\n padding-top: 1.5rem !important; }\\n .pr-xl-4,\\n .px-xl-4 {\\n padding-right: 1.5rem !important; }\\n .pb-xl-4,\\n .py-xl-4 {\\n padding-bottom: 1.5rem !important; }\\n .pl-xl-4,\\n .px-xl-4 {\\n padding-left: 1.5rem !important; }\\n .p-xl-5 {\\n padding: 3rem !important; }\\n .pt-xl-5,\\n .py-xl-5 {\\n padding-top: 3rem !important; }\\n .pr-xl-5,\\n .px-xl-5 {\\n padding-right: 3rem !important; }\\n .pb-xl-5,\\n .py-xl-5 {\\n padding-bottom: 3rem !important; }\\n .pl-xl-5,\\n .px-xl-5 {\\n padding-left: 3rem !important; }\\n .m-xl-n1 {\\n margin: -0.25rem !important; }\\n .mt-xl-n1,\\n .my-xl-n1 {\\n margin-top: -0.25rem !important; }\\n .mr-xl-n1,\\n .mx-xl-n1 {\\n margin-right: -0.25rem !important; }\\n .mb-xl-n1,\\n .my-xl-n1 {\\n margin-bottom: -0.25rem !important; }\\n .ml-xl-n1,\\n .mx-xl-n1 {\\n margin-left: -0.25rem !important; }\\n .m-xl-n2 {\\n margin: -0.5rem !important; }\\n .mt-xl-n2,\\n .my-xl-n2 {\\n margin-top: -0.5rem !important; }\\n .mr-xl-n2,\\n .mx-xl-n2 {\\n margin-right: -0.5rem !important; }\\n .mb-xl-n2,\\n .my-xl-n2 {\\n margin-bottom: -0.5rem !important; }\\n .ml-xl-n2,\\n .mx-xl-n2 {\\n margin-left: -0.5rem !important; }\\n .m-xl-n3 {\\n margin: -1rem !important; }\\n .mt-xl-n3,\\n .my-xl-n3 {\\n margin-top: -1rem !important; }\\n .mr-xl-n3,\\n .mx-xl-n3 {\\n margin-right: -1rem !important; }\\n .mb-xl-n3,\\n .my-xl-n3 {\\n margin-bottom: -1rem !important; }\\n .ml-xl-n3,\\n .mx-xl-n3 {\\n margin-left: -1rem !important; }\\n .m-xl-n4 {\\n margin: -1.5rem !important; }\\n .mt-xl-n4,\\n .my-xl-n4 {\\n margin-top: -1.5rem !important; }\\n .mr-xl-n4,\\n .mx-xl-n4 {\\n margin-right: -1.5rem !important; }\\n .mb-xl-n4,\\n .my-xl-n4 {\\n margin-bottom: -1.5rem !important; }\\n .ml-xl-n4,\\n .mx-xl-n4 {\\n margin-left: -1.5rem !important; }\\n .m-xl-n5 {\\n margin: -3rem !important; }\\n .mt-xl-n5,\\n .my-xl-n5 {\\n margin-top: -3rem !important; }\\n .mr-xl-n5,\\n .mx-xl-n5 {\\n margin-right: -3rem !important; }\\n .mb-xl-n5,\\n .my-xl-n5 {\\n margin-bottom: -3rem !important; }\\n .ml-xl-n5,\\n .mx-xl-n5 {\\n margin-left: -3rem !important; }\\n .m-xl-auto {\\n margin: auto !important; }\\n .mt-xl-auto,\\n .my-xl-auto {\\n margin-top: auto !important; }\\n .mr-xl-auto,\\n .mx-xl-auto {\\n margin-right: auto !important; }\\n .mb-xl-auto,\\n .my-xl-auto {\\n margin-bottom: auto !important; }\\n .ml-xl-auto,\\n .mx-xl-auto {\\n margin-left: auto !important; } }\\n\\n.stretched-link::after {\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n z-index: 1;\\n pointer-events: auto;\\n content: \\\"\\\";\\n background-color: rgba(0, 0, 0, 0); }\\n\\n.text-monospace {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace !important; }\\n\\n.text-justify {\\n text-align: justify !important; }\\n\\n.text-wrap {\\n white-space: normal !important; }\\n\\n.text-nowrap {\\n white-space: nowrap !important; }\\n\\n.text-truncate {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n\\n.text-left {\\n text-align: left !important; }\\n\\n.text-right {\\n text-align: right !important; }\\n\\n.text-center {\\n text-align: center !important; }\\n\\n@media (min-width: 576px) {\\n .text-sm-left {\\n text-align: left !important; }\\n .text-sm-right {\\n text-align: right !important; }\\n .text-sm-center {\\n text-align: center !important; } }\\n\\n@media (min-width: 768px) {\\n .text-md-left {\\n text-align: left !important; }\\n .text-md-right {\\n text-align: right !important; }\\n .text-md-center {\\n text-align: center !important; } }\\n\\n@media (min-width: 992px) {\\n .text-lg-left {\\n text-align: left !important; }\\n .text-lg-right {\\n text-align: right !important; }\\n .text-lg-center {\\n text-align: center !important; } }\\n\\n@media (min-width: 1200px) {\\n .text-xl-left {\\n text-align: left !important; }\\n .text-xl-right {\\n text-align: right !important; }\\n .text-xl-center {\\n text-align: center !important; } }\\n\\n.text-lowercase {\\n text-transform: lowercase !important; }\\n\\n.text-uppercase {\\n text-transform: uppercase !important; }\\n\\n.text-capitalize {\\n text-transform: capitalize !important; }\\n\\n.font-weight-light {\\n font-weight: 300 !important; }\\n\\n.font-weight-lighter {\\n font-weight: lighter !important; }\\n\\n.font-weight-normal {\\n font-weight: 400 !important; }\\n\\n.font-weight-bold {\\n font-weight: 700 !important; }\\n\\n.font-weight-bolder {\\n font-weight: bolder !important; }\\n\\n.font-italic {\\n font-style: italic !important; }\\n\\n.text-white {\\n color: #fff !important; }\\n\\n.text-primary {\\n color: #205492 !important; }\\n\\na.text-primary:hover, a.text-primary:focus {\\n color: #123053 !important; }\\n\\n.text-secondary {\\n color: #6c757d !important; }\\n\\na.text-secondary:hover, a.text-secondary:focus {\\n color: #494f54 !important; }\\n\\n.text-success {\\n color: #28a745 !important; }\\n\\na.text-success:hover, a.text-success:focus {\\n color: #19692c !important; }\\n\\n.text-info {\\n color: #17a2b8 !important; }\\n\\na.text-info:hover, a.text-info:focus {\\n color: #0f6674 !important; }\\n\\n.text-warning {\\n color: #ffc107 !important; }\\n\\na.text-warning:hover, a.text-warning:focus {\\n color: #ba8b00 !important; }\\n\\n.text-danger {\\n color: #dc3545 !important; }\\n\\na.text-danger:hover, a.text-danger:focus {\\n color: #a71d2a !important; }\\n\\n.text-light {\\n color: #f8f9fa !important; }\\n\\na.text-light:hover, a.text-light:focus {\\n color: #cbd3da !important; }\\n\\n.text-dark {\\n color: #343a40 !important; }\\n\\na.text-dark:hover, a.text-dark:focus {\\n color: #121416 !important; }\\n\\n.text-body {\\n color: #212529 !important; }\\n\\n.text-muted {\\n color: #6c757d !important; }\\n\\n.text-black-50 {\\n color: rgba(0, 0, 0, 0.5) !important; }\\n\\n.text-white-50 {\\n color: rgba(255, 255, 255, 0.5) !important; }\\n\\n.text-hide {\\n font: 0/0 a;\\n color: transparent;\\n text-shadow: none;\\n background-color: transparent;\\n border: 0; }\\n\\n.text-decoration-none {\\n text-decoration: none !important; }\\n\\n.text-break {\\n word-break: break-word !important;\\n overflow-wrap: break-word !important; }\\n\\n.text-reset {\\n color: inherit !important; }\\n\\n.visible {\\n visibility: visible !important; }\\n\\n.invisible {\\n visibility: hidden !important; }\\n\\n@media print {\\n *,\\n *::before,\\n *::after {\\n text-shadow: none !important;\\n box-shadow: none !important; }\\n a:not(.btn) {\\n text-decoration: underline; }\\n abbr[title]::after {\\n content: \\\" (\\\" attr(title) \\\")\\\"; }\\n pre {\\n white-space: pre-wrap !important; }\\n pre,\\n blockquote {\\n border: 1px solid #adb5bd;\\n page-break-inside: avoid; }\\n thead {\\n display: table-header-group; }\\n tr,\\n img {\\n page-break-inside: avoid; }\\n p,\\n h2,\\n h3 {\\n orphans: 3;\\n widows: 3; }\\n h2,\\n h3 {\\n page-break-after: avoid; }\\n @page {\\n size: a3; }\\n body {\\n min-width: 992px !important; }\\n .container {\\n min-width: 992px !important; }\\n .navbar {\\n display: none; }\\n .badge {\\n border: 1px solid #000; }\\n .table {\\n border-collapse: collapse !important; }\\n .table td,\\n .table th {\\n background-color: #fff !important; }\\n .table-bordered th,\\n .table-bordered td {\\n border: 1px solid #dee2e6 !important; }\\n .table-dark {\\n color: inherit; }\\n .table-dark th,\\n .table-dark td,\\n .table-dark thead th,\\n .table-dark tbody + tbody {\\n border-color: #dee2e6; }\\n .table .thead-dark th {\\n color: inherit;\\n border-color: #dee2e6; } }\\n\\n.image-gallery-icon {\\n color: #fff;\\n transition: all .3s ease-out;\\n appearance: none;\\n background-color: transparent;\\n border: 0;\\n cursor: pointer;\\n outline: none;\\n position: absolute;\\n z-index: 4;\\n filter: drop-shadow(0 2px 2px #1a1a1a); }\\n @media (hover: hover) and (pointer: fine) {\\n .image-gallery-icon:hover {\\n color: #337ab7; }\\n .image-gallery-icon:hover .image-gallery-svg {\\n transform: scale(1.1); } }\\n .image-gallery-icon:focus {\\n outline: 2px solid #337ab7; }\\n\\n.image-gallery-using-mouse .image-gallery-icon:focus {\\n outline: none; }\\n\\n.image-gallery-fullscreen-button,\\n.image-gallery-play-button {\\n bottom: 0;\\n padding: 20px; }\\n .image-gallery-fullscreen-button .image-gallery-svg,\\n .image-gallery-play-button .image-gallery-svg {\\n height: 28px;\\n width: 28px; }\\n @media (max-width: 768px) {\\n .image-gallery-fullscreen-button,\\n .image-gallery-play-button {\\n padding: 15px; }\\n .image-gallery-fullscreen-button .image-gallery-svg,\\n .image-gallery-play-button .image-gallery-svg {\\n height: 24px;\\n width: 24px; } }\\n @media (max-width: 480px) {\\n .image-gallery-fullscreen-button,\\n .image-gallery-play-button {\\n padding: 10px; }\\n .image-gallery-fullscreen-button .image-gallery-svg,\\n .image-gallery-play-button .image-gallery-svg {\\n height: 16px;\\n width: 16px; } }\\n\\n.image-gallery-fullscreen-button {\\n right: 0; }\\n\\n.image-gallery-play-button {\\n left: 0; }\\n\\n.image-gallery-left-nav,\\n.image-gallery-right-nav {\\n padding: 50px 10px;\\n top: 50%;\\n transform: translateY(-50%); }\\n .image-gallery-left-nav .image-gallery-svg,\\n .image-gallery-right-nav .image-gallery-svg {\\n height: 120px;\\n width: 60px; }\\n @media (max-width: 768px) {\\n .image-gallery-left-nav .image-gallery-svg,\\n .image-gallery-right-nav .image-gallery-svg {\\n height: 72px;\\n width: 36px; } }\\n @media (max-width: 480px) {\\n .image-gallery-left-nav .image-gallery-svg,\\n .image-gallery-right-nav .image-gallery-svg {\\n height: 48px;\\n width: 24px; } }\\n .image-gallery-left-nav[disabled],\\n .image-gallery-right-nav[disabled] {\\n cursor: disabled;\\n opacity: .6;\\n pointer-events: none; }\\n\\n.image-gallery-left-nav {\\n left: 0; }\\n\\n.image-gallery-right-nav {\\n right: 0; }\\n\\n.image-gallery {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n position: relative; }\\n .image-gallery.fullscreen-modal {\\n background: #000;\\n bottom: 0;\\n height: 100%;\\n left: 0;\\n position: fixed;\\n right: 0;\\n top: 0;\\n width: 100%;\\n z-index: 5; }\\n .image-gallery.fullscreen-modal .image-gallery-content {\\n top: 50%;\\n transform: translateY(-50%); }\\n\\n.image-gallery-content {\\n position: relative;\\n line-height: 0;\\n top: 0; }\\n .image-gallery-content.fullscreen {\\n background: #000; }\\n .image-gallery-content .image-gallery-slide .image-gallery-image {\\n max-height: calc(100vh - 80px); }\\n .image-gallery-content.left .image-gallery-slide .image-gallery-image, .image-gallery-content.right .image-gallery-slide .image-gallery-image {\\n max-height: 100vh; }\\n\\n.image-gallery-slide-wrapper {\\n position: relative; }\\n .image-gallery-slide-wrapper.left, .image-gallery-slide-wrapper.right {\\n display: inline-block;\\n width: calc(100% - 110px); }\\n @media (max-width: 768px) {\\n .image-gallery-slide-wrapper.left, .image-gallery-slide-wrapper.right {\\n width: calc(100% - 87px); } }\\n .image-gallery-slide-wrapper.image-gallery-rtl {\\n direction: rtl; }\\n\\n.image-gallery-slides {\\n line-height: 0;\\n overflow: hidden;\\n position: relative;\\n white-space: nowrap;\\n text-align: center; }\\n\\n.image-gallery-slide {\\n left: 0;\\n position: absolute;\\n top: 0;\\n width: 100%; }\\n .image-gallery-slide.center {\\n position: relative; }\\n .image-gallery-slide .image-gallery-image {\\n width: 100%;\\n object-fit: contain; }\\n .image-gallery-slide .image-gallery-description {\\n background: rgba(0, 0, 0, 0.4);\\n bottom: 70px;\\n color: #fff;\\n left: 0;\\n line-height: 1;\\n padding: 10px 20px;\\n position: absolute;\\n white-space: normal; }\\n @media (max-width: 768px) {\\n .image-gallery-slide .image-gallery-description {\\n bottom: 45px;\\n font-size: .8em;\\n padding: 8px 15px; } }\\n\\n.image-gallery-bullets {\\n bottom: 20px;\\n left: 0;\\n margin: 0 auto;\\n position: absolute;\\n right: 0;\\n width: 80%;\\n z-index: 4; }\\n .image-gallery-bullets .image-gallery-bullets-container {\\n margin: 0;\\n padding: 0;\\n text-align: center; }\\n .image-gallery-bullets .image-gallery-bullet {\\n appearance: none;\\n background-color: transparent;\\n border: 1px solid #fff;\\n border-radius: 50%;\\n box-shadow: 0 2px 2px #1a1a1a;\\n cursor: pointer;\\n display: inline-block;\\n margin: 0 5px;\\n outline: none;\\n padding: 5px;\\n transition: all .2s ease-out; }\\n @media (max-width: 768px) {\\n .image-gallery-bullets .image-gallery-bullet {\\n margin: 0 3px;\\n padding: 3px; } }\\n @media (max-width: 480px) {\\n .image-gallery-bullets .image-gallery-bullet {\\n padding: 2.7px; } }\\n .image-gallery-bullets .image-gallery-bullet:focus {\\n transform: scale(1.2);\\n background: #337ab7;\\n border: 1px solid #337ab7; }\\n .image-gallery-bullets .image-gallery-bullet.active {\\n transform: scale(1.2);\\n border: 1px solid #fff;\\n background: #fff; }\\n @media (hover: hover) and (pointer: fine) {\\n .image-gallery-bullets .image-gallery-bullet:hover {\\n background: #337ab7;\\n border: 1px solid #337ab7; }\\n .image-gallery-bullets .image-gallery-bullet.active:hover {\\n background: #337ab7; } }\\n\\n.image-gallery-thumbnails-wrapper {\\n position: relative; }\\n .image-gallery-thumbnails-wrapper.thumbnails-swipe-horizontal {\\n touch-action: pan-y; }\\n .image-gallery-thumbnails-wrapper.thumbnails-swipe-vertical {\\n touch-action: pan-x; }\\n .image-gallery-thumbnails-wrapper.thumbnails-wrapper-rtl {\\n direction: rtl; }\\n .image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n display: inline-block;\\n vertical-align: top;\\n width: 100px; }\\n @media (max-width: 768px) {\\n .image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n width: 81px; } }\\n .image-gallery-thumbnails-wrapper.left .image-gallery-thumbnails, .image-gallery-thumbnails-wrapper.right .image-gallery-thumbnails {\\n height: 100%;\\n width: 100%;\\n left: 0;\\n padding: 0;\\n position: absolute;\\n top: 0; }\\n .image-gallery-thumbnails-wrapper.left .image-gallery-thumbnails .image-gallery-thumbnail, .image-gallery-thumbnails-wrapper.right .image-gallery-thumbnails .image-gallery-thumbnail {\\n display: block;\\n margin-right: 0;\\n padding: 0; }\\n .image-gallery-thumbnails-wrapper.left .image-gallery-thumbnails .image-gallery-thumbnail + .image-gallery-thumbnail, .image-gallery-thumbnails-wrapper.right .image-gallery-thumbnails .image-gallery-thumbnail + .image-gallery-thumbnail {\\n margin-left: 0;\\n margin-top: 2px; }\\n .image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n margin: 0 5px; }\\n @media (max-width: 768px) {\\n .image-gallery-thumbnails-wrapper.left, .image-gallery-thumbnails-wrapper.right {\\n margin: 0 3px; } }\\n\\n.image-gallery-thumbnails {\\n overflow: hidden;\\n padding: 5px 0; }\\n @media (max-width: 768px) {\\n .image-gallery-thumbnails {\\n padding: 3px 0; } }\\n .image-gallery-thumbnails .image-gallery-thumbnails-container {\\n cursor: pointer;\\n text-align: center;\\n white-space: nowrap; }\\n\\n.image-gallery-thumbnail {\\n display: inline-block;\\n border: 4px solid transparent;\\n transition: border .3s ease-out;\\n width: 100px;\\n background: transparent;\\n padding: 0; }\\n @media (max-width: 768px) {\\n .image-gallery-thumbnail {\\n border: 3px solid transparent;\\n width: 81px; } }\\n .image-gallery-thumbnail + .image-gallery-thumbnail {\\n margin-left: 2px; }\\n .image-gallery-thumbnail .image-gallery-thumbnail-inner {\\n display: block;\\n position: relative; }\\n .image-gallery-thumbnail .image-gallery-thumbnail-image {\\n vertical-align: middle;\\n width: 100%;\\n line-height: 0; }\\n .image-gallery-thumbnail.active, .image-gallery-thumbnail:focus {\\n outline: none;\\n border: 4px solid #337ab7; }\\n @media (max-width: 768px) {\\n .image-gallery-thumbnail.active, .image-gallery-thumbnail:focus {\\n border: 3px solid #337ab7; } }\\n @media (hover: hover) and (pointer: fine) {\\n .image-gallery-thumbnail:hover {\\n outline: none;\\n border: 4px solid #337ab7; } }\\n @media (hover: hover) and (pointer: fine) and (max-width: 768px) {\\n .image-gallery-thumbnail:hover {\\n border: 3px solid #337ab7; } }\\n\\n.image-gallery-thumbnail-label {\\n box-sizing: border-box;\\n color: white;\\n font-size: 1em;\\n left: 0;\\n line-height: 1em;\\n padding: 5%;\\n position: absolute;\\n top: 50%;\\n text-shadow: 0 2px 2px #1a1a1a;\\n transform: translateY(-50%);\\n white-space: normal;\\n width: 100%; }\\n @media (max-width: 768px) {\\n .image-gallery-thumbnail-label {\\n font-size: .8em;\\n line-height: .8em; } }\\n\\n.image-gallery-index {\\n background: rgba(0, 0, 0, 0.4);\\n color: #fff;\\n line-height: 1;\\n padding: 10px 20px;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: 4; }\\n @media (max-width: 768px) {\\n .image-gallery-index {\\n font-size: .8em;\\n padding: 5px 10px; } }\\n\",\"// Do not forget to update getting-started/theming.md!\\n:root {\\n // Custom variable values only support SassScript inside `#{}`.\\n @each $color, $value in $colors {\\n --#{$color}: #{$value};\\n }\\n\\n @each $color, $value in $theme-colors {\\n --#{$color}: #{$value};\\n }\\n\\n @each $bp, $value in $grid-breakpoints {\\n --breakpoint-#{$bp}: #{$value};\\n }\\n\\n // Use `inspect` for lists so that quoted items keep the quotes.\\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\\n --font-family-monospace: #{inspect($font-family-monospace)};\\n}\\n\",\"// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\\n\\n// Reboot\\n//\\n// Normalization of HTML elements, manually forked from Normalize.css to remove\\n// styles targeting irrelevant browsers while applying new styles.\\n//\\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\\n\\n\\n// Document\\n//\\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\\n// 2. Change the default font family in all browsers.\\n// 3. Correct the line height in all browsers.\\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\\n// 5. Change the default tap highlight to be completely transparent in iOS.\\n\\n*,\\n*::before,\\n*::after {\\n box-sizing: border-box; // 1\\n}\\n\\nhtml {\\n font-family: sans-serif; // 2\\n line-height: 1.15; // 3\\n -webkit-text-size-adjust: 100%; // 4\\n -webkit-tap-highlight-color: rgba($black, 0); // 5\\n}\\n\\n// Shim for \\\"new\\\" HTML5 structural elements to display correctly (IE10, older browsers)\\n// TODO: remove in v5\\n// stylelint-disable-next-line selector-list-comma-newline-after\\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\\n display: block;\\n}\\n\\n// Body\\n//\\n// 1. Remove the margin in all browsers.\\n// 2. As a best practice, apply a default `background-color`.\\n// 3. Set an explicit initial text-align value so that we can later use\\n// the `inherit` value on things like `` elements.\\n\\nbody {\\n margin: 0; // 1\\n font-family: $font-family-base;\\n @include font-size($font-size-base);\\n font-weight: $font-weight-base;\\n line-height: $line-height-base;\\n color: $body-color;\\n text-align: left; // 3\\n background-color: $body-bg; // 2\\n}\\n\\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\\n// on elements that programmatically receive focus but wouldn't normally show a visible\\n// focus outline. In general, this would mean that the outline is only applied if the\\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\\n// wants focus outlines to always be presented.\\n//\\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\\n[tabindex=\\\"-1\\\"]:focus:not(:focus-visible) {\\n outline: 0 !important;\\n}\\n\\n\\n// Content grouping\\n//\\n// 1. Add the correct box sizing in Firefox.\\n// 2. Show the overflow in Edge and IE.\\n\\nhr {\\n box-sizing: content-box; // 1\\n height: 0; // 1\\n overflow: visible; // 2\\n}\\n\\n\\n//\\n// Typography\\n//\\n\\n// Remove top margins from headings\\n//\\n// By default, ``-`` all receive top and bottom margins. We nuke the top\\n// margin for easier control within type scales as it avoids margin collapsing.\\n// stylelint-disable-next-line selector-list-comma-newline-after\\nh1, h2, h3, h4, h5, h6 {\\n margin-top: 0;\\n margin-bottom: $headings-margin-bottom;\\n}\\n\\n// Reset margins on paragraphs\\n//\\n// Similarly, the top margin on ``s get reset. However, we also reset the\\n// bottom margin to use `rem` units instead of `em`.\\np {\\n margin-top: 0;\\n margin-bottom: $paragraph-margin-bottom;\\n}\\n\\n// Abbreviations\\n//\\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\\n// 3. Add explicit cursor to indicate changed behavior.\\n// 4. Remove the bottom border in Firefox 39-.\\n// 5. Prevent the text-decoration to be skipped.\\n\\nabbr[title],\\nabbr[data-original-title] { // 1\\n text-decoration: underline; // 2\\n text-decoration: underline dotted; // 2\\n cursor: help; // 3\\n border-bottom: 0; // 4\\n text-decoration-skip-ink: none; // 5\\n}\\n\\naddress {\\n margin-bottom: 1rem;\\n font-style: normal;\\n line-height: inherit;\\n}\\n\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 1rem;\\n}\\n\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0;\\n}\\n\\ndt {\\n font-weight: $dt-font-weight;\\n}\\n\\ndd {\\n margin-bottom: .5rem;\\n margin-left: 0; // Undo browser default\\n}\\n\\nblockquote {\\n margin: 0 0 1rem;\\n}\\n\\nb,\\nstrong {\\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\\n}\\n\\nsmall {\\n @include font-size(80%); // Add the correct font size in all browsers\\n}\\n\\n//\\n// Prevent `sub` and `sup` elements from affecting the line height in\\n// all browsers.\\n//\\n\\nsub,\\nsup {\\n position: relative;\\n @include font-size(75%);\\n line-height: 0;\\n vertical-align: baseline;\\n}\\n\\nsub { bottom: -.25em; }\\nsup { top: -.5em; }\\n\\n\\n//\\n// Links\\n//\\n\\na {\\n color: $link-color;\\n text-decoration: $link-decoration;\\n background-color: transparent; // Remove the gray background on active links in IE 10.\\n\\n @include hover() {\\n color: $link-hover-color;\\n text-decoration: $link-hover-decoration;\\n }\\n}\\n\\n// And undo these styles for placeholder links/named anchors (without href).\\n// It would be more straightforward to just use a[href] in previous block, but that\\n// causes specificity issues in many other styles that are too complex to fix.\\n// See https://github.com/twbs/bootstrap/issues/19402\\n\\na:not([href]):not([class]) {\\n color: inherit;\\n text-decoration: none;\\n\\n @include hover() {\\n color: inherit;\\n text-decoration: none;\\n }\\n}\\n\\n\\n//\\n// Code\\n//\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: $font-family-monospace;\\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\\n}\\n\\npre {\\n // Remove browser default top margin\\n margin-top: 0;\\n // Reset browser default of `1em` to use `rem`s\\n margin-bottom: 1rem;\\n // Don't allow content to break outside\\n overflow: auto;\\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\\n // making it impossible to interact with the content\\n -ms-overflow-style: scrollbar;\\n}\\n\\n\\n//\\n// Figures\\n//\\n\\nfigure {\\n // Apply a consistent margin strategy (matches our type styles).\\n margin: 0 0 1rem;\\n}\\n\\n\\n//\\n// Images and content\\n//\\n\\nimg {\\n vertical-align: middle;\\n border-style: none; // Remove the border on images inside links in IE 10-.\\n}\\n\\nsvg {\\n // Workaround for the SVG overflow bug in IE10/11 is still required.\\n // See https://github.com/twbs/bootstrap/issues/26878\\n overflow: hidden;\\n vertical-align: middle;\\n}\\n\\n\\n//\\n// Tables\\n//\\n\\ntable {\\n border-collapse: collapse; // Prevent double borders\\n}\\n\\ncaption {\\n padding-top: $table-cell-padding;\\n padding-bottom: $table-cell-padding;\\n color: $table-caption-color;\\n text-align: left;\\n caption-side: bottom;\\n}\\n\\nth {\\n // Matches default ` | ` alignment by inheriting from the ``, or the\\n // closest parent with a set `text-align`.\\n text-align: inherit;\\n}\\n\\n\\n//\\n// Forms\\n//\\n\\nlabel {\\n // Allow labels to use `margin` for spacing.\\n display: inline-block;\\n margin-bottom: $label-margin-bottom;\\n}\\n\\n// Remove the default `border-radius` that macOS Chrome adds.\\n//\\n// Details at https://github.com/twbs/bootstrap/issues/24093\\nbutton {\\n // stylelint-disable-next-line property-blacklist\\n border-radius: 0;\\n}\\n\\n// Work around a Firefox/IE bug where the transparent `button` background\\n// results in a loss of the default `button` focus styles.\\n//\\n// Credit: https://github.com/suitcss/base/\\nbutton:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n}\\n\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0; // Remove the margin in Firefox and Safari\\n font-family: inherit;\\n @include font-size(inherit);\\n line-height: inherit;\\n}\\n\\nbutton,\\ninput {\\n overflow: visible; // Show the overflow in Edge\\n}\\n\\nbutton,\\nselect {\\n text-transform: none; // Remove the inheritance of text transform in Firefox\\n}\\n\\n// Set the cursor for non-` |