| | |
| | | <!DOCTYPE html> |
| | | <html lang=""> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| | | <meta name="viewport" content="width=device-width,initial-scale=1.0"> |
| | | <!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico"> --> |
| | | <!-- <link rel="icon" href="http://140.143.152.226:8410/sczhzf/M00/00/00/rBUAD2MxQ8CAXBxsAAACVqU61WY764.png"> --> |
| | | <!-- <title><%= htmlWebpackPlugin.options.title %></title> --> |
| | | <!-- <title>遂昌执法平台</title> --> |
| | | <link href="https://vjs.zencdn.net/7.20.3/video-js.css" rel="stylesheet" /> |
| | | </head> |
| | | <body> |
| | | <noscript> |
| | | <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
| | | </noscript> |
| | | <div id="app"></div> |
| | | <!-- built files will be auto injected --> |
| | | </body> |
| | | </html> |
| | | |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| | | <meta name="viewport" content="width=device-width,initial-scale=1.0"> |
| | | <!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico"> --> |
| | | <!-- <link rel="icon" href="http://140.143.152.226:8410/sczhzf/M00/00/00/rBUAD2MxQ8CAXBxsAAACVqU61WY764.png"> --> |
| | | <!-- <title><%= htmlWebpackPlugin.options.title %></title> --> |
| | | <!-- <title>遂昌执法平台</title> --> |
| | | <link href="https://vjs.zencdn.net/7.20.3/video-js.css" rel="stylesheet" /> |
| | | |
| | | <script src="/video_lib/DHWs.js"></script> |
| | | |
| | | <script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script> |
| | | </head> |
| | | |
| | | <body> |
| | | <noscript> |
| | | <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. |
| | | Please enable it to continue.</strong> |
| | | </noscript> |
| | | <div id="app"></div> |
| | | <!-- built files will be auto injected --> |
| | | </body> |
| | | |
| | | </html> |
New file |
| | |
| | | { |
| | | "env": { |
| | | "browser": true, |
| | | "commonjs": true, |
| | | "es6": true, |
| | | "node": true |
| | | }, |
| | | "parserOptions": { |
| | | "ecmaFeatures": { |
| | | "jsx": false |
| | | }, |
| | | "sourceType": "module" |
| | | }, |
| | | "rules": { |
| | | // "semi": ["error","never"] |
| | | } |
| | | } |
New file |
| | |
| | | {"version":3,"file":"DHWs.js","sources":["../node_modules/jsencrypt/bin/jsencrypt.js","../src/actions/account.ts","../src/utils/domOperate.ts","../src/actions/control.ts","../src/actions/transparent.ts","../src/actions/index.ts","../src/messageEvent/index.ts","../src/utils/dealMessageEventData.js","../node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs.js","../node_modules/bowser/es5.js","../src/main.ts"],"sourcesContent":["(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.JSEncrypt = {})));\n}(this, (function (exports) { 'use strict';\n\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nfunction op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nfunction op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += int2char((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += int2char(slop);\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += int2char((slop << 2) | (v >> 4));\n ret += int2char(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += int2char(slop << 2);\n }\n return ret;\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\n// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n\n// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder$1;\nvar Base64 = {\n decode: function (a) {\n var i;\n if (decoder$1 === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder$1 = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder$1[b64.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder$1[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder$1[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n\n// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\n\n// ASN.1 JavaScript decoder\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \" + pos + \" on a stream of length \" + this.enc.length);\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shortYear ? reTimeS : reTimeL).exec(s);\n if (!m) {\n return \"Unrecognized time: \" + s;\n }\n if (shortYear) {\n // to avoid querying the timer, use the fixed range [1970, 2069]\n // it will conform with ITU X.400 [-10, +40] sliding window until 2030\n m[1] = +m[1];\n m[1] += (+m[1] < 70) ? 2000 : 1900;\n }\n s = m[1] + \"-\" + m[2] + \"-\" + m[3] + \" \" + m[4];\n if (m[5]) {\n s += \":\" + m[5];\n if (m[6]) {\n s += \":\" + m[6];\n if (m[7]) {\n s += \".\" + m[7];\n }\n }\n }\n if (m[8]) {\n s += \" UTC\";\n if (m[8] != \"Z\") {\n s += m[8];\n if (m[9]) {\n s += \":\" + m[9];\n }\n }\n }\n return s;\n };\n Stream.prototype.parseInteger = function (start, end) {\n var v = this.get(start);\n var neg = (v > 127);\n var pad = neg ? 255 : 0;\n var len;\n var s = \"\";\n // skip unuseful bits (not allowed in DER)\n while (v == pad && ++start < end) {\n v = this.get(start);\n }\n len = end - start;\n if (len === 0) {\n return neg ? -1 : 0;\n }\n // show bit length of huge integers\n if (len > 4) {\n s = v;\n len <<= 3;\n while (((+s ^ pad) & 0x80) == 0) {\n s = +s << 1;\n --len;\n }\n s = \"(\" + len + \" bit)\\n\";\n }\n // decode the integer\n if (neg) {\n v = v - 256;\n }\n var n = new Int10(v);\n for (var i = start + 1; i < end; ++i) {\n n.mulAdd(256, this.get(i));\n }\n return s + n.toString();\n };\n Stream.prototype.parseBitString = function (start, end, maxLength) {\n var unusedBit = this.get(start);\n var lenBit = ((end - start - 1) << 3) - unusedBit;\n var intro = \"(\" + lenBit + \" bit)\\n\";\n var s = \"\";\n for (var i = start + 1; i < end; ++i) {\n var b = this.get(i);\n var skip = (i == end - 1) ? unusedBit : 0;\n for (var j = 7; j >= skip; --j) {\n s += (b >> j) & 1 ? \"1\" : \"0\";\n }\n if (s.length > maxLength) {\n return intro + stringCut(s, maxLength);\n }\n }\n return intro + s;\n };\n Stream.prototype.parseOctetString = function (start, end, maxLength) {\n if (this.isASCII(start, end)) {\n return stringCut(this.parseStringISO(start, end), maxLength);\n }\n var len = end - start;\n var s = \"(\" + len + \" byte)\\n\";\n maxLength /= 2; // we work in bytes\n if (len > maxLength) {\n end = start + maxLength;\n }\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n }\n if (len > maxLength) {\n s += ellipsis;\n }\n return s;\n };\n Stream.prototype.parseOID = function (start, end, maxLength) {\n var s = \"\";\n var n = new Int10();\n var bits = 0;\n for (var i = start; i < end; ++i) {\n var v = this.get(i);\n n.mulAdd(128, v & 0x7F);\n bits += 7;\n if (!(v & 0x80)) { // finished\n if (s === \"\") {\n n = n.simplify();\n if (n instanceof Int10) {\n n.sub(80);\n s = \"2.\" + n.toString();\n }\n else {\n var m = n < 80 ? n < 40 ? 0 : 1 : 2;\n s = m + \".\" + (n - m * 40);\n }\n }\n else {\n s += \".\" + n.toString();\n }\n if (s.length > maxLength) {\n return stringCut(s, maxLength);\n }\n n = new Int10();\n bits = 0;\n }\n }\n if (bits > 0) {\n s += \".incomplete\";\n }\n return s;\n };\n return Stream;\n}());\nvar ASN1 = /** @class */ (function () {\n function ASN1(stream, header, length, tag, sub) {\n if (!(tag instanceof ASN1Tag)) {\n throw new Error(\"Invalid tag value.\");\n }\n this.stream = stream;\n this.header = header;\n this.length = length;\n this.tag = tag;\n this.sub = sub;\n }\n ASN1.prototype.typeName = function () {\n switch (this.tag.tagClass) {\n case 0: // universal\n switch (this.tag.tagNumber) {\n case 0x00:\n return \"EOC\";\n case 0x01:\n return \"BOOLEAN\";\n case 0x02:\n return \"INTEGER\";\n case 0x03:\n return \"BIT_STRING\";\n case 0x04:\n return \"OCTET_STRING\";\n case 0x05:\n return \"NULL\";\n case 0x06:\n return \"OBJECT_IDENTIFIER\";\n case 0x07:\n return \"ObjectDescriptor\";\n case 0x08:\n return \"EXTERNAL\";\n case 0x09:\n return \"REAL\";\n case 0x0A:\n return \"ENUMERATED\";\n case 0x0B:\n return \"EMBEDDED_PDV\";\n case 0x0C:\n return \"UTF8String\";\n case 0x10:\n return \"SEQUENCE\";\n case 0x11:\n return \"SET\";\n case 0x12:\n return \"NumericString\";\n case 0x13:\n return \"PrintableString\"; // ASCII subset\n case 0x14:\n return \"TeletexString\"; // aka T61String\n case 0x15:\n return \"VideotexString\";\n case 0x16:\n return \"IA5String\"; // ASCII\n case 0x17:\n return \"UTCTime\";\n case 0x18:\n return \"GeneralizedTime\";\n case 0x19:\n return \"GraphicString\";\n case 0x1A:\n return \"VisibleString\"; // ASCII subset\n case 0x1B:\n return \"GeneralString\";\n case 0x1C:\n return \"UniversalString\";\n case 0x1E:\n return \"BMPString\";\n }\n return \"Universal_\" + this.tag.tagNumber.toString();\n case 1:\n return \"Application_\" + this.tag.tagNumber.toString();\n case 2:\n return \"[\" + this.tag.tagNumber.toString() + \"]\"; // Context\n case 3:\n return \"Private_\" + this.tag.tagNumber.toString();\n }\n };\n ASN1.prototype.content = function (maxLength) {\n if (this.tag === undefined) {\n return null;\n }\n if (maxLength === undefined) {\n maxLength = Infinity;\n }\n var content = this.posContent();\n var len = Math.abs(this.length);\n if (!this.tag.isUniversal()) {\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n return this.stream.parseOctetString(content, content + len, maxLength);\n }\n switch (this.tag.tagNumber) {\n case 0x01: // BOOLEAN\n return (this.stream.get(content) === 0) ? \"false\" : \"true\";\n case 0x02: // INTEGER\n return this.stream.parseInteger(content, content + len);\n case 0x03: // BIT_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseBitString(content, content + len, maxLength);\n case 0x04: // OCTET_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseOctetString(content, content + len, maxLength);\n // case 0x05: // NULL\n case 0x06: // OBJECT_IDENTIFIER\n return this.stream.parseOID(content, content + len, maxLength);\n // case 0x07: // ObjectDescriptor\n // case 0x08: // EXTERNAL\n // case 0x09: // REAL\n // case 0x0A: // ENUMERATED\n // case 0x0B: // EMBEDDED_PDV\n case 0x10: // SEQUENCE\n case 0x11: // SET\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n else {\n return \"(no elem)\";\n }\n case 0x0C: // UTF8String\n return stringCut(this.stream.parseStringUTF(content, content + len), maxLength);\n case 0x12: // NumericString\n case 0x13: // PrintableString\n case 0x14: // TeletexString\n case 0x15: // VideotexString\n case 0x16: // IA5String\n // case 0x19: // GraphicString\n case 0x1A: // VisibleString\n // case 0x1B: // GeneralString\n // case 0x1C: // UniversalString\n return stringCut(this.stream.parseStringISO(content, content + len), maxLength);\n case 0x1E: // BMPString\n return stringCut(this.stream.parseStringBMP(content, content + len), maxLength);\n case 0x17: // UTCTime\n case 0x18: // GeneralizedTime\n return this.stream.parseTime(content, content + len, (this.tag.tagNumber == 0x17));\n }\n return null;\n };\n ASN1.prototype.toString = function () {\n return this.typeName() + \"@\" + this.stream.pos + \"[header:\" + this.header + \",length:\" + this.length + \",sub:\" + ((this.sub === null) ? \"null\" : this.sub.length) + \"]\";\n };\n ASN1.prototype.toPrettyString = function (indent) {\n if (indent === undefined) {\n indent = \"\";\n }\n var s = indent + this.typeName() + \" @\" + this.stream.pos;\n if (this.length >= 0) {\n s += \"+\";\n }\n s += this.length;\n if (this.tag.tagConstructed) {\n s += \" (constructed)\";\n }\n else if ((this.tag.isUniversal() && ((this.tag.tagNumber == 0x03) || (this.tag.tagNumber == 0x04))) && (this.sub !== null)) {\n s += \" (encapsulates)\";\n }\n s += \"\\n\";\n if (this.sub !== null) {\n indent += \" \";\n for (var i = 0, max = this.sub.length; i < max; ++i) {\n s += this.sub[i].toPrettyString(indent);\n }\n }\n return s;\n };\n ASN1.prototype.posStart = function () {\n return this.stream.pos;\n };\n ASN1.prototype.posContent = function () {\n return this.stream.pos + this.header;\n };\n ASN1.prototype.posEnd = function () {\n return this.stream.pos + this.header + Math.abs(this.length);\n };\n ASN1.prototype.toHexString = function () {\n return this.stream.hexDump(this.posStart(), this.posEnd(), true);\n };\n ASN1.decodeLength = function (stream) {\n var buf = stream.get();\n var len = buf & 0x7F;\n if (len == buf) {\n return len;\n }\n // no reason to use Int10, as it would be a huge buffer anyways\n if (len > 6) {\n throw new Error(\"Length over 48 bits not supported at position \" + (stream.pos - 1));\n }\n if (len === 0) {\n return null;\n } // undefined\n buf = 0;\n for (var i = 0; i < len; ++i) {\n buf = (buf * 256) + stream.get();\n }\n return buf;\n };\n /**\n * Retrieve the hexadecimal value (as a string) of the current ASN.1 element\n * @returns {string}\n * @public\n */\n ASN1.prototype.getHexStringValue = function () {\n var hexString = this.toHexString();\n var offset = this.header * 2;\n var length = this.length * 2;\n return hexString.substr(offset, length);\n };\n ASN1.decode = function (str) {\n var stream;\n if (!(str instanceof Stream)) {\n stream = new Stream(str, 0);\n }\n else {\n stream = str;\n }\n var streamStart = new Stream(stream);\n var tag = new ASN1Tag(stream);\n var len = ASN1.decodeLength(stream);\n var start = stream.pos;\n var header = start - streamStart.pos;\n var sub = null;\n var getSub = function () {\n var ret = [];\n if (len !== null) {\n // definite length\n var end = start + len;\n while (stream.pos < end) {\n ret[ret.length] = ASN1.decode(stream);\n }\n if (stream.pos != end) {\n throw new Error(\"Content size is not correct for container starting at offset \" + start);\n }\n }\n else {\n // undefined length\n try {\n for (;;) {\n var s = ASN1.decode(stream);\n if (s.tag.isEOC()) {\n break;\n }\n ret[ret.length] = s;\n }\n len = start - stream.pos; // undefined lengths are represented as negative values\n }\n catch (e) {\n throw new Error(\"Exception while decoding undefined length content: \" + e);\n }\n }\n return ret;\n };\n if (tag.tagConstructed) {\n // must have valid content\n sub = getSub();\n }\n else if (tag.isUniversal() && ((tag.tagNumber == 0x03) || (tag.tagNumber == 0x04))) {\n // sometimes BitString and OctetString are used to encapsulate ASN.1\n try {\n if (tag.tagNumber == 0x03) {\n if (stream.get() != 0) {\n throw new Error(\"BIT STRINGs with unused bits cannot encapsulate.\");\n }\n }\n sub = getSub();\n for (var i = 0; i < sub.length; ++i) {\n if (sub[i].tag.isEOC()) {\n throw new Error(\"EOC is not supposed to be actual content.\");\n }\n }\n }\n catch (e) {\n // but silently ignore when they don't\n sub = null;\n }\n }\n if (sub === null) {\n if (len === null) {\n throw new Error(\"We can't skip over an invalid tag with undefined length at offset \" + start);\n }\n stream.pos = start + Math.abs(len);\n }\n return new ASN1(streamStart, header, len, tag, sub);\n };\n return ASN1;\n}());\nvar ASN1Tag = /** @class */ (function () {\n function ASN1Tag(stream) {\n var buf = stream.get();\n this.tagClass = buf >> 6;\n this.tagConstructed = ((buf & 0x20) !== 0);\n this.tagNumber = buf & 0x1F;\n if (this.tagNumber == 0x1F) { // long tag\n var n = new Int10();\n do {\n buf = stream.get();\n n.mulAdd(128, buf & 0x7F);\n } while (buf & 0x80);\n this.tagNumber = n.simplify();\n }\n }\n ASN1Tag.prototype.isUniversal = function () {\n return this.tagClass === 0x00;\n };\n ASN1Tag.prototype.isEOC = function () {\n return this.tagClass === 0x00 && this.tagNumber === 0x00;\n };\n return ASN1Tag;\n}());\n\n// Copyright (c) 2005 Tom Wu\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += int2char(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBitLength;\n // (public) return the number of bits in \"this\"\n BigInteger.prototype.bitLength = function () {\n if (this.t <= 0) {\n return 0;\n }\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n };\n // BigInteger.prototype.mod = bnMod;\n // (public) this mod a\n BigInteger.prototype.mod = function (a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n a.subTo(r, r);\n }\n return r;\n };\n // BigInteger.prototype.modPowInt = bnModPowInt;\n // (public) this^e % m, 0 <= e < 2^32\n BigInteger.prototype.modPowInt = function (e, m) {\n var z;\n if (e < 256 || m.isEven()) {\n z = new Classic(m);\n }\n else {\n z = new Montgomery(m);\n }\n return this.exp(e, z);\n };\n // BigInteger.prototype.clone = bnClone;\n // (public)\n BigInteger.prototype.clone = function () {\n var r = nbi();\n this.copyTo(r);\n return r;\n };\n // BigInteger.prototype.intValue = bnIntValue;\n // (public) return value as integer\n BigInteger.prototype.intValue = function () {\n if (this.s < 0) {\n if (this.t == 1) {\n return this[0] - this.DV;\n }\n else if (this.t == 0) {\n return -1;\n }\n }\n else if (this.t == 1) {\n return this[0];\n }\n else if (this.t == 0) {\n return 0;\n }\n // assumes 16 < DB < 32\n return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0];\n };\n // BigInteger.prototype.byteValue = bnByteValue;\n // (public) return value as byte\n BigInteger.prototype.byteValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 24) >> 24;\n };\n // BigInteger.prototype.shortValue = bnShortValue;\n // (public) return value as short (assumes DB>=16)\n BigInteger.prototype.shortValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 16) >> 16;\n };\n // BigInteger.prototype.signum = bnSigNum;\n // (public) 0 if this == 0, 1 if this > 0\n BigInteger.prototype.signum = function () {\n if (this.s < 0) {\n return -1;\n }\n else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) {\n return 0;\n }\n else {\n return 1;\n }\n };\n // BigInteger.prototype.toByteArray = bnToByteArray;\n // (public) convert to bigendian byte array\n BigInteger.prototype.toByteArray = function () {\n var i = this.t;\n var r = [];\n r[0] = this.s;\n var p = this.DB - (i * this.DB) % 8;\n var d;\n var k = 0;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\n r[k++] = d | (this.s << (this.DB - p));\n }\n while (i >= 0) {\n if (p < 8) {\n d = (this[i] & ((1 << p) - 1)) << (8 - p);\n d |= this[--i] >> (p += this.DB - 8);\n }\n else {\n d = (this[i] >> (p -= 8)) & 0xff;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if ((d & 0x80) != 0) {\n d |= -256;\n }\n if (k == 0 && (this.s & 0x80) != (d & 0x80)) {\n ++k;\n }\n if (k > 0 || d != this.s) {\n r[k++] = d;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.equals = bnEquals;\n BigInteger.prototype.equals = function (a) {\n return (this.compareTo(a) == 0);\n };\n // BigInteger.prototype.min = bnMin;\n BigInteger.prototype.min = function (a) {\n return (this.compareTo(a) < 0) ? this : a;\n };\n // BigInteger.prototype.max = bnMax;\n BigInteger.prototype.max = function (a) {\n return (this.compareTo(a) > 0) ? this : a;\n };\n // BigInteger.prototype.and = bnAnd;\n BigInteger.prototype.and = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_and, r);\n return r;\n };\n // BigInteger.prototype.or = bnOr;\n BigInteger.prototype.or = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_or, r);\n return r;\n };\n // BigInteger.prototype.xor = bnXor;\n BigInteger.prototype.xor = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_xor, r);\n return r;\n };\n // BigInteger.prototype.andNot = bnAndNot;\n BigInteger.prototype.andNot = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_andnot, r);\n return r;\n };\n // BigInteger.prototype.not = bnNot;\n // (public) ~this\n BigInteger.prototype.not = function () {\n var r = nbi();\n for (var i = 0; i < this.t; ++i) {\n r[i] = this.DM & ~this[i];\n }\n r.t = this.t;\n r.s = ~this.s;\n return r;\n };\n // BigInteger.prototype.shiftLeft = bnShiftLeft;\n // (public) this << n\n BigInteger.prototype.shiftLeft = function (n) {\n var r = nbi();\n if (n < 0) {\n this.rShiftTo(-n, r);\n }\n else {\n this.lShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.shiftRight = bnShiftRight;\n // (public) this >> n\n BigInteger.prototype.shiftRight = function (n) {\n var r = nbi();\n if (n < 0) {\n this.lShiftTo(-n, r);\n }\n else {\n this.rShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n // (public) returns index of lowest 1-bit (or -1 if none)\n BigInteger.prototype.getLowestSetBit = function () {\n for (var i = 0; i < this.t; ++i) {\n if (this[i] != 0) {\n return i * this.DB + lbit(this[i]);\n }\n }\n if (this.s < 0) {\n return this.t * this.DB;\n }\n return -1;\n };\n // BigInteger.prototype.bitCount = bnBitCount;\n // (public) return number of set bits\n BigInteger.prototype.bitCount = function () {\n var r = 0;\n var x = this.s & this.DM;\n for (var i = 0; i < this.t; ++i) {\n r += cbit(this[i] ^ x);\n }\n return r;\n };\n // BigInteger.prototype.testBit = bnTestBit;\n // (public) true iff nth bit is set\n BigInteger.prototype.testBit = function (n) {\n var j = Math.floor(n / this.DB);\n if (j >= this.t) {\n return (this.s != 0);\n }\n return ((this[j] & (1 << (n % this.DB))) != 0);\n };\n // BigInteger.prototype.setBit = bnSetBit;\n // (public) this | (1<<n)\n BigInteger.prototype.setBit = function (n) {\n return this.changeBit(n, op_or);\n };\n // BigInteger.prototype.clearBit = bnClearBit;\n // (public) this & ~(1<<n)\n BigInteger.prototype.clearBit = function (n) {\n return this.changeBit(n, op_andnot);\n };\n // BigInteger.prototype.flipBit = bnFlipBit;\n // (public) this ^ (1<<n)\n BigInteger.prototype.flipBit = function (n) {\n return this.changeBit(n, op_xor);\n };\n // BigInteger.prototype.add = bnAdd;\n // (public) this + a\n BigInteger.prototype.add = function (a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n };\n // BigInteger.prototype.subtract = bnSubtract;\n // (public) this - a\n BigInteger.prototype.subtract = function (a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n };\n // BigInteger.prototype.multiply = bnMultiply;\n // (public) this * a\n BigInteger.prototype.multiply = function (a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n };\n // BigInteger.prototype.divide = bnDivide;\n // (public) this / a\n BigInteger.prototype.divide = function (a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n };\n // BigInteger.prototype.remainder = bnRemainder;\n // (public) this % a\n BigInteger.prototype.remainder = function (a) {\n var r = nbi();\n this.divRemTo(a, null, r);\n return r;\n };\n // BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\n // (public) [this/a,this%a]\n BigInteger.prototype.divideAndRemainder = function (a) {\n var q = nbi();\n var r = nbi();\n this.divRemTo(a, q, r);\n return [q, r];\n };\n // BigInteger.prototype.modPow = bnModPow;\n // (public) this^e % m (HAC 14.85)\n BigInteger.prototype.modPow = function (e, m) {\n var i = e.bitLength();\n var k;\n var r = nbv(1);\n var z;\n if (i <= 0) {\n return r;\n }\n else if (i < 18) {\n k = 1;\n }\n else if (i < 48) {\n k = 3;\n }\n else if (i < 144) {\n k = 4;\n }\n else if (i < 768) {\n k = 5;\n }\n else {\n k = 6;\n }\n if (i < 8) {\n z = new Classic(m);\n }\n else if (m.isEven()) {\n z = new Barrett(m);\n }\n else {\n z = new Montgomery(m);\n }\n // precomputation\n var g = [];\n var n = 3;\n var k1 = k - 1;\n var km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1;\n var w;\n var is1 = true;\n var r2 = nbi();\n var t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) {\n w = (e[j] >> (i - k1)) & km;\n }\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0) {\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) {\n z.sqrTo(r, r2);\n }\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.modInverse = bnModInverse;\n // (public) 1/this % m (HAC 14.61)\n BigInteger.prototype.modInverse = function (m) {\n var ac = m.isEven();\n if ((this.isEven() && ac) || m.signum() == 0) {\n return BigInteger.ZERO;\n }\n var u = m.clone();\n var v = this.clone();\n var a = nbv(1);\n var b = nbv(0);\n var c = nbv(0);\n var d = nbv(1);\n while (u.signum() != 0) {\n while (u.isEven()) {\n u.rShiftTo(1, u);\n if (ac) {\n if (!a.isEven() || !b.isEven()) {\n a.addTo(this, a);\n b.subTo(m, b);\n }\n a.rShiftTo(1, a);\n }\n else if (!b.isEven()) {\n b.subTo(m, b);\n }\n b.rShiftTo(1, b);\n }\n while (v.isEven()) {\n v.rShiftTo(1, v);\n if (ac) {\n if (!c.isEven() || !d.isEven()) {\n c.addTo(this, c);\n d.subTo(m, d);\n }\n c.rShiftTo(1, c);\n }\n else if (!d.isEven()) {\n d.subTo(m, d);\n }\n d.rShiftTo(1, d);\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u);\n if (ac) {\n a.subTo(c, a);\n }\n b.subTo(d, b);\n }\n else {\n v.subTo(u, v);\n if (ac) {\n c.subTo(a, c);\n }\n d.subTo(b, d);\n }\n }\n if (v.compareTo(BigInteger.ONE) != 0) {\n return BigInteger.ZERO;\n }\n if (d.compareTo(m) >= 0) {\n return d.subtract(m);\n }\n if (d.signum() < 0) {\n d.addTo(m, d);\n }\n else {\n return d;\n }\n if (d.signum() < 0) {\n return d.add(m);\n }\n else {\n return d;\n }\n };\n // BigInteger.prototype.pow = bnPow;\n // (public) this^e\n BigInteger.prototype.pow = function (e) {\n return this.exp(e, new NullExp());\n };\n // BigInteger.prototype.gcd = bnGCD;\n // (public) gcd(this,a) (HAC 14.54)\n BigInteger.prototype.gcd = function (a) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n return x;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n while (x.signum() > 0) {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n }\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n return y;\n };\n // BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n // (public) test primality with certainty >= 1-.5^t\n BigInteger.prototype.isProbablePrime = function (t) {\n var i;\n var x = this.abs();\n if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n for (i = 0; i < lowprimes.length; ++i) {\n if (x[0] == lowprimes[i]) {\n return true;\n }\n }\n return false;\n }\n if (x.isEven()) {\n return false;\n }\n i = 1;\n while (i < lowprimes.length) {\n var m = lowprimes[i];\n var j = i + 1;\n while (j < lowprimes.length && m < lplim) {\n m *= lowprimes[j++];\n }\n m = x.modInt(m);\n while (i < j) {\n if (m % lowprimes[i++] == 0) {\n return false;\n }\n }\n }\n return x.millerRabin(t);\n };\n //#endregion PUBLIC\n //#region PROTECTED\n // BigInteger.prototype.copyTo = bnpCopyTo;\n // (protected) copy this to r\n BigInteger.prototype.copyTo = function (r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n r.t = this.t;\n r.s = this.s;\n };\n // BigInteger.prototype.fromInt = bnpFromInt;\n // (protected) set from integer value x, -DV <= x < DV\n BigInteger.prototype.fromInt = function (x) {\n this.t = 1;\n this.s = (x < 0) ? -1 : 0;\n if (x > 0) {\n this[0] = x;\n }\n else if (x < -1) {\n this[0] = x + this.DV;\n }\n else {\n this.t = 0;\n }\n };\n // BigInteger.prototype.fromString = bnpFromString;\n // (protected) set from string and radix\n BigInteger.prototype.fromString = function (s, b) {\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 256) {\n k = 8;\n /* byte array */\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n this.fromRadix(s, b);\n return;\n }\n this.t = 0;\n this.s = 0;\n var i = s.length;\n var mi = false;\n var sh = 0;\n while (--i >= 0) {\n var x = (k == 8) ? (+s[i]) & 0xff : intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") {\n mi = true;\n }\n continue;\n }\n mi = false;\n if (sh == 0) {\n this[this.t++] = x;\n }\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = (x >> (this.DB - sh));\n }\n else {\n this[this.t - 1] |= x << sh;\n }\n sh += k;\n if (sh >= this.DB) {\n sh -= this.DB;\n }\n }\n if (k == 8 && ((+s[0]) & 0x80) != 0) {\n this.s = -1;\n if (sh > 0) {\n this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh;\n }\n }\n this.clamp();\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.clamp = bnpClamp;\n // (protected) clamp off excess high words\n BigInteger.prototype.clamp = function () {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n };\n // BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n // (protected) r = this << n*DB\n BigInteger.prototype.dlShiftTo = function (n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r.t = this.t + n;\n r.s = this.s;\n };\n // BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n // (protected) r = this >> n*DB\n BigInteger.prototype.drShiftTo = function (n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n };\n // BigInteger.prototype.lShiftTo = bnpLShiftTo;\n // (protected) r = this << n\n BigInteger.prototype.lShiftTo = function (n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = (this.s << bs) & this.DM;\n for (var i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (var i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n };\n // BigInteger.prototype.rShiftTo = bnpRShiftTo;\n // (protected) r = this >> n\n BigInteger.prototype.rShiftTo = function (n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) {\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n }\n r.t = this.t - ds;\n r.clamp();\n };\n // BigInteger.prototype.subTo = bnpSubTo;\n // (protected) r = this - a\n BigInteger.prototype.subTo = function (a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c < -1) {\n r[i++] = this.DV + c;\n }\n else if (c > 0) {\n r[i++] = c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n // (protected) r = this * a, r != this,a (HAC 14.12)\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyTo = function (a, r) {\n var x = this.abs();\n var y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n r.s = 0;\n r.clamp();\n if (this.s != a.s) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.squareTo = bnpSquareTo;\n // (protected) r = this^2, r != this (HAC 14.16)\n BigInteger.prototype.squareTo = function (r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) {\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n }\n r.s = 0;\n r.clamp();\n };\n // BigInteger.prototype.divRemTo = bnpDivRemTo;\n // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n // r != q, this != m. q or r may be null.\n BigInteger.prototype.divRemTo = function (m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) {\n return;\n }\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) {\n q.fromInt(0);\n }\n if (r != null) {\n this.copyTo(r);\n }\n return;\n }\n if (r == null) {\n r = nbi();\n }\n var y = nbi();\n var ts = this.s;\n var ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) {\n return;\n }\n var yt = y0 * (1 << this.F1) + ((ys > 1) ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt;\n var d2 = (1 << this.F1) / yt;\n var e = 1 << this.F2;\n var i = r.t;\n var j = i - ys;\n var t = (q == null) ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) {\n BigInteger.ZERO.subTo(q, q);\n }\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) {\n r.rShiftTo(nsh, r);\n } // Denormalize remainder\n if (ts < 0) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.invDigit = bnpInvDigit;\n // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n // justification:\n // xy == 1 (mod m)\n // xy = 1+km\n // xy(2-xy) = (1+km)(1-km)\n // x[y(2-xy)] = 1-k^2m^2\n // x[y(2-xy)] == 1 (mod m^2)\n // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n BigInteger.prototype.invDigit = function () {\n if (this.t < 1) {\n return 0;\n }\n var x = this[0];\n if ((x & 1) == 0) {\n return 0;\n }\n var y = x & 3; // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y > 0) ? this.DV - y : -y;\n };\n // BigInteger.prototype.isEven = bnpIsEven;\n // (protected) true iff this is even\n BigInteger.prototype.isEven = function () {\n return ((this.t > 0) ? (this[0] & 1) : this.s) == 0;\n };\n // BigInteger.prototype.exp = bnpExp;\n // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n BigInteger.prototype.exp = function (e, z) {\n if (e > 0xffffffff || e < 1) {\n return BigInteger.ONE;\n }\n var r = nbi();\n var r2 = nbi();\n var g = z.convert(this);\n var i = nbits(e) - 1;\n g.copyTo(r);\n while (--i >= 0) {\n z.sqrTo(r, r2);\n if ((e & (1 << i)) > 0) {\n z.mulTo(r2, g, r);\n }\n else {\n var t = r;\n r = r2;\n r2 = t;\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.chunkSize = bnpChunkSize;\n // (protected) return x s.t. r^x < DV\n BigInteger.prototype.chunkSize = function (r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r));\n };\n // BigInteger.prototype.toRadix = bnpToRadix;\n // (protected) convert to radix string\n BigInteger.prototype.toRadix = function (b) {\n if (b == null) {\n b = 10;\n }\n if (this.signum() == 0 || b < 2 || b > 36) {\n return \"0\";\n }\n var cs = this.chunkSize(b);\n var a = Math.pow(b, cs);\n var d = nbv(a);\n var y = nbi();\n var z = nbi();\n var r = \"\";\n this.divRemTo(d, y, z);\n while (y.signum() > 0) {\n r = (a + z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d, y, z);\n }\n return z.intValue().toString(b) + r;\n };\n // BigInteger.prototype.fromRadix = bnpFromRadix;\n // (protected) convert from radix string\n BigInteger.prototype.fromRadix = function (s, b) {\n this.fromInt(0);\n if (b == null) {\n b = 10;\n }\n var cs = this.chunkSize(b);\n var d = Math.pow(b, cs);\n var mi = false;\n var j = 0;\n var w = 0;\n for (var i = 0; i < s.length; ++i) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\" && this.signum() == 0) {\n mi = true;\n }\n continue;\n }\n w = b * w + x;\n if (++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w, 0);\n j = 0;\n w = 0;\n }\n }\n if (j > 0) {\n this.dMultiply(Math.pow(b, j));\n this.dAddOffset(w, 0);\n }\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.fromNumber = bnpFromNumber;\n // (protected) alternate constructor\n BigInteger.prototype.fromNumber = function (a, b, c) {\n if (\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n } // force odd\n while (!this.isProbablePrime(b)) {\n this.dAddOffset(2, 0);\n if (this.bitLength() > a) {\n this.subTo(BigInteger.ONE.shiftLeft(a - 1), this);\n }\n }\n }\n }\n else {\n // new BigInteger(int,RNG)\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n // BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n // (protected) r = this op a (bitwise)\n BigInteger.prototype.bitwiseTo = function (a, op, r) {\n var i;\n var f;\n var m = Math.min(a.t, this.t);\n for (i = 0; i < m; ++i) {\n r[i] = op(this[i], a[i]);\n }\n if (a.t < this.t) {\n f = a.s & this.DM;\n for (i = m; i < this.t; ++i) {\n r[i] = op(this[i], f);\n }\n r.t = this.t;\n }\n else {\n f = this.s & this.DM;\n for (i = m; i < a.t; ++i) {\n r[i] = op(f, a[i]);\n }\n r.t = a.t;\n }\n r.s = op(this.s, a.s);\n r.clamp();\n };\n // BigInteger.prototype.changeBit = bnpChangeBit;\n // (protected) this op (1<<n)\n BigInteger.prototype.changeBit = function (n, op) {\n var r = BigInteger.ONE.shiftLeft(n);\n this.bitwiseTo(r, op, r);\n return r;\n };\n // BigInteger.prototype.addTo = bnpAddTo;\n // (protected) r = this + a\n BigInteger.prototype.addTo = function (a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c > 0) {\n r[i++] = c;\n }\n else if (c < -1) {\n r[i++] = this.DV + c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.dMultiply = bnpDMultiply;\n // (protected) this *= n, this >= 0, 1 < n < DV\n BigInteger.prototype.dMultiply = function (n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t);\n ++this.t;\n this.clamp();\n };\n // BigInteger.prototype.dAddOffset = bnpDAddOffset;\n // (protected) this += n << w words, this >= 0\n BigInteger.prototype.dAddOffset = function (n, w) {\n if (n == 0) {\n return;\n }\n while (this.t <= w) {\n this[this.t++] = 0;\n }\n this[w] += n;\n while (this[w] >= this.DV) {\n this[w] -= this.DV;\n if (++w >= this.t) {\n this[this.t++] = 0;\n }\n ++this[w];\n }\n };\n // BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n // (protected) r = lower n words of \"this * a\", a.t <= n\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyLowerTo = function (a, n, r) {\n var i = Math.min(this.t + a.t, n);\n r.s = 0; // assumes a,this >= 0\n r.t = i;\n while (i > 0) {\n r[--i] = 0;\n }\n for (var j = r.t - this.t; i < j; ++i) {\n r[i + this.t] = this.am(0, a[i], r, i, 0, this.t);\n }\n for (var j = Math.min(a.t, n); i < j; ++i) {\n this.am(0, a[i], r, i, 0, n - i);\n }\n r.clamp();\n };\n // BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n // (protected) r = \"this * a\" without lower n words, n > 0\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyUpperTo = function (a, n, r) {\n --n;\n var i = r.t = this.t + a.t - n;\n r.s = 0; // assumes a,this >= 0\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = Math.max(n - this.t, 0); i < a.t; ++i) {\n r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n);\n }\n r.clamp();\n r.drShiftTo(1, r);\n };\n // BigInteger.prototype.modInt = bnpModInt;\n // (protected) this % n, n < 2^26\n BigInteger.prototype.modInt = function (n) {\n if (n <= 0) {\n return 0;\n }\n var d = this.DV % n;\n var r = (this.s < 0) ? n - 1 : 0;\n if (this.t > 0) {\n if (d == 0) {\n r = this[0] % n;\n }\n else {\n for (var i = this.t - 1; i >= 0; --i) {\n r = (d * r + this[i]) % n;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.millerRabin = bnpMillerRabin;\n // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n BigInteger.prototype.millerRabin = function (t) {\n var n1 = this.subtract(BigInteger.ONE);\n var k = n1.getLowestSetBit();\n if (k <= 0) {\n return false;\n }\n var r = n1.shiftRight(k);\n t = (t + 1) >> 1;\n if (t > lowprimes.length) {\n t = lowprimes.length;\n }\n var a = nbi();\n for (var i = 0; i < t; ++i) {\n // Pick bases at random, instead of starting at 2\n a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);\n var y = a.modPow(r, this);\n if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while (j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2, this);\n if (y.compareTo(BigInteger.ONE) == 0) {\n return false;\n }\n }\n if (y.compareTo(n1) != 0) {\n return false;\n }\n }\n }\n return true;\n };\n // BigInteger.prototype.square = bnSquare;\n // (public) this^2\n BigInteger.prototype.square = function () {\n var r = nbi();\n this.squareTo(r);\n return r;\n };\n //#region ASYNC\n // Public API method\n BigInteger.prototype.gcda = function (a, callback) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n callback(x);\n return;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n // Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.\n var gcda1 = function () {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n if (!(x.signum() > 0)) {\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n setTimeout(function () { callback(y); }, 0); // escape\n }\n else {\n setTimeout(gcda1, 0);\n }\n };\n setTimeout(gcda1, 10);\n };\n // (protected) alternate constructor\n BigInteger.prototype.fromNumberAsync = function (a, b, c, callback) {\n if (\"number\" == typeof b) {\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n }\n var bnp_1 = this;\n var bnpfn1_1 = function () {\n bnp_1.dAddOffset(2, 0);\n if (bnp_1.bitLength() > a) {\n bnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1);\n }\n if (bnp_1.isProbablePrime(b)) {\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(bnpfn1_1, 0);\n }\n };\n setTimeout(bnpfn1_1, 0);\n }\n }\n else {\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n return BigInteger;\n}());\n//#region REDUCERS\n//#region NullExp\nvar NullExp = /** @class */ (function () {\n function NullExp() {\n }\n // NullExp.prototype.convert = nNop;\n NullExp.prototype.convert = function (x) {\n return x;\n };\n // NullExp.prototype.revert = nNop;\n NullExp.prototype.revert = function (x) {\n return x;\n };\n // NullExp.prototype.mulTo = nMulTo;\n NullExp.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n };\n // NullExp.prototype.sqrTo = nSqrTo;\n NullExp.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n };\n return NullExp;\n}());\n// Modular reduction using \"classic\" algorithm\nvar Classic = /** @class */ (function () {\n function Classic(m) {\n this.m = m;\n }\n // Classic.prototype.convert = cConvert;\n Classic.prototype.convert = function (x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) {\n return x.mod(this.m);\n }\n else {\n return x;\n }\n };\n // Classic.prototype.revert = cRevert;\n Classic.prototype.revert = function (x) {\n return x;\n };\n // Classic.prototype.reduce = cReduce;\n Classic.prototype.reduce = function (x) {\n x.divRemTo(this.m, null, x);\n };\n // Classic.prototype.mulTo = cMulTo;\n Classic.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Classic.prototype.sqrTo = cSqrTo;\n Classic.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Classic;\n}());\n//#endregion\n//#region Montgomery\n// Montgomery reduction\nvar Montgomery = /** @class */ (function () {\n function Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n }\n // Montgomery.prototype.convert = montConvert;\n // xR mod m\n Montgomery.prototype.convert = function (x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n this.m.subTo(r, r);\n }\n return r;\n };\n // Montgomery.prototype.revert = montRevert;\n // x/R mod m\n Montgomery.prototype.revert = function (x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n };\n // Montgomery.prototype.reduce = montReduce;\n // x = x/R mod m (HAC 14.32)\n Montgomery.prototype.reduce = function (x) {\n while (x.t <= this.mt2) {\n // pad x so am has enough room later\n x[x.t++] = 0;\n }\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Montgomery.prototype.mulTo = montMulTo;\n // r = \"xy/R mod m\"; x,y != r\n Montgomery.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Montgomery.prototype.sqrTo = montSqrTo;\n // r = \"x^2/R mod m\"; x != r\n Montgomery.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Montgomery;\n}());\n//#endregion Montgomery\n//#region Barrett\n// Barrett modular reduction\nvar Barrett = /** @class */ (function () {\n function Barrett(m) {\n this.m = m;\n // setup Barrett\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2);\n this.mu = this.r2.divide(m);\n }\n // Barrett.prototype.convert = barrettConvert;\n Barrett.prototype.convert = function (x) {\n if (x.s < 0 || x.t > 2 * this.m.t) {\n return x.mod(this.m);\n }\n else if (x.compareTo(this.m) < 0) {\n return x;\n }\n else {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n };\n // Barrett.prototype.revert = barrettRevert;\n Barrett.prototype.revert = function (x) {\n return x;\n };\n // Barrett.prototype.reduce = barrettReduce;\n // x = x mod m (HAC 14.42)\n Barrett.prototype.reduce = function (x) {\n x.drShiftTo(this.m.t - 1, this.r2);\n if (x.t > this.m.t + 1) {\n x.t = this.m.t + 1;\n x.clamp();\n }\n this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);\n this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);\n while (x.compareTo(this.r2) < 0) {\n x.dAddOffset(1, this.m.t + 1);\n }\n x.subTo(this.r2, x);\n while (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Barrett.prototype.mulTo = barrettMulTo;\n // r = x*y mod m; x,y != r\n Barrett.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Barrett.prototype.sqrTo = barrettSqrTo;\n // r = x^2 mod m; x != r\n Barrett.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Barrett;\n}());\n//#endregion\n//#endregion REDUCERS\n// return new, unset BigInteger\nfunction nbi() { return new BigInteger(null); }\nfunction parseBigInt(str, r) {\n return new BigInteger(str, r);\n}\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff;\n var xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff;\n var xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nif (j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n}\nelse if (j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n}\nelse { // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1 << dbits) - 1);\nBigInteger.prototype.DV = (1 << dbits);\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nvar BI_RC = [];\nvar rr;\nvar vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return (c == null) ? -1 : c;\n}\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1;\n var t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\n// Plug in your RNG constructor here\nfunction prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nvar rng_psize = 256;\n\n// Random number generator - requires a PRNG backend, e.g. prng4.js\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var onMouseMoveListener_1 = function (ev) {\n this.count = this.count || 0;\n if (this.count >= 256 || rng_pptr >= rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n this.count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = prng_newstate();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\n\n// Depends on jsbn.js and rng.js\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return parseBigInt(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var m = pkcs1pad2(text, (this.n.bitLength() + 7) >> 3);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n if ((h.length & 1) == 0) {\n return h;\n }\n else {\n return \"0\" + h;\n }\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, D) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.setPrivateEx = RSASetPrivateEx;\n // Set the private key fields N, e, d and CRT params from hex strings\n RSAKey.prototype.setPrivateEx = function (N, E, D, P, Q, DP, DQ, C) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n this.p = parseBigInt(P, 16);\n this.q = parseBigInt(Q, 16);\n this.dmp1 = parseBigInt(DP, 16);\n this.dmq1 = parseBigInt(DQ, 16);\n this.coeff = parseBigInt(C, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.generate = RSAGenerate;\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generate = function (B, E) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n for (;;) {\n for (;;) {\n this.p = new BigInteger(B - qs, 1, rng);\n if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {\n break;\n }\n }\n for (;;) {\n this.q = new BigInteger(qs, 1, rng);\n if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {\n break;\n }\n }\n if (this.p.compareTo(this.q) <= 0) {\n var t = this.p;\n this.p = this.q;\n this.q = t;\n }\n var p1 = this.p.subtract(BigInteger.ONE);\n var q1 = this.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n this.n = this.p.multiply(this.q);\n this.d = ee.modInverse(phi);\n this.dmp1 = this.d.mod(p1);\n this.dmq1 = this.d.mod(q1);\n this.coeff = this.q.modInverse(this.p);\n break;\n }\n }\n };\n // RSAKey.prototype.decrypt = RSADecrypt;\n // Return the PKCS#1 RSA decryption of \"ctext\".\n // \"ctext\" is an even-length hex string and the output is a plain string.\n RSAKey.prototype.decrypt = function (ctext) {\n var c = parseBigInt(ctext, 16);\n var m = this.doPrivate(c);\n if (m == null) {\n return null;\n }\n return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);\n };\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generateAsync = function (B, E, callback) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n var rsa = this;\n // These functions have non-descript names because they were originally for(;;) loops.\n // I don't know about cryptography to give them better names than loop1-4.\n var loop1 = function () {\n var loop4 = function () {\n if (rsa.p.compareTo(rsa.q) <= 0) {\n var t = rsa.p;\n rsa.p = rsa.q;\n rsa.q = t;\n }\n var p1 = rsa.p.subtract(BigInteger.ONE);\n var q1 = rsa.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n rsa.n = rsa.p.multiply(rsa.q);\n rsa.d = ee.modInverse(phi);\n rsa.dmp1 = rsa.d.mod(p1);\n rsa.dmq1 = rsa.d.mod(q1);\n rsa.coeff = rsa.q.modInverse(rsa.p);\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(loop1, 0);\n }\n };\n var loop3 = function () {\n rsa.q = nbi();\n rsa.q.fromNumberAsync(qs, 1, rng, function () {\n rsa.q.subtract(BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {\n setTimeout(loop4, 0);\n }\n else {\n setTimeout(loop3, 0);\n }\n });\n });\n };\n var loop2 = function () {\n rsa.p = nbi();\n rsa.p.fromNumberAsync(B - qs, 1, rng, function () {\n rsa.p.subtract(BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {\n setTimeout(loop3, 0);\n }\n else {\n setTimeout(loop2, 0);\n }\n });\n });\n };\n setTimeout(loop2, 0);\n };\n setTimeout(loop1, 0);\n };\n RSAKey.prototype.sign = function (text, digestMethod, digestName) {\n var header = getDigestHeader(digestName);\n var digest = header + digestMethod(text).toString();\n var m = pkcs1pad1(digest, this.n.bitLength() / 4);\n if (m == null) {\n return null;\n }\n var c = this.doPrivate(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n if ((h.length & 1) == 0) {\n return h;\n }\n else {\n return \"0\" + h;\n }\n };\n RSAKey.prototype.verify = function (text, signature, digestMethod) {\n var c = parseBigInt(signature, 16);\n var m = this.doPublic(c);\n if (m == null) {\n return null;\n }\n var unpadded = m.toString(16).replace(/^1f+00/, \"\");\n var digest = removeDigestHeader(unpadded);\n return digest == digestMethod(text).toString();\n };\n return RSAKey;\n}());\n// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext\nfunction pkcs1unpad2(d, n) {\n var b = d.toByteArray();\n var i = 0;\n while (i < b.length && b[i] == 0) {\n ++i;\n }\n if (b.length - i != n - 1 || b[i] != 2) {\n return null;\n }\n ++i;\n while (b[i] != 0) {\n if (++i >= b.length) {\n return null;\n }\n }\n var ret = \"\";\n while (++i < b.length) {\n var c = b[i] & 255;\n if (c < 128) { // utf-8 decode\n ret += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));\n ++i;\n }\n else {\n ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));\n i += 2;\n }\n }\n return ret;\n}\n// https://tools.ietf.org/html/rfc3447#page-43\nvar DIGEST_HEADERS = {\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n ripemd160: \"3021300906052b2403020105000414\",\n};\nfunction getDigestHeader(name) {\n return DIGEST_HEADERS[name] || \"\";\n}\nfunction removeDigestHeader(str) {\n for (var name_1 in DIGEST_HEADERS) {\n if (DIGEST_HEADERS.hasOwnProperty(name_1)) {\n var header = DIGEST_HEADERS[name_1];\n var len = header.length;\n if (str.substr(0, len) == header) {\n return str.substr(len);\n }\n }\n }\n return str;\n}\n// Return the PKCS#1 RSA encryption of \"text\" as a Base64-encoded string\n// function RSAEncryptB64(text) {\n// var h = this.encrypt(text);\n// if(h) return hex2b64(h); else return null;\n// }\n// public\n// RSAKey.prototype.encrypt_b64 = RSAEncryptB64;\n\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nvar YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function(subc, superc, overrides) {\n if (! superc || ! subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n\n var F = function() {};\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function() {},\n ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function(r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n } catch (ex) {} _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n\n/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license <a href=\"https://kjur.github.io/jsrsasign/license/\">MIT License</a>\n */\n\n/**\n * kjur's class library name space\n * <p>\n * This name space provides following name spaces:\n * <ul>\n * <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>\n * <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>\n * <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nvar KJUR = {};\n\n/**\n * kjur's ASN.1 class library name space\n * <p>\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n * <h4>PROVIDING ASN.1 PRIMITIVES</h4>\n * Here are ASN.1 DER primitive classes.\n * <ul>\n * <li>0x01 {@link KJUR.asn1.DERBoolean}</li>\n * <li>0x02 {@link KJUR.asn1.DERInteger}</li>\n * <li>0x03 {@link KJUR.asn1.DERBitString}</li>\n * <li>0x04 {@link KJUR.asn1.DEROctetString}</li>\n * <li>0x05 {@link KJUR.asn1.DERNull}</li>\n * <li>0x06 {@link KJUR.asn1.DERObjectIdentifier}</li>\n * <li>0x0a {@link KJUR.asn1.DEREnumerated}</li>\n * <li>0x0c {@link KJUR.asn1.DERUTF8String}</li>\n * <li>0x12 {@link KJUR.asn1.DERNumericString}</li>\n * <li>0x13 {@link KJUR.asn1.DERPrintableString}</li>\n * <li>0x14 {@link KJUR.asn1.DERTeletexString}</li>\n * <li>0x16 {@link KJUR.asn1.DERIA5String}</li>\n * <li>0x17 {@link KJUR.asn1.DERUTCTime}</li>\n * <li>0x18 {@link KJUR.asn1.DERGeneralizedTime}</li>\n * <li>0x30 {@link KJUR.asn1.DERSequence}</li>\n * <li>0x31 {@link KJUR.asn1.DERSet}</li>\n * </ul>\n * <h4>OTHER ASN.1 CLASSES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.ASN1Object}</li>\n * <li>{@link KJUR.asn1.DERAbstractString}</li>\n * <li>{@link KJUR.asn1.DERAbstractTime}</li>\n * <li>{@link KJUR.asn1.DERAbstractStructured}</li>\n * <li>{@link KJUR.asn1.DERTaggedObject}</li>\n * </ul>\n * <h4>SUB NAME SPACES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.cades} - CAdES long term signature format</li>\n * <li>{@link KJUR.asn1.cms} - Cryptographic Message Syntax</li>\n * <li>{@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)</li>\n * <li>{@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format</li>\n * <li>{@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1) KJUR.asn1 = {};\n\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function() {\n this.integerToByteHex = function(i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1) h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function(bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n } else {\n if (! h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n } else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n } else {\n if (! h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n }\n var biMask = new BigInteger(hMask, 16);\n var biNeg = biMask.xor(bigIntegerValue).add(BigInteger.ONE);\n h = biNeg.toString(16).replace(/^-/, '');\n }\n return h;\n };\n /**\n * get PEM string from hexadecimal data and header string\n * @name getPEMStringFromHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} dataHex hexadecimal string of PEM body\n * @param {String} pemHeader PEM header string (ex. 'RSA PRIVATE KEY')\n * @return {String} PEM formatted string of input data\n * @description\n * This method converts a hexadecimal string to a PEM string with\n * a specified header. Its line break will be CRLF(\"\\r\\n\").\n * @example\n * var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex('616161', 'RSA PRIVATE KEY');\n * // value of pem will be:\n * -----BEGIN PRIVATE KEY-----\n * YWFh\n * -----END PRIVATE KEY-----\n */\n this.getPEMStringFromHex = function(dataHex, pemHeader) {\n return hextopem(dataHex, pemHeader);\n };\n\n /**\n * generate ASN1Object specifed by JSON parameters\n * @name newObject\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return {KJUR.asn1.ASN1Object} generated object\n * @since asn1 1.0.3\n * @description\n * generate any ASN1Object specified by JSON param\n * including ASN.1 primitive or structured.\n * Generally 'param' can be described as follows:\n * <blockquote>\n * {TYPE-OF-ASNOBJ: ASN1OBJ-PARAMETER}\n * </blockquote>\n * 'TYPE-OF-ASN1OBJ' can be one of following symbols:\n * <ul>\n * <li>'bool' - DERBoolean</li>\n * <li>'int' - DERInteger</li>\n * <li>'bitstr' - DERBitString</li>\n * <li>'octstr' - DEROctetString</li>\n * <li>'null' - DERNull</li>\n * <li>'oid' - DERObjectIdentifier</li>\n * <li>'enum' - DEREnumerated</li>\n * <li>'utf8str' - DERUTF8String</li>\n * <li>'numstr' - DERNumericString</li>\n * <li>'prnstr' - DERPrintableString</li>\n * <li>'telstr' - DERTeletexString</li>\n * <li>'ia5str' - DERIA5String</li>\n * <li>'utctime' - DERUTCTime</li>\n * <li>'gentime' - DERGeneralizedTime</li>\n * <li>'seq' - DERSequence</li>\n * <li>'set' - DERSet</li>\n * <li>'tag' - DERTaggedObject</li>\n * </ul>\n * @example\n * newObject({'prnstr': 'aaa'});\n * newObject({'seq': [{'int': 3}, {'prnstr': 'aaa'}]})\n * // ASN.1 Tagged Object\n * newObject({'tag': {'tag': 'a1',\n * 'explicit': true,\n * 'obj': {'seq': [{'int': 3}, {'prnstr': 'aaa'}]}}});\n * // more simple representation of ASN.1 Tagged Object\n * newObject({'tag': ['a1',\n * true,\n * {'seq': [\n * {'int': 3},\n * {'prnstr': 'aaa'}]}\n * ]});\n */\n this.newObject = function(param) {\n var _KJUR = KJUR,\n _KJUR_asn1 = _KJUR.asn1,\n _DERBoolean = _KJUR_asn1.DERBoolean,\n _DERInteger = _KJUR_asn1.DERInteger,\n _DERBitString = _KJUR_asn1.DERBitString,\n _DEROctetString = _KJUR_asn1.DEROctetString,\n _DERNull = _KJUR_asn1.DERNull,\n _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier,\n _DEREnumerated = _KJUR_asn1.DEREnumerated,\n _DERUTF8String = _KJUR_asn1.DERUTF8String,\n _DERNumericString = _KJUR_asn1.DERNumericString,\n _DERPrintableString = _KJUR_asn1.DERPrintableString,\n _DERTeletexString = _KJUR_asn1.DERTeletexString,\n _DERIA5String = _KJUR_asn1.DERIA5String,\n _DERUTCTime = _KJUR_asn1.DERUTCTime,\n _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime,\n _DERSequence = _KJUR_asn1.DERSequence,\n _DERSet = _KJUR_asn1.DERSet,\n _DERTaggedObject = _KJUR_asn1.DERTaggedObject,\n _newObject = _KJUR_asn1.ASN1Util.newObject;\n\n var keys = Object.keys(param);\n if (keys.length != 1)\n throw \"key of param shall be only one.\";\n var key = keys[0];\n\n if (\":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + key + \":\") == -1)\n throw \"undefined key: \" + key;\n\n if (key == \"bool\") return new _DERBoolean(param[key]);\n if (key == \"int\") return new _DERInteger(param[key]);\n if (key == \"bitstr\") return new _DERBitString(param[key]);\n if (key == \"octstr\") return new _DEROctetString(param[key]);\n if (key == \"null\") return new _DERNull(param[key]);\n if (key == \"oid\") return new _DERObjectIdentifier(param[key]);\n if (key == \"enum\") return new _DEREnumerated(param[key]);\n if (key == \"utf8str\") return new _DERUTF8String(param[key]);\n if (key == \"numstr\") return new _DERNumericString(param[key]);\n if (key == \"prnstr\") return new _DERPrintableString(param[key]);\n if (key == \"telstr\") return new _DERTeletexString(param[key]);\n if (key == \"ia5str\") return new _DERIA5String(param[key]);\n if (key == \"utctime\") return new _DERUTCTime(param[key]);\n if (key == \"gentime\") return new _DERGeneralizedTime(param[key]);\n\n if (key == \"seq\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSequence({'array': a});\n }\n\n if (key == \"set\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSet({'array': a});\n }\n\n if (key == \"tag\") {\n var tagParam = param[key];\n if (Object.prototype.toString.call(tagParam) === '[object Array]' &&\n tagParam.length == 3) {\n var obj = _newObject(tagParam[2]);\n return new _DERTaggedObject({tag: tagParam[0],\n explicit: tagParam[1],\n obj: obj});\n } else {\n var newParam = {};\n if (tagParam.explicit !== undefined)\n newParam.explicit = tagParam.explicit;\n if (tagParam.tag !== undefined)\n newParam.tag = tagParam.tag;\n if (tagParam.obj === undefined)\n throw \"obj shall be specified for 'tag'.\";\n newParam.obj = _newObject(tagParam.obj);\n return new _DERTaggedObject(newParam);\n }\n }\n };\n\n /**\n * get encoded hexadecimal string of ASN1Object specifed by JSON parameters\n * @name jsonToASN1HEX\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return hexadecimal string of ASN1Object\n * @since asn1 1.0.4\n * @description\n * As for ASN.1 object representation of JSON object,\n * please see {@link newObject}.\n * @example\n * jsonToASN1HEX({'prnstr': 'aaa'});\n */\n this.jsonToASN1HEX = function(param) {\n var asn1Obj = this.newObject(param);\n return asn1Obj.getEncodedHex();\n };\n};\n\n/**\n * get dot noted oid number string from hexadecimal value of OID\n * @name oidHexToInt\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} hex hexadecimal value of object identifier\n * @return {String} dot noted string of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from hexadecimal string representation of\n * ASN.1 value of object identifier to oid number string.\n * @example\n * KJUR.asn1.ASN1Util.oidHexToInt('550406') → \"2.5.4.6\"\n */\nKJUR.asn1.ASN1Util.oidHexToInt = function(hex) {\n var s = \"\";\n var i01 = parseInt(hex.substr(0, 2), 16);\n var i0 = Math.floor(i01 / 40);\n var i1 = i01 % 40;\n var s = i0 + \".\" + i1;\n\n var binbuf = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n var value = parseInt(hex.substr(i, 2), 16);\n var bin = (\"00000000\" + value.toString(2)).slice(- 8);\n binbuf = binbuf + bin.substr(1, 7);\n if (bin.substr(0, 1) == \"0\") {\n var bi = new BigInteger(binbuf, 2);\n s = s + \".\" + bi.toString(10);\n binbuf = \"\";\n }\n }\n return s;\n};\n\n/**\n * get hexadecimal value of object identifier from dot noted oid value\n * @name oidIntToHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} oidString dot noted string of object identifier\n * @return {String} hexadecimal value of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from object identifier value string.\n * to hexadecimal string representation of it.\n * @example\n * KJUR.asn1.ASN1Util.oidIntToHex(\"2.5.4.6\") → \"550406\"\n */\nKJUR.asn1.ASN1Util.oidIntToHex = function(oidString) {\n var itox = function(i) {\n var h = i.toString(16);\n if (h.length == 1) h = '0' + h;\n return h;\n };\n\n var roidtox = function(roid) {\n var h = '';\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7) padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++) bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7) b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n\n if (! oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n return h;\n};\n\n\n// ********************************************************************\n// Abstract ASN.1 Classes\n// ********************************************************************\n\n// ********************************************************************\n\n/**\n * base class for ASN.1 DER encoder object\n * @name KJUR.asn1.ASN1Object\n * @class base class for ASN.1 DER encoder object\n * @property {Boolean} isModified flag whether internal data was changed\n * @property {String} hTLV hexadecimal string of ASN.1 TLV\n * @property {String} hT hexadecimal string of ASN.1 TLV tag(T)\n * @property {String} hL hexadecimal string of ASN.1 TLV length(L)\n * @property {String} hV hexadecimal string of ASN.1 TLV value(V)\n * @description\n */\nKJUR.asn1.ASN1Object = function() {\n var hV = '';\n\n /**\n * get hexadecimal ASN.1 TLV length(L) bytes from TLV value(V)\n * @name getLengthHexFromValue\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV length(L)\n */\n this.getLengthHexFromValue = function() {\n if (typeof this.hV == \"undefined\" || this.hV == null) {\n throw \"this.hV is null or undefined.\";\n }\n if (this.hV.length % 2 == 1) {\n throw \"value hex must be even length: n=\" + hV.length + \",v=\" + this.hV;\n }\n var n = this.hV.length / 2;\n var hN = n.toString(16);\n if (hN.length % 2 == 1) {\n hN = \"0\" + hN;\n }\n if (n < 128) {\n return hN;\n } else {\n var hNlen = hN.length / 2;\n if (hNlen > 15) {\n throw \"ASN.1 length too long to represent by 8x: n = \" + n.toString(16);\n }\n var head = 128 + hNlen;\n return head.toString(16) + hN;\n }\n };\n\n /**\n * get hexadecimal string of ASN.1 TLV bytes\n * @name getEncodedHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV\n */\n this.getEncodedHex = function() {\n if (this.hTLV == null || this.isModified) {\n this.hV = this.getFreshValueHex();\n this.hL = this.getLengthHexFromValue();\n this.hTLV = this.hT + this.hL + this.hV;\n this.isModified = false;\n //alert(\"first time: \" + this.hTLV);\n }\n return this.hTLV;\n };\n\n /**\n * get hexadecimal string of ASN.1 TLV value(V) bytes\n * @name getValueHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV value(V) bytes\n */\n this.getValueHex = function() {\n this.getEncodedHex();\n return this.hV;\n };\n\n this.getFreshValueHex = function() {\n return '';\n };\n};\n\n// == BEGIN DERAbstractString ================================================\n/**\n * base class for ASN.1 DER string classes\n * @name KJUR.asn1.DERAbstractString\n * @class base class for ASN.1 DER string classes\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @property {String} s internal string of value\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>str - specify initial ASN.1 value(V) by a string</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERAbstractString = function(params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @return {String} string value of this string object\n */\n this.getString = function() {\n return this.s;\n };\n\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newS value by a string to set\n */\n this.setString = function(newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(this.s);\n };\n\n /**\n * set value by a hexadecimal string\n * @name setStringHex\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newHexString value by a hexadecimal string to set\n */\n this.setStringHex = function(newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n\n this.getFreshValueHex = function() {\n return this.hV;\n };\n\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\") {\n this.setString(params);\n } else if (typeof params['str'] != \"undefined\") {\n this.setString(params['str']);\n } else if (typeof params['hex'] != \"undefined\") {\n this.setStringHex(params['hex']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);\n// == END DERAbstractString ================================================\n\n// == BEGIN DERAbstractTime ==================================================\n/**\n * base class for ASN.1 DER Generalized/UTCTime class\n * @name KJUR.asn1.DERAbstractTime\n * @class base class for ASN.1 DER Generalized/UTCTime class\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractTime = function(params) {\n KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);\n\n // --- PRIVATE METHODS --------------------\n this.localDateToUTC = function(d) {\n utc = d.getTime() + (d.getTimezoneOffset() * 60000);\n var utcDate = new Date(utc);\n return utcDate;\n };\n\n /*\n * format date string by Data object\n * @name formatDate\n * @memberOf KJUR.asn1.AbstractTime;\n * @param {Date} dateObject\n * @param {string} type 'utc' or 'gen'\n * @param {boolean} withMillis flag for with millisections or not\n * @description\n * 'withMillis' flag is supported from asn1 1.0.6.\n */\n this.formatDate = function(dateObject, type, withMillis) {\n var pad = this.zeroPadding;\n var d = this.localDateToUTC(dateObject);\n var year = String(d.getFullYear());\n if (type == 'utc') year = year.substr(2, 2);\n var month = pad(String(d.getMonth() + 1), 2);\n var day = pad(String(d.getDate()), 2);\n var hour = pad(String(d.getHours()), 2);\n var min = pad(String(d.getMinutes()), 2);\n var sec = pad(String(d.getSeconds()), 2);\n var s = year + month + day + hour + min + sec;\n if (withMillis === true) {\n var millis = d.getMilliseconds();\n if (millis != 0) {\n var sMillis = pad(String(millis), 3);\n sMillis = sMillis.replace(/[0]+$/, \"\");\n s = s + \".\" + sMillis;\n }\n }\n return s + \"Z\";\n };\n\n this.zeroPadding = function(s, len) {\n if (s.length >= len) return s;\n return new Array(len - s.length + 1).join('0') + s;\n };\n\n // --- PUBLIC METHODS --------------------\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @return {String} string value of this time object\n */\n this.getString = function() {\n return this.s;\n };\n\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {String} newS value by a string to set such like \"130430235959Z\"\n */\n this.setString = function(newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(newS);\n };\n\n /**\n * set value by a Date object\n * @name setByDateValue\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {Integer} year year of date (ex. 2013)\n * @param {Integer} month month of date between 1 and 12 (ex. 12)\n * @param {Integer} day day of month\n * @param {Integer} hour hours of date\n * @param {Integer} min minutes of date\n * @param {Integer} sec seconds of date\n */\n this.setByDateValue = function(year, month, day, hour, min, sec) {\n var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0));\n this.setByDate(dateObject);\n };\n\n this.getFreshValueHex = function() {\n return this.hV;\n };\n};\nYAHOO.lang.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);\n// == END DERAbstractTime ==================================================\n\n// == BEGIN DERAbstractStructured ============================================\n/**\n * base class for ASN.1 DER structured class\n * @name KJUR.asn1.DERAbstractStructured\n * @class base class for ASN.1 DER structured class\n * @property {Array} asn1Array internal array of ASN1Object\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractStructured = function(params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n\n /**\n * set value by array of ASN1Object\n * @name setByASN1ObjectArray\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {array} asn1ObjectArray array of ASN1Object to set\n */\n this.setByASN1ObjectArray = function(asn1ObjectArray) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array = asn1ObjectArray;\n };\n\n /**\n * append an ASN1Object to internal array\n * @name appendASN1Object\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {ASN1Object} asn1Object to add\n */\n this.appendASN1Object = function(asn1Object) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array.push(asn1Object);\n };\n\n this.asn1Array = new Array();\n if (typeof params != \"undefined\") {\n if (typeof params['array'] != \"undefined\") {\n this.asn1Array = params['array'];\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);\n\n\n// ********************************************************************\n// ASN.1 Object Classes\n// ********************************************************************\n\n// ********************************************************************\n/**\n * class for ASN.1 DER Boolean\n * @name KJUR.asn1.DERBoolean\n * @class class for ASN.1 DER Boolean\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERBoolean = function() {\n KJUR.asn1.DERBoolean.superclass.constructor.call(this);\n this.hT = \"01\";\n this.hTLV = \"0101ff\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER Integer\n * @name KJUR.asn1.DERInteger\n * @class class for ASN.1 DER Integer\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>int - specify initial ASN.1 value(V) by integer value</li>\n * <li>bigint - specify initial ASN.1 value(V) by BigInteger object</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERInteger = function(params) {\n KJUR.asn1.DERInteger.superclass.constructor.call(this);\n this.hT = \"02\";\n\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function(bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DERInteger\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function(intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n * <br/>\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n * @example\n * new KJUR.asn1.DERInteger(123);\n * new KJUR.asn1.DERInteger({'int': 123});\n * new KJUR.asn1.DERInteger({'hex': '1fad'});\n */\n this.setValueHex = function(newHexString) {\n this.hV = newHexString;\n };\n\n this.getFreshValueHex = function() {\n return this.hV;\n };\n\n if (typeof params != \"undefined\") {\n if (typeof params['bigint'] != \"undefined\") {\n this.setByBigInteger(params['bigint']);\n } else if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n } else if (typeof params == \"number\") {\n this.setByInteger(params);\n } else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER encoded BitString primitive\n * @name KJUR.asn1.DERBitString\n * @class class for ASN.1 DER encoded BitString primitive\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>bin - specify binary string (ex. '10111')</li>\n * <li>array - specify array of boolean (ex. [true,false,true,true])</li>\n * <li>hex - specify hexadecimal string of ASN.1 value(V) including unused bits</li>\n * <li>obj - specify {@link KJUR.asn1.ASN1Util.newObject}\n * argument for \"BitString encapsulates\" structure.</li>\n * </ul>\n * NOTE1: 'params' can be omitted.<br/>\n * NOTE2: 'obj' parameter have been supported since\n * asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).<br/>\n * @example\n * // default constructor\n * o = new KJUR.asn1.DERBitString();\n * // initialize with binary string\n * o = new KJUR.asn1.DERBitString({bin: \"1011\"});\n * // initialize with boolean array\n * o = new KJUR.asn1.DERBitString({array: [true,false,true,true]});\n * // initialize with hexadecimal string (04 is unused bits)\n * o = new KJUR.asn1.DEROctetString({hex: \"04bac0\"});\n * // initialize with ASN1Util.newObject argument for encapsulated\n * o = new KJUR.asn1.DERBitString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // BIT STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DERBitString = function(params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = \"00\" + o.getEncodedHex();\n }\n KJUR.asn1.DERBitString.superclass.constructor.call(this);\n this.hT = \"03\";\n\n /**\n * set ASN.1 value(V) by a hexadecimal string including unused bits\n * @name setHexValueIncludingUnusedBits\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} newHexStringIncludingUnusedBits\n */\n this.setHexValueIncludingUnusedBits = function(newHexStringIncludingUnusedBits) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = newHexStringIncludingUnusedBits;\n };\n\n /**\n * set ASN.1 value(V) by unused bit and hexadecimal string of value\n * @name setUnusedBitsAndHexValue\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {Integer} unusedBits\n * @param {String} hValue\n */\n this.setUnusedBitsAndHexValue = function(unusedBits, hValue) {\n if (unusedBits < 0 || 7 < unusedBits) {\n throw \"unused bits shall be from 0 to 7: u = \" + unusedBits;\n }\n var hUnusedBits = \"0\" + unusedBits;\n this.hTLV = null;\n this.isModified = true;\n this.hV = hUnusedBits + hValue;\n };\n\n /**\n * set ASN.1 DER BitString by binary string<br/>\n * @name setByBinaryString\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} binaryString binary value string (i.e. '10111')\n * @description\n * Its unused bits will be calculated automatically by length of\n * 'binaryValue'. <br/>\n * NOTE: Trailing zeros '0' will be ignored.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray(\"01011\");\n */\n this.setByBinaryString = function(binaryString) {\n binaryString = binaryString.replace(/0+$/, '');\n var unusedBits = 8 - binaryString.length % 8;\n if (unusedBits == 8) unusedBits = 0;\n for (var i = 0; i <= unusedBits; i++) {\n binaryString += '0';\n }\n var h = '';\n for (var i = 0; i < binaryString.length - 1; i += 8) {\n var b = binaryString.substr(i, 8);\n var x = parseInt(b, 2).toString(16);\n if (x.length == 1) x = '0' + x;\n h += x;\n }\n this.hTLV = null;\n this.isModified = true;\n this.hV = '0' + unusedBits + h;\n };\n\n /**\n * set ASN.1 TLV value(V) by an array of boolean<br/>\n * @name setByBooleanArray\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {array} booleanArray array of boolean (ex. [true, false, true])\n * @description\n * NOTE: Trailing falses will be ignored in the ASN.1 DER Object.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray([false, true, false, true, true]);\n */\n this.setByBooleanArray = function(booleanArray) {\n var s = '';\n for (var i = 0; i < booleanArray.length; i++) {\n if (booleanArray[i] == true) {\n s += '1';\n } else {\n s += '0';\n }\n }\n this.setByBinaryString(s);\n };\n\n /**\n * generate an array of falses with specified length<br/>\n * @name newFalseArray\n * @memberOf KJUR.asn1.DERBitString\n * @function\n * @param {Integer} nLength length of array to generate\n * @return {array} array of boolean falses\n * @description\n * This static method may be useful to initialize boolean array.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.newFalseArray(3) → [false, false, false]\n */\n this.newFalseArray = function(nLength) {\n var a = new Array(nLength);\n for (var i = 0; i < nLength; i++) {\n a[i] = false;\n }\n return a;\n };\n\n this.getFreshValueHex = function() {\n return this.hV;\n };\n\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\" && params.toLowerCase().match(/^[0-9a-f]+$/)) {\n this.setHexValueIncludingUnusedBits(params);\n } else if (typeof params['hex'] != \"undefined\") {\n this.setHexValueIncludingUnusedBits(params['hex']);\n } else if (typeof params['bin'] != \"undefined\") {\n this.setByBinaryString(params['bin']);\n } else if (typeof params['array'] != \"undefined\") {\n this.setByBooleanArray(params['array']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER OctetString<br/>\n * @name KJUR.asn1.DEROctetString\n * @class class for ASN.1 DER OctetString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * This class provides ASN.1 OctetString simple type.<br/>\n * Supported \"params\" attributes are:\n * <ul>\n * <li>str - to set a string as a value</li>\n * <li>hex - to set a hexadecimal string as a value</li>\n * <li>obj - to set a encapsulated ASN.1 value by JSON object\n * which is defined in {@link KJUR.asn1.ASN1Util.newObject}</li>\n * </ul>\n * NOTE: A parameter 'obj' have been supported\n * for \"OCTET STRING, encapsulates\" structure.\n * since asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).\n * @see KJUR.asn1.DERAbstractString - superclass\n * @example\n * // default constructor\n * o = new KJUR.asn1.DEROctetString();\n * // initialize with string\n * o = new KJUR.asn1.DEROctetString({str: \"aaa\"});\n * // initialize with hexadecimal string\n * o = new KJUR.asn1.DEROctetString({hex: \"616161\"});\n * // initialize with ASN1Util.newObject argument\n * o = new KJUR.asn1.DEROctetString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // OCTET STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DEROctetString = function(params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = o.getEncodedHex();\n }\n KJUR.asn1.DEROctetString.superclass.constructor.call(this, params);\n this.hT = \"04\";\n};\nYAHOO.lang.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER Null\n * @name KJUR.asn1.DERNull\n * @class class for ASN.1 DER Null\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERNull = function() {\n KJUR.asn1.DERNull.superclass.constructor.call(this);\n this.hT = \"05\";\n this.hTLV = \"0500\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER ObjectIdentifier\n * @name KJUR.asn1.DERObjectIdentifier\n * @class class for ASN.1 DER ObjectIdentifier\n * @param {Array} params associative array of parameters (ex. {'oid': '2.5.4.5'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>oid - specify initial ASN.1 value(V) by a oid string (ex. 2.5.4.13)</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERObjectIdentifier = function(params) {\n var itox = function(i) {\n var h = i.toString(16);\n if (h.length == 1) h = '0' + h;\n return h;\n };\n var roidtox = function(roid) {\n var h = '';\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7) padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++) bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7) b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n\n KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);\n this.hT = \"06\";\n\n /**\n * set value by a hexadecimal string\n * @name setValueHex\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} newHexString hexadecimal value of OID bytes\n */\n this.setValueHex = function(newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n\n /**\n * set value by a OID string<br/>\n * @name setValueOidString\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidString OID string (ex. 2.5.4.13)\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueOidString(\"2.5.4.13\");\n */\n this.setValueOidString = function(oidString) {\n if (! oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = h;\n };\n\n /**\n * set value by a OID name\n * @name setValueName\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidName OID name (ex. 'serverAuth')\n * @since 1.0.1\n * @description\n * OID name shall be defined in 'KJUR.asn1.x509.OID.name2oidList'.\n * Otherwise raise error.\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueName(\"serverAuth\");\n */\n this.setValueName = function(oidName) {\n var oid = KJUR.asn1.x509.OID.name2oid(oidName);\n if (oid !== '') {\n this.setValueOidString(oid);\n } else {\n throw \"DERObjectIdentifier oidName undefined: \" + oidName;\n }\n };\n\n this.getFreshValueHex = function() {\n return this.hV;\n };\n\n if (params !== undefined) {\n if (typeof params === \"string\") {\n if (params.match(/^[0-2].[0-9.]+$/)) {\n this.setValueOidString(params);\n } else {\n this.setValueName(params);\n }\n } else if (params.oid !== undefined) {\n this.setValueOidString(params.oid);\n } else if (params.hex !== undefined) {\n this.setValueHex(params.hex);\n } else if (params.name !== undefined) {\n this.setValueName(params.name);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER Enumerated\n * @name KJUR.asn1.DEREnumerated\n * @class class for ASN.1 DER Enumerated\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>int - specify initial ASN.1 value(V) by integer value</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n * @example\n * new KJUR.asn1.DEREnumerated(123);\n * new KJUR.asn1.DEREnumerated({int: 123});\n * new KJUR.asn1.DEREnumerated({hex: '1fad'});\n */\nKJUR.asn1.DEREnumerated = function(params) {\n KJUR.asn1.DEREnumerated.superclass.constructor.call(this);\n this.hT = \"0a\";\n\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function(bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function(intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n * <br/>\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n */\n this.setValueHex = function(newHexString) {\n this.hV = newHexString;\n };\n\n this.getFreshValueHex = function() {\n return this.hV;\n };\n\n if (typeof params != \"undefined\") {\n if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n } else if (typeof params == \"number\") {\n this.setByInteger(params);\n } else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER UTF8String\n * @name KJUR.asn1.DERUTF8String\n * @class class for ASN.1 DER UTF8String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERUTF8String = function(params) {\n KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params);\n this.hT = \"0c\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER NumericString\n * @name KJUR.asn1.DERNumericString\n * @class class for ASN.1 DER NumericString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERNumericString = function(params) {\n KJUR.asn1.DERNumericString.superclass.constructor.call(this, params);\n this.hT = \"12\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER PrintableString\n * @name KJUR.asn1.DERPrintableString\n * @class class for ASN.1 DER PrintableString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERPrintableString = function(params) {\n KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params);\n this.hT = \"13\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER TeletexString\n * @name KJUR.asn1.DERTeletexString\n * @class class for ASN.1 DER TeletexString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERTeletexString = function(params) {\n KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params);\n this.hT = \"14\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER IA5String\n * @name KJUR.asn1.DERIA5String\n * @class class for ASN.1 DER IA5String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERIA5String = function(params) {\n KJUR.asn1.DERIA5String.superclass.constructor.call(this, params);\n this.hT = \"16\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER UTCTime\n * @name KJUR.asn1.DERUTCTime\n * @class class for ASN.1 DER UTCTime\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>str - specify initial ASN.1 value(V) by a string (ex.'130430235959Z')</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * <li>date - specify Date object.</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n * <h4>EXAMPLES</h4>\n * @example\n * d1 = new KJUR.asn1.DERUTCTime();\n * d1.setString('130430125959Z');\n *\n * d2 = new KJUR.asn1.DERUTCTime({'str': '130430125959Z'});\n * d3 = new KJUR.asn1.DERUTCTime({'date': new Date(Date.UTC(2015, 0, 31, 0, 0, 0, 0))});\n * d4 = new KJUR.asn1.DERUTCTime('130430125959Z');\n */\nKJUR.asn1.DERUTCTime = function(params) {\n KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params);\n this.hT = \"17\";\n\n /**\n * set value by a Date object<br/>\n * @name setByDate\n * @memberOf KJUR.asn1.DERUTCTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * o = new KJUR.asn1.DERUTCTime();\n * o.setByDate(new Date(\"2016/12/31\"));\n */\n this.setByDate = function(dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n };\n\n this.getFreshValueHex = function() {\n if (typeof this.date == \"undefined\" && typeof this.s == \"undefined\") {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n } else if (typeof params == \"string\" && params.match(/^[0-9]{12}Z$/)) {\n this.setString(params);\n } else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n } else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER GeneralizedTime\n * @name KJUR.asn1.DERGeneralizedTime\n * @class class for ASN.1 DER GeneralizedTime\n * @param {Array} params associative array of parameters (ex. {'str': '20130430235959Z'})\n * @property {Boolean} withMillis flag to show milliseconds or not\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>str - specify initial ASN.1 value(V) by a string (ex.'20130430235959Z')</li>\n * <li>hex - specify initial ASN.1 value(V) by a hexadecimal string</li>\n * <li>date - specify Date object.</li>\n * <li>millis - specify flag to show milliseconds (from 1.0.6)</li>\n * </ul>\n * NOTE1: 'params' can be omitted.\n * NOTE2: 'withMillis' property is supported from asn1 1.0.6.\n */\nKJUR.asn1.DERGeneralizedTime = function(params) {\n KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params);\n this.hT = \"18\";\n this.withMillis = false;\n\n /**\n * set value by a Date object\n * @name setByDate\n * @memberOf KJUR.asn1.DERGeneralizedTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * When you specify UTC time, use 'Date.UTC' method like this:<br/>\n * o1 = new DERUTCTime();\n * o1.setByDate(date);\n *\n * date = new Date(Date.UTC(2015, 0, 31, 23, 59, 59, 0)); #2015JAN31 23:59:59\n */\n this.setByDate = function(dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n };\n\n this.getFreshValueHex = function() {\n if (this.date === undefined && this.s === undefined) {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n } else if (typeof params == \"string\" && params.match(/^[0-9]{14}Z$/)) {\n this.setString(params);\n } else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n } else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n if (params.millis === true) {\n this.withMillis = true;\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER Sequence\n * @name KJUR.asn1.DERSequence\n * @class class for ASN.1 DER Sequence\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>array - specify array of ASN1Object to set elements of content</li>\n * </ul>\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERSequence = function(params) {\n KJUR.asn1.DERSequence.superclass.constructor.call(this, params);\n this.hT = \"30\";\n this.getFreshValueHex = function() {\n var h = '';\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n h += asn1Obj.getEncodedHex();\n }\n this.hV = h;\n return this.hV;\n };\n};\nYAHOO.lang.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER Set\n * @name KJUR.asn1.DERSet\n * @class class for ASN.1 DER Set\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n * <br/>\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n * <ul>\n * <li>array - specify array of ASN1Object to set elements of content</li>\n * <li>sortflag - flag for sort (default: true). ASN.1 BER is not sorted in 'SET OF'.</li>\n * </ul>\n * NOTE1: 'params' can be omitted.<br/>\n * NOTE2: sortflag is supported since 1.0.5.\n */\nKJUR.asn1.DERSet = function(params) {\n KJUR.asn1.DERSet.superclass.constructor.call(this, params);\n this.hT = \"31\";\n this.sortFlag = true; // item shall be sorted only in ASN.1 DER\n this.getFreshValueHex = function() {\n var a = new Array();\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n a.push(asn1Obj.getEncodedHex());\n }\n if (this.sortFlag == true) a.sort();\n this.hV = a.join('');\n return this.hV;\n };\n\n if (typeof params != \"undefined\") {\n if (typeof params.sortflag != \"undefined\" &&\n params.sortflag == false)\n this.sortFlag = false;\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);\n\n// ********************************************************************\n/**\n * class for ASN.1 DER TaggedObject\n * @name KJUR.asn1.DERTaggedObject\n * @class class for ASN.1 DER TaggedObject\n * @extends KJUR.asn1.ASN1Object\n * @description\n * <br/>\n * Parameter 'tagNoNex' is ASN.1 tag(T) value for this object.\n * For example, if you find '[1]' tag in a ASN.1 dump,\n * 'tagNoHex' will be 'a1'.\n * <br/>\n * As for optional argument 'params' for constructor, you can specify *ANY* of\n * following properties:\n * <ul>\n * <li>explicit - specify true if this is explicit tag otherwise false\n * (default is 'true').</li>\n * <li>tag - specify tag (default is 'a0' which means [0])</li>\n * <li>obj - specify ASN1Object which is tagged</li>\n * </ul>\n * @example\n * d1 = new KJUR.asn1.DERUTF8String({'str':'a'});\n * d2 = new KJUR.asn1.DERTaggedObject({'obj': d1});\n * hex = d2.getEncodedHex();\n */\nKJUR.asn1.DERTaggedObject = function(params) {\n KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);\n this.hT = \"a0\";\n this.hV = '';\n this.isExplicit = true;\n this.asn1Object = null;\n\n /**\n * set value by an ASN1Object\n * @name setString\n * @memberOf KJUR.asn1.DERTaggedObject#\n * @function\n * @param {Boolean} isExplicitFlag flag for explicit/implicit tag\n * @param {Integer} tagNoHex hexadecimal string of ASN.1 tag\n * @param {ASN1Object} asn1Object ASN.1 to encapsulate\n */\n this.setASN1Object = function(isExplicitFlag, tagNoHex, asn1Object) {\n this.hT = tagNoHex;\n this.isExplicit = isExplicitFlag;\n this.asn1Object = asn1Object;\n if (this.isExplicit) {\n this.hV = this.asn1Object.getEncodedHex();\n this.hTLV = null;\n this.isModified = true;\n } else {\n this.hV = null;\n this.hTLV = asn1Object.getEncodedHex();\n this.hTLV = this.hTLV.replace(/^../, tagNoHex);\n this.isModified = false;\n }\n };\n\n this.getFreshValueHex = function() {\n return this.hV;\n };\n\n if (typeof params != \"undefined\") {\n if (typeof params['tag'] != \"undefined\") {\n this.hT = params['tag'];\n }\n if (typeof params['explicit'] != \"undefined\") {\n this.isExplicit = params['explicit'];\n }\n if (typeof params['obj'] != \"undefined\") {\n this.asn1Object = params['obj'];\n this.setASN1Object(this.isExplicit, this.hT, this.asn1Object);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);\n\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? Hex.decode(pem) : Base64.unarmor(pem);\n var asn1 = ASN1.decode(der);\n // Fixes a bug with OpenSSL 1.0+ private keys\n if (asn1.sub.length === 3) {\n asn1 = asn1.sub[2].sub[0];\n }\n if (asn1.sub.length === 9) {\n // Parse the private key.\n modulus = asn1.sub[1].getHexStringValue(); // bigint\n this.n = parseBigInt(modulus, 16);\n public_exponent = asn1.sub[2].getHexStringValue(); // int\n this.e = parseInt(public_exponent, 16);\n var private_exponent = asn1.sub[3].getHexStringValue(); // bigint\n this.d = parseBigInt(private_exponent, 16);\n var prime1 = asn1.sub[4].getHexStringValue(); // bigint\n this.p = parseBigInt(prime1, 16);\n var prime2 = asn1.sub[5].getHexStringValue(); // bigint\n this.q = parseBigInt(prime2, 16);\n var exponent1 = asn1.sub[6].getHexStringValue(); // bigint\n this.dmp1 = parseBigInt(exponent1, 16);\n var exponent2 = asn1.sub[7].getHexStringValue(); // bigint\n this.dmq1 = parseBigInt(exponent2, 16);\n var coefficient = asn1.sub[8].getHexStringValue(); // bigint\n this.coeff = parseBigInt(coefficient, 16);\n }\n else if (asn1.sub.length === 2) {\n // Parse the public key.\n var bit_string = asn1.sub[1];\n var sequence = bit_string.sub[0];\n modulus = sequence.sub[0].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = sequence.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n else {\n return false;\n }\n return true;\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa key.\n *\n * The translation follow the ASN.1 notation :\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponent INTEGER, -- d\n * prime1 INTEGER, -- p\n * prime2 INTEGER, -- q\n * exponent1 INTEGER, -- d mod (p1)\n * exponent2 INTEGER, -- d mod (q-1)\n * coefficient INTEGER, -- (inverse of q) mod p\n * }\n * @returns {string} DER Encoded String representing the rsa private key\n * @private\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKey = function () {\n var options = {\n array: [\n new KJUR.asn1.DERInteger({ int: 0 }),\n new KJUR.asn1.DERInteger({ bigint: this.n }),\n new KJUR.asn1.DERInteger({ int: this.e }),\n new KJUR.asn1.DERInteger({ bigint: this.d }),\n new KJUR.asn1.DERInteger({ bigint: this.p }),\n new KJUR.asn1.DERInteger({ bigint: this.q }),\n new KJUR.asn1.DERInteger({ bigint: this.dmp1 }),\n new KJUR.asn1.DERInteger({ bigint: this.dmq1 }),\n new KJUR.asn1.DERInteger({ bigint: this.coeff })\n ]\n };\n var seq = new KJUR.asn1.DERSequence(options);\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKeyB64 = function () {\n return hex2b64(this.getPrivateBaseKey());\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa public key.\n * The representation follow the ASN.1 notation :\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * @returns {string} DER Encoded String representing the rsa public key\n * @private\n */\n JSEncryptRSAKey.prototype.getPublicBaseKey = function () {\n var first_sequence = new KJUR.asn1.DERSequence({\n array: [\n new KJUR.asn1.DERObjectIdentifier({ oid: \"1.2.840.113549.1.1.1\" }),\n new KJUR.asn1.DERNull()\n ]\n });\n var second_sequence = new KJUR.asn1.DERSequence({\n array: [\n new KJUR.asn1.DERInteger({ bigint: this.n }),\n new KJUR.asn1.DERInteger({ int: this.e })\n ]\n });\n var bit_string = new KJUR.asn1.DERBitString({\n hex: \"00\" + second_sequence.getEncodedHex()\n });\n var seq = new KJUR.asn1.DERSequence({\n array: [\n first_sequence,\n bit_string\n ]\n });\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicBaseKeyB64 = function () {\n return hex2b64(this.getPublicBaseKey());\n };\n /**\n * wrap the string in block of width chars. The default value for rsa keys is 64\n * characters.\n * @param {string} str the pem encoded string without header and footer\n * @param {Number} [width=64] - the length the string has to be wrapped at\n * @returns {string}\n * @private\n */\n JSEncryptRSAKey.wordwrap = function (str, width) {\n width = width || 64;\n if (!str) {\n return str;\n }\n var regex = \"(.{1,\" + width + \"})( +|$\\n?)|(.{1,\" + width + \"})\";\n return str.match(RegExp(regex, \"g\")).join(\"\\n\");\n };\n /**\n * Retrieve the pem encoded private key\n * @returns {string} the pem encoded private key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateKey = function () {\n var key = \"-----BEGIN RSA PRIVATE KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPrivateBaseKeyB64()) + \"\\n\";\n key += \"-----END RSA PRIVATE KEY-----\";\n return key;\n };\n /**\n * Retrieve the pem encoded public key\n * @returns {string} the pem encoded public key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicKey = function () {\n var key = \"-----BEGIN PUBLIC KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + \"\\n\";\n key += \"-----END PUBLIC KEY-----\";\n return key;\n };\n /**\n * Check if the object contains the necessary parameters to populate the rsa modulus\n * and public exponent parameters.\n * @param {Object} [obj={}] - An object that may contain the two public key\n * parameters\n * @returns {boolean} true if the object contains both the modulus and the public exponent\n * properties (n and e)\n * @todo check for types of n and e. N should be a parseable bigInt object, E should\n * be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPublicKeyProperty = function (obj) {\n obj = obj || {};\n return (obj.hasOwnProperty(\"n\") &&\n obj.hasOwnProperty(\"e\"));\n };\n /**\n * Check if the object contains ALL the parameters of an RSA key.\n * @param {Object} [obj={}] - An object that may contain nine rsa key\n * parameters\n * @returns {boolean} true if the object contains all the parameters needed\n * @todo check for types of the parameters all the parameters but the public exponent\n * should be parseable bigint objects, the public exponent should be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPrivateKeyProperty = function (obj) {\n obj = obj || {};\n return (obj.hasOwnProperty(\"n\") &&\n obj.hasOwnProperty(\"e\") &&\n obj.hasOwnProperty(\"d\") &&\n obj.hasOwnProperty(\"p\") &&\n obj.hasOwnProperty(\"q\") &&\n obj.hasOwnProperty(\"dmp1\") &&\n obj.hasOwnProperty(\"dmq1\") &&\n obj.hasOwnProperty(\"coeff\"));\n };\n /**\n * Parse the properties of obj in the current rsa object. Obj should AT LEAST\n * include the modulus and public exponent (n, e) parameters.\n * @param {Object} obj - the object containing rsa parameters\n * @private\n */\n JSEncryptRSAKey.prototype.parsePropertiesFrom = function (obj) {\n this.n = obj.n;\n this.e = obj.e;\n if (obj.hasOwnProperty(\"d\")) {\n this.d = obj.d;\n this.p = obj.p;\n this.q = obj.q;\n this.dmp1 = obj.dmp1;\n this.dmq1 = obj.dmq1;\n this.coeff = obj.coeff;\n }\n };\n return JSEncryptRSAKey;\n}(RSAKey));\n\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n options = options || {};\n this.default_key_size = parseInt(options.default_key_size, 10) || 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt(b64tohex(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return hex2b64(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return hex2b64(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's verify.\n * @param {string} str the string to verify\n * @param {string} signature the signature encoded in base64 to compare the string to\n * @param {function} digestMethod hash method\n * @return {boolean} whether the data and signature match\n * @public\n */\n JSEncrypt.prototype.verify = function (str, signature, digestMethod) {\n // Return the decrypted 'digest' of the signature.\n try {\n return this.getKey().verify(str, b64tohex(signature), digestMethod);\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Getter for the current JSEncryptRSAKey object. If it doesn't exists a new object\n * will be created and returned\n * @param {callback} [cb] the callback to be called if we want the key to be generated\n * in an async fashion\n * @returns {JSEncryptRSAKey} the JSEncryptRSAKey object\n * @public\n */\n JSEncrypt.prototype.getKey = function (cb) {\n // Only create new if it does not exist.\n if (!this.key) {\n // Get a new private key.\n this.key = new JSEncryptRSAKey();\n if (cb && {}.toString.call(cb) === \"[object Function]\") {\n this.key.generateAsync(this.default_key_size, this.default_public_exponent, cb);\n return;\n }\n // Generate the key.\n this.key.generate(this.default_key_size, this.default_public_exponent);\n }\n return this.key;\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateKey();\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateBaseKeyB64();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicKey();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicBaseKeyB64();\n };\n JSEncrypt.version = \"3.0.0-rc.1\";\n return JSEncrypt;\n}());\n\nwindow.JSEncrypt = JSEncrypt;\n\nexports.JSEncrypt = JSEncrypt;\nexports.default = JSEncrypt;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\r\n * @description 处理客户端登陆、登出、保活。版本相关逻辑\r\n * @author 178730 <jin_cong2@dahuatech.com>\r\n * @date 2021-04-27\r\n */\r\n\r\nimport JSEncrypt from '../../node_modules/jsencrypt/bin/jsencrypt'\r\nconst encrypt = new JSEncrypt();\r\n\r\nexport default {\r\n\t/**\r\n\t * @description 心跳\r\n\t */\r\n\theartbeat() {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tthis.postMessage('heartbeat', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 登录客户端\r\n\t */\r\n\tloginClient() {\r\n\t\tthis.loginEnd = false;\r\n\t\tthis.loginStartTime = Date.now();\r\n\t\tconsole.log(`ws-this.loginStartTime-${this.loginStartTime}`);\r\n\t\tconst config = this.config;\r\n\t\tconsole.log('ws-config',config)\r\n\t\tlet {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\ttoken,\r\n\t\t\tloginPort,\r\n\t\t\tuserName,\r\n\t\t\tuserPwd,\r\n\t\t\thttps,\r\n\t\t\tbrowser: { name, version, platform }\r\n\t\t} = config;\r\n\t\t// token登陆的username通过token截取\r\n\t\t// if(token && token.split('_')[0]) {\r\n\t\t// \tuserName = token.split('_')[0];\r\n\t\t// }\r\n\t\t// 登陆确保有用户名+token/pwd\r\n\t\tif (!(userName && (token || userPwd))) {\r\n\t\t\tthis.loginEnd = true;\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (typeof https === 'undefined') {\r\n\t\t\tif (location.protocol === 'http:') {\r\n\t\t\t\thttps = Number(0)\r\n\t\t\t} else if(location.protocol === 'https:') {\r\n\t\t\t\thttps = 1\r\n\t\t\t} else {\r\n\t\t\t\thttps = -1\r\n\t\t\t}\r\n\t\t}\r\n\t\tencrypt.setPublicKey(this.publicKey);\r\n\t\tconst params = {\r\n\t\t\tloginIp,\r\n\t\t\tparams: {\r\n\t\t\t\tloginPort,\r\n\t\t\t\ttoken: token ? token : '', // token优先于密码\r\n\t\t\t\tuserPwd: token ? '' : encrypt.encrypt(userPwd),\r\n\t\t\t\tuserName,\r\n\t\t\t\thttps,\r\n\t\t\t\tbrowser: name,\r\n\t\t\t\tversion,\r\n\t\t\t\tplatform\r\n\t\t\t},\r\n\t\t\tuserCode\r\n\t\t};\r\n\t\t// 心跳保活\r\n\t\tthis._heartbeat();\r\n\t\tthis.postMessage('login', params);\r\n\t},\r\n\t/**\r\n\t * @description 登出客户端\r\n\t */\r\n\tlogoutClient() {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\t// 清除保活\r\n\t\tclearTimeout(this.heartbeatTimer);\r\n\t\tthis.postMessage('logout', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode\r\n\t\t});\r\n\t\tthis.config.userName = \"\";\r\n\t},\r\n\t/**\r\n\t * @description 获取客户端版本\r\n\t */\r\n\tgetVersion() {\r\n\t\tthis.getVersionStartTime = Date.now();\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\t//document.title += \"-\" + userCode;//新增 国产化需要获取该userCode作为网页唯一标识,非国产化不用。\r\n\t\tthis.postMessage('getVersion', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode\r\n\t\t});\r\n\t},\r\n};\r\n","/**\r\n * @description 处理浏览器位置和DOM对象方法\r\n * @author 178730 <jin_cong2@dahuatech.com>\r\n * @date 2021-04-27\r\n */\r\n\r\n\r\n/**\r\n * @description 检测浏览器缩放比例\r\n */\r\nexport function detectZoom() {\r\n\tvar ratio = 0,\r\n\t\tscreen = window.screen,\r\n\t\tua = navigator.userAgent.toLowerCase();\r\n\r\n\tif (window.devicePixelRatio !== undefined) {\r\n\t\tratio = window.devicePixelRatio;\r\n\t} else if (~ua.indexOf('msie')) {\r\n\t\tif (screen['deviceXDPI'] && screen['logicalXDPI']) {\r\n\t\t\tratio = screen['deviceXDPI'] / screen['logicalXDPI'];\r\n\t\t}\r\n\t} else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {\r\n\t\tratio = window.outerWidth / window.innerWidth;\r\n\t}\r\n\r\n\tif (ratio) {\r\n\t\tratio = Math.round(ratio * 100);\r\n\t}\r\n\treturn ratio;\r\n}\r\n\r\n/**\r\n * @description 检测浏览器是否有Y轴滚动条\r\n */\r\nexport function hasScrollbarY() {\r\n\treturn (\r\n\t\tgetDocument().body.scrollHeight >\r\n\t\t(window.innerHeight || getDocument().documentElement.clientHeight)\r\n\t);\r\n}\r\n\r\n/**\r\n * @description 检测浏览器是否有X轴滚动条\r\n */\r\nexport function hasScrollbarX() {\r\n\treturn (\r\n\t\tgetDocument().body.scrollWidth >\r\n\t\t(window.innerWidth || getDocument().documentElement.clientWidth)\r\n\t);\r\n}\r\n\r\n/**\r\n * @description 获取浏览器滚动条宽度\r\n */\r\nexport function getScrollbarWidth() {\r\n\tvar scrollDiv = getDocument().createElement('div');\r\n\tscrollDiv.style.cssText =\r\n\t\t'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\r\n\tgetDocument().body.appendChild(scrollDiv);\r\n\tvar scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n\tgetDocument().body.removeChild(scrollDiv);\r\n\r\n\treturn scrollbarWidth;\r\n}\r\n\r\n/**\r\n * @description 获取当前浏览器缩放和滚动条信息\r\n */\r\nexport function getScrollInfo() {\r\n let ratio = detectZoom();\r\n let scrollX = window.pageXOffset;\r\n let scrollY = window.pageYOffset;\r\n var hasscrollbary = hasScrollbarY();\r\n var hasscrollbarx = hasScrollbarX();\r\n var scrollbarWidth = getScrollbarWidth();\r\n let scrollXH = hasscrollbarx ? scrollbarWidth : 0;\r\n let scrollYW = hasscrollbary ? scrollbarWidth : 0;\r\n return { ratio, scrollX, scrollY, scrollXH, scrollYW };\r\n}\r\n\r\n/**\r\n * @description 根据domId检测Dom是否有宽和高的属性\r\n * @param {Obeject} domId 元素ID\r\n */\r\nexport function checkDomExit(domId, log = true) {\r\n\tlet defaultDomInfo = {\r\n\t\tx: 0,\r\n\t\ty: 0,\r\n\t\twidth: 0,\r\n\t\theight: 0\r\n\t}\r\n\tconst domTarget = getDocument().getElementById(domId);\r\n\tif(!domTarget) {\r\n\t\tlog && console.log(`ws-can not find dom by id ${domId}`);\r\n\t\treturn defaultDomInfo;\r\n\t}\r\n\tconst domInfo = (domTarget.getClientRects() && domTarget.getClientRects()[0]);\r\n\tif (domInfo.x == undefined || domInfo.y == undefined) {\r\n\t\tdomInfo.x = domInfo.left;\r\n\t\tdomInfo.y = domInfo.top;\r\n\t}\r\n\tif(!domInfo) { // 若找不到DOM元素,报错\r\n\t\tlog && console.warn(`ws-can not find domInfo by id ${domId}, please check dom exited`)\r\n\t\treturn defaultDomInfo;\r\n\t};\r\n\treturn domInfo;\r\n}\r\n\r\n/**\r\n * @description 判断当前是否在iframe之中\r\n */\r\nexport function isIframe() {\r\n\treturn self.frameElement && self.frameElement.tagName == \"IFRAME\";\r\n}\r\n\r\n/**\r\n * @description 获取当前的document对象,兼容iframe处理\r\n * 存在iframe,实例在top,目标窗口在子层,需要级联\r\n */\r\nexport function getDocument() {\r\n\tlet _document = window.document;\r\n\t// 判断是否在iframe里面\r\n\tif(isIframe()){\r\n\t\t// 存在navigator\r\n\t\tif(top['$nav']) {\r\n\t\t\t// 通过navigator获取dom\r\n\t\t\tconst iframe = top['$nav'].getIframeByPath();\r\n\t\t\tif(iframe) {\r\n\t\t\t\t_document = iframe.contentWindow.document;\r\n\t\t\t} else{\r\n\t\t\t\tconsole.log('在iframe中且没有@psi/navigator');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// iframe嵌入,且没有@psi/navigator\r\n\t\t\tconsole.log('在iframe中且没有@psi/navigator');\r\n\t\t}\r\n\t}\r\n\t\r\n\treturn _document;\r\n}\r\n\r\n/**\r\n * @description 通过元素ID获取DOM对象\r\n * @param {Obeject} domId 元素ID\r\n */\r\nexport function getDomById(domId) {\r\n\tconsole.log('ws-getDomById', domId);\r\n\tconst domInfo = checkDomExit(domId);\r\n\tconst width = domInfo.width;\r\n\tconst height = domInfo.height;\r\n\tlet x = domInfo.x;\r\n\tlet y = domInfo.y;\r\n\tif(isIframe()) {\r\n\t\tconsole.log('dom in iframe');\r\n\t\tif(top['$nav']) {\r\n\t\t\t// 通过navigator获取dom\r\n\t\t\tconst iframe = top['$nav'].getIframeByPath();\r\n\t\t\tif(iframe) {\r\n\t\t\t\tlet iframeRect = iframe.getClientRects();\r\n\t\t\t\tif(iframeRect && iframeRect[0]) {\r\n\t\t\t\t\tx += iframeRect[0].x;\r\n\t\t\t\t\ty += iframeRect[0].y\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tconsole.log('在iframe中且没有@psi/navigator');\r\n\t\t\tlet iframeRect = self.frameElement.getClientRects();\r\n\t\t\tif(iframeRect && iframeRect[0]) {\r\n\t\t\t\tx += iframeRect[0].x;\r\n\t\t\t\ty += iframeRect[0].y;\r\n\t\t\t}\r\n\t\t} \t\t\r\n\t}\r\n\treturn {\r\n\t\twidth,\r\n\t\theight,\r\n\t\tx,\r\n\t\ty\r\n\t}\r\n}\r\n\r\n\r\n\r\nexport default {\r\n detectZoom,\r\n hasScrollbarY,\r\n hasScrollbarX,\r\n getScrollbarWidth,\r\n\tcheckDomExit,\r\n\tgetDocument,\r\n\tgetDomById\r\n}","import { Create, Position, Record, CtrlRecord, download } from '../types/index';\r\nimport { checkDomExit, getScrollInfo, getDocument, getDomById, isIframe } from '../utils/domOperate';\r\nexport default {\r\n\t/**\r\n\t * @description 提交浏览器信息\r\n\t */\r\n\tbrowserInfo() {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tconst {\r\n\t\t\tbrowser: { name, version, platform }\r\n\t\t} = config;\r\n\t\tthis.postMessage('browserInfo', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tbrowser: name,\r\n\t\t\t\tversion,\r\n\t\t\t\tplatform\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 浏览器切换显隐\r\n\t */\r\n\twebVisibilityChange() {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tthis.postMessage('webVisibilityChange', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\thidden: getDocument().hidden\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 受信任站点\r\n\t */\r\n\ttrusteSite(http: String) {\r\n\t\tconsole.log('ws-trusteSite-http', http);\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tthis.postMessage('trusteSite', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\ttrusteSite: http\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 设置下载路径\r\n\t * @params {String} path 下载路径地址\r\n\t */\r\n\tsetDownloadPath(path: String) {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\treturn this.postMessage('setDownloadPath', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tdownloadPath: path\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 下载视频\r\n\t * @params {Array} downloads 下载录像参数\r\n\t * {\r\n\t\t\tchannelName: '11111',\r\n\t\t\tchannelId: '1DSNHDHF654DS',\r\n\t\t\tbeginTime: 1602559308127,\r\n\t\t\tendTime: 1602559308227,\r\n\t\t\tformat: 1,\r\n\t\t\tsourceType: 1,\r\n\t\t\tstreamType: 1\r\n\t\t}\r\n\t * @params {Boolean} visible 是否显示下载窗口\r\n\t */\r\n\tdownloadVideo(downloads: Array<download>, visible) {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\treturn this.postMessage('downloadVideo', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: downloads,\r\n\t\t\t\tvisible: visible\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 创建控件\r\n\t *\r\n\t * @param {Array} documents\r\n\t * {\r\n\t * array: [{\r\n\t * ctrlCode: '11',\r\n\t * \t ctrlType: 'playerCtrl'\r\n\t * }]\r\n\t * }\r\n\t */\r\n\tcreateCtrl(widgets: Array<Create>) {\r\n\t\tconsole.log('ws-createCtrl', widgets);\r\n\t\tconst _this = this;\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tlet widgetParams: Array<any> = [];\r\n\r\n\t\tif (widgets.length === 0) {\r\n\t\t\tconsole.error('param widget must has a ctrlCode.');\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\twidgets.forEach(item => {\r\n\t\t\t//重复创建ctrlCode的控件时,把之前的控件实例销毁掉\r\n\t\t\tif (_this.ids.includes(item.ctrlCode)) {\r\n\t\t\t\t_this.destroyCtrl([item.ctrlCode]);\r\n\t\t\t}\r\n\t\t\tlet widgetParam: any = {};\r\n\t\t\tconst {\r\n\t\t\t\tctrlType,\r\n\t\t\t\tctrlCode,\r\n\t\t\t\tctrlProperty,\r\n\t\t\t\tvisible,\r\n\t\t\t\tcutList,\r\n\t\t\t\tdomId\r\n\t\t\t} = item;\r\n\t\t\tconst domTarget = getDocument().getElementById(domId);\r\n\t\t\tif (!domTarget) {\r\n\t\t\t\tconsole.warn(`can not find dom by id ${domId}`);\r\n\t\t\t\t// throw new Error(`can not find dom by id ${domId}`);\r\n\t\t\t}\r\n\r\n\t\t\tlet domInfo = getDomById(domId);\r\n\t\t\tlet scrollInfo = getScrollInfo();\r\n\r\n\t\t\t// 停止观测\r\n\t\t\t// observer.disconnect();\r\n\t\t\twidgetParam['ctrlType'] = ctrlType;\r\n\t\t\twidgetParam['visible'] = visible;\r\n\t\t\twidgetParam['ctrlCode'] = ctrlCode;\r\n\t\t\twidgetParam['ctrlProperty'] = ctrlProperty;\r\n\t\t\twidgetParam['cutList'] = cutList;\r\n\t\t\twidgetParam['posX'] = domInfo.x;\r\n\t\t\twidgetParam['posY'] = domInfo.y;\r\n\t\t\twidgetParam['width'] = domInfo.width;\r\n\t\t\twidgetParam['height'] = domInfo.height;\r\n\t\t\twidgetParam['ratio'] = scrollInfo.ratio;\r\n\t\t\twidgetParam['scrollX'] = scrollInfo.scrollX;\r\n\t\t\twidgetParam['scrollY'] = scrollInfo.scrollY;\r\n\t\t\twidgetParam['scrollXH'] = scrollInfo.scrollXH;\r\n\t\t\twidgetParam['scrollYW'] = scrollInfo.scrollYW;\r\n\t\t\twidgetParam['viewWidth'] = isIframe()? parent.window.innerWidth : window.innerWidth; //国产化新增\r\n\t\t\twidgetParam['viewHeight'] = isIframe()? parent.window.innerHeight : window.innerHeight; //国产化新增\r\n\t\t\t// widgetParam['observer'] = observer;\r\n\t\t\twidgetParam['domId'] = domId;\r\n\t\t\t// widgetParam['domTarget'] = domTarget;\r\n\t\t\twidgetParams.push(widgetParam);\r\n\t\t\t_this.ctrls.push(widgetParam);\r\n\t\t\t_this.ids.push(ctrlCode);\r\n\t\t});\r\n\r\n\t\treturn this.postMessage('createCtrl', {\r\n\t\t\t// todo 回退uuidmap/ctrls处理\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: widgetParams\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 设置可见\r\n\t *\r\n\t * @param {Array} ctrls\r\n\t * {\r\n\t * array: [{\r\n\t * ctrlCode: \"bf662065-3bda-4cb7-8fdd-b6e13997d84f\"\r\n\t *\t\tvisible: true\r\n\t * }]\r\n\t * }\r\n\t */\r\n\tsetCtrlVisible(\r\n\t\tctrls: Array<{\r\n\t\t\tctrlCode: String;\r\n\t\t\tvisible: Boolean;\r\n\t\t}>\r\n\t) {\r\n\t\tconst _this = this;\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tlet ctrlParams: Array<Object> = [];\r\n\t\tif (ctrls.length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tctrls.forEach(item => {\r\n\t\t\tconst ctrlParam: any = {};\r\n\t\t\tif (!_this.ids.includes(item.ctrlCode)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst ctrl = _this.ctrls.find((ctrl: { ctrlCode: String }) => {\r\n\t\t\t\treturn ctrl.ctrlCode === item.ctrlCode;\r\n\t\t\t});\r\n\t\t\t//更新实例本身的显隐\r\n\t\t\tctrl['visible'] = item.visible;\r\n\t\t\tctrlParam['ctrlCode'] = item.ctrlCode;\r\n\t\t\tctrlParam['visible'] = item.visible;\r\n\t\t\tctrlParam['viewWidth'] = isIframe()? parent.window.innerWidth : window.innerWidth;\t//国产化新增\r\n\t\t\tctrlParam['viewHeight'] = isIframe()? parent.window.innerHeight : window.innerHeight;; //国产化新增\r\n\t\t\tctrlParams.push(ctrlParam);\r\n\t\t});\r\n\t\treturn this.postMessage('setCtrlVisible', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: ctrlParams\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 设置控件属性--位置,剪裁\r\n\t *\r\n\t * @param {Array} positions\r\n\t * {\r\n\t * array: [{\r\n\t * id: 1,\r\n\t * \t posX: 100,\r\n\t * \t posY: 200\r\n\t * }]\r\n\t * }\r\n\t */\r\n\tsetCtrlPos(positions: Array<Position>) {\r\n\t\tconst _this = this;\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tlet widgetParams: Array<any> = [];\r\n\t\tif (positions.length === 0) {\r\n\t\t\tthrow new Error('setCtrlPos must has a Id.');\r\n\t\t}\r\n\t\tpositions.forEach(item => {\r\n\t\t\tif (!_this.ids.includes(item.ctrlCode)) {\r\n\t\t\t\tthrow new Error(`widget by id:${item.ctrlCode} has not been created.`);\r\n\t\t\t}\r\n\t\t\tconst ctrl = _this.ctrls.find((ctrl: { ctrlCode: any }) => {\r\n\t\t\t\treturn ctrl.ctrlCode === item.ctrlCode;\r\n\t\t\t});\r\n\t\t\tif (!ctrl) {\r\n\t\t\t\tthrow new Error(`can not find ctrl by id:${item.ctrlCode}.`);\r\n\t\t\t}\r\n\t\t\t// 待设置属性列表\r\n\t\t\tlet propList = ['posX', 'posY', 'width', 'height', 'ratio', 'scrollX', 'scrollY', 'scrollXH', 'scrollYW', 'cutList', 'viewWidth', 'viewHeight'];\r\n\t\t\t// 设置控件属性\r\n\t\t\tfunction setProp(ctrl, item, prop) {\r\n\t\t\t\titem.hasOwnProperty(prop) ? ctrl[prop] = item[prop] : '';\r\n\t\t\t}\r\n\t\t\tpropList.forEach(e => {\r\n\t\t\t\tsetProp(ctrl, item, e);\r\n\t\t\t});\r\n\t\t\tconst widgetParam = ctrl;\r\n\t\t\twidgetParams.push(widgetParam);\r\n\t\t});\r\n\r\n\t\treturn this.postMessage('setCtrlPos', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: widgetParams\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 重新定位控件位置\r\n\t * @params {Array} ['ctrlId1', 'ctrlId2']\r\n\t */\r\n\treLocatedPosition(ctrlCode?: Array<String>) {\r\n\t\tlet _ctrlList = [];\r\n\t\tif (ctrlCode && ctrlCode.length > 0) {\r\n\t\t\tthis.ctrls.forEach(e => {\r\n\t\t\t\tif (ctrlCode.includes(e.ctrlCode)) {\r\n\t\t\t\t\t_ctrlList.push(e);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tlet _needLocationList = _ctrlList.length > 0 ? _ctrlList : this.ctrls;\r\n\t\tif (_needLocationList.length === 0) return false;\r\n\t\tlet exitParams = _needLocationList.filter(e => {\r\n\t\t\treturn (e.domId && checkDomExit(e.domId, false));\r\n\t\t})\r\n\t\tlet params = exitParams.map(e => {\r\n\t\t\tlet domInfo = getDomById(e.domId);\r\n\t\t\tlet scrollInfo = getScrollInfo();\r\n\t\t\tlet ctrlCode = e.ctrlCode;\r\n\t\t\tlet cutList = e.cutList;\r\n\t\t\tlet posX = domInfo.x;\r\n\t\t\tlet posY = domInfo.y;\r\n\t\t\tlet width = domInfo.width;\r\n\t\t\tlet height = domInfo.height;\r\n\t\t\tlet ratio = scrollInfo.ratio;\r\n\t\t\tlet scrollX = scrollInfo.scrollX;\r\n\t\t\tlet scrollY = scrollInfo.scrollY;\r\n\t\t\tlet scrollXH = scrollInfo.scrollXH;\r\n\t\t\tlet scrollYW = scrollInfo.scrollYW;\r\n\t\t\tlet viewWidth = isIframe()? parent.window.innerWidth : window.innerWidth;\t//国产化新增\r\n\t\t\tlet viewHeight = isIframe()? parent.window.innerHeight : window.innerHeight;\t//国产化新增\r\n\t\t\treturn { ctrlCode, cutList, posX, posY, width, height, ratio, scrollX, scrollY, scrollXH, scrollYW, viewWidth, viewHeight };\r\n\t\t});\r\n\t\tif (params.length) {\r\n\t\t\treturn this.setCtrlPos(params);\r\n\t\t} else {\r\n\t\t\treturn new Promise((resolve) => { resolve(true) });\r\n\t\t}\r\n\t},\r\n\t/**\r\n\t * @description 销毁控件\r\n\t *\r\n\t * @param {Array} ids\r\n\t * {\r\n\t * array: ['1','2']\r\n\t * }\r\n\t */\r\n\tdestroyCtrl(ids: Array<String>) {\r\n\t\tif (ids.length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst _this = this;\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tconst _ids = [...ids];\r\n\t\t// 删除缓存中的控件和ids\r\n\t\tconst params = ids.map(item => {\r\n\t\t\treturn { ctrlCode: item };\r\n\t\t});\r\n\t\t_ids.forEach(id => {\r\n\t\t\t// if (!_this.ids.includes(id)) {\r\n\t\t\t// \tthrow new Error(`element by id:${id} has not been created.`);\r\n\t\t\t// }\r\n\t\t\tfor (var i = 0; i < _this.ctrls.length; i++) {\r\n\t\t\t\tif (_this.ctrls[i].ctrlCode === id) {\r\n\t\t\t\t\t_this.ctrls.splice(i, 1);\r\n\t\t\t\t\t_this.ids.splice(i, 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this.postMessage('destroyCtrl', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: params\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 播放实时视频\r\n\t *\r\n\t * @param {Object}\r\n\t * {\r\n\t * \t \"ctrlCode\":\"ctrlCode\",// 唯一标识符\r\n\t * \"channelIds\": [\"AcqRGNrqA1B15042F6AMEO\"]// 播放的通道编码\r\n\t * }\r\n\t */\r\n\topenCtrlPreview(obj: { ctrlCode: String; channelIds: Array<String> }) {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tif (!obj.ctrlCode || !this.ids.includes(obj.ctrlCode)) {\r\n\t\t\tthrow new Error(`widget by id:${obj.ctrlCode} has not been created.`);\r\n\t\t}\r\n\t\tif (obj.channelIds.length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst arr = obj.channelIds.map((i: any) => {\r\n\t\t\treturn { channelId: i };\r\n\t\t});\r\n\t\treturn this.postMessage('openCtrlPreview', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tctrlCode: obj.ctrlCode,\r\n\t\t\t\t\t\tarray: arr\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 播放录像\r\n\t *\r\n\t * @param {Object}\r\n\t * [\r\n\t * {\r\n\t *\t\t\t\"ctrlCode\":\"code0\",\r\n\t *\t\t\t\"array\":\r\n\t * [{\r\n\t * \t\"beginTime\": \"2019-02-21 00:00:00\",\r\n\t * \t\"channelId\": \"AcqRGNrqA1B15042F6AMEO\",\r\n\t * \t\"endTime\": \"2019-02-21 23:59:59\"\r\n\t *\t\t\t}]\r\n\t * }\r\n\t * ]\r\n\t */\r\n\topenCtrlRecord(arr: Array<CtrlRecord>) {\r\n\t\tconst config = this.config;\r\n\t\tvar obj = arr[0];\r\n\t\tif (!obj.ctrlCode || !this.ids.includes(obj.ctrlCode)) {\r\n\t\t\tthrow new Error(`widget by id:${obj.ctrlCode} has not been created.`);\r\n\t\t}\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\treturn this.postMessage('openCtrlRecord', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: arr\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 关闭单个控件所有视频\r\n\t *\r\n\t * @param {Object}\r\n\t * {\r\n\t * \t \"ctrlCode\":[\"uuidcode\"] //唯一标识符\r\n\t * }\r\n\t */\r\n\tcloseCtrlVideo(arr: [String]) {\r\n\t\tconst config = this.config;\r\n\t\tconst { loginIp, userCode } = config;\r\n\t\tconst arrParams = arr.map(item => {\r\n\t\t\treturn { ctrlCode: item };\r\n\t\t});\r\n\r\n\t\treturn this.postMessage('closeCtrlVideo', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: arrParams\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 弹窗打开实时视频\r\n\t *\r\n\t * @param {Array} arr\r\n\t * // 标准参数 [\"channelId1\", \"channelId2\" ]\r\n\t * // 兼容qt参数,传入对象{array: [{channelId: \"channelId1\"}, {channelId: \"channelId2\"}]}\r\n\t */\r\n\topenVideo(arr: Array<String>) {\r\n\t\tconst config = this.config;\r\n\t\tconst { userCode, loginIp } = config;\r\n\t\tlet params = {};\r\n\t\tif (Array.isArray(arr)) {\r\n\t\t\tlet _arr = arr.map(i => {\r\n\t\t\t\treturn { channelId: i };\r\n\t\t\t});\r\n\t\t\tparams = { array: _arr };\r\n\t\t} else { // 兼容之前的代码,之前根据客户端协议传递,为未处理格式的对象\r\n\t\t\tparams = arr;\r\n\t\t}\r\n\t\treturn this.postMessage('openVideo', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: params\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 弹窗打开录像\r\n\t *\r\n\t * @param {any} arr\r\n\t */\r\n\topenRecord(arr: Array<Record>) {\r\n\t\tconst config = this.config;\r\n\t\tconst { userCode, loginIp } = config;\r\n\t\tlet params = {};\r\n\t\tif (Array.isArray(arr)) {\r\n\t\t\tparams = { array: arr };\r\n\t\t} else { // 兼容之前的代码,之前根据客户端协议传递,为未处理格式的对象\r\n\t\t\tparams = arr;\r\n\t\t}\r\n\t\treturn this.postMessage('openRecord', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: params\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 打开混合弹窗\r\n\t * @params {String} menuCode 菜单code\r\n\t * @params {Array} 根据输入参数展示对应按钮。0:以图搜图,1:上传工作台,2:上传视图作战\r\n\t * @params {Array} array 客户端通道和播放时间\r\n\t * [{\r\n\t\t\t\"channelId\": \"AcqRGNrqA1B15042F6AMEO\", // 通道Id\r\n\t\t\t\"beginTime\": \"2021-01-05 13:57:00\", // 回放开始时间\r\n\t\t\t\"endTime\": \"2021-01-05 14:26:59\" // 回放结束时间\r\n\t\t}] \r\n\t\t*/\r\n\topenMixedModeDialog(menuCode, array, toolBarFucList = [0, 1, 2]) {\r\n\t\tconst config = this.config;\r\n\t\tconst { userCode, loginIp } = config;\r\n\t\tlet params = {\r\n\t\t\tdestinationCode: menuCode,\r\n\t\t\ttoolBarFucList: toolBarFucList,\r\n\t\t\tarray: array\r\n\t\t}\r\n\t\treturn this.postMessage('openMixedModeDialog', {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: params\r\n\t\t});\r\n\t},\r\n\t/**\r\n\t * @description 图片增强\r\n\t *\r\n\t * @param {any} url\r\n\t * @param {any} value\r\n\t * @param {number} [type=1] [[1, 去偏色], [2, 去雾], [3, 夜增强], [4, 降噪]]\r\n\t */\r\n\tPictureEnhance(url: any, value: any, type = 1) {\r\n\t\tconst config = this.config;\r\n\t\tconst { userCode, loginIp } = config;\r\n\t\tconst params = {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: {\r\n\t\t\t\tarray: [{ type: `${type}`, degree: `${value}`, url }]\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn this.postMessage('PictureEnhance', params);\r\n\t}\r\n};\r\n","export default {\r\n // 透传方法,参数不做任何处理\r\n\ttransparent(method: String, params: any) {\r\n\t\tconst config = this.config;\r\n const { loginIp, userCode } = config;\r\n return this.postMessage(method, {\r\n\t\t\tloginIp,\r\n\t\t\tuserCode,\r\n\t\t\tparams: params\r\n\t\t});\r\n }\r\n}","import account from './account';\r\nimport control from './control';\r\nimport transparent from './transparent';\r\n// import basic from './basic';\r\n\r\nexport default {\r\n\taccount,\r\n\tcontrol,\r\n\ttransparent\r\n\t// basic\r\n};\r\n","export default {\r\n /**\r\n\t * @description 获取版本信息结果\r\n\t */\r\n getVersionResult(data) {\r\n this.getVersionEnd = true;\r\n this.currentDssVersion = data;\r\n if(this.onlineDssVersion !== '') {\r\n this.compareVersion();\r\n }\r\n },\r\n /**\r\n\t * @description 客户端截图,以图搜图\r\n\t */\r\n goToSearchPic(data) {\r\n console.log('ws-goToSearchPic', data)\r\n if(data && data.params && data.params.array && Array.isArray(data.params.array)) {\r\n let menuCode = data.params.destinationCode;\r\n let param = {}\r\n param[menuCode] = data.params.array[0]\r\n if (frames[`nav-frame-${menuCode}`]) {\r\n frames[`nav-frame-${menuCode}`].$nav.push({\r\n code: menuCode,\r\n params: param\r\n })\r\n } else {\r\n window && window['$nav'] && window['$nav'].push({\r\n code: menuCode,\r\n params: param\r\n });\r\n }\r\n } else {\r\n this.Vue.prototype.$Message.info('未查询到数据');\r\n }\r\n },\r\n /**\r\n\t* @description 登陆结果\r\n\t*/\r\n loginState(data) {\r\n if(data) { // 登录成功\r\n this.isLoginSuccess = data;\r\n // 登录结束\r\n this.loginEnd = true;\r\n if (typeof this.callback.loginResult === 'function') {\r\n this.callback.loginResult.call(this, this.isLoginSuccess);\r\n }\r\n } else { // 登录失败\r\n this.loginFailCount ++;\r\n if(this.loginFailCount < this.reLoginCount + 1) { // 登录未到最大次数\r\n this.loginClient();\r\n } else { // 登录达到最大次数\r\n // 登录结束\r\n this.loginEnd = true;\r\n // 重置登录失败次数\r\n this.loginFailCount = 0;\r\n\r\n this.isLoginSuccess = data;\r\n if (typeof this.callback.loginResult === 'function') {\r\n this.callback.loginResult.call(this, this.isLoginSuccess);\r\n }\r\n }\r\n }\r\n },\r\n /**\r\n\t* @description 创建控件结果\r\n */\r\n createCtrlResult(data) {\r\n // todo 修改ctrls 和 ids\r\n let _data = data;\r\n let failIds = [];\r\n _data.forEach(e => {\r\n if(e.result !== 0) {\r\n failIds.push(e.ctrlCode);\r\n }\r\n })\r\n this.ids.forEach((e, i) => {\r\n if(failIds.indexOf(e) !== -1) {\r\n this.ids.splice(i, 1);\r\n this.ctrls.splice(i, 1);\r\n }\r\n })\r\n },\r\n /**\r\n\t* @description 销毁控件结果\r\n */\r\n destroyCtrlResult(data) {\r\n // 未发现这种情况,不好模拟,暂未调试\r\n // todo 修改ctrls 和 ids\r\n console.log(data);\r\n }\r\n}","/**\r\n * @description 处理客户端返回数据的数据格式\r\n * @author 178730 <jin_cong2@dahuatech.com>\r\n * @date 2021-04-27\r\n */\r\n\r\nexport default {\r\n loginState,\r\n getVersionResult,\r\n // goToSearchPic,\r\n createCtrlResult\r\n}\r\n\r\nfunction loginState(data) {\r\n return data.params.loginResult === 0;\r\n}\r\n\r\nfunction getVersionResult(data) {\r\n return data.params.version + '';\r\n}\r\n\r\n// function goToSearchPic(data) {\r\n// return data;\r\n// }\r\n\r\nfunction createCtrlResult(data) {\r\n return data.params.array;\r\n}","'use strict';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nvar Event = /** @class */ (function () {\r\n function Event(type, target) {\r\n this.target = target;\r\n this.type = type;\r\n }\r\n return Event;\r\n}());\r\nvar ErrorEvent = /** @class */ (function (_super) {\r\n __extends(ErrorEvent, _super);\r\n function ErrorEvent(error, target) {\r\n var _this = _super.call(this, 'error', target) || this;\r\n _this.message = error.message;\r\n _this.error = error;\r\n return _this;\r\n }\r\n return ErrorEvent;\r\n}(Event));\r\nvar CloseEvent = /** @class */ (function (_super) {\r\n __extends(CloseEvent, _super);\r\n function CloseEvent(code, reason, target) {\r\n if (code === void 0) { code = 1000; }\r\n if (reason === void 0) { reason = ''; }\r\n var _this = _super.call(this, 'close', target) || this;\r\n _this.wasClean = true;\r\n _this.code = code;\r\n _this.reason = reason;\r\n return _this;\r\n }\r\n return CloseEvent;\r\n}(Event));\n\n/*!\r\n * Reconnecting WebSocket\r\n * by Pedro Ladaria <pedro.ladaria@gmail.com>\r\n * https://github.com/pladaria/reconnecting-websocket\r\n * License MIT\r\n */\r\nvar getGlobalWebSocket = function () {\r\n if (typeof WebSocket !== 'undefined') {\r\n // @ts-ignore\r\n return WebSocket;\r\n }\r\n};\r\n/**\r\n * Returns true if given argument looks like a WebSocket class\r\n */\r\nvar isWebSocket = function (w) { return typeof w !== 'undefined' && !!w && w.CLOSING === 2; };\r\nvar DEFAULT = {\r\n maxReconnectionDelay: 10000,\r\n minReconnectionDelay: 1000 + Math.random() * 4000,\r\n minUptime: 5000,\r\n reconnectionDelayGrowFactor: 1.3,\r\n connectionTimeout: 4000,\r\n maxRetries: Infinity,\r\n maxEnqueuedMessages: Infinity,\r\n startClosed: false,\r\n debug: false,\r\n};\r\nvar ReconnectingWebSocket = /** @class */ (function () {\r\n function ReconnectingWebSocket(url, protocols, options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n this._listeners = {\r\n error: [],\r\n message: [],\r\n open: [],\r\n close: [],\r\n };\r\n this._retryCount = -1;\r\n this._shouldReconnect = true;\r\n this._connectLock = false;\r\n this._binaryType = 'blob';\r\n this._closeCalled = false;\r\n this._messageQueue = [];\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to CLOSED\r\n */\r\n this.onclose = null;\r\n /**\r\n * An event listener to be called when an error occurs\r\n */\r\n this.onerror = null;\r\n /**\r\n * An event listener to be called when a message is received from the server\r\n */\r\n this.onmessage = null;\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to OPEN;\r\n * this indicates that the connection is ready to send and receive data\r\n */\r\n this.onopen = null;\r\n this._handleOpen = function (event) {\r\n _this._debug('open event');\r\n var _a = _this._options.minUptime, minUptime = _a === void 0 ? DEFAULT.minUptime : _a;\r\n clearTimeout(_this._connectTimeout);\r\n _this._uptimeTimeout = setTimeout(function () { return _this._acceptOpen(); }, minUptime);\r\n _this._ws.binaryType = _this._binaryType;\r\n // send enqueued messages (messages sent before websocket open event)\r\n _this._messageQueue.forEach(function (message) { return _this._ws.send(message); });\r\n _this._messageQueue = [];\r\n if (_this.onopen) {\r\n _this.onopen(event);\r\n }\r\n _this._listeners.open.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleMessage = function (event) {\r\n _this._debug('message event');\r\n if (_this.onmessage) {\r\n _this.onmessage(event);\r\n }\r\n _this._listeners.message.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleError = function (event) {\r\n _this._debug('error event', event.message);\r\n _this._disconnect(undefined, event.message === 'TIMEOUT' ? 'timeout' : undefined);\r\n if (_this.onerror) {\r\n _this.onerror(event);\r\n }\r\n _this._debug('exec error listeners');\r\n _this._listeners.error.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n _this._connect();\r\n };\r\n this._handleClose = function (event) {\r\n _this._debug('close event');\r\n _this._clearTimeouts();\r\n if (_this._shouldReconnect) {\r\n _this._connect();\r\n }\r\n if (_this.onclose) {\r\n _this.onclose(event);\r\n }\r\n _this._listeners.close.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._url = url;\r\n this._protocols = protocols;\r\n this._options = options;\r\n if (this._options.startClosed) {\r\n this._shouldReconnect = false;\r\n }\r\n this._connect();\r\n }\r\n Object.defineProperty(ReconnectingWebSocket, \"CONNECTING\", {\r\n get: function () {\r\n return 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"OPEN\", {\r\n get: function () {\r\n return 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSING\", {\r\n get: function () {\r\n return 2;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSED\", {\r\n get: function () {\r\n return 3;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CONNECTING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"OPEN\", {\r\n get: function () {\r\n return ReconnectingWebSocket.OPEN;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSED\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSED;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"binaryType\", {\r\n get: function () {\r\n return this._ws ? this._ws.binaryType : this._binaryType;\r\n },\r\n set: function (value) {\r\n this._binaryType = value;\r\n if (this._ws) {\r\n this._ws.binaryType = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"retryCount\", {\r\n /**\r\n * Returns the number or connection retries\r\n */\r\n get: function () {\r\n return Math.max(this._retryCount, 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"bufferedAmount\", {\r\n /**\r\n * The number of bytes of data that have been queued using calls to send() but not yet\r\n * transmitted to the network. This value resets to zero once all queued data has been sent.\r\n * This value does not reset to zero when the connection is closed; if you keep calling send(),\r\n * this will continue to climb. Read only\r\n */\r\n get: function () {\r\n var bytes = this._messageQueue.reduce(function (acc, message) {\r\n if (typeof message === 'string') {\r\n acc += message.length; // not byte size\r\n }\r\n else if (message instanceof Blob) {\r\n acc += message.size;\r\n }\r\n else {\r\n acc += message.byteLength;\r\n }\r\n return acc;\r\n }, 0);\r\n return bytes + (this._ws ? this._ws.bufferedAmount : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"extensions\", {\r\n /**\r\n * The extensions selected by the server. This is currently only the empty string or a list of\r\n * extensions as negotiated by the connection\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.extensions : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"protocol\", {\r\n /**\r\n * A string indicating the name of the sub-protocol the server selected;\r\n * this will be one of the strings specified in the protocols parameter when creating the\r\n * WebSocket object\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.protocol : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"readyState\", {\r\n /**\r\n * The current state of the connection; this is one of the Ready state constants\r\n */\r\n get: function () {\r\n if (this._ws) {\r\n return this._ws.readyState;\r\n }\r\n return this._options.startClosed\r\n ? ReconnectingWebSocket.CLOSED\r\n : ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"url\", {\r\n /**\r\n * The URL as resolved by the constructor\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.url : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Closes the WebSocket connection or connection attempt, if any. If the connection is already\r\n * CLOSED, this method does nothing\r\n */\r\n ReconnectingWebSocket.prototype.close = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._closeCalled = true;\r\n this._shouldReconnect = false;\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n this._debug('close enqueued: no ws instance');\r\n return;\r\n }\r\n if (this._ws.readyState === this.CLOSED) {\r\n this._debug('close: already closed');\r\n return;\r\n }\r\n this._ws.close(code, reason);\r\n };\r\n /**\r\n * Closes the WebSocket connection or connection attempt and connects again.\r\n * Resets retry counter;\r\n */\r\n ReconnectingWebSocket.prototype.reconnect = function (code, reason) {\r\n this._shouldReconnect = true;\r\n this._closeCalled = false;\r\n this._retryCount = -1;\r\n if (!this._ws || this._ws.readyState === this.CLOSED) {\r\n this._connect();\r\n }\r\n else {\r\n this._disconnect(code, reason);\r\n this._connect();\r\n }\r\n };\r\n /**\r\n * Enqueue specified data to be transmitted to the server over the WebSocket connection\r\n */\r\n ReconnectingWebSocket.prototype.send = function (data) {\r\n if (this._ws && this._ws.readyState === this.OPEN) {\r\n this._debug('send', data);\r\n this._ws.send(data);\r\n }\r\n else {\r\n var _a = this._options.maxEnqueuedMessages, maxEnqueuedMessages = _a === void 0 ? DEFAULT.maxEnqueuedMessages : _a;\r\n if (this._messageQueue.length < maxEnqueuedMessages) {\r\n this._debug('enqueue', data);\r\n this._messageQueue.push(data);\r\n }\r\n }\r\n };\r\n /**\r\n * Register an event handler of a specific event type\r\n */\r\n ReconnectingWebSocket.prototype.addEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type].push(listener);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype.dispatchEvent = function (event) {\r\n var e_1, _a;\r\n var listeners = this._listeners[event.type];\r\n if (listeners) {\r\n try {\r\n for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {\r\n var listener = listeners_1_1.value;\r\n this._callEventListener(event, listener);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Removes an event listener\r\n */\r\n ReconnectingWebSocket.prototype.removeEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type] = this._listeners[type].filter(function (l) { return l !== listener; });\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this._options.debug) {\r\n // not using spread because compiled version uses Symbols\r\n // tslint:disable-next-line\r\n console.log.apply(console, __spread(['RWS>'], args));\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._getNextDelay = function () {\r\n var _a = this._options, _b = _a.reconnectionDelayGrowFactor, reconnectionDelayGrowFactor = _b === void 0 ? DEFAULT.reconnectionDelayGrowFactor : _b, _c = _a.minReconnectionDelay, minReconnectionDelay = _c === void 0 ? DEFAULT.minReconnectionDelay : _c, _d = _a.maxReconnectionDelay, maxReconnectionDelay = _d === void 0 ? DEFAULT.maxReconnectionDelay : _d;\r\n var delay = 0;\r\n if (this._retryCount > 0) {\r\n delay =\r\n minReconnectionDelay * Math.pow(reconnectionDelayGrowFactor, this._retryCount - 1);\r\n if (delay > maxReconnectionDelay) {\r\n delay = maxReconnectionDelay;\r\n }\r\n }\r\n this._debug('next delay', delay);\r\n return delay;\r\n };\r\n ReconnectingWebSocket.prototype._wait = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n setTimeout(resolve, _this._getNextDelay());\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._getNextUrl = function (urlProvider) {\r\n if (typeof urlProvider === 'string') {\r\n return Promise.resolve(urlProvider);\r\n }\r\n if (typeof urlProvider === 'function') {\r\n var url = urlProvider();\r\n if (typeof url === 'string') {\r\n return Promise.resolve(url);\r\n }\r\n if (!!url.then) {\r\n return url;\r\n }\r\n }\r\n throw Error('Invalid URL');\r\n };\r\n ReconnectingWebSocket.prototype._connect = function () {\r\n var _this = this;\r\n if (this._connectLock || !this._shouldReconnect) {\r\n return;\r\n }\r\n this._connectLock = true;\r\n var _a = this._options, _b = _a.maxRetries, maxRetries = _b === void 0 ? DEFAULT.maxRetries : _b, _c = _a.connectionTimeout, connectionTimeout = _c === void 0 ? DEFAULT.connectionTimeout : _c, _d = _a.WebSocket, WebSocket = _d === void 0 ? getGlobalWebSocket() : _d;\r\n if (this._retryCount >= maxRetries) {\r\n this._debug('max retries reached', this._retryCount, '>=', maxRetries);\r\n return;\r\n }\r\n this._retryCount++;\r\n this._debug('connect', this._retryCount);\r\n this._removeListeners();\r\n if (!isWebSocket(WebSocket)) {\r\n throw Error('No valid WebSocket class provided');\r\n }\r\n this._wait()\r\n .then(function () { return _this._getNextUrl(_this._url); })\r\n .then(function (url) {\r\n // close could be called before creating the ws\r\n if (_this._closeCalled) {\r\n return;\r\n }\r\n _this._debug('connect', { url: url, protocols: _this._protocols });\r\n _this._ws = _this._protocols\r\n ? new WebSocket(url, _this._protocols)\r\n : new WebSocket(url);\r\n _this._ws.binaryType = _this._binaryType;\r\n _this._connectLock = false;\r\n _this._addListeners();\r\n _this._connectTimeout = setTimeout(function () { return _this._handleTimeout(); }, connectionTimeout);\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._handleTimeout = function () {\r\n this._debug('timeout event');\r\n this._handleError(new ErrorEvent(Error('TIMEOUT'), this));\r\n };\r\n ReconnectingWebSocket.prototype._disconnect = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._removeListeners();\r\n try {\r\n this._ws.close(code, reason);\r\n this._handleClose(new CloseEvent(code, reason, this));\r\n }\r\n catch (error) {\r\n // ignore\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._acceptOpen = function () {\r\n this._debug('accept open');\r\n this._retryCount = 0;\r\n };\r\n ReconnectingWebSocket.prototype._callEventListener = function (event, listener) {\r\n if ('handleEvent' in listener) {\r\n // @ts-ignore\r\n listener.handleEvent(event);\r\n }\r\n else {\r\n // @ts-ignore\r\n listener(event);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._removeListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('removeListeners');\r\n this._ws.removeEventListener('open', this._handleOpen);\r\n this._ws.removeEventListener('close', this._handleClose);\r\n this._ws.removeEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.removeEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._addListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('addListeners');\r\n this._ws.addEventListener('open', this._handleOpen);\r\n this._ws.addEventListener('close', this._handleClose);\r\n this._ws.addEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.addEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._clearTimeouts = function () {\r\n clearTimeout(this._connectTimeout);\r\n clearTimeout(this._uptimeTimeout);\r\n };\r\n return ReconnectingWebSocket;\r\n}());\n\nmodule.exports = ReconnectingWebSocket;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(i,s),a=0,u=e.map([t,r],(function(t){var r=o-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(a=o-Math.min(i,s)),o-=1;o>=a;){if(u[0][o]>u[1][o])return 1;if(u[0][o]===u[1][o]){if(o===a)return 0;o-=1}else if(u[0][o]<u[1][o])return-1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,s=new Array(i>1?i-1:0),o=1;o<i;o++)s[o-1]=arguments[o];if(Object.assign)return Object.assign.apply(Object,[e].concat(s));var a=function(){var e=s[t];\"object\"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t]}))};for(t=0,r=s.length;t<r;t+=1)a();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||\"\"},e}();t.default=i,e.exports=t.default},18:function(e,t,r){\"use strict\";t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Electron:\"electron\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"};t.BROWSER_MAP={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",electron:\"Electron\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"};t.PLATFORMS_MAP={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"};t.OS_MAP={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"};t.ENGINE_MAP={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"}},90:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},s=r(18);function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var a=function(){function e(){}var t,r,n;return e.getParser=function(e,t){if(void 0===t&&(t=!1),\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},t=e,n=[{key:\"BROWSER_MAP\",get:function(){return s.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return s.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return s.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return s.PLATFORMS_MAP}}],(r=null)&&o(t.prototype,r),n&&o(t,n),e}();t.default=a,e.exports=t.default},91:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),s=u(r(94)),o=u(r(95)),a=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=a.default.find(n.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=a.default.find(i.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||\"\":t||\"\"},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||\"\":t||\"\"},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=a.default.find(s.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=a.default.find(o.default,(function(t){if(\"function\"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error(\"Browser's test function is not valid\")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return a.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},s=0;if(Object.keys(e).forEach((function(t){var o=e[t];\"string\"==typeof o?(i[t]=o,s+=1):\"object\"==typeof o&&(r[t]=o,n+=1)})),n>0){var o=Object.keys(r),u=a.default.find(o,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=a.default.find(o,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=a.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=a.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(a.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e){return this.isBrowser(e)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,o=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var o=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?) Version\\//],describe:function(e){var t=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return{name:s.OS_MAP.iOS,version:t}}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var o=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?) Version\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var o=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}})}));","// 与客户端交互方法列表\r\nimport wsActions from './actions/index';\r\nimport defaultMessageEvents from './messageEvent/index';\r\nimport dealEventData from './utils/dealMessageEventData';\r\n// const ReWebSocket = require('reconnecting-websocket');\r\n// websocket重连\r\nimport ReWebSocket from '../node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs';\r\n// const Bowser = require('bowser');\r\n// 浏览器信息获取\r\nimport Bowser from \"../node_modules/bowser/es5\";\r\nconst browser = Bowser.getParser(window.navigator.userAgent);\r\n//版本信息\r\nconst DHWs_version = '1.0.33';\r\nconsole.log(DHWs_version);\r\n\r\ninterface callbacks {\r\n\t// 连接客户端状态回调\r\n\tconnectResult: any,\r\n\t// 登录客户端状态回调\r\n\tloginResult: any\r\n}\r\n\r\n\r\nexport default class Ws {\r\n\t[x: string]: any;\r\n\t// 连接地址\r\n\tstatic url: string = '';\r\n\t// 密码加密公钥\r\n\tstatic publicKey = '';\r\n\t// 是否连接客户端\r\n\tprivate isConnectSuccessQt: Boolean = false;\r\n\t// 是否登录客户端\r\n\tprivate isLoginSuccess: Boolean = false;\r\n\t// 回调函数\r\n\tprivate callback: callbacks;\r\n\t// 唯一实例\r\n\tprivate static _instance: any = null;\r\n\t// 外部注册客户端消息处理\r\n\tmessageEvents: Object = {};\r\n\t// 当前连接的webSocket\r\n\twebSocket: any;\r\n\t// 最大重连数\r\n\treConnectCount: number = 2;\r\n\t// 连接失败次数\r\n\tconnectFailCount: number = 0;\r\n\t// 连接完成标识\r\n\tconnectEnd: Boolean = true;\r\n\t// 连接客户端开始时间\r\n\tconnectStartTime: number = 0;\r\n\t// 连接超时时间\r\n\tconnectTimeOut: number = 30 * 1000;\r\n\t// 登录完成标识\r\n\tloginEnd: Boolean = true;\r\n\t// 登录客户端开始时间\r\n\tloginStartTime: number = 0;\r\n\t// 登录超时时间\r\n\tloginTimeOut: number = 60 * 1000;\r\n\t// 最大重登数\r\n\treLoginCount: number = 0;\r\n\t// 连接失败次数\r\n\tloginFailCount: number = 0;\r\n\t// 当前websocket登录配置\r\n\tconfig: Object = {\r\n\t\tbrowser: {}\r\n\t};\r\n\t// 登陆IP\r\n\tloginIp: string;\r\n\t// 登陆端口\r\n\tloginPort: string;\r\n\t// 登录用户名\r\n\tuserName: string;\r\n\t// 登录密码,密码与token二选一\r\n\tuserPwd: string;\r\n\t// 登录token,密码与token二选一\r\n\ttoken: string;\r\n\t// 用户标识符\r\n\tuserCode: Number = 0;\r\n\t// 是否检测客户端版本\r\n\tdetectDssVersion: Boolean = true;\r\n\t// 当前客户端版本\r\n\tcurrentDssVersion: string = '';\r\n\t// 获取当前版本结束标志\r\n\tgetVersionEnd: Boolean = true;\r\n\t// 获取版本开始时间\r\n\tgetVersionStartTime: number = 0;\r\n\t// 获取版本超时时间\r\n\tgetVersionTimeOut: number = 30 * 1000;\r\n\t// 线上客户端版本\r\n\tonlineDssVersion: string = '';\r\n\t// 线上客户顿版本获取地址后缀,32系统文件名添加32\r\n\tonlineDssVersionAfterfix: string = '/data/VSL/DSSEnterpriseClient/LightWeightVersion.txt';\r\n\t// 线上客户顿获取地址后缀,32系统文件名添加32\r\n\tonlineDssAfterfix: string = '/data/VSL/DSSEnterpriseClient/DSS_LightWeight_Client.zip';\r\n\t// 是否一直保持重新连接\r\n\tisKeepConnect: Boolean = false;\r\n\t// 创建的控件ID列表\r\n\tids: Array<string> = [];\r\n\t// 创建的控件列表\r\n\tctrls: Array<string> = [];\r\n\t// 心跳\r\n\theartBeatTimer: any = null;\r\n\t// 监听的添加式方法表\r\n\thandlers: Object = {};\r\n\t// 监听的覆盖式方发表\r\n\tlisterns: any;\r\n\tconstructor({\r\n\t\turl = 'ws://localhost:1234',\r\n\t\tpublicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbEpPpxpLJft4W9YZj8bRh2bYYZshBEsKOlxgyn11rlEyTasjBSZRV9aj33tvQ2T55izH0fWl+dL/dLZChawFrlGDcH8JuWge2xYMgII9mggcYa0UiQ7pLXJ9ivXZ/cOY3HzrRQdR7dGTSNn3Z0Ctbns6mLgvlA2r3qMNs/8wHBwIDAQAB',\r\n\t\treConnectCount = 2,\r\n\t\tconnectTimeOut = 30 * 1000,\r\n\t\treLoginCount = 0,\r\n\t\tloginIp = location.hostname,\r\n\t\tloginPort = location.port,\r\n\t\tuserName = '',\r\n\t\tuserPwd = '',\r\n\t\ttoken = '',\r\n\t\tcallback = {\r\n\t\t\tconnectResult: null,\r\n\t\t\tloginResult: null\r\n\t\t},\r\n\t\tisKeepConnect = false,\r\n\t\tdetectDssVersion = true,\r\n\t\tmessageEvents = {}\r\n\t}: {\r\n\t\turl: string,\r\n\t\tpublicKey: string,\r\n\t\treConnectCount: number,\r\n\t\tconnectTimeOut: number,\r\n\t\treLoginCount: number,\r\n\t\tloginIp: string,\r\n\t\tloginPort: string,\r\n\t\tuserName: string,\r\n\t\tuserPwd: string,\r\n\t\ttoken: string,\r\n\t\tcallback: callbacks,\r\n\t\tisKeepConnect: boolean,\r\n\t\tdetectDssVersion: boolean,\r\n\t\tactions: Object,\r\n\t\tmessageEvents: Object\r\n\t}) {\r\n\t\t// if (/https/.test(location.protocol)) {\r\n\t\t// \turl = `wss:${url}`;\r\n\t\t// } else {\r\n\t\t// \turl = `ws:${url}`;\r\n\t\t// }\r\n\t\t// url = `ws://localhost:1234`;\r\n\r\n\t\tthis.url = url;\r\n\t\tthis.userCode = new Date().valueOf();\r\n\t\tthis.webSocket = null;\r\n\t\tthis.reConnectCount = reConnectCount;\r\n\t\tthis.connectTimeOut = connectTimeOut;\r\n\t\tthis.reLoginCount = reLoginCount;\r\n\t\tthis.publicKey = publicKey;\r\n\t\tthis.loginIp = loginIp;\r\n\t\tthis.loginPort = loginPort;\r\n\t\tthis.userName = userName;\r\n\t\tthis.userPwd = userPwd;\r\n\t\tthis.token = token;\r\n\t\tthis.callback = callback;\r\n\t\tthis.isKeepConnect = isKeepConnect;\r\n\t\tthis.detectDssVersion = detectDssVersion;\r\n\t\tthis.messageEvents = messageEvents || {};\r\n\r\n\t\tthis.connectFailCount = this.connectFailCount;\r\n\r\n\t\t// 基础操作所需功能或属性\r\n\t\tthis.ids = [];\r\n\t\tthis.ctrls = [];\r\n\r\n\t\t// 是否连接客户端\r\n\t\tthis.isConnectSuccessQt = false;\r\n\t\t// 是否登陆客户端\r\n\t\tthis.isLoginSuccess = false;\r\n\t\tthis.heartBeatTimer = null;\r\n\r\n\t\t// 用户注册监听事件表\r\n\t\tthis.handlers = {};\r\n\r\n\t\t// 用户注册监听事件表\r\n\t\tthis.listerns = new Map();\r\n\r\n\t\t// 获取与客户端交互方法列表\r\n\t\tconst defaultActions = [];\r\n\t\tObject.keys(wsActions).forEach(item => {\r\n\t\t\tif (hasKey(wsActions, item)) {\r\n\t\t\t\tdefaultActions.push(wsActions[item]);\r\n\t\t\t}\r\n\t\t});\r\n\t\t// 与客户端通讯功能注册\r\n\t\tusePlugin(defaultActions);\r\n\r\n\t\t// 处理客户端消息 合并以内置方法为主,客户自定义事件与内置方法重复,则抛弃\r\n\t\tthis.messageEvents = Object.assign(this.messageEvents, defaultMessageEvents);\r\n\t\tObject.keys(this.messageEvents).forEach(item => {\r\n\t\t\tthis.addEventListener(item, this.messageEvents[item].bind(this));\r\n\t\t});\r\n\r\n\r\n\t\t// 初始化配置参数\r\n\t\tthis.initConfig();\r\n\r\n\t\t// 连接客户端\r\n\t\tthis.connectQt();\r\n\r\n\t\tdocument.title += \"-\" + this.userCode;//新增 国产化需要获取该userCode作为网页唯一标识,非国产化不用。\r\n\r\n\t\t// 登录\r\n\t\t// this.detectConnectQt().then((res: Boolean) => {\r\n\t\t// \tif(res) {\r\n\t\t// \t\t// 登陆客户端\r\n\t\t// \t\tthis.loginClient();\r\n\t\t// \t}\r\n\t\t// });\r\n\t}\r\n\t/**\r\n\t * @description 获得实例对象\r\n\t */\r\n\tpublic static getInstance(options: any): Ws {\r\n\t\ttry {\r\n\t\t\tif (!top['$ws']) {\r\n\t\t\t\tif (!this._instance) {\r\n\t\t\t\t\tthis._instance = new Ws(options || {});\r\n\t\t\t\t\ttop['$ws'] = this._instance;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis._instance = top['$ws'];\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) {\r\n\t\t\tif (!this._instance) {\r\n\t\t\t\tthis._instance = new Ws(options || {});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this._instance;\r\n\t}\r\n\t/**\r\n\t * @description 用户注册监听事件,覆盖式监听\r\n\t * @params {String} eventType 事件名称\r\n\t * @params {any} callback 回调函数\r\n\t */\r\n\ton(eventType, callback) {\r\n\t\tthis.listerns.set(eventType, callback);\r\n\t}\r\n\t/**\r\n\t * @description 用户取消监听事件,覆盖式监听\r\n\t * @params {String} eventType 事件名称\r\n\t */\r\n\toff(eventType) {\r\n\t\tdelete this.listerns[eventType];\r\n\t}\r\n\t/**\r\n\t * @description 用户注册监听事件,添加式监听\r\n\t * @params {String} eventType 事件名称\r\n\t * @params {any} handler 回调函数\r\n\t */\r\n\taddEventListener(eventType: string, handler: Function) {\r\n\t\t// 首先判断handlers内有没有type事件容器,没有则创建一个新数组容器\r\n\t\tif (!(eventType in this.handlers)) {\r\n\t\t\tthis.handlers[eventType] = []\r\n\t\t}\r\n\t\t// 将事件存入\r\n\t\tthis.handlers[eventType].push(handler)\r\n\t}\r\n\t/**\r\n\t * @description 添加式监听,触发事件\r\n\t * @params {String} eventType 事件名称\r\n\t * @params {any} params 函数参数\r\n\t */\r\n\tdispatchEvent(eventType: string, ...params) {\r\n\t\t// 若没有注册该事件则抛出错误\r\n\t\tif (!(eventType in this.handlers)) {\r\n\t\t\treturn new Error('未注册该事件')\r\n\t\t}\r\n\t\t// 便利触发\r\n\t\tthis.handlers[eventType].forEach(handler => {\r\n\t\t\thandler(...params)\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @description 用户取消监听事件\r\n\t * @params {String} eventType 事件名称\r\n\t */\r\n\tremoveEventListener(eventType: string, handler) {\r\n\t\t// 无效事件抛出\r\n\t\tif (!(eventType in this.handlers)) {\r\n\t\t\treturn new Error('无效事件')\r\n\t\t}\r\n\t\tif (!handler) {\r\n\t\t\t// 直接移除事件\r\n\t\t\tdelete this.handlers[eventType]\r\n\t\t} else {\r\n\t\t\tconst idx = this.handlers[eventType].findIndex(ele => ele === handler)\r\n\t\t\t// 抛出异常事件\r\n\t\t\tif (idx === -1) {\r\n\t\t\t\treturn new Error('无该绑定事件')\r\n\t\t\t}\r\n\t\t\t// 移除事件\r\n\t\t\tthis.handlers[eventType].splice(idx, 1)\r\n\t\t\tif (this.handlers[eventType].length === 0) {\r\n\t\t\t\tdelete this.handlers[eventType]\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @description 发送消息给客户端\r\n\t * @params {String} method 事件名称\r\n\t * @params {Object} data 传输消息的数据内容\r\n\t */\r\n\tpostMessage(method: any, data: { method: any; }) {\r\n\t\tif (method !== 'heartbeat') {\r\n\t\t\tconsole.log('postMessage', method, data);\r\n\t\t}\r\n\t\tconst { webSocket } = this;\r\n\t\tdata.method = method;\r\n\t\t// 不需要判断登录和连接的方法过滤\r\n\t\tlet filterList = ['heartbeat', 'login', 'logout', 'browserInfo', 'getVersion', 'trusteSite'];\r\n\t\tif (filterList.includes(method)) {\r\n\t\t\twebSocket.send(JSON.stringify(data));\r\n\t\t\treturn Promise.resolve(true);\r\n\t\t}\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.keeper().then(res => {\r\n\t\t\t\tif (res) {\r\n\t\t\t\t\twebSocket.send(JSON.stringify(data));\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treject(false);\r\n\t\t\t\t}\r\n\t\t\t}).catch(e => {\r\n\t\t\t\tconsole.error('ws-error in keeper')\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\t/*\r\n\t* 初始化配置\r\n\t*/\r\n\tinitConfig() {\r\n\t\t// token登陆的username通过token截取\r\n\t\tif (this.token && this.token.split('_')[0]) {\r\n\t\t\tthis.userName = this.token.split('_')[0]\r\n\t\t}\r\n\t\tthis.config = {\r\n\t\t\tuserName: this.userName,\r\n\t\t\tuserCode: this.userCode,\r\n\t\t\tloginPort: this.loginPort,\r\n\t\t\tloginIp: this.loginIp,\r\n\t\t\tuserPwd: this.userPwd,\r\n\t\t\ttoken: this.token\r\n\t\t};\r\n\t\t// 浏览器信息\r\n\t\tconst browserInfo = {\r\n\t\t\tname: '',\r\n\t\t\tversion: '',\r\n\t\t\tplatform: ''\r\n\t\t};\r\n\t\tbrowserInfo.name = browser.getBrowserName().toLowerCase();\r\n\t\tbrowserInfo.version = browser.getBrowser().version.toLowerCase();\r\n\t\tbrowserInfo.platform =\r\n\t\t\tbrowser._ua.indexOf('Win64') >= 0 || browser._ua.indexOf('Wow64') >= 0\r\n\t\t\t\t? 'win64'\r\n\t\t\t\t: 'win32';\r\n\t\tthis.config['browser'] = browserInfo;\r\n\t}\r\n\t/**\r\n\t * @description 连接客户端\r\n\t */\r\n\tconnectQt() {\r\n\t\tthis.connectFailCount = 0;\r\n\t\tthis.connectEnd = false;\r\n\t\tthis.connectStartTime = Date.now();\r\n\r\n\t\t// 连接客户端\r\n\t\tthis.webSocket = new ReWebSocket(this.url, '', {\r\n\t\t\tmaxRetries: this.reConnectCount,\r\n\t\t\tconnectionTimeout: this.connectTimeOut\r\n\t\t});\r\n\t\t// 取消订阅的事件\r\n\t\tthis.removeEvents();\r\n\t\t// 订阅事件\r\n\t\tthis.addEvents();\r\n\r\n\t\treturn this.detectConnectQt();\r\n\t}\r\n\t/**\r\n\t * @description 获取线上和线下客户端版本\r\n\t */\r\n\tgetDSSVersion() {\r\n\t\tthis.getVersion();\r\n\t\tthis.getOnlineDssVersion();\r\n\t}\r\n\t/**\r\n\t * @description 获取线上客户端版本\r\n\t */\r\n\tgetOnlineDssVersion() {\r\n\t\t// 待解决跨域问题\r\n\t\tlet _this = this;\r\n\t\tlet platform = this.config['browser'].platform;\r\n\t\tlet versionUrl = this.onlineDssVersionAfterfix;\r\n\t\tif (platform === 'win32') {\r\n\t\t\tversionUrl = versionUrl.replace('.txt', '32.txt');\r\n\t\t}\r\n\t\tvar request = new XMLHttpRequest();\r\n\t\trequest.open(\"get\", versionUrl);/*设置请求方法与路径*/\r\n\t\trequest.send(null);/*不发送数据到服务器*/\r\n\t\trequest.onload = function () {/*XHR对象获取到返回信息后执行*/\r\n\t\t\tif (request.status == 200) {/*返回状态为200,即为数据获取成功*/\r\n\t\t\t\t_this.onlineDssVersion = request.response.replace('ClientVersion = ', '')\r\n\t\t\t\tif (_this.currentDssVersion !== '') {\r\n\t\t\t\t\t_this.compareVersion();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @description 检测连接客户端状态\r\n\t */\r\n\tdetectConnectQt() {\r\n\t\tlet _this = this;\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (!this.connectEnd) { // 连接中\r\n\t\t\t\t// let now = Date.now();\r\n\t\t\t\t// if((now - _this.connectStartTime) > _this.connectTimeOut) {\r\n\t\t\t\t// \tconsole.log(`ws-this.connectEndTime-${now}`);\r\n\t\t\t\t// \treject('connect timeout');\r\n\t\t\t\t// }\r\n\t\t\t\tlet _interval = setInterval(() => {\r\n\t\t\t\t\tif (_this.connectEnd) {\r\n\t\t\t\t\t\tclearInterval(_interval);\r\n\t\t\t\t\t\tresolve(_this.isConnectSuccessQt);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50)\r\n\t\t\t} else {\r\n\t\t\t\tresolve(_this.isConnectSuccessQt);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @description 检测登录客户端状态\r\n\t */\r\n\tdetectLoginClient() {\r\n\t\tlet _this = this;\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (!this.loginEnd) { // 登录中\r\n\t\t\t\t// let now = Date.now();\r\n\t\t\t\t// if((now - _this.loginStartTime) > _this.loginTimeOut) {\r\n\t\t\t\t// \tconsole.log(`ws-this.loginEndTime-${now}`);\r\n\t\t\t\t// \treject('login timeout');\r\n\t\t\t\t// }\r\n\t\t\t\tlet _interval = setInterval(() => {\r\n\t\t\t\t\tif (_this.loginEnd) {\r\n\t\t\t\t\t\tclearInterval(_interval);\r\n\t\t\t\t\t\tresolve(_this.isLoginSuccess);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50)\r\n\t\t\t} else {\r\n\t\t\t\tresolve(_this.isLoginSuccess);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @description 连接状态守护\r\n\t */\r\n\tkeepConnect() {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t// 监测连接状态\r\n\t\t\tthis.detectConnectQt().then((connectStatus: Boolean) => {\r\n\t\t\t\t// 连接正常\r\n\t\t\t\tif (connectStatus) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 连接状态失效,重新连接\r\n\t\t\t\t\tthis.connectQt().then((ReconnectStatus: Boolean) => {\r\n\t\t\t\t\t\t// 重连成功\r\n\t\t\t\t\t\tif (ReconnectStatus) {\r\n\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconsole.log(`ws-in-keepConnect-reConnect-fail`);\r\n\t\t\t\t\t\t\treject(false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @description 连接和登录状态守护\r\n\t */\r\n\tkeeper() {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t// 监测连接状态\r\n\t\t\tthis.detectConnectQt().then((connectStatus: Boolean) => {\r\n\t\t\t\t// 连接正常\r\n\t\t\t\tif (connectStatus) {\r\n\t\t\t\t\tthis.detectLoginClient().then((loginStatus: Boolean) => {\r\n\t\t\t\t\t\t// 登录正常\r\n\t\t\t\t\t\tif (loginStatus) {\r\n\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// 登录异常\r\n\t\t\t\t\t\t\t// 登录\r\n\t\t\t\t\t\t\tthis.loginClient()\r\n\t\t\t\t\t\t\t// 登录后的状态监测\r\n\t\t\t\t\t\t\tthis.detectLoginClient().then((reLoginStatus: Boolean) => {\r\n\t\t\t\t\t\t\t\tif (reLoginStatus) {\r\n\t\t\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tconsole.log(`ws-in-keeper-reLogin-fail`);\r\n\t\t\t\t\t\t\t\t\treject(false);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 连接状态失效,重新连接\r\n\t\t\t\t\tthis.connectQt().then((ReconnectStatus: Boolean) => {\r\n\t\t\t\t\t\t// 连接成功\r\n\t\t\t\t\t\tif (ReconnectStatus) {\r\n\t\t\t\t\t\t\t// 登录\r\n\t\t\t\t\t\t\tconsole.log(`ws-in-keeper-reConnect-reLogin`);\r\n\t\t\t\t\t\t\tthis.loginClient()\r\n\t\t\t\t\t\t\t// 登录状态监测\r\n\t\t\t\t\t\t\tthis.detectLoginClient().then((loginStatus: Boolean) => {\r\n\t\t\t\t\t\t\t\tif (loginStatus) {\r\n\t\t\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tconsole.log(`ws-in-keeper-reLogin-fail`);\r\n\t\t\t\t\t\t\t\t\treject(false);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconsole.log(`ws-in-keeper-reConnect-fail`);\r\n\t\t\t\t\t\t\treject(false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @description 获取当前客户端版本\r\n\t */\r\n\tgetLocalDssVersion() {\r\n\t\tlet _this = this;\r\n\t\tthis.getVersion();\r\n\t\tconsole.log(`ws-getLocalDssVersion-getVersionEnd-${this.getVersionEnd}`)\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (!this.getVersionEnd) { // 连接中或者获取中\r\n\t\t\t\t// let now = Date.now();\r\n\t\t\t\t// if((now - _this.getVersionStartTime) > _this.getVersionTimeOut) {\r\n\t\t\t\t// \tconsole.log(`ws-this.getVersionEndTime-${now}`);\r\n\t\t\t\t// \treject('get version timeout');\r\n\t\t\t\t// }\r\n\t\t\t\tlet _interval = setInterval(() => {\r\n\t\t\t\t\tif (_this.getVersionEnd) {\r\n\t\t\t\t\t\tclearInterval(_interval);\r\n\t\t\t\t\t\tresolve(_this.currentDssVersion);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 50)\r\n\t\t\t} else {\r\n\t\t\t\tresolve(_this.currentDssVersion);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t/**\r\n\t * @description 比较客户端版本\r\n\t */\r\n\tcompareVersion() {\r\n\t\tif (this.currentDssVersion && this.onlineDssVersion && Number(this.onlineDssVersion) > Number(this.currentDssVersion)) {\r\n\t\t\tthis.dispatchEvent('updateDss');\r\n\t\t\t// this.Vue && this.Vue.prototype.$Modal.confirm({\r\n\t\t\t// \ttitle: '客户端更新',\r\n\t\t\t// \t\tcontent: '系统检测到新客户端版本,请更新后使用?',\r\n\t\t\t// \t\tonOk: () => {\r\n\t\t\t// \t\t\tthis.downloadClient();\r\n\t\t\t// \t\t},\r\n\t\t\t// onCancel: () => {\r\n\t\t\t// this.detectDssVersion = false;\r\n\t\t\t// }\r\n\t\t\t// });\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @description 下载客户端\r\n\t */\r\n\tdownloadClient(origin) {\r\n\t\tvar agent = navigator.userAgent.toLowerCase();\r\n\t\tlet type = '64';\r\n\t\t\r\n\t\tlet downUrl = '/data/VSL/DSSEnterpriseClient/DSS_LightWeight_Client';\r\n\t\t\r\n\t\tif (agent.indexOf(\"win32\") >= 0 || agent.indexOf(\"wow32\") >= 0) {\r\n\t\t\ttype = '32';\r\n\t\t}else if (agent.indexOf(\"win64\") >= 0 || agent.indexOf(\"wow64\") >= 0) {\r\n\t\t\ttype = '64';\r\n\t\t}else if(agent.indexOf(\"aarch64\") >= 0){\r\n\t\t\ttype = 'aarch64';\r\n\t\t\tdownUrl = '/data/VSL/DSSEnterpriseClient/aarch64/DSS_LightWeight_Client';\t\t\r\n\t\t}else if(agent.indexOf(\"mips64\") >= 0){\r\n\t\t\ttype = 'mips64';\r\n\t\t\tdownUrl = '/data/VSL/DSSEnterpriseClient/mips64/DSS_LightWeight_Client';\r\n\t\t}else if(agent.indexOf(\"x86_64\") >= 0){\r\n\t\t\ttype = 'x86_64';\t\t\t\r\n\t\t\tdownUrl = '/data/VSL/DSSEnterpriseClient/x86_64/DSS_LightWeight_Client';\r\n\t\t}\t\t\r\n\t\torigin ? downUrl = origin + downUrl : downUrl = location.origin + downUrl;\r\n\t\ttype === '32' ? downUrl = downUrl + '32.zip' : downUrl = downUrl + '.zip';\r\n\r\n\t\tconsole.log(downUrl);\r\n\r\n\t\twindow.open(downUrl);\r\n\t}\r\n\t/**\r\n\t * @description 登录客户端\r\n\t * @params {Object} config 登录相关配置\r\n\t */\r\n\tlogin(config: any) {\r\n\t\tconsole.log('ws-login-start');\r\n\t\tthis.loginFailCount = 0;\r\n\r\n\t\t// 如果登陆时用户名变更,更新userCode\r\n\t\tlet { userName, token } = config;\r\n\t\t// token登陆的username通过token截取\r\n\t\tif (token && token.split('_')[0]) {\r\n\t\t\tuserName = token.split('_')[0];\r\n\t\t}\r\n\t\tif (this.config['userName'] && (userName !== this.config['userName'])) {\r\n\t\t\tthis.userCode = new Date().valueOf();\r\n\t\t}\r\n\r\n\t\tthis.userName = userName;\r\n\t\tthis.initConfig();\r\n\r\n\t\tObject.assign(this.config, config);\r\n\t\tthis.detectConnectQt().then((res: Boolean) => {\r\n\t\t\tif (res) {\r\n\t\t\t\t// 若已登录,先注销\r\n\t\t\t\tconsole.log('ws-login-start-this.isLoginSuccess', this.isLoginSuccess);\r\n\t\t\t\t// if (this.isLoginSuccess) {\r\n\t\t\t\t// \tthis.logout();\r\n\t\t\t\t// }\r\n\t\t\t\t// 登陆客户端\r\n\t\t\t\tthis.loginClient();\r\n\t\t\t\t// 获取线上客户端版本\r\n\t\t\t\tthis.detectDssVersion && this.getDSSVersion();\r\n\t\t\t} else {\r\n\t\t\t\t// 未连接客户端\r\n\t\t\t\tthis.connectQt().then((res1: Boolean) => {\r\n\t\t\t\t\tif (res1) {\r\n\t\t\t\t\t\t// 登陆客户端\r\n\t\t\t\t\t\tthis.loginClient();\r\n\t\t\t\t\t\t// 获取线上客户端版本\r\n\t\t\t\t\t\tthis.detectDssVersion && this.getDSSVersion();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error('连接客户端失败');\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t/**\r\n\t * @description 登出客户端\r\n\t */\r\n\tlogout() {\r\n\t\t// 退出客户端\r\n\t\tthis.detectLoginClient().then(res => {\r\n\t\t\tres && this.logoutClient();\r\n\t\t})\r\n\t\tthis.ids = [];\r\n\t\tthis.ctrls = [];\r\n\t\tthis.isLoginSuccess = false;\r\n\t\tif (typeof this.callback.loginResult === 'function') {\r\n\t\t\tthis.callback.loginResult.call(this, this.isLoginSuccess);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @description 添加websocket/window监听事件\r\n\t */\r\n\taddEvents() {\r\n\t\tconst webSocket = this.webSocket;\r\n\t\twebSocket.addEventListener('open', this.onOpen.bind(this));\r\n\t\twebSocket.addEventListener('message', this.onMessage.bind(this));\r\n\t\twebSocket.addEventListener('error', this.onError.bind(this));\r\n\t\twindow.addEventListener('resize', this.reLocatedPosition.bind(this));\r\n\t\twindow.addEventListener('scroll', this.reLocatedPosition.bind(this));\r\n\t\twindow.addEventListener('visibilitychange', this.webVisibilityChange.bind(this));\r\n\t\twindow.addEventListener('onunload', this.closeBrowser.bind(this));\r\n\t}\r\n\t/**\r\n\t * @description 移除websocket/window监听事件\r\n\t */\r\n\tremoveEvents() {\r\n\t\tconst webSocket = this.webSocket;\r\n\t\twebSocket.removeEventListener('open', this.onOpen);\r\n\t\twebSocket.removeEventListener('message', this.onMessage);\r\n\t\twebSocket.removeEventListener('error', this.onError);\r\n\t\twindow.removeEventListener('resize', this.reLocatedPosition);\r\n\t\twindow.removeEventListener('scroll', this.reLocatedPosition);\r\n\t\twindow.removeEventListener('visibilitychange', this.webVisibilityChange);\r\n\t\twindow.removeEventListener('onunload', this.closeBrowser);\r\n\t}\r\n\t/**\r\n\t * @description 连接客户端成功事件\r\n\t */\r\n\tonOpen() {\r\n\t\tconsole.log('ws-onOpen');\r\n\t\t// chrome浏览器版本大于80,需要添加信任站点,加载http/https跨站点资源\r\n\t\t// if(this.config['browser'].name === 'chrome' && this.config['browser'].version && Number(this.config['browser'].version.split('.')[0]) >= 80) {\r\n\t\t// \tthis.trusteSite(location.hostname);\r\n\t\t// }\r\n\t\tthis.isConnectSuccessQt = true;\r\n\t\tthis.dispatchEvent('connectStateChange', true);\r\n\t\tthis.connectEnd = true;\r\n\t\tif (typeof this.callback.connectResult === 'function') {\r\n\t\t\tthis.callback.connectResult.call(this, this.isConnectSuccessQt);\r\n\t\t}\r\n\t\t// 获取客户端版本\r\n\t\tthis.getVersionEnd = false;\r\n\t\tthis.getDSSVersion();\r\n\t}\r\n\t/**\r\n\t * @description 接收客户端消息\r\n\t * @params {Object} event 接收客户端的消息数据\r\n\t */\r\n\tonMessage(event: { data: string; }) {\r\n\t\tconsole.log('onMessage', event);\r\n\t\ttry {\r\n\t\t\tconst data = JSON.parse(event.data);\r\n\t\t\tconst { method } = data;\r\n\t\t\tconst callback = this.listerns.get(method);\r\n\t\t\t// 数据格式处理\r\n\t\t\tlet dealDataRes = dealEventData[method] ? dealEventData[method](data) : data;\r\n\t\t\tthis.dispatchEvent(method, dealDataRes);\r\n\t\t\tif (method === 'loginState') {\r\n\t\t\t\tcallback && callback(this.isLoginSuccess);\r\n\t\t\t} else {\r\n\t\t\t\tcallback && callback(data);\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\t// 客户端协议中含有返回的不是Json数据\r\n\t\t\tconsole.log('ws-error-客户端返回的消息不是Json数据', e);\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @description 客户端发生错误事件\r\n\t */\r\n\tonError() {\r\n\t\tthis.ctrls = [];\r\n\t\tthis.ids = [];\r\n\t\tthis.connectFailCount++;\r\n\t\tif (this.connectFailCount === this.reConnectCount + 1) {\r\n\t\t\tclearTimeout(this.heartbeatTimer);\r\n\t\t\tthis.isConnectSuccessQt = false;\r\n\t\t\tthis.dispatchEvent('connectStateChange', false);\r\n\t\t\tthis.connectEnd = true;\r\n\t\t\tthis.isKeepConnect && this.keepConnect();\r\n\t\t\tif (typeof this.callback.connectResult === 'function') {\r\n\t\t\t\tthis.callback.connectResult.call(this, this.isConnectSuccessQt);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * @description 判断是否成功连接客户端\r\n\t */\r\n\tisOpen() {\r\n\t\tif (!this.webSocket) return false;\r\n\t\treturn this.webSocket.readyState === 1;\r\n\t}\r\n\t/**\r\n\t * @description 心跳事件\r\n\t */\r\n\t_heartbeat() {\r\n\t\tthis.heartbeat();\r\n\t\tclearTimeout(this.heartbeatTimer);\r\n\t\tthis.heartbeatTimer = setTimeout(() => {\r\n\t\t\tthis._heartbeat();\r\n\t\t}, 10000);\r\n\t}\r\n\t/**\r\n\t * @description 关闭浏览器事件\r\n\t */\r\n\tcloseBrowser() {\r\n\t\tthis.logout();\r\n\t\t// 延迟100ms登出,关闭所有控件\r\n\t\tvar timestamp = new Date().getTime();\r\n\t\twhile ((new Date().getTime() - timestamp) < 100) { };\r\n\t}\r\n}\r\n\r\n/**\r\n * @description 判断对象是否含有某属性\r\n * @params {Object} obj 对象\r\n * @params {String} key 属性key\r\n */\r\nfunction hasKey<O>(obj: O, key: keyof any): key is keyof O {\r\n\treturn key in obj\r\n}\r\n\r\n/**\r\n * @description 与客户端通讯功能注册\r\n * @params {Array} actions 功能列表\r\n */\r\nfunction usePlugin(actions: any[]) {\r\n\tactions.forEach((plugin) => {\r\n\t\tObject.getOwnPropertyNames(plugin).forEach(prop => {\r\n\t\t\tWs.prototype[prop] = plugin[prop];\r\n\t\t});\r\n\t});\r\n}\r\n"],"names":["this","loginState","getVersionResult","createCtrlResult","data","params","loginResult","version","array","ReWebSocket"],"mappings":"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G,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAC5zB,IAAI,KAAK,GAAG,CAAC,C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"} |
New file |
| | |
| | | #dom1, #dom2, #dom3, #dom4 { |
| | | width: 700px; |
| | | height: 400px; |
| | | position:absolute; |
| | | } |
| | | #dom1{ |
| | | right:0; |
| | | } |
| | | #dom2{ |
| | | /* right:0; |
| | | top: 400px; */ |
| | | } |
| | | #dom3{ |
| | | /* right:0; |
| | | top: 800px; */ |
| | | } |
| | | |
| | | #dom4{ |
| | | left:1000px; |
| | | } |
| | | |
| | | .maskVideo{ |
| | | background-color: aquamarine; |
| | | position: fixed; |
| | | } |
| | | .center{ |
| | | margin: 0 auto; |
| | | width: 1350px; |
| | | } |
| | | #app{ |
| | | padding: 16px 10px; |
| | | } |
| | | #demo .ivu-form-item-label { |
| | | padding-right: 20px; |
| | | } |
| | | #demo #loginInfo .ivu-input { |
| | | width: 220px; |
| | | } |
| | | .ivu-input-wrapper { |
| | | margin-right: 10px; |
| | | } |
| | | .ivu-select { |
| | | margin-right: 10px; |
| | | } |
| | | #demo .ivu-input-wrapper { |
| | | width: 68px; |
| | | } |
| | | #demo .ivu-input { |
| | | width: 100%; |
| | | } |
| | | |
| | | #demo .ivu-date-picker-rel .ivu-input-wrapper { |
| | | width: 360px; |
| | | } |
| | | .ivu-btn + .ivu-btn { |
| | | margin-left: 20px; |
| | | } |
| | | .ivu-form-item .ivu-form-item { |
| | | margin-bottom: 6px; |
| | | } |
| | | #loginModule { |
| | | width: 560px; |
| | | margin: 10px auto; |
| | | padding: 16px; |
| | | border: 1px dashed #ccc; |
| | | } |
| | | #ctrlModule{ |
| | | width: 850px; |
| | | float: left; |
| | | padding: 10px; |
| | | border: 1px dashed #ccc; |
| | | } |
| | | #popModule{ |
| | | float: right; |
| | | width: 482px; |
| | | height: 372px; |
| | | padding: 10px; |
| | | border: 1px dashed #ccc; |
| | | } |
| | | #ctrlModule .ivu-form-item { |
| | | margin-bottom: 16px; |
| | | } |
New file |
| | |
| | | /** |
| | | * Detect Element Resize |
| | | * |
| | | * https://github.com/sdecima/javascript-detect-element-resize |
| | | * Sebastian Decima |
| | | * |
| | | * version: 0.5.3 |
| | | **/ |
| | | |
| | | (function () { |
| | | var attachEvent = document.attachEvent, |
| | | stylesCreated = false; |
| | | |
| | | if (!attachEvent) { |
| | | var requestFrame = (function(){ |
| | | var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || |
| | | function(fn){ return window.setTimeout(fn, 20); }; |
| | | return function(fn){ return raf(fn); }; |
| | | })(); |
| | | |
| | | var cancelFrame = (function(){ |
| | | var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || |
| | | window.clearTimeout; |
| | | return function(id){ return cancel(id); }; |
| | | })(); |
| | | |
| | | function resetTriggers(element){ |
| | | var triggers = element.__resizeTriggers__, |
| | | expand = triggers.firstElementChild, |
| | | contract = triggers.lastElementChild, |
| | | expandChild = expand.firstElementChild; |
| | | contract.scrollLeft = contract.scrollWidth; |
| | | contract.scrollTop = contract.scrollHeight; |
| | | expandChild.style.width = expand.offsetWidth + 1 + 'px'; |
| | | expandChild.style.height = expand.offsetHeight + 1 + 'px'; |
| | | expand.scrollLeft = expand.scrollWidth; |
| | | expand.scrollTop = expand.scrollHeight; |
| | | }; |
| | | |
| | | function checkTriggers(element){ |
| | | return element.offsetWidth != element.__resizeLast__.width || |
| | | element.offsetHeight != element.__resizeLast__.height; |
| | | } |
| | | |
| | | function scrollListener(e){ |
| | | var element = this; |
| | | resetTriggers(this); |
| | | if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__); |
| | | this.__resizeRAF__ = requestFrame(function(){ |
| | | if (checkTriggers(element)) { |
| | | element.__resizeLast__.width = element.offsetWidth; |
| | | element.__resizeLast__.height = element.offsetHeight; |
| | | element.__resizeListeners__.forEach(function(fn){ |
| | | fn.call(element, e); |
| | | }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | /* Detect CSS Animations support to detect element display/re-attach */ |
| | | var animation = false, |
| | | animationstring = 'animation', |
| | | keyframeprefix = '', |
| | | animationstartevent = 'animationstart', |
| | | domPrefixes = 'Webkit Moz O ms'.split(' '), |
| | | startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '), |
| | | pfx = ''; |
| | | { |
| | | var elm = document.createElement('fakeelement'); |
| | | if( elm.style.animationName !== undefined ) { animation = true; } |
| | | |
| | | if( animation === false ) { |
| | | for( var i = 0; i < domPrefixes.length; i++ ) { |
| | | if( elm.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) { |
| | | pfx = domPrefixes[ i ]; |
| | | animationstring = pfx + 'Animation'; |
| | | keyframeprefix = '-' + pfx.toLowerCase() + '-'; |
| | | animationstartevent = startEvents[ i ]; |
| | | animation = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | var animationName = 'resizeanim'; |
| | | var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } '; |
| | | var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; '; |
| | | } |
| | | |
| | | function createStyles() { |
| | | if (!stylesCreated) { |
| | | //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360 |
| | | var css = (animationKeyframes ? animationKeyframes : '') + |
| | | '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + |
| | | '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }', |
| | | head = document.head || document.getElementsByTagName('head')[0], |
| | | style = document.createElement('style'); |
| | | |
| | | style.type = 'text/css'; |
| | | if (style.styleSheet) { |
| | | style.styleSheet.cssText = css; |
| | | } else { |
| | | style.appendChild(document.createTextNode(css)); |
| | | } |
| | | |
| | | head.appendChild(style); |
| | | stylesCreated = true; |
| | | } |
| | | } |
| | | |
| | | window.addResizeListener = function(element, fn){ |
| | | if (attachEvent) element.attachEvent('onresize', fn); |
| | | else { |
| | | if (!element.__resizeTriggers__) { |
| | | if (getComputedStyle(element).position == 'static') element.style.position = 'relative'; |
| | | createStyles(); |
| | | element.__resizeLast__ = {}; |
| | | element.__resizeListeners__ = []; |
| | | (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers'; |
| | | element.__resizeTriggers__.innerHTML = '<div class="expand-trigger"><div></div></div>' + |
| | | '<div class="contract-trigger"></div>'; |
| | | element.appendChild(element.__resizeTriggers__); |
| | | resetTriggers(element); |
| | | element.addEventListener('scroll', scrollListener, true); |
| | | |
| | | /* Listen for a css animation to detect element display/re-attach */ |
| | | animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function(e) { |
| | | if(e.animationName == animationName) |
| | | resetTriggers(element); |
| | | }); |
| | | } |
| | | element.__resizeListeners__.push(fn); |
| | | } |
| | | }; |
| | | |
| | | window.removeResizeListener = function(element, fn){ |
| | | if (attachEvent) element.detachEvent('onresize', fn); |
| | | else { |
| | | element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1); |
| | | if (!element.__resizeListeners__.length) { |
| | | element.removeEventListener('scroll', scrollListener); |
| | | element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__); |
| | | } |
| | | } |
| | | } |
| | | })(); |
New file |
| | |
| | | .ivu-load-loop{-webkit-animation:ani-load-loop 1s linear infinite;animation:ani-load-loop 1s linear infinite}@-webkit-keyframes ani-load-loop{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ani-load-loop{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.input-group-error-append,.input-group-error-prepend{background-color:#fff;border:1px solid #ed4014}.input-group-error-append .ivu-select-selection,.input-group-error-prepend .ivu-select-selection{background-color:inherit;border:1px solid transparent}.input-group-error-prepend{border-right:0}.input-group-error-append{border-left:0}/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-size:14px;line-height:1.5;color:#515a6e;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article,aside,blockquote,body,button,dd,details,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,input,legend,li,menu,nav,ol,p,section,td,textarea,th,ul{margin:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}input::-ms-clear,input::-ms-reveal{display:none}a{color:#2d8cf0;background:0 0;text-decoration:none;outline:0;cursor:pointer;-webkit-transition:color .2s ease;transition:color .2s ease}a:hover{color:#57a3f3}a:active{color:#2b85e4}a:active,a:hover{outline:0;text-decoration:none}a[disabled]{color:#ccc;cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-family:Consolas,Menlo,Courier,monospace}@font-face{font-family:Ionicons;src:url(fonts/ionicons.woff2?v=3.0.0) format("woff2"),url(fonts/ionicons.woff?v=3.0.0) format("woff"),url(fonts/ionicons.ttf?v=3.0.0) format("truetype"),url(fonts/ionicons.svg?v=3.0.0#Ionicons) format("svg");font-weight:400;font-style:normal}.ivu-icon{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:optimizeLegibility;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:-.125em;text-align:center}.ivu-icon-ios-add-circle-outline:before{content:"\f100"}.ivu-icon-ios-add-circle:before{content:"\f101"}.ivu-icon-ios-add:before{content:"\f102"}.ivu-icon-ios-alarm-outline:before{content:"\f103"}.ivu-icon-ios-alarm:before{content:"\f104"}.ivu-icon-ios-albums-outline:before{content:"\f105"}.ivu-icon-ios-albums:before{content:"\f106"}.ivu-icon-ios-alert-outline:before{content:"\f107"}.ivu-icon-ios-alert:before{content:"\f108"}.ivu-icon-ios-american-football-outline:before{content:"\f109"}.ivu-icon-ios-american-football:before{content:"\f10a"}.ivu-icon-ios-analytics-outline:before{content:"\f10b"}.ivu-icon-ios-analytics:before{content:"\f10c"}.ivu-icon-ios-aperture-outline:before{content:"\f10d"}.ivu-icon-ios-aperture:before{content:"\f10e"}.ivu-icon-ios-apps-outline:before{content:"\f10f"}.ivu-icon-ios-apps:before{content:"\f110"}.ivu-icon-ios-appstore-outline:before{content:"\f111"}.ivu-icon-ios-appstore:before{content:"\f112"}.ivu-icon-ios-archive-outline:before{content:"\f113"}.ivu-icon-ios-archive:before{content:"\f114"}.ivu-icon-ios-arrow-back:before{content:"\f115"}.ivu-icon-ios-arrow-down:before{content:"\f116"}.ivu-icon-ios-arrow-dropdown-circle:before{content:"\f117"}.ivu-icon-ios-arrow-dropdown:before{content:"\f118"}.ivu-icon-ios-arrow-dropleft-circle:before{content:"\f119"}.ivu-icon-ios-arrow-dropleft:before{content:"\f11a"}.ivu-icon-ios-arrow-dropright-circle:before{content:"\f11b"}.ivu-icon-ios-arrow-dropright:before{content:"\f11c"}.ivu-icon-ios-arrow-dropup-circle:before{content:"\f11d"}.ivu-icon-ios-arrow-dropup:before{content:"\f11e"}.ivu-icon-ios-arrow-forward:before{content:"\f11f"}.ivu-icon-ios-arrow-round-back:before{content:"\f120"}.ivu-icon-ios-arrow-round-down:before{content:"\f121"}.ivu-icon-ios-arrow-round-forward:before{content:"\f122"}.ivu-icon-ios-arrow-round-up:before{content:"\f123"}.ivu-icon-ios-arrow-up:before{content:"\f124"}.ivu-icon-ios-at-outline:before{content:"\f125"}.ivu-icon-ios-at:before{content:"\f126"}.ivu-icon-ios-attach:before{content:"\f127"}.ivu-icon-ios-backspace-outline:before{content:"\f128"}.ivu-icon-ios-backspace:before{content:"\f129"}.ivu-icon-ios-barcode-outline:before{content:"\f12a"}.ivu-icon-ios-barcode:before{content:"\f12b"}.ivu-icon-ios-baseball-outline:before{content:"\f12c"}.ivu-icon-ios-baseball:before{content:"\f12d"}.ivu-icon-ios-basket-outline:before{content:"\f12e"}.ivu-icon-ios-basket:before{content:"\f12f"}.ivu-icon-ios-basketball-outline:before{content:"\f130"}.ivu-icon-ios-basketball:before{content:"\f131"}.ivu-icon-ios-battery-charging:before{content:"\f132"}.ivu-icon-ios-battery-dead:before{content:"\f133"}.ivu-icon-ios-battery-full:before{content:"\f134"}.ivu-icon-ios-beaker-outline:before{content:"\f135"}.ivu-icon-ios-beaker:before{content:"\f136"}.ivu-icon-ios-beer-outline:before{content:"\f137"}.ivu-icon-ios-beer:before{content:"\f138"}.ivu-icon-ios-bicycle:before{content:"\f139"}.ivu-icon-ios-bluetooth:before{content:"\f13a"}.ivu-icon-ios-boat-outline:before{content:"\f13b"}.ivu-icon-ios-boat:before{content:"\f13c"}.ivu-icon-ios-body-outline:before{content:"\f13d"}.ivu-icon-ios-body:before{content:"\f13e"}.ivu-icon-ios-bonfire-outline:before{content:"\f13f"}.ivu-icon-ios-bonfire:before{content:"\f140"}.ivu-icon-ios-book-outline:before{content:"\f141"}.ivu-icon-ios-book:before{content:"\f142"}.ivu-icon-ios-bookmark-outline:before{content:"\f143"}.ivu-icon-ios-bookmark:before{content:"\f144"}.ivu-icon-ios-bookmarks-outline:before{content:"\f145"}.ivu-icon-ios-bookmarks:before{content:"\f146"}.ivu-icon-ios-bowtie-outline:before{content:"\f147"}.ivu-icon-ios-bowtie:before{content:"\f148"}.ivu-icon-ios-briefcase-outline:before{content:"\f149"}.ivu-icon-ios-briefcase:before{content:"\f14a"}.ivu-icon-ios-browsers-outline:before{content:"\f14b"}.ivu-icon-ios-browsers:before{content:"\f14c"}.ivu-icon-ios-brush-outline:before{content:"\f14d"}.ivu-icon-ios-brush:before{content:"\f14e"}.ivu-icon-ios-bug-outline:before{content:"\f14f"}.ivu-icon-ios-bug:before{content:"\f150"}.ivu-icon-ios-build-outline:before{content:"\f151"}.ivu-icon-ios-build:before{content:"\f152"}.ivu-icon-ios-bulb-outline:before{content:"\f153"}.ivu-icon-ios-bulb:before{content:"\f154"}.ivu-icon-ios-bus-outline:before{content:"\f155"}.ivu-icon-ios-bus:before{content:"\f156"}.ivu-icon-ios-cafe-outline:before{content:"\f157"}.ivu-icon-ios-cafe:before{content:"\f158"}.ivu-icon-ios-calculator-outline:before{content:"\f159"}.ivu-icon-ios-calculator:before{content:"\f15a"}.ivu-icon-ios-calendar-outline:before{content:"\f15b"}.ivu-icon-ios-calendar:before{content:"\f15c"}.ivu-icon-ios-call-outline:before{content:"\f15d"}.ivu-icon-ios-call:before{content:"\f15e"}.ivu-icon-ios-camera-outline:before{content:"\f15f"}.ivu-icon-ios-camera:before{content:"\f160"}.ivu-icon-ios-car-outline:before{content:"\f161"}.ivu-icon-ios-car:before{content:"\f162"}.ivu-icon-ios-card-outline:before{content:"\f163"}.ivu-icon-ios-card:before{content:"\f164"}.ivu-icon-ios-cart-outline:before{content:"\f165"}.ivu-icon-ios-cart:before{content:"\f166"}.ivu-icon-ios-cash-outline:before{content:"\f167"}.ivu-icon-ios-cash:before{content:"\f168"}.ivu-icon-ios-chatboxes-outline:before{content:"\f169"}.ivu-icon-ios-chatboxes:before{content:"\f16a"}.ivu-icon-ios-chatbubbles-outline:before{content:"\f16b"}.ivu-icon-ios-chatbubbles:before{content:"\f16c"}.ivu-icon-ios-checkbox-outline:before{content:"\f16d"}.ivu-icon-ios-checkbox:before{content:"\f16e"}.ivu-icon-ios-checkmark-circle-outline:before{content:"\f16f"}.ivu-icon-ios-checkmark-circle:before{content:"\f170"}.ivu-icon-ios-checkmark:before{content:"\f171"}.ivu-icon-ios-clipboard-outline:before{content:"\f172"}.ivu-icon-ios-clipboard:before{content:"\f173"}.ivu-icon-ios-clock-outline:before{content:"\f174"}.ivu-icon-ios-clock:before{content:"\f175"}.ivu-icon-ios-close-circle-outline:before{content:"\f176"}.ivu-icon-ios-close-circle:before{content:"\f177"}.ivu-icon-ios-close:before{content:"\f178"}.ivu-icon-ios-closed-captioning-outline:before{content:"\f179"}.ivu-icon-ios-closed-captioning:before{content:"\f17a"}.ivu-icon-ios-cloud-circle-outline:before{content:"\f17b"}.ivu-icon-ios-cloud-circle:before{content:"\f17c"}.ivu-icon-ios-cloud-done-outline:before{content:"\f17d"}.ivu-icon-ios-cloud-done:before{content:"\f17e"}.ivu-icon-ios-cloud-download-outline:before{content:"\f17f"}.ivu-icon-ios-cloud-download:before{content:"\f180"}.ivu-icon-ios-cloud-outline:before{content:"\f181"}.ivu-icon-ios-cloud-upload-outline:before{content:"\f182"}.ivu-icon-ios-cloud-upload:before{content:"\f183"}.ivu-icon-ios-cloud:before{content:"\f184"}.ivu-icon-ios-cloudy-night-outline:before{content:"\f185"}.ivu-icon-ios-cloudy-night:before{content:"\f186"}.ivu-icon-ios-cloudy-outline:before{content:"\f187"}.ivu-icon-ios-cloudy:before{content:"\f188"}.ivu-icon-ios-code-download:before{content:"\f189"}.ivu-icon-ios-code-working:before{content:"\f18a"}.ivu-icon-ios-code:before{content:"\f18b"}.ivu-icon-ios-cog-outline:before{content:"\f18c"}.ivu-icon-ios-cog:before{content:"\f18d"}.ivu-icon-ios-color-fill-outline:before{content:"\f18e"}.ivu-icon-ios-color-fill:before{content:"\f18f"}.ivu-icon-ios-color-filter-outline:before{content:"\f190"}.ivu-icon-ios-color-filter:before{content:"\f191"}.ivu-icon-ios-color-palette-outline:before{content:"\f192"}.ivu-icon-ios-color-palette:before{content:"\f193"}.ivu-icon-ios-color-wand-outline:before{content:"\f194"}.ivu-icon-ios-color-wand:before{content:"\f195"}.ivu-icon-ios-compass-outline:before{content:"\f196"}.ivu-icon-ios-compass:before{content:"\f197"}.ivu-icon-ios-construct-outline:before{content:"\f198"}.ivu-icon-ios-construct:before{content:"\f199"}.ivu-icon-ios-contact-outline:before{content:"\f19a"}.ivu-icon-ios-contact:before{content:"\f19b"}.ivu-icon-ios-contacts-outline:before{content:"\f19c"}.ivu-icon-ios-contacts:before{content:"\f19d"}.ivu-icon-ios-contract:before{content:"\f19e"}.ivu-icon-ios-contrast:before{content:"\f19f"}.ivu-icon-ios-copy-outline:before{content:"\f1a0"}.ivu-icon-ios-copy:before{content:"\f1a1"}.ivu-icon-ios-create-outline:before{content:"\f1a2"}.ivu-icon-ios-create:before{content:"\f1a3"}.ivu-icon-ios-crop-outline:before{content:"\f1a4"}.ivu-icon-ios-crop:before{content:"\f1a5"}.ivu-icon-ios-cube-outline:before{content:"\f1a6"}.ivu-icon-ios-cube:before{content:"\f1a7"}.ivu-icon-ios-cut-outline:before{content:"\f1a8"}.ivu-icon-ios-cut:before{content:"\f1a9"}.ivu-icon-ios-desktop-outline:before{content:"\f1aa"}.ivu-icon-ios-desktop:before{content:"\f1ab"}.ivu-icon-ios-disc-outline:before{content:"\f1ac"}.ivu-icon-ios-disc:before{content:"\f1ad"}.ivu-icon-ios-document-outline:before{content:"\f1ae"}.ivu-icon-ios-document:before{content:"\f1af"}.ivu-icon-ios-done-all:before{content:"\f1b0"}.ivu-icon-ios-download-outline:before{content:"\f1b1"}.ivu-icon-ios-download:before{content:"\f1b2"}.ivu-icon-ios-easel-outline:before{content:"\f1b3"}.ivu-icon-ios-easel:before{content:"\f1b4"}.ivu-icon-ios-egg-outline:before{content:"\f1b5"}.ivu-icon-ios-egg:before{content:"\f1b6"}.ivu-icon-ios-exit-outline:before{content:"\f1b7"}.ivu-icon-ios-exit:before{content:"\f1b8"}.ivu-icon-ios-expand:before{content:"\f1b9"}.ivu-icon-ios-eye-off-outline:before{content:"\f1ba"}.ivu-icon-ios-eye-off:before{content:"\f1bb"}.ivu-icon-ios-eye-outline:before{content:"\f1bc"}.ivu-icon-ios-eye:before{content:"\f1bd"}.ivu-icon-ios-fastforward-outline:before{content:"\f1be"}.ivu-icon-ios-fastforward:before{content:"\f1bf"}.ivu-icon-ios-female:before{content:"\f1c0"}.ivu-icon-ios-filing-outline:before{content:"\f1c1"}.ivu-icon-ios-filing:before{content:"\f1c2"}.ivu-icon-ios-film-outline:before{content:"\f1c3"}.ivu-icon-ios-film:before{content:"\f1c4"}.ivu-icon-ios-finger-print:before{content:"\f1c5"}.ivu-icon-ios-flag-outline:before{content:"\f1c6"}.ivu-icon-ios-flag:before{content:"\f1c7"}.ivu-icon-ios-flame-outline:before{content:"\f1c8"}.ivu-icon-ios-flame:before{content:"\f1c9"}.ivu-icon-ios-flash-outline:before{content:"\f1ca"}.ivu-icon-ios-flash:before{content:"\f1cb"}.ivu-icon-ios-flask-outline:before{content:"\f1cc"}.ivu-icon-ios-flask:before{content:"\f1cd"}.ivu-icon-ios-flower-outline:before{content:"\f1ce"}.ivu-icon-ios-flower:before{content:"\f1cf"}.ivu-icon-ios-folder-open-outline:before{content:"\f1d0"}.ivu-icon-ios-folder-open:before{content:"\f1d1"}.ivu-icon-ios-folder-outline:before{content:"\f1d2"}.ivu-icon-ios-folder:before{content:"\f1d3"}.ivu-icon-ios-football-outline:before{content:"\f1d4"}.ivu-icon-ios-football:before{content:"\f1d5"}.ivu-icon-ios-funnel-outline:before{content:"\f1d6"}.ivu-icon-ios-funnel:before{content:"\f1d7"}.ivu-icon-ios-game-controller-a-outline:before{content:"\f1d8"}.ivu-icon-ios-game-controller-a:before{content:"\f1d9"}.ivu-icon-ios-game-controller-b-outline:before{content:"\f1da"}.ivu-icon-ios-game-controller-b:before{content:"\f1db"}.ivu-icon-ios-git-branch:before{content:"\f1dc"}.ivu-icon-ios-git-commit:before{content:"\f1dd"}.ivu-icon-ios-git-compare:before{content:"\f1de"}.ivu-icon-ios-git-merge:before{content:"\f1df"}.ivu-icon-ios-git-network:before{content:"\f1e0"}.ivu-icon-ios-git-pull-request:before{content:"\f1e1"}.ivu-icon-ios-glasses-outline:before{content:"\f1e2"}.ivu-icon-ios-glasses:before{content:"\f1e3"}.ivu-icon-ios-globe-outline:before{content:"\f1e4"}.ivu-icon-ios-globe:before{content:"\f1e5"}.ivu-icon-ios-grid-outline:before{content:"\f1e6"}.ivu-icon-ios-grid:before{content:"\f1e7"}.ivu-icon-ios-hammer-outline:before{content:"\f1e8"}.ivu-icon-ios-hammer:before{content:"\f1e9"}.ivu-icon-ios-hand-outline:before{content:"\f1ea"}.ivu-icon-ios-hand:before{content:"\f1eb"}.ivu-icon-ios-happy-outline:before{content:"\f1ec"}.ivu-icon-ios-happy:before{content:"\f1ed"}.ivu-icon-ios-headset-outline:before{content:"\f1ee"}.ivu-icon-ios-headset:before{content:"\f1ef"}.ivu-icon-ios-heart-outline:before{content:"\f1f0"}.ivu-icon-ios-heart:before{content:"\f1f1"}.ivu-icon-ios-help-buoy-outline:before{content:"\f1f2"}.ivu-icon-ios-help-buoy:before{content:"\f1f3"}.ivu-icon-ios-help-circle-outline:before{content:"\f1f4"}.ivu-icon-ios-help-circle:before{content:"\f1f5"}.ivu-icon-ios-help:before{content:"\f1f6"}.ivu-icon-ios-home-outline:before{content:"\f1f7"}.ivu-icon-ios-home:before{content:"\f1f8"}.ivu-icon-ios-ice-cream-outline:before{content:"\f1f9"}.ivu-icon-ios-ice-cream:before{content:"\f1fa"}.ivu-icon-ios-image-outline:before{content:"\f1fb"}.ivu-icon-ios-image:before{content:"\f1fc"}.ivu-icon-ios-images-outline:before{content:"\f1fd"}.ivu-icon-ios-images:before{content:"\f1fe"}.ivu-icon-ios-infinite-outline:before{content:"\f1ff"}.ivu-icon-ios-infinite:before{content:"\f200"}.ivu-icon-ios-information-circle-outline:before{content:"\f201"}.ivu-icon-ios-information-circle:before{content:"\f202"}.ivu-icon-ios-information:before{content:"\f203"}.ivu-icon-ios-ionic-outline:before{content:"\f204"}.ivu-icon-ios-ionic:before{content:"\f205"}.ivu-icon-ios-ionitron-outline:before{content:"\f206"}.ivu-icon-ios-ionitron:before{content:"\f207"}.ivu-icon-ios-jet-outline:before{content:"\f208"}.ivu-icon-ios-jet:before{content:"\f209"}.ivu-icon-ios-key-outline:before{content:"\f20a"}.ivu-icon-ios-key:before{content:"\f20b"}.ivu-icon-ios-keypad-outline:before{content:"\f20c"}.ivu-icon-ios-keypad:before{content:"\f20d"}.ivu-icon-ios-laptop:before{content:"\f20e"}.ivu-icon-ios-leaf-outline:before{content:"\f20f"}.ivu-icon-ios-leaf:before{content:"\f210"}.ivu-icon-ios-link-outline:before{content:"\f211"}.ivu-icon-ios-link:before{content:"\f212"}.ivu-icon-ios-list-box-outline:before{content:"\f213"}.ivu-icon-ios-list-box:before{content:"\f214"}.ivu-icon-ios-list:before{content:"\f215"}.ivu-icon-ios-locate-outline:before{content:"\f216"}.ivu-icon-ios-locate:before{content:"\f217"}.ivu-icon-ios-lock-outline:before{content:"\f218"}.ivu-icon-ios-lock:before{content:"\f219"}.ivu-icon-ios-log-in:before{content:"\f21a"}.ivu-icon-ios-log-out:before{content:"\f21b"}.ivu-icon-ios-magnet-outline:before{content:"\f21c"}.ivu-icon-ios-magnet:before{content:"\f21d"}.ivu-icon-ios-mail-open-outline:before{content:"\f21e"}.ivu-icon-ios-mail-open:before{content:"\f21f"}.ivu-icon-ios-mail-outline:before{content:"\f220"}.ivu-icon-ios-mail:before{content:"\f221"}.ivu-icon-ios-male:before{content:"\f222"}.ivu-icon-ios-man-outline:before{content:"\f223"}.ivu-icon-ios-man:before{content:"\f224"}.ivu-icon-ios-map-outline:before{content:"\f225"}.ivu-icon-ios-map:before{content:"\f226"}.ivu-icon-ios-medal-outline:before{content:"\f227"}.ivu-icon-ios-medal:before{content:"\f228"}.ivu-icon-ios-medical-outline:before{content:"\f229"}.ivu-icon-ios-medical:before{content:"\f22a"}.ivu-icon-ios-medkit-outline:before{content:"\f22b"}.ivu-icon-ios-medkit:before{content:"\f22c"}.ivu-icon-ios-megaphone-outline:before{content:"\f22d"}.ivu-icon-ios-megaphone:before{content:"\f22e"}.ivu-icon-ios-menu-outline:before{content:"\f22f"}.ivu-icon-ios-menu:before{content:"\f230"}.ivu-icon-ios-mic-off-outline:before{content:"\f231"}.ivu-icon-ios-mic-off:before{content:"\f232"}.ivu-icon-ios-mic-outline:before{content:"\f233"}.ivu-icon-ios-mic:before{content:"\f234"}.ivu-icon-ios-microphone-outline:before{content:"\f235"}.ivu-icon-ios-microphone:before{content:"\f236"}.ivu-icon-ios-moon-outline:before{content:"\f237"}.ivu-icon-ios-moon:before{content:"\f238"}.ivu-icon-ios-more-outline:before{content:"\f239"}.ivu-icon-ios-more:before{content:"\f23a"}.ivu-icon-ios-move:before{content:"\f23b"}.ivu-icon-ios-musical-note-outline:before{content:"\f23c"}.ivu-icon-ios-musical-note:before{content:"\f23d"}.ivu-icon-ios-musical-notes-outline:before{content:"\f23e"}.ivu-icon-ios-musical-notes:before{content:"\f23f"}.ivu-icon-ios-navigate-outline:before{content:"\f240"}.ivu-icon-ios-navigate:before{content:"\f241"}.ivu-icon-ios-no-smoking-outline:before{content:"\f242"}.ivu-icon-ios-no-smoking:before{content:"\f243"}.ivu-icon-ios-notifications-off-outline:before{content:"\f244"}.ivu-icon-ios-notifications-off:before{content:"\f245"}.ivu-icon-ios-notifications-outline:before{content:"\f246"}.ivu-icon-ios-notifications:before{content:"\f247"}.ivu-icon-ios-nuclear-outline:before{content:"\f248"}.ivu-icon-ios-nuclear:before{content:"\f249"}.ivu-icon-ios-nutrition-outline:before{content:"\f24a"}.ivu-icon-ios-nutrition:before{content:"\f24b"}.ivu-icon-ios-open-outline:before{content:"\f24c"}.ivu-icon-ios-open:before{content:"\f24d"}.ivu-icon-ios-options-outline:before{content:"\f24e"}.ivu-icon-ios-options:before{content:"\f24f"}.ivu-icon-ios-outlet-outline:before{content:"\f250"}.ivu-icon-ios-outlet:before{content:"\f251"}.ivu-icon-ios-paper-outline:before{content:"\f252"}.ivu-icon-ios-paper-plane-outline:before{content:"\f253"}.ivu-icon-ios-paper-plane:before{content:"\f254"}.ivu-icon-ios-paper:before{content:"\f255"}.ivu-icon-ios-partly-sunny-outline:before{content:"\f256"}.ivu-icon-ios-partly-sunny:before{content:"\f257"}.ivu-icon-ios-pause-outline:before{content:"\f258"}.ivu-icon-ios-pause:before{content:"\f259"}.ivu-icon-ios-paw-outline:before{content:"\f25a"}.ivu-icon-ios-paw:before{content:"\f25b"}.ivu-icon-ios-people-outline:before{content:"\f25c"}.ivu-icon-ios-people:before{content:"\f25d"}.ivu-icon-ios-person-add-outline:before{content:"\f25e"}.ivu-icon-ios-person-add:before{content:"\f25f"}.ivu-icon-ios-person-outline:before{content:"\f260"}.ivu-icon-ios-person:before{content:"\f261"}.ivu-icon-ios-phone-landscape:before{content:"\f262"}.ivu-icon-ios-phone-portrait:before{content:"\f263"}.ivu-icon-ios-photos-outline:before{content:"\f264"}.ivu-icon-ios-photos:before{content:"\f265"}.ivu-icon-ios-pie-outline:before{content:"\f266"}.ivu-icon-ios-pie:before{content:"\f267"}.ivu-icon-ios-pin-outline:before{content:"\f268"}.ivu-icon-ios-pin:before{content:"\f269"}.ivu-icon-ios-pint-outline:before{content:"\f26a"}.ivu-icon-ios-pint:before{content:"\f26b"}.ivu-icon-ios-pizza-outline:before{content:"\f26c"}.ivu-icon-ios-pizza:before{content:"\f26d"}.ivu-icon-ios-plane-outline:before{content:"\f26e"}.ivu-icon-ios-plane:before{content:"\f26f"}.ivu-icon-ios-planet-outline:before{content:"\f270"}.ivu-icon-ios-planet:before{content:"\f271"}.ivu-icon-ios-play-outline:before{content:"\f272"}.ivu-icon-ios-play:before{content:"\f273"}.ivu-icon-ios-podium-outline:before{content:"\f274"}.ivu-icon-ios-podium:before{content:"\f275"}.ivu-icon-ios-power-outline:before{content:"\f276"}.ivu-icon-ios-power:before{content:"\f277"}.ivu-icon-ios-pricetag-outline:before{content:"\f278"}.ivu-icon-ios-pricetag:before{content:"\f279"}.ivu-icon-ios-pricetags-outline:before{content:"\f27a"}.ivu-icon-ios-pricetags:before{content:"\f27b"}.ivu-icon-ios-print-outline:before{content:"\f27c"}.ivu-icon-ios-print:before{content:"\f27d"}.ivu-icon-ios-pulse-outline:before{content:"\f27e"}.ivu-icon-ios-pulse:before{content:"\f27f"}.ivu-icon-ios-qr-scanner:before{content:"\f280"}.ivu-icon-ios-quote-outline:before{content:"\f281"}.ivu-icon-ios-quote:before{content:"\f282"}.ivu-icon-ios-radio-button-off:before{content:"\f283"}.ivu-icon-ios-radio-button-on:before{content:"\f284"}.ivu-icon-ios-radio-outline:before{content:"\f285"}.ivu-icon-ios-radio:before{content:"\f286"}.ivu-icon-ios-rainy-outline:before{content:"\f287"}.ivu-icon-ios-rainy:before{content:"\f288"}.ivu-icon-ios-recording-outline:before{content:"\f289"}.ivu-icon-ios-recording:before{content:"\f28a"}.ivu-icon-ios-redo-outline:before{content:"\f28b"}.ivu-icon-ios-redo:before{content:"\f28c"}.ivu-icon-ios-refresh-circle-outline:before{content:"\f28d"}.ivu-icon-ios-refresh-circle:before{content:"\f28e"}.ivu-icon-ios-refresh:before{content:"\f28f"}.ivu-icon-ios-remove-circle-outline:before{content:"\f290"}.ivu-icon-ios-remove-circle:before{content:"\f291"}.ivu-icon-ios-remove:before{content:"\f292"}.ivu-icon-ios-reorder:before{content:"\f293"}.ivu-icon-ios-repeat:before{content:"\f294"}.ivu-icon-ios-resize:before{content:"\f295"}.ivu-icon-ios-restaurant-outline:before{content:"\f296"}.ivu-icon-ios-restaurant:before{content:"\f297"}.ivu-icon-ios-return-left:before{content:"\f298"}.ivu-icon-ios-return-right:before{content:"\f299"}.ivu-icon-ios-reverse-camera-outline:before{content:"\f29a"}.ivu-icon-ios-reverse-camera:before{content:"\f29b"}.ivu-icon-ios-rewind-outline:before{content:"\f29c"}.ivu-icon-ios-rewind:before{content:"\f29d"}.ivu-icon-ios-ribbon-outline:before{content:"\f29e"}.ivu-icon-ios-ribbon:before{content:"\f29f"}.ivu-icon-ios-rose-outline:before{content:"\f2a0"}.ivu-icon-ios-rose:before{content:"\f2a1"}.ivu-icon-ios-sad-outline:before{content:"\f2a2"}.ivu-icon-ios-sad:before{content:"\f2a3"}.ivu-icon-ios-school-outline:before{content:"\f2a4"}.ivu-icon-ios-school:before{content:"\f2a5"}.ivu-icon-ios-search-outline:before{content:"\f2a6"}.ivu-icon-ios-search:before{content:"\f2a7"}.ivu-icon-ios-send-outline:before{content:"\f2a8"}.ivu-icon-ios-send:before{content:"\f2a9"}.ivu-icon-ios-settings-outline:before{content:"\f2aa"}.ivu-icon-ios-settings:before{content:"\f2ab"}.ivu-icon-ios-share-alt-outline:before{content:"\f2ac"}.ivu-icon-ios-share-alt:before{content:"\f2ad"}.ivu-icon-ios-share-outline:before{content:"\f2ae"}.ivu-icon-ios-share:before{content:"\f2af"}.ivu-icon-ios-shirt-outline:before{content:"\f2b0"}.ivu-icon-ios-shirt:before{content:"\f2b1"}.ivu-icon-ios-shuffle:before{content:"\f2b2"}.ivu-icon-ios-skip-backward-outline:before{content:"\f2b3"}.ivu-icon-ios-skip-backward:before{content:"\f2b4"}.ivu-icon-ios-skip-forward-outline:before{content:"\f2b5"}.ivu-icon-ios-skip-forward:before{content:"\f2b6"}.ivu-icon-ios-snow-outline:before{content:"\f2b7"}.ivu-icon-ios-snow:before{content:"\f2b8"}.ivu-icon-ios-speedometer-outline:before{content:"\f2b9"}.ivu-icon-ios-speedometer:before{content:"\f2ba"}.ivu-icon-ios-square-outline:before{content:"\f2bb"}.ivu-icon-ios-square:before{content:"\f2bc"}.ivu-icon-ios-star-half:before{content:"\f2bd"}.ivu-icon-ios-star-outline:before{content:"\f2be"}.ivu-icon-ios-star:before{content:"\f2bf"}.ivu-icon-ios-stats-outline:before{content:"\f2c0"}.ivu-icon-ios-stats:before{content:"\f2c1"}.ivu-icon-ios-stopwatch-outline:before{content:"\f2c2"}.ivu-icon-ios-stopwatch:before{content:"\f2c3"}.ivu-icon-ios-subway-outline:before{content:"\f2c4"}.ivu-icon-ios-subway:before{content:"\f2c5"}.ivu-icon-ios-sunny-outline:before{content:"\f2c6"}.ivu-icon-ios-sunny:before{content:"\f2c7"}.ivu-icon-ios-swap:before{content:"\f2c8"}.ivu-icon-ios-switch-outline:before{content:"\f2c9"}.ivu-icon-ios-switch:before{content:"\f2ca"}.ivu-icon-ios-sync:before{content:"\f2cb"}.ivu-icon-ios-tablet-landscape:before{content:"\f2cc"}.ivu-icon-ios-tablet-portrait:before{content:"\f2cd"}.ivu-icon-ios-tennisball-outline:before{content:"\f2ce"}.ivu-icon-ios-tennisball:before{content:"\f2cf"}.ivu-icon-ios-text-outline:before{content:"\f2d0"}.ivu-icon-ios-text:before{content:"\f2d1"}.ivu-icon-ios-thermometer-outline:before{content:"\f2d2"}.ivu-icon-ios-thermometer:before{content:"\f2d3"}.ivu-icon-ios-thumbs-down-outline:before{content:"\f2d4"}.ivu-icon-ios-thumbs-down:before{content:"\f2d5"}.ivu-icon-ios-thumbs-up-outline:before{content:"\f2d6"}.ivu-icon-ios-thumbs-up:before{content:"\f2d7"}.ivu-icon-ios-thunderstorm-outline:before{content:"\f2d8"}.ivu-icon-ios-thunderstorm:before{content:"\f2d9"}.ivu-icon-ios-time-outline:before{content:"\f2da"}.ivu-icon-ios-time:before{content:"\f2db"}.ivu-icon-ios-timer-outline:before{content:"\f2dc"}.ivu-icon-ios-timer:before{content:"\f2dd"}.ivu-icon-ios-train-outline:before{content:"\f2de"}.ivu-icon-ios-train:before{content:"\f2df"}.ivu-icon-ios-transgender:before{content:"\f2e0"}.ivu-icon-ios-trash-outline:before{content:"\f2e1"}.ivu-icon-ios-trash:before{content:"\f2e2"}.ivu-icon-ios-trending-down:before{content:"\f2e3"}.ivu-icon-ios-trending-up:before{content:"\f2e4"}.ivu-icon-ios-trophy-outline:before{content:"\f2e5"}.ivu-icon-ios-trophy:before{content:"\f2e6"}.ivu-icon-ios-umbrella-outline:before{content:"\f2e7"}.ivu-icon-ios-umbrella:before{content:"\f2e8"}.ivu-icon-ios-undo-outline:before{content:"\f2e9"}.ivu-icon-ios-undo:before{content:"\f2ea"}.ivu-icon-ios-unlock-outline:before{content:"\f2eb"}.ivu-icon-ios-unlock:before{content:"\f2ec"}.ivu-icon-ios-videocam-outline:before{content:"\f2ed"}.ivu-icon-ios-videocam:before{content:"\f2ee"}.ivu-icon-ios-volume-down:before{content:"\f2ef"}.ivu-icon-ios-volume-mute:before{content:"\f2f0"}.ivu-icon-ios-volume-off:before{content:"\f2f1"}.ivu-icon-ios-volume-up:before{content:"\f2f2"}.ivu-icon-ios-walk:before{content:"\f2f3"}.ivu-icon-ios-warning-outline:before{content:"\f2f4"}.ivu-icon-ios-warning:before{content:"\f2f5"}.ivu-icon-ios-watch:before{content:"\f2f6"}.ivu-icon-ios-water-outline:before{content:"\f2f7"}.ivu-icon-ios-water:before{content:"\f2f8"}.ivu-icon-ios-wifi-outline:before{content:"\f2f9"}.ivu-icon-ios-wifi:before{content:"\f2fa"}.ivu-icon-ios-wine-outline:before{content:"\f2fb"}.ivu-icon-ios-wine:before{content:"\f2fc"}.ivu-icon-ios-woman-outline:before{content:"\f2fd"}.ivu-icon-ios-woman:before{content:"\f2fe"}.ivu-icon-logo-android:before{content:"\f2ff"}.ivu-icon-logo-angular:before{content:"\f300"}.ivu-icon-logo-apple:before{content:"\f301"}.ivu-icon-logo-bitcoin:before{content:"\f302"}.ivu-icon-logo-buffer:before{content:"\f303"}.ivu-icon-logo-chrome:before{content:"\f304"}.ivu-icon-logo-codepen:before{content:"\f305"}.ivu-icon-logo-css3:before{content:"\f306"}.ivu-icon-logo-designernews:before{content:"\f307"}.ivu-icon-logo-dribbble:before{content:"\f308"}.ivu-icon-logo-dropbox:before{content:"\f309"}.ivu-icon-logo-euro:before{content:"\f30a"}.ivu-icon-logo-facebook:before{content:"\f30b"}.ivu-icon-logo-foursquare:before{content:"\f30c"}.ivu-icon-logo-freebsd-devil:before{content:"\f30d"}.ivu-icon-logo-github:before{content:"\f30e"}.ivu-icon-logo-google:before{content:"\f30f"}.ivu-icon-logo-googleplus:before{content:"\f310"}.ivu-icon-logo-hackernews:before{content:"\f311"}.ivu-icon-logo-html5:before{content:"\f312"}.ivu-icon-logo-instagram:before{content:"\f313"}.ivu-icon-logo-javascript:before{content:"\f314"}.ivu-icon-logo-linkedin:before{content:"\f315"}.ivu-icon-logo-markdown:before{content:"\f316"}.ivu-icon-logo-nodejs:before{content:"\f317"}.ivu-icon-logo-octocat:before{content:"\f318"}.ivu-icon-logo-pinterest:before{content:"\f319"}.ivu-icon-logo-playstation:before{content:"\f31a"}.ivu-icon-logo-python:before{content:"\f31b"}.ivu-icon-logo-reddit:before{content:"\f31c"}.ivu-icon-logo-rss:before{content:"\f31d"}.ivu-icon-logo-sass:before{content:"\f31e"}.ivu-icon-logo-skype:before{content:"\f31f"}.ivu-icon-logo-snapchat:before{content:"\f320"}.ivu-icon-logo-steam:before{content:"\f321"}.ivu-icon-logo-tumblr:before{content:"\f322"}.ivu-icon-logo-tux:before{content:"\f323"}.ivu-icon-logo-twitch:before{content:"\f324"}.ivu-icon-logo-twitter:before{content:"\f325"}.ivu-icon-logo-usd:before{content:"\f326"}.ivu-icon-logo-vimeo:before{content:"\f327"}.ivu-icon-logo-whatsapp:before{content:"\f328"}.ivu-icon-logo-windows:before{content:"\f329"}.ivu-icon-logo-wordpress:before{content:"\f32a"}.ivu-icon-logo-xbox:before{content:"\f32b"}.ivu-icon-logo-yahoo:before{content:"\f32c"}.ivu-icon-logo-yen:before{content:"\f32d"}.ivu-icon-logo-youtube:before{content:"\f32e"}.ivu-icon-md-add-circle:before{content:"\f32f"}.ivu-icon-md-add:before{content:"\f330"}.ivu-icon-md-alarm:before{content:"\f331"}.ivu-icon-md-albums:before{content:"\f332"}.ivu-icon-md-alert:before{content:"\f333"}.ivu-icon-md-american-football:before{content:"\f334"}.ivu-icon-md-analytics:before{content:"\f335"}.ivu-icon-md-aperture:before{content:"\f336"}.ivu-icon-md-apps:before{content:"\f337"}.ivu-icon-md-appstore:before{content:"\f338"}.ivu-icon-md-archive:before{content:"\f339"}.ivu-icon-md-arrow-back:before{content:"\f33a"}.ivu-icon-md-arrow-down:before{content:"\f33b"}.ivu-icon-md-arrow-dropdown-circle:before{content:"\f33c"}.ivu-icon-md-arrow-dropdown:before{content:"\f33d"}.ivu-icon-md-arrow-dropleft-circle:before{content:"\f33e"}.ivu-icon-md-arrow-dropleft:before{content:"\f33f"}.ivu-icon-md-arrow-dropright-circle:before{content:"\f340"}.ivu-icon-md-arrow-dropright:before{content:"\f341"}.ivu-icon-md-arrow-dropup-circle:before{content:"\f342"}.ivu-icon-md-arrow-dropup:before{content:"\f343"}.ivu-icon-md-arrow-forward:before{content:"\f344"}.ivu-icon-md-arrow-round-back:before{content:"\f345"}.ivu-icon-md-arrow-round-down:before{content:"\f346"}.ivu-icon-md-arrow-round-forward:before{content:"\f347"}.ivu-icon-md-arrow-round-up:before{content:"\f348"}.ivu-icon-md-arrow-up:before{content:"\f349"}.ivu-icon-md-at:before{content:"\f34a"}.ivu-icon-md-attach:before{content:"\f34b"}.ivu-icon-md-backspace:before{content:"\f34c"}.ivu-icon-md-barcode:before{content:"\f34d"}.ivu-icon-md-baseball:before{content:"\f34e"}.ivu-icon-md-basket:before{content:"\f34f"}.ivu-icon-md-basketball:before{content:"\f350"}.ivu-icon-md-battery-charging:before{content:"\f351"}.ivu-icon-md-battery-dead:before{content:"\f352"}.ivu-icon-md-battery-full:before{content:"\f353"}.ivu-icon-md-beaker:before{content:"\f354"}.ivu-icon-md-beer:before{content:"\f355"}.ivu-icon-md-bicycle:before{content:"\f356"}.ivu-icon-md-bluetooth:before{content:"\f357"}.ivu-icon-md-boat:before{content:"\f358"}.ivu-icon-md-body:before{content:"\f359"}.ivu-icon-md-bonfire:before{content:"\f35a"}.ivu-icon-md-book:before{content:"\f35b"}.ivu-icon-md-bookmark:before{content:"\f35c"}.ivu-icon-md-bookmarks:before{content:"\f35d"}.ivu-icon-md-bowtie:before{content:"\f35e"}.ivu-icon-md-briefcase:before{content:"\f35f"}.ivu-icon-md-browsers:before{content:"\f360"}.ivu-icon-md-brush:before{content:"\f361"}.ivu-icon-md-bug:before{content:"\f362"}.ivu-icon-md-build:before{content:"\f363"}.ivu-icon-md-bulb:before{content:"\f364"}.ivu-icon-md-bus:before{content:"\f365"}.ivu-icon-md-cafe:before{content:"\f366"}.ivu-icon-md-calculator:before{content:"\f367"}.ivu-icon-md-calendar:before{content:"\f368"}.ivu-icon-md-call:before{content:"\f369"}.ivu-icon-md-camera:before{content:"\f36a"}.ivu-icon-md-car:before{content:"\f36b"}.ivu-icon-md-card:before{content:"\f36c"}.ivu-icon-md-cart:before{content:"\f36d"}.ivu-icon-md-cash:before{content:"\f36e"}.ivu-icon-md-chatboxes:before{content:"\f36f"}.ivu-icon-md-chatbubbles:before{content:"\f370"}.ivu-icon-md-checkbox-outline:before{content:"\f371"}.ivu-icon-md-checkbox:before{content:"\f372"}.ivu-icon-md-checkmark-circle-outline:before{content:"\f373"}.ivu-icon-md-checkmark-circle:before{content:"\f374"}.ivu-icon-md-checkmark:before{content:"\f375"}.ivu-icon-md-clipboard:before{content:"\f376"}.ivu-icon-md-clock:before{content:"\f377"}.ivu-icon-md-close-circle:before{content:"\f378"}.ivu-icon-md-close:before{content:"\f379"}.ivu-icon-md-closed-captioning:before{content:"\f37a"}.ivu-icon-md-cloud-circle:before{content:"\f37b"}.ivu-icon-md-cloud-done:before{content:"\f37c"}.ivu-icon-md-cloud-download:before{content:"\f37d"}.ivu-icon-md-cloud-outline:before{content:"\f37e"}.ivu-icon-md-cloud-upload:before{content:"\f37f"}.ivu-icon-md-cloud:before{content:"\f380"}.ivu-icon-md-cloudy-night:before{content:"\f381"}.ivu-icon-md-cloudy:before{content:"\f382"}.ivu-icon-md-code-download:before{content:"\f383"}.ivu-icon-md-code-working:before{content:"\f384"}.ivu-icon-md-code:before{content:"\f385"}.ivu-icon-md-cog:before{content:"\f386"}.ivu-icon-md-color-fill:before{content:"\f387"}.ivu-icon-md-color-filter:before{content:"\f388"}.ivu-icon-md-color-palette:before{content:"\f389"}.ivu-icon-md-color-wand:before{content:"\f38a"}.ivu-icon-md-compass:before{content:"\f38b"}.ivu-icon-md-construct:before{content:"\f38c"}.ivu-icon-md-contact:before{content:"\f38d"}.ivu-icon-md-contacts:before{content:"\f38e"}.ivu-icon-md-contract:before{content:"\f38f"}.ivu-icon-md-contrast:before{content:"\f390"}.ivu-icon-md-copy:before{content:"\f391"}.ivu-icon-md-create:before{content:"\f392"}.ivu-icon-md-crop:before{content:"\f393"}.ivu-icon-md-cube:before{content:"\f394"}.ivu-icon-md-cut:before{content:"\f395"}.ivu-icon-md-desktop:before{content:"\f396"}.ivu-icon-md-disc:before{content:"\f397"}.ivu-icon-md-document:before{content:"\f398"}.ivu-icon-md-done-all:before{content:"\f399"}.ivu-icon-md-download:before{content:"\f39a"}.ivu-icon-md-easel:before{content:"\f39b"}.ivu-icon-md-egg:before{content:"\f39c"}.ivu-icon-md-exit:before{content:"\f39d"}.ivu-icon-md-expand:before{content:"\f39e"}.ivu-icon-md-eye-off:before{content:"\f39f"}.ivu-icon-md-eye:before{content:"\f3a0"}.ivu-icon-md-fastforward:before{content:"\f3a1"}.ivu-icon-md-female:before{content:"\f3a2"}.ivu-icon-md-filing:before{content:"\f3a3"}.ivu-icon-md-film:before{content:"\f3a4"}.ivu-icon-md-finger-print:before{content:"\f3a5"}.ivu-icon-md-flag:before{content:"\f3a6"}.ivu-icon-md-flame:before{content:"\f3a7"}.ivu-icon-md-flash:before{content:"\f3a8"}.ivu-icon-md-flask:before{content:"\f3a9"}.ivu-icon-md-flower:before{content:"\f3aa"}.ivu-icon-md-folder-open:before{content:"\f3ab"}.ivu-icon-md-folder:before{content:"\f3ac"}.ivu-icon-md-football:before{content:"\f3ad"}.ivu-icon-md-funnel:before{content:"\f3ae"}.ivu-icon-md-game-controller-a:before{content:"\f3af"}.ivu-icon-md-game-controller-b:before{content:"\f3b0"}.ivu-icon-md-git-branch:before{content:"\f3b1"}.ivu-icon-md-git-commit:before{content:"\f3b2"}.ivu-icon-md-git-compare:before{content:"\f3b3"}.ivu-icon-md-git-merge:before{content:"\f3b4"}.ivu-icon-md-git-network:before{content:"\f3b5"}.ivu-icon-md-git-pull-request:before{content:"\f3b6"}.ivu-icon-md-glasses:before{content:"\f3b7"}.ivu-icon-md-globe:before{content:"\f3b8"}.ivu-icon-md-grid:before{content:"\f3b9"}.ivu-icon-md-hammer:before{content:"\f3ba"}.ivu-icon-md-hand:before{content:"\f3bb"}.ivu-icon-md-happy:before{content:"\f3bc"}.ivu-icon-md-headset:before{content:"\f3bd"}.ivu-icon-md-heart-outline:before{content:"\f3be"}.ivu-icon-md-heart:before{content:"\f3bf"}.ivu-icon-md-help-buoy:before{content:"\f3c0"}.ivu-icon-md-help-circle:before{content:"\f3c1"}.ivu-icon-md-help:before{content:"\f3c2"}.ivu-icon-md-home:before{content:"\f3c3"}.ivu-icon-md-ice-cream:before{content:"\f3c4"}.ivu-icon-md-image:before{content:"\f3c5"}.ivu-icon-md-images:before{content:"\f3c6"}.ivu-icon-md-infinite:before{content:"\f3c7"}.ivu-icon-md-information-circle:before{content:"\f3c8"}.ivu-icon-md-information:before{content:"\f3c9"}.ivu-icon-md-ionic:before{content:"\f3ca"}.ivu-icon-md-ionitron:before{content:"\f3cb"}.ivu-icon-md-jet:before{content:"\f3cc"}.ivu-icon-md-key:before{content:"\f3cd"}.ivu-icon-md-keypad:before{content:"\f3ce"}.ivu-icon-md-laptop:before{content:"\f3cf"}.ivu-icon-md-leaf:before{content:"\f3d0"}.ivu-icon-md-link:before{content:"\f3d1"}.ivu-icon-md-list-box:before{content:"\f3d2"}.ivu-icon-md-list:before{content:"\f3d3"}.ivu-icon-md-locate:before{content:"\f3d4"}.ivu-icon-md-lock:before{content:"\f3d5"}.ivu-icon-md-log-in:before{content:"\f3d6"}.ivu-icon-md-log-out:before{content:"\f3d7"}.ivu-icon-md-magnet:before{content:"\f3d8"}.ivu-icon-md-mail-open:before{content:"\f3d9"}.ivu-icon-md-mail:before{content:"\f3da"}.ivu-icon-md-male:before{content:"\f3db"}.ivu-icon-md-man:before{content:"\f3dc"}.ivu-icon-md-map:before{content:"\f3dd"}.ivu-icon-md-medal:before{content:"\f3de"}.ivu-icon-md-medical:before{content:"\f3df"}.ivu-icon-md-medkit:before{content:"\f3e0"}.ivu-icon-md-megaphone:before{content:"\f3e1"}.ivu-icon-md-menu:before{content:"\f3e2"}.ivu-icon-md-mic-off:before{content:"\f3e3"}.ivu-icon-md-mic:before{content:"\f3e4"}.ivu-icon-md-microphone:before{content:"\f3e5"}.ivu-icon-md-moon:before{content:"\f3e6"}.ivu-icon-md-more:before{content:"\f3e7"}.ivu-icon-md-move:before{content:"\f3e8"}.ivu-icon-md-musical-note:before{content:"\f3e9"}.ivu-icon-md-musical-notes:before{content:"\f3ea"}.ivu-icon-md-navigate:before{content:"\f3eb"}.ivu-icon-md-no-smoking:before{content:"\f3ec"}.ivu-icon-md-notifications-off:before{content:"\f3ed"}.ivu-icon-md-notifications-outline:before{content:"\f3ee"}.ivu-icon-md-notifications:before{content:"\f3ef"}.ivu-icon-md-nuclear:before{content:"\f3f0"}.ivu-icon-md-nutrition:before{content:"\f3f1"}.ivu-icon-md-open:before{content:"\f3f2"}.ivu-icon-md-options:before{content:"\f3f3"}.ivu-icon-md-outlet:before{content:"\f3f4"}.ivu-icon-md-paper-plane:before{content:"\f3f5"}.ivu-icon-md-paper:before{content:"\f3f6"}.ivu-icon-md-partly-sunny:before{content:"\f3f7"}.ivu-icon-md-pause:before{content:"\f3f8"}.ivu-icon-md-paw:before{content:"\f3f9"}.ivu-icon-md-people:before{content:"\f3fa"}.ivu-icon-md-person-add:before{content:"\f3fb"}.ivu-icon-md-person:before{content:"\f3fc"}.ivu-icon-md-phone-landscape:before{content:"\f3fd"}.ivu-icon-md-phone-portrait:before{content:"\f3fe"}.ivu-icon-md-photos:before{content:"\f3ff"}.ivu-icon-md-pie:before{content:"\f400"}.ivu-icon-md-pin:before{content:"\f401"}.ivu-icon-md-pint:before{content:"\f402"}.ivu-icon-md-pizza:before{content:"\f403"}.ivu-icon-md-plane:before{content:"\f404"}.ivu-icon-md-planet:before{content:"\f405"}.ivu-icon-md-play:before{content:"\f406"}.ivu-icon-md-podium:before{content:"\f407"}.ivu-icon-md-power:before{content:"\f408"}.ivu-icon-md-pricetag:before{content:"\f409"}.ivu-icon-md-pricetags:before{content:"\f40a"}.ivu-icon-md-print:before{content:"\f40b"}.ivu-icon-md-pulse:before{content:"\f40c"}.ivu-icon-md-qr-scanner:before{content:"\f40d"}.ivu-icon-md-quote:before{content:"\f40e"}.ivu-icon-md-radio-button-off:before{content:"\f40f"}.ivu-icon-md-radio-button-on:before{content:"\f410"}.ivu-icon-md-radio:before{content:"\f411"}.ivu-icon-md-rainy:before{content:"\f412"}.ivu-icon-md-recording:before{content:"\f413"}.ivu-icon-md-redo:before{content:"\f414"}.ivu-icon-md-refresh-circle:before{content:"\f415"}.ivu-icon-md-refresh:before{content:"\f416"}.ivu-icon-md-remove-circle:before{content:"\f417"}.ivu-icon-md-remove:before{content:"\f418"}.ivu-icon-md-reorder:before{content:"\f419"}.ivu-icon-md-repeat:before{content:"\f41a"}.ivu-icon-md-resize:before{content:"\f41b"}.ivu-icon-md-restaurant:before{content:"\f41c"}.ivu-icon-md-return-left:before{content:"\f41d"}.ivu-icon-md-return-right:before{content:"\f41e"}.ivu-icon-md-reverse-camera:before{content:"\f41f"}.ivu-icon-md-rewind:before{content:"\f420"}.ivu-icon-md-ribbon:before{content:"\f421"}.ivu-icon-md-rose:before{content:"\f422"}.ivu-icon-md-sad:before{content:"\f423"}.ivu-icon-md-school:before{content:"\f424"}.ivu-icon-md-search:before{content:"\f425"}.ivu-icon-md-send:before{content:"\f426"}.ivu-icon-md-settings:before{content:"\f427"}.ivu-icon-md-share-alt:before{content:"\f428"}.ivu-icon-md-share:before{content:"\f429"}.ivu-icon-md-shirt:before{content:"\f42a"}.ivu-icon-md-shuffle:before{content:"\f42b"}.ivu-icon-md-skip-backward:before{content:"\f42c"}.ivu-icon-md-skip-forward:before{content:"\f42d"}.ivu-icon-md-snow:before{content:"\f42e"}.ivu-icon-md-speedometer:before{content:"\f42f"}.ivu-icon-md-square-outline:before{content:"\f430"}.ivu-icon-md-square:before{content:"\f431"}.ivu-icon-md-star-half:before{content:"\f432"}.ivu-icon-md-star-outline:before{content:"\f433"}.ivu-icon-md-star:before{content:"\f434"}.ivu-icon-md-stats:before{content:"\f435"}.ivu-icon-md-stopwatch:before{content:"\f436"}.ivu-icon-md-subway:before{content:"\f437"}.ivu-icon-md-sunny:before{content:"\f438"}.ivu-icon-md-swap:before{content:"\f439"}.ivu-icon-md-switch:before{content:"\f43a"}.ivu-icon-md-sync:before{content:"\f43b"}.ivu-icon-md-tablet-landscape:before{content:"\f43c"}.ivu-icon-md-tablet-portrait:before{content:"\f43d"}.ivu-icon-md-tennisball:before{content:"\f43e"}.ivu-icon-md-text:before{content:"\f43f"}.ivu-icon-md-thermometer:before{content:"\f440"}.ivu-icon-md-thumbs-down:before{content:"\f441"}.ivu-icon-md-thumbs-up:before{content:"\f442"}.ivu-icon-md-thunderstorm:before{content:"\f443"}.ivu-icon-md-time:before{content:"\f444"}.ivu-icon-md-timer:before{content:"\f445"}.ivu-icon-md-train:before{content:"\f446"}.ivu-icon-md-transgender:before{content:"\f447"}.ivu-icon-md-trash:before{content:"\f448"}.ivu-icon-md-trending-down:before{content:"\f449"}.ivu-icon-md-trending-up:before{content:"\f44a"}.ivu-icon-md-trophy:before{content:"\f44b"}.ivu-icon-md-umbrella:before{content:"\f44c"}.ivu-icon-md-undo:before{content:"\f44d"}.ivu-icon-md-unlock:before{content:"\f44e"}.ivu-icon-md-videocam:before{content:"\f44f"}.ivu-icon-md-volume-down:before{content:"\f450"}.ivu-icon-md-volume-mute:before{content:"\f451"}.ivu-icon-md-volume-off:before{content:"\f452"}.ivu-icon-md-volume-up:before{content:"\f453"}.ivu-icon-md-walk:before{content:"\f454"}.ivu-icon-md-warning:before{content:"\f455"}.ivu-icon-md-watch:before{content:"\f456"}.ivu-icon-md-water:before{content:"\f457"}.ivu-icon-md-wifi:before{content:"\f458"}.ivu-icon-md-wine:before{content:"\f459"}.ivu-icon-md-woman:before{content:"\f45a"}.ivu-icon-ios-loading:before{content:"\f45b"}.ivu-row{position:relative;margin-left:0;margin-right:0;height:auto;zoom:1;display:block}.ivu-row:after,.ivu-row:before{content:"";display:table}.ivu-row:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-row-flex{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.ivu-row-flex:after,.ivu-row-flex:before{display:-webkit-box;display:-ms-flexbox;display:flex}.ivu-row-flex-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.ivu-row-flex-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ivu-row-flex-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.ivu-row-flex-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.ivu-row-flex-space-around{-ms-flex-pack:distribute;justify-content:space-around}.ivu-row-flex-top{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.ivu-row-flex-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-row-flex-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.ivu-col{position:relative;display:block}.ivu-col-span-1,.ivu-col-span-10,.ivu-col-span-11,.ivu-col-span-12,.ivu-col-span-13,.ivu-col-span-14,.ivu-col-span-15,.ivu-col-span-16,.ivu-col-span-17,.ivu-col-span-18,.ivu-col-span-19,.ivu-col-span-2,.ivu-col-span-20,.ivu-col-span-21,.ivu-col-span-22,.ivu-col-span-23,.ivu-col-span-24,.ivu-col-span-3,.ivu-col-span-4,.ivu-col-span-5,.ivu-col-span-6,.ivu-col-span-7,.ivu-col-span-8,.ivu-col-span-9{float:left;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-col-span-24{display:block;width:100%}.ivu-col-push-24{left:100%}.ivu-col-pull-24{right:100%}.ivu-col-offset-24{margin-left:100%}.ivu-col-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-23{display:block;width:95.83333333%}.ivu-col-push-23{left:95.83333333%}.ivu-col-pull-23{right:95.83333333%}.ivu-col-offset-23{margin-left:95.83333333%}.ivu-col-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-22{display:block;width:91.66666667%}.ivu-col-push-22{left:91.66666667%}.ivu-col-pull-22{right:91.66666667%}.ivu-col-offset-22{margin-left:91.66666667%}.ivu-col-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-21{display:block;width:87.5%}.ivu-col-push-21{left:87.5%}.ivu-col-pull-21{right:87.5%}.ivu-col-offset-21{margin-left:87.5%}.ivu-col-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-20{display:block;width:83.33333333%}.ivu-col-push-20{left:83.33333333%}.ivu-col-pull-20{right:83.33333333%}.ivu-col-offset-20{margin-left:83.33333333%}.ivu-col-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-19{display:block;width:79.16666667%}.ivu-col-push-19{left:79.16666667%}.ivu-col-pull-19{right:79.16666667%}.ivu-col-offset-19{margin-left:79.16666667%}.ivu-col-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-18{display:block;width:75%}.ivu-col-push-18{left:75%}.ivu-col-pull-18{right:75%}.ivu-col-offset-18{margin-left:75%}.ivu-col-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-17{display:block;width:70.83333333%}.ivu-col-push-17{left:70.83333333%}.ivu-col-pull-17{right:70.83333333%}.ivu-col-offset-17{margin-left:70.83333333%}.ivu-col-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-16{display:block;width:66.66666667%}.ivu-col-push-16{left:66.66666667%}.ivu-col-pull-16{right:66.66666667%}.ivu-col-offset-16{margin-left:66.66666667%}.ivu-col-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-15{display:block;width:62.5%}.ivu-col-push-15{left:62.5%}.ivu-col-pull-15{right:62.5%}.ivu-col-offset-15{margin-left:62.5%}.ivu-col-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-14{display:block;width:58.33333333%}.ivu-col-push-14{left:58.33333333%}.ivu-col-pull-14{right:58.33333333%}.ivu-col-offset-14{margin-left:58.33333333%}.ivu-col-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-13{display:block;width:54.16666667%}.ivu-col-push-13{left:54.16666667%}.ivu-col-pull-13{right:54.16666667%}.ivu-col-offset-13{margin-left:54.16666667%}.ivu-col-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-12{display:block;width:50%}.ivu-col-push-12{left:50%}.ivu-col-pull-12{right:50%}.ivu-col-offset-12{margin-left:50%}.ivu-col-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-11{display:block;width:45.83333333%}.ivu-col-push-11{left:45.83333333%}.ivu-col-pull-11{right:45.83333333%}.ivu-col-offset-11{margin-left:45.83333333%}.ivu-col-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-10{display:block;width:41.66666667%}.ivu-col-push-10{left:41.66666667%}.ivu-col-pull-10{right:41.66666667%}.ivu-col-offset-10{margin-left:41.66666667%}.ivu-col-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-9{display:block;width:37.5%}.ivu-col-push-9{left:37.5%}.ivu-col-pull-9{right:37.5%}.ivu-col-offset-9{margin-left:37.5%}.ivu-col-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-8{display:block;width:33.33333333%}.ivu-col-push-8{left:33.33333333%}.ivu-col-pull-8{right:33.33333333%}.ivu-col-offset-8{margin-left:33.33333333%}.ivu-col-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-7{display:block;width:29.16666667%}.ivu-col-push-7{left:29.16666667%}.ivu-col-pull-7{right:29.16666667%}.ivu-col-offset-7{margin-left:29.16666667%}.ivu-col-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-6{display:block;width:25%}.ivu-col-push-6{left:25%}.ivu-col-pull-6{right:25%}.ivu-col-offset-6{margin-left:25%}.ivu-col-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-5{display:block;width:20.83333333%}.ivu-col-push-5{left:20.83333333%}.ivu-col-pull-5{right:20.83333333%}.ivu-col-offset-5{margin-left:20.83333333%}.ivu-col-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-4{display:block;width:16.66666667%}.ivu-col-push-4{left:16.66666667%}.ivu-col-pull-4{right:16.66666667%}.ivu-col-offset-4{margin-left:16.66666667%}.ivu-col-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-3{display:block;width:12.5%}.ivu-col-push-3{left:12.5%}.ivu-col-pull-3{right:12.5%}.ivu-col-offset-3{margin-left:12.5%}.ivu-col-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-2{display:block;width:8.33333333%}.ivu-col-push-2{left:8.33333333%}.ivu-col-pull-2{right:8.33333333%}.ivu-col-offset-2{margin-left:8.33333333%}.ivu-col-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-1{display:block;width:4.16666667%}.ivu-col-push-1{left:4.16666667%}.ivu-col-pull-1{right:4.16666667%}.ivu-col-offset-1{margin-left:4.16666667%}.ivu-col-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-0{display:none}.ivu-col-push-0{left:auto}.ivu-col-pull-0{right:auto}.ivu-col-offset-0{margin-left:0}.ivu-col-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.ivu-col-span-xs-1,.ivu-col-span-xs-10,.ivu-col-span-xs-11,.ivu-col-span-xs-12,.ivu-col-span-xs-13,.ivu-col-span-xs-14,.ivu-col-span-xs-15,.ivu-col-span-xs-16,.ivu-col-span-xs-17,.ivu-col-span-xs-18,.ivu-col-span-xs-19,.ivu-col-span-xs-2,.ivu-col-span-xs-20,.ivu-col-span-xs-21,.ivu-col-span-xs-22,.ivu-col-span-xs-23,.ivu-col-span-xs-24,.ivu-col-span-xs-3,.ivu-col-span-xs-4,.ivu-col-span-xs-5,.ivu-col-span-xs-6,.ivu-col-span-xs-7,.ivu-col-span-xs-8,.ivu-col-span-xs-9{float:left;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-col-span-xs-24{display:block;width:100%}.ivu-col-xs-push-24{left:100%}.ivu-col-xs-pull-24{right:100%}.ivu-col-xs-offset-24{margin-left:100%}.ivu-col-xs-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-xs-23{display:block;width:95.83333333%}.ivu-col-xs-push-23{left:95.83333333%}.ivu-col-xs-pull-23{right:95.83333333%}.ivu-col-xs-offset-23{margin-left:95.83333333%}.ivu-col-xs-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-xs-22{display:block;width:91.66666667%}.ivu-col-xs-push-22{left:91.66666667%}.ivu-col-xs-pull-22{right:91.66666667%}.ivu-col-xs-offset-22{margin-left:91.66666667%}.ivu-col-xs-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-xs-21{display:block;width:87.5%}.ivu-col-xs-push-21{left:87.5%}.ivu-col-xs-pull-21{right:87.5%}.ivu-col-xs-offset-21{margin-left:87.5%}.ivu-col-xs-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-xs-20{display:block;width:83.33333333%}.ivu-col-xs-push-20{left:83.33333333%}.ivu-col-xs-pull-20{right:83.33333333%}.ivu-col-xs-offset-20{margin-left:83.33333333%}.ivu-col-xs-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-xs-19{display:block;width:79.16666667%}.ivu-col-xs-push-19{left:79.16666667%}.ivu-col-xs-pull-19{right:79.16666667%}.ivu-col-xs-offset-19{margin-left:79.16666667%}.ivu-col-xs-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-xs-18{display:block;width:75%}.ivu-col-xs-push-18{left:75%}.ivu-col-xs-pull-18{right:75%}.ivu-col-xs-offset-18{margin-left:75%}.ivu-col-xs-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-xs-17{display:block;width:70.83333333%}.ivu-col-xs-push-17{left:70.83333333%}.ivu-col-xs-pull-17{right:70.83333333%}.ivu-col-xs-offset-17{margin-left:70.83333333%}.ivu-col-xs-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-xs-16{display:block;width:66.66666667%}.ivu-col-xs-push-16{left:66.66666667%}.ivu-col-xs-pull-16{right:66.66666667%}.ivu-col-xs-offset-16{margin-left:66.66666667%}.ivu-col-xs-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-xs-15{display:block;width:62.5%}.ivu-col-xs-push-15{left:62.5%}.ivu-col-xs-pull-15{right:62.5%}.ivu-col-xs-offset-15{margin-left:62.5%}.ivu-col-xs-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-xs-14{display:block;width:58.33333333%}.ivu-col-xs-push-14{left:58.33333333%}.ivu-col-xs-pull-14{right:58.33333333%}.ivu-col-xs-offset-14{margin-left:58.33333333%}.ivu-col-xs-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-xs-13{display:block;width:54.16666667%}.ivu-col-xs-push-13{left:54.16666667%}.ivu-col-xs-pull-13{right:54.16666667%}.ivu-col-xs-offset-13{margin-left:54.16666667%}.ivu-col-xs-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-xs-12{display:block;width:50%}.ivu-col-xs-push-12{left:50%}.ivu-col-xs-pull-12{right:50%}.ivu-col-xs-offset-12{margin-left:50%}.ivu-col-xs-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-xs-11{display:block;width:45.83333333%}.ivu-col-xs-push-11{left:45.83333333%}.ivu-col-xs-pull-11{right:45.83333333%}.ivu-col-xs-offset-11{margin-left:45.83333333%}.ivu-col-xs-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-xs-10{display:block;width:41.66666667%}.ivu-col-xs-push-10{left:41.66666667%}.ivu-col-xs-pull-10{right:41.66666667%}.ivu-col-xs-offset-10{margin-left:41.66666667%}.ivu-col-xs-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-xs-9{display:block;width:37.5%}.ivu-col-xs-push-9{left:37.5%}.ivu-col-xs-pull-9{right:37.5%}.ivu-col-xs-offset-9{margin-left:37.5%}.ivu-col-xs-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-xs-8{display:block;width:33.33333333%}.ivu-col-xs-push-8{left:33.33333333%}.ivu-col-xs-pull-8{right:33.33333333%}.ivu-col-xs-offset-8{margin-left:33.33333333%}.ivu-col-xs-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-xs-7{display:block;width:29.16666667%}.ivu-col-xs-push-7{left:29.16666667%}.ivu-col-xs-pull-7{right:29.16666667%}.ivu-col-xs-offset-7{margin-left:29.16666667%}.ivu-col-xs-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-xs-6{display:block;width:25%}.ivu-col-xs-push-6{left:25%}.ivu-col-xs-pull-6{right:25%}.ivu-col-xs-offset-6{margin-left:25%}.ivu-col-xs-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-xs-5{display:block;width:20.83333333%}.ivu-col-xs-push-5{left:20.83333333%}.ivu-col-xs-pull-5{right:20.83333333%}.ivu-col-xs-offset-5{margin-left:20.83333333%}.ivu-col-xs-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-xs-4{display:block;width:16.66666667%}.ivu-col-xs-push-4{left:16.66666667%}.ivu-col-xs-pull-4{right:16.66666667%}.ivu-col-xs-offset-4{margin-left:16.66666667%}.ivu-col-xs-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-xs-3{display:block;width:12.5%}.ivu-col-xs-push-3{left:12.5%}.ivu-col-xs-pull-3{right:12.5%}.ivu-col-xs-offset-3{margin-left:12.5%}.ivu-col-xs-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-xs-2{display:block;width:8.33333333%}.ivu-col-xs-push-2{left:8.33333333%}.ivu-col-xs-pull-2{right:8.33333333%}.ivu-col-xs-offset-2{margin-left:8.33333333%}.ivu-col-xs-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-xs-1{display:block;width:4.16666667%}.ivu-col-xs-push-1{left:4.16666667%}.ivu-col-xs-pull-1{right:4.16666667%}.ivu-col-xs-offset-1{margin-left:4.16666667%}.ivu-col-xs-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-xs-0{display:none}.ivu-col-xs-push-0{left:auto}.ivu-col-xs-pull-0{right:auto}.ivu-col-xs-offset-0{margin-left:0}.ivu-col-xs-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}@media (min-width:576px){.ivu-col-span-sm-1,.ivu-col-span-sm-10,.ivu-col-span-sm-11,.ivu-col-span-sm-12,.ivu-col-span-sm-13,.ivu-col-span-sm-14,.ivu-col-span-sm-15,.ivu-col-span-sm-16,.ivu-col-span-sm-17,.ivu-col-span-sm-18,.ivu-col-span-sm-19,.ivu-col-span-sm-2,.ivu-col-span-sm-20,.ivu-col-span-sm-21,.ivu-col-span-sm-22,.ivu-col-span-sm-23,.ivu-col-span-sm-24,.ivu-col-span-sm-3,.ivu-col-span-sm-4,.ivu-col-span-sm-5,.ivu-col-span-sm-6,.ivu-col-span-sm-7,.ivu-col-span-sm-8,.ivu-col-span-sm-9{float:left;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-col-span-sm-24{display:block;width:100%}.ivu-col-sm-push-24{left:100%}.ivu-col-sm-pull-24{right:100%}.ivu-col-sm-offset-24{margin-left:100%}.ivu-col-sm-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-sm-23{display:block;width:95.83333333%}.ivu-col-sm-push-23{left:95.83333333%}.ivu-col-sm-pull-23{right:95.83333333%}.ivu-col-sm-offset-23{margin-left:95.83333333%}.ivu-col-sm-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-sm-22{display:block;width:91.66666667%}.ivu-col-sm-push-22{left:91.66666667%}.ivu-col-sm-pull-22{right:91.66666667%}.ivu-col-sm-offset-22{margin-left:91.66666667%}.ivu-col-sm-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-sm-21{display:block;width:87.5%}.ivu-col-sm-push-21{left:87.5%}.ivu-col-sm-pull-21{right:87.5%}.ivu-col-sm-offset-21{margin-left:87.5%}.ivu-col-sm-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-sm-20{display:block;width:83.33333333%}.ivu-col-sm-push-20{left:83.33333333%}.ivu-col-sm-pull-20{right:83.33333333%}.ivu-col-sm-offset-20{margin-left:83.33333333%}.ivu-col-sm-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-sm-19{display:block;width:79.16666667%}.ivu-col-sm-push-19{left:79.16666667%}.ivu-col-sm-pull-19{right:79.16666667%}.ivu-col-sm-offset-19{margin-left:79.16666667%}.ivu-col-sm-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-sm-18{display:block;width:75%}.ivu-col-sm-push-18{left:75%}.ivu-col-sm-pull-18{right:75%}.ivu-col-sm-offset-18{margin-left:75%}.ivu-col-sm-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-sm-17{display:block;width:70.83333333%}.ivu-col-sm-push-17{left:70.83333333%}.ivu-col-sm-pull-17{right:70.83333333%}.ivu-col-sm-offset-17{margin-left:70.83333333%}.ivu-col-sm-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-sm-16{display:block;width:66.66666667%}.ivu-col-sm-push-16{left:66.66666667%}.ivu-col-sm-pull-16{right:66.66666667%}.ivu-col-sm-offset-16{margin-left:66.66666667%}.ivu-col-sm-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-sm-15{display:block;width:62.5%}.ivu-col-sm-push-15{left:62.5%}.ivu-col-sm-pull-15{right:62.5%}.ivu-col-sm-offset-15{margin-left:62.5%}.ivu-col-sm-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-sm-14{display:block;width:58.33333333%}.ivu-col-sm-push-14{left:58.33333333%}.ivu-col-sm-pull-14{right:58.33333333%}.ivu-col-sm-offset-14{margin-left:58.33333333%}.ivu-col-sm-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-sm-13{display:block;width:54.16666667%}.ivu-col-sm-push-13{left:54.16666667%}.ivu-col-sm-pull-13{right:54.16666667%}.ivu-col-sm-offset-13{margin-left:54.16666667%}.ivu-col-sm-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-sm-12{display:block;width:50%}.ivu-col-sm-push-12{left:50%}.ivu-col-sm-pull-12{right:50%}.ivu-col-sm-offset-12{margin-left:50%}.ivu-col-sm-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-sm-11{display:block;width:45.83333333%}.ivu-col-sm-push-11{left:45.83333333%}.ivu-col-sm-pull-11{right:45.83333333%}.ivu-col-sm-offset-11{margin-left:45.83333333%}.ivu-col-sm-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-sm-10{display:block;width:41.66666667%}.ivu-col-sm-push-10{left:41.66666667%}.ivu-col-sm-pull-10{right:41.66666667%}.ivu-col-sm-offset-10{margin-left:41.66666667%}.ivu-col-sm-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-sm-9{display:block;width:37.5%}.ivu-col-sm-push-9{left:37.5%}.ivu-col-sm-pull-9{right:37.5%}.ivu-col-sm-offset-9{margin-left:37.5%}.ivu-col-sm-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-sm-8{display:block;width:33.33333333%}.ivu-col-sm-push-8{left:33.33333333%}.ivu-col-sm-pull-8{right:33.33333333%}.ivu-col-sm-offset-8{margin-left:33.33333333%}.ivu-col-sm-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-sm-7{display:block;width:29.16666667%}.ivu-col-sm-push-7{left:29.16666667%}.ivu-col-sm-pull-7{right:29.16666667%}.ivu-col-sm-offset-7{margin-left:29.16666667%}.ivu-col-sm-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-sm-6{display:block;width:25%}.ivu-col-sm-push-6{left:25%}.ivu-col-sm-pull-6{right:25%}.ivu-col-sm-offset-6{margin-left:25%}.ivu-col-sm-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-sm-5{display:block;width:20.83333333%}.ivu-col-sm-push-5{left:20.83333333%}.ivu-col-sm-pull-5{right:20.83333333%}.ivu-col-sm-offset-5{margin-left:20.83333333%}.ivu-col-sm-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-sm-4{display:block;width:16.66666667%}.ivu-col-sm-push-4{left:16.66666667%}.ivu-col-sm-pull-4{right:16.66666667%}.ivu-col-sm-offset-4{margin-left:16.66666667%}.ivu-col-sm-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-sm-3{display:block;width:12.5%}.ivu-col-sm-push-3{left:12.5%}.ivu-col-sm-pull-3{right:12.5%}.ivu-col-sm-offset-3{margin-left:12.5%}.ivu-col-sm-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-sm-2{display:block;width:8.33333333%}.ivu-col-sm-push-2{left:8.33333333%}.ivu-col-sm-pull-2{right:8.33333333%}.ivu-col-sm-offset-2{margin-left:8.33333333%}.ivu-col-sm-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-sm-1{display:block;width:4.16666667%}.ivu-col-sm-push-1{left:4.16666667%}.ivu-col-sm-pull-1{right:4.16666667%}.ivu-col-sm-offset-1{margin-left:4.16666667%}.ivu-col-sm-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-sm-0{display:none}.ivu-col-sm-push-0{left:auto}.ivu-col-sm-pull-0{right:auto}.ivu-col-sm-offset-0{margin-left:0}.ivu-col-sm-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:768px){.ivu-col-span-md-1,.ivu-col-span-md-10,.ivu-col-span-md-11,.ivu-col-span-md-12,.ivu-col-span-md-13,.ivu-col-span-md-14,.ivu-col-span-md-15,.ivu-col-span-md-16,.ivu-col-span-md-17,.ivu-col-span-md-18,.ivu-col-span-md-19,.ivu-col-span-md-2,.ivu-col-span-md-20,.ivu-col-span-md-21,.ivu-col-span-md-22,.ivu-col-span-md-23,.ivu-col-span-md-24,.ivu-col-span-md-3,.ivu-col-span-md-4,.ivu-col-span-md-5,.ivu-col-span-md-6,.ivu-col-span-md-7,.ivu-col-span-md-8,.ivu-col-span-md-9{float:left;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-col-span-md-24{display:block;width:100%}.ivu-col-md-push-24{left:100%}.ivu-col-md-pull-24{right:100%}.ivu-col-md-offset-24{margin-left:100%}.ivu-col-md-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-md-23{display:block;width:95.83333333%}.ivu-col-md-push-23{left:95.83333333%}.ivu-col-md-pull-23{right:95.83333333%}.ivu-col-md-offset-23{margin-left:95.83333333%}.ivu-col-md-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-md-22{display:block;width:91.66666667%}.ivu-col-md-push-22{left:91.66666667%}.ivu-col-md-pull-22{right:91.66666667%}.ivu-col-md-offset-22{margin-left:91.66666667%}.ivu-col-md-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-md-21{display:block;width:87.5%}.ivu-col-md-push-21{left:87.5%}.ivu-col-md-pull-21{right:87.5%}.ivu-col-md-offset-21{margin-left:87.5%}.ivu-col-md-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-md-20{display:block;width:83.33333333%}.ivu-col-md-push-20{left:83.33333333%}.ivu-col-md-pull-20{right:83.33333333%}.ivu-col-md-offset-20{margin-left:83.33333333%}.ivu-col-md-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-md-19{display:block;width:79.16666667%}.ivu-col-md-push-19{left:79.16666667%}.ivu-col-md-pull-19{right:79.16666667%}.ivu-col-md-offset-19{margin-left:79.16666667%}.ivu-col-md-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-md-18{display:block;width:75%}.ivu-col-md-push-18{left:75%}.ivu-col-md-pull-18{right:75%}.ivu-col-md-offset-18{margin-left:75%}.ivu-col-md-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-md-17{display:block;width:70.83333333%}.ivu-col-md-push-17{left:70.83333333%}.ivu-col-md-pull-17{right:70.83333333%}.ivu-col-md-offset-17{margin-left:70.83333333%}.ivu-col-md-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-md-16{display:block;width:66.66666667%}.ivu-col-md-push-16{left:66.66666667%}.ivu-col-md-pull-16{right:66.66666667%}.ivu-col-md-offset-16{margin-left:66.66666667%}.ivu-col-md-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-md-15{display:block;width:62.5%}.ivu-col-md-push-15{left:62.5%}.ivu-col-md-pull-15{right:62.5%}.ivu-col-md-offset-15{margin-left:62.5%}.ivu-col-md-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-md-14{display:block;width:58.33333333%}.ivu-col-md-push-14{left:58.33333333%}.ivu-col-md-pull-14{right:58.33333333%}.ivu-col-md-offset-14{margin-left:58.33333333%}.ivu-col-md-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-md-13{display:block;width:54.16666667%}.ivu-col-md-push-13{left:54.16666667%}.ivu-col-md-pull-13{right:54.16666667%}.ivu-col-md-offset-13{margin-left:54.16666667%}.ivu-col-md-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-md-12{display:block;width:50%}.ivu-col-md-push-12{left:50%}.ivu-col-md-pull-12{right:50%}.ivu-col-md-offset-12{margin-left:50%}.ivu-col-md-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-md-11{display:block;width:45.83333333%}.ivu-col-md-push-11{left:45.83333333%}.ivu-col-md-pull-11{right:45.83333333%}.ivu-col-md-offset-11{margin-left:45.83333333%}.ivu-col-md-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-md-10{display:block;width:41.66666667%}.ivu-col-md-push-10{left:41.66666667%}.ivu-col-md-pull-10{right:41.66666667%}.ivu-col-md-offset-10{margin-left:41.66666667%}.ivu-col-md-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-md-9{display:block;width:37.5%}.ivu-col-md-push-9{left:37.5%}.ivu-col-md-pull-9{right:37.5%}.ivu-col-md-offset-9{margin-left:37.5%}.ivu-col-md-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-md-8{display:block;width:33.33333333%}.ivu-col-md-push-8{left:33.33333333%}.ivu-col-md-pull-8{right:33.33333333%}.ivu-col-md-offset-8{margin-left:33.33333333%}.ivu-col-md-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-md-7{display:block;width:29.16666667%}.ivu-col-md-push-7{left:29.16666667%}.ivu-col-md-pull-7{right:29.16666667%}.ivu-col-md-offset-7{margin-left:29.16666667%}.ivu-col-md-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-md-6{display:block;width:25%}.ivu-col-md-push-6{left:25%}.ivu-col-md-pull-6{right:25%}.ivu-col-md-offset-6{margin-left:25%}.ivu-col-md-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-md-5{display:block;width:20.83333333%}.ivu-col-md-push-5{left:20.83333333%}.ivu-col-md-pull-5{right:20.83333333%}.ivu-col-md-offset-5{margin-left:20.83333333%}.ivu-col-md-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-md-4{display:block;width:16.66666667%}.ivu-col-md-push-4{left:16.66666667%}.ivu-col-md-pull-4{right:16.66666667%}.ivu-col-md-offset-4{margin-left:16.66666667%}.ivu-col-md-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-md-3{display:block;width:12.5%}.ivu-col-md-push-3{left:12.5%}.ivu-col-md-pull-3{right:12.5%}.ivu-col-md-offset-3{margin-left:12.5%}.ivu-col-md-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-md-2{display:block;width:8.33333333%}.ivu-col-md-push-2{left:8.33333333%}.ivu-col-md-pull-2{right:8.33333333%}.ivu-col-md-offset-2{margin-left:8.33333333%}.ivu-col-md-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-md-1{display:block;width:4.16666667%}.ivu-col-md-push-1{left:4.16666667%}.ivu-col-md-pull-1{right:4.16666667%}.ivu-col-md-offset-1{margin-left:4.16666667%}.ivu-col-md-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-md-0{display:none}.ivu-col-md-push-0{left:auto}.ivu-col-md-pull-0{right:auto}.ivu-col-md-offset-0{margin-left:0}.ivu-col-md-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:992px){.ivu-col-span-lg-1,.ivu-col-span-lg-10,.ivu-col-span-lg-11,.ivu-col-span-lg-12,.ivu-col-span-lg-13,.ivu-col-span-lg-14,.ivu-col-span-lg-15,.ivu-col-span-lg-16,.ivu-col-span-lg-17,.ivu-col-span-lg-18,.ivu-col-span-lg-19,.ivu-col-span-lg-2,.ivu-col-span-lg-20,.ivu-col-span-lg-21,.ivu-col-span-lg-22,.ivu-col-span-lg-23,.ivu-col-span-lg-24,.ivu-col-span-lg-3,.ivu-col-span-lg-4,.ivu-col-span-lg-5,.ivu-col-span-lg-6,.ivu-col-span-lg-7,.ivu-col-span-lg-8,.ivu-col-span-lg-9{float:left;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-col-span-lg-24{display:block;width:100%}.ivu-col-lg-push-24{left:100%}.ivu-col-lg-pull-24{right:100%}.ivu-col-lg-offset-24{margin-left:100%}.ivu-col-lg-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-lg-23{display:block;width:95.83333333%}.ivu-col-lg-push-23{left:95.83333333%}.ivu-col-lg-pull-23{right:95.83333333%}.ivu-col-lg-offset-23{margin-left:95.83333333%}.ivu-col-lg-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-lg-22{display:block;width:91.66666667%}.ivu-col-lg-push-22{left:91.66666667%}.ivu-col-lg-pull-22{right:91.66666667%}.ivu-col-lg-offset-22{margin-left:91.66666667%}.ivu-col-lg-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-lg-21{display:block;width:87.5%}.ivu-col-lg-push-21{left:87.5%}.ivu-col-lg-pull-21{right:87.5%}.ivu-col-lg-offset-21{margin-left:87.5%}.ivu-col-lg-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-lg-20{display:block;width:83.33333333%}.ivu-col-lg-push-20{left:83.33333333%}.ivu-col-lg-pull-20{right:83.33333333%}.ivu-col-lg-offset-20{margin-left:83.33333333%}.ivu-col-lg-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-lg-19{display:block;width:79.16666667%}.ivu-col-lg-push-19{left:79.16666667%}.ivu-col-lg-pull-19{right:79.16666667%}.ivu-col-lg-offset-19{margin-left:79.16666667%}.ivu-col-lg-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-lg-18{display:block;width:75%}.ivu-col-lg-push-18{left:75%}.ivu-col-lg-pull-18{right:75%}.ivu-col-lg-offset-18{margin-left:75%}.ivu-col-lg-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-lg-17{display:block;width:70.83333333%}.ivu-col-lg-push-17{left:70.83333333%}.ivu-col-lg-pull-17{right:70.83333333%}.ivu-col-lg-offset-17{margin-left:70.83333333%}.ivu-col-lg-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-lg-16{display:block;width:66.66666667%}.ivu-col-lg-push-16{left:66.66666667%}.ivu-col-lg-pull-16{right:66.66666667%}.ivu-col-lg-offset-16{margin-left:66.66666667%}.ivu-col-lg-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-lg-15{display:block;width:62.5%}.ivu-col-lg-push-15{left:62.5%}.ivu-col-lg-pull-15{right:62.5%}.ivu-col-lg-offset-15{margin-left:62.5%}.ivu-col-lg-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-lg-14{display:block;width:58.33333333%}.ivu-col-lg-push-14{left:58.33333333%}.ivu-col-lg-pull-14{right:58.33333333%}.ivu-col-lg-offset-14{margin-left:58.33333333%}.ivu-col-lg-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-lg-13{display:block;width:54.16666667%}.ivu-col-lg-push-13{left:54.16666667%}.ivu-col-lg-pull-13{right:54.16666667%}.ivu-col-lg-offset-13{margin-left:54.16666667%}.ivu-col-lg-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-lg-12{display:block;width:50%}.ivu-col-lg-push-12{left:50%}.ivu-col-lg-pull-12{right:50%}.ivu-col-lg-offset-12{margin-left:50%}.ivu-col-lg-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-lg-11{display:block;width:45.83333333%}.ivu-col-lg-push-11{left:45.83333333%}.ivu-col-lg-pull-11{right:45.83333333%}.ivu-col-lg-offset-11{margin-left:45.83333333%}.ivu-col-lg-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-lg-10{display:block;width:41.66666667%}.ivu-col-lg-push-10{left:41.66666667%}.ivu-col-lg-pull-10{right:41.66666667%}.ivu-col-lg-offset-10{margin-left:41.66666667%}.ivu-col-lg-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-lg-9{display:block;width:37.5%}.ivu-col-lg-push-9{left:37.5%}.ivu-col-lg-pull-9{right:37.5%}.ivu-col-lg-offset-9{margin-left:37.5%}.ivu-col-lg-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-lg-8{display:block;width:33.33333333%}.ivu-col-lg-push-8{left:33.33333333%}.ivu-col-lg-pull-8{right:33.33333333%}.ivu-col-lg-offset-8{margin-left:33.33333333%}.ivu-col-lg-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-lg-7{display:block;width:29.16666667%}.ivu-col-lg-push-7{left:29.16666667%}.ivu-col-lg-pull-7{right:29.16666667%}.ivu-col-lg-offset-7{margin-left:29.16666667%}.ivu-col-lg-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-lg-6{display:block;width:25%}.ivu-col-lg-push-6{left:25%}.ivu-col-lg-pull-6{right:25%}.ivu-col-lg-offset-6{margin-left:25%}.ivu-col-lg-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-lg-5{display:block;width:20.83333333%}.ivu-col-lg-push-5{left:20.83333333%}.ivu-col-lg-pull-5{right:20.83333333%}.ivu-col-lg-offset-5{margin-left:20.83333333%}.ivu-col-lg-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-lg-4{display:block;width:16.66666667%}.ivu-col-lg-push-4{left:16.66666667%}.ivu-col-lg-pull-4{right:16.66666667%}.ivu-col-lg-offset-4{margin-left:16.66666667%}.ivu-col-lg-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-lg-3{display:block;width:12.5%}.ivu-col-lg-push-3{left:12.5%}.ivu-col-lg-pull-3{right:12.5%}.ivu-col-lg-offset-3{margin-left:12.5%}.ivu-col-lg-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-lg-2{display:block;width:8.33333333%}.ivu-col-lg-push-2{left:8.33333333%}.ivu-col-lg-pull-2{right:8.33333333%}.ivu-col-lg-offset-2{margin-left:8.33333333%}.ivu-col-lg-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-lg-1{display:block;width:4.16666667%}.ivu-col-lg-push-1{left:4.16666667%}.ivu-col-lg-pull-1{right:4.16666667%}.ivu-col-lg-offset-1{margin-left:4.16666667%}.ivu-col-lg-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-lg-0{display:none}.ivu-col-lg-push-0{left:auto}.ivu-col-lg-pull-0{right:auto}.ivu-col-lg-offset-0{margin-left:0}.ivu-col-lg-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:1200px){.ivu-col-span-xl-1,.ivu-col-span-xl-10,.ivu-col-span-xl-11,.ivu-col-span-xl-12,.ivu-col-span-xl-13,.ivu-col-span-xl-14,.ivu-col-span-xl-15,.ivu-col-span-xl-16,.ivu-col-span-xl-17,.ivu-col-span-xl-18,.ivu-col-span-xl-19,.ivu-col-span-xl-2,.ivu-col-span-xl-20,.ivu-col-span-xl-21,.ivu-col-span-xl-22,.ivu-col-span-xl-23,.ivu-col-span-xl-24,.ivu-col-span-xl-3,.ivu-col-span-xl-4,.ivu-col-span-xl-5,.ivu-col-span-xl-6,.ivu-col-span-xl-7,.ivu-col-span-xl-8,.ivu-col-span-xl-9{float:left;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-col-span-xl-24{display:block;width:100%}.ivu-col-xl-push-24{left:100%}.ivu-col-xl-pull-24{right:100%}.ivu-col-xl-offset-24{margin-left:100%}.ivu-col-xl-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-xl-23{display:block;width:95.83333333%}.ivu-col-xl-push-23{left:95.83333333%}.ivu-col-xl-pull-23{right:95.83333333%}.ivu-col-xl-offset-23{margin-left:95.83333333%}.ivu-col-xl-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-xl-22{display:block;width:91.66666667%}.ivu-col-xl-push-22{left:91.66666667%}.ivu-col-xl-pull-22{right:91.66666667%}.ivu-col-xl-offset-22{margin-left:91.66666667%}.ivu-col-xl-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-xl-21{display:block;width:87.5%}.ivu-col-xl-push-21{left:87.5%}.ivu-col-xl-pull-21{right:87.5%}.ivu-col-xl-offset-21{margin-left:87.5%}.ivu-col-xl-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-xl-20{display:block;width:83.33333333%}.ivu-col-xl-push-20{left:83.33333333%}.ivu-col-xl-pull-20{right:83.33333333%}.ivu-col-xl-offset-20{margin-left:83.33333333%}.ivu-col-xl-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-xl-19{display:block;width:79.16666667%}.ivu-col-xl-push-19{left:79.16666667%}.ivu-col-xl-pull-19{right:79.16666667%}.ivu-col-xl-offset-19{margin-left:79.16666667%}.ivu-col-xl-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-xl-18{display:block;width:75%}.ivu-col-xl-push-18{left:75%}.ivu-col-xl-pull-18{right:75%}.ivu-col-xl-offset-18{margin-left:75%}.ivu-col-xl-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-xl-17{display:block;width:70.83333333%}.ivu-col-xl-push-17{left:70.83333333%}.ivu-col-xl-pull-17{right:70.83333333%}.ivu-col-xl-offset-17{margin-left:70.83333333%}.ivu-col-xl-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-xl-16{display:block;width:66.66666667%}.ivu-col-xl-push-16{left:66.66666667%}.ivu-col-xl-pull-16{right:66.66666667%}.ivu-col-xl-offset-16{margin-left:66.66666667%}.ivu-col-xl-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-xl-15{display:block;width:62.5%}.ivu-col-xl-push-15{left:62.5%}.ivu-col-xl-pull-15{right:62.5%}.ivu-col-xl-offset-15{margin-left:62.5%}.ivu-col-xl-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-xl-14{display:block;width:58.33333333%}.ivu-col-xl-push-14{left:58.33333333%}.ivu-col-xl-pull-14{right:58.33333333%}.ivu-col-xl-offset-14{margin-left:58.33333333%}.ivu-col-xl-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-xl-13{display:block;width:54.16666667%}.ivu-col-xl-push-13{left:54.16666667%}.ivu-col-xl-pull-13{right:54.16666667%}.ivu-col-xl-offset-13{margin-left:54.16666667%}.ivu-col-xl-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-xl-12{display:block;width:50%}.ivu-col-xl-push-12{left:50%}.ivu-col-xl-pull-12{right:50%}.ivu-col-xl-offset-12{margin-left:50%}.ivu-col-xl-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-xl-11{display:block;width:45.83333333%}.ivu-col-xl-push-11{left:45.83333333%}.ivu-col-xl-pull-11{right:45.83333333%}.ivu-col-xl-offset-11{margin-left:45.83333333%}.ivu-col-xl-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-xl-10{display:block;width:41.66666667%}.ivu-col-xl-push-10{left:41.66666667%}.ivu-col-xl-pull-10{right:41.66666667%}.ivu-col-xl-offset-10{margin-left:41.66666667%}.ivu-col-xl-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-xl-9{display:block;width:37.5%}.ivu-col-xl-push-9{left:37.5%}.ivu-col-xl-pull-9{right:37.5%}.ivu-col-xl-offset-9{margin-left:37.5%}.ivu-col-xl-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-xl-8{display:block;width:33.33333333%}.ivu-col-xl-push-8{left:33.33333333%}.ivu-col-xl-pull-8{right:33.33333333%}.ivu-col-xl-offset-8{margin-left:33.33333333%}.ivu-col-xl-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-xl-7{display:block;width:29.16666667%}.ivu-col-xl-push-7{left:29.16666667%}.ivu-col-xl-pull-7{right:29.16666667%}.ivu-col-xl-offset-7{margin-left:29.16666667%}.ivu-col-xl-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-xl-6{display:block;width:25%}.ivu-col-xl-push-6{left:25%}.ivu-col-xl-pull-6{right:25%}.ivu-col-xl-offset-6{margin-left:25%}.ivu-col-xl-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-xl-5{display:block;width:20.83333333%}.ivu-col-xl-push-5{left:20.83333333%}.ivu-col-xl-pull-5{right:20.83333333%}.ivu-col-xl-offset-5{margin-left:20.83333333%}.ivu-col-xl-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-xl-4{display:block;width:16.66666667%}.ivu-col-xl-push-4{left:16.66666667%}.ivu-col-xl-pull-4{right:16.66666667%}.ivu-col-xl-offset-4{margin-left:16.66666667%}.ivu-col-xl-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-xl-3{display:block;width:12.5%}.ivu-col-xl-push-3{left:12.5%}.ivu-col-xl-pull-3{right:12.5%}.ivu-col-xl-offset-3{margin-left:12.5%}.ivu-col-xl-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-xl-2{display:block;width:8.33333333%}.ivu-col-xl-push-2{left:8.33333333%}.ivu-col-xl-pull-2{right:8.33333333%}.ivu-col-xl-offset-2{margin-left:8.33333333%}.ivu-col-xl-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-xl-1{display:block;width:4.16666667%}.ivu-col-xl-push-1{left:4.16666667%}.ivu-col-xl-pull-1{right:4.16666667%}.ivu-col-xl-offset-1{margin-left:4.16666667%}.ivu-col-xl-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-xl-0{display:none}.ivu-col-xl-push-0{left:auto}.ivu-col-xl-pull-0{right:auto}.ivu-col-xl-offset-0{margin-left:0}.ivu-col-xl-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}@media (min-width:1600px){.ivu-col-span-xxl-1,.ivu-col-span-xxl-10,.ivu-col-span-xxl-11,.ivu-col-span-xxl-12,.ivu-col-span-xxl-13,.ivu-col-span-xxl-14,.ivu-col-span-xxl-15,.ivu-col-span-xxl-16,.ivu-col-span-xxl-17,.ivu-col-span-xxl-18,.ivu-col-span-xxl-19,.ivu-col-span-xxl-2,.ivu-col-span-xxl-20,.ivu-col-span-xxl-21,.ivu-col-span-xxl-22,.ivu-col-span-xxl-23,.ivu-col-span-xxl-24,.ivu-col-span-xxl-3,.ivu-col-span-xxl-4,.ivu-col-span-xxl-5,.ivu-col-span-xxl-6,.ivu-col-span-xxl-7,.ivu-col-span-xxl-8,.ivu-col-span-xxl-9{float:left;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-col-span-xxl-24{display:block;width:100%}.ivu-col-xxl-push-24{left:100%}.ivu-col-xxl-pull-24{right:100%}.ivu-col-xxl-offset-24{margin-left:100%}.ivu-col-xxl-order-24{-webkit-box-ordinal-group:25;-ms-flex-order:24;order:24}.ivu-col-span-xxl-23{display:block;width:95.83333333%}.ivu-col-xxl-push-23{left:95.83333333%}.ivu-col-xxl-pull-23{right:95.83333333%}.ivu-col-xxl-offset-23{margin-left:95.83333333%}.ivu-col-xxl-order-23{-webkit-box-ordinal-group:24;-ms-flex-order:23;order:23}.ivu-col-span-xxl-22{display:block;width:91.66666667%}.ivu-col-xxl-push-22{left:91.66666667%}.ivu-col-xxl-pull-22{right:91.66666667%}.ivu-col-xxl-offset-22{margin-left:91.66666667%}.ivu-col-xxl-order-22{-webkit-box-ordinal-group:23;-ms-flex-order:22;order:22}.ivu-col-span-xxl-21{display:block;width:87.5%}.ivu-col-xxl-push-21{left:87.5%}.ivu-col-xxl-pull-21{right:87.5%}.ivu-col-xxl-offset-21{margin-left:87.5%}.ivu-col-xxl-order-21{-webkit-box-ordinal-group:22;-ms-flex-order:21;order:21}.ivu-col-span-xxl-20{display:block;width:83.33333333%}.ivu-col-xxl-push-20{left:83.33333333%}.ivu-col-xxl-pull-20{right:83.33333333%}.ivu-col-xxl-offset-20{margin-left:83.33333333%}.ivu-col-xxl-order-20{-webkit-box-ordinal-group:21;-ms-flex-order:20;order:20}.ivu-col-span-xxl-19{display:block;width:79.16666667%}.ivu-col-xxl-push-19{left:79.16666667%}.ivu-col-xxl-pull-19{right:79.16666667%}.ivu-col-xxl-offset-19{margin-left:79.16666667%}.ivu-col-xxl-order-19{-webkit-box-ordinal-group:20;-ms-flex-order:19;order:19}.ivu-col-span-xxl-18{display:block;width:75%}.ivu-col-xxl-push-18{left:75%}.ivu-col-xxl-pull-18{right:75%}.ivu-col-xxl-offset-18{margin-left:75%}.ivu-col-xxl-order-18{-webkit-box-ordinal-group:19;-ms-flex-order:18;order:18}.ivu-col-span-xxl-17{display:block;width:70.83333333%}.ivu-col-xxl-push-17{left:70.83333333%}.ivu-col-xxl-pull-17{right:70.83333333%}.ivu-col-xxl-offset-17{margin-left:70.83333333%}.ivu-col-xxl-order-17{-webkit-box-ordinal-group:18;-ms-flex-order:17;order:17}.ivu-col-span-xxl-16{display:block;width:66.66666667%}.ivu-col-xxl-push-16{left:66.66666667%}.ivu-col-xxl-pull-16{right:66.66666667%}.ivu-col-xxl-offset-16{margin-left:66.66666667%}.ivu-col-xxl-order-16{-webkit-box-ordinal-group:17;-ms-flex-order:16;order:16}.ivu-col-span-xxl-15{display:block;width:62.5%}.ivu-col-xxl-push-15{left:62.5%}.ivu-col-xxl-pull-15{right:62.5%}.ivu-col-xxl-offset-15{margin-left:62.5%}.ivu-col-xxl-order-15{-webkit-box-ordinal-group:16;-ms-flex-order:15;order:15}.ivu-col-span-xxl-14{display:block;width:58.33333333%}.ivu-col-xxl-push-14{left:58.33333333%}.ivu-col-xxl-pull-14{right:58.33333333%}.ivu-col-xxl-offset-14{margin-left:58.33333333%}.ivu-col-xxl-order-14{-webkit-box-ordinal-group:15;-ms-flex-order:14;order:14}.ivu-col-span-xxl-13{display:block;width:54.16666667%}.ivu-col-xxl-push-13{left:54.16666667%}.ivu-col-xxl-pull-13{right:54.16666667%}.ivu-col-xxl-offset-13{margin-left:54.16666667%}.ivu-col-xxl-order-13{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.ivu-col-span-xxl-12{display:block;width:50%}.ivu-col-xxl-push-12{left:50%}.ivu-col-xxl-pull-12{right:50%}.ivu-col-xxl-offset-12{margin-left:50%}.ivu-col-xxl-order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.ivu-col-span-xxl-11{display:block;width:45.83333333%}.ivu-col-xxl-push-11{left:45.83333333%}.ivu-col-xxl-pull-11{right:45.83333333%}.ivu-col-xxl-offset-11{margin-left:45.83333333%}.ivu-col-xxl-order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.ivu-col-span-xxl-10{display:block;width:41.66666667%}.ivu-col-xxl-push-10{left:41.66666667%}.ivu-col-xxl-pull-10{right:41.66666667%}.ivu-col-xxl-offset-10{margin-left:41.66666667%}.ivu-col-xxl-order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.ivu-col-span-xxl-9{display:block;width:37.5%}.ivu-col-xxl-push-9{left:37.5%}.ivu-col-xxl-pull-9{right:37.5%}.ivu-col-xxl-offset-9{margin-left:37.5%}.ivu-col-xxl-order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.ivu-col-span-xxl-8{display:block;width:33.33333333%}.ivu-col-xxl-push-8{left:33.33333333%}.ivu-col-xxl-pull-8{right:33.33333333%}.ivu-col-xxl-offset-8{margin-left:33.33333333%}.ivu-col-xxl-order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.ivu-col-span-xxl-7{display:block;width:29.16666667%}.ivu-col-xxl-push-7{left:29.16666667%}.ivu-col-xxl-pull-7{right:29.16666667%}.ivu-col-xxl-offset-7{margin-left:29.16666667%}.ivu-col-xxl-order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.ivu-col-span-xxl-6{display:block;width:25%}.ivu-col-xxl-push-6{left:25%}.ivu-col-xxl-pull-6{right:25%}.ivu-col-xxl-offset-6{margin-left:25%}.ivu-col-xxl-order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.ivu-col-span-xxl-5{display:block;width:20.83333333%}.ivu-col-xxl-push-5{left:20.83333333%}.ivu-col-xxl-pull-5{right:20.83333333%}.ivu-col-xxl-offset-5{margin-left:20.83333333%}.ivu-col-xxl-order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.ivu-col-span-xxl-4{display:block;width:16.66666667%}.ivu-col-xxl-push-4{left:16.66666667%}.ivu-col-xxl-pull-4{right:16.66666667%}.ivu-col-xxl-offset-4{margin-left:16.66666667%}.ivu-col-xxl-order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.ivu-col-span-xxl-3{display:block;width:12.5%}.ivu-col-xxl-push-3{left:12.5%}.ivu-col-xxl-pull-3{right:12.5%}.ivu-col-xxl-offset-3{margin-left:12.5%}.ivu-col-xxl-order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.ivu-col-span-xxl-2{display:block;width:8.33333333%}.ivu-col-xxl-push-2{left:8.33333333%}.ivu-col-xxl-pull-2{right:8.33333333%}.ivu-col-xxl-offset-2{margin-left:8.33333333%}.ivu-col-xxl-order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.ivu-col-span-xxl-1{display:block;width:4.16666667%}.ivu-col-xxl-push-1{left:4.16666667%}.ivu-col-xxl-pull-1{right:4.16666667%}.ivu-col-xxl-offset-1{margin-left:4.16666667%}.ivu-col-xxl-order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.ivu-col-span-xxl-0{display:none}.ivu-col-xxl-push-0{left:auto}.ivu-col-xxl-pull-0{right:auto}.ivu-col-xxl-offset-0{margin-left:0}.ivu-col-xxl-order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}}.ivu-article h1{font-size:26px;font-weight:400}.ivu-article h2{font-size:20px;font-weight:400}.ivu-article h3{font-size:16px;font-weight:400}.ivu-article h4{font-size:14px;font-weight:400}.ivu-article h5{font-size:12px;font-weight:400}.ivu-article h6{font-size:12px;font-weight:400}.ivu-article blockquote{padding:5px 5px 3px 10px;line-height:1.5;border-left:4px solid #ddd;margin-bottom:20px;color:#666;font-size:14px}.ivu-article ul:not([class^=ivu-]){padding-left:40px;list-style-type:disc}.ivu-article li:not([class^=ivu-]){margin-bottom:5px;font-size:14px}.ivu-article ol ul:not([class^=ivu-]),.ivu-article ul ul:not([class^=ivu-]){list-style-type:circle}.ivu-article p{margin:5px;font-size:14px}.ivu-article a:not([class^=ivu-])[target="_blank"]:after{content:"\F3F2";font-family:Ionicons;color:#aaa;margin-left:3px}.fade-appear,.fade-enter-active{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-leave-active{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear,.fade-enter-active{-webkit-animation-name:ivuFadeIn;animation-name:ivuFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave-active{-webkit-animation-name:ivuFadeOut;animation-name:ivuFadeOut;-webkit-animation-play-state:running;animation-play-state:running}.fade-appear,.fade-enter-active{opacity:0;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fade-leave-active{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes ivuFadeIn{0%{opacity:0}100%{opacity:1}}@keyframes ivuFadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes ivuFadeOut{0%{opacity:1}100%{opacity:0}}@keyframes ivuFadeOut{0%{opacity:1}100%{opacity:0}}.move-up-appear,.move-up-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear,.move-up-enter-active{-webkit-animation-name:ivuMoveUpIn;animation-name:ivuMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave-active{-webkit-animation-name:ivuMoveUpOut;animation-name:ivuMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running}.move-up-appear,.move-up-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-up-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-down-appear,.move-down-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear,.move-down-enter-active{-webkit-animation-name:ivuMoveDownIn;animation-name:ivuMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave-active{-webkit-animation-name:ivuMoveDownOut;animation-name:ivuMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running}.move-down-appear,.move-down-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-down-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-left-appear,.move-left-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear,.move-left-enter-active{-webkit-animation-name:ivuMoveLeftIn;animation-name:ivuMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave-active{-webkit-animation-name:ivuMoveLeftOut;animation-name:ivuMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running}.move-left-appear,.move-left-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-left-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-right-appear,.move-right-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear,.move-right-enter-active{-webkit-animation-name:ivuMoveRightIn;animation-name:ivuMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave-active{-webkit-animation-name:ivuMoveRightOut;animation-name:ivuMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running}.move-right-appear,.move-right-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-right-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes ivuMoveDownIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes ivuMoveDownIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes ivuMoveDownOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}}@keyframes ivuMoveDownOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}}@-webkit-keyframes ivuMoveLeftIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}@keyframes ivuMoveLeftIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}}@-webkit-keyframes ivuMoveLeftOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes ivuMoveLeftOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@-webkit-keyframes ivuMoveRightIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes ivuMoveRightIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes ivuMoveRightOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes ivuMoveRightOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes ivuMoveUpIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes ivuMoveUpIn{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes ivuMoveUpOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}@keyframes ivuMoveUpOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(0);transform:translateY(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateY(-100%);transform:translateY(-100%);opacity:0}}.move-notice-appear,.move-notice-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-notice-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-notice-appear,.move-notice-enter-active{-webkit-animation-name:ivuMoveNoticeIn;animation-name:ivuMoveNoticeIn;-webkit-animation-play-state:running;animation-play-state:running}.move-notice-leave-active{-webkit-animation-name:ivuMoveNoticeOut;animation-name:ivuMoveNoticeOut;-webkit-animation-play-state:running;animation-play-state:running}.move-notice-appear,.move-notice-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.move-notice-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes ivuMoveNoticeIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes ivuMoveNoticeIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes ivuMoveNoticeOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}70%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:auto;padding:16px;margin-bottom:10px;opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:0;padding:0;margin-bottom:0;opacity:0}}@keyframes ivuMoveNoticeOut{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}70%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:auto;padding:16px;margin-bottom:10px;opacity:0}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);height:0;padding:0;margin-bottom:0;opacity:0}}.ease-appear,.ease-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ease-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.ease-appear,.ease-enter-active{-webkit-animation-name:ivuEaseIn;animation-name:ivuEaseIn;-webkit-animation-play-state:running;animation-play-state:running}.ease-leave-active{-webkit-animation-name:ivuEaseOut;animation-name:ivuEaseOut;-webkit-animation-play-state:running;animation-play-state:running}.ease-appear,.ease-enter-active{opacity:0;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:.2s;animation-duration:.2s}.ease-leave-active{-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes ivuEaseIn{0%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes ivuEaseIn{0%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes ivuEaseOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}@keyframes ivuEaseOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}100%{opacity:0;-webkit-transform:scale(.9);transform:scale(.9)}}.transition-drop-appear,.transition-drop-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.transition-drop-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.transition-drop-appear,.transition-drop-enter-active{-webkit-animation-name:ivuTransitionDropIn;animation-name:ivuTransitionDropIn;-webkit-animation-play-state:running;animation-play-state:running}.transition-drop-leave-active{-webkit-animation-name:ivuTransitionDropOut;animation-name:ivuTransitionDropOut;-webkit-animation-play-state:running;animation-play-state:running}.transition-drop-appear,.transition-drop-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.transition-drop-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-up-appear,.slide-up-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear,.slide-up-enter-active{-webkit-animation-name:ivuSlideUpIn;animation-name:ivuSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave-active{-webkit-animation-name:ivuSlideUpOut;animation-name:ivuSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-appear,.slide-up-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-up-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-down-appear,.slide-down-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear,.slide-down-enter-active{-webkit-animation-name:ivuSlideDownIn;animation-name:ivuSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave-active{-webkit-animation-name:ivuSlideDownOut;animation-name:ivuSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-appear,.slide-down-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-down-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-left-appear,.slide-left-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear,.slide-left-enter-active{-webkit-animation-name:ivuSlideLeftIn;animation-name:ivuSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave-active{-webkit-animation-name:ivuSlideLeftOut;animation-name:ivuSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-appear,.slide-left-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-left-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-right-appear,.slide-right-enter-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-leave-active{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear,.slide-right-enter-active{-webkit-animation-name:ivuSlideRightIn;animation-name:ivuSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave-active{-webkit-animation-name:ivuSlideRightOut;animation-name:ivuSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-appear,.slide-right-enter-active{opacity:0;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.slide-right-leave-active{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes ivuTransitionDropIn{0%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes ivuTransitionDropIn{0%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes ivuTransitionDropOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes ivuTransitionDropOut{0%{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes ivuSlideUpIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes ivuSlideUpIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes ivuSlideUpOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes ivuSlideUpOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes ivuSlideDownIn{0%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes ivuSlideDownIn{0%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}100%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes ivuSlideDownOut{0%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@keyframes ivuSlideDownOut{0%{opacity:1;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(1);transform:scaleY(1)}100%{opacity:0;-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transform:scaleY(.8);transform:scaleY(.8)}}@-webkit-keyframes ivuSlideLeftIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes ivuSlideLeftIn{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes ivuSlideLeftOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@keyframes ivuSlideLeftOut{0%{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@-webkit-keyframes ivuSlideRightIn{0%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes ivuSlideRightIn{0%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}100%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}}@-webkit-keyframes ivuSlideRightOut{0%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}@keyframes ivuSlideRightOut{0%{opacity:1;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(1);transform:scaleX(1)}100%{opacity:0;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.8);transform:scaleX(.8)}}.collapse-transition{-webkit-transition:.2s height ease-in-out,.2s padding-top ease-in-out,.2s padding-bottom ease-in-out;transition:.2s height ease-in-out,.2s padding-top ease-in-out,.2s padding-bottom ease-in-out}.ivu-btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;line-height:1.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:32px;padding:0 15px;font-size:14px;border-radius:4px;-webkit-transition:color .2s linear,background-color .2s linear,border .2s linear,-webkit-box-shadow .2s linear;transition:color .2s linear,background-color .2s linear,border .2s linear,-webkit-box-shadow .2s linear;transition:color .2s linear,background-color .2s linear,border .2s linear,box-shadow .2s linear;transition:color .2s linear,background-color .2s linear,border .2s linear,box-shadow .2s linear,-webkit-box-shadow .2s linear;color:#515a6e;background-color:#fff;border-color:#dcdee2}.ivu-btn>.ivu-icon{line-height:1.5}.ivu-btn-icon-only.ivu-btn-circle>.ivu-icon{vertical-align:baseline}.ivu-btn>i,.ivu-btn>span{display:inline-block}.ivu-btn,.ivu-btn:active,.ivu-btn:focus{outline:0}.ivu-btn:not([disabled]):hover{text-decoration:none}.ivu-btn:not([disabled]):active{outline:0}.ivu-btn.disabled,.ivu-btn[disabled]{cursor:not-allowed}.ivu-btn.disabled>*,.ivu-btn[disabled]>*{pointer-events:none}.ivu-btn-large{height:40px;padding:0 15px;font-size:16px;border-radius:4px}.ivu-btn-small{height:24px;padding:0 7px;font-size:14px;border-radius:3px}.ivu-btn-icon-only{width:32px;height:32px;padding:0;font-size:16px;border-radius:4px}.ivu-btn-icon-only.ivu-btn-large{width:40px;height:40px;padding:0;font-size:18px;border-radius:4px}.ivu-btn-icon-only.ivu-btn-small{width:24px;height:24px;padding:0;font-size:14px;border-radius:4px}.ivu-btn>a:only-child{color:currentColor}.ivu-btn>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn:hover{color:#747b8b;background-color:#fff;border-color:#e3e5e8}.ivu-btn:hover>a:only-child{color:currentColor}.ivu-btn:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn.active,.ivu-btn:active{color:#4d5669;background-color:#f2f2f2;border-color:#f2f2f2}.ivu-btn.active>a:only-child,.ivu-btn:active>a:only-child{color:currentColor}.ivu-btn.active>a:only-child:after,.ivu-btn:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn.disabled,.ivu-btn.disabled.active,.ivu-btn.disabled:active,.ivu-btn.disabled:focus,.ivu-btn.disabled:hover,.ivu-btn[disabled],.ivu-btn[disabled].active,.ivu-btn[disabled]:active,.ivu-btn[disabled]:focus,.ivu-btn[disabled]:hover,fieldset[disabled] .ivu-btn,fieldset[disabled] .ivu-btn.active,fieldset[disabled] .ivu-btn:active,fieldset[disabled] .ivu-btn:focus,fieldset[disabled] .ivu-btn:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn.disabled.active>a:only-child,.ivu-btn.disabled:active>a:only-child,.ivu-btn.disabled:focus>a:only-child,.ivu-btn.disabled:hover>a:only-child,.ivu-btn.disabled>a:only-child,.ivu-btn[disabled].active>a:only-child,.ivu-btn[disabled]:active>a:only-child,.ivu-btn[disabled]:focus>a:only-child,.ivu-btn[disabled]:hover>a:only-child,.ivu-btn[disabled]>a:only-child,fieldset[disabled] .ivu-btn.active>a:only-child,fieldset[disabled] .ivu-btn:active>a:only-child,fieldset[disabled] .ivu-btn:focus>a:only-child,fieldset[disabled] .ivu-btn:hover>a:only-child,fieldset[disabled] .ivu-btn>a:only-child{color:currentColor}.ivu-btn.disabled.active>a:only-child:after,.ivu-btn.disabled:active>a:only-child:after,.ivu-btn.disabled:focus>a:only-child:after,.ivu-btn.disabled:hover>a:only-child:after,.ivu-btn.disabled>a:only-child:after,.ivu-btn[disabled].active>a:only-child:after,.ivu-btn[disabled]:active>a:only-child:after,.ivu-btn[disabled]:focus>a:only-child:after,.ivu-btn[disabled]:hover>a:only-child:after,.ivu-btn[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn.active>a:only-child:after,fieldset[disabled] .ivu-btn:active>a:only-child:after,fieldset[disabled] .ivu-btn:focus>a:only-child:after,fieldset[disabled] .ivu-btn:hover>a:only-child:after,fieldset[disabled] .ivu-btn>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn:hover{color:#57a3f3;background-color:#fff;border-color:#57a3f3}.ivu-btn:hover>a:only-child{color:currentColor}.ivu-btn:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn.active,.ivu-btn:active{color:#2b85e4;background-color:#fff;border-color:#2b85e4}.ivu-btn.active>a:only-child,.ivu-btn:active>a:only-child{color:currentColor}.ivu-btn.active>a:only-child:after,.ivu-btn:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-long{width:100%}.ivu-btn>.ivu-icon+span,.ivu-btn>span+.ivu-icon{margin-left:4px}.ivu-btn-primary{color:#fff;background-color:#2d8cf0;border-color:#2d8cf0}.ivu-btn-primary>a:only-child{color:currentColor}.ivu-btn-primary>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary:hover{color:#fff;background-color:#57a3f3;border-color:#57a3f3}.ivu-btn-primary:hover>a:only-child{color:currentColor}.ivu-btn-primary:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary.active,.ivu-btn-primary:active{color:#f2f2f2;background-color:#2b85e4;border-color:#2b85e4}.ivu-btn-primary.active>a:only-child,.ivu-btn-primary:active>a:only-child{color:currentColor}.ivu-btn-primary.active>a:only-child:after,.ivu-btn-primary:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary.disabled,.ivu-btn-primary.disabled.active,.ivu-btn-primary.disabled:active,.ivu-btn-primary.disabled:focus,.ivu-btn-primary.disabled:hover,.ivu-btn-primary[disabled],.ivu-btn-primary[disabled].active,.ivu-btn-primary[disabled]:active,.ivu-btn-primary[disabled]:focus,.ivu-btn-primary[disabled]:hover,fieldset[disabled] .ivu-btn-primary,fieldset[disabled] .ivu-btn-primary.active,fieldset[disabled] .ivu-btn-primary:active,fieldset[disabled] .ivu-btn-primary:focus,fieldset[disabled] .ivu-btn-primary:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-primary.disabled.active>a:only-child,.ivu-btn-primary.disabled:active>a:only-child,.ivu-btn-primary.disabled:focus>a:only-child,.ivu-btn-primary.disabled:hover>a:only-child,.ivu-btn-primary.disabled>a:only-child,.ivu-btn-primary[disabled].active>a:only-child,.ivu-btn-primary[disabled]:active>a:only-child,.ivu-btn-primary[disabled]:focus>a:only-child,.ivu-btn-primary[disabled]:hover>a:only-child,.ivu-btn-primary[disabled]>a:only-child,fieldset[disabled] .ivu-btn-primary.active>a:only-child,fieldset[disabled] .ivu-btn-primary:active>a:only-child,fieldset[disabled] .ivu-btn-primary:focus>a:only-child,fieldset[disabled] .ivu-btn-primary:hover>a:only-child,fieldset[disabled] .ivu-btn-primary>a:only-child{color:currentColor}.ivu-btn-primary.disabled.active>a:only-child:after,.ivu-btn-primary.disabled:active>a:only-child:after,.ivu-btn-primary.disabled:focus>a:only-child:after,.ivu-btn-primary.disabled:hover>a:only-child:after,.ivu-btn-primary.disabled>a:only-child:after,.ivu-btn-primary[disabled].active>a:only-child:after,.ivu-btn-primary[disabled]:active>a:only-child:after,.ivu-btn-primary[disabled]:focus>a:only-child:after,.ivu-btn-primary[disabled]:hover>a:only-child:after,.ivu-btn-primary[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-primary.active>a:only-child:after,fieldset[disabled] .ivu-btn-primary:active>a:only-child:after,fieldset[disabled] .ivu-btn-primary:focus>a:only-child:after,fieldset[disabled] .ivu-btn-primary:hover>a:only-child:after,fieldset[disabled] .ivu-btn-primary>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-primary.active,.ivu-btn-primary:active,.ivu-btn-primary:hover{color:#fff}.ivu-btn-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:not(:first-child):not(:last-child){border-right-color:#2b85e4;border-left-color:#2b85e4}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:first-child:not(:last-child){border-right-color:#2b85e4}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#dcdee2}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary+.ivu-btn,.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:last-child:not(:first-child){border-left-color:#2b85e4}.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary+.ivu-btn[disabled],.ivu-btn-group:not(.ivu-btn-group-vertical) .ivu-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#dcdee2}.ivu-btn-group-vertical .ivu-btn-primary:not(:first-child):not(:last-child){border-top-color:#2b85e4;border-bottom-color:#2b85e4}.ivu-btn-group-vertical .ivu-btn-primary:first-child:not(:last-child){border-bottom-color:#2b85e4}.ivu-btn-group-vertical .ivu-btn-primary:first-child:not(:last-child)[disabled]{border-top-color:#dcdee2}.ivu-btn-group-vertical .ivu-btn-primary+.ivu-btn,.ivu-btn-group-vertical .ivu-btn-primary:last-child:not(:first-child){border-top-color:#2b85e4}.ivu-btn-group-vertical .ivu-btn-primary+.ivu-btn[disabled],.ivu-btn-group-vertical .ivu-btn-primary:last-child:not(:first-child)[disabled]{border-bottom-color:#dcdee2}.ivu-btn-dashed{color:#515a6e;background-color:#fff;border-color:#dcdee2;border-style:dashed}.ivu-btn-dashed>a:only-child{color:currentColor}.ivu-btn-dashed>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed:hover{color:#747b8b;background-color:#fff;border-color:#e3e5e8}.ivu-btn-dashed:hover>a:only-child{color:currentColor}.ivu-btn-dashed:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed.active,.ivu-btn-dashed:active{color:#4d5669;background-color:#f2f2f2;border-color:#f2f2f2}.ivu-btn-dashed.active>a:only-child,.ivu-btn-dashed:active>a:only-child{color:currentColor}.ivu-btn-dashed.active>a:only-child:after,.ivu-btn-dashed:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed.disabled,.ivu-btn-dashed.disabled.active,.ivu-btn-dashed.disabled:active,.ivu-btn-dashed.disabled:focus,.ivu-btn-dashed.disabled:hover,.ivu-btn-dashed[disabled],.ivu-btn-dashed[disabled].active,.ivu-btn-dashed[disabled]:active,.ivu-btn-dashed[disabled]:focus,.ivu-btn-dashed[disabled]:hover,fieldset[disabled] .ivu-btn-dashed,fieldset[disabled] .ivu-btn-dashed.active,fieldset[disabled] .ivu-btn-dashed:active,fieldset[disabled] .ivu-btn-dashed:focus,fieldset[disabled] .ivu-btn-dashed:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-dashed.disabled.active>a:only-child,.ivu-btn-dashed.disabled:active>a:only-child,.ivu-btn-dashed.disabled:focus>a:only-child,.ivu-btn-dashed.disabled:hover>a:only-child,.ivu-btn-dashed.disabled>a:only-child,.ivu-btn-dashed[disabled].active>a:only-child,.ivu-btn-dashed[disabled]:active>a:only-child,.ivu-btn-dashed[disabled]:focus>a:only-child,.ivu-btn-dashed[disabled]:hover>a:only-child,.ivu-btn-dashed[disabled]>a:only-child,fieldset[disabled] .ivu-btn-dashed.active>a:only-child,fieldset[disabled] .ivu-btn-dashed:active>a:only-child,fieldset[disabled] .ivu-btn-dashed:focus>a:only-child,fieldset[disabled] .ivu-btn-dashed:hover>a:only-child,fieldset[disabled] .ivu-btn-dashed>a:only-child{color:currentColor}.ivu-btn-dashed.disabled.active>a:only-child:after,.ivu-btn-dashed.disabled:active>a:only-child:after,.ivu-btn-dashed.disabled:focus>a:only-child:after,.ivu-btn-dashed.disabled:hover>a:only-child:after,.ivu-btn-dashed.disabled>a:only-child:after,.ivu-btn-dashed[disabled].active>a:only-child:after,.ivu-btn-dashed[disabled]:active>a:only-child:after,.ivu-btn-dashed[disabled]:focus>a:only-child:after,.ivu-btn-dashed[disabled]:hover>a:only-child:after,.ivu-btn-dashed[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-dashed.active>a:only-child:after,fieldset[disabled] .ivu-btn-dashed:active>a:only-child:after,fieldset[disabled] .ivu-btn-dashed:focus>a:only-child:after,fieldset[disabled] .ivu-btn-dashed:hover>a:only-child:after,fieldset[disabled] .ivu-btn-dashed>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed:hover{color:#57a3f3;background-color:#fff;border-color:#57a3f3}.ivu-btn-dashed:hover>a:only-child{color:currentColor}.ivu-btn-dashed:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed.active,.ivu-btn-dashed:active{color:#2b85e4;background-color:#fff;border-color:#2b85e4}.ivu-btn-dashed.active>a:only-child,.ivu-btn-dashed:active>a:only-child{color:currentColor}.ivu-btn-dashed.active>a:only-child:after,.ivu-btn-dashed:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-dashed:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-text{color:#515a6e;background-color:transparent;border-color:transparent}.ivu-btn-text>a:only-child{color:currentColor}.ivu-btn-text>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text:hover{color:#747b8b;background-color:rgba(255,255,255,.2);border-color:rgba(255,255,255,.2)}.ivu-btn-text:hover>a:only-child{color:currentColor}.ivu-btn-text:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.active,.ivu-btn-text:active{color:#4d5669;background-color:rgba(0,0,0,.05);border-color:rgba(0,0,0,.05)}.ivu-btn-text.active>a:only-child,.ivu-btn-text:active>a:only-child{color:currentColor}.ivu-btn-text.active>a:only-child:after,.ivu-btn-text:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.disabled,.ivu-btn-text.disabled.active,.ivu-btn-text.disabled:active,.ivu-btn-text.disabled:focus,.ivu-btn-text.disabled:hover,.ivu-btn-text[disabled],.ivu-btn-text[disabled].active,.ivu-btn-text[disabled]:active,.ivu-btn-text[disabled]:focus,.ivu-btn-text[disabled]:hover,fieldset[disabled] .ivu-btn-text,fieldset[disabled] .ivu-btn-text.active,fieldset[disabled] .ivu-btn-text:active,fieldset[disabled] .ivu-btn-text:focus,fieldset[disabled] .ivu-btn-text:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-text.disabled.active>a:only-child,.ivu-btn-text.disabled:active>a:only-child,.ivu-btn-text.disabled:focus>a:only-child,.ivu-btn-text.disabled:hover>a:only-child,.ivu-btn-text.disabled>a:only-child,.ivu-btn-text[disabled].active>a:only-child,.ivu-btn-text[disabled]:active>a:only-child,.ivu-btn-text[disabled]:focus>a:only-child,.ivu-btn-text[disabled]:hover>a:only-child,.ivu-btn-text[disabled]>a:only-child,fieldset[disabled] .ivu-btn-text.active>a:only-child,fieldset[disabled] .ivu-btn-text:active>a:only-child,fieldset[disabled] .ivu-btn-text:focus>a:only-child,fieldset[disabled] .ivu-btn-text:hover>a:only-child,fieldset[disabled] .ivu-btn-text>a:only-child{color:currentColor}.ivu-btn-text.disabled.active>a:only-child:after,.ivu-btn-text.disabled:active>a:only-child:after,.ivu-btn-text.disabled:focus>a:only-child:after,.ivu-btn-text.disabled:hover>a:only-child:after,.ivu-btn-text.disabled>a:only-child:after,.ivu-btn-text[disabled].active>a:only-child:after,.ivu-btn-text[disabled]:active>a:only-child:after,.ivu-btn-text[disabled]:focus>a:only-child:after,.ivu-btn-text[disabled]:hover>a:only-child:after,.ivu-btn-text[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-text.active>a:only-child:after,fieldset[disabled] .ivu-btn-text:active>a:only-child:after,fieldset[disabled] .ivu-btn-text:focus>a:only-child:after,fieldset[disabled] .ivu-btn-text:hover>a:only-child:after,fieldset[disabled] .ivu-btn-text>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.disabled,.ivu-btn-text.disabled.active,.ivu-btn-text.disabled:active,.ivu-btn-text.disabled:focus,.ivu-btn-text.disabled:hover,.ivu-btn-text[disabled],.ivu-btn-text[disabled].active,.ivu-btn-text[disabled]:active,.ivu-btn-text[disabled]:focus,.ivu-btn-text[disabled]:hover,fieldset[disabled] .ivu-btn-text,fieldset[disabled] .ivu-btn-text.active,fieldset[disabled] .ivu-btn-text:active,fieldset[disabled] .ivu-btn-text:focus,fieldset[disabled] .ivu-btn-text:hover{color:#c5c8ce;background-color:#fff;border-color:transparent}.ivu-btn-text.disabled.active>a:only-child,.ivu-btn-text.disabled:active>a:only-child,.ivu-btn-text.disabled:focus>a:only-child,.ivu-btn-text.disabled:hover>a:only-child,.ivu-btn-text.disabled>a:only-child,.ivu-btn-text[disabled].active>a:only-child,.ivu-btn-text[disabled]:active>a:only-child,.ivu-btn-text[disabled]:focus>a:only-child,.ivu-btn-text[disabled]:hover>a:only-child,.ivu-btn-text[disabled]>a:only-child,fieldset[disabled] .ivu-btn-text.active>a:only-child,fieldset[disabled] .ivu-btn-text:active>a:only-child,fieldset[disabled] .ivu-btn-text:focus>a:only-child,fieldset[disabled] .ivu-btn-text:hover>a:only-child,fieldset[disabled] .ivu-btn-text>a:only-child{color:currentColor}.ivu-btn-text.disabled.active>a:only-child:after,.ivu-btn-text.disabled:active>a:only-child:after,.ivu-btn-text.disabled:focus>a:only-child:after,.ivu-btn-text.disabled:hover>a:only-child:after,.ivu-btn-text.disabled>a:only-child:after,.ivu-btn-text[disabled].active>a:only-child:after,.ivu-btn-text[disabled]:active>a:only-child:after,.ivu-btn-text[disabled]:focus>a:only-child:after,.ivu-btn-text[disabled]:hover>a:only-child:after,.ivu-btn-text[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-text.active>a:only-child:after,fieldset[disabled] .ivu-btn-text:active>a:only-child:after,fieldset[disabled] .ivu-btn-text:focus>a:only-child:after,fieldset[disabled] .ivu-btn-text:hover>a:only-child:after,fieldset[disabled] .ivu-btn-text>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text:hover{color:#57a3f3;background-color:#fff;border-color:transparent}.ivu-btn-text:hover>a:only-child{color:currentColor}.ivu-btn-text:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text.active,.ivu-btn-text:active{color:#2b85e4;background-color:#fff;border-color:transparent}.ivu-btn-text.active>a:only-child,.ivu-btn-text:active>a:only-child{color:currentColor}.ivu-btn-text.active>a:only-child:after,.ivu-btn-text:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-text:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-btn-success{color:#fff;background-color:#19be6b;border-color:#19be6b}.ivu-btn-success>a:only-child{color:currentColor}.ivu-btn-success>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success:hover{color:#fff;background-color:#47cb89;border-color:#47cb89}.ivu-btn-success:hover>a:only-child{color:currentColor}.ivu-btn-success:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success.active,.ivu-btn-success:active{color:#f2f2f2;background-color:#18b566;border-color:#18b566}.ivu-btn-success.active>a:only-child,.ivu-btn-success:active>a:only-child{color:currentColor}.ivu-btn-success.active>a:only-child:after,.ivu-btn-success:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success.disabled,.ivu-btn-success.disabled.active,.ivu-btn-success.disabled:active,.ivu-btn-success.disabled:focus,.ivu-btn-success.disabled:hover,.ivu-btn-success[disabled],.ivu-btn-success[disabled].active,.ivu-btn-success[disabled]:active,.ivu-btn-success[disabled]:focus,.ivu-btn-success[disabled]:hover,fieldset[disabled] .ivu-btn-success,fieldset[disabled] .ivu-btn-success.active,fieldset[disabled] .ivu-btn-success:active,fieldset[disabled] .ivu-btn-success:focus,fieldset[disabled] .ivu-btn-success:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-success.disabled.active>a:only-child,.ivu-btn-success.disabled:active>a:only-child,.ivu-btn-success.disabled:focus>a:only-child,.ivu-btn-success.disabled:hover>a:only-child,.ivu-btn-success.disabled>a:only-child,.ivu-btn-success[disabled].active>a:only-child,.ivu-btn-success[disabled]:active>a:only-child,.ivu-btn-success[disabled]:focus>a:only-child,.ivu-btn-success[disabled]:hover>a:only-child,.ivu-btn-success[disabled]>a:only-child,fieldset[disabled] .ivu-btn-success.active>a:only-child,fieldset[disabled] .ivu-btn-success:active>a:only-child,fieldset[disabled] .ivu-btn-success:focus>a:only-child,fieldset[disabled] .ivu-btn-success:hover>a:only-child,fieldset[disabled] .ivu-btn-success>a:only-child{color:currentColor}.ivu-btn-success.disabled.active>a:only-child:after,.ivu-btn-success.disabled:active>a:only-child:after,.ivu-btn-success.disabled:focus>a:only-child:after,.ivu-btn-success.disabled:hover>a:only-child:after,.ivu-btn-success.disabled>a:only-child:after,.ivu-btn-success[disabled].active>a:only-child:after,.ivu-btn-success[disabled]:active>a:only-child:after,.ivu-btn-success[disabled]:focus>a:only-child:after,.ivu-btn-success[disabled]:hover>a:only-child:after,.ivu-btn-success[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-success.active>a:only-child:after,fieldset[disabled] .ivu-btn-success:active>a:only-child:after,fieldset[disabled] .ivu-btn-success:focus>a:only-child:after,fieldset[disabled] .ivu-btn-success:hover>a:only-child:after,fieldset[disabled] .ivu-btn-success>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-success.active,.ivu-btn-success:active,.ivu-btn-success:hover{color:#fff}.ivu-btn-success:focus{-webkit-box-shadow:0 0 0 2px rgba(25,190,107,.2);box-shadow:0 0 0 2px rgba(25,190,107,.2)}.ivu-btn-warning{color:#fff;background-color:#f90;border-color:#f90}.ivu-btn-warning>a:only-child{color:currentColor}.ivu-btn-warning>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning:hover{color:#fff;background-color:#ffad33;border-color:#ffad33}.ivu-btn-warning:hover>a:only-child{color:currentColor}.ivu-btn-warning:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning.active,.ivu-btn-warning:active{color:#f2f2f2;background-color:#f29100;border-color:#f29100}.ivu-btn-warning.active>a:only-child,.ivu-btn-warning:active>a:only-child{color:currentColor}.ivu-btn-warning.active>a:only-child:after,.ivu-btn-warning:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning.disabled,.ivu-btn-warning.disabled.active,.ivu-btn-warning.disabled:active,.ivu-btn-warning.disabled:focus,.ivu-btn-warning.disabled:hover,.ivu-btn-warning[disabled],.ivu-btn-warning[disabled].active,.ivu-btn-warning[disabled]:active,.ivu-btn-warning[disabled]:focus,.ivu-btn-warning[disabled]:hover,fieldset[disabled] .ivu-btn-warning,fieldset[disabled] .ivu-btn-warning.active,fieldset[disabled] .ivu-btn-warning:active,fieldset[disabled] .ivu-btn-warning:focus,fieldset[disabled] .ivu-btn-warning:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-warning.disabled.active>a:only-child,.ivu-btn-warning.disabled:active>a:only-child,.ivu-btn-warning.disabled:focus>a:only-child,.ivu-btn-warning.disabled:hover>a:only-child,.ivu-btn-warning.disabled>a:only-child,.ivu-btn-warning[disabled].active>a:only-child,.ivu-btn-warning[disabled]:active>a:only-child,.ivu-btn-warning[disabled]:focus>a:only-child,.ivu-btn-warning[disabled]:hover>a:only-child,.ivu-btn-warning[disabled]>a:only-child,fieldset[disabled] .ivu-btn-warning.active>a:only-child,fieldset[disabled] .ivu-btn-warning:active>a:only-child,fieldset[disabled] .ivu-btn-warning:focus>a:only-child,fieldset[disabled] .ivu-btn-warning:hover>a:only-child,fieldset[disabled] .ivu-btn-warning>a:only-child{color:currentColor}.ivu-btn-warning.disabled.active>a:only-child:after,.ivu-btn-warning.disabled:active>a:only-child:after,.ivu-btn-warning.disabled:focus>a:only-child:after,.ivu-btn-warning.disabled:hover>a:only-child:after,.ivu-btn-warning.disabled>a:only-child:after,.ivu-btn-warning[disabled].active>a:only-child:after,.ivu-btn-warning[disabled]:active>a:only-child:after,.ivu-btn-warning[disabled]:focus>a:only-child:after,.ivu-btn-warning[disabled]:hover>a:only-child:after,.ivu-btn-warning[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-warning.active>a:only-child:after,fieldset[disabled] .ivu-btn-warning:active>a:only-child:after,fieldset[disabled] .ivu-btn-warning:focus>a:only-child:after,fieldset[disabled] .ivu-btn-warning:hover>a:only-child:after,fieldset[disabled] .ivu-btn-warning>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-warning.active,.ivu-btn-warning:active,.ivu-btn-warning:hover{color:#fff}.ivu-btn-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(255,153,0,.2);box-shadow:0 0 0 2px rgba(255,153,0,.2)}.ivu-btn-error{color:#fff;background-color:#ed4014;border-color:#ed4014}.ivu-btn-error>a:only-child{color:currentColor}.ivu-btn-error>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error:hover{color:#fff;background-color:#f16643;border-color:#f16643}.ivu-btn-error:hover>a:only-child{color:currentColor}.ivu-btn-error:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error.active,.ivu-btn-error:active{color:#f2f2f2;background-color:#e13d13;border-color:#e13d13}.ivu-btn-error.active>a:only-child,.ivu-btn-error:active>a:only-child{color:currentColor}.ivu-btn-error.active>a:only-child:after,.ivu-btn-error:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error.disabled,.ivu-btn-error.disabled.active,.ivu-btn-error.disabled:active,.ivu-btn-error.disabled:focus,.ivu-btn-error.disabled:hover,.ivu-btn-error[disabled],.ivu-btn-error[disabled].active,.ivu-btn-error[disabled]:active,.ivu-btn-error[disabled]:focus,.ivu-btn-error[disabled]:hover,fieldset[disabled] .ivu-btn-error,fieldset[disabled] .ivu-btn-error.active,fieldset[disabled] .ivu-btn-error:active,fieldset[disabled] .ivu-btn-error:focus,fieldset[disabled] .ivu-btn-error:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-error.disabled.active>a:only-child,.ivu-btn-error.disabled:active>a:only-child,.ivu-btn-error.disabled:focus>a:only-child,.ivu-btn-error.disabled:hover>a:only-child,.ivu-btn-error.disabled>a:only-child,.ivu-btn-error[disabled].active>a:only-child,.ivu-btn-error[disabled]:active>a:only-child,.ivu-btn-error[disabled]:focus>a:only-child,.ivu-btn-error[disabled]:hover>a:only-child,.ivu-btn-error[disabled]>a:only-child,fieldset[disabled] .ivu-btn-error.active>a:only-child,fieldset[disabled] .ivu-btn-error:active>a:only-child,fieldset[disabled] .ivu-btn-error:focus>a:only-child,fieldset[disabled] .ivu-btn-error:hover>a:only-child,fieldset[disabled] .ivu-btn-error>a:only-child{color:currentColor}.ivu-btn-error.disabled.active>a:only-child:after,.ivu-btn-error.disabled:active>a:only-child:after,.ivu-btn-error.disabled:focus>a:only-child:after,.ivu-btn-error.disabled:hover>a:only-child:after,.ivu-btn-error.disabled>a:only-child:after,.ivu-btn-error[disabled].active>a:only-child:after,.ivu-btn-error[disabled]:active>a:only-child:after,.ivu-btn-error[disabled]:focus>a:only-child:after,.ivu-btn-error[disabled]:hover>a:only-child:after,.ivu-btn-error[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-error.active>a:only-child:after,fieldset[disabled] .ivu-btn-error:active>a:only-child:after,fieldset[disabled] .ivu-btn-error:focus>a:only-child:after,fieldset[disabled] .ivu-btn-error:hover>a:only-child:after,fieldset[disabled] .ivu-btn-error>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-error.active,.ivu-btn-error:active,.ivu-btn-error:hover{color:#fff}.ivu-btn-error:focus{-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-btn-info{color:#fff;background-color:#2db7f5;border-color:#2db7f5}.ivu-btn-info>a:only-child{color:currentColor}.ivu-btn-info>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info:hover{color:#fff;background-color:#57c5f7;border-color:#57c5f7}.ivu-btn-info:hover>a:only-child{color:currentColor}.ivu-btn-info:hover>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info.active,.ivu-btn-info:active{color:#f2f2f2;background-color:#2baee9;border-color:#2baee9}.ivu-btn-info.active>a:only-child,.ivu-btn-info:active>a:only-child{color:currentColor}.ivu-btn-info.active>a:only-child:after,.ivu-btn-info:active>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info.disabled,.ivu-btn-info.disabled.active,.ivu-btn-info.disabled:active,.ivu-btn-info.disabled:focus,.ivu-btn-info.disabled:hover,.ivu-btn-info[disabled],.ivu-btn-info[disabled].active,.ivu-btn-info[disabled]:active,.ivu-btn-info[disabled]:focus,.ivu-btn-info[disabled]:hover,fieldset[disabled] .ivu-btn-info,fieldset[disabled] .ivu-btn-info.active,fieldset[disabled] .ivu-btn-info:active,fieldset[disabled] .ivu-btn-info:focus,fieldset[disabled] .ivu-btn-info:hover{color:#c5c8ce;background-color:#f7f7f7;border-color:#dcdee2}.ivu-btn-info.disabled.active>a:only-child,.ivu-btn-info.disabled:active>a:only-child,.ivu-btn-info.disabled:focus>a:only-child,.ivu-btn-info.disabled:hover>a:only-child,.ivu-btn-info.disabled>a:only-child,.ivu-btn-info[disabled].active>a:only-child,.ivu-btn-info[disabled]:active>a:only-child,.ivu-btn-info[disabled]:focus>a:only-child,.ivu-btn-info[disabled]:hover>a:only-child,.ivu-btn-info[disabled]>a:only-child,fieldset[disabled] .ivu-btn-info.active>a:only-child,fieldset[disabled] .ivu-btn-info:active>a:only-child,fieldset[disabled] .ivu-btn-info:focus>a:only-child,fieldset[disabled] .ivu-btn-info:hover>a:only-child,fieldset[disabled] .ivu-btn-info>a:only-child{color:currentColor}.ivu-btn-info.disabled.active>a:only-child:after,.ivu-btn-info.disabled:active>a:only-child:after,.ivu-btn-info.disabled:focus>a:only-child:after,.ivu-btn-info.disabled:hover>a:only-child:after,.ivu-btn-info.disabled>a:only-child:after,.ivu-btn-info[disabled].active>a:only-child:after,.ivu-btn-info[disabled]:active>a:only-child:after,.ivu-btn-info[disabled]:focus>a:only-child:after,.ivu-btn-info[disabled]:hover>a:only-child:after,.ivu-btn-info[disabled]>a:only-child:after,fieldset[disabled] .ivu-btn-info.active>a:only-child:after,fieldset[disabled] .ivu-btn-info:active>a:only-child:after,fieldset[disabled] .ivu-btn-info:focus>a:only-child:after,fieldset[disabled] .ivu-btn-info:hover>a:only-child:after,fieldset[disabled] .ivu-btn-info>a:only-child:after{content:'';position:absolute;top:0;left:0;bottom:0;right:0;background:0 0}.ivu-btn-info.active,.ivu-btn-info:active,.ivu-btn-info:hover{color:#fff}.ivu-btn-info:focus{-webkit-box-shadow:0 0 0 2px rgba(45,183,245,.2);box-shadow:0 0 0 2px rgba(45,183,245,.2)}.ivu-btn-circle,.ivu-btn-circle-outline{border-radius:32px}.ivu-btn-circle-outline.ivu-btn-large,.ivu-btn-circle.ivu-btn-large{border-radius:40px}.ivu-btn-circle-outline.ivu-btn-size,.ivu-btn-circle.ivu-btn-size{border-radius:24px}.ivu-btn-circle-outline.ivu-btn-icon-only,.ivu-btn-circle.ivu-btn-icon-only{width:32px;height:32px;padding:0;font-size:16px;border-radius:50%}.ivu-btn-circle-outline.ivu-btn-icon-only.ivu-btn-large,.ivu-btn-circle.ivu-btn-icon-only.ivu-btn-large{width:40px;height:40px;padding:0;font-size:18px;border-radius:50%}.ivu-btn-circle-outline.ivu-btn-icon-only.ivu-btn-small,.ivu-btn-circle.ivu-btn-icon-only.ivu-btn-small{width:24px;height:24px;padding:0;font-size:14px;border-radius:50%}.ivu-btn:before{position:absolute;top:-1px;left:-1px;bottom:-1px;right:-1px;background:#fff;opacity:.35;content:'';border-radius:inherit;z-index:1;-webkit-transition:opacity .2s;transition:opacity .2s;pointer-events:none;display:none}.ivu-btn.ivu-btn-loading{pointer-events:none;position:relative}.ivu-btn.ivu-btn-loading:before{display:block}.ivu-btn-group{position:relative;display:inline-block;vertical-align:middle}.ivu-btn-group>.ivu-btn{position:relative;float:left}.ivu-btn-group>.ivu-btn.active,.ivu-btn-group>.ivu-btn:active,.ivu-btn-group>.ivu-btn:hover{z-index:2}.ivu-btn-group-circle .ivu-btn{border-radius:32px}.ivu-btn-group-large.ivu-btn-group-circle .ivu-btn{border-radius:40px}.ivu-btn-group-large>.ivu-btn{height:40px;padding:0 15px;font-size:16px;border-radius:4px}.ivu-btn-group-small.ivu-btn-group-circle .ivu-btn{border-radius:24px}.ivu-btn-group-small>.ivu-btn{height:24px;padding:0 7px;font-size:14px;border-radius:3px}.ivu-btn-group-small>.ivu-btn>.ivu-icon{font-size:14px}.ivu-btn-group-small .ivu-btn-icon-only{width:24px;height:24px;padding:0}.ivu-btn-group-large .ivu-btn-icon-only{width:40px;height:40px;padding:0}.ivu-btn+.ivu-btn-group,.ivu-btn-group .ivu-btn+.ivu-btn,.ivu-btn-group+.ivu-btn,.ivu-btn-group+.ivu-btn-group{margin-left:-1px}.ivu-btn-group .ivu-btn:not(:first-child):not(:last-child){border-radius:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn:first-child{margin-left:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.ivu-btn-group>.ivu-btn-group{float:left}.ivu-btn-group>.ivu-btn-group:not(:first-child):not(:last-child)>.ivu-btn{border-radius:0}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn-group:first-child:not(:last-child)>.ivu-btn:last-child{border-bottom-right-radius:0;border-top-right-radius:0;padding-right:8px}.ivu-btn-group:not(.ivu-btn-group-vertical)>.ivu-btn-group:last-child:not(:first-child)>.ivu-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;padding-left:8px}.ivu-btn-group-vertical{display:inline-block;vertical-align:middle}.ivu-btn-group-vertical>.ivu-btn{display:block;width:100%;max-width:100%;float:none;min-width:32px}.ivu-btn-group-vertical.ivu-btn-group-small>.ivu-btn{min-width:24px}.ivu-btn-group-vertical.ivu-btn-group-large>.ivu-btn{min-width:40px}.ivu-btn+.ivu-btn-group-vertical,.ivu-btn-group-vertical .ivu-btn+.ivu-btn,.ivu-btn-group-vertical+.ivu-btn,.ivu-btn-group-vertical+.ivu-btn-group-vertical{margin-top:-1px;margin-left:0}.ivu-btn-group-vertical>.ivu-btn:first-child{margin-top:0}.ivu-btn-group-vertical>.ivu-btn:first-child:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0}.ivu-btn-group-vertical>.ivu-btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.ivu-btn-group-vertical>.ivu-btn-group-vertical:first-child:not(:last-child)>.ivu-btn:last-child{border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:8px}.ivu-btn-group-vertical>.ivu-btn-group-vertical:last-child:not(:first-child)>.ivu-btn:first-child{border-bottom-right-radius:0;border-bottom-left-radius:0;padding-top:8px}.ivu-btn-ghost{color:#fff;background:0 0}.ivu-btn-ghost:hover{background:0 0}.ivu-btn-ghost.ivu-btn-dashed,.ivu-btn-ghost.ivu-btn-default{color:#fff;border-color:#fff}.ivu-btn-ghost.ivu-btn-dashed:hover,.ivu-btn-ghost.ivu-btn-default:hover{color:#57a3f3;border-color:#57a3f3}.ivu-btn-ghost.ivu-btn-primary{color:#2d8cf0}.ivu-btn-ghost.ivu-btn-primary:hover{color:#57a3f3;background:rgba(245,249,254,.5)}.ivu-btn-ghost.ivu-btn-info{color:#2db7f5}.ivu-btn-ghost.ivu-btn-info:hover{color:#57c5f7;background:rgba(245,251,254,.5)}.ivu-btn-ghost.ivu-btn-success{color:#19be6b}.ivu-btn-ghost.ivu-btn-success:hover{color:#47cb89;background:rgba(244,252,248,.5)}.ivu-btn-ghost.ivu-btn-warning{color:#f90}.ivu-btn-ghost.ivu-btn-warning:hover{color:#ffad33;background:rgba(255,250,242,.5)}.ivu-btn-ghost.ivu-btn-error{color:#ed4014}.ivu-btn-ghost.ivu-btn-error:hover{color:#f16643;background:rgba(254,245,243,.5)}.ivu-btn-ghost.ivu-btn-dashed[disabled],.ivu-btn-ghost.ivu-btn-default[disabled],.ivu-btn-ghost.ivu-btn-error[disabled],.ivu-btn-ghost.ivu-btn-info[disabled],.ivu-btn-ghost.ivu-btn-primary[disabled],.ivu-btn-ghost.ivu-btn-success[disabled],.ivu-btn-ghost.ivu-btn-warning[disabled]{background:0 0;color:rgba(0,0,0,.25);border-color:#dcdee2}.ivu-btn-ghost.ivu-btn-text[disabled]{background:0 0;color:rgba(0,0,0,.25)}a.ivu-btn{padding-top:.1px;line-height:30px}a.ivu-btn-large{line-height:38px}a.ivu-btn-small{line-height:22px}.ivu-affix{position:fixed;z-index:10}.ivu-back-top{z-index:10;position:fixed;cursor:pointer;display:none}.ivu-back-top.ivu-back-top-show{display:block}.ivu-back-top-inner{background-color:rgba(0,0,0,.6);border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-back-top-inner:hover{background-color:rgba(0,0,0,.7)}.ivu-back-top i{color:#fff;font-size:24px;padding:8px 12px}.ivu-badge{position:relative;display:inline-block}.ivu-badge-count{font-family:"Monospaced Number";line-height:1;vertical-align:middle;position:absolute;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);top:-10px;right:0;height:20px;border-radius:10px;min-width:20px;background:#ed4014;border:1px solid transparent;color:#fff;line-height:18px;text-align:center;padding:0 6px;font-size:12px;white-space:nowrap;-webkit-transform-origin:-10% center;-ms-transform-origin:-10% center;transform-origin:-10% center;z-index:10;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ivu-badge-count-custom{background:0 0;color:inherit;border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ivu-badge-count a,.ivu-badge-count a:hover{color:#fff}.ivu-badge-count-alone{top:auto;display:block;position:relative;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.ivu-badge-count-primary{background:#2d8cf0}.ivu-badge-count-success{background:#19be6b}.ivu-badge-count-error{background:#ed4014}.ivu-badge-count-warning{background:#f90}.ivu-badge-count-info{background:#2db7f5}.ivu-badge-count-normal{background:#e6ebf1;color:#808695}.ivu-badge-dot{position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);-webkit-transform-origin:0 center;-ms-transform-origin:0 center;transform-origin:0 center;top:-4px;right:-8px;height:8px;width:8px;border-radius:100%;background:#ed4014;z-index:10;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ivu-badge-status{line-height:inherit;vertical-align:baseline}.ivu-badge-status-dot{width:6px;height:6px;display:inline-block;border-radius:50%;vertical-align:middle;position:relative;top:-1px}.ivu-badge-status-success{background-color:#19be6b}.ivu-badge-status-processing{background-color:#2d8cf0;position:relative}.ivu-badge-status-processing:after{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;border:1px solid #2d8cf0;content:'';-webkit-animation:aniStatusProcessing 1.2s infinite ease-in-out;animation:aniStatusProcessing 1.2s infinite ease-in-out}.ivu-badge-status-default{background-color:#e6ebf1}.ivu-badge-status-error{background-color:#ed4014}.ivu-badge-status-warning{background-color:#f90}.ivu-badge-status-text{display:inline-block;color:#515a6e;font-size:14px;margin-left:6px}.ivu-badge-status-pink{background-color:#eb2f96}.ivu-badge-status-magenta{background-color:#eb2f96}.ivu-badge-status-red{background-color:#f5222d}.ivu-badge-status-volcano{background-color:#fa541c}.ivu-badge-status-orange{background-color:#fa8c16}.ivu-badge-status-yellow{background-color:#fadb14}.ivu-badge-status-gold{background-color:#faad14}.ivu-badge-status-cyan{background-color:#13c2c2}.ivu-badge-status-lime{background-color:#a0d911}.ivu-badge-status-green{background-color:#52c41a}.ivu-badge-status-blue{background-color:#1890ff}.ivu-badge-status-geekblue{background-color:#2f54eb}.ivu-badge-status-purple{background-color:#722ed1}@-webkit-keyframes aniStatusProcessing{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.5}100%{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}@keyframes aniStatusProcessing{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.5}100%{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}.ivu-chart-circle{display:inline-block;position:relative}.ivu-chart-circle-inner{width:100%;text-align:center;position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);line-height:1}.ivu-spin{color:#2d8cf0;vertical-align:middle;text-align:center}.ivu-spin-dot{position:relative;display:block;border-radius:50%;background-color:#2d8cf0;width:20px;height:20px;-webkit-animation:ani-spin-bounce 1s 0s ease-in-out infinite;animation:ani-spin-bounce 1s 0s ease-in-out infinite}.ivu-spin-large .ivu-spin-dot{width:32px;height:32px}.ivu-spin-small .ivu-spin-dot{width:12px;height:12px}.ivu-spin-fix{position:absolute;top:0;left:0;z-index:8;width:100%;height:100%;background-color:rgba(255,255,255,.9)}.ivu-spin-fullscreen{z-index:2010}.ivu-spin-fullscreen-wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.ivu-spin-fix .ivu-spin-main{position:absolute;top:50%;left:50%;-ms-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ivu-spin-fix .ivu-spin-dot{display:inline-block}.ivu-spin-show-text .ivu-spin-dot,.ivu-spin-text{display:none}.ivu-spin-show-text .ivu-spin-text{display:block}.ivu-table-wrapper>.ivu-spin-fix{border:1px solid #dcdee2;border-top:0;border-left:0}@-webkit-keyframes ani-spin-bounce{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}@keyframes ani-spin-bounce{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.ivu-alert{position:relative;padding:8px 48px 8px 16px;border-radius:4px;color:#515a6e;font-size:14px;line-height:16px;margin-bottom:10px}.ivu-alert.ivu-alert-with-icon{padding:8px 48px 8px 38px}.ivu-alert-icon{font-size:16px;top:6px;left:12px;position:absolute}.ivu-alert-desc{font-size:14px;color:#515a6e;line-height:21px;display:none;text-align:justify}.ivu-alert-success{border:1px solid #8ce6b0;background-color:#edfff3}.ivu-alert-success .ivu-alert-icon{color:#19be6b}.ivu-alert-info{border:1px solid #abdcff;background-color:#f0faff}.ivu-alert-info .ivu-alert-icon{color:#2d8cf0}.ivu-alert-warning{border:1px solid #ffd77a;background-color:#fff9e6}.ivu-alert-warning .ivu-alert-icon{color:#f90}.ivu-alert-error{border:1px solid #ffb08f;background-color:#ffefe6}.ivu-alert-error .ivu-alert-icon{color:#ed4014}.ivu-alert-close{font-size:12px;position:absolute;right:8px;top:8px;overflow:hidden;cursor:pointer}.ivu-alert-close .ivu-icon-ios-close{font-size:22px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:-3px}.ivu-alert-close .ivu-icon-ios-close:hover{color:#444}.ivu-alert-with-desc{padding:16px;position:relative;border-radius:4px;margin-bottom:10px;color:#515a6e;line-height:1.5}.ivu-alert-with-desc.ivu-alert-with-icon{padding:16px 16px 16px 69px}.ivu-alert-with-desc .ivu-alert-desc{display:block}.ivu-alert-with-desc .ivu-alert-message{font-size:16px;color:#17233d;display:block;margin-bottom:4px}.ivu-alert-with-desc .ivu-alert-icon{top:50%;left:24px;margin-top:-24px;font-size:28px}.ivu-alert-with-banner{border-radius:0}.ivu-collapse{background-color:#f7f7f7;border-radius:3px;border:1px solid #dcdee2}.ivu-collapse-simple{border-left:none;border-right:none;background-color:#fff;border-radius:0}.ivu-collapse>.ivu-collapse-item{border-top:1px solid #dcdee2}.ivu-collapse>.ivu-collapse-item:first-child{border-top:0}.ivu-collapse>.ivu-collapse-item>.ivu-collapse-header{height:38px;line-height:38px;padding-left:16px;color:#666;cursor:pointer;position:relative;border-bottom:1px solid transparent;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-collapse>.ivu-collapse-item>.ivu-collapse-header>i{-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;margin-right:14px}.ivu-collapse>.ivu-collapse-item.ivu-collapse-item-active>.ivu-collapse-header{border-bottom:1px solid #dcdee2}.ivu-collapse-simple>.ivu-collapse-item.ivu-collapse-item-active>.ivu-collapse-header{border-bottom:1px solid transparent}.ivu-collapse>.ivu-collapse-item.ivu-collapse-item-active>.ivu-collapse-header>i{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ivu-collapse-content{color:#515a6e;padding:0 16px;background-color:#fff}.ivu-collapse-content>.ivu-collapse-content-box{padding-top:16px;padding-bottom:16px}.ivu-collapse-simple>.ivu-collapse-item>.ivu-collapse-content>.ivu-collapse-content-box{padding-top:0}.ivu-collapse-item:last-child>.ivu-collapse-content{border-radius:0 0 3px 3px}.ivu-card{display:block;background:#fff;border-radius:4px;font-size:14px;position:relative;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-card-bordered{border:1px solid #dcdee2;border-color:#e8eaec}.ivu-card-shadow{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.ivu-card:hover{-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);border-color:#eee}.ivu-card.ivu-card-dis-hover:hover{-webkit-box-shadow:none;box-shadow:none;border-color:transparent}.ivu-card.ivu-card-dis-hover.ivu-card-bordered:hover{border-color:#e8eaec}.ivu-card.ivu-card-shadow:hover{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.ivu-card-head{border-bottom:1px solid #e8eaec;padding:14px 16px;line-height:1}.ivu-card-head p,.ivu-card-head-inner{display:inline-block;width:100%;height:20px;line-height:20px;font-size:16px;color:#17233d;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-card-extra{position:absolute;right:16px;top:14px}.ivu-card-body{padding:16px}.ivu-message{font-size:14px;position:fixed;z-index:1010;width:100%;top:16px;left:0;pointer-events:none}.ivu-message-notice{padding:8px;text-align:center;-webkit-transition:height .3s ease-in-out,padding .3s ease-in-out;transition:height .3s ease-in-out,padding .3s ease-in-out}.ivu-message-notice:first-child{margin-top:-8px}.ivu-message-notice-close{position:absolute;right:4px;top:10px;color:#999;outline:0}.ivu-message-notice-close i.ivu-icon{font-size:22px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:-3px}.ivu-message-notice-close i.ivu-icon:hover{color:#444}.ivu-message-notice-content{display:inline-block;pointer-events:all;padding:8px 16px;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);background:#fff;position:relative}.ivu-message-notice-content-text{display:inline-block}.ivu-message-notice-closable .ivu-message-notice-content-text{padding-right:32px}.ivu-message-success .ivu-icon{color:#19be6b}.ivu-message-error .ivu-icon{color:#ed4014}.ivu-message-warning .ivu-icon{color:#f90}.ivu-message-info .ivu-icon,.ivu-message-loading .ivu-icon{color:#2d8cf0}.ivu-message .ivu-icon{margin-right:4px;font-size:16px;vertical-align:middle}.ivu-message-custom-content span{vertical-align:middle}.ivu-message-notice-with-background .ivu-message-notice-content-background{-webkit-box-shadow:none;box-shadow:none}.ivu-message-notice-with-background .ivu-message-notice-content-info{background:#f0faff;color:#2e8bf0;border:1px solid #d4eeff}.ivu-message-notice-with-background .ivu-message-notice-content-success{background:#edfff3;color:#19bf6c;border:1px solid #bbf2cf}.ivu-message-notice-with-background .ivu-message-notice-content-warning{background:#fff9e6;color:#f90;border:1px solid #ffe7a3}.ivu-message-notice-with-background .ivu-message-notice-content-error{background:#ffefe6;color:#ed3f13;border:1px solid #ffcfb8}.ivu-notice{width:335px;margin-right:24px;position:fixed;z-index:1010}.ivu-notice-content-with-icon{margin-left:51px}.ivu-notice-with-desc.ivu-notice-with-icon .ivu-notice-title{margin-left:51px}.ivu-notice-notice{margin-bottom:10px;padding:16px;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);background:#fff;line-height:1;position:relative;overflow:hidden}.ivu-notice-notice-close{position:absolute;right:8px;top:15px;color:#999;outline:0}.ivu-notice-notice-close i{font-size:22px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:-3px}.ivu-notice-notice-close i:hover{color:#444}.ivu-notice-notice-content-with-render .ivu-notice-desc{display:none}.ivu-notice-notice-with-desc .ivu-notice-notice-close{top:11px}.ivu-notice-content-with-render-notitle{margin-left:26px}.ivu-notice-title{font-size:16px;line-height:19px;color:#17233d;padding-right:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-notice-with-desc .ivu-notice-title{margin-bottom:8px}.ivu-notice-desc{font-size:14px;color:#515a6e;text-align:justify;line-height:1.5}.ivu-notice-with-desc.ivu-notice-with-icon .ivu-notice-desc{margin-left:51px}.ivu-notice-with-icon .ivu-notice-title{margin-left:26px}.ivu-notice-icon{position:absolute;top:-2px;font-size:20px}.ivu-notice-icon-success{color:#19be6b}.ivu-notice-icon-info{color:#2d8cf0}.ivu-notice-icon-warning{color:#f90}.ivu-notice-icon-error{color:#ed4014}.ivu-notice-with-desc .ivu-notice-icon{font-size:36px;top:-6px}.ivu-notice-custom-content{position:relative}.ivu-radio-focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2);z-index:1}.ivu-radio-group{display:inline-block;font-size:14px;vertical-align:middle}.ivu-radio-group-vertical .ivu-radio-wrapper{display:block;height:30px;line-height:30px}.ivu-radio-wrapper{font-size:14px;vertical-align:middle;display:inline-block;position:relative;white-space:nowrap;margin-right:8px;cursor:pointer}.ivu-radio-wrapper-disabled{cursor:not-allowed}.ivu-radio{display:inline-block;margin-right:4px;white-space:nowrap;position:relative;line-height:1;vertical-align:middle;cursor:pointer}.ivu-radio:hover .ivu-radio-inner{border-color:#bcbcbc}.ivu-radio-inner{display:inline-block;width:16px;height:16px;position:relative;top:0;left:0;background-color:#fff;border:1px solid #dcdee2;border-radius:50%;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-inner:after{position:absolute;width:10px;height:10px;left:2px;top:2px;border-radius:6px;display:table;border-top:0;border-left:0;content:' ';background-color:#2d8cf0;opacity:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.ivu-radio-large{font-size:16px}.ivu-radio-large .ivu-radio-inner{width:18px;height:18px}.ivu-radio-large .ivu-radio-inner:after{width:12px;height:12px}.ivu-radio-large .ivu-radio-wrapper,.ivu-radio-large.ivu-radio-wrapper{font-size:16px}.ivu-radio-small .ivu-radio-inner{width:14px;height:14px}.ivu-radio-small .ivu-radio-inner:after{width:8px;height:8px}.ivu-radio-input{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;opacity:0;cursor:pointer}.ivu-radio-border{border:1px solid #dcdee2;border-radius:4px;height:32px;line-height:30px;padding:0 15px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.ivu-radio-group-small .ivu-radio-border,.ivu-radio-small.ivu-radio-border{height:24px;line-height:22px;padding:0 7px}.ivu-radio-group-large .ivu-radio-border,.ivu-radio-large.ivu-radio-border{height:40px;line-height:36px;padding:0 15px}.ivu-radio-wrapper-checked.ivu-radio-border{border-color:#2d8cf0}.ivu-radio-wrapper-disabled.ivu-radio-border{border-color:#dcdee2}.ivu-radio-checked .ivu-radio-inner{border-color:#2d8cf0}.ivu-radio-checked .ivu-radio-inner:after{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-checked:hover .ivu-radio-inner{border-color:#2d8cf0}.ivu-radio-disabled{cursor:not-allowed}.ivu-radio-disabled .ivu-radio-input{cursor:not-allowed}.ivu-radio-disabled:hover .ivu-radio-inner{border-color:#dcdee2}.ivu-radio-disabled .ivu-radio-inner{border-color:#dcdee2;background-color:#f3f3f3}.ivu-radio-disabled .ivu-radio-inner:after{background-color:#ccc}.ivu-radio-disabled .ivu-radio-disabled+span{color:#ccc}span.ivu-radio+*{margin-left:2px;margin-right:2px}.ivu-radio-group-button{font-size:0;-webkit-text-size-adjust:none}.ivu-radio-group-button .ivu-radio{width:0;margin-right:0}.ivu-radio-group-button .ivu-radio-wrapper{display:inline-block;height:32px;line-height:30px;margin:0;padding:0 15px;font-size:14px;color:#515a6e;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;cursor:pointer;border:1px solid #dcdee2;border-left:0;background:#fff;position:relative}.ivu-radio-group-button .ivu-radio-wrapper>span{margin-left:0}.ivu-radio-group-button .ivu-radio-wrapper:after,.ivu-radio-group-button .ivu-radio-wrapper:before{content:'';display:block;position:absolute;width:1px;height:100%;left:-1px;top:0;background:#dcdee2;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-group-button .ivu-radio-wrapper:after{height:36px;left:-1px;top:-3px;background:rgba(45,140,240,.2);opacity:0}.ivu-radio-group-button .ivu-radio-wrapper:first-child{border-radius:4px 0 0 4px;border-left:1px solid #dcdee2}.ivu-radio-group-button .ivu-radio-wrapper:first-child:after,.ivu-radio-group-button .ivu-radio-wrapper:first-child:before{display:none}.ivu-radio-group-button .ivu-radio-wrapper:last-child{border-radius:0 4px 4px 0}.ivu-radio-group-button .ivu-radio-wrapper:first-child:last-child{border-radius:4px}.ivu-radio-group-button .ivu-radio-wrapper:hover{position:relative;color:#2d8cf0}.ivu-radio-group-button .ivu-radio-wrapper:hover .ivu-radio{background-color:#000}.ivu-radio-group-button .ivu-radio-wrapper .ivu-radio-inner,.ivu-radio-group-button .ivu-radio-wrapper input{opacity:0;width:0;height:0}.ivu-radio-group-button .ivu-radio-wrapper-checked{background:#fff;border-color:#2d8cf0;color:#2d8cf0;-webkit-box-shadow:-1px 0 0 0 #2d8cf0;box-shadow:-1px 0 0 0 #2d8cf0;z-index:1}.ivu-radio-group-button .ivu-radio-wrapper-checked:before{background:#2d8cf0;opacity:.1}.ivu-radio-group-button .ivu-radio-wrapper-checked.ivu-radio-focus{-webkit-box-shadow:-1px 0 0 0 #2d8cf0,0 0 0 2px rgba(45,140,240,.2);box-shadow:-1px 0 0 0 #2d8cf0,0 0 0 2px rgba(45,140,240,.2);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-radio-group-button .ivu-radio-wrapper-checked.ivu-radio-focus:after{left:-3px;top:-3px;opacity:1;background:rgba(45,140,240,.2)}.ivu-radio-group-button .ivu-radio-wrapper-checked.ivu-radio-focus:first-child{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-radio-group-button .ivu-radio-wrapper-checked:first-child{border-color:#2d8cf0;-webkit-box-shadow:none;box-shadow:none}.ivu-radio-group-button .ivu-radio-wrapper-checked:hover{border-color:#57a3f3;color:#57a3f3}.ivu-radio-group-button .ivu-radio-wrapper-checked:active{border-color:#2b85e4;color:#2b85e4}.ivu-radio-group-button .ivu-radio-wrapper-disabled{border-color:#dcdee2;background-color:#f7f7f7;cursor:not-allowed;color:#ccc}.ivu-radio-group-button .ivu-radio-wrapper-disabled:first-child,.ivu-radio-group-button .ivu-radio-wrapper-disabled:hover{border-color:#dcdee2;background-color:#f7f7f7;color:#ccc}.ivu-radio-group-button .ivu-radio-wrapper-disabled:first-child{border-left-color:#dcdee2}.ivu-radio-group-button .ivu-radio-wrapper-disabled.ivu-radio-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#dcdee2;-webkit-box-shadow:none!important;box-shadow:none!important}.ivu-radio-group-button.ivu-radio-group-large .ivu-radio-wrapper{height:40px;line-height:38px;font-size:16px}.ivu-radio-group-button.ivu-radio-group-large .ivu-radio-wrapper:after{height:44px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper{height:24px;line-height:22px;padding:0 12px;font-size:14px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper:after{height:28px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper:first-child{border-radius:3px 0 0 3px}.ivu-radio-group-button.ivu-radio-group-small .ivu-radio-wrapper:last-child{border-radius:0 3px 3px 0}.ivu-checkbox-focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2);z-index:1}.ivu-checkbox{display:inline-block;vertical-align:middle;white-space:nowrap;cursor:pointer;line-height:1;position:relative}.ivu-checkbox-disabled{cursor:not-allowed}.ivu-checkbox:hover .ivu-checkbox-inner{border-color:#bcbcbc}.ivu-checkbox-inner{display:inline-block;width:16px;height:16px;position:relative;top:0;left:0;border:1px solid #dcdee2;border-radius:2px;background-color:#fff;-webkit-transition:border-color .2s ease-in-out,background-color .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border-color .2s ease-in-out,background-color .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out;transition:border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-checkbox-inner:after{content:'';display:table;width:4px;height:8px;position:absolute;top:1px;left:4px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0);-ms-transform:rotate(45deg) scale(0);transform:rotate(45deg) scale(0);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-checkbox-large .ivu-checkbox-inner{width:18px;height:18px}.ivu-checkbox-large .ivu-checkbox-inner:after{width:5px;height:9px}.ivu-checkbox-small{font-size:14px}.ivu-checkbox-small .ivu-checkbox-inner{width:14px;height:14px}.ivu-checkbox-small .ivu-checkbox-inner:after{top:0;left:3px}.ivu-checkbox-input{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;cursor:pointer;opacity:0}.ivu-checkbox-input[disabled]{cursor:not-allowed}.ivu-checkbox-border{border:1px solid #dcdee2;border-radius:4px;height:32px;line-height:30px;padding:0 15px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.ivu-checkbox-group.ivu-checkbox-small .ivu-checkbox-border,.ivu-checkbox-small.ivu-checkbox-border{height:24px;line-height:22px;padding:0 7px}.ivu-checkbox-group.ivu-checkbox-large .ivu-checkbox-border,.ivu-checkbox-large.ivu-checkbox-border{height:40px;line-height:36px;padding:0 15px}.ivu-checkbox-wrapper-checked.ivu-checkbox-border{border-color:#2d8cf0}.ivu-checkbox-wrapper-disabled.ivu-checkbox-border{border-color:#dcdee2}.ivu-checkbox-checked:hover .ivu-checkbox-inner{border-color:#2d8cf0}.ivu-checkbox-checked .ivu-checkbox-inner{border-color:#2d8cf0;background-color:#2d8cf0}.ivu-checkbox-checked .ivu-checkbox-inner:after{content:'';display:table;width:4px;height:8px;position:absolute;top:2px;left:5px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1);-ms-transform:rotate(45deg) scale(1);transform:rotate(45deg) scale(1);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-checkbox-large .ivu-checkbox-checked .ivu-checkbox-inner:after{width:6px;height:10px}.ivu-checkbox-small .ivu-checkbox-checked .ivu-checkbox-inner:after{top:1px;left:4px}.ivu-checkbox-disabled.ivu-checkbox-checked:hover .ivu-checkbox-inner{border-color:#dcdee2}.ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner{background-color:#f3f3f3;border-color:#dcdee2}.ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:#ccc}.ivu-checkbox-disabled:hover .ivu-checkbox-inner{border-color:#dcdee2}.ivu-checkbox-disabled .ivu-checkbox-inner{border-color:#dcdee2;background-color:#f3f3f3}.ivu-checkbox-disabled .ivu-checkbox-inner:after{-webkit-animation-name:none;animation-name:none;border-color:#f3f3f3}.ivu-checkbox-disabled .ivu-checkbox-inner-input{cursor:default}.ivu-checkbox-disabled+span{color:#ccc;cursor:not-allowed}.ivu-checkbox-indeterminate .ivu-checkbox-inner:after{content:'';width:10px;height:1px;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);position:absolute;left:2px;top:6px}.ivu-checkbox-indeterminate:hover .ivu-checkbox-inner{border-color:#2d8cf0}.ivu-checkbox-indeterminate .ivu-checkbox-inner{background-color:#2d8cf0;border-color:#2d8cf0}.ivu-checkbox-indeterminate.ivu-checkbox-disabled .ivu-checkbox-inner{background-color:#f3f3f3;border-color:#dcdee2}.ivu-checkbox-indeterminate.ivu-checkbox-disabled .ivu-checkbox-inner:after{border-color:#c5c8ce}.ivu-checkbox-large .ivu-checkbox-indeterminate .ivu-checkbox-inner:after{width:12px;top:7px}.ivu-checkbox-small .ivu-checkbox-indeterminate .ivu-checkbox-inner:after{width:8px;top:5px}.ivu-checkbox-wrapper{cursor:pointer;font-size:14px;display:inline-block;margin-right:8px}.ivu-checkbox-wrapper-disabled{cursor:not-allowed}.ivu-checkbox-wrapper.ivu-checkbox-large{font-size:16px}.ivu-checkbox+span,.ivu-checkbox-wrapper+span{margin-right:4px}.ivu-checkbox-group{font-size:14px}.ivu-checkbox-group-item{display:inline-block}.ivu-switch{display:inline-block;width:44px;height:22px;line-height:20px;border-radius:22px;vertical-align:middle;border:1px solid #ccc;background-color:#ccc;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-switch-loading{opacity:.4}.ivu-switch-inner{color:#fff;font-size:12px;position:absolute;left:23px}.ivu-switch-inner i{width:12px;height:12px;text-align:center;position:relative;top:-1px}.ivu-switch:after{content:'';width:18px;height:18px;border-radius:18px;background-color:#fff;position:absolute;left:1px;top:1px;cursor:pointer;-webkit-transition:left .2s ease-in-out,width .2s ease-in-out;transition:left .2s ease-in-out,width .2s ease-in-out}.ivu-switch:active:after{width:26px}.ivu-switch:before{content:'';display:none;width:14px;height:14px;border-radius:50%;background-color:transparent;position:absolute;left:3px;top:3px;z-index:1;border:1px solid #2d8cf0;border-color:transparent transparent transparent #2d8cf0;-webkit-animation:switch-loading 1s linear;animation:switch-loading 1s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.ivu-switch-loading:before{display:block}.ivu-switch:focus{-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2);outline:0}.ivu-switch:focus:hover{-webkit-box-shadow:none;box-shadow:none}.ivu-switch-small{width:28px;height:16px;line-height:14px}.ivu-switch-small:after{width:12px;height:12px}.ivu-switch-small:active:after{width:14px}.ivu-switch-small:before{width:10px;height:10px;left:2px;top:2px}.ivu-switch-small.ivu-switch-checked:after{left:13px}.ivu-switch-small.ivu-switch-checked:before{left:14px}.ivu-switch-small:active.ivu-switch-checked:after{left:11px}.ivu-switch-large{width:56px}.ivu-switch-large:active:after{width:26px}.ivu-switch-large:active:after{width:30px}.ivu-switch-large.ivu-switch-checked:after{left:35px}.ivu-switch-large.ivu-switch-checked:before{left:37px}.ivu-switch-large:active.ivu-switch-checked:after{left:23px}.ivu-switch-checked{border-color:#2d8cf0;background-color:#2d8cf0}.ivu-switch-checked .ivu-switch-inner{left:7px}.ivu-switch-checked:after{left:23px}.ivu-switch-checked:before{left:25px}.ivu-switch-checked:active:after{left:15px}.ivu-switch-disabled{cursor:not-allowed;opacity:.4}.ivu-switch-disabled:after{background:#fff;cursor:not-allowed}.ivu-switch-disabled .ivu-switch-inner{color:#fff}.ivu-switch-disabled.ivu-switch-checked{border-color:#2d8cf0;background-color:#2d8cf0;opacity:.4}.ivu-switch-disabled.ivu-switch-checked:after{background:#fff}.ivu-switch-disabled.ivu-switch-checked .ivu-switch-inner{color:#fff}@-webkit-keyframes switch-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes switch-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ivu-input-number{display:inline-block;width:100%;line-height:1.5;padding:4px 7px;font-size:14px;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;margin:0;padding:0;width:80px;height:32px;line-height:32px;vertical-align:middle;border:1px solid #dcdee2;border-radius:4px;overflow:hidden;cursor:default}.ivu-input-number::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-input-number:-ms-input-placeholder{color:#c5c8ce}.ivu-input-number::-webkit-input-placeholder{color:#c5c8ce}.ivu-input-number:hover{border-color:#57a3f3}.ivu-input-number:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-input-number[disabled],fieldset[disabled] .ivu-input-number{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input-number[disabled]:hover,fieldset[disabled] .ivu-input-number:hover{border-color:#e3e5e8}textarea.ivu-input-number{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-input-number-large{font-size:16px;padding:6px 7px;height:40px}.ivu-input-number-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-input-number-handler-wrap{width:22px;height:100%;border-left:1px solid #dcdee2;border-radius:0 4px 4px 0;background:#fff;position:absolute;top:0;right:0;opacity:0;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.ivu-input-number:hover .ivu-input-number-handler-wrap{opacity:1}.ivu-input-number-handler-up{cursor:pointer}.ivu-input-number-handler-up-inner{top:1px}.ivu-input-number-handler-down{border-top:1px solid #dcdee2;top:-1px;cursor:pointer}.ivu-input-number-handler{display:block;width:100%;height:16px;line-height:0;text-align:center;overflow:hidden;color:#999;position:relative}.ivu-input-number-handler:hover .ivu-input-number-handler-down-inner,.ivu-input-number-handler:hover .ivu-input-number-handler-up-inner{color:#57a3f3}.ivu-input-number-handler-down-inner,.ivu-input-number-handler-up-inner{width:12px;height:12px;line-height:12px;font-size:14px;color:#999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;right:5px;-webkit-transition:all .2s linear;transition:all .2s linear}.ivu-input-number:hover{border-color:#57a3f3}.ivu-input-number-focused{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-input-number-disabled{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input-number-disabled:hover{border-color:#e3e5e8}.ivu-input-number-input-wrap{overflow:hidden;height:32px}.ivu-input-number-input{width:100%;height:32px;line-height:32px;padding:0 7px;text-align:left;outline:0;-moz-appearance:textfield;color:#666;border:0;border-radius:4px;-webkit-transition:all .2s linear;transition:all .2s linear}.ivu-input-number-input[disabled]{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input-number-input[disabled]:hover{border-color:#e3e5e8}.ivu-input-number-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-input-number-input::-moz-placeholder{color:#c5c8ce}.ivu-input-number-input::-ms-input-placeholder{color:#c5c8ce}.ivu-input-number-input::placeholder{color:#c5c8ce}.ivu-input-number-large{padding:0}.ivu-input-number-large .ivu-input-number-input-wrap{height:40px}.ivu-input-number-large .ivu-input-number-handler{height:20px}.ivu-input-number-large input{height:40px;line-height:40px}.ivu-input-number-large .ivu-input-number-handler-up-inner{top:2px}.ivu-input-number-large .ivu-input-number-handler-down-inner{bottom:2px}.ivu-input-number-small{padding:0}.ivu-input-number-small .ivu-input-number-input-wrap{height:24px}.ivu-input-number-small .ivu-input-number-handler{height:12px}.ivu-input-number-small input{height:24px;line-height:24px;margin-top:-1px;vertical-align:top}.ivu-input-number-small .ivu-input-number-handler-up-inner{top:-1px}.ivu-input-number-small .ivu-input-number-handler-down-inner{bottom:-1px}.ivu-input-number-disabled .ivu-input-number-handler-down-inner,.ivu-input-number-disabled .ivu-input-number-handler-up-inner,.ivu-input-number-handler-down-disabled .ivu-input-number-handler-down-inner,.ivu-input-number-handler-down-disabled .ivu-input-number-handler-up-inner,.ivu-input-number-handler-up-disabled .ivu-input-number-handler-down-inner,.ivu-input-number-handler-up-disabled .ivu-input-number-handler-up-inner{opacity:.72;color:#ccc!important;cursor:not-allowed}.ivu-input-number-disabled .ivu-input-number-input{opacity:.72;cursor:not-allowed;background-color:#f3f3f3}.ivu-input-number-disabled .ivu-input-number-handler-wrap{display:none}.ivu-input-number-disabled .ivu-input-number-handler{opacity:.72;color:#ccc!important;cursor:not-allowed}.ivu-form-item-error .ivu-input-number{border:1px solid #ed4014}.ivu-form-item-error .ivu-input-number:hover{border-color:#ed4014}.ivu-form-item-error .ivu-input-number:focus{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-form-item-error .ivu-input-number-focused{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-scroll-wrapper{width:auto;margin:0 auto;position:relative;outline:0}.ivu-scroll-container{overflow-y:scroll}.ivu-scroll-content{opacity:1;-webkit-transition:opacity .5s;transition:opacity .5s}.ivu-scroll-content-loading{opacity:.5}.ivu-scroll-loader{text-align:center;padding:0;-webkit-transition:padding .5s;transition:padding .5s}.ivu-scroll-loader-wrapper{padding:5px 0;height:0;background-color:inherit;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:opacity .3s,height .5s,-webkit-transform .5s;transition:opacity .3s,height .5s,-webkit-transform .5s;transition:opacity .3s,transform .5s,height .5s;transition:opacity .3s,transform .5s,height .5s,-webkit-transform .5s}.ivu-scroll-loader-wrapper-active{height:40px;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}@-webkit-keyframes ani-demo-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes ani-demo-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ivu-scroll-loader-wrapper .ivu-scroll-spinner{position:relative}.ivu-scroll-loader-wrapper .ivu-scroll-spinner-icon{-webkit-animation:ani-demo-spin 1s linear infinite;animation:ani-demo-spin 1s linear infinite}.ivu-tag{display:inline-block;height:22px;line-height:22px;margin:2px 4px 2px 0;padding:0 8px;border:1px solid #e8eaec;border-radius:3px;background:#f7f7f7;font-size:12px;vertical-align:middle;opacity:1;overflow:hidden}.ivu-tag-size-large{height:32px;line-height:32px;padding:0 12px}.ivu-tag-size-medium{height:28px;line-height:28px;padding:0 10px}.ivu-tag:not(.ivu-tag-border):not(.ivu-tag-dot):not(.ivu-tag-checked){background:0 0;border:0;color:#515a6e}.ivu-tag:not(.ivu-tag-border):not(.ivu-tag-dot):not(.ivu-tag-checked) .ivu-icon-ios-close{color:#515a6e!important}.ivu-tag-color-error{color:#ed4014!important;border-color:#ed4014}.ivu-tag-color-success{color:#19be6b!important;border-color:#19be6b}.ivu-tag-color-primary{color:#2d8cf0!important;border-color:#2d8cf0}.ivu-tag-color-warning{color:#f90!important;border-color:#f90}.ivu-tag-color-white{color:#fff!important}.ivu-tag-dot{height:32px;line-height:32px;border:1px solid #e8eaec!important;color:#515a6e!important;background:#fff!important;padding:0 12px}.ivu-tag-dot-inner{display:inline-block;width:12px;height:12px;margin-right:8px;border-radius:50%;background:#e8eaec;position:relative;top:1px}.ivu-tag-dot .ivu-icon-ios-close{color:#666!important;margin-left:12px!important}.ivu-tag-border{height:24px;line-height:24px;border:1px solid #e8eaec;color:#e8eaec;background:#fff!important;position:relative}.ivu-tag-border .ivu-icon-ios-close{color:#666;margin-left:12px!important}.ivu-tag-border:after{content:"";display:none;width:1px;background:currentColor;position:absolute;top:0;bottom:0;right:22px}.ivu-tag-border.ivu-tag-closable:after{display:block}.ivu-tag-border.ivu-tag-closable .ivu-icon-ios-close{margin-left:18px!important;left:4px;top:-1px}.ivu-tag-border.ivu-tag-primary{color:#2d8cf0!important;border:1px solid #2d8cf0!important}.ivu-tag-border.ivu-tag-primary:after{background:#2d8cf0}.ivu-tag-border.ivu-tag-primary .ivu-icon-ios-close{color:#2d8cf0!important}.ivu-tag-border.ivu-tag-success{color:#19be6b!important;border:1px solid #19be6b!important}.ivu-tag-border.ivu-tag-success:after{background:#19be6b}.ivu-tag-border.ivu-tag-success .ivu-icon-ios-close{color:#19be6b!important}.ivu-tag-border.ivu-tag-warning{color:#f90!important;border:1px solid #f90!important}.ivu-tag-border.ivu-tag-warning:after{background:#f90}.ivu-tag-border.ivu-tag-warning .ivu-icon-ios-close{color:#f90!important}.ivu-tag-border.ivu-tag-error{color:#ed4014!important;border:1px solid #ed4014!important}.ivu-tag-border.ivu-tag-error:after{background:#ed4014}.ivu-tag-border.ivu-tag-error .ivu-icon-ios-close{color:#ed4014!important}.ivu-tag:hover{opacity:.85}.ivu-tag-text{color:#515a6e}.ivu-tag-text a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ivu-tag .ivu-icon-ios-close{display:inline-block;font-size:14px;-webkit-transform:scale(1.42857143) rotate(0);-ms-transform:scale(1.42857143) rotate(0);transform:scale(1.42857143) rotate(0);cursor:pointer;margin-left:2px;color:#666;opacity:.66;position:relative;top:-1px}:root .ivu-tag .ivu-icon-ios-close{font-size:14px}.ivu-tag .ivu-icon-ios-close:hover{opacity:1}.ivu-tag-error,.ivu-tag-primary,.ivu-tag-success,.ivu-tag-warning{border:0}.ivu-tag-error,.ivu-tag-error .ivu-icon-ios-close,.ivu-tag-error .ivu-icon-ios-close:hover,.ivu-tag-error a,.ivu-tag-error a:hover,.ivu-tag-primary,.ivu-tag-primary .ivu-icon-ios-close,.ivu-tag-primary .ivu-icon-ios-close:hover,.ivu-tag-primary a,.ivu-tag-primary a:hover,.ivu-tag-success,.ivu-tag-success .ivu-icon-ios-close,.ivu-tag-success .ivu-icon-ios-close:hover,.ivu-tag-success a,.ivu-tag-success a:hover,.ivu-tag-warning,.ivu-tag-warning .ivu-icon-ios-close,.ivu-tag-warning .ivu-icon-ios-close:hover,.ivu-tag-warning a,.ivu-tag-warning a:hover{color:#fff}.ivu-tag-primary,.ivu-tag-primary.ivu-tag-dot .ivu-tag-dot-inner{background:#2d8cf0}.ivu-tag-success,.ivu-tag-success.ivu-tag-dot .ivu-tag-dot-inner{background:#19be6b}.ivu-tag-warning,.ivu-tag-warning.ivu-tag-dot .ivu-tag-dot-inner{background:#f90}.ivu-tag-error,.ivu-tag-error.ivu-tag-dot .ivu-tag-dot-inner{background:#ed4014}.ivu-tag-pink{line-height:20px;background:#fff0f6;border-color:#ffadd2}.ivu-tag-pink .ivu-tag-text{color:#eb2f96!important}.ivu-tag-pink.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-pink{line-height:30px}.ivu-tag-size-medium.ivu-tag-pink{line-height:26px}.ivu-tag-magenta{line-height:20px;background:#fff0f6;border-color:#ffadd2}.ivu-tag-magenta .ivu-tag-text{color:#eb2f96!important}.ivu-tag-magenta.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-magenta{line-height:30px}.ivu-tag-size-medium.ivu-tag-magenta{line-height:26px}.ivu-tag-red{line-height:20px;background:#fff1f0;border-color:#ffa39e}.ivu-tag-red .ivu-tag-text{color:#f5222d!important}.ivu-tag-red.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-red{line-height:30px}.ivu-tag-size-medium.ivu-tag-red{line-height:26px}.ivu-tag-volcano{line-height:20px;background:#fff2e8;border-color:#ffbb96}.ivu-tag-volcano .ivu-tag-text{color:#fa541c!important}.ivu-tag-volcano.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-volcano{line-height:30px}.ivu-tag-size-medium.ivu-tag-volcano{line-height:26px}.ivu-tag-orange{line-height:20px;background:#fff7e6;border-color:#ffd591}.ivu-tag-orange .ivu-tag-text{color:#fa8c16!important}.ivu-tag-orange.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-orange{line-height:30px}.ivu-tag-size-medium.ivu-tag-orange{line-height:26px}.ivu-tag-yellow{line-height:20px;background:#feffe6;border-color:#fffb8f}.ivu-tag-yellow .ivu-tag-text{color:#fadb14!important}.ivu-tag-yellow.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-yellow{line-height:30px}.ivu-tag-size-medium.ivu-tag-yellow{line-height:26px}.ivu-tag-gold{line-height:20px;background:#fffbe6;border-color:#ffe58f}.ivu-tag-gold .ivu-tag-text{color:#faad14!important}.ivu-tag-gold.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-gold{line-height:30px}.ivu-tag-size-medium.ivu-tag-gold{line-height:26px}.ivu-tag-cyan{line-height:20px;background:#e6fffb;border-color:#87e8de}.ivu-tag-cyan .ivu-tag-text{color:#13c2c2!important}.ivu-tag-cyan.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-cyan{line-height:30px}.ivu-tag-size-medium.ivu-tag-cyan{line-height:26px}.ivu-tag-lime{line-height:20px;background:#fcffe6;border-color:#eaff8f}.ivu-tag-lime .ivu-tag-text{color:#a0d911!important}.ivu-tag-lime.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-lime{line-height:30px}.ivu-tag-size-medium.ivu-tag-lime{line-height:26px}.ivu-tag-green{line-height:20px;background:#f6ffed;border-color:#b7eb8f}.ivu-tag-green .ivu-tag-text{color:#52c41a!important}.ivu-tag-green.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-green{line-height:30px}.ivu-tag-size-medium.ivu-tag-green{line-height:26px}.ivu-tag-blue{line-height:20px;background:#e6f7ff;border-color:#91d5ff}.ivu-tag-blue .ivu-tag-text{color:#1890ff!important}.ivu-tag-blue.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-blue{line-height:30px}.ivu-tag-size-medium.ivu-tag-blue{line-height:26px}.ivu-tag-geekblue{line-height:20px;background:#f0f5ff;border-color:#adc6ff}.ivu-tag-geekblue .ivu-tag-text{color:#2f54eb!important}.ivu-tag-geekblue.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-geekblue{line-height:30px}.ivu-tag-size-medium.ivu-tag-geekblue{line-height:26px}.ivu-tag-purple{line-height:20px;background:#f9f0ff;border-color:#d3adf7}.ivu-tag-purple .ivu-tag-text{color:#722ed1!important}.ivu-tag-purple.ivu-tag-dot{line-height:32px}.ivu-tag-size-large.ivu-tag-purple{line-height:30px}.ivu-tag-size-medium.ivu-tag-purple{line-height:26px}.ivu-layout{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:auto;flex:auto;background:#f5f7f9}.ivu-layout.ivu-layout-has-sider{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.ivu-layout.ivu-layout-has-sider>.ivu-layout,.ivu-layout.ivu-layout-has-sider>.ivu-layout-content{overflow-x:hidden}.ivu-layout-footer,.ivu-layout-header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.ivu-layout-header{background:#515a6e;padding:0 50px;height:64px;line-height:64px}.ivu-layout-sider{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:relative;background:#515a6e;min-width:0}.ivu-layout-sider-children{height:100%;padding-top:.1px;margin-top:-.1px}.ivu-layout-sider-has-trigger{padding-bottom:48px}.ivu-layout-sider-trigger{position:fixed;bottom:0;text-align:center;cursor:pointer;height:48px;line-height:48px;color:#fff;background:#515a6e;z-index:1000;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-layout-sider-trigger .ivu-icon{font-size:16px}.ivu-layout-sider-trigger>*{-webkit-transition:all .2s;transition:all .2s}.ivu-layout-sider-trigger-collapsed .ivu-layout-sider-trigger-icon{-webkit-transform:rotateZ(180deg);-ms-transform:rotate(180deg);transform:rotateZ(180deg)}.ivu-layout-sider-zero-width>*{overflow:hidden}.ivu-layout-sider-zero-width-trigger{position:absolute;top:64px;right:-36px;text-align:center;width:36px;height:42px;line-height:42px;background:#515a6e;color:#fff;font-size:18px;border-radius:0 6px 6px 0;cursor:pointer;-webkit-transition:background .3s ease;transition:background .3s ease}.ivu-layout-sider-zero-width-trigger:hover{background:#626b7d}.ivu-layout-sider-zero-width-trigger.ivu-layout-sider-zero-width-trigger-left{right:0;left:-36px;border-radius:6px 0 0 6px}.ivu-layout-footer{background:#f5f7f9;padding:24px 50px;color:#515a6e;font-size:14px}.ivu-layout-content{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.ivu-loading-bar{width:100%;position:fixed;top:0;left:0;right:0;z-index:2000}.ivu-loading-bar-inner{-webkit-transition:width .2s linear;transition:width .2s linear}.ivu-loading-bar-inner-color-primary{background-color:#2d8cf0}.ivu-loading-bar-inner-failed-color-error{background-color:#ed4014}.ivu-progress{display:inline-block;width:100%;font-size:12px;position:relative}.ivu-progress-vertical{height:100%;width:auto}.ivu-progress-outer{display:inline-block;width:100%;margin-right:0;padding-right:0}.ivu-progress-show-info .ivu-progress-outer{padding-right:55px;margin-right:-55px}.ivu-progress-vertical .ivu-progress-outer{height:100%;width:auto}.ivu-progress-inner{display:inline-block;width:100%;background-color:#f3f3f3;border-radius:100px;vertical-align:middle;position:relative}.ivu-progress-inner-text{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 6px}.ivu-progress-vertical .ivu-progress-inner{height:100%;width:auto}.ivu-progress-vertical .ivu-progress-inner:after,.ivu-progress-vertical .ivu-progress-inner>*{display:inline-block;vertical-align:bottom}.ivu-progress-vertical .ivu-progress-inner:after{content:'';height:100%}.ivu-progress-bg{text-align:right;border-radius:100px;background-color:#2d8cf0;-webkit-transition:all .2s linear;transition:all .2s linear;position:relative}.ivu-progress-bg:after{content:'';display:inline-block;height:100%;vertical-align:middle}.ivu-progress-success-bg{border-radius:100px;background-color:#19be6b;-webkit-transition:all .2s linear;transition:all .2s linear;position:absolute;top:0;left:0}.ivu-progress-text{display:inline-block;margin-left:5px;text-align:left;font-size:1em;vertical-align:middle;color:#808695}.ivu-progress-active .ivu-progress-bg:before{content:'';opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;border-radius:10px;-webkit-animation:ivu-progress-active 2s ease-in-out infinite;animation:ivu-progress-active 2s ease-in-out infinite}.ivu-progress-vertical.ivu-progress-active .ivu-progress-bg:before{top:auto;-webkit-animation:ivu-progress-active-vertical 2s ease-in-out infinite;animation:ivu-progress-active-vertical 2s ease-in-out infinite}.ivu-progress-wrong .ivu-progress-bg{background-color:#ed4014}.ivu-progress-wrong .ivu-progress-text{color:#ed4014}.ivu-progress-success .ivu-progress-bg{background-color:#19be6b}.ivu-progress-success .ivu-progress-text{color:#19be6b}@-webkit-keyframes ivu-progress-active{0%{opacity:.3;width:0}100%{opacity:0;width:100%}}@keyframes ivu-progress-active{0%{opacity:.3;width:0}100%{opacity:0;width:100%}}@-webkit-keyframes ivu-progress-active-vertical{0%{opacity:.3;height:0}100%{opacity:0;height:100%}}@keyframes ivu-progress-active-vertical{0%{opacity:.3;height:0}100%{opacity:0;height:100%}}.ivu-timeline{list-style:none;margin:0;padding:0}.ivu-timeline-item{margin:0!important;padding:0 0 12px 0;list-style:none;position:relative}.ivu-timeline-item-tail{height:100%;border-left:1px solid #e8eaec;position:absolute;left:6px;top:0}.ivu-timeline-item-pending .ivu-timeline-item-tail{display:none}.ivu-timeline-item-head{width:13px;height:13px;background-color:#fff;border-radius:50%;border:1px solid transparent;position:absolute}.ivu-timeline-item-head-blue{border-color:#2d8cf0;color:#2d8cf0}.ivu-timeline-item-head-red{border-color:#ed4014;color:#ed4014}.ivu-timeline-item-head-green{border-color:#19be6b;color:#19be6b}.ivu-timeline-item-head-custom{width:40px;height:auto;margin-top:6px;padding:3px 0;text-align:center;line-height:1;border:0;border-radius:0;font-size:14px;position:absolute;left:-13px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ivu-timeline-item-content{padding:1px 1px 10px 24px;font-size:14px;position:relative;top:-3px}.ivu-timeline-item:last-child .ivu-timeline-item-tail{display:none}.ivu-timeline.ivu-timeline-pending .ivu-timeline-item:nth-last-of-type(2) .ivu-timeline-item-tail{border-left:1px dotted #e8eaec}.ivu-timeline.ivu-timeline-pending .ivu-timeline-item:nth-last-of-type(2) .ivu-timeline-item-content{min-height:48px}.ivu-page:after{content:'';display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.ivu-page-item{display:inline-block;vertical-align:middle;min-width:32px;height:32px;line-height:30px;margin-right:4px;text-align:center;list-style:none;background-color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;font-family:Arial;font-weight:500;border:1px solid #dcdee2;border-radius:4px;-webkit-transition:border .2s ease-in-out,color .2s ease-in-out;transition:border .2s ease-in-out,color .2s ease-in-out}.ivu-page-item a{margin:0 6px;text-decoration:none;color:#515a6e}.ivu-page-item:hover{border-color:#2d8cf0}.ivu-page-item:hover a{color:#2d8cf0}.ivu-page-item-active{border-color:#2d8cf0}.ivu-page-item-active a,.ivu-page-item-active:hover a{color:#2d8cf0}.ivu-page-with-disabled .ivu-page-disabled,.ivu-page-with-disabled .ivu-page-item{cursor:not-allowed;background-color:#f3f3f3}.ivu-page-with-disabled .ivu-page-disabled a,.ivu-page-with-disabled .ivu-page-item a{color:#ccc}.ivu-page-with-disabled .ivu-page-disabled:hover,.ivu-page-with-disabled .ivu-page-item:hover{border-color:#dcdee2}.ivu-page-with-disabled .ivu-page-disabled:hover a,.ivu-page-with-disabled .ivu-page-item:hover a{color:#ccc;cursor:not-allowed}.ivu-page-with-disabled .ivu-page-disabled-active,.ivu-page-with-disabled .ivu-page-item-active{background-color:#dcdee2;border-color:#dcdee2}.ivu-page-with-disabled .ivu-page-disabled-active a,.ivu-page-with-disabled .ivu-page-disabled-active:hover a,.ivu-page-with-disabled .ivu-page-item-active a,.ivu-page-with-disabled .ivu-page-item-active:hover a{color:#fff}.ivu-page-item-jump-next:after,.ivu-page-item-jump-prev:after{content:"•••";display:block;letter-spacing:1px;color:#ccc;text-align:center}.ivu-page-item-jump-next i,.ivu-page-item-jump-prev i{display:none}.ivu-page-item-jump-next:hover:after,.ivu-page-item-jump-prev:hover:after{display:none}.ivu-page-item-jump-next:hover i,.ivu-page-item-jump-prev:hover i{display:inline}.ivu-page-with-disabled .ivu-page-item-jump-next,.ivu-page-with-disabled .ivu-page-item-jump-prev{cursor:not-allowed}.ivu-page-with-disabled .ivu-page-item-jump-next:hover:after,.ivu-page-with-disabled .ivu-page-item-jump-prev:hover:after{display:block}.ivu-page-with-disabled .ivu-page-item-jump-next:hover i,.ivu-page-with-disabled .ivu-page-item-jump-prev:hover i{display:none}.ivu-page-item-jump-prev:hover i:after{content:"\F115";margin-left:-8px}.ivu-page-item-jump-next:hover i:after{content:"\F11F";margin-left:-8px}.ivu-page-prev{margin-right:4px}.ivu-page-item-jump-next,.ivu-page-item-jump-prev{margin-right:4px}.ivu-page-item-jump-next,.ivu-page-item-jump-prev,.ivu-page-next,.ivu-page-prev{display:inline-block;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-width:32px;height:32px;line-height:30px;list-style:none;text-align:center;cursor:pointer;color:#666;font-family:Arial;border:1px solid #dcdee2;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-page-item-jump-next,.ivu-page-item-jump-prev{border-color:transparent}.ivu-page-next,.ivu-page-prev{background-color:#fff}.ivu-page-next a,.ivu-page-prev a{color:#666;font-size:14px}.ivu-page-next:hover,.ivu-page-prev:hover{border-color:#2d8cf0}.ivu-page-next:hover a,.ivu-page-prev:hover a{color:#2d8cf0}.ivu-page-disabled{cursor:not-allowed}.ivu-page-disabled a{color:#ccc}.ivu-page-disabled:hover{border-color:#dcdee2}.ivu-page-disabled:hover a{color:#ccc;cursor:not-allowed}.ivu-page-options{display:inline-block;vertical-align:middle;margin-left:15px}.ivu-page-options-sizer{display:inline-block;margin-right:10px}.ivu-page-options-elevator{display:inline-block;vertical-align:middle;height:32px;line-height:32px}.ivu-page-options-elevator input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;border:1px solid #dcdee2;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;border-radius:4px;margin:0 8px;width:50px}.ivu-page-options-elevator input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-page-options-elevator input:-ms-input-placeholder{color:#c5c8ce}.ivu-page-options-elevator input::-webkit-input-placeholder{color:#c5c8ce}.ivu-page-options-elevator input:hover{border-color:#57a3f3}.ivu-page-options-elevator input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-page-options-elevator input[disabled],fieldset[disabled] .ivu-page-options-elevator input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-page-options-elevator input[disabled]:hover,fieldset[disabled] .ivu-page-options-elevator input:hover{border-color:#e3e5e8}textarea.ivu-page-options-elevator input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-page-options-elevator input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-page-options-elevator input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-page-total{display:inline-block;height:32px;line-height:32px;margin-right:10px}.ivu-page-simple .ivu-page-next,.ivu-page-simple .ivu-page-prev{margin:0;border:0;height:24px;line-height:normal;font-size:18px}.ivu-page-simple .ivu-page-simple-pager{display:inline-block;margin-right:8px;vertical-align:middle}.ivu-page-simple .ivu-page-simple-pager input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;color:#515a6e;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;width:30px;height:24px;margin:0 8px;padding:5px 8px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;outline:0;border:1px solid #dcdee2;border-radius:4px;-webkit-transition:border-color .2s ease-in-out;transition:border-color .2s ease-in-out}.ivu-page-simple .ivu-page-simple-pager input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-page-simple .ivu-page-simple-pager input:-ms-input-placeholder{color:#c5c8ce}.ivu-page-simple .ivu-page-simple-pager input::-webkit-input-placeholder{color:#c5c8ce}.ivu-page-simple .ivu-page-simple-pager input:hover{border-color:#57a3f3}.ivu-page-simple .ivu-page-simple-pager input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-page-simple .ivu-page-simple-pager input[disabled],fieldset[disabled] .ivu-page-simple .ivu-page-simple-pager input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-page-simple .ivu-page-simple-pager input[disabled]:hover,fieldset[disabled] .ivu-page-simple .ivu-page-simple-pager input:hover{border-color:#e3e5e8}textarea.ivu-page-simple .ivu-page-simple-pager input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-page-simple .ivu-page-simple-pager input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-page-simple .ivu-page-simple-pager input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-page-simple .ivu-page-simple-pager input:hover{border-color:#2d8cf0}.ivu-page-simple .ivu-page-simple-pager span{padding:0 8px 0 2px}.ivu-page-custom-text,.ivu-page-custom-text:hover{border-color:transparent}.ivu-page.mini .ivu-page-total{height:24px;line-height:24px}.ivu-page.mini .ivu-page-item{border:0;margin:0;min-width:24px;height:24px;line-height:24px;border-radius:3px}.ivu-page.mini .ivu-page-next,.ivu-page.mini .ivu-page-prev{margin:0;min-width:24px;height:24px;line-height:22px;border:0}.ivu-page.mini .ivu-page-next a i:after,.ivu-page.mini .ivu-page-prev a i:after{height:24px;line-height:24px}.ivu-page.mini .ivu-page-item-jump-next,.ivu-page.mini .ivu-page-item-jump-prev{height:24px;line-height:24px;border:none;margin-right:0}.ivu-page.mini .ivu-page-options{margin-left:8px}.ivu-page.mini .ivu-page-options-elevator{height:24px;line-height:24px}.ivu-page.mini .ivu-page-options-elevator input{padding:1px 7px;height:24px;border-radius:3px;width:44px}.ivu-steps{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;font-size:0;line-height:1.5}.ivu-steps-item{display:inline-block;position:relative;vertical-align:top;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.ivu-steps-item:last-child{-webkit-box-flex:0;-ms-flex:0;flex:none}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-head-inner{background-color:#fff}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-head-inner span,.ivu-steps-item.ivu-steps-status-wait .ivu-steps-head-inner>.ivu-steps-icon{color:#ccc}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-title{color:#999}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-content{color:#999}.ivu-steps-item.ivu-steps-status-wait .ivu-steps-tail>i{background-color:#e8eaec}.ivu-steps-item.ivu-steps-status-process .ivu-steps-head-inner{border-color:#2d8cf0;background-color:#2d8cf0}.ivu-steps-item.ivu-steps-status-process .ivu-steps-head-inner span,.ivu-steps-item.ivu-steps-status-process .ivu-steps-head-inner>.ivu-steps-icon{color:#fff}.ivu-steps-item.ivu-steps-status-process .ivu-steps-title{color:#666}.ivu-steps-item.ivu-steps-status-process .ivu-steps-content{color:#666}.ivu-steps-item.ivu-steps-status-process .ivu-steps-tail>i{background-color:#e8eaec}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-head-inner{background-color:#fff;border-color:#2d8cf0}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-head-inner span,.ivu-steps-item.ivu-steps-status-finish .ivu-steps-head-inner>.ivu-steps-icon{color:#2d8cf0}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-tail>i:after{width:100%;background:#2d8cf0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;opacity:1}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-title{color:#999}.ivu-steps-item.ivu-steps-status-finish .ivu-steps-content{color:#999}.ivu-steps-item.ivu-steps-status-error .ivu-steps-head-inner{background-color:#fff;border-color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-head-inner>.ivu-steps-icon{color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-title{color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-content{color:#ed4014}.ivu-steps-item.ivu-steps-status-error .ivu-steps-tail>i{background-color:#e8eaec}.ivu-steps-item.ivu-steps-next-error .ivu-steps-tail>i,.ivu-steps-item.ivu-steps-next-error .ivu-steps-tail>i:after{background-color:#ed4014}.ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner{background:0 0;border:0;width:auto;height:auto}.ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner>.ivu-steps-icon{font-size:20px;top:2px;width:20px;height:20px}.ivu-steps-item.ivu-steps-custom.ivu-steps-status-process .ivu-steps-head-inner>.ivu-steps-icon{color:#2d8cf0}.ivu-steps-item:last-child .ivu-steps-tail{display:none}.ivu-steps .ivu-steps-head,.ivu-steps .ivu-steps-main{position:relative;display:inline-block;vertical-align:top}.ivu-steps .ivu-steps-head{background:#fff}.ivu-steps .ivu-steps-head-inner{display:block;width:26px;height:26px;line-height:24px;margin-right:8px;text-align:center;border:1px solid #ccc;border-radius:50%;font-size:14px;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon{line-height:1;position:relative}.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon{font-size:24px}.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon-ios-checkmark-empty,.ivu-steps .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon-ios-close-empty{font-weight:700}.ivu-steps .ivu-steps-main{margin-top:2.5px;display:inline}.ivu-steps .ivu-steps-custom .ivu-steps-title{margin-top:2.5px}.ivu-steps .ivu-steps-title{display:inline-block;margin-bottom:4px;padding-right:10px;font-size:14px;font-weight:700;color:#666;background:#fff}.ivu-steps .ivu-steps-title>a:first-child:last-child{color:#666}.ivu-steps .ivu-steps-item-last .ivu-steps-title{padding-right:0;width:100%}.ivu-steps .ivu-steps-content{font-size:12px;color:#999}.ivu-steps .ivu-steps-tail{width:100%;padding:0 10px;position:absolute;left:0;top:13px}.ivu-steps .ivu-steps-tail>i{display:inline-block;width:100%;height:1px;vertical-align:top;background:#e8eaec;border-radius:1px;position:relative}.ivu-steps .ivu-steps-tail>i:after{content:'';width:0;height:100%;background:#e8eaec;opacity:0;position:absolute;top:0}.ivu-steps.ivu-steps-small .ivu-steps-head-inner{width:18px;height:18px;line-height:16px;margin-right:10px;text-align:center;border-radius:50%;font-size:12px}.ivu-steps.ivu-steps-small .ivu-steps-head-inner>.ivu-steps-icon.ivu-icon{font-size:16px;top:0}.ivu-steps.ivu-steps-small .ivu-steps-main{margin-top:0}.ivu-steps.ivu-steps-small .ivu-steps-title{margin-bottom:4px;margin-top:0;color:#666;font-size:12px;font-weight:700}.ivu-steps.ivu-steps-small .ivu-steps-content{font-size:12px;color:#999;padding-left:30px}.ivu-steps.ivu-steps-small .ivu-steps-tail{top:8px;padding:0 8px}.ivu-steps.ivu-steps-small .ivu-steps-tail>i{height:1px;width:100%;border-radius:1px}.ivu-steps .ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner,.ivu-steps.ivu-steps-small .ivu-steps-item.ivu-steps-custom .ivu-steps-head-inner{width:inherit;height:inherit;line-height:inherit;border-radius:0;border:0;background:0 0}.ivu-steps-vertical{display:block}.ivu-steps-vertical .ivu-steps-item{display:block;overflow:visible}.ivu-steps-vertical .ivu-steps-tail{position:absolute;left:13px;top:0;height:100%;width:1px;padding:30px 0 4px 0}.ivu-steps-vertical .ivu-steps-tail>i{height:100%;width:1px}.ivu-steps-vertical .ivu-steps-tail>i:after{height:0;width:100%}.ivu-steps-vertical .ivu-steps-status-finish .ivu-steps-tail>i:after{height:100%}.ivu-steps-vertical .ivu-steps-head{float:left}.ivu-steps-vertical .ivu-steps-head-inner{margin-right:16px}.ivu-steps-vertical .ivu-steps-main{min-height:47px;overflow:hidden;display:block}.ivu-steps-vertical .ivu-steps-main .ivu-steps-title{line-height:26px}.ivu-steps-vertical .ivu-steps-main .ivu-steps-content{padding-bottom:12px;padding-left:0}.ivu-steps-vertical .ivu-steps-custom .ivu-steps-icon{left:4px}.ivu-steps-vertical.ivu-steps-small .ivu-steps-custom .ivu-steps-icon{left:0}.ivu-steps-vertical.ivu-steps-small .ivu-steps-tail{position:absolute;left:9px;top:0;padding:22px 0 4px 0}.ivu-steps-vertical.ivu-steps-small .ivu-steps-tail>i{height:100%}.ivu-steps-vertical.ivu-steps-small .ivu-steps-title{line-height:18px}.ivu-steps-horizontal.ivu-steps-hidden{visibility:hidden}.ivu-steps-horizontal .ivu-steps-content{padding-left:35px}.ivu-steps-horizontal .ivu-steps-item:not(:first-child) .ivu-steps-head{padding-left:10px;margin-left:-10px}.ivu-modal{width:auto;margin:0 auto;position:relative;outline:0;top:100px}.ivu-modal-hidden{display:none!important}.ivu-modal-wrap{position:fixed;overflow:auto;top:0;right:0;bottom:0;left:0;z-index:1000;-webkit-overflow-scrolling:touch;outline:0}.ivu-modal-wrap *{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.ivu-modal-mask{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,55,55,.6);height:100%;z-index:1000}.ivu-modal-mask-hidden{display:none}.ivu-modal-content{position:relative;background-color:#fff;border:0;border-radius:6px;background-clip:padding-box;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15)}.ivu-modal-content-no-mask{pointer-events:auto}.ivu-modal-content-drag{position:absolute}.ivu-modal-content-drag .ivu-modal-header{cursor:move}.ivu-modal-content-dragging{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-modal-header{border-bottom:1px solid #e8eaec;padding:14px 16px;line-height:1}.ivu-modal-header p,.ivu-modal-header-inner{display:inline-block;width:100%;height:20px;line-height:20px;font-size:16px;color:#17233d;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-modal-close{z-index:1;font-size:12px;position:absolute;right:8px;top:8px;overflow:hidden;cursor:pointer}.ivu-modal-close .ivu-icon-ios-close{font-size:31px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:1px}.ivu-modal-close .ivu-icon-ios-close:hover{color:#444}.ivu-modal-body{padding:16px;font-size:14px;line-height:1.5}.ivu-modal-footer{border-top:1px solid #e8eaec;padding:12px 18px 12px 18px;text-align:right}.ivu-modal-footer button+button{margin-left:8px;margin-bottom:0}.ivu-modal-fullscreen{width:100%!important;top:0;bottom:0;position:absolute}.ivu-modal-fullscreen .ivu-modal-content{width:100%;border-radius:0;position:absolute;top:0;bottom:0}.ivu-modal-fullscreen .ivu-modal-body{width:100%;overflow:auto;position:absolute;top:51px;bottom:61px}.ivu-modal-fullscreen-no-header .ivu-modal-body{top:0}.ivu-modal-fullscreen-no-footer .ivu-modal-body{bottom:0}.ivu-modal-fullscreen .ivu-modal-footer{position:absolute;width:100%;bottom:0}.ivu-modal-no-mask{pointer-events:none}@media (max-width:576px){.ivu-modal{width:auto!important;margin:10px}.ivu-modal-fullscreen{width:100%!important;margin:0}.vertical-center-modal .ivu-modal{-webkit-box-flex:1;-ms-flex:1;flex:1}}.ivu-modal-confirm{padding:6px 16px 8px}.ivu-modal-confirm-head{padding:0 12px 0 0}.ivu-modal-confirm-head-icon{display:inline-block;font-size:28px;vertical-align:middle;position:relative;top:-2px}.ivu-modal-confirm-head-icon-info{color:#2d8cf0}.ivu-modal-confirm-head-icon-success{color:#19be6b}.ivu-modal-confirm-head-icon-warning{color:#f90}.ivu-modal-confirm-head-icon-error{color:#ed4014}.ivu-modal-confirm-head-icon-confirm{color:#f90}.ivu-modal-confirm-head-title{display:inline-block;vertical-align:middle;margin-left:12px;font-size:16px;color:#17233d;font-weight:500}.ivu-modal-confirm-body{padding-left:40px;font-size:14px;color:#515a6e;position:relative}.ivu-modal-confirm-body-render{margin:0;padding:0}.ivu-modal-confirm-footer{margin-top:20px;text-align:right}.ivu-modal-confirm-footer button+button{margin-left:8px;margin-bottom:0}.ivu-select{display:inline-block;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;vertical-align:middle;color:#515a6e;font-size:14px;line-height:normal}.ivu-select-selection{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;position:relative;background-color:#fff;border-radius:4px;border:1px solid #dcdee2;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-select-selection-focused,.ivu-select-selection:hover{border-color:#57a3f3}.ivu-select-selection-focused .ivu-select-arrow,.ivu-select-selection:hover .ivu-select-arrow{display:inline-block}.ivu-select-arrow{position:absolute;top:50%;right:8px;line-height:1;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:14px;color:#808695;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-select-visible .ivu-select-selection{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-select-visible .ivu-select-arrow{-webkit-transform:translateY(-50%) rotate(180deg);-ms-transform:translateY(-50%) rotate(180deg);transform:translateY(-50%) rotate(180deg);display:inline-block}.ivu-select-disabled .ivu-select-selection{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-select-disabled .ivu-select-selection:hover{border-color:#e3e5e8}.ivu-select-disabled .ivu-select-selection .ivu-select-arrow{color:#ccc}.ivu-select-disabled .ivu-select-selection:hover{border-color:#dcdee2;-webkit-box-shadow:none;box-shadow:none}.ivu-select-disabled .ivu-select-selection:hover .ivu-select-arrow{display:inline-block}.ivu-select-single .ivu-select-selection{height:32px;position:relative}.ivu-select-single .ivu-select-selection .ivu-select-placeholder{color:#c5c8ce}.ivu-select-single .ivu-select-selection .ivu-select-placeholder,.ivu-select-single .ivu-select-selection .ivu-select-selected-value{display:block;height:30px;line-height:30px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:8px;padding-right:24px}.ivu-select-multiple .ivu-select-selection{padding:0 24px 0 4px}.ivu-select-multiple .ivu-select-selection .ivu-select-placeholder{display:block;height:30px;line-height:30px;color:#c5c8ce;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:4px;padding-right:22px}.ivu-select-default.ivu-select-multiple .ivu-select-selection{min-height:32px}.ivu-select-large.ivu-select-single .ivu-select-selection{height:40px}.ivu-select-large.ivu-select-single .ivu-select-selection .ivu-select-placeholder,.ivu-select-large.ivu-select-single .ivu-select-selection .ivu-select-selected-value{height:38px;line-height:38px;font-size:16px}.ivu-select-large.ivu-select-multiple .ivu-select-selection{min-height:40px}.ivu-select-large.ivu-select-multiple .ivu-select-selection .ivu-select-placeholder,.ivu-select-large.ivu-select-multiple .ivu-select-selection .ivu-select-selected-value{min-height:38px;line-height:38px;font-size:16px}.ivu-select-small.ivu-select-single .ivu-select-selection{height:24px;border-radius:3px}.ivu-select-small.ivu-select-single .ivu-select-selection .ivu-select-placeholder,.ivu-select-small.ivu-select-single .ivu-select-selection .ivu-select-selected-value{height:22px;line-height:22px}.ivu-select-small.ivu-select-multiple .ivu-select-selection{min-height:24px;border-radius:3px}.ivu-select-small.ivu-select-multiple .ivu-select-selection .ivu-select-placeholder,.ivu-select-small.ivu-select-multiple .ivu-select-selection .ivu-select-selected-value{height:auto;min-height:22px;line-height:22px}.ivu-select-input{display:inline-block;height:32px;line-height:32px;padding:0 24px 0 8px;font-size:14px;outline:0;border:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#515a6e;background-color:transparent;position:relative;cursor:pointer}.ivu-select-input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-select-input:-ms-input-placeholder{color:#c5c8ce}.ivu-select-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-select-input[disabled]{cursor:not-allowed;color:#ccc;-webkit-text-fill-color:#ccc}.ivu-select-single .ivu-select-input{width:100%}.ivu-select-large .ivu-select-input,.ivu-select-large.ivu-select-multiple .ivu-select-input{font-size:16px;height:32px;line-height:32px;top:3px}.ivu-select-small .ivu-select-input,.ivu-select-small.ivu-select-multiple .ivu-select-input{height:18px;line-height:18px;top:2px}.ivu-select-multiple .ivu-select-input{height:26px;line-height:26px;padding:0 0 0 4px;top:2px}.ivu-select-not-found{text-align:center;color:#c5c8ce}.ivu-select-not-found li:not([class^=ivu-]){margin-bottom:0}.ivu-select-loading{text-align:center;color:#c5c8ce}.ivu-select-multiple .ivu-tag{height:24px;line-height:22px;margin:3px 4px 3px 0;max-width:99%;position:relative}.ivu-select-multiple .ivu-tag span:not(.ivu-select-max-tag){display:block;margin-right:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-select-multiple .ivu-tag i{display:block;position:absolute;right:4px;top:4px}.ivu-select-large.ivu-select-multiple .ivu-tag{height:32px;line-height:30px;font-size:16px}.ivu-select-large.ivu-select-multiple .ivu-tag i{top:9px}.ivu-select-small.ivu-select-multiple .ivu-tag{height:17px;line-height:15px;font-size:12px;padding:0 6px;margin:3px 4px 2px 0}.ivu-select-small.ivu-select-multiple .ivu-tag span{margin-right:14px}.ivu-select-small.ivu-select-multiple .ivu-tag i{top:1px;right:2px}.ivu-select-dropdown-list{min-width:100%;list-style:none}.ivu-select .ivu-select-dropdown{width:auto}.ivu-select-prefix{display:inline-block;vertical-align:middle}.ivu-select-prefix i{vertical-align:top}.ivu-select-head-with-prefix{display:inline-block!important;vertical-align:middle}.ivu-select-single .ivu-select-prefix{padding-left:4px}.ivu-select-multiple .ivu-select-head-with-prefix,.ivu-select-single .ivu-select-head-with-prefix{padding-left:0!important}.ivu-select-head-flex{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-select-multiple .ivu-select-head-flex .ivu-select-prefix{margin-right:4px}.ivu-select-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-select-item:hover{background:#f3f3f3}.ivu-select-item-focus{background:#f3f3f3}.ivu-select-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-select-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-select-item-selected,.ivu-select-item-selected:hover{color:#2d8cf0}.ivu-select-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-select-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-select-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-select-large .ivu-select-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-select-item{white-space:normal}}.ivu-select-multiple .ivu-select-item{position:relative}.ivu-select-multiple .ivu-select-item-selected{color:rgba(45,140,240,.9);background:#fff}.ivu-select-multiple .ivu-select-item-focus,.ivu-select-multiple .ivu-select-item-selected:hover{background:#f3f3f3}.ivu-select-multiple .ivu-select-item-selected.ivu-select-multiple .ivu-select-item-focus{color:rgba(40,123,211,.91);background:#fff}.ivu-select-multiple .ivu-select-item-selected:after{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:optimizeLegibility;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:-.125em;text-align:center;font-size:24px;content:'\F171';color:rgba(45,140,240,.9);position:absolute;top:2px;right:8px}.ivu-select-group{list-style:none;margin:0;padding:0}.ivu-select-group-title{padding-left:8px;font-size:14px;color:#999;height:30px;line-height:30px}.ivu-form-item-error .ivu-select-selection{border:1px solid #ed4014}.ivu-form-item-error .ivu-select-arrow{color:#ed4014}.ivu-form-item-error .ivu-select-visible .ivu-select-selection{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-select-dropdown{width:inherit;max-height:200px;overflow:auto;margin:5px 0;padding:5px 0;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);position:absolute;z-index:900}.ivu-select-dropdown-transfer{z-index:1060;width:auto}.ivu-select-dropdown.ivu-transfer-no-max-height{max-height:none}.ivu-modal .ivu-select-dropdown{position:absolute!important}.ivu-split-wrapper{position:relative;width:100%;height:100%}.ivu-split-pane{position:absolute}.ivu-split-pane.left-pane,.ivu-split-pane.right-pane{top:0;bottom:0}.ivu-split-pane.left-pane{left:0}.ivu-split-pane.right-pane{right:0}.ivu-split-pane.bottom-pane,.ivu-split-pane.top-pane{left:0;right:0}.ivu-split-pane.top-pane{top:0}.ivu-split-pane.bottom-pane{bottom:0}.ivu-split-pane-moving{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-split-trigger{border:1px solid #dcdee2}.ivu-split-trigger-con{position:absolute;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:10}.ivu-split-trigger-bar-con{position:absolute;overflow:hidden}.ivu-split-trigger-bar-con.vertical{left:1px;top:50%;height:32px;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%)}.ivu-split-trigger-bar-con.horizontal{left:50%;top:1px;width:32px;-webkit-transform:translate(-50%,0);-ms-transform:translate(-50%,0);transform:translate(-50%,0)}.ivu-split-trigger-vertical{width:6px;height:100%;background:#f8f8f9;border-top:none;border-bottom:none;cursor:col-resize}.ivu-split-trigger-vertical .ivu-split-trigger-bar{width:4px;height:1px;background:rgba(23,35,61,.25);float:left;margin-top:3px}.ivu-split-trigger-horizontal{height:6px;width:100%;background:#f8f8f9;border-left:none;border-right:none;cursor:row-resize}.ivu-split-trigger-horizontal .ivu-split-trigger-bar{height:4px;width:1px;background:rgba(23,35,61,.25);float:left;margin-right:3px}.ivu-split-horizontal>.ivu-split-trigger-con{top:50%;height:100%;width:0}.ivu-split-vertical>.ivu-split-trigger-con{left:50%;height:0;width:100%}.ivu-split .no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-tooltip{display:inline-block}.ivu-tooltip-rel{display:inline-block;position:relative;width:inherit}.ivu-tooltip-popper{display:block;visibility:visible;font-size:14px;line-height:1.5;position:absolute;z-index:1060}.ivu-tooltip-popper[x-placement^=top]{padding:5px 0 8px 0}.ivu-tooltip-popper[x-placement^=right]{padding:0 5px 0 8px}.ivu-tooltip-popper[x-placement^=bottom]{padding:8px 0 5px 0}.ivu-tooltip-popper[x-placement^=left]{padding:0 8px 0 5px}.ivu-tooltip-popper[x-placement^=top] .ivu-tooltip-arrow{bottom:3px;border-width:5px 5px 0;border-top-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=top] .ivu-tooltip-arrow{left:50%;margin-left:-5px}.ivu-tooltip-popper[x-placement=top-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-popper[x-placement=top-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-popper[x-placement^=right] .ivu-tooltip-arrow{left:3px;border-width:5px 5px 5px 0;border-right-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=right] .ivu-tooltip-arrow{top:50%;margin-top:-5px}.ivu-tooltip-popper[x-placement=right-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-popper[x-placement=right-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-popper[x-placement^=left] .ivu-tooltip-arrow{right:3px;border-width:5px 0 5px 5px;border-left-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=left] .ivu-tooltip-arrow{top:50%;margin-top:-5px}.ivu-tooltip-popper[x-placement=left-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-popper[x-placement=left-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-popper[x-placement^=bottom] .ivu-tooltip-arrow{top:3px;border-width:0 5px 5px;border-bottom-color:rgba(70,76,91,.9)}.ivu-tooltip-popper[x-placement=bottom] .ivu-tooltip-arrow{left:50%;margin-left:-5px}.ivu-tooltip-popper[x-placement=bottom-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-popper[x-placement=bottom-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-light.ivu-tooltip-popper{display:block;visibility:visible;font-size:14px;line-height:1.5;position:absolute;z-index:1060}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=top]{padding:7px 0 10px 0}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=right]{padding:0 7px 0 10px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=bottom]{padding:10px 0 7px 0}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=left]{padding:0 10px 0 7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=top] .ivu-tooltip-arrow{bottom:3px;border-width:7px 7px 0;border-top-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=top] .ivu-tooltip-arrow{left:50%;margin-left:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=top-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=top-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=right] .ivu-tooltip-arrow{left:3px;border-width:7px 7px 7px 0;border-right-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=right] .ivu-tooltip-arrow{top:50%;margin-top:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=right-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=right-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=left] .ivu-tooltip-arrow{right:3px;border-width:7px 0 7px 7px;border-left-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=left] .ivu-tooltip-arrow{top:50%;margin-top:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=left-start] .ivu-tooltip-arrow{top:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=left-end] .ivu-tooltip-arrow{bottom:8px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=bottom] .ivu-tooltip-arrow{top:3px;border-width:0 7px 7px;border-bottom-color:rgba(217,217,217,.5)}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=bottom] .ivu-tooltip-arrow{left:50%;margin-left:-7px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=bottom-start] .ivu-tooltip-arrow{left:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement=bottom-end] .ivu-tooltip-arrow{right:16px}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=top] .ivu-tooltip-arrow:after{content:" ";bottom:1px;margin-left:-7px;border-bottom-width:0;border-top-width:7px;border-top-color:#fff}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=right] .ivu-tooltip-arrow:after{content:" ";left:1px;bottom:-7px;border-left-width:0;border-right-width:7px;border-right-color:#fff}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=bottom] .ivu-tooltip-arrow:after{content:" ";top:1px;margin-left:-7px;border-top-width:0;border-bottom-width:7px;border-bottom-color:#fff}.ivu-tooltip-light.ivu-tooltip-popper[x-placement^=left] .ivu-tooltip-arrow:after{content:" ";right:1px;border-right-width:0;border-left-width:7px;border-left-color:#fff;bottom:-7px}.ivu-tooltip-inner{max-width:250px;min-height:34px;padding:8px 12px;color:#fff;text-align:left;text-decoration:none;background-color:rgba(70,76,91,.9);border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);white-space:nowrap}.ivu-tooltip-inner-with-width{white-space:pre-wrap;text-align:justify}.ivu-tooltip-light .ivu-tooltip-inner{background-color:#fff;color:#515a6e}.ivu-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.ivu-tooltip-light .ivu-tooltip-arrow{border-width:8px}.ivu-tooltip-light .ivu-tooltip-arrow:after{display:block;width:0;height:0;position:absolute;border-color:transparent;border-style:solid;content:"";border-width:7px}.ivu-poptip{display:inline-block}.ivu-poptip-rel{display:inline-block;position:relative}.ivu-poptip-title{margin:0;padding:8px 16px;position:relative}.ivu-poptip-title:after{content:'';display:block;height:1px;position:absolute;left:8px;right:8px;bottom:0;background-color:#e8eaec}.ivu-poptip-title-inner{color:#17233d;font-size:14px;font-weight:500}.ivu-poptip-body{padding:8px 16px}.ivu-poptip-body-content{overflow:auto}.ivu-poptip-body-content-word-wrap{white-space:pre-wrap;text-align:justify}.ivu-poptip-body-content-inner{color:#515a6e}.ivu-poptip-inner{width:100%;background-color:#fff;background-clip:padding-box;border-radius:4px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.2);white-space:nowrap}.ivu-poptip-popper{min-width:150px;display:block;visibility:visible;font-size:14px;line-height:1.5;position:absolute;z-index:1060}.ivu-poptip-popper[x-placement^=top]{padding:7px 0 10px 0}.ivu-poptip-popper[x-placement^=right]{padding:0 7px 0 10px}.ivu-poptip-popper[x-placement^=bottom]{padding:10px 0 7px 0}.ivu-poptip-popper[x-placement^=left]{padding:0 10px 0 7px}.ivu-poptip-popper[x-placement^=top] .ivu-poptip-arrow{bottom:3px;border-width:7px 7px 0;border-top-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=top] .ivu-poptip-arrow{left:50%;margin-left:-7px}.ivu-poptip-popper[x-placement=top-start] .ivu-poptip-arrow{left:16px}.ivu-poptip-popper[x-placement=top-end] .ivu-poptip-arrow{right:16px}.ivu-poptip-popper[x-placement^=right] .ivu-poptip-arrow{left:3px;border-width:7px 7px 7px 0;border-right-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=right] .ivu-poptip-arrow{top:50%;margin-top:-7px}.ivu-poptip-popper[x-placement=right-start] .ivu-poptip-arrow{top:8px}.ivu-poptip-popper[x-placement=right-end] .ivu-poptip-arrow{bottom:8px}.ivu-poptip-popper[x-placement^=left] .ivu-poptip-arrow{right:3px;border-width:7px 0 7px 7px;border-left-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=left] .ivu-poptip-arrow{top:50%;margin-top:-7px}.ivu-poptip-popper[x-placement=left-start] .ivu-poptip-arrow{top:8px}.ivu-poptip-popper[x-placement=left-end] .ivu-poptip-arrow{bottom:8px}.ivu-poptip-popper[x-placement^=bottom] .ivu-poptip-arrow{top:3px;border-width:0 7px 7px;border-bottom-color:rgba(217,217,217,.5)}.ivu-poptip-popper[x-placement=bottom] .ivu-poptip-arrow{left:50%;margin-left:-7px}.ivu-poptip-popper[x-placement=bottom-start] .ivu-poptip-arrow{left:16px}.ivu-poptip-popper[x-placement=bottom-end] .ivu-poptip-arrow{right:16px}.ivu-poptip-popper[x-placement^=top] .ivu-poptip-arrow:after{content:" ";bottom:1px;margin-left:-7px;border-bottom-width:0;border-top-width:7px;border-top-color:#fff}.ivu-poptip-popper[x-placement^=right] .ivu-poptip-arrow:after{content:" ";left:1px;bottom:-7px;border-left-width:0;border-right-width:7px;border-right-color:#fff}.ivu-poptip-popper[x-placement^=bottom] .ivu-poptip-arrow:after{content:" ";top:1px;margin-left:-7px;border-top-width:0;border-bottom-width:7px;border-bottom-color:#fff}.ivu-poptip-popper[x-placement^=left] .ivu-poptip-arrow:after{content:" ";right:1px;border-right-width:0;border-left-width:7px;border-left-color:#fff;bottom:-7px}.ivu-poptip-arrow,.ivu-poptip-arrow:after{display:block;width:0;height:0;position:absolute;border-color:transparent;border-style:solid}.ivu-poptip-arrow{border-width:8px}.ivu-poptip-arrow:after{content:"";border-width:7px}.ivu-poptip-confirm .ivu-poptip-popper{max-width:300px}.ivu-poptip-confirm .ivu-poptip-inner{white-space:normal}.ivu-poptip-confirm .ivu-poptip-body{padding:16px 16px 8px}.ivu-poptip-confirm .ivu-poptip-body .ivu-icon{font-size:16px;color:#f90;line-height:18px;position:absolute}.ivu-poptip-confirm .ivu-poptip-body-message{padding-left:20px}.ivu-poptip-confirm .ivu-poptip-footer{text-align:right;padding:8px 16px 16px}.ivu-poptip-confirm .ivu-poptip-footer button{margin-left:4px}.ivu-input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;border:1px solid #dcdee2;border-radius:4px;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-input:-ms-input-placeholder{color:#c5c8ce}.ivu-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-input:hover{border-color:#57a3f3}.ivu-input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-input[disabled],fieldset[disabled] .ivu-input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-input[disabled]:hover,fieldset[disabled] .ivu-input:hover{border-color:#e3e5e8}textarea.ivu-input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-input-wrapper{display:inline-block;width:100%;position:relative;vertical-align:middle;line-height:normal}.ivu-input-icon{width:32px;height:32px;line-height:32px;font-size:16px;text-align:center;color:#808695;position:absolute;right:0;z-index:3}.ivu-input-hide-icon .ivu-input-icon{display:none}.ivu-input-icon-validate{display:none}.ivu-input-icon-clear{display:none}.ivu-input-wrapper:hover .ivu-input-icon-clear{display:inline-block}.ivu-input-icon-normal+.ivu-input{padding-right:32px}.ivu-input-hide-icon .ivu-input-icon-normal+.ivu-input{padding-right:7px}.ivu-input-wrapper-large .ivu-input-icon{font-size:18px;height:40px;line-height:40px}.ivu-input-wrapper-small .ivu-input-icon{width:24px;font-size:14px;height:24px;line-height:24px}.ivu-input-prefix,.ivu-input-suffix{width:32px;height:100%;text-align:center;position:absolute;left:0;top:0;z-index:1}.ivu-input-prefix i,.ivu-input-suffix i{font-size:16px;line-height:32px;color:#808695}.ivu-input-suffix{left:auto;right:0}.ivu-input-wrapper-small .ivu-input-prefix i,.ivu-input-wrapper-small .ivu-input-suffix i{font-size:14px;line-height:24px}.ivu-input-wrapper-large .ivu-input-prefix i,.ivu-input-wrapper-large .ivu-input-suffix i{font-size:18px;line-height:40px}.ivu-input-with-prefix{padding-left:32px}.ivu-input-with-suffix{padding-right:32px}.ivu-input-search{cursor:pointer;padding:0 16px!important;background:#2d8cf0!important;color:#fff!important;border-color:#2d8cf0!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;position:relative;z-index:2}.ivu-input-search i{font-size:16px}.ivu-input-search:hover{background:#57a3f3!important;border-color:#57a3f3!important}.ivu-input-search:active{background:#2b85e4!important;border-color:#2b85e4!important}.ivu-input-search-icon{cursor:pointer;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-input-search-icon:hover{color:inherit}.ivu-input-search:before{content:'';display:block;width:1px;position:absolute;top:-1px;bottom:-1px;left:-1px;background:inherit}.ivu-input-wrapper-small .ivu-input-search{padding:0 12px!important}.ivu-input-wrapper-small .ivu-input-search i{font-size:14px}.ivu-input-wrapper-large .ivu-input-search{padding:0 20px!important}.ivu-input-wrapper-large .ivu-input-search i{font-size:18px}.ivu-input-with-search:hover .ivu-input{border-color:#57a3f3}.ivu-input-word-count{text-align:center;position:absolute;right:7px;top:1px;bottom:1px;padding-left:7px;background:#fff;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#808695;font-size:12px}.ivu-input-type-textarea .ivu-input-word-count{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;top:auto}.ivu-input-group{display:table;width:100%;border-collapse:separate;position:relative;font-size:14px;top:1px}.ivu-input-group-large{font-size:16px}.ivu-input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.ivu-input-group>[class*=col-]{padding-right:8px}.ivu-input-group-append,.ivu-input-group-prepend,.ivu-input-group>.ivu-input{display:table-cell}.ivu-input-group-with-prepend .ivu-input,.ivu-input-group-with-prepend.ivu-input-group-small .ivu-input{border-top-left-radius:0;border-bottom-left-radius:0}.ivu-input-group-with-append .ivu-input,.ivu-input-group-with-append.ivu-input-group-small .ivu-input{border-top-right-radius:0;border-bottom-right-radius:0}.ivu-input-group-append .ivu-btn,.ivu-input-group-prepend .ivu-btn{border-color:transparent;background-color:transparent;color:inherit;margin:-6px -7px}.ivu-input-group-append,.ivu-input-group-prepend{width:1px;white-space:nowrap;vertical-align:middle}.ivu-input-group .ivu-input{width:100%;float:left;margin-bottom:0;position:relative;z-index:2}.ivu-input-group-append,.ivu-input-group-prepend{padding:4px 7px;font-size:inherit;font-weight:400;line-height:1;color:#515a6e;text-align:center;background-color:#f8f8f9;border:1px solid #dcdee2;border-radius:4px}.ivu-input-group-append .ivu-select,.ivu-input-group-prepend .ivu-select{margin:-5px -7px}.ivu-input-group-append .ivu-select-selection,.ivu-input-group-prepend .ivu-select-selection{background-color:inherit;margin:-1px;border:1px solid transparent}.ivu-input-group-append .ivu-select-visible .ivu-select-selection,.ivu-input-group-prepend .ivu-select-visible .ivu-select-selection{-webkit-box-shadow:none;box-shadow:none}.ivu-input-group-prepend,.ivu-input-group>.ivu-input:first-child,.ivu-input-group>span>.ivu-input:first-child{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.ivu-input-group-prepend .ivu--select .ivu--select-selection,.ivu-input-group>.ivu-input:first-child .ivu--select .ivu--select-selection,.ivu-input-group>span>.ivu-input:first-child .ivu--select .ivu--select-selection{border-bottom-right-radius:0;border-top-right-radius:0}.ivu-input-group-prepend{border-right:0}.ivu-input-group-append{border-left:0}.ivu-input-group-append,.ivu-input-group>.ivu-input:last-child{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.ivu-input-group-append .ivu--select .ivu--select-selection,.ivu-input-group>.ivu-input:last-child .ivu--select .ivu--select-selection{border-bottom-left-radius:0;border-top-left-radius:0}.ivu-input-group-large .ivu-input,.ivu-input-group-large>.ivu-input-group-append,.ivu-input-group-large>.ivu-input-group-prepend{font-size:16px;padding:6px 7px;height:40px}.ivu-input-group-small .ivu-input,.ivu-input-group-small>.ivu-input-group-append,.ivu-input-group-small>.ivu-input-group-prepend{padding:1px 7px;height:24px;border-radius:3px}.ivu-form-item-error .ivu-input{border:1px solid #ed4014}.ivu-form-item-error .ivu-input:hover{border-color:#ed4014}.ivu-form-item-error .ivu-input:focus{border-color:#ed4014;outline:0;-webkit-box-shadow:0 0 0 2px rgba(237,64,20,.2);box-shadow:0 0 0 2px rgba(237,64,20,.2)}.ivu-form-item-error .ivu-input-icon{color:#ed4014}.ivu-form-item-error .ivu-input-group-append,.ivu-form-item-error .ivu-input-group-prepend{background-color:#fff;border:1px solid #ed4014}.ivu-form-item-error .ivu-input-group-append .ivu-select-selection,.ivu-form-item-error .ivu-input-group-prepend .ivu-select-selection{background-color:inherit;border:1px solid transparent}.ivu-form-item-error .ivu-input-group-prepend{border-right:0}.ivu-form-item-error .ivu-input-group-append{border-left:0}.ivu-form-item-error .ivu-transfer .ivu-input{display:inline-block;width:100%;height:32px;line-height:1.5;padding:4px 7px;font-size:14px;border:1px solid #dcdee2;border-radius:4px;color:#515a6e;background-color:#fff;background-image:none;position:relative;cursor:text;-webkit-transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,background .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-form-item-error .ivu-transfer .ivu-input::-moz-placeholder{color:#c5c8ce;opacity:1}.ivu-form-item-error .ivu-transfer .ivu-input:-ms-input-placeholder{color:#c5c8ce}.ivu-form-item-error .ivu-transfer .ivu-input::-webkit-input-placeholder{color:#c5c8ce}.ivu-form-item-error .ivu-transfer .ivu-input:hover{border-color:#57a3f3}.ivu-form-item-error .ivu-transfer .ivu-input:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-form-item-error .ivu-transfer .ivu-input[disabled],fieldset[disabled] .ivu-form-item-error .ivu-transfer .ivu-input{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-form-item-error .ivu-transfer .ivu-input[disabled]:hover,fieldset[disabled] .ivu-form-item-error .ivu-transfer .ivu-input:hover{border-color:#e3e5e8}textarea.ivu-form-item-error .ivu-transfer .ivu-input{max-width:100%;height:auto;min-height:32px;vertical-align:bottom;font-size:14px}.ivu-form-item-error .ivu-transfer .ivu-input-large{font-size:16px;padding:6px 7px;height:40px}.ivu-form-item-error .ivu-transfer .ivu-input-small{padding:1px 7px;height:24px;border-radius:3px}.ivu-form-item-error .ivu-transfer .ivu-input-icon{color:#808695}.ivu-form-item-validating .ivu-input-icon-validate{display:inline-block}.ivu-form-item-validating .ivu-input-icon+.ivu-input{padding-right:32px}.ivu-slider{line-height:normal}.ivu-slider-wrap{width:100%;height:4px;margin:16px 0;background-color:#e8eaec;border-radius:3px;vertical-align:middle;position:relative;cursor:pointer}.ivu-slider-button-wrap{width:18px;height:18px;text-align:center;background-color:transparent;position:absolute;top:-5px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ivu-slider-button-wrap .ivu-tooltip{display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-slider-button{width:12px;height:12px;border:2px solid #57a3f3;border-radius:50%;background-color:#fff;-webkit-transition:all .2s linear;transition:all .2s linear;outline:0}.ivu-slider-button-dragging,.ivu-slider-button:focus,.ivu-slider-button:hover{border-color:#2d8cf0;-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ivu-slider-button:hover{cursor:-webkit-grab;cursor:grab}.ivu-slider-button-dragging,.ivu-slider-button-dragging:hover{cursor:-webkit-grabbing;cursor:grabbing}.ivu-slider-bar{height:4px;background:#57a3f3;border-radius:3px;position:absolute}.ivu-slider-stop{position:absolute;width:4px;height:4px;border-radius:50%;background-color:#fff;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ivu-slider-marks{top:0;left:12px;width:18px;height:100%}.ivu-slider-marks-item{position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#808695;margin-top:15px}.ivu-slider-disabled{cursor:not-allowed}.ivu-slider-disabled .ivu-slider-wrap{background-color:#ccc;cursor:not-allowed}.ivu-slider-disabled .ivu-slider-bar{background-color:#ccc}.ivu-slider-disabled .ivu-slider-button{border-color:#ccc}.ivu-slider-disabled .ivu-slider-button-dragging,.ivu-slider-disabled .ivu-slider-button:hover{border-color:#ccc}.ivu-slider-disabled .ivu-slider-button:hover{cursor:not-allowed}.ivu-slider-disabled .ivu-slider-button-dragging,.ivu-slider-disabled .ivu-slider-button-dragging:hover{cursor:not-allowed}.ivu-slider-input .ivu-slider-wrap{width:auto;margin-right:100px}.ivu-slider-input .ivu-input-number{float:right;margin-top:-14px}.selectDropDown{width:auto;padding:0;white-space:nowrap;overflow:visible}.ivu-cascader{line-height:normal}.ivu-cascader-rel{display:inline-block;width:100%;position:relative}.ivu-cascader .ivu-input{padding-right:24px;display:block;cursor:pointer}.ivu-cascader-disabled .ivu-input{cursor:not-allowed}.ivu-cascader-label{width:100%;height:100%;line-height:32px;padding:0 7px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer;font-size:14px;position:absolute;left:0;top:0}.ivu-cascader-size-large .ivu-cascader-label{line-height:36px;font-size:14px}.ivu-cascader-size-small .ivu-cascader-label{line-height:26px}.ivu-cascader .ivu-cascader-arrow:nth-of-type(1){display:none;cursor:pointer}.ivu-cascader:hover .ivu-cascader-arrow:nth-of-type(1){display:inline-block}.ivu-cascader-show-clear:hover .ivu-cascader-arrow:nth-of-type(2){display:none}.ivu-cascader-arrow{position:absolute;top:50%;right:8px;line-height:1;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:14px;color:#808695;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-cascader-visible .ivu-cascader-arrow:nth-of-type(2){-webkit-transform:translateY(-50%) rotate(180deg);-ms-transform:translateY(-50%) rotate(180deg);transform:translateY(-50%) rotate(180deg)}.ivu-cascader .ivu-select-dropdown{width:auto;padding:0;white-space:nowrap;overflow:visible}.ivu-cascader .ivu-cascader-menu-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-cascader .ivu-cascader-menu-item:hover{background:#f3f3f3}.ivu-cascader .ivu-cascader-menu-item-focus{background:#f3f3f3}.ivu-cascader .ivu-cascader-menu-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-cascader .ivu-cascader-menu-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-cascader .ivu-cascader-menu-item-selected,.ivu-cascader .ivu-cascader-menu-item-selected:hover{color:#2d8cf0}.ivu-cascader .ivu-cascader-menu-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-cascader .ivu-cascader-menu-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-cascader .ivu-cascader-menu-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-cascader .ivu-cascader-large .ivu-cascader-menu-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-cascader .ivu-cascader-menu-item{white-space:normal}}.ivu-cascader .ivu-select-item span{color:#ed4014}.ivu-cascader-dropdown{padding:5px 0}.ivu-cascader-dropdown .ivu-select-dropdown-list{max-height:190px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto}.ivu-cascader-not-found-tip{padding:5px 0;text-align:center;color:#c5c8ce}.ivu-cascader-not-found-tip li:not([class^=ivu-]){list-style:none;margin-bottom:0}.ivu-cascader-not-found .ivu-select-dropdown{width:inherit}.ivu-cascader-menu{display:inline-block;min-width:100px;height:180px;margin:0;padding:5px 0!important;vertical-align:top;list-style:none;border-right:1px solid #e8eaec;overflow:auto}.ivu-cascader-menu:last-child{border-right-color:transparent;margin-right:-1px}.ivu-cascader-menu .ivu-cascader-menu-item{position:relative;padding-right:36px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-cascader-menu .ivu-cascader-menu-item i{font-size:12px;position:absolute;right:15px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ivu-cascader-menu .ivu-cascader-menu-item-loading{margin-top:-6px}.ivu-cascader-menu .ivu-cascader-menu-item-active{background-color:#f3f3f3;color:#2d8cf0}.ivu-cascader-transfer{z-index:1060;width:auto;padding:0;white-space:nowrap;overflow:visible}.ivu-cascader-transfer .ivu-cascader-menu-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-cascader-transfer .ivu-cascader-menu-item:hover{background:#f3f3f3}.ivu-cascader-transfer .ivu-cascader-menu-item-focus{background:#f3f3f3}.ivu-cascader-transfer .ivu-cascader-menu-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-cascader-transfer .ivu-cascader-menu-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-cascader-transfer .ivu-cascader-menu-item-selected,.ivu-cascader-transfer .ivu-cascader-menu-item-selected:hover{color:#2d8cf0}.ivu-cascader-transfer .ivu-cascader-menu-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-cascader-transfer .ivu-cascader-menu-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-cascader-transfer .ivu-cascader-menu-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-cascader-transfer .ivu-cascader-large .ivu-cascader-menu-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-cascader-transfer .ivu-cascader-menu-item{white-space:normal}}.ivu-cascader-transfer .ivu-select-item span{color:#ed4014}.ivu-cascader-transfer .ivu-cascader-menu-item{padding-right:24px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-cascader-transfer .ivu-cascader-menu-item-active{background-color:#f3f3f3;color:#2d8cf0}.ivu-form-item-error .ivu-cascader-arrow{color:#ed4014}.ivu-transfer{position:relative;line-height:1.5}.ivu-transfer-list{display:inline-block;width:180px;height:210px;font-size:14px;vertical-align:middle;position:relative;padding-top:35px}.ivu-transfer-list-with-footer{padding-bottom:35px}.ivu-transfer-list-header{padding:8px 16px;background:#f9fafc;color:#515a6e;border:1px solid #dcdee2;border-bottom:1px solid #e8eaec;border-radius:6px 6px 0 0;overflow:hidden;position:absolute;top:0;left:0;width:100%}.ivu-transfer-list-header-title{cursor:pointer}.ivu-transfer-list-header>span{padding-left:4px}.ivu-transfer-list-header-count{margin:0!important;float:right}.ivu-transfer-list-body{height:100%;border:1px solid #dcdee2;border-top:none;border-radius:0 0 6px 6px;position:relative;overflow:hidden}.ivu-transfer-list-body-with-search{padding-top:34px}.ivu-transfer-list-body-with-footer{border-radius:0}.ivu-transfer-list-content{height:100%;padding:4px 0;overflow:auto}.ivu-transfer-list-content-item{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ivu-transfer-list-content-item>span{padding-left:4px}.ivu-transfer-list-content-not-found{display:none;text-align:center;color:#c5c8ce}li.ivu-transfer-list-content-not-found:only-child{display:block}.ivu-transfer-list-body-with-search .ivu-transfer-list-content{padding:6px 0 0}.ivu-transfer-list-body-search-wrapper{padding:8px 8px 0;position:absolute;top:0;left:0;right:0}.ivu-transfer-list-search{position:relative}.ivu-transfer-list-footer{border:1px solid #dcdee2;border-top:none;border-radius:0 0 6px 6px;position:absolute;bottom:0;left:0;right:0;zoom:1}.ivu-transfer-list-footer:after,.ivu-transfer-list-footer:before{content:"";display:table}.ivu-transfer-list-footer:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-transfer-operation{display:inline-block;margin:0 16px;vertical-align:middle}.ivu-transfer-operation .ivu-btn{display:block;min-width:24px}.ivu-transfer-operation .ivu-btn:first-child{margin-bottom:12px}.ivu-transfer-operation .ivu-btn span i,.ivu-transfer-operation .ivu-btn span span{vertical-align:middle}.ivu-transfer-list-content-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-transfer-list-content-item:hover{background:#f3f3f3}.ivu-transfer-list-content-item-focus{background:#f3f3f3}.ivu-transfer-list-content-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-transfer-list-content-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-transfer-list-content-item-selected,.ivu-transfer-list-content-item-selected:hover{color:#2d8cf0}.ivu-transfer-list-content-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-transfer-list-content-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-transfer-list-content-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-transfer-large .ivu-transfer-list-content-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-transfer-list-content-item{white-space:normal}}.ivu-table{width:inherit;height:100%;max-width:100%;overflow:hidden;color:#515a6e;font-size:14px;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box}.ivu-table-wrapper{position:relative;overflow:hidden}.ivu-table-wrapper-with-border{border:1px solid #dcdee2;border-bottom:0;border-right:0}.ivu-table-summary{border-top:1px solid #e8eaec}.ivu-table-summary tr td{background-color:#f8f8f9}.ivu-table-with-summary .ivu-table-tbody tr:last-child td{border-bottom:none}.ivu-table-resize-line{position:absolute;top:0;left:0;bottom:0;width:1px;border-right:1px dashed #e8eaec}.ivu-table-hide{opacity:0}.ivu-table:before{content:'';width:100%;height:1px;position:absolute;left:0;bottom:0;background-color:#dcdee2;z-index:1}.ivu-table-border:after{content:'';width:1px;height:100%;position:absolute;top:0;right:0;background-color:#dcdee2;z-index:3}.ivu-table-footer,.ivu-table-title{height:48px;line-height:48px;border-bottom:1px solid #e8eaec}.ivu-table-footer{border-bottom:none}.ivu-table-header{overflow:hidden}.ivu-table-header thead tr th{position:relative;height:100%;padding:8px 0}.ivu-table-header-resizable{position:absolute;width:10px;height:100%;bottom:0;right:-5px;cursor:col-resize;z-index:1}.ivu-table-overflowX{overflow-x:scroll}.ivu-table-overflowY{overflow-y:scroll}.ivu-table-tip{overflow-x:auto;overflow-y:hidden}.ivu-table-with-fixed-top.ivu-table-with-footer .ivu-table-footer{border-top:1px solid #dcdee2}.ivu-table-with-fixed-top.ivu-table-with-footer tbody tr:last-child td{border-bottom:none}.ivu-table td,.ivu-table th{min-width:0;height:48px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:left;text-overflow:ellipsis;vertical-align:middle;border-bottom:1px solid #e8eaec}.ivu-table th{height:40px;white-space:nowrap;overflow:hidden;background-color:#f8f8f9}.ivu-table td{background-color:#fff;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}td.ivu-table-column-left,th.ivu-table-column-left{text-align:left}td.ivu-table-column-center,th.ivu-table-column-center{text-align:center}td.ivu-table-column-right,th.ivu-table-column-right{text-align:right}.ivu-table table{table-layout:fixed}.ivu-table-border td,.ivu-table-border th{border-right:1px solid #e8eaec}.ivu-table-cell{padding-left:18px;padding-right:18px;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box}.ivu-table-cell-ellipsis{word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ivu-table-cell-tooltip{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ivu-table-cell-tooltip-content{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-table-cell-with-expand{height:47px;line-height:47px;padding:0;text-align:center}.ivu-table-cell-expand{cursor:pointer;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}.ivu-table-cell-expand i{font-size:14px}.ivu-table-cell-expand-expanded{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ivu-table-cell-sort{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-table-cell-with-selection .ivu-checkbox-wrapper{margin-right:0}.ivu-table-cell-tree{display:inline-block;width:16px;height:16px;border:1px solid #dcdee2;border-radius:2px;background-color:#fff;line-height:12px;cursor:pointer;vertical-align:middle;-webkit-transition:color .2s ease-in-out,border-color .2s ease-in-out;transition:color .2s ease-in-out,border-color .2s ease-in-out}.ivu-table-cell-tree-empty{cursor:default;color:transparent;background-color:transparent;border-color:transparent}.ivu-table-cell-tree:hover{color:#2d8cf0;border-color:#2d8cf0}.ivu-table-cell-tree-empty:hover{color:transparent;border-color:transparent}.ivu-table-cell-tree-loading{cursor:default;background-color:transparent;border-color:transparent}.ivu-table-cell-tree-loading:hover{border-color:transparent}.ivu-table-cell-tree-level{display:inline-block;height:16px}.ivu-table-hidden{visibility:hidden}th .ivu-table-cell{display:inline-block;word-wrap:normal;vertical-align:middle}td.ivu-table-expanded-cell{padding:20px 50px;background:#f8f8f9}.ivu-table-stripe .ivu-table-body tr:nth-child(2n) td,.ivu-table-stripe .ivu-table-fixed-body tr:nth-child(2n) td{background-color:#f8f8f9}.ivu-table-stripe .ivu-table-body tr.ivu-table-row-hover td,.ivu-table-stripe .ivu-table-fixed-body tr.ivu-table-row-hover td{background-color:#ebf7ff}tr.ivu-table-row-hover td{background-color:#ebf7ff}.ivu-table-large{font-size:16px}.ivu-table-large th{height:48px}.ivu-table-large td{height:60px}.ivu-table-large-footer,.ivu-table-large-title{height:60px;line-height:60px}.ivu-table-large .ivu-table-cell-with-expand{height:59px;line-height:59px}.ivu-table-large .ivu-table-cell-with-expand i{font-size:16px}.ivu-table-small{font-size:12px}.ivu-table-small th{height:32px}.ivu-table-small td{height:40px}.ivu-table-small-footer,.ivu-table-small-title{height:40px;line-height:40px}.ivu-table-small .ivu-table-cell-with-expand{height:39px;line-height:39px}.ivu-table-row-highlight td,.ivu-table-stripe .ivu-table-body tr.ivu-table-row-highlight:nth-child(2n) td,.ivu-table-stripe .ivu-table-fixed-body tr.ivu-table-row-highlight:nth-child(2n) td,tr.ivu-table-row-highlight.ivu-table-row-hover td{background-color:#ebf7ff}.ivu-table-fixed,.ivu-table-fixed-right{position:absolute;top:0;left:0;-webkit-box-shadow:2px 0 6px -2px rgba(0,0,0,.2);box-shadow:2px 0 6px -2px rgba(0,0,0,.2)}.ivu-table-fixed-right::before,.ivu-table-fixed::before{content:'';width:100%;height:1px;background-color:#dcdee2;position:absolute;left:0;bottom:0;z-index:4}.ivu-table-fixed-right{top:0;left:auto;right:0;-webkit-box-shadow:-2px 0 6px -2px rgba(0,0,0,.2);box-shadow:-2px 0 6px -2px rgba(0,0,0,.2)}.ivu-table-fixed-right-header{position:absolute;top:-1px;right:0;background-color:#f8f8f9;border-top:1px solid #dcdee2;border-bottom:1px solid #e8eaec}.ivu-table-fixed-header{overflow:hidden}.ivu-table-fixed-header thead tr th{position:relative;height:100%;padding:8px 0}.ivu-table-fixed-body{overflow:hidden;position:relative;z-index:3}.ivu-table-fixed-shadow{width:1px;height:100%;position:absolute;top:0;right:0;-webkit-box-shadow:1px 0 6px rgba(0,0,0,.2);box-shadow:1px 0 6px rgba(0,0,0,.2);overflow:hidden;z-index:1}.ivu-table-sort{display:inline-block;width:14px;height:12px;margin-top:-1px;vertical-align:middle;overflow:hidden;cursor:pointer;position:relative}.ivu-table-sort i{display:block;height:6px;line-height:6px;overflow:hidden;position:absolute;color:#c5c8ce;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out;font-size:16px}.ivu-table-sort i:hover{color:inherit}.ivu-table-sort i.on{color:#2d8cf0}.ivu-table-sort i:first-child{top:0}.ivu-table-sort i:last-child{bottom:0}.ivu-table-filter{display:inline-block;cursor:pointer;position:relative}.ivu-table-filter i{color:#c5c8ce;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-table-filter i:hover{color:inherit}.ivu-table-filter i.on{color:#2d8cf0}.ivu-table-filter-list{padding:8px 0 0}.ivu-table-filter-list-item{padding:0 12px 8px}.ivu-table-filter-list-item .ivu-checkbox-wrapper+.ivu-checkbox-wrapper{margin:0}.ivu-table-filter-list-item label{display:block}.ivu-table-filter-list-item label>span{margin-right:4px}.ivu-table-filter-list ul{padding-bottom:8px}.ivu-table-filter-list .ivu-table-filter-select-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-table-filter-list .ivu-table-filter-select-item:hover{background:#f3f3f3}.ivu-table-filter-list .ivu-table-filter-select-item-focus{background:#f3f3f3}.ivu-table-filter-list .ivu-table-filter-select-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-table-filter-list .ivu-table-filter-select-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-table-filter-list .ivu-table-filter-select-item-selected,.ivu-table-filter-list .ivu-table-filter-select-item-selected:hover{color:#2d8cf0}.ivu-table-filter-list .ivu-table-filter-select-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-table-filter-list .ivu-table-filter-select-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-table-filter-list .ivu-table-filter-select-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-table-filter-list .ivu-table-large .ivu-table-filter-select-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-table-filter-list .ivu-table-filter-select-item{white-space:normal}}.ivu-table-filter-footer{padding:4px;border-top:1px solid #e8eaec;overflow:hidden}.ivu-table-filter-footer button:first-child{float:left}.ivu-table-filter-footer button:last-child{float:right}.ivu-table-tip table{width:100%}.ivu-table-tip table td{text-align:center}.ivu-table-expanded-hidden{visibility:hidden}.ivu-table-popper{min-width:0;text-align:left}.ivu-table-popper .ivu-poptip-body{padding:0}.ivu-dropdown{display:inline-block}.ivu-dropdown .ivu-select-dropdown{overflow:visible;max-height:none}.ivu-dropdown .ivu-dropdown{width:100%}.ivu-dropdown-rel{position:relative}.ivu-dropdown-rel-user-select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-dropdown-menu{min-width:100px}.ivu-dropdown-transfer{width:auto}.ivu-dropdown-item-selected,.ivu-dropdown-item.ivu-dropdown-item-selected:hover{background:#f0faff}.ivu-dropdown-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-dropdown-item:hover{background:#f3f3f3}.ivu-dropdown-item-focus{background:#f3f3f3}.ivu-dropdown-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-dropdown-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-dropdown-item-selected,.ivu-dropdown-item-selected:hover{color:#2d8cf0}.ivu-dropdown-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-dropdown-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-dropdown-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-dropdown-large .ivu-dropdown-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-dropdown-item{white-space:normal}}.ivu-tabs{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;overflow:hidden;color:#515a6e;zoom:1}.ivu-tabs:after,.ivu-tabs:before{content:"";display:table}.ivu-tabs:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-tabs-bar{outline:0}.ivu-tabs-ink-bar{height:2px;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#2d8cf0;position:absolute;left:0;bottom:1px;z-index:1;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.ivu-tabs-bar{border-bottom:1px solid #dcdee2;margin-bottom:16px}.ivu-tabs-nav-container{margin-bottom:-1px;line-height:1.5;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;overflow:hidden;position:relative;zoom:1}.ivu-tabs-nav-container:after,.ivu-tabs-nav-container:before{content:"";display:table}.ivu-tabs-nav-container:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-tabs-nav-container:focus{outline:0}.ivu-tabs-nav-container:focus .ivu-tabs-tab-focused{border-color:#57a3f3!important}.ivu-tabs-nav-container-scrolling{padding-left:32px;padding-right:32px}.ivu-tabs-nav-wrap{overflow:hidden;margin-bottom:-1px}.ivu-tabs-nav-scroll{overflow:hidden;white-space:nowrap}.ivu-tabs-nav-right{float:right;margin-left:5px}.ivu-tabs-nav-next,.ivu-tabs-nav-prev{width:32px;text-align:center;position:absolute;line-height:32px;cursor:pointer}.ivu-tabs-nav-next i,.ivu-tabs-nav-prev i{font-size:16px}.ivu-tabs-nav-prev{left:0}.ivu-tabs-nav-next{right:0}.ivu-tabs-nav-scrollable{padding:0 32px}.ivu-tabs-nav-scroll-disabled{display:none}.ivu-tabs-nav{padding-left:0;margin:0;float:left;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-webkit-transition:-webkit-transform .5s ease-in-out;transition:-webkit-transform .5s ease-in-out;transition:transform .5s ease-in-out;transition:transform .5s ease-in-out,-webkit-transform .5s ease-in-out}.ivu-tabs-nav:after,.ivu-tabs-nav:before{display:table;content:" "}.ivu-tabs-nav:after{clear:both}.ivu-tabs-nav .ivu-tabs-tab-disabled{pointer-events:none;cursor:default;color:#ccc}.ivu-tabs-nav .ivu-tabs-tab{display:inline-block;height:100%;padding:8px 16px;margin-right:16px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;text-decoration:none;position:relative;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.ivu-tabs-nav .ivu-tabs-tab:hover{color:#57a3f3}.ivu-tabs-nav .ivu-tabs-tab:active{color:#2b85e4}.ivu-tabs-nav .ivu-tabs-tab .ivu-icon{width:14px;height:14px;margin-right:8px}.ivu-tabs-nav .ivu-tabs-tab-active{color:#2d8cf0}.ivu-tabs-mini .ivu-tabs-nav-container{font-size:14px}.ivu-tabs-mini .ivu-tabs-tab{margin-right:0;padding:8px 16px;font-size:12px}.ivu-tabs .ivu-tabs-content-animated{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;will-change:transform;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.ivu-tabs .ivu-tabs-tabpane{-ms-flex-negative:0;flex-shrink:0;width:100%;-webkit-transition:opacity .3s;transition:opacity .3s;opacity:1;outline:0}.ivu-tabs .ivu-tabs-tabpane-inactive{opacity:0;height:0}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-nav-container{height:32px}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-ink-bar{visibility:hidden}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab{margin:0;margin-right:4px;height:31px;padding:5px 16px 4px;border:1px solid #dcdee2;border-bottom:0;border-radius:4px 4px 0 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#f8f8f9}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab-active{height:32px;padding-bottom:5px;background:#fff;-webkit-transform:translateZ(0);transform:translateZ(0);border-color:#dcdee2;color:#2d8cf0}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-nav-wrap{margin-bottom:0}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab .ivu-tabs-close{width:0;height:22px;font-size:22px;margin-right:0;color:#999;text-align:right;vertical-align:middle;overflow:hidden;position:relative;top:-1px;-webkit-transform-origin:100% 50%;-ms-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab .ivu-tabs-close:hover{color:#444}.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab-active .ivu-tabs-close,.ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab:hover .ivu-tabs-close{width:22px;-webkit-transform:translateZ(0);transform:translateZ(0);margin-right:-6px}.ivu-tabs-no-animation>.ivu-tabs-content{-webkit-transform:none!important;-ms-transform:none!important;transform:none!important}.ivu-tabs-no-animation>.ivu-tabs-content>.ivu-tabs-tabpane-inactive{display:none}.ivu-menu{display:block;margin:0;padding:0;outline:0;list-style:none;color:#515a6e;font-size:14px;position:relative;z-index:900}.ivu-menu-horizontal{height:60px;line-height:60px}.ivu-menu-horizontal.ivu-menu-light:after{content:'';display:block;width:100%;height:1px;background:#dcdee2;position:absolute;bottom:0;left:0}.ivu-menu-vertical.ivu-menu-light:after{content:'';display:block;width:1px;height:100%;background:#dcdee2;position:absolute;top:0;bottom:0;right:0;z-index:1}.ivu-menu-light{background:#fff}.ivu-menu-dark{background:#515a6e}.ivu-menu-primary{background:#2d8cf0}.ivu-menu-item{display:block;outline:0;list-style:none;font-size:14px;position:relative;z-index:1;cursor:pointer;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.ivu-menu-item{color:inherit}a.ivu-menu-item:active,a.ivu-menu-item:hover{color:inherit}.ivu-menu-item>i{margin-right:6px}.ivu-menu-submenu-title span>i,.ivu-menu-submenu-title>i{margin-right:8px}.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-horizontal .ivu-menu-submenu{float:left;padding:0 20px;position:relative;cursor:pointer;z-index:3;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-menu-light.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-submenu{height:inherit;line-height:inherit;border-bottom:2px solid transparent;color:#515a6e}.ivu-menu-light.ivu-menu-horizontal .ivu-menu-item-active,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-item:hover,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-submenu-active,.ivu-menu-light.ivu-menu-horizontal .ivu-menu-submenu:hover{color:#2d8cf0;border-bottom:2px solid #2d8cf0}.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-submenu{color:rgba(255,255,255,.7)}.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-item-active,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-item:hover,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-submenu-active,.ivu-menu-dark.ivu-menu-horizontal .ivu-menu-submenu:hover{color:#fff}.ivu-menu-primary.ivu-menu-horizontal .ivu-menu-item,.ivu-menu-primary.ivu-menu-horizontal .ivu-menu-submenu{color:#fff}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown{min-width:100%;width:auto;max-height:none}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{height:auto;line-height:normal;border-bottom:0;float:none}.ivu-menu-item-group{line-height:normal}.ivu-menu-item-group-title{height:30px;line-height:30px;padding-left:8px;font-size:12px;color:#999}.ivu-menu-item-group>ul{padding:0!important;list-style:none!important}.ivu-menu-vertical .ivu-menu-item,.ivu-menu-vertical .ivu-menu-submenu-title{padding:14px 24px;position:relative;cursor:pointer;z-index:1;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-menu-vertical .ivu-menu-item:hover,.ivu-menu-vertical .ivu-menu-submenu-title:hover{color:#2d8cf0}.ivu-menu-vertical .ivu-menu-submenu-title-icon{position:absolute;top:50%;right:24px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ivu-menu-submenu-title-icon{-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}.ivu-menu-horizontal .ivu-menu-opened>*>.ivu-menu-submenu-title-icon{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.ivu-menu-vertical .ivu-menu-opened>*>.ivu-menu-submenu-title-icon{-webkit-transform:translateY(-50%) rotate(180deg);-ms-transform:translateY(-50%) rotate(180deg);transform:translateY(-50%) rotate(180deg)}.ivu-menu-vertical .ivu-menu-submenu-nested{padding-left:20px}.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item{padding-left:43px}.ivu-menu-vertical .ivu-menu-item-group-title{height:48px;line-height:48px;font-size:14px;padding-left:28px}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-group-title{color:rgba(255,255,255,.36)}.ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu){color:#2d8cf0;background:#f0faff;z-index:2}.ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):after{content:'';display:block;width:2px;position:absolute;top:0;bottom:0;right:0;background:#2d8cf0}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title{color:rgba(255,255,255,.7)}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu),.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):hover,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu),.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu):hover{background:#363e4f}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item:hover,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title:hover{color:#fff;background:#515a6e}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu),.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu){color:#2d8cf0}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item:hover{color:#fff;background:0 0!important}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item-active,.ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu .ivu-menu-item-active:hover{border-right:none;color:#fff;background:#2d8cf0!important}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-child-item-active>.ivu-menu-submenu-title{color:#fff}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-opened{background:#363e4f}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-opened .ivu-menu-submenu-title{background:#515a6e}.ivu-menu-dark.ivu-menu-vertical .ivu-menu-opened .ivu-menu-submenu-has-parent-submenu .ivu-menu-submenu-title{background:0 0}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item:hover{background:#f3f3f3}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-focus{background:#f3f3f3}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-selected,.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-selected:hover{color:#2d8cf0}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-menu-large .ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{white-space:normal}}.ivu-menu-horizontal .ivu-menu-submenu .ivu-select-dropdown .ivu-menu-item{padding:7px 16px 8px;font-size:14px!important}.ivu-date-picker{display:inline-block;line-height:normal}.ivu-date-picker-rel{position:relative}.ivu-date-picker .ivu-select-dropdown{width:auto;padding:0;overflow:visible;max-height:none}.ivu-date-picker-cells{width:196px;margin:10px;white-space:normal}.ivu-date-picker-cells span{display:inline-block;width:24px;height:24px}.ivu-date-picker-cells span em{display:inline-block;width:24px;height:24px;line-height:24px;margin:2px;font-style:normal;border-radius:3px;text-align:center;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-date-picker-cells-header span{line-height:24px;text-align:center;margin:2px;color:#c5c8ce}.ivu-date-picker-cells-cell:hover em{background:#e1f0fe}.ivu-date-picker-cells-focused em{-webkit-box-shadow:0 0 0 1px #2d8cf0 inset;box-shadow:0 0 0 1px #2d8cf0 inset}span.ivu-date-picker-cells-cell{width:28px;height:28px;cursor:pointer}.ivu-date-picker-cells-cell-next-month em,.ivu-date-picker-cells-cell-prev-month em{color:#c5c8ce}.ivu-date-picker-cells-cell-next-month:hover em,.ivu-date-picker-cells-cell-prev-month:hover em{background:0 0}span.ivu-date-picker-cells-cell-disabled,span.ivu-date-picker-cells-cell-disabled:hover,span.ivu-date-picker-cells-cell-week-label,span.ivu-date-picker-cells-cell-week-label:hover{cursor:not-allowed;color:#c5c8ce}span.ivu-date-picker-cells-cell-disabled em,span.ivu-date-picker-cells-cell-disabled:hover em,span.ivu-date-picker-cells-cell-week-label em,span.ivu-date-picker-cells-cell-week-label:hover em{color:inherit;background:inherit}span.ivu-date-picker-cells-cell-disabled,span.ivu-date-picker-cells-cell-disabled:hover{background:#f7f7f7}.ivu-date-picker-cells-cell-today em{position:relative}.ivu-date-picker-cells-cell-today em:after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:#2d8cf0;position:absolute;top:1px;right:1px}.ivu-date-picker-cells-cell-range{position:relative}.ivu-date-picker-cells-cell-range em{position:relative;z-index:1}.ivu-date-picker-cells-cell-range:before{content:'';display:block;background:#e1f0fe;border-radius:0;border:0;position:absolute;top:2px;bottom:2px;left:0;right:0}.ivu-date-picker-cells-cell-selected em,.ivu-date-picker-cells-cell-selected:hover em{background:#2d8cf0;color:#fff}span.ivu-date-picker-cells-cell-disabled.ivu-date-picker-cells-cell-selected em{background:#c5c8ce;color:#f7f7f7}.ivu-date-picker-cells-cell-today.ivu-date-picker-cells-cell-selected em:after{background:#fff}.ivu-date-picker-cells-show-week-numbers{width:226px}.ivu-date-picker-cells-month,.ivu-date-picker-cells-year{margin-top:14px}.ivu-date-picker-cells-month span,.ivu-date-picker-cells-year span{width:40px;height:28px;line-height:28px;margin:10px 12px;border-radius:3px}.ivu-date-picker-cells-month span em,.ivu-date-picker-cells-year span em{width:40px;height:28px;line-height:28px;margin:0}.ivu-date-picker-cells-month .ivu-date-picker-cells-cell-focused,.ivu-date-picker-cells-year .ivu-date-picker-cells-cell-focused{background-color:#d5e8fc}.ivu-date-picker-header{height:32px;line-height:32px;text-align:center;border-bottom:1px solid #e8eaec}.ivu-date-picker-header-label{cursor:pointer;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-date-picker-header-label:hover{color:#2d8cf0}.ivu-date-picker-btn-pulse{background-color:#d5e8fc!important;border-radius:4px;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.ivu-date-picker-prev-btn{float:left}.ivu-date-picker-prev-btn-arrow-double{margin-left:10px}.ivu-date-picker-prev-btn-arrow-double i:after{content:"\F115";margin-left:-8px}.ivu-date-picker-next-btn{float:right}.ivu-date-picker-next-btn-arrow-double{margin-right:10px}.ivu-date-picker-next-btn-arrow-double i:after{content:"\F11F";margin-left:-8px}.ivu-date-picker-with-range .ivu-picker-panel-body{min-width:432px}.ivu-date-picker-with-range .ivu-picker-panel-content{float:left}.ivu-date-picker-with-range .ivu-picker-cells-show-week-numbers{min-width:492px}.ivu-date-picker-with-week-numbers .ivu-picker-panel-body-date{min-width:492px}.ivu-date-picker-transfer{z-index:1060;max-height:none;width:auto}.ivu-date-picker-focused input{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-picker-panel-icon-btn{display:inline-block;width:20px;height:24px;line-height:26px;margin-top:2px;text-align:center;cursor:pointer;color:#c5c8ce;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-picker-panel-icon-btn:hover{color:#2d8cf0}.ivu-picker-panel-icon-btn i{font-size:14px}.ivu-picker-panel-body-wrapper.ivu-picker-panel-with-sidebar{padding-left:92px}.ivu-picker-panel-sidebar{width:92px;float:left;margin-left:-92px;position:absolute;top:0;bottom:0;background:#f8f8f9;border-right:1px solid #e8eaec;border-radius:4px 0 0 4px;overflow:auto}.ivu-picker-panel-shortcut{padding:6px 16px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-picker-panel-shortcut:hover{background:#e8eaec}.ivu-picker-panel-body{float:left}.ivu-picker-confirm{border-top:1px solid #e8eaec;text-align:right;padding:8px;clear:both}.ivu-picker-confirm>span{color:#2d8cf0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;float:left;padding:2px 0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-picker-confirm>span:hover{color:#57a3f3}.ivu-picker-confirm>span:active{color:#2b85e4}.ivu-picker-confirm-time{float:left}.ivu-time-picker-cells{min-width:112px}.ivu-time-picker-cells-with-seconds{min-width:168px}.ivu-time-picker-cells-list{width:56px;max-height:144px;float:left;overflow:hidden;border-left:1px solid #e8eaec;position:relative}.ivu-time-picker-cells-list:hover{overflow-y:auto}.ivu-time-picker-cells-list:first-child{border-left:none;border-radius:4px 0 0 4px}.ivu-time-picker-cells-list:last-child{border-radius:0 4px 4px 0}.ivu-time-picker-cells-list ul{width:100%;margin:0;padding:0 0 120px 0;list-style:none}.ivu-time-picker-cells-list ul li{width:100%;height:24px;line-height:24px;margin:0;padding:0 0 0 16px;-webkit-box-sizing:content-box;box-sizing:content-box;text-align:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;list-style:none;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-time-picker-cells-cell:hover{background:#f3f3f3}.ivu-time-picker-cells-cell-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-time-picker-cells-cell-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-time-picker-cells-cell-selected,.ivu-time-picker-cells-cell-selected:hover{color:#2d8cf0;background:#f3f3f3}.ivu-time-picker-cells-cell-focused{background-color:#d5e8fc}.ivu-time-picker-header{height:32px;line-height:32px;text-align:center;border-bottom:1px solid #e8eaec}.ivu-time-picker-with-range .ivu-picker-panel-body{min-width:228px}.ivu-time-picker-with-range .ivu-picker-panel-content{float:left;position:relative}.ivu-time-picker-with-range .ivu-picker-panel-content:after{content:'';display:block;width:2px;position:absolute;top:31px;bottom:0;right:-2px;background:#e8eaec;z-index:1}.ivu-time-picker-with-range .ivu-picker-panel-content-right{float:right}.ivu-time-picker-with-range .ivu-picker-panel-content-right:after{right:auto;left:-2px}.ivu-time-picker-with-range .ivu-time-picker-cells-list:first-child{border-radius:0}.ivu-time-picker-with-range .ivu-time-picker-cells-list:last-child{border-radius:0}.ivu-time-picker-with-range.ivu-time-picker-with-seconds .ivu-picker-panel-body{min-width:340px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells{min-width:216px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-with-seconds{min-width:216px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-with-seconds .ivu-time-picker-cells-list{width:72px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-with-seconds .ivu-time-picker-cells-list ul li{padding:0 0 0 28px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list{width:108px;max-height:216px}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list:first-child{border-radius:0}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list:last-child{border-radius:0}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list ul{padding:0 0 192px 0}.ivu-picker-panel-content .ivu-picker-panel-content .ivu-time-picker-cells-list ul li{padding:0 0 0 46px}.ivu-form .ivu-form-item-label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#515a6e;line-height:1;padding:10px 12px 10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.ivu-form-label-left .ivu-form-item-label{text-align:left}.ivu-form-label-top .ivu-form-item-label{float:none;display:inline-block;padding:0 0 10px 0}.ivu-form-inline .ivu-form-item{display:inline-block;margin-right:10px;vertical-align:top}.ivu-form-item{margin-bottom:24px;vertical-align:top;zoom:1}.ivu-form-item:after,.ivu-form-item:before{content:"";display:table}.ivu-form-item:after{clear:both;visibility:hidden;font-size:0;height:0}.ivu-form-item-content{position:relative;line-height:32px;font-size:14px}.ivu-form-item .ivu-form-item{margin-bottom:0}.ivu-form-item .ivu-form-item .ivu-form-item-content{margin-left:0!important}.ivu-form-item-error-tip{position:absolute;top:100%;left:0;line-height:1;padding-top:6px;color:#ed4014}.ivu-form-item-required .ivu-form-item-label:before{content:'*';display:inline-block;margin-right:4px;line-height:1;font-family:SimSun;font-size:14px;color:#ed4014}.ivu-form-hide-required-mark .ivu-form-item-required .ivu-form-item-label:before{display:none}.ivu-carousel{position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.ivu-carousel-list,.ivu-carousel-track{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.ivu-carousel-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.ivu-carousel-track{position:relative;top:100%;left:0;display:block;overflow:hidden;z-index:1}.ivu-carousel-track.higher{z-index:2;top:0}.ivu-carousel-item{float:left;height:100%;min-height:1px;display:block}.ivu-carousel-arrow{border:none;outline:0;padding:0;margin:0;width:36px;height:36px;border-radius:50%;cursor:pointer;display:none;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:.2s;transition:.2s;background-color:rgba(31,45,61,.11);color:#fff;text-align:center;font-size:1em;font-family:inherit;line-height:inherit}.ivu-carousel-arrow:hover{background-color:rgba(31,45,61,.5)}.ivu-carousel-arrow>*{vertical-align:baseline}.ivu-carousel-arrow.left{left:16px}.ivu-carousel-arrow.right{right:16px}.ivu-carousel-arrow-always{display:inherit}.ivu-carousel-arrow-hover{display:inherit;opacity:0}.ivu-carousel:hover .ivu-carousel-arrow-hover{opacity:1}.ivu-carousel-dots{z-index:10;display:none;position:relative;list-style:none;text-align:center;padding:0;width:100%;height:17px}.ivu-carousel-dots-inside{display:block;position:absolute;bottom:3px}.ivu-carousel-dots-outside{display:block;margin-top:3px}.ivu-carousel-dots li{position:relative;display:inline-block;vertical-align:top;text-align:center;margin:0 2px;padding:7px 0;cursor:pointer}.ivu-carousel-dots li button{border:0;cursor:pointer;background:#8391a5;opacity:.3;display:block;width:16px;height:3px;border-radius:1px;outline:0;font-size:0;color:transparent;-webkit-transition:all .5s;transition:all .5s}.ivu-carousel-dots li button.radius{width:6px;height:6px;border-radius:50%}.ivu-carousel-dots li:hover>button{opacity:.7}.ivu-carousel-dots li.ivu-carousel-active>button{opacity:1;width:24px}.ivu-carousel-dots li.ivu-carousel-active>button.radius{width:6px}.ivu-rate{display:inline-block;margin:0;padding:0;font-size:20px;vertical-align:middle;font-weight:400;font-style:normal}.ivu-rate-disabled .ivu-rate-star-content:before,.ivu-rate-disabled .ivu-rate-star:before{cursor:default}.ivu-rate-disabled .ivu-rate-star:hover{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ivu-rate-star-full,.ivu-rate-star-zero{position:relative}.ivu-rate-star-first{position:absolute;left:0;top:0;width:50%;height:100%;overflow:hidden;opacity:0}.ivu-rate-star-first,.ivu-rate-star-second{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .3s ease;transition:all .3s ease;color:#e9e9e9;cursor:pointer}.ivu-rate-star-chart{display:inline-block;margin:0;padding:0;margin-right:8px;position:relative;font-family:Ionicons;-webkit-transition:all .3s ease;transition:all .3s ease}.ivu-rate-star-chart:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.ivu-rate-star-chart.ivu-rate-star-full .ivu-rate-star-first,.ivu-rate-star-chart.ivu-rate-star-full .ivu-rate-star-second{color:#f5a623}.ivu-rate-star-chart.ivu-rate-star-half .ivu-rate-star-first{opacity:1;color:#f5a623}.ivu-rate-star{display:inline-block;margin:0;padding:0;margin-right:8px;position:relative;font-family:Ionicons;-webkit-transition:all .3s ease;transition:all .3s ease}.ivu-rate-star:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.ivu-rate-star-content:before,.ivu-rate-star:before{color:#e9e9e9;cursor:pointer;content:"\F2BF";-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:block}.ivu-rate-star-content{position:absolute;left:0;top:0;width:50%;height:100%;overflow:hidden}.ivu-rate-star-content:before{color:transparent}.ivu-rate-star-full:before,.ivu-rate-star-half .ivu-rate-star-content:before{color:#f5a623}.ivu-rate-star-full:hover:before,.ivu-rate-star-half:hover .ivu-rate-star-content:before{color:#f7b84f}.ivu-rate-text{margin-left:8px;vertical-align:middle;display:inline-block;font-size:14px}.ivu-upload input[type=file]{display:none}.ivu-upload-list{margin-top:8px}.ivu-upload-list-file{padding:4px;color:#515a6e;border-radius:4px;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;overflow:hidden;position:relative}.ivu-upload-list-file>span{cursor:pointer;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-upload-list-file>span i{display:inline-block;width:12px;height:12px;color:#515a6e;text-align:center}.ivu-upload-list-file:hover{background:#f3f3f3}.ivu-upload-list-file:hover>span{color:#2d8cf0}.ivu-upload-list-file:hover>span i{color:#515a6e}.ivu-upload-list-file:hover .ivu-upload-list-remove{opacity:1}.ivu-upload-list-remove{opacity:0;font-size:18px;cursor:pointer;float:right;margin-right:4px;color:#999;-webkit-transition:all .2s ease;transition:all .2s ease}.ivu-upload-list-remove:hover{color:#444}.ivu-upload-select{display:inline-block}.ivu-upload-drag{background:#fff;border:1px dashed #dcdee2;border-radius:4px;text-align:center;cursor:pointer;position:relative;overflow:hidden;-webkit-transition:border-color .2s ease;transition:border-color .2s ease}.ivu-upload-drag:hover{border:1px dashed #2d8cf0}.ivu-upload-dragOver{border:2px dashed #2d8cf0}.ivu-tree ul{list-style:none;margin:0;padding:0;font-size:14px}.ivu-tree ul.ivu-dropdown-menu{padding:0}.ivu-tree ul li{list-style:none;margin:8px 0;padding:0;white-space:nowrap;outline:0}.ivu-tree ul li.ivu-dropdown-item{margin:0;padding:7px 16px;white-space:nowrap}.ivu-tree li ul{margin:0;padding:0 0 0 18px}.ivu-tree-title{display:inline-block;margin:0;padding:0 4px;border-radius:3px;cursor:pointer;vertical-align:top;color:#515a6e;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ivu-tree-title:hover{background-color:#eaf4fe}.ivu-tree-title-selected,.ivu-tree-title-selected:hover{background-color:#d5e8fc}.ivu-tree-arrow{cursor:pointer;width:12px;text-align:center;display:inline-block}.ivu-tree-arrow i{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;font-size:14px;vertical-align:middle}.ivu-tree-arrow-open i{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.ivu-tree .ivu-checkbox-wrapper{margin-right:4px;margin-left:4px}.ivu-avatar{display:inline-block;text-align:center;background:#ccc;color:#fff;white-space:nowrap;position:relative;overflow:hidden;vertical-align:middle;width:32px;height:32px;line-height:32px;border-radius:50%}.ivu-avatar-image{background:0 0}.ivu-avatar .ivu-icon{position:relative;top:-1px}.ivu-avatar.ivu-avatar-icon{font-size:18px}.ivu-avatar-large{width:40px;height:40px;line-height:40px;border-radius:50%}.ivu-avatar-large.ivu-avatar-icon{font-size:24px}.ivu-avatar-large .ivu-icon{position:relative;top:-2px}.ivu-avatar-small{width:24px;height:24px;line-height:24px;border-radius:50%}.ivu-avatar-small.ivu-avatar-icon{font-size:14px}.ivu-avatar-square{border-radius:4px}.ivu-avatar>img{width:100%;height:100%}.ivu-color-picker{display:inline-block}.ivu-color-picker-hide{display:none}.ivu-color-picker-hide-drop{visibility:hidden}.ivu-color-picker-disabled{background-color:#f3f3f3;opacity:1;cursor:not-allowed;color:#ccc}.ivu-color-picker-disabled:hover{border-color:#e3e5e8}.ivu-color-picker>div:first-child:hover .ivu-input{border-color:#57a3f3}.ivu-color-picker>div:first-child.ivu-color-picker-disabled:hover .ivu-input{border-color:#e3e5e8}.ivu-color-picker .ivu-select-dropdown{padding:0}.ivu-color-picker-input.ivu-input:focus{-webkit-box-shadow:none;box-shadow:none}.ivu-color-picker-focused{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-rel{line-height:0}.ivu-color-picker-color{width:18px;height:18px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px;position:relative;top:2px}.ivu-color-picker-color div{width:100%;height:100%;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);border-radius:2px}.ivu-color-picker-color-empty{background:#fff;overflow:hidden;text-align:center}.ivu-color-picker-color-empty i{font-size:18px;vertical-align:baseline}.ivu-color-picker-color-focused{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-large .ivu-color-picker-color{width:20px;height:20px;top:1px}.ivu-color-picker-large .ivu-color-picker-color-empty i{font-size:20px}.ivu-color-picker-small .ivu-color-picker-color{width:14px;height:14px;top:3px}.ivu-color-picker-small .ivu-color-picker-color-empty i{font-size:14px}.ivu-color-picker-picker-wrapper{padding:8px 8px 0}.ivu-color-picker-picker-panel{width:240px;margin:0 auto;-webkit-box-sizing:initial;box-sizing:initial;position:relative}.ivu-color-picker-picker-alpha-slider,.ivu-color-picker-picker-hue-slider{height:10px;margin-top:8px;position:relative}.ivu-color-picker-picker-colors{margin-top:8px;overflow:hidden;border-radius:2px;-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-picker-colors:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-picker-colors-wrapper{display:inline;width:20px;height:20px;float:left;position:relative}.ivu-color-picker-picker-colors-wrapper-color{outline:0;display:block;position:absolute;width:16px;height:16px;margin:2px;cursor:pointer;border-radius:2px;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.ivu-color-picker-picker-colors-wrapper-circle{width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);-ms-transform:translate(-2px,-2px);transform:translate(-2px,-2px);position:absolute;top:10px;left:10px;cursor:pointer}.ivu-color-picker-picker .ivu-picker-confirm{margin-top:8px}.ivu-color-picker-saturation-wrapper{width:100%;padding-bottom:75%;position:relative;-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-saturation-wrapper:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-saturation,.ivu-color-picker-saturation--black,.ivu-color-picker-saturation--white{cursor:pointer;position:absolute;top:0;left:0;right:0;bottom:0}.ivu-color-picker-saturation--white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.ivu-color-picker-saturation--black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(rgba(0,0,0,0)));background:linear-gradient(to top,#000,rgba(0,0,0,0))}.ivu-color-picker-saturation-pointer{cursor:pointer;position:absolute}.ivu-color-picker-saturation-circle{width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);-ms-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.ivu-color-picker-hue{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;background:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-hue:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-hue-container{cursor:pointer;margin:0 2px;position:relative;height:100%}.ivu-color-picker-hue-pointer{z-index:2;position:absolute}.ivu-color-picker-hue-picker{cursor:pointer;margin-top:1px;width:4px;border-radius:1px;height:8px;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);background:#fff;-webkit-transform:translateX(-2px);-ms-transform:translateX(-2px);transform:translateX(-2px)}.ivu-color-picker-alpha{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;-webkit-transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,-webkit-box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out;transition:border .2s ease-in-out,box-shadow .2s ease-in-out,-webkit-box-shadow .2s ease-in-out}.ivu-color-picker-alpha:focus{border-color:#57a3f3;outline:0;-webkit-box-shadow:0 0 0 2px rgba(45,140,240,.2);box-shadow:0 0 0 2px rgba(45,140,240,.2)}.ivu-color-picker-alpha-checkboard-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:2px}.ivu-color-picker-alpha-checkerboard{position:absolute;top:0;right:0;bottom:0;left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.ivu-color-picker-alpha-gradient{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px}.ivu-color-picker-alpha-container{cursor:pointer;position:relative;z-index:2;height:100%;margin:0 3px}.ivu-color-picker-alpha-pointer{z-index:2;position:absolute}.ivu-color-picker-alpha-picker{cursor:pointer;width:4px;border-radius:1px;height:8px;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);background:#fff;margin-top:1px;-webkit-transform:translateX(-2px);-ms-transform:translateX(-2px);transform:translateX(-2px)}.ivu-color-picker-confirm{margin-top:8px;position:relative;border-top:1px solid #e8eaec;text-align:right;padding:8px;clear:both}.ivu-color-picker-confirm-color{position:absolute;top:11px;left:8px}.ivu-color-picker-confirm-color-editable{top:8px;right:110px}.ivu-auto-complete .ivu-select-not-found{display:none}.ivu-auto-complete .ivu-icon-ios-close{display:none}.ivu-auto-complete:hover .ivu-icon-ios-close{display:inline-block}.ivu-auto-complete.ivu-select-dropdown{max-height:none}.ivu-auto-complete div,.ivu-auto-complete:focus{outline:0}.ivu-divider{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-size:14px;line-height:1.5;color:#515a6e;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;list-style:none;background:#e8eaec}.ivu-divider,.ivu-divider-vertical{margin:0 8px;display:inline-block;height:.9em;width:1px;vertical-align:middle;position:relative;top:-.06em}.ivu-divider-horizontal{display:block;height:1px;width:100%;min-width:100%;margin:24px 0;clear:both}.ivu-divider-horizontal.ivu-divider-with-text-center,.ivu-divider-horizontal.ivu-divider-with-text-left,.ivu-divider-horizontal.ivu-divider-with-text-right{display:table;white-space:nowrap;text-align:center;background:0 0;font-weight:500;color:#17233d;font-size:16px;margin:16px 0}.ivu-divider-horizontal.ivu-divider-with-text-center:after,.ivu-divider-horizontal.ivu-divider-with-text-center:before,.ivu-divider-horizontal.ivu-divider-with-text-left:after,.ivu-divider-horizontal.ivu-divider-with-text-left:before,.ivu-divider-horizontal.ivu-divider-with-text-right:after,.ivu-divider-horizontal.ivu-divider-with-text-right:before{content:'';display:table-cell;position:relative;top:50%;width:50%;border-top:1px solid #e8eaec;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%)}.ivu-divider-horizontal.ivu-divider-small.ivu-divider-with-text-center,.ivu-divider-horizontal.ivu-divider-small.ivu-divider-with-text-left,.ivu-divider-horizontal.ivu-divider-small.ivu-divider-with-text-right{font-size:14px;margin:8px 0}.ivu-divider-horizontal.ivu-divider-with-text-left .ivu-divider-inner-text,.ivu-divider-horizontal.ivu-divider-with-text-right .ivu-divider-inner-text{display:inline-block;padding:0 10px}.ivu-divider-horizontal.ivu-divider-with-text-left:before{top:50%;width:5%}.ivu-divider-horizontal.ivu-divider-with-text-left:after{top:50%;width:95%}.ivu-divider-horizontal.ivu-divider-with-text-right:before{top:50%;width:95%}.ivu-divider-horizontal.ivu-divider-with-text-right:after{top:50%;width:5%}.ivu-divider-inner-text{display:inline-block;padding:0 24px}.ivu-divider-dashed{background:0 0;border-top:1px dashed #e8eaec}.ivu-divider-horizontal.ivu-divider-with-text-left.ivu-divider-dashed,.ivu-divider-horizontal.ivu-divider-with-text-right.ivu-divider-dashed,.ivu-divider-horizontal.ivu-divider-with-text.ivu-divider-dashed{border-top:0}.ivu-divider-horizontal.ivu-divider-with-text-left.ivu-divider-dashed:after,.ivu-divider-horizontal.ivu-divider-with-text-left.ivu-divider-dashed:before,.ivu-divider-horizontal.ivu-divider-with-text-right.ivu-divider-dashed:after,.ivu-divider-horizontal.ivu-divider-with-text-right.ivu-divider-dashed:before,.ivu-divider-horizontal.ivu-divider-with-text.ivu-divider-dashed:after,.ivu-divider-horizontal.ivu-divider-with-text.ivu-divider-dashed:before{border-style:dashed none none}.ivu-anchor{position:relative;padding-left:2px}.ivu-anchor-wrapper{overflow:auto;padding-left:4px;margin-left:-4px}.ivu-anchor-ink{position:absolute;height:100%;left:0;top:0}.ivu-anchor-ink:before{content:' ';position:relative;width:2px;height:100%;display:block;background-color:#e8eaec;margin:0 auto}.ivu-anchor-ink-ball{display:inline-block;position:absolute;width:8px;height:8px;border-radius:50%;border:2px solid #2d8cf0;background-color:#fff;left:50%;-webkit-transition:top .2s ease-in-out;transition:top .2s ease-in-out;-webkit-transform:translate(-50%,2px);-ms-transform:translate(-50%,2px);transform:translate(-50%,2px)}.ivu-anchor.fixed .ivu-anchor-ink .ivu-anchor-ink-ball{display:none}.ivu-anchor-link{padding:8px 0 8px 16px;line-height:1}.ivu-anchor-link-title{display:block;position:relative;-webkit-transition:all .3s;transition:all .3s;color:#515a6e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.ivu-anchor-link-title:only-child{margin-bottom:0}.ivu-anchor-link-active>.ivu-anchor-link-title{color:#2d8cf0}.ivu-anchor-link .ivu-anchor-link{padding-top:6px;padding-bottom:6px}.ivu-time-with-hash{cursor:pointer}.ivu-time-with-hash:hover{text-decoration:underline}.ivu-cell{position:relative;overflow:hidden}.ivu-cell-link,.ivu-cell-link:active,.ivu-cell-link:hover{color:inherit}.ivu-cell-icon{display:inline-block;margin-right:4px;font-size:14px;vertical-align:middle}.ivu-cell-icon:empty{display:none}.ivu-cell-main{display:inline-block;vertical-align:middle}.ivu-cell-title{line-height:24px;font-size:14px}.ivu-cell-label{line-height:1.2;font-size:12px;color:#808695}.ivu-cell-selected .ivu-cell-label{color:inherit}.ivu-cell-selected,.ivu-cell.ivu-cell-selected:hover{background:#f0faff}.ivu-cell-footer{display:inline-block;position:absolute;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%;right:16px;color:#515a6e}.ivu-cell-with-link .ivu-cell-footer{right:32px}.ivu-cell-selected .ivu-cell-footer{color:inherit}.ivu-cell-arrow{display:inline-block;position:absolute;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%;right:16px;font-size:14px}.ivu-cell:focus{background:#f3f3f3;outline:0}.ivu-cell-selected:focus{background:rgba(40,123,211,.91)}.ivu-cell{margin:0;line-height:normal;padding:7px 16px;clear:both;color:#515a6e;font-size:14px!important;white-space:nowrap;list-style:none;cursor:pointer;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.ivu-cell:hover{background:#f3f3f3}.ivu-cell-focus{background:#f3f3f3}.ivu-cell-disabled{color:#c5c8ce;cursor:not-allowed}.ivu-cell-disabled:hover{color:#c5c8ce;background-color:#fff;cursor:not-allowed}.ivu-cell-selected,.ivu-cell-selected:hover{color:#2d8cf0}.ivu-cell-divided{margin-top:5px;border-top:1px solid #e8eaec}.ivu-cell-divided:before{content:'';height:5px;display:block;margin:0 -16px;background-color:#fff;position:relative;top:-7px}.ivu-cell-enter{color:#2d8cf0;font-weight:700;float:right}.ivu-cell-large .ivu-cell{padding:7px 16px 8px;font-size:14px!important}@-moz-document url-prefix(){.ivu-cell{white-space:normal}}.ivu-drawer{width:auto;height:100%;position:fixed;top:0}.ivu-drawer-inner{position:absolute}.ivu-drawer-left{left:0}.ivu-drawer-right{right:0}.ivu-drawer-hidden{display:none!important}.ivu-drawer-wrap{position:fixed;overflow:auto;top:0;right:0;bottom:0;left:0;z-index:1000;-webkit-overflow-scrolling:touch;outline:0}.ivu-drawer-wrap-inner{position:absolute;overflow:hidden}.ivu-drawer-wrap-dragging{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ivu-drawer-wrap *{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.ivu-drawer-mask{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,55,55,.6);height:100%;z-index:1000}.ivu-drawer-mask-hidden{display:none}.ivu-drawer-mask-inner{position:absolute}.ivu-drawer-content{width:100%;height:100%;position:absolute;top:0;bottom:0;background-color:#fff;border:0;background-clip:padding-box;-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15)}.ivu-drawer-content-no-mask{pointer-events:auto}.ivu-drawer-header{border-bottom:1px solid #e8eaec;padding:14px 16px;line-height:1}.ivu-drawer-header p,.ivu-drawer-header-inner{display:inline-block;width:100%;height:20px;line-height:20px;font-size:16px;color:#17233d;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ivu-drawer-close{z-index:1;font-size:12px;position:absolute;right:8px;top:8px;overflow:hidden;cursor:pointer}.ivu-drawer-close .ivu-icon-ios-close{font-size:31px;color:#999;-webkit-transition:color .2s ease;transition:color .2s ease;position:relative;top:1px}.ivu-drawer-close .ivu-icon-ios-close:hover{color:#444}.ivu-drawer-body{width:100%;height:calc(100% - 51px);padding:16px;font-size:14px;line-height:1.5;word-wrap:break-word;position:absolute;overflow:auto}.ivu-drawer-no-header .ivu-drawer-body{height:100%}.ivu-drawer-no-mask{pointer-events:none}.ivu-drawer-no-mask .ivu-drawer-drag{pointer-events:auto}.ivu-drawer-drag{top:0;height:100%;width:0;position:absolute}.ivu-drawer-drag-left{right:0}.ivu-drawer-drag-move-trigger{width:8px;height:100px;line-height:100px;position:absolute;top:50%;background:#f3f3f3;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:4px/6px;-webkit-box-shadow:0 0 1px 1px rgba(0,0,0,.2);box-shadow:0 0 1px 1px rgba(0,0,0,.2);cursor:col-resize}.ivu-drawer-drag-move-trigger-point{display:inline-block;width:50%;-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%)}.ivu-drawer-drag-move-trigger-point i{display:block;border-bottom:1px solid silver;padding-bottom:2px}.ivu-breadcrumb{color:#999;font-size:14px}.ivu-breadcrumb a{color:#515a6e;-webkit-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.ivu-breadcrumb a:hover{color:#57a3f3}.ivu-breadcrumb>span:last-child{font-weight:700;color:#515a6e}.ivu-breadcrumb>span:last-child .ivu-breadcrumb-item-separator{display:none}.ivu-breadcrumb-item-separator{margin:0 8px;color:#dcdee2}.ivu-breadcrumb-item-link>.ivu-icon+span{margin-left:4px}.ivu-list{position:relative}.ivu-list-items{margin:0;padding:0;list-style:none}.ivu-list-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:12px 0}.ivu-list-item-content{color:#515a6e}.ivu-list-item-meta{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;font-size:0}.ivu-list-item-meta-avatar{margin-right:16px}.ivu-list-item-meta-content{-webkit-box-flex:1;-ms-flex:1 0;flex:1 0}.ivu-list-item-meta-title{font-weight:500;margin-bottom:4px;color:#515a6e;font-size:14px;line-height:22px}.ivu-list-item-meta-title>a{color:#515a6e;-webkit-transition:all .2s;transition:all .2s}.ivu-list-item-meta-title>a:hover{color:#2d8cf0}.ivu-list-item-meta-description{color:rgba(0,0,0,.45);font-size:14px;line-height:22px}.ivu-list-item-action{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-left:48px;padding:0;font-size:0;list-style:none}.ivu-list-item-action>li{position:relative;display:inline-block;padding:0 8px;color:rgba(0,0,0,.45);font-size:14px;line-height:22px;text-align:center;cursor:pointer}.ivu-list-item-action>li:after{content:'';position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background-color:#e8eaec}.ivu-list-item-action>li:first-child{padding-left:0}.ivu-list-item-action>li:last-child:after{display:none}.ivu-list-header{background:0 0}.ivu-list-footer{background:0 0}.ivu-list-footer,.ivu-list-header{padding-top:12px;padding-bottom:12px}.ivu-list-split .ivu-list-item{border-bottom:1px solid #e8eaec}.ivu-list-split .ivu-list-item:last-child{border-bottom:none}.ivu-list-split .ivu-list-header{border-bottom:1px solid #e8eaec}.ivu-list-split .ivu-list-footer{border-top:1px solid #e8eaec}.ivu-list-large .ivu-list-item{padding-top:16px;padding-bottom:16px}.ivu-list-small .ivu-list-item{padding-top:8px;padding-bottom:8px}.ivu-list-vertical .ivu-list-item{-webkit-box-align:initial;-ms-flex-align:initial;align-items:initial}.ivu-list-vertical .ivu-list-item-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1}.ivu-list-vertical .ivu-list-item-extra{margin-left:40px}.ivu-list-vertical .ivu-list-item-meta{margin-bottom:16px}.ivu-list-vertical .ivu-list-item-meta-title{margin-bottom:12px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ivu-list-vertical .ivu-list-item-action{margin-top:16px;margin-left:auto}.ivu-list-vertical .ivu-list-item-action>li{padding:0 16px}.ivu-list-vertical .ivu-list-item-action>li:first-child{padding-left:0}.ivu-list-item-no-flex{display:block}.ivu-list:not(.ivu-list-vertical) .ivu-list-item-no-flex .ivu-list-item-action{float:right}.ivu-list-bordered{border:1px solid #dcdee2;border-radius:6px}.ivu-list-bordered .ivu-list-header{padding-right:24px;padding-left:24px}.ivu-list-bordered .ivu-list-footer{padding-right:24px;padding-left:24px}.ivu-list-bordered .ivu-list-item{padding-right:24px;padding-left:24px;border-bottom:1px solid #e8eaec}.ivu-list-bordered .ivu-list-pagination{margin:16px 24px}.ivu-list-bordered.ivu-list-small .ivu-list-item{padding-right:16px;padding-left:16px}.ivu-list-bordered.ivu-list-small .ivu-list-footer,.ivu-list-bordered.ivu-list-small .ivu-list-header{padding:8px 16px}.ivu-list-bordered.ivu-list-large .ivu-list-footer,.ivu-list-bordered.ivu-list-large .ivu-list-header{padding:16px 24px}@media screen and (max-width:768px){.ivu-list-item-action{margin-left:24px}.ivu-list-vertical .ivu-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ivu-list-item{-ms-flex-wrap:wrap;flex-wrap:wrap}.ivu-list-item-action{margin-left:12px}.ivu-list-vertical .ivu-list-item{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.ivu-list-vertical .ivu-list-item-main{min-width:220px}.ivu-list-vertical .ivu-list-item-extra{margin:auto auto 16px}} |
New file |
| | |
| | | // 与客户端交互方法列表 |
| | | import wsPlugins from './plugins/index'; |
| | | // const ReWebSocket = require('reconnecting-websocket'); |
| | | // websocket重连 |
| | | import ReWebSocket from '../node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs'; |
| | | // const Bowser = require('bowser'); |
| | | // 浏览器信息获取 |
| | | import Bowser from "../node_modules/bowser/es5"; |
| | | const browser = Bowser.getParser(window.navigator.userAgent); |
| | | |
| | | interface callbacks { |
| | | // 连接客户端状态 |
| | | connectResult: any, |
| | | // 登录客户端状态 |
| | | loginResult: any |
| | | } |
| | | |
| | | |
| | | export default class Ws { |
| | | [x: string]: any; |
| | | // 连接地址 |
| | | static url: string = ''; |
| | | // 传入的配置项(方法) |
| | | static opts: Object = {}; |
| | | // 密码加密公钥 |
| | | static publicKey = ''; |
| | | // 是否连接客户端 |
| | | private isConnectSuccessQt: Boolean = false; |
| | | // 是否登录客户端 |
| | | private isLoginSuccess: Boolean = false; |
| | | // 唯一实例 |
| | | private static _instance: any = null; |
| | | // 当前连接的webSocket |
| | | webSocket: any; |
| | | // 最大重连数 |
| | | reConnectCount: number = 3; |
| | | // 连接失败次数 |
| | | connectFailCount: number = 0; |
| | | // 重连完成标识 |
| | | connectEnd: Boolean = false; |
| | | // 登录完成标识 |
| | | loginEnd: Boolean = false; |
| | | // 最大重登数 |
| | | reLoginCount: number = 1; |
| | | // 连接失败次数 |
| | | loginFailCount: number = 0; |
| | | // 当前websocket登录配置 |
| | | config: Object = {}; |
| | | // 登陆IP |
| | | loginIp: string; |
| | | // 登陆端口 |
| | | loginPort: string; |
| | | // 登录用户名 |
| | | userName: string; |
| | | // 登录密码,密码与token二选一 |
| | | userPwd: string; |
| | | // 登录token,密码与token二选一 |
| | | token: string; |
| | | // 用户标识符 |
| | | userCode: Number = 0; |
| | | // 回调函数 |
| | | private callback: callbacks; |
| | | // 创建的控件ID列表 |
| | | ids: Array<String> = []; |
| | | // 创建的控件列表 |
| | | ctrls: Array<String> = []; |
| | | // 心跳 |
| | | heartBeatTimer: any = null; |
| | | // 监听的方法表 |
| | | listerns: any; |
| | | constructor({ |
| | | url= 'ws://localhost:1234', |
| | | publicKey= 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbEpPpxpLJft4W9YZj8bRh2bYYZshBEsKOlxgyn11rlEyTasjBSZRV9aj33tvQ2T55izH0fWl+dL/dLZChawFrlGDcH8JuWge2xYMgII9mggcYa0UiQ7pLXJ9ivXZ/cOY3HzrRQdR7dGTSNn3Z0Ctbns6mLgvlA2r3qMNs/8wHBwIDAQAB', |
| | | reConnectCount = 3, |
| | | reLoginCount = 1, |
| | | loginIp= location.hostname, |
| | | loginPort= location.port, |
| | | userName = '', |
| | | userPwd = '', |
| | | token = '', |
| | | callback = { |
| | | connectResult: null, |
| | | loginResult: null |
| | | } |
| | | } : { |
| | | url: string, |
| | | publicKey: string, |
| | | reConnectCount: number, |
| | | reLoginCount: number, |
| | | loginIp: string, |
| | | loginPort: string, |
| | | userName: string, |
| | | userPwd: string, |
| | | token: string |
| | | callback: callbacks, |
| | | }) { |
| | | // if (/https/.test(location.protocol)) { |
| | | // url = `wss:${url}`; |
| | | // } else { |
| | | // url = `ws:${url}`; |
| | | // } |
| | | // url = `ws://localhost:1234`; |
| | | |
| | | this.url = url; |
| | | this.userCode = new Date().valueOf(); |
| | | this.webSocket = null; |
| | | this.reConnectCount = reConnectCount; |
| | | this.reLoginCount = reLoginCount; |
| | | this.publicKey = publicKey; |
| | | this.loginIp = loginIp; |
| | | this.loginPort = loginPort; |
| | | this.userName = userName; |
| | | this.userPwd = userPwd; |
| | | this.token = token; |
| | | this.callback = callback; |
| | | |
| | | this.connectFailCount = this.connectFailCount; |
| | | |
| | | // 基础操作所需功能或属性 |
| | | this.ids = []; |
| | | this.ctrls = []; |
| | | |
| | | // 是否连接客户端 |
| | | this.isConnectSuccessQt = false; |
| | | // 是否登陆客户端 |
| | | this.isLoginSuccess = false; |
| | | this.heartBeatTimer = null; |
| | | |
| | | // 初始化配置参数 |
| | | this.initConfig(); |
| | | |
| | | // 连接客户端 |
| | | this.connectQt(); |
| | | |
| | | // 获取与客户端交互方法列表 |
| | | const plugins = []; |
| | | Object.keys(wsPlugins).forEach(item => { |
| | | if(hasKey(wsPlugins, item)){ |
| | | plugins.push(wsPlugins[item]); |
| | | } |
| | | }); |
| | | // 与客户端通讯功能注册 |
| | | usePlugin(plugins); |
| | | |
| | | // 用户注册监听事件表 |
| | | this.listerns = new Map(); |
| | | |
| | | // 传入登录配置,则登录 |
| | | if(this.userName) { |
| | | this.detectConnectQt().then((res: Boolean) => { |
| | | if(res) { |
| | | // 登陆客户端 |
| | | this.loginClient(); |
| | | // 心跳保活 |
| | | this._heartbeat(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | /** |
| | | * @description 获得实例对象 |
| | | */ |
| | | public static getInstance(options: any):Ws { |
| | | if(!this._instance) { |
| | | this._instance = new Ws(options); |
| | | } |
| | | return this._instance; |
| | | } |
| | | /** |
| | | * @description 用户注册监听事件 |
| | | * @params {String} eventType 事件名称 |
| | | * @params {any} callback 回调函数 |
| | | */ |
| | | on(eventType: String, callback: any) { |
| | | this.listerns.set(eventType, callback); |
| | | } |
| | | /** |
| | | * @description 用户取消监听事件 |
| | | * @params {String} eventType 事件名称 |
| | | */ |
| | | off(eventType: string) { |
| | | delete this.listerns[eventType]; |
| | | } |
| | | /** |
| | | * @description 发送消息给客户端 |
| | | * @params {String} method 事件名称 |
| | | * @params {Object} data 传输消息的数据内容 |
| | | */ |
| | | emit(method: any, data: { method: any; }) { |
| | | const { webSocket } = this; |
| | | data.method = method; |
| | | // 不需要判断登录和连接的方法过滤 |
| | | let filterList = ['heartbeat', 'login', 'logout', 'browserInfo']; |
| | | if(filterList.includes(method)) { |
| | | webSocket.send(JSON.stringify(data)); |
| | | return; |
| | | } |
| | | return new Promise((resolve, reject) => { |
| | | this.detectConnectQt().then(con => { |
| | | if(con) { |
| | | this.detectLoginClient().then(login => { |
| | | if(login) { |
| | | webSocket.send(JSON.stringify(data)); |
| | | resolve(true); |
| | | } else { |
| | | // 登录失败 |
| | | reject(2); |
| | | } |
| | | }) |
| | | } else { |
| | | // 连接失败 |
| | | reject(1); |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | /* |
| | | * 初始化配置 |
| | | */ |
| | | initConfig() { |
| | | this.config = { |
| | | userName: this.userName, |
| | | userCode: this.userCode, |
| | | loginPort: this.loginPort, |
| | | loginIp: this.loginIp, |
| | | userPwd: this.userPwd, |
| | | token: this.token, |
| | | }; |
| | | // 浏览器信息 |
| | | const browserInfo = { |
| | | name: '', |
| | | version: '', |
| | | platform: '' |
| | | }; |
| | | browserInfo.name = browser.getBrowserName().toLowerCase(); |
| | | browserInfo.version = browser.getBrowser().version.toLowerCase(); |
| | | browserInfo.platform = |
| | | browser._ua.indexOf('Win64') >= 0 || browser._ua.indexOf('Wow64') >= 0 |
| | | ? 'win64' |
| | | : 'win32'; |
| | | this.config['browser'] = browserInfo; |
| | | } |
| | | /** |
| | | * @description 连接客户端 |
| | | */ |
| | | connectQt() { |
| | | this.connectEnd = false; |
| | | // 连接客户端 |
| | | this.webSocket = new ReWebSocket(this.url, '', { |
| | | maxRetries: this.reConnectCount |
| | | }); |
| | | this.addEvents(); |
| | | } |
| | | /** |
| | | * @description 检测连接客户端状态 |
| | | */ |
| | | detectConnectQt() { |
| | | let _this = this; |
| | | return new Promise((resolve, reject) => { |
| | | if(!this.connectEnd) { // 连接中 |
| | | let _interval = setInterval(() => { |
| | | if(_this.connectEnd) { |
| | | clearInterval(_interval); |
| | | resolve(_this.isConnectSuccessQt); |
| | | } |
| | | }, 50) |
| | | } else { |
| | | resolve(_this.isConnectSuccessQt); |
| | | } |
| | | }) |
| | | } |
| | | /** |
| | | * @description 检测登录客户端状态 |
| | | */ |
| | | detectLoginClient() { |
| | | let _this = this; |
| | | return new Promise((resolve, reject) => { |
| | | if(!this.loginEnd) { // 连接中 |
| | | let _interval = setInterval(() => { |
| | | if(_this.loginEnd) { |
| | | clearInterval(_interval); |
| | | resolve(_this.isLoginSuccess); |
| | | } |
| | | }, 50) |
| | | } else { |
| | | resolve(_this.isLoginSuccess); |
| | | } |
| | | }) |
| | | } |
| | | /** |
| | | * @description 登录客户端 |
| | | * @params {Object} config 登录相关配置 |
| | | */ |
| | | login(config: Object) { |
| | | this.loginEnd = false; |
| | | Object.assign(this.config, config); |
| | | // 未连接客户端 |
| | | if(!this.isOpen()) { |
| | | // 连接失败 |
| | | return false |
| | | } else { |
| | | // 若已登录,先注销 |
| | | if (this.isLoginSuccess) { |
| | | this.logout(); |
| | | } |
| | | // 登陆客户端 |
| | | this.loginClient(); |
| | | // 心跳保活 |
| | | this._heartbeat(); |
| | | } |
| | | } |
| | | /** |
| | | * @description 连接客户端完成后登陆 |
| | | */ |
| | | // loginAfterConnectEnd() { |
| | | // // 未连接客户端 |
| | | // if(!this.isOpen()) { |
| | | // // 连接失败 |
| | | // return false |
| | | // } else { |
| | | // // 若已登录,先注销 |
| | | // if (this.isLoginSuccess) { |
| | | // this.logout(); |
| | | // } |
| | | // // 登陆客户端 |
| | | // this.loginClient(); |
| | | // // 心跳保活 |
| | | // this._heartbeat(); |
| | | // } |
| | | // } |
| | | /** |
| | | * @description 登出客户端 |
| | | */ |
| | | logout() { |
| | | // 退出客户端 |
| | | this.logoutClient(); |
| | | this.isLoginSuccess = false; |
| | | if (typeof this.callback.loginResult === 'function') { |
| | | this.callback.loginResult.call(this, this.isLoginSuccess); |
| | | } |
| | | } |
| | | /** |
| | | * @description 添加websocket/window监听事件 |
| | | */ |
| | | addEvents() { |
| | | const webSocket = this.webSocket; |
| | | webSocket.addEventListener('open', () => this.onOpen()); |
| | | webSocket.addEventListener('message', (e: any) => this.onMessage(e)); |
| | | webSocket.addEventListener('error', () => this.onError()); |
| | | window.addEventListener('resize', () => this.reLocatedPosition()); |
| | | window.addEventListener('scroll', () => this.reLocatedPosition()); |
| | | } |
| | | /** |
| | | * @description 移除websocket/window监听事件 |
| | | */ |
| | | removeEvents() { |
| | | const webSocket = this.webSocket; |
| | | webSocket.removeEventListener('open', this.onOpen); |
| | | webSocket.removeEventListener('message', this.onMessage); |
| | | webSocket.removeEventListener('error', this.onError); |
| | | webSocket.removeEventListener('resize', this.reLocatedPosition); |
| | | webSocket.removeEventListener('scroll', this.reLocatedPosition); |
| | | } |
| | | /** |
| | | * @description 连接客户端成功事件 |
| | | */ |
| | | onOpen() { |
| | | this.isConnectSuccessQt = true; |
| | | this.connectEnd = true; |
| | | if (typeof this.callback.connectResult === 'function') { |
| | | this.callback.connectResult.call(this, this.isConnectSuccessQt); |
| | | } |
| | | } |
| | | /** |
| | | * @description 接收客户端消息 |
| | | * @params {Object} event 接收客户端的消息数据 |
| | | */ |
| | | onMessage(event: { data: string; }) { |
| | | try { |
| | | const data = JSON.parse(event.data); |
| | | const { method } = data; |
| | | const callback = this.listerns.get(method); |
| | | if (method === 'loginState') { |
| | | this.loginFailCount ++; |
| | | if(this.loginFailCount < this.reLoginCount + 1) { // 登录未到最大次数 |
| | | if(data.params.loginResult === 0) { // 登录成功 |
| | | this.isLoginSuccess = data.params.loginResult === 0; |
| | | if (typeof this.callback.loginResult === 'function') { |
| | | this.callback.loginResult.call(this, this.isLoginSuccess); |
| | | } |
| | | } else { // 登录失败 |
| | | this.loginClient(); |
| | | } |
| | | } else { // 登录达到最大次数 |
| | | this.loginEnd = true; |
| | | this.isLoginSuccess = data.params.loginResult === 0; |
| | | if (typeof this.callback.loginResult === 'function') { |
| | | this.callback.loginResult.call(this, this.isLoginSuccess); |
| | | } |
| | | } |
| | | } |
| | | if (callback) { |
| | | if (method === 'loginState') { |
| | | callback(this.isLoginSuccess); |
| | | } else if (method === 'createCtrlResult') { |
| | | callback(data.params.array); |
| | | } else { |
| | | callback(data); |
| | | } |
| | | } |
| | | } catch (e) { |
| | | // console.error('error', e); |
| | | } |
| | | } |
| | | /** |
| | | * @description 客户端发生错误事件 |
| | | */ |
| | | onError() { |
| | | this.isConnectSuccessQt = false; |
| | | clearTimeout(this.heartbeatTimer); |
| | | this.connectFailCount ++; |
| | | if(this.connectFailCount === this.reConnectCount + 1) { |
| | | this.connectEnd = true; |
| | | if (typeof this.callback.connectResult === 'function') { |
| | | this.callback.connectResult.call(this, this.isConnectSuccessQt); |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * @description 判断是否成功连接客户端 |
| | | */ |
| | | isOpen() { |
| | | if (!this.webSocket) return false; |
| | | return this.webSocket.readyState === 1; |
| | | } |
| | | /** |
| | | * @description 心跳事件 |
| | | */ |
| | | _heartbeat() { |
| | | this.heartbeat(); |
| | | clearTimeout(this.heartbeatTimer); |
| | | this.heartbeatTimer = setTimeout(() => { |
| | | this._heartbeat(); |
| | | }, 10000); |
| | | } |
| | | /** |
| | | * @description 获取当前浏览器缩放和滚动条信息 |
| | | */ |
| | | getScrollInfo() { |
| | | let ratio = detectZoom(); |
| | | let scrollX = window.pageXOffset; |
| | | let scrollY = window.pageYOffset; |
| | | var hasscrollbary = hasScrollbarY(); |
| | | var hasscrollbarx = hasScrollbarX(); |
| | | var scrollbarWidth = getScrollbarWidth(); |
| | | let scrollXH = hasscrollbarx ? scrollbarWidth : 0; |
| | | let scrollYW = hasscrollbary ? scrollbarWidth : 0; |
| | | return { ratio, scrollX, scrollY, scrollXH, scrollYW }; |
| | | } |
| | | } |
| | | |
| | | function promisify(func: Function) { |
| | | return new Promise((resolve, reject) => { |
| | | func('1', (data) => resolve(data)) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * @description 判断对象是否含有某属性 |
| | | * @params {Object} obj 对象 |
| | | * @params {String} key 属性key |
| | | */ |
| | | function hasKey<O>(obj: O, key: keyof any): key is keyof O { |
| | | return key in obj |
| | | } |
| | | |
| | | /** |
| | | * @description 与客户端通讯功能注册 |
| | | * @params {Array} plugins 功能列表 |
| | | */ |
| | | function usePlugin(plugins: any[]) { |
| | | plugins.forEach((plugin) => { |
| | | Object.getOwnPropertyNames(plugin).forEach(prop => { |
| | | Ws.prototype[prop] = plugin[prop]; |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | function detectZoom() { |
| | | var ratio = 0, |
| | | screen = window.screen, |
| | | ua = navigator.userAgent.toLowerCase(); |
| | | |
| | | if (window.devicePixelRatio !== undefined) { |
| | | ratio = window.devicePixelRatio; |
| | | } else if (~ua.indexOf('msie')) { |
| | | if (screen['deviceXDPI'] && screen['logicalXDPI']) { |
| | | ratio = screen['deviceXDPI'] / screen['logicalXDPI']; |
| | | } |
| | | } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) { |
| | | ratio = window.outerWidth / window.innerWidth; |
| | | } |
| | | |
| | | if (ratio) { |
| | | ratio = Math.round(ratio * 100); |
| | | } |
| | | return ratio; |
| | | } |
| | | |
| | | function hasScrollbarY() { |
| | | return ( |
| | | document.body.scrollHeight > |
| | | (window.innerHeight || document.documentElement.clientHeight) |
| | | ); |
| | | } |
| | | |
| | | function hasScrollbarX() { |
| | | return ( |
| | | document.body.scrollWidth > |
| | | (window.innerWidth || document.documentElement.clientWidth) |
| | | ); |
| | | } |
| | | |
| | | function getScrollbarWidth() { |
| | | var scrollDiv = document.createElement('div'); |
| | | scrollDiv.style.cssText = |
| | | 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;'; |
| | | document.body.appendChild(scrollDiv); |
| | | var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; |
| | | document.body.removeChild(scrollDiv); |
| | | |
| | | return scrollbarWidth; |
| | | } |
New file |
| | |
| | | version = '1.0.35' |
| | |
| | | }, |
| | | deleteVideoPoint: (params) => { |
| | | return http.delete('/sccg/video_point/deletion', params); |
| | | }, |
| | | |
| | | getVideoPointUrl: (code) => { |
| | | return http.get(`/sccg/API/Video/${code}/0?scheme=HLS`); |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <el-container style="height: 100%;"> |
| | | <el-container style="height: 100%"> |
| | | <el-aside heigth="100%" width="200px"> |
| | | <department-aside @selectedDepartment="selectedDepartment" /> |
| | | </el-aside> |
| | | |
| | | <el-container> |
| | | <el-header style="display:flex;flex-direction: column;height: 120px;"> |
| | | <div style="display:flex;justify-content: space-between;height: 80px;"> |
| | | <span style="color:rgb(75, 155, 183);font-weight: 500;text-align: left; font-size: 16px;">整体趋势</span> |
| | | <el-header style="display: flex; flex-direction: column; height: 120px"> |
| | | <div |
| | | style="display: flex; justify-content: space-between; height: 80px" |
| | | > |
| | | <span |
| | | style=" |
| | | color: rgb(75, 155, 183); |
| | | font-weight: 500; |
| | | text-align: left; |
| | | font-size: 16px; |
| | | " |
| | | >整体趋势</span |
| | | > |
| | | <el-date-picker v-model="value" type="date" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div style="height:60px;display: flex;justify-content: flex-start;"> |
| | | <el-button class="button-one"> |
| | | 视频预览 |
| | | </el-button> |
| | | <el-button class="button-two"> |
| | | 视频巡查 |
| | | </el-button> |
| | | <el-button class="button-third"> |
| | | 图片巡查 |
| | | </el-button> |
| | | </div> |
| | | <!-- <div style="height: 60px; display: flex; justify-content: flex-start"> |
| | | <el-button class="button-one"> 视频预览 </el-button> |
| | | <el-button class="button-two"> 视频巡查 </el-button> |
| | | <el-button class="button-third"> 图片巡查 </el-button> |
| | | </div> --> |
| | | </el-header> |
| | | |
| | | <el-main style="display:flex;flex-wrap: wrap;overflow-y: scroll;"> |
| | | <div v-for="item in videoData " style="height: 240px ;width: 210px; position: relative;margin-left:20px ;"> |
| | | <div style="color:rgb(75, 155, 183); font-size: 11px;line-height: 18px; position: absolute; z-index: 1;left: 50px;"> |
| | | <el-main style="display: flex; flex-wrap: wrap; overflow-y: scroll"> |
| | | <div |
| | | v-for="item in videoData" |
| | | :key="item.id" |
| | | style=" |
| | | height: 360px; |
| | | width: 400px; |
| | | position: relative; |
| | | margin-left: 20px; |
| | | " |
| | | > |
| | | <div |
| | | style=" |
| | | color: rgb(75, 155, 183); |
| | | font-size: 11px; |
| | | line-height: 18px; |
| | | position: absolute; |
| | | z-index: 1; |
| | | left: 50px; |
| | | " |
| | | > |
| | | {{ item.name }}{{ item.community }} |
| | | </div> |
| | | <video id="my-video" class="video-js" controls preload="auto" width="210px" height="150px" :src="item.urlAddress" type="video/mp4"> |
| | | </video> |
| | | <div class="bottonOne" @click="">查看视频</div> |
| | | <div class="bottonTwo">视频上报</div> |
| | | <div class="bottonThird">对讲</div> |
| | | <video |
| | | :id="item.id" |
| | | class="video-js" |
| | | controls |
| | | preload="auto" |
| | | width="400px" |
| | | height="300px" |
| | | :src="item.urlAddress" |
| | | type="video/mp4" |
| | | ></video> |
| | | <div class="button-div"> |
| | | <div @click="loadVideo(item)">查看视频</div> |
| | | <div>视频上报</div> |
| | | <div @click="create(item)">对讲</div> |
| | | </div> |
| | | </div> |
| | | </el-main> |
| | | <el-dialog |
| | | :visible.sync="dialogCreate" |
| | | title="查看视频" |
| | | width="80%" |
| | | v-show="dialogCreate" |
| | | :before-close="handleClose2" |
| | | > |
| | | <div class="dom" style="width: 100%; height: 600px; position: relative"> |
| | | <div id="dom1" class="dom1"></div> |
| | | <div id="dom2" class="dom2"></div> |
| | | <div id="dom3" class="dom3"></div> |
| | | </div> |
| | | </el-dialog> |
| | | <el-footer> |
| | | <div style="margin-bottom:0;"> |
| | | <el-pagination layout="prev, pager, next" @current-change="currentPageChange" :total="totalNum" :page-size="pageSize"></el-pagination> |
| | | <div style="margin-bottom: 0"> |
| | | <el-pagination |
| | | layout="prev, pager, next" |
| | | @current-change="currentPageChange" |
| | | :total="totalNum" |
| | | :page-size="pageSize" |
| | | ></el-pagination> |
| | | </div> |
| | | </el-footer> |
| | | </el-container> |
| | | </el-container> |
| | | </template> |
| | | |
| | | <script> |
| | | // import "../../video_lib/DHWs.js"; |
| | | import departmentAside from "@/views/operate/fivepack/threepack/components/aside"; |
| | | import videoPoint from "@/api/system/videoPoint"; |
| | | |
| | | export default { |
| | | components: { departmentAside }, |
| | | created() { |
| | | this.getVideoPointList(); |
| | | }, |
| | | data() { |
| | | return { |
| | | currentPage: 1, |
| | | totalNum: 7, |
| | | pageSize: 10, |
| | | pageSize: 8, |
| | | videoData: [], |
| | | value: null |
| | | value: null, |
| | | dialogCreate: false, |
| | | cutPosX: 10, |
| | | cutPosY: 10, |
| | | cutWidth: 100, |
| | | cutHeight: 100, |
| | | crtPosX: 0, |
| | | crtPosY: 0, |
| | | crtWidth: 1000, |
| | | crtHeight: 600, |
| | | domId: "dom1", |
| | | ctrl: "ctrl1", |
| | | }; |
| | | }, |
| | | |
| | | created() { |
| | | this.getVideoPointList(); |
| | | }, |
| | | mounted() {}, |
| | | methods: { |
| | | loadVideo(item) { |
| | | if (Hls.isSupported()) { |
| | | var video = document.getElementById(item.id); |
| | | var hls = new Hls(); |
| | | videoPoint.getVideoPointUrl(item.platResourceId).then((res) => { |
| | | |
| | | if (res.code == 0) { |
| | | hls.loadSource(res.data); |
| | | hls.attachMedia(video); |
| | | hls.on(Hls.Events.MANIFEST_PARSED, function () { |
| | | video.play(); |
| | | document.body.addEventListener( |
| | | "click", |
| | | function () { |
| | | video.play(); |
| | | }, |
| | | false |
| | | ); |
| | | }); |
| | | setTimeout(() => { |
| | | video.play(); |
| | | }, 2000); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | getVideoPointList(data) { |
| | | let communityId, streetId; |
| | | if (data) { |
| | | communityId = data.parentId; |
| | | streetId = data.id; |
| | | } |
| | | videoPoint.getVideoPointList({ current: this.currentPage, size: this.pageSize, communityId, streetId }) |
| | | .then(({ records, total }) => { |
| | | this.videoData = records; |
| | | this.totalNum = total; |
| | | }) |
| | | .catch(err => this.$message.error(err)) |
| | | videoPoint |
| | | .getVideoPointList({ |
| | | current: this.currentPage, |
| | | size: this.pageSize, |
| | | communityId, |
| | | streetId, |
| | | }) |
| | | .then(({ records, total }) => { |
| | | this.videoData = records; |
| | | this.totalNum = total; |
| | | }) |
| | | .catch((err) => this.$message.error(err)); |
| | | }, |
| | | selectedDepartment(data) { |
| | | this.getVideoPointList(data); |
| | |
| | | currentPageChange(page) { |
| | | this.currentPage = page; |
| | | this.getVideoPointList(); |
| | | } |
| | | } |
| | | }, |
| | | handleClose2() { |
| | | this.dialogCreate = false; |
| | | this.destroy(); |
| | | }, |
| | | login() { |
| | | // 调用登录接口 |
| | | this.ws.detectConnectQt().then((res) => { |
| | | if (res) { |
| | | // 连接客户端成功 |
| | | this.ws.login({ |
| | | loginIp: "183.245.159.161", |
| | | loginPort: "8282", |
| | | userName: "suichang", |
| | | userPwd: "a12345677", |
| | | https: 1, |
| | | }); |
| | | this.$message.info("登录中..."); |
| | | this.ws.on("loginState", (res) => { |
| | | this.isLogin = res; |
| | | if (res) { |
| | | this.$message.success("登录成功"); |
| | | this.activePanel = "key2"; |
| | | } else { |
| | | this.$message.info("登录失败"); |
| | | } |
| | | }); |
| | | } else { |
| | | // 连接客户端失败 |
| | | this.$message.info("请重新安装客户端"); |
| | | } |
| | | }); |
| | | }, |
| | | logout() { |
| | | // 调用登出接口 |
| | | this.ws.logout({ |
| | | loginIp: this.loginIp, |
| | | }); |
| | | }, |
| | | create(item) { |
| | | const DHWsInstance = DHWs.getInstance(); |
| | | this.ws = DHWsInstance; |
| | | console.log(this.ws); |
| | | this.login(); |
| | | // 调用创建控件接口 |
| | | // if (!this.isLogin) { |
| | | // this.$message.info('正在登陆客户端,请稍等......'); |
| | | // return false; |
| | | // } |
| | | this.dialogCreate = true; |
| | | setTimeout(() => { |
| | | let _this = this; |
| | | const params = [ |
| | | { |
| | | ctrlType: "realMonitorUI", |
| | | // ctrlType: "playerWin", |
| | | ctrlCode: this.ctrl, |
| | | ctrlProperty: { |
| | | displayMode: 1, |
| | | splitNum: 1, |
| | | channelList: [{ channelId: item.platResourceId }], |
| | | }, |
| | | visible: true, |
| | | domId: this.domId, |
| | | }, |
| | | ]; |
| | | this.setPos(); |
| | | _this.ws |
| | | .createCtrl(params) |
| | | .then((res) => { |
| | | this.$message.success("创建成功"); |
| | | console.log("res", res); |
| | | }) |
| | | .catch((e) => { |
| | | console.log("error;", e); |
| | | }); |
| | | _this.ws.on("createCtrlResult", (res) => { |
| | | console.warn(res); |
| | | }); |
| | | }, 1000); |
| | | }, |
| | | |
| | | destroy() { |
| | | // 调用销毁控件接口 |
| | | if (!this.isLogin) { |
| | | this.$Message.info("正在登陆客户端,请稍等......"); |
| | | return false; |
| | | } |
| | | const ctrls = this.ws.ctrls.map((i) => { |
| | | if (i.ctrlCode === this.ctrl) { |
| | | return i.ctrlCode; |
| | | } |
| | | }); |
| | | this.ws.destroyCtrl(ctrls); |
| | | }, |
| | | setPos() { |
| | | let target = document.getElementById(this.domId); |
| | | console.log(target, "target"); |
| | | target.style.right = `${this.crtPosX}px`; |
| | | target.style.top = `${this.crtPosY}px`; |
| | | target.style.width = `${this.crtWidth}px`; |
| | | target.style.height = `${this.crtHeight}px`; |
| | | if (document.createEvent) { |
| | | var event = document.createEvent("HTMLEvents"); |
| | | event.initEvent("resize", true, true); |
| | | window.dispatchEvent(event); |
| | | } else if (document.createEventObject) { |
| | | window.fireEvent("onresize"); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | |
| | | color: rgb(75, 155, 183); |
| | | border: 1px solid rgb(75, 155, 183); |
| | | } |
| | | .el-button+.el-button{ |
| | | .el-button + .el-button { |
| | | margin: 0; |
| | | } |
| | | .button-third { |
| | |
| | | border: 1px solid rgb(75, 155, 183); |
| | | margin-left: 20px; |
| | | } |
| | | .button-div { |
| | | color: rgb(75, 155, 183); |
| | | position: absolute; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | width: 100%; |
| | | margin-left: 20px; |
| | | display: flex; |
| | | justify-content: center; |
| | | |
| | | div { |
| | | font-size: 11px; |
| | | display: flex; |
| | | justify-content: center; |
| | | cursor: pointer; |
| | | border: 1px solid rgb(75, 155, 183); |
| | | |
| | | width: 33.3%; |
| | | } |
| | | } |
| | | |
| | | .bottonOne { |
| | | color: rgb(75, 155, 183); |
| | |
| | | height: 30px; |
| | | line-height: 30px; |
| | | margin-left: 20px; |
| | | width: 70px; |
| | | width: 33.3%; |
| | | border: 1px solid rgb(75, 155, 183); |
| | | cursor: pointer; |
| | | } |
| | |
| | | position: absolute; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | width: 70px; |
| | | width: 33.3%; |
| | | border: 1px solid rgb(75, 155, 183); |
| | | margin-left: 90px; |
| | | cursor: pointer; |
| | | } |
| | | .el-pagination{ |
| | | .el-pagination { |
| | | line-height: 40px; |
| | | } |
| | | .bottonThird { |
| | |
| | | position: absolute; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | width: 70px; |
| | | width: 33.3%; |
| | | border: 1px solid rgb(75, 155, 183); |
| | | margin-left: 160px; |
| | | cursor: pointer; |
| | |
| | | font-size: 14px; |
| | | color: rgb(75, 155, 183); |
| | | } |
| | | .dom1 { |
| | | margin: 0 auto; |
| | | } |
| | | </style> |