[
  {
    "path": ".gitignore",
    "content": "\nspeed - 副本 (2).json\n"
  },
  {
    "path": "CNAME",
    "content": "kbracer.github.io"
  },
  {
    "path": "bigV.json",
    "content": "[\t\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"911 TurboS\",\n\t\t\"BID\": \"BV1eN4y1K7nf\",\n\t\t\"Btitle\": \"最烂仔的GT2RS？\",\n\t\t\"hp\": \"620\",\n\t\t\"hp_content\": \"620\",\n\t\t\"Powertrain\": \"3.8T/7DCT\",\n\t\t\"speed\": \"63.21\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"F200\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.38\",\n\t\t\"limit\": \"202.54\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"255.10\",\n\t\t\"driver\":\"阿飞\"\n\t},\t\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"911 Carrara S\",\n\t\t\"BID\": \"BV1RN4y1P7ZH\",\n\t\t\"Btitle\": \"GIC最速传说，比GT3RS还快的992S..\",\n\t\t\"hp\": \"540\",\n\t\t\"hp_content\": \"540\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"64.45\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.24\",\n\t\t\"limit\": \"189.07\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"146.00\",\n\t\t\"driver\":\"Jerry杨浩宇\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"AMG GTC\",\n\t\t\"BID\": \"BV1W7HczjEen\",\n\t\t\"Btitle\": \"【大V榜】小米工程师开AMG GTC\",\n\t\t\"hp\": \"557\",\n\t\t\"hp_content\": \"557\",\n\t\t\"Powertrain\": \"4.0T/7DCT\",\n\t\t\"speed\": \"66.01\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"PT-01\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"193.34\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"182.68\",\n\t\t\"driver\":\"Frank\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"M3\",\n\t\t\"BID\": \"BV1AuvmBxEJr\",\n\t\t\"Btitle\": \"【大V榜】100万的宝马M4 vs 10万的宝马M4~！！\",\n\t\t\"hp\": \"420\",\n\t\t\"hp_content\": \"420\",\n\t\t\"Powertrain\": \"4.0/7DCT\",\n\t\t\"speed\": \"66.31\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"CR-S\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.64\",\n\t\t\"limit\": \"175.51\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"110.50\",\n\t\t\"driver\":\"约翰\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"GT86\",\n\t\t\"BID\": \"BV1PA41167u8\",\n\t\t\"Btitle\": \"北方一台快的86都没有？\",\n\t\t\"hp\": \"233\",\n\t\t\"hp_content\": \"233\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"70.81\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"TD\",\n\t\t\"temperature\": \"1\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.21\",\n\t\t\"limit\": \"159.83\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.96\",\n\t\t\"driver\":\"键盘打工人\"\n\t},\n\t{\n\t\t\"year\":\"2008\",\n\t\t\"car\": \"Lancer Evolution IX\",\n\t\t\"BID\": \"BV16T411T7qD\",\n\t\t\"Btitle\": \"EVO 9已经超过100W了？\",\n\t\t\"hp\": \"280\",\n\t\t\"hp_content\": \"280\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"74.30\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"R888R\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.18\",\n\t\t\"limit\": \"156.12\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"45.50\",\n\t\t\"driver\":\"李松桥\"\n\t},\n\t{\n\t\t\"year\":\"2003\",\n\t\t\"car\": \"M3 CSL\",\n\t\t\"BID\": \"BV1KU4y1k7Ck\",\n\t\t\"Btitle\": \"20年的老车还要100W？E46M3 CSL喜欢您来！\",\n\t\t\"hp\": \"360\",\n\t\t\"hp_content\": \"360\",\n\t\t\"Powertrain\": \"3.2/6MT\",\n\t\t\"speed\": \"78.36\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2\",\n\t\t\"temperature\": \"33\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.62\",\n\t\t\"limit\": \"138.40\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"-\",\n\t\t\"driver\":\"亢岳\"\n\t}\n]"
  },
  {
    "path": "css/button.css",
    "content": ".button {\n  position: relative;\n  appearance: none;\n  background: #337ab7;\n  padding: 10px 20px;\n  border: none;\n  color: white;\n  cursor: pointer;\n  outline: none;\n  overflow: hidden;\n  border-radius: 10px;\n  text-align: center;\n  width: 180px;\n  height: 40px;\n  line-height: 20px;\n  box-sizing: border-box;\n  box-shadow: inset 0 -2px 0 #23527c;\n  margin: 20px auto 40px;\n  transform: scale(2);\n}\n.button span {\n  position: relative;\n  letter-spacing: 8px;\n}\n.button::before {\n  --size: 0;\n  content: '';\n  position: absolute;\n  left: var(--x);\n  top: var(--y);\n  width: var(--size);\n  height: var(--size);\n  background: radial-gradient(circle closest-side, #4405f7, transparent);\n  transform: translate(-50%, -50%);\n  transition: width 0.2s ease, height 0.2s ease;\n}\n.button:hover::before {\n  --size: 400px;\n}\n"
  },
  {
    "path": "css/button.less",
    "content": ".button {\n  position: relative;\n  appearance: none;\n  background: #337ab7;\n  // padding: 1em 2em;\n  padding: 10px 20px;\n  border: none;\n  color: white;\n  // font-size: 1.2em;\n  cursor: pointer;\n  outline: none;\n  overflow: hidden;\n  border-radius: 10px;\n \n  text-align: center;\n  width: 180px;\n  height: 40px;\n  line-height: 20px;\n  box-sizing: border-box;\n  box-shadow: inset 0 -2px 0 #23527c;\n  margin: 20px auto 40px;\n\n  transform: scale(2);\n  span {\n    position: relative;\n\n    letter-spacing:8px\n  }\n \n  &::before {\n    --size: 0;  \n \n    content: '';\n    position: absolute;\n    left: var(--x);\n    top: var(--y);\n    width: var(--size);\n    height: var(--size);\n    background: radial-gradient(circle closest-side, #4405f7, transparent);\n    transform: translate(-50%, -50%);\n    transition: width .2s ease, height .2s ease;\n  }\n \n  &:hover::before {\n    --size: 400px;\n  }\n}\n"
  },
  {
    "path": "css/index.css",
    "content": "body {\n\tbackground-image: linear-gradient(90deg, #485563, #29323c);\n\tmin-height: 100vh;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\toverflow-x: hidden;\n}\ntable {\n\twidth:100%;\t\n}\ntbody {\n\tcolor: #eeeeee;\n\twidth: 100%;\n}\n\nthead {\n\tcolor: #e5e5e5;\n\twidth: 100%;\n}\n\n.mini_banner {\n\tdisplay: none;\n}\n\n\n\ntr.speed0 {\n\tbackground-image: linear-gradient(230deg, hsl(335, 58%, 48%), hsl(335, 47%, 60%));\n}\n\ntr.speed1 {\n\tbackground-image: linear-gradient(230deg, hsl(0, 65%, 60%),hsl(0, 79%, 63%) );\n}\ntr.speed2 {\n\tbackground-image: linear-gradient(230deg, hsl(282, 38%, 28%), hsl(282, 27%, 56%));\n}\n\ntr.speed3 {\n\tbackground-image: linear-gradient(230deg, hsl(238, 38%, 28%), hsl(206, 53%, 56%));\n}\n\ntr.speed4 {\n\tbackground-image: linear-gradient(230deg, hsl(186, 38%, 28%), hsl(186, 27%, 56%));\n}\n\ntr.speed5 {\n\tbackground-image: linear-gradient(230deg, hsl(30, 83%, 38%), hsl(30, 49%, 56%));\n}\n\ntr.speed6 {\n\tbackground-image: linear-gradient(230deg, hsl(0, 54%, 38%), hsl(10, 49%, 56%));\n}\n\ntr.speed0:hover {\n\tbackground-image: linear-gradient(230deg, hsl(335, 58%, 60%), hsl(335, 47%, 72%));\n\tcolor: fff;\n}\n\ntr.speed1:hover {\n\tbackground-image: linear-gradient(230deg, hsl(8, 58%, 67%),hsl(8, 80%, 69%) );\n\tcolor: #fff;\n}\n\ntr.speed2:hover {\n\tbackground-image: linear-gradient(230deg, hsl(282, 38%, 40%), hsl(282, 27%, 68%));\n\tcolor: #fff;\n}\n\ntr.speed3:hover {\n\tbackground-image: linear-gradient(230deg, hsl(238, 38%, 40%), hsl(206, 53%, 68%));\n\tcolor: #fff;\n}\n\ntr.speed4:hover {\n\tbackground-image: linear-gradient(230deg, hsl(186, 38%, 40%), hsl(186, 27%, 68%));\n\tcolor: #fff;\n}\nt\ntr.speed5:hover {\n\tbackground-image: linear-gradient(230deg, hsl(30, 83%, 50%), hsl(30, 49%, 68%));\n\tcolor: #fff;\n}\n\ntr.speed6:hover {\n\tbackground-image: linear-gradient(230deg, hsl(0, 54%, 50%), hsl(10, 49%, 68%));\n\tcolor: #fff;\n}\n\n.table-responsive {\n\tbackground-color: rgba(229, 229, 229, 0.3);\n\tborder-radius: 4px;\n\tborder: solid;\n\tborder-width: 0;\n\tmargin: 2em;\n}\n\n.black {\n\tbackground-color: rgba(0, 0, 0, 0.3);\n}\n.gray {\n\tbackground-color: rgba(33,33,33, 0.1);\n}\n.blue {\n\tbackground-color: rgba(33,33,33, 0.6);\n}\n.align-left {\n\ttext-align:left !important;\n}\n\n.table {\n\tmargin-bottom: 0;\n\n\tmin-width: 1500px;\n\tdisplay: none;\n\n\ttext-align:center;\n}\n.table.active {\n\tdisplay: table;\n}\n\na {\n\tcolor: #bbffff !important;\n}\n\na:hover {\n\tcolor: aqua;\n}\n\na:checked {\n\tcolor: azure;\n}\n\n.index_banner {\n\t/* position: relative; */\n\tpadding: 2em 1em;\n\tmargin: 1em 2em 0em;\n\tborder-radius: 20px;\n\tbox-shadow: 1px 1px 10px #333;\n\tbackground-image: linear-gradient(200deg, #2980b9, #2c3e50);\n\ttext-align: left;\n\tvertical-align: middle;\n}\n\n#canvas_bg {\n\tposition: absolute;\n\t/* width: 100%;\n    height: 100%; */\n\tz-index: -10;\n}\n\n.title {\n\tcolor: #fefeff\n}\n\nfooter {\n\tcolor: #fff;\n\tbackground-image: linear-gradient(90deg, rgba(200, 200, 255, 0.2), rgba(255, 255, 255, 0.4));\n\tbox-shadow: -10px 0px 50px #333;\n\twidth: 100%;\n\tpadding: 2em;\n\tmargin-bottom: 0px;\n\n\tline-height: 40px;\n}\n\n/* layer */\n.tips-content {\n\tpadding: 20px;\n\tbackground-color: #000;\n\tcolor: #fff;\n}\n\n\n.t-left {\n\ttext-align: left;\n}\n.t-center {\n\ttext-align: center;\n}\n.t-right {\n\ttext-align: right;\n}\n\n#tb_results .icon ,\n#tb_results2 .icon ,\n#tb_results3 .icon {\n\twidth: 15px;\n\tcursor: pointer;\n}\n#tb_results td ,\n#tb_results2 td,\n#tb_results3 td,\n#tb_results thead ,\n#tb_results2 thead,\n#tb_results3 thead,\n#tb_results tr ,\n#tb_results2 tr,\n#tb_results3 tr,\n#tb_results th ,\n#tb_results2 th,\n#tb_results3 th{\n\ttext-align:center;\n\tborder: 1px solid;\n}\n\n#tb_results .ranking,\n#tb_results .limit,\n#tb_results .accelerate,\n#tb_results .speed ,\n#tb_results2 .ranking,\n#tb_results3 .ranking,\n#tb_results2 .limit,\n#tb_results3 .limit,\n#tb_results2 .accelerate,\n#tb_results3 .accelerate,\n#tb_results2 .speed ,\n#tb_results3 .speed {\n\tmin-width: 65px;\n}\n\n#tb_results .mods ,\n#tb_results2 .mods ,\n#tb_results3 .mods {\n\tmin-width: 80px;\n}\n\n#tb_results .lv ,\n#tb_results2 .lv ,\n#tb_results3 .lv {\n\tmin-width: 50px;\n}\n\n#tb_results .temperature ,\n#tb_results2 .temperature ,\n#tb_results3 .temperature {\n\tmin-width: 90px;\n}\n\n#tb_results .car ,\n#tb_results2 .car ,\n#tb_results3 .car {\n\tmin-width: 135px;\n}\n\n\n/* 移动端适配 */\n@media (max-width: 550px) {\n\t.hid {\n\t\tdisplay: none;\n\t}\n\n\t.options>div {\n\t\tmargin-bottom: 5px;\n\t}\n\n\t/* .index_banner {\n\t\tdisplay: none;\n\t}\n\n\t.mini_banner {\n\t\tdisplay: block;\n\t\tpadding-left: 20px;\n\t\tpadding-top: 20px;\n\t}\n\n\t.input_ctrl {\n\t\tmargin-top: 20px;\n\t} */\n}\n\n/* button动效 */\n\n/* tab切换 */\n.box-tabs {\n\twidth:100%;\n\tpadding: 30px 0 0 30px;\n}\n.box-tabs .tab {\n\tdisplay:inline-block;\n\twidth:160px;\n\theight:40px;\n\tline-height:40px;\n\ttext-align:center;\n\tbackground-color: #fff;\n\tcursor: pointer;\n\tborder-radius: 10px;\n\tmargin-right: 10px;\n}\n.box-tabs .tab.active {\n\tbackground-color: #ff0080;\n\tcolor:#fff;\n}\n\n/* 国旗icon */\n.icon-flag  {\n\twidth: 24px;\n\theight: 24px;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tbackground-size: 100%;\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n}\n.icon-flag.DE {\n\tbackground-image: url(../img/flags/DE.png);\t\n}\n.icon-flag.BR {\n\tbackground-image: url(../img/flags/BR.png);\t\n}\n.icon-flag.CN {\n\tbackground-image: url(../img/flags/CN.png);\t\n}\n.icon-flag.FR {\n\tbackground-image: url(../img/flags/FR.png);\t\n}\n.icon-flag.IT {\n\tbackground-image: url(../img/flags/IT.png);\t\n}\n.icon-flag.JP {\n\tbackground-image: url(../img/flags/JP.png);\t\n}\n.icon-flag.KR {\n\tbackground-image: url(../img/flags/KR.png);\t\n}\n.icon-flag.RU {\n\tbackground-image: url(../img/flags/RU.png);\t\n}\n.icon-flag.SE {\n\tbackground-image: url(../img/flags/SE.png);\t\n}\n.icon-flag.UK {\n\tbackground-image: url(../img/flags/UK.png);\t\n}\n.icon-flag.US {\n\tbackground-image: url(../img/flags/US.png);\t\n}\n.icon-flag.CZ {\n\tbackground-image: url(../img/flags/CZ.png);\t\n}\n"
  },
  {
    "path": "goldport.json",
    "content": "[\t\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"911 GT3RS\",\n\t\t\"BID\": \"BV1W94y1X7JY\",\n\t\t\"Btitle\": \"GT3 RS刷新易车金港赛道纪录？\",\n\t\t\"hp\": \"540\",\n\t\t\"hp_content\": \"540\",\n\t\t\"Powertrain\": \"4.0/7DCT\",\n\t\t\"speed\": \"62.90\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.29\",\n\t\t\"limit\": \"201.34\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"226.80\"\n\t},\n\t{\n\t\t\"year\":\"2025\",\n\t\t\"car\": \"SU7 ULTRA\",\n\t\t\"BID\": \"BV1GegizAETD\",\n\t\t\"Btitle\": \"小米SU7U，打不过日产轩逸？！\",\n\t\t\"hp\": \"1548\",\n\t\t\"hp_content\": \"1548\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"63.52\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PT-01\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"227.99\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"52.99\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"911GT3\",\n\t\t\"BID\": \"BV1BZ42127z9\",\n\t\t\"Btitle\": \"键盘圈速榜，原厂榜首预定？\",\n\t\t\"hp\": \"500\",\n\t\t\"hp_content\": \"500\",\n\t\t\"Powertrain\": \"4.0/7DCT\",\n\t\t\"speed\": \"64.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.45\",\n\t\t\"limit\": \"200.58\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"183.00\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"SF90\",\n\t\t\"BID\": \"BV1iT411d76t\",\n\t\t\"Btitle\": \"800万，1000马力，法拉利SF90杀爆全场？\",\n\t\t\"hp\": \"1000\",\n\t\t\"hp_content\": \"1000\",\n\t\t\"Powertrain\": \"3.9T+E/8DCT\",\n\t\t\"speed\": \"64.41\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"0\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"2.61\",\n\t\t\"limit\": \"216.70\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"498.80\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"AMG GT R\",\n\t\t\"BID\": \"BV1VX4y1k7rR\",\n\t\t\"Btitle\": \"日产GT-R，AMG GT R，谁是真战神？\",\n\t\t\"hp\": \"585\",\n\t\t\"hp_content\": \"585\",\n\t\t\"Powertrain\": \"4.0T/7DCT\",\n\t\t\"speed\": \"64.64\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.76\",\n\t\t\"limit\": \"202.62\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"212.88\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"M4\",\n\t\t\"BID\": \"BV1HN4y157tk\",\n\t\t\"Btitle\": \"国产魔王最后一战？\",\n\t\t\"hp\": \"521\",\n\t\t\"hp_content\": \"521\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"64.81\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"F200\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"196.34\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"90.68\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"911GT3\",\n\t\t\"BID\": \"BV1jA4m1V7hB\",\n\t\t\"Btitle\": \"100万能买911 GT3，为什么还要玩本田？\",\n\t\t\"hp\": \"476\",\n\t\t\"hp_content\": \"476\",\n\t\t\"Powertrain\": \"3.8/7DCT\",\n\t\t\"speed\": \"65.28\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.68\",\n\t\t\"limit\": \"195.16\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"187.80\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"911 Carrera 4S\",\n\t\t\"BID\": \"BV1Sa411X7gx\",\n\t\t\"Btitle\": \"911有必要四驱么？-- 满配992 4S圈速测试\",\n\t\t\"hp\": \"530\",\n\t\t\"hp_content\": \"530\",\n\t\t\"Powertrain\": \"3.0T/8DCT\",\n\t\t\"speed\": \"66.38\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.05\",\n\t\t\"limit\": \"197.19\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"155.10\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"M4雷霆版 M xDrive\",\n\t\t\"BID\": \"BV1jG4y1c7j8\",\n\t\t\"Btitle\": \"比保时捷还快的宝马？G82四驱赛道测试！\",\n\t\t\"hp\": \"510\",\n\t\t\"hp_content\": \"510\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"66.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S*\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.35\",\n\t\t\"limit\": \"192.18\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"94.39\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"911 Carrera S\",\n\t\t\"BID\": \"BV1ZG4y1j77t\",\n\t\t\"Btitle\": \"保时捷992S VS 马丁Vantage F1，谁快？\",\n\t\t\"hp\": \"450\",\n\t\t\"hp_content\": \"450\",\n\t\t\"Powertrain\": \"3.0T/8DCT\",\n\t\t\"speed\": \"66.73\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.48\",\n\t\t\"limit\": \"192.98\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"147.30\"\n\t},\n\t{\n\t\t\"year\":\"2015\",\n\t\t\"car\": \"GT-R\",\n\t\t\"BID\": \"BV1Bc411j7vu\",\n\t\t\"Btitle\": \"日产GTR，打得过宝马M4？\",\n\t\t\"hp\": \"600\",\n\t\t\"hp_content\": \"600\",\n\t\t\"Powertrain\": \"3.8T/6DCT\",\n\t\t\"speed\": \"66.76\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C/Cup2R\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.55\",\n\t\t\"limit\": \"195.35\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"158.00\"\n\t},\n\t{\n\t\t\"year\":\"-\",\n\t\t\"car\": \"领克03++赛车\",\n\t\t\"BID\": \"BV1JgmyB3EHw\",\n\t\t\"Btitle\": \"140万领克TCR的青春版，能打保时捷911～？\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"66.75\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"赛轮\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.96\",\n\t\t\"limit\": \"175.28\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"--\"\n\t},\n\t{\n\t\t\"year\":\"2025\",\n\t\t\"car\": \"Ioniq5N\",\n\t\t\"BID\": \"BV1XHR1YoEQw\",\n\t\t\"Btitle\": \"金港最速量产SUV？\",\n\t\t\"hp\": \"650\",\n\t\t\"hp_content\": \"650\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"67.45\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"CUP2C\",\n\t\t\"temperature\": \"20\",\n\t\t\"lv\": \"SUV2\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.51\",\n\t\t\"limit\": \"189.03\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"38.88\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"718GTS\",\n\t\t\"BID\": \"BV1dY4y1o7oN\",\n\t\t\"Btitle\": \"60W，2.5T最强四缸保时捷~\",\n\t\t\"hp\": \"366\",\n\t\t\"hp_content\": \"366\",\n\t\t\"Powertrain\": \"2.5T/7DCT\",\n\t\t\"speed\": \"67.65\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.85\",\n\t\t\"limit\": \"185.93\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"87.50\"\n\t},\n\t{\n\t\t\"year\":\"-\",\n\t\t\"car\": \"思域FK8赛车\",\n\t\t\"BID\": \"BV1Lz4y1M7NL\",\n\t\t\"Btitle\": \"50W手搓本田FK8 TCR，居然能到9300转？\",\n\t\t\"hp\": \"300\",\n\t\t\"hp_content\": \"300\",\n\t\t\"Powertrain\": \"2.4/6SMG\",\n\t\t\"speed\": \"67.72\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"F200\",\n\t\t\"temperature\": \"37\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"168.03\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"--\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI\",\n\t\t\"BID\": \"BV113411X7WB\",\n\t\t\"Btitle\": \"改装GTI vs 原厂奥迪RS 3\",\n\t\t\"hp\": \"294\",\n\t\t\"hp_content\": \"294\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"68.02\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"TD/Cup2C\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.59\",\n\t\t\"limit\": \"181.31\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"458\",\n\t\t\"BID\": \"BV1AK421y7xf\",\n\t\t\"Btitle\": \"法拉利458，赛道能打得过911？\",\n\t\t\"hp\": \"570\",\n\t\t\"hp_content\": \"570\",\n\t\t\"Powertrain\": \"4.5/7DCT\",\n\t\t\"speed\": \"68.08\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"188.10\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"388.00\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"Vantage F1\",\n\t\t\"BID\": \"BV1ZG4y1j77t\",\n\t\t\"Btitle\": \"保时捷992S VS 马丁Vantage F1，谁快？\",\n\t\t\"hp\": \"534\",\n\t\t\"hp_content\": \"534\",\n\t\t\"Powertrain\": \"4.0T/8AT\",\n\t\t\"speed\": \"68.11\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.91\",\n\t\t\"limit\": \"188.80\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"UK\",\n\t\t\"price\":\"206.80\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"86\",\n\t\t\"BID\": \"BV1px4y1L7ki\",\n\t\t\"Btitle\": \"涡轮+ 86 = 911？\",\n\t\t\"hp\": \"320\",\n\t\t\"hp_content\": \"320\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"68.16\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"TD\",\n\t\t\"temperature\": \"1\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.38\",\n\t\t\"limit\": \"175.02\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"24.98\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"86\",\n\t\t\"BID\": \"BV1PA41167u8\",\n\t\t\"Btitle\": \"北方一台快的86都没有？\",\n\t\t\"hp\": \"233\",\n\t\t\"hp_content\": \"233\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"68.73\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"TD\",\n\t\t\"temperature\": \"1\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.21\",\n\t\t\"limit\": \"164.15\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.96\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"思域Type-R\",\n\t\t\"BID\": \"BV15p421R7rD\",\n\t\t\"Btitle\": \"330马力的思域TYPE R，能有多快？\",\n\t\t\"hp\": \"330\",\n\t\t\"hp_content\": \"330\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"68.85\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"16\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.29\",\n\t\t\"limit\": \"177.08\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"42.00\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV12V6gYLEmu\",\n\t\t\"Btitle\": \"影豹RR第二季的最后一次圈速测试。\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"68.90\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"DSS\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.91\",\n\t\t\"limit\": \"175.14\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"15.80\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅 进化8\",\n\t\t\"BID\": \"BV1Bb4y13771\",\n\t\t\"Btitle\": \"200马力菱帅王，比思域TR快？\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"68.96\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"RC001\",\n\t\t\"temperature\": \"23\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.99\",\n\t\t\"limit\": \"159.27\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"M2C\",\n\t\t\"BID\": \"BV14S4y1p74Y\",\n\t\t\"Btitle\": \"100W内天花板？\",\n\t\t\"hp\": \"411\",\n\t\t\"hp_content\": \"411\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"69.00\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S*\",\n\t\t\"temperature\": \"33\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.54\",\n\t\t\"limit\": \"183.59\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"64.38\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"M2\",\n\t\t\"BID\": \"BV1V64y1w7KR\",\n\t\t\"Btitle\": \"宝马M2很丑，但S58\",\n\t\t\"hp\": \"460\",\n\t\t\"hp_content\": \"460\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"69.05\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0*\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.34\",\n\t\t\"limit\": \"188.41\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"59.90\"\n\t},{\n\t\t\"year\":\"2024\",\n\t\t\"car\": \"RS6 Performance\",\n\t\t\"BID\": \"BV15f421Q7KG\",\n\t\t\"Btitle\": \"马力没有SU7大，新款RS6还行吗？\",\n\t\t\"hp\": \"630\",\n\t\t\"hp_content\": \"630\",\n\t\t\"Powertrain\": \"4.0T/8AT\",\n\t\t\"speed\": \"69.05\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SC7\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.25\",\n\t\t\"limit\": \"190.20\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"145.38\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"Giulia QV\",\n\t\t\"BID\": \"BV1Bk4y1477X\",\n\t\t\"Btitle\": \"大家别骂键盘打工人了，Giulia QV二番战！\",\n\t\t\"hp\": \"510\",\n\t\t\"hp_content\": \"510\",\n\t\t\"Powertrain\": \"2.9T/8AT\",\n\t\t\"speed\": \"69.08\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2C*\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.29\",\n\t\t\"limit\": \"189.08\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"90.28\"\n\t},\n\t{\n\t\t\"year\":\"2012\",\n\t\t\"car\": \"911 Carrera S\",\n\t\t\"BID\": \"BV1Gx4y1T7He\",\n\t\t\"Btitle\": \"老保时捷，能拿捏宝马M吗？\",\n\t\t\"hp\": \"400\",\n\t\t\"hp_content\": \"400\",\n\t\t\"Powertrain\": \"3.8/7DCT\",\n\t\t\"speed\": \"69.20\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"2\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.34\",\n\t\t\"limit\": \"181.80\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"146.50\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"AMG GT\",\n\t\t\"BID\": \"BV1114y1g7tE\",\n\t\t\"Btitle\": \"V8即正义，AMG GT能干掉911么？\",\n\t\t\"hp\": \"476\",\n\t\t\"hp_content\": \"476\",\n\t\t\"Powertrain\": \"4.0T/7DCT\",\n\t\t\"speed\": \"69.38\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.37\",\n\t\t\"limit\": \"183.74\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"146.88\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV16G4y1g7G8\",\n\t\t\"Btitle\": \"【新老BRZ进化】避震篇\",\n\t\t\"hp\": \"234\",\n\t\t\"hp_content\": \"234\",\n\t\t\"Powertrain\": \"2.4/6MT\",\n\t\t\"speed\": \"69.48\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"V01R\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"161.37\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"30.88\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"Supra\",\n\t\t\"BID\": \"BV1wW4y1C7Zn\",\n\t\t\"Btitle\": \"丰田SUPRA和宝马Z4，性能差距有多大？\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"69.57\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS*\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.70\",\n\t\t\"limit\": \"177.95\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"62.90\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI\",\n\t\t\"BID\": \"BV1fA411k7WG\",\n\t\t\"Btitle\": \"【4车进化】领克全车拆空，大战思域、GTI、CT4！\",\n\t\t\"hp\": \"294\",\n\t\t\"hp_content\": \"294\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"69.58\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.03\",\n\t\t\"limit\": \"178.37\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"RS3\",\n\t\t\"BID\": \"BV113411X7WB\",\n\t\t\"Btitle\": \"改装GTI vs 原厂奥迪RS 3\",\n\t\t\"hp\": \"400\",\n\t\t\"hp_content\": \"400\",\n\t\t\"Powertrain\": \"2.5T/7DCT\",\n\t\t\"speed\": \"69.83\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.89\",\n\t\t\"limit\": \"180.80\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"51.38\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"718\",\n\t\t\"BID\": \"BV14S4y1p74Y\",\n\t\t\"Btitle\": \"100W内天花板？\",\n\t\t\"hp\": \"370\",\n\t\t\"hp_content\": \"370\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"69.83\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"33\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.50\",\n\t\t\"limit\": \"176.81\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"54.50\"\n\t},\n\t{\n\t\t\"year\":\"2024\",\n\t\t\"car\": \"03+TCR\",\n\t\t\"BID\": \"BV1tw4m1a7UN\",\n\t\t\"Btitle\": \"42万领克王，降维打击“本田王和现代王”？\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"69.96\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"R31红\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.42\",\n\t\t\"limit\": \"171.76\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"42.03\"\n\t},\n\t{\n\t\t\"year\":\"2024\",\n\t\t\"car\": \"SU7 MAX\",\n\t\t\"BID\": \"BV1J1421m791\",\n\t\t\"Btitle\": \"真 · 保时捷平替，小米SU7~！\",\n\t\t\"hp\": \"673\",\n\t\t\"hp_content\": \"673\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"69.99\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0PZ5EV\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.14\",\n\t\t\"limit\": \"189.66\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"29.99\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"C43\",\n\t\t\"BID\": \"BV1jM411b7W6\",\n\t\t\"Btitle\": \"CUP2C VS AD09，谁能助力AMG C 43登顶榜首？\",\n\t\t\"hp\": \"390\",\n\t\t\"hp_content\": \"390\",\n\t\t\"Powertrain\": \"3.0T/9AT\",\n\t\t\"speed\": \"70.05\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.11\",\n\t\t\"limit\": \"177.03\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"57.38\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"C43\",\n\t\t\"BID\": \"BV1jM411b7W6\",\n\t\t\"Btitle\": \"CUP2C VS AD09，谁能助力AMG C 43登顶榜首？\",\n\t\t\"hp\": \"390\",\n\t\t\"hp_content\": \"390\",\n\t\t\"Powertrain\": \"3.0T/9AT\",\n\t\t\"speed\": \"70.05\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD09\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.11\",\n\t\t\"limit\": \"176.00\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"57.38\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1JR4y167Uu\",\n\t\t\"Btitle\": \"【新老BRZ进化】轮上马力相差多少？\",\n\t\t\"hp\": \"217\",\n\t\t\"hp_content\": \"217\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"70.26\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"V01R\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.98\",\n\t\t\"limit\": \"158.78\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.98\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"TT RS\",\n\t\t\"BID\": \"BV1DB4y1W75H\",\n\t\t\"Btitle\": \"TTRS直线居然输M2C？\",\n\t\t\"hp\": \"400\",\n\t\t\"hp_content\": \"400\",\n\t\t\"Powertrain\": \"2.5T/7DCT\",\n\t\t\"speed\": \"70.35\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S*\",\n\t\t\"temperature\": \"24\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.94\",\n\t\t\"limit\": \"181.65\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"76.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"思域HB\",\n\t\t\"BID\": \"BV1fA411k7WG\",\n\t\t\"Btitle\": \"【4车进化】领克全车拆空，大战思域、GTI、CT4！\",\n\t\t\"hp\": \"232\",\n\t\t\"hp_content\": \"232\",\n\t\t\"Powertrain\": \"1.5T/6MT\",\n\t\t\"speed\": \"70.50\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.27\",\n\t\t\"limit\": \"165.21\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"15.99\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"Z4 M40i\",\n\t\t\"BID\": \"BV1wW4y1C7Zn\",\n\t\t\"Btitle\": \"丰田SUPRA和宝马Z4，性能差距有多大？\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"70.52\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS*\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.74\",\n\t\t\"limit\": \"174.90\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"62.98\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"STI11\",\n\t\t\"BID\": \"BV1XC41177oq\",\n\t\t\"Btitle\": \"斯巴鲁最后荣光，11代STI能打赢原厂TR么？~\",\n\t\t\"hp\": \"300\",\n\t\t\"hp_content\": \"300\",\n\t\t\"Powertrain\": \"2.5T/6MT\",\n\t\t\"speed\": \"70.55\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"A052\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"164.68\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"--\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"C43 旅行\",\n\t\t\"BID\": \"BV1ST411f7sT\",\n\t\t\"Btitle\": \"改装C 43能战胜奥迪RS 5？\",\n\t\t\"hp\": \"520\",\n\t\t\"hp_content\": \"520\",\n\t\t\"Powertrain\": \"3.0T/9AT\",\n\t\t\"speed\": \"70.80\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.69\",\n\t\t\"limit\": \"181.61\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"65.38\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1rP4y1m7hJ\",\n\t\t\"Btitle\": \"【新老BRZ进化】刹车是反向改装？\",\n\t\t\"hp\": \"234\",\n\t\t\"hp_content\": \"234\",\n\t\t\"Powertrain\": \"2.4/6MT\",\n\t\t\"speed\": \"70.83\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"V01R\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.26\",\n\t\t\"limit\": \"163.72\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"30.88\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV16G4y1g7G8\",\n\t\t\"Btitle\": \"【新老BRZ进化】避震篇\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"70.95\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"V01R\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"154.51\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.98\"\n\t},\n\t{\n\t\t\"year\":\"2008\",\n\t\t\"car\": \"STI\",\n\t\t\"BID\": \"BV1Fu4m1u75P\",\n\t\t\"Btitle\": \"不到20W的斯巴鲁STI，能赢42W的本田TR么？\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.5T/6MT\",\n\t\t\"speed\": \"71.00\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD09\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"165.26\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"48.80\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"思域 Type-R\",\n\t\t\"BID\": \"BV18e411C7bH\",\n\t\t\"Btitle\": \"本田，现代，谁是前驱王。\",\n\t\t\"hp\": \"300\",\n\t\t\"hp_content\": \"300\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"71.03\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.66\",\n\t\t\"limit\": \"169.98\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"42.00\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"Panamera 4S\",\n\t\t\"BID\": \"BV1qr4y1j7Wd\",\n\t\t\"Btitle\": \"Panamera跑赛道和911差多少？\",\n\t\t\"hp\": \"441\",\n\t\t\"hp_content\": \"441\",\n\t\t\"Powertrain\": \"2.9T/8DCT\",\n\t\t\"speed\": \"71.32\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"24\",\n\t\t\"lv\": \"D\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.09\",\n\t\t\"limit\": \"175.32\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"152.80\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"718 Cayman\",\n\t\t\"BID\": \"BV15P411P7hu\",\n\t\t\"Btitle\": \"保时捷718能战胜同价位丰田SUPRA？\",\n\t\t\"hp\": \"250\",\n\t\t\"hp_content\": \"250\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"71.33\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.13\",\n\t\t\"limit\": \"164.44\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"56.50\"\n\t},\n\t{\n\t\t\"year\":\"2003\",\n\t\t\"car\": \"360 Modena\",\n\t\t\"BID\": \"BV1SF411F78o\",\n\t\t\"Btitle\": \"40万买法拉利，跑不过86？\",\n\t\t\"hp\": \"400\",\n\t\t\"hp_content\": \"400\",\n\t\t\"Powertrain\": \"3.6/6SMG\",\n\t\t\"speed\": \"71.55\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S*\",\n\t\t\"temperature\": \"22\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.25\",\n\t\t\"limit\": \"176.26\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"330.00\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"Elantra N\",\n\t\t\"BID\": \"BV1Dc411278A\",\n\t\t\"Btitle\": \"中规伊兰特N，依然是前驱的王？\",\n\t\t\"hp\": \"276\",\n\t\t\"hp_content\": \"276\",\n\t\t\"Powertrain\": \"2.0T/8DCT\",\n\t\t\"speed\": \"71.56\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S HN\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.35\",\n\t\t\"limit\": \"170.89\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"24.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+ Cyan\",\n\t\t\"BID\": \"BV1fA411k7WG\",\n\t\t\"Btitle\": \"【4车进化】领克全车拆空，大战思域、GTI、CT4！\",\n\t\t\"hp\": \"269\",\n\t\t\"hp_content\": \"269\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"71.63\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.50\",\n\t\t\"limit\": \"157.68\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI\",\n\t\t\"BID\": \"BV1U84y1j7L5\",\n\t\t\"Btitle\": \"【4车进化】领克03+，大众GTI，凯迪拉克CT4，本田思域，谁的轮上马力最大？\",\n\t\t\"hp\": \"294\",\n\t\t\"hp_content\": \"294\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"71.69\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.66\",\n\t\t\"limit\": \"178.50\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"S4\",\n\t\t\"BID\": \"BV1Co4y1v7fq\",\n\t\t\"Btitle\": \"奥迪S4，山路赛道大败北？\",\n\t\t\"hp\": \"354\",\n\t\t\"hp_content\": \"354\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"71.71\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S*\",\n\t\t\"temperature\": \"-2\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.56\",\n\t\t\"limit\": \"171.54\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"46.88\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"ZEEKR 001\",\n\t\t\"BID\": \"BV1bD4y1s7WC\",\n\t\t\"Btitle\": \"极氪001赛道版来了？\",\n\t\t\"hp\": \"544\",\n\t\t\"hp_content\": \"544\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"71.96\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PC6\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.88\",\n\t\t\"limit\": \"179.37\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"38.60\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1fA411k7WG\",\n\t\t\"Btitle\": \"【4车进化】领克全车拆空，大战思域、GTI、CT4！\",\n\t\t\"hp\": \"264\",\n\t\t\"hp_content\": \"264\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"72.16\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.18\",\n\t\t\"limit\": \"159.45\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2012\",\n\t\t\"car\": \"劳恩斯-酷派\",\n\t\t\"BID\": \"BV1R54y1K7sP\",\n\t\t\"Btitle\": \"EVO的跑车版本:劳恩斯-酷派\",\n\t\t\"hp\": \"330\",\n\t\t\"hp_content\": \"330\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"72.16\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.86\",\n\t\t\"limit\": \"166.97\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"23.36\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV14N411p7uU\",\n\t\t\"Btitle\": \"国产车 X 国产改件，出征小纽北~\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"72.27\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"A052\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"163.28\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"13.80\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1rP4y1m7hJ\",\n\t\t\"Btitle\": \"【新老BRZ进化】刹车是反向改装？\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"72.31\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"V01R\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.18\",\n\t\t\"limit\": \"159.44\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.97\"\n\t},\n\t{\n\t\t\"year\":\"2024\",\n\t\t\"car\": \"03+ Racing\",\n\t\t\"BID\": \"BV1TJ4m1Y76E\",\n\t\t\"Btitle\": \"32万国产车，是AMG A35克星？\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"72.46\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.06\",\n\t\t\"limit\": \"169.98\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"32.58\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+ Cyan\",\n\t\t\"BID\": \"BV1He4y1s7wS\",\n\t\t\"Btitle\": \"【4车进化】GTI和03+火星组地位不保，手动思域和后驱CT4的逆袭成功？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"72.48\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"157.34\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1U84y1j7L5\",\n\t\t\"Btitle\": \"【4车进化】领克03+，大众GTI，凯迪拉克CT4，本田思域，谁的轮上马力最大？\",\n\t\t\"hp\": \"264\",\n\t\t\"hp_content\": \"264\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"72.55\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.76\",\n\t\t\"limit\": \"158.39\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+ Cyan\",\n\t\t\"BID\": \"BV1U84y1j7L5\",\n\t\t\"Btitle\": \"【4车进化】领克03+，大众GTI，凯迪拉克CT4，本田思域，谁的轮上马力最大？\",\n\t\t\"hp\": \"269\",\n\t\t\"hp_content\": \"269\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"72.66\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.76\",\n\t\t\"limit\": \"156.83\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1ia41157dM\",\n\t\t\"Btitle\": \"【新老BRZ进化】换山东胎，刹车秒杀保时捷？\",\n\t\t\"hp\": \"234\",\n\t\t\"hp_content\": \"234\",\n\t\t\"Powertrain\": \"2.4/6MT\",\n\t\t\"speed\": \"72.72\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"V01R\",\n\t\t\"temperature\": \"34\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.49\",\n\t\t\"limit\": \"154.02\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"30.88\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"极星2\",\n\t\t\"BID\": \"BV1Rg411m776\",\n\t\t\"Btitle\": \"极星2才是电车王！\",\n\t\t\"hp\": \"408\",\n\t\t\"hp_content\": \"408\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"72.81\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.66\",\n\t\t\"limit\": \"169.68\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"SW\",\n\t\t\"price\":\"35.88\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"smart精灵#3\",\n\t\t\"BID\": \"BV1Qt4y1f7Lj\",\n\t\t\"Btitle\": \"20W+，买百奔之王！！！\",\n\t\t\"hp\": \"428\",\n\t\t\"hp_content\": \"428\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"72.96\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"EC6Q\",\n\t\t\"temperature\": \"40\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.80\",\n\t\t\"limit\": \"176.84\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"28.99\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI\",\n\t\t\"BID\": \"BV1He4y1s7wS\",\n\t\t\"Btitle\": \"【4车进化】GTI和03+火星组地位不保，手动思域和后驱CT4的逆袭成功？\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"72.96\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"158.00\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"Macan GTS\",\n\t\t\"BID\": \"BV1kB4y1873e\",\n\t\t\"Btitle\": \"不是山东胎的MACAN GTS，反杀榜首X4M？\",\n\t\t\"hp\": \"381\",\n\t\t\"hp_content\": \"381\",\n\t\t\"Powertrain\": \"2.9T/7DCT\",\n\t\t\"speed\": \"73.00\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"35\",\n\t\t\"lv\": \"SUV2\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.68\",\n\t\t\"limit\": \"169.55\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"76.80\"\n\t},\n\t{\n\t\t\"year\":\"2025\",\n\t\t\"car\": \"03+\",\n\t\t\"BID\": \"BV177r8BmEcv\",\n\t\t\"Btitle\": \"309马力4驱的领克03+，只要23W~！！\",\n\t\t\"hp\": \"309\",\n\t\t\"hp_content\": \"309\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"73.00\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"3\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.61\",\n\t\t\"limit\": \"162.27\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"23.88\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1nZ4y1q79U\",\n\t\t\"Btitle\": \"【新老BRZ进化】烂仔逆袭，新老BRZ同胎大战！\",\n\t\t\"hp\": \"234\",\n\t\t\"hp_content\": \"234\",\n\t\t\"Powertrain\": \"2.4/6MT\",\n\t\t\"speed\": \"73.07\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.35\",\n\t\t\"limit\": \"160.03\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"30.88\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"A35\",\n\t\t\"BID\": \"BV14T411K7pi\",\n\t\t\"Btitle\": \"A35能赢李松桥100W的EVO 9么？\",\n\t\t\"hp\": \"306\",\n\t\t\"hp_content\": \"306\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"73.08\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.84\",\n\t\t\"limit\": \"163.98\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"43.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+ Cyan（22\",\n\t\t\"BID\": \"BV1cD4y1k7ru\",\n\t\t\"Btitle\": \"【4车进化】中美日德大战，家乡的樱花凋零~\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"73.25\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.15\",\n\t\t\"limit\": \"155.91\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI\",\n\t\t\"BID\": \"BV1cD4y1k7ru\",\n\t\t\"Btitle\": \"【4车进化】中美日德大战，家乡的樱花凋零~\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"73.43\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.75\",\n\t\t\"limit\": \"156.96\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"尚酷R\",\n\t\t\"BID\": \"BV1xW4y1W78E\",\n\t\t\"Btitle\": \"10W，买500匹潜力的钢炮王！\",\n\t\t\"hp\": \"256\",\n\t\t\"hp_content\": \"256\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"73.66\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"V02R\",\n\t\t\"temperature\": \"16\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.97\",\n\t\t\"limit\": \"163.25\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"39.88\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1He4y1s7wS\",\n\t\t\"Btitle\": \"【4车进化】GTI和03+火星组地位不保，手动思域和后驱CT4的逆袭成功？\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"73.70\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"148.49\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"M240i\",\n\t\t\"BID\": \"BV1XV411X7GJ\",\n\t\t\"Btitle\": \"最便宜的B58，宝马240i真香！\",\n\t\t\"hp\": \"333\",\n\t\t\"hp_content\": \"333\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"73.71\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0 PZ4\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.10\",\n\t\t\"limit\": \"168.84\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"41.98\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1nZ4y1q79U\",\n\t\t\"Btitle\": \"【新老BRZ进化】烂仔逆袭，新老BRZ同胎大战！\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"73.72\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.77\",\n\t\t\"limit\": \"153.99\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI\",\n\t\t\"BID\": \"BV1Ge4y117y9\",\n\t\t\"Btitle\": \"【4车进化】GTI变成了最难开的车..\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"73.81\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"20\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"158.61\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+ Cyan\",\n\t\t\"BID\": \"BV1Ge4y117y9\",\n\t\t\"Btitle\": \"【4车进化】GTI变成了最难开的车..\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"73.81\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"20\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"158.61\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"海豹\",\n\t\t\"BID\": \"BV1LP4y1272r\",\n\t\t\"Btitle\": \"四驱海豹，真性能么？\",\n\t\t\"hp\": \"530\",\n\t\t\"hp_content\": \"530\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"73.97\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SC7\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.89\",\n\t\t\"limit\": \"168.71\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"28.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"Mustang\",\n\t\t\"BID\": \"BV1y14y1n7ya\",\n\t\t\"Btitle\": \"野马杀爆电野马...\",\n\t\t\"hp\": \"299\",\n\t\t\"hp_content\": \"299\",\n\t\t\"Powertrain\": \"2.3T/10AT\",\n\t\t\"speed\": \"74.03\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.64\",\n\t\t\"limit\": \"161.07\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"36.98\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1ia41157dM\",\n\t\t\"Btitle\": \"【新老BRZ进化】换山东胎，刹车秒杀保时捷？\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"74.11\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"V01R\",\n\t\t\"temperature\": \"34\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.32\",\n\t\t\"limit\": \"149.51\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"思域HB\",\n\t\t\"BID\": \"BV1He4y1s7wS\",\n\t\t\"Btitle\": \"【4车进化】GTI和03+火星组地位不保，手动思域和后驱CT4的逆袭成功？\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/6MT\",\n\t\t\"speed\": \"74.11\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"147.86\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"15.99\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"540i\",\n\t\t\"BID\": \"BV1px4y157Jf\",\n\t\t\"Btitle\": \"3.0T标轴后驱5系王，540i能干掉奥迪S4？\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"74.35\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Eagle F1*\",\n\t\t\"temperature\": \"11\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.22\",\n\t\t\"limit\": \"167.74\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"61.99\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1cD4y1k7ru\",\n\t\t\"Btitle\": \"【4车进化】中美日德大战，家乡的樱花凋零~\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"74.48\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.35\",\n\t\t\"limit\": \"152.73\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"ZEEKR 001\",\n\t\t\"BID\": \"BV1zF411c7Qd\",\n\t\t\"Btitle\": \"谁是国产之王？极氪 001挑战蔚来ET7榜首！\",\n\t\t\"hp\": \"544\",\n\t\t\"hp_content\": \"544\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"74.61\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PC6\",\n\t\t\"temperature\": \"34\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.88\",\n\t\t\"limit\": \"181.07\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"38.60\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"Mastang Mach-E\",\n\t\t\"BID\": \"BV1Ae4y1g7M6\",\n\t\t\"Btitle\": \"电野马和油野马，谁更强？\",\n\t\t\"hp\": \"488\",\n\t\t\"hp_content\": \"488\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"74.66\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"SUV2\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.00\",\n\t\t\"limit\": \"165.10\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"36.99\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1Ge4y117y9\",\n\t\t\"Btitle\": \"【4车进化】GTI变成了最难开的车..\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"74.68\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"20\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"149.77\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"思域HB\",\n\t\t\"BID\": \"BV1cD4y1k7ru\",\n\t\t\"Btitle\": \"【4车进化】中美日德大战，家乡的樱花凋零~\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/6MT\",\n\t\t\"speed\": \"74.71\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.24\",\n\t\t\"limit\": \"149.12\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"15.99\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"A5\",\n\t\t\"BID\": \"BV1uG4y1o71X\",\n\t\t\"Btitle\": \"无敌的四驱A5，把宝马粉开哭了\",\n\t\t\"hp\": \"252\",\n\t\t\"hp_content\": \"252\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"74.86\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"S001\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.81\",\n\t\t\"limit\": \"157.45\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"48.88\"\n\t},\n\t{\n\t\t\"year\":\"2026\",\n\t\t\"car\": \"领克03\",\n\t\t\"BID\": \"BV1pHzxBrEon\",\n\t\t\"Btitle\": \"新领克03，比影豹R快么？\",\n\t\t\"hp\": \"272\",\n\t\t\"hp_content\": \"272\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"75.00\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"-2\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.27\",\n\t\t\"limit\": \"155.21\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"15.68\"\n\t},\n\t{\n\t\t\"year\":\"2024\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV1Fx4y147mm\",\n\t\t\"Btitle\": \"2024款影豹R，更快了？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"75.28\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS5\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.92\",\n\t\t\"limit\": \"159.46\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"15.80\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"C200 Coupe\",\n\t\t\"BID\": \"BV16o2kBTE2p\",\n\t\t\"Btitle\": \"【同事的车】小锤的奔驰 vs 钊博的宝马！！！\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"2.0T/9AT\",\n\t\t\"speed\": \"75.28\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.52\",\n\t\t\"limit\": \"151.32\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"38.28\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"迈锐宝XL\",\n\t\t\"BID\": \"BV1Xe411A7dS\",\n\t\t\"Btitle\": \"20万最强！买菜车吊打小钢炮？\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/9AT\",\n\t\t\"speed\": \"75.48\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC5\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.78\",\n\t\t\"limit\": \"154.97\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"21.99\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"思域HB\",\n\t\t\"BID\": \"BV1Ge4y117y9\",\n\t\t\"Btitle\": \"【4车进化】GTI变成了最难开的车..\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/6MT\",\n\t\t\"speed\": \"75.48\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"20\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"146.13\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"15.99\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"S3\",\n\t\t\"BID\": \"BV1Ua411K767\",\n\t\t\"Btitle\": \"奥迪S3+卫途轮胎的圈速测试..\",\n\t\t\"hp\": \"290\",\n\t\t\"hp_content\": \"290\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"75.56\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"V02R\",\n\t\t\"temperature\": \"38\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.42\",\n\t\t\"limit\": \"162.36\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"36.38\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI\",\n\t\t\"BID\": \"BV1kB4y167xf\",\n\t\t\"Btitle\": \"【4车进化】前驱后驱四驱，谁最强？\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"75.69\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K127\",\n\t\t\"temperature\": \"38\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.73\",\n\t\t\"limit\": \"158.84\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"思域Si\",\n\t\t\"BID\": \"BV1Rj411G7Wu\",\n\t\t\"Btitle\": \"2.4+手动+LSD，思域Si赛道能赢GTI？\",\n\t\t\"hp\": \"217\",\n\t\t\"hp_content\": \"217\",\n\t\t\"Powertrain\": \"2.4/6MT\",\n\t\t\"speed\": \"75.83\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"PS5\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.59\",\n\t\t\"limit\": \"154.65\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"19.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"ET7\",\n\t\t\"BID\": \"BV1zZ4y1Y7Lm\",\n\t\t\"Btitle\": \"易车圈速榜马力最大的车，蔚来ET7\",\n\t\t\"hp\": \"653\",\n\t\t\"hp_content\": \"653\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"75.90\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"EC6\",\n\t\t\"temperature\": \"24\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.75\",\n\t\t\"limit\": \"175.76\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"45.80\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+ Cyan\",\n\t\t\"BID\": \"BV1kB4y167xf\",\n\t\t\"Btitle\": \"【4车进化】前驱后驱四驱，谁最强？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"75.90\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"36\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.88\",\n\t\t\"limit\": \"155.07\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"i3 35L\",\n\t\t\"BID\": \"BV1Lg411Y7Wb\",\n\t\t\"Btitle\": \"比3系还3系？i3赛道测试\",\n\t\t\"hp\": \"286\",\n\t\t\"hp_content\": \"286\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"76.05\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"御乘II\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.53\",\n\t\t\"limit\": \"155.18\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"34.99\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"220i\",\n\t\t\"BID\": \"BV16o2kBTE2p\",\n\t\t\"Btitle\": \"【同事的车】小锤的奔驰 vs 钊博的宝马！！！\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"77.21\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K117\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.05\",\n\t\t\"limit\": \"148.17\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"32.00\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"05+\",\n\t\t\"BID\": \"BBV13N4y137Ha\",\n\t\t\"Btitle\": \"开完赛道SUV，再开领克05+是什么体验？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"77.43\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"SUV1\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.07\",\n\t\t\"limit\": \"143.99\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"23.58\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CC猎装\",\n\t\t\"BID\": \"BV1gY411U72a\",\n\t\t\"Btitle\": \"CC旅行跑赛道，GTI精神重现？\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"77.45\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P7\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.26\",\n\t\t\"limit\": \"150.04\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"29.99\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"星越L\",\n\t\t\"BID\": \"BV1dA411C7nh\",\n\t\t\"Btitle\": \"星越L才是真正的赛道级？\",\n\t\t\"hp\": \"239\",\n\t\t\"hp_content\": \"239\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"77.83\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Eagle F1\",\n\t\t\"temperature\": \"2\",\n\t\t\"lv\": \"SUV1\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.84\",\n\t\t\"limit\": \"148.52\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"18.52\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03\",\n\t\t\"BID\": \"BV1ZP4y1o7Bz\",\n\t\t\"Btitle\": \"2.0T+DCT的领克03，必秒03+？\",\n\t\t\"hp\": \"190\",\n\t\t\"hp_content\": \"190\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"78.03\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"御乘II\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.83\",\n\t\t\"limit\": \"146.22\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"15.08\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"325i\",\n\t\t\"BID\": \"BV1qW4y1j7Eo\",\n\t\t\"Btitle\": \"40万184马力，宝马325i值么？\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"78.47\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"T005\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.65\",\n\t\t\"limit\": \"142.78\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"31.39\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"凯泽西\",\n\t\t\"BID\": \"BV1Xx4y1F7tp\",\n\t\t\"Btitle\": \"2.4手动凯泽西，纽北调校研发的铃木王！\",\n\t\t\"hp\": \"178\",\n\t\t\"hp_content\": \"178\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"78.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS5\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.54\",\n\t\t\"limit\": \"141.95\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"18.88\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"型格\",\n\t\t\"BID\": \"BV1AY4y1x7kS\",\n\t\t\"Btitle\": \"本田内战，型格和思域性能PK～\",\n\t\t\"hp\": \"182\",\n\t\t\"hp_content\": \"182\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"78.62\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SP050\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.46\",\n\t\t\"limit\": \"147.32\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"16.69\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1kB4y167xf\",\n\t\t\"Btitle\": \"【4车进化】前驱后驱四驱，谁最强？\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"79.05\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PC6 SSR\",\n\t\t\"temperature\": \"38\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.72\",\n\t\t\"limit\": \"145.19\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"UNI-V\",\n\t\t\"BID\": \"BV1vY4y1x7es\",\n\t\t\"Btitle\": \"思域克星：UNI-V！\",\n\t\t\"hp\": \"188\",\n\t\t\"hp_content\": \"188\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"79.77\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.01\",\n\t\t\"limit\": \"142.15\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.69\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"福克斯\",\n\t\t\"BID\": \"BV1FT411F7X5\",\n\t\t\"Btitle\": \"四缸福克斯 vs 三缸福克斯，谁是赛道之王？\",\n\t\t\"hp\": \"174\",\n\t\t\"hp_content\": \"174\",\n\t\t\"Powertrain\": \"1.5T/8AT\",\n\t\t\"speed\": \"79.84\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.24\",\n\t\t\"limit\": \"134.59\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"15.08\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"思域HB\",\n\t\t\"BID\": \"BV1kB4y167xf\",\n\t\t\"Btitle\": \"【4车进化】前驱后驱四驱，谁最强？\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/6MT\",\n\t\t\"speed\": \"79.95\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Advan DB\",\n\t\t\"temperature\": \"38\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.65\",\n\t\t\"limit\": \"145.81\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"15.99\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"MG5天蝎座\",\n\t\t\"BID\": \"BV1c341137Qo\",\n\t\t\"Btitle\": \"MG5天蝎座，01加速9秒多…\",\n\t\t\"hp\": \"181\",\n\t\t\"hp_content\": \"181\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"80.13\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"3ST\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.13\",\n\t\t\"limit\": \"145.22\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.79\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"思域\",\n\t\t\"BID\": \"BV1AY4y1x7kS\",\n\t\t\"Btitle\": \"本田内战，型格和思域性能PK～\",\n\t\t\"hp\": \"182\",\n\t\t\"hp_content\": \"182\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"80.20\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MA510\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.27\",\n\t\t\"limit\": \"147.42\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"14.29\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"凌云S\",\n\t\t\"BID\": \"BV1bF411c7tW\",\n\t\t\"Btitle\": \"261马力的凌云S，大直线被1.5T思域拉爆？\",\n\t\t\"hp\": \"261\",\n\t\t\"hp_content\": \"261\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"80.21\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"UC6\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"SUV1\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.46\",\n\t\t\"limit\": \"146.99\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"16.99\"\n\t},\n\t{\n\t\t\"year\":\"2012\",\n\t\t\"car\": \"星骋\",\n\t\t\"BID\": \"BV1Gv4y1u7ZU\",\n\t\t\"Btitle\": \"新老马自达3圈速比拼！谁是A级自吸之王？\",\n\t\t\"hp\": \"150\",\n\t\t\"hp_content\": \"150\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"80.32\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"T005\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.54\",\n\t\t\"limit\": \"137.70\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"13.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"福克斯\",\n\t\t\"BID\": \"BV1FT411F7X5\",\n\t\t\"Btitle\": \"四缸福克斯 vs 三缸福克斯，谁是赛道之王？\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/6AT\",\n\t\t\"speed\": \"80.55\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.50\",\n\t\t\"limit\": \"133.61\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"14.38\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"ID.4 CROZZ\",\n\t\t\"BID\": \"BV1114y1L72H\",\n\t\t\"Btitle\": \"ID.4 vs ID.3，圈速测试\",\n\t\t\"hp\": \"204\",\n\t\t\"hp_content\": \"204\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"80.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"御乘II\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.23\",\n\t\t\"limit\": \"138.28\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"23.13\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"ID.3\",\n\t\t\"BID\": \"BV1oN4y1G7Gf\",\n\t\t\"Btitle\": \"18W买后置后驱超跑？大众ID.3赛道测试！\",\n\t\t\"hp\": \"170\",\n\t\t\"hp_content\": \"170\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"80.70\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K127 EV\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.06\",\n\t\t\"limit\": \"144.34\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"18.53\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"昂克赛拉\",\n\t\t\"BID\": \"BV1Gv4y1u7ZU\",\n\t\t\"Btitle\": \"新老马自达3圈速比拼！谁是A级自吸之王？\",\n\t\t\"hp\": \"156\",\n\t\t\"hp_content\": \"156\",\n\t\t\"Powertrain\": \"2.0/6AT\",\n\t\t\"speed\": \"80.73\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"T005\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.53\",\n\t\t\"limit\": \"138.60\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"14.79\"\n\t},\n\t{\n\t\t\"year\":\"2006\",\n\t\t\"car\": \"思域\",\n\t\t\"BID\": \"BV1wjShB2ETR\",\n\t\t\"Btitle\": \"八代思域进化，遇事不决米其林~！\",\n\t\t\"hp\": \"140\",\n\t\t\"hp_content\": \"140\",\n\t\t\"Powertrain\": \"1.8/5MT\",\n\t\t\"speed\": \"80.86\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"浩悦5\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.52\",\n\t\t\"limit\": \"135.64\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"14.78\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"X3 25i\",\n\t\t\"BID\": \"BV1rt4y1c7aa\",\n\t\t\"Btitle\": \"又是一个赛道级？宝马X3赛道测试\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"81.10\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P7\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"SUV2\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.07\",\n\t\t\"limit\": \"133.80\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"39.69\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"奇骏\",\n\t\t\"BID\": \"BV1Rg411C7CH\",\n\t\t\"Btitle\": \"三缸奇骏真的好玩！\",\n\t\t\"hp\": \"204\",\n\t\t\"hp_content\": \"204\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"81.53\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SP050+\",\n\t\t\"temperature\": \"38\",\n\t\t\"lv\": \"SUV1\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.75\",\n\t\t\"limit\": \"138.49\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.29\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"海豚\",\n\t\t\"BID\": \"BV1Qt4y1E7oz\",\n\t\t\"Btitle\": \"海豚王必秒飞度！\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"81.56\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"RRP76\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.34\",\n\t\t\"limit\": \"143.40\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"13.08\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"皓影 AWD\",\n\t\t\"BID\": \"BV1km42157Zo\",\n\t\t\"Btitle\": \"广汽本田皓影，全能战士？！\",\n\t\t\"hp\": \"192\",\n\t\t\"hp_content\": \"192\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"81.68\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"LS3\",\n\t\t\"temperature\": \"25\",\n\t\t\"lv\": \"SUV1\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.69\",\n\t\t\"limit\": \"141.91\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"24.99\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"飞度\",\n\t\t\"BID\": \"BV1UF411V7Gb\",\n\t\t\"Btitle\": \"飞度GR9，还是“超跑”么？\",\n\t\t\"hp\": \"131\",\n\t\t\"hp_content\": \"131\",\n\t\t\"Powertrain\": \"1.5/CVT\",\n\t\t\"speed\": \"81.71\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"ENASAVE\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.95\",\n\t\t\"limit\": \"136.53\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"8.68\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"锐际\",\n\t\t\"BID\": \"BV1rD4y1i7hD\",\n\t\t\"Btitle\": \"（原视频已下架）\",\n\t\t\"hp\": \"248\",\n\t\t\"hp_content\": \"248\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"82.33\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SV\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"SUV1\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.38\",\n\t\t\"limit\": \"140.22\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"15.98\"\n\t},\n\t{\n\t\t\"year\":\"2006\",\n\t\t\"car\": \"思域\",\n\t\t\"BID\": \"BV1uYSiB3Edf\",\n\t\t\"Btitle\": \"八代思域，万元烂仔王！\",\n\t\t\"hp\": \"140\",\n\t\t\"hp_content\": \"140\",\n\t\t\"Powertrain\": \"1.8/5MT\",\n\t\t\"speed\": \"82.65\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"远路\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.71\",\n\t\t\"limit\": \"136.55\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"14.78\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"奥德赛\",\n\t\t\"BID\": \"BV1ZP4y1f7cf\",\n\t\t\"Btitle\": \"土屋圭市座驾，赛道级MPV！\",\n\t\t\"hp\": \"215\",\n\t\t\"hp_content\": \"215\",\n\t\t\"Powertrain\": \"2.0+E/ECVT\",\n\t\t\"speed\": \"86.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Advan DB\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"MPV\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.36\",\n\t\t\"limit\": \"131.62\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"32.88\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"海豚\",\n\t\t\"BID\": \"BV1bg41117k1\",\n\t\t\"Btitle\": \"海豚下赛道能比飞度快？\",\n\t\t\"hp\": \"95\",\n\t\t\"hp_content\": \"95\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"86.83\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"RRP76\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"11.29\",\n\t\t\"limit\": \"124.93\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.78\"\n\t}\n]"
  },
  {
    "path": "index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\n\t<title>键盘车神教锐思圈速榜</title>\n\t<meta name=\"description\" content=\"传说中绝不充值的偶像派车评人教主的真实圈速榜单\">\n\t<link rel=\"stylesheet\" href=\"./lib/bootstrap/css/bootstrap.min.css\">\n\t<link rel=\"stylesheet\" href=\"./lib/bootstrap/css/bootstrap-table.min.css\">\n\t<link rel=\"stylesheet\" href=\"./css/index.css?v=20240322\">\n\n\t<link rel=\"stylesheet\" href=\"./css/button.css?v=202012141445\">\n\t<!-- <script src=\"https://code.jquery.com/jquery-1.12.4.min.js\"\n\t\tintegrity=\"sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=\" crossorigin=\"anonymous\"></script> -->\n\t<!-- <script src=\"https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js\"></script> -->\n\t<script\n\tsrc=\"https://code.jquery.com/jquery-1.12.4.min.js\"\n\tintegrity=\"sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=\"\n\tcrossorigin=\"anonymous\"></script>\n\t<script src=\"./lib/bootstrap/js/bootstrap.min.js\"></script>\n\t<script src=\"./lib/bootstrap/js/bootstrap-table.min.js\"></script>\n\t<script src=\"./lib/bootstrap/js/bootstrap-table-zh-CN.min.js\"></script>\n\t<script src=\"./lib/template.js\"></script>\n\t<script src=\"./lib/canvas-bg/TweenLite.min.js\"></script>\n\t<script src=\"./lib/canvas-bg/EasePack.min.js\"></script>\n\t<script src=\"./lib/canvas-bg/rAF.js\"></script>\n\t<script src=\"./lib/layer/layer.js\"></script>\n\t<script src=\"./js/index.js?v=20240322\"></script>\n</head>\n\n<body>\n\t<div id=\"canvas_bg\">\n\t\t<canvas id=\"canvas1\"></canvas>\n\t</div>\n\n\n\t<div class=\"index_banner\">\n\n\t\t<table style=\"width: 100%\">\n\t\t\t<tr>\n\t\t\t\t<td style=\"width: 5%\"><img src=\"./img/logo.png\" style=\"padding-right: 1em\" /></td>\n\t\t\t\t<td class=\"hid\">\n\t\t\t\t\t<h1 class=\"title\">键盘车神教圈速榜</h1>\n\t\t\t\t\t<h5 class=\"title\">传说中的偶像派车评人教主的真实圈速榜单</h5>\n\t\t\t\t</td>\n\t\t\t\t<td class=\"options\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-sm-4\">\n\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t<span class=\"input-group-btn\">\n\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"button\">搜索车型</button>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control search\" placeholder=\"关键字\">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"col-sm-4\">\n\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t<span class=\"input-group-btn\">\n\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"button\">级别</button>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<!-- <select class=\"form-control lv\">\n\t\t\t\t\t\t\t\t\t<option value=\"all\">所有</option>\n\t\t\t\t\t\t\t\t\t<option value=\"A00\">MPV</option>\n\t\t\t\t\t\t\t\t\t<option value=\"A00\">SUV</option>\n\t\t\t\t\t\t\t\t\t<option value=\"0\">轿车</option>\n\t\t\t\t\t\t\t\t\t<option value=\"A00\">A00级</option>\n\t\t\t\t\t\t\t\t\t<option value=\"A0\">A0级</option>\n\t\t\t\t\t\t\t\t\t<option value=\"A\">A级</option>\n\t\t\t\t\t\t\t\t\t<option value=\"B\">B级</option>\n\t\t\t\t\t\t\t\t\t<option value=\"C\">C级</option>\n\t\t\t\t\t\t\t\t\t<option value=\"S\">跑车</option>\n\t\t\t\t\t\t\t\t</select> -->\n\t\t\t\t\t\t\t\t<select class=\"form-control lv\">\n\t\t\t\t\t\t\t\t\t<option value=\"all\">所有</option>\n\t\t\t\t\t\t\t\t\t<option value=\"MPV\">MPV</option>\n\t\t\t\t\t\t\t\t\t<option value=\"S\">跑车</option>\n\t\t\t\t\t\t\t\t\t<optgroup label=\"轿车\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"0\">所有轿车</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"A00\">A00级</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"A0\">A0级</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"A\">A级</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"B\">B级</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"C\">C级</option>\n\t\t\t\t\t\t\t\t\t\t<!-- <option value=\"D\">D级</option> -->\n\t\t\t\t\t\t\t\t\t</optgroup>\n\t\t\t\t\t\t\t\t\t<optgroup label=\"SUV\">\n\t\t\t\t\t\t\t\t\t\t<option value=\"SUV\">所有SUV</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"SUV1\">小型</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"SUV2\">紧凑型</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"SUV3\">中型</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"SUV4\">中大型</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"SUV5\">大型</option>\n\t\t\t\t\t\t\t\t\t</optgroup>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<!-- </div> -->\n\t\t\t\t\t\t<div class=\"col-sm-4\">\n\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t<span class=\"input-group-btn\">\n\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"button\">原厂/改装</button>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<select class=\"form-control mods\">\n\t\t\t\t\t\t\t\t\t<option value=\"all\">所有</option>\n\t\t\t\t\t\t\t\t\t<option value=\"0\">原厂</option>\n\t\t\t\t\t\t\t\t\t<option value=\"1\">改装</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\" style=\"margin-top: 20px;\">\n\t\t\t\t\t\t<div class=\"col-sm-4\">\n\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t<span class=\"input-group-btn\">\n\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"button\">动力</button>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<select class=\"form-control powerType\">\n\t\t\t\t\t\t\t\t\t<option value=\"all\">所有</option>\n\t\t\t\t\t\t\t\t\t<option value=\"0\">油</option>\n\t\t\t\t\t\t\t\t\t<option value=\"1\">电</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"col-sm-4\">\n\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t<span class=\"input-group-btn\">\n\t\t\t\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"button\">产地</button>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<select class=\"form-control producer\">\n\t\t\t\t\t\t\t\t\t<option value=\"all\">所有</option>\n\t\t\t\t\t\t\t\t\t<option value=\"0\">国产</option>\n\t\t\t\t\t\t\t\t\t<option value=\"1\">合资</option>\n\t\t\t\t\t\t\t\t\t<option value=\"2\">进口</option>\n\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</table>\n\t</div>\n\t<!-- <div class=\"mini_banner\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-xs-5\">\n\t\t\t\t<img src=\"./img/logo.png\" />\n\t\t\t</div>\n\n\t\t\t<div class=\"col-xs-6 input_ctrl\">\n\n\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t<span class=\"input-group-btn\">\n\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"button\">搜索车型</button>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input type=\"text\" class=\"form-control search\" placeholder=\"关键字\">\n\t\t\t\t</div>\n\n\t\t\t\t<br>\n\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t<span class=\"input-group-btn\">\n\t\t\t\t\t\t<button class=\"btn btn-default\" type=\"button\">级别</button>\n\t\t\t\t\t</span>\n\t\t\t\t\t<select class=\"form-control lv\">\n\t\t\t\t\t\t<option value=\"all\">所有</option>\n\t\t\t\t\t\t<option value=\"A00\">A00</option>\n\t\t\t\t\t\t<option value=\"A0\">A0</option>\n\t\t\t\t\t\t<option value=\"A\">A</option>\n\t\t\t\t\t\t<option value=\"B\">B</option>\n\t\t\t\t\t\t<option value=\"C\">C</option>\n\t\t\t\t\t\t<option value=\"S\">S</option>\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div> -->\n\t<div class=\"box-tabs\">\n\t\t<div class=\"tab active\">锐思圈速榜</div>\n\t\t<div class=\"tab\">易车金港圈速榜</div>\n\t\t<div class=\"tab\">大V榜</div>\n\t</div>\n\n\t<div class=\"table-responsive\">\n\t\t<table id=\"tb_results\" class=\"table table-hover active\">\n\t\t\t<thead>\n\t\t\t\t<th class=\"ranking\">\n\t\t\t\t\t排名\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"car\">车型</th>\n\t\t\t\t<th class=\"price t-right\" style=\"width:100px;\">售价</th>\n\t\t\t\t<th class=\"hp t-center\"  style=\"width:120px;\">马力 (Ps)</th>\n\t\t\t\t<th class=\"speed blue t-left\"  style=\"width:100px;\">\n\t\t\t\t\t圈速\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"tyre\"  style=\"width:80px;\">\n\t\t\t\t\t轮胎\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"temperature t-center\">\n\t\t\t\t\t气温 (℃)\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"powertrain black\">动力总成</th>\n\t\t\t\t<th class=\"limit black\">\n\t\t\t\t\t尾速\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"accelerate black\">0-100</th>\n\t\t\t\t<th class=\"mods t-center black\"  style=\"width:40px;\">\n\t\t\t\t\t改装程度\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<!-- <th class=\"lv black\">级别</th> -->\n\t\t\t\t<th>链接</th>\n\t\t\t</thead>\n\n\t\t\t<tbody>\n\n\t\t\t</tbody>\n\t\t</table>\n\t\t<table id=\"tb_results2\" class=\"table table-hover\" >\n\t\t\t<thead>\n\t\t\t\t<th class=\"ranking\">\n\t\t\t\t\t排名\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"car\">车型</th>\n\t\t\t\t<th class=\"price t-right\" style=\"width:100px;\">售价</th>\n\t\t\t\t<th class=\"hp t-center\"  style=\"width:120px;\">马力 (Ps)</th>\n\t\t\t\t<th class=\"speed blue t-left\"  style=\"width:100px;\">\n\t\t\t\t\t圈速\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"tyre\"  style=\"width:80px;\">\n\t\t\t\t\t轮胎\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"temperature t-center\">\n\t\t\t\t\t气温 (℃)\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"powertrain black\">动力总成</th>\n\t\t\t\t<th class=\"limit black\">\n\t\t\t\t\t尾速\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"accelerate black\">0-100</th>\n\t\t\t\t<th class=\"mods t-center black\"  style=\"width:40px;\">\n\t\t\t\t\t是否改装\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<!-- <th class=\"lv black\">级别</th> -->\n\t\t\t\t<th>链接</th>\n\t\t\t</thead>\n\n\t\t\t<tbody>\n\n\t\t\t</tbody>\n\t\t</table>\n\t\t<table id=\"tb_results3\" class=\"table table-hover\" >\n\t\t\t<thead>\n\t\t\t\t<th class=\"ranking\">\n\t\t\t\t\t排名\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"car\">车型</th>\n\t\t\t\t<th class=\"price t-right\" style=\"width:100px;\">车手</th>\n\t\t\t\t<th class=\"speed blue t-left\"  style=\"width:100px;\">\n\t\t\t\t\t圈速\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"hp t-center\"  style=\"width:120px;\">马力 (Ps)</th>\n\t\t\t\t<th class=\"tyre\"  style=\"width:80px;\">\n\t\t\t\t\t轮胎\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"temperature t-center\">\n\t\t\t\t\t气温 (℃)\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"powertrain black\">动力总成</th>\n\t\t\t\t<th class=\"limit black\">\n\t\t\t\t\t尾速\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<th class=\"accelerate black\">0-100</th>\n\t\t\t\t<th class=\"mods t-center black\"  style=\"width:40px;\">\n\t\t\t\t\t是否改装\n\t\t\t\t\t<!-- <img src=\"./img/tips_alarm.png\" alt=\"\" class=\"icon\"> -->\n\t\t\t\t</th>\n\t\t\t\t<!-- <th class=\"lv black\">级别</th> -->\n\t\t\t\t<th>链接</th>\n\t\t\t</thead>\n\n\t\t\t<tbody>\n\n\t\t\t</tbody>\n\t\t</table>\n\t\t\n\t</div>\n\t\t\t<div class=\"button\">\n\t\t\t\t<span>圈速榜说明书</span>\n\t\t\t</div>\n\n\t<!-- test -->\n\t<!-- <div class=\"fixed-table-container fixed-height\" style=\"height: 406px; padding-bottom: 45.8px;\">\n\t\t<div class=\"fixed-table-header\" style=\"margin-right: 0px;\">\n\t\t\t<table class=\"table table-bordered table-hover\" style=\"width: 1061.6px;\">\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th class=\"detail\" rowspan=\"1\">\n\t\t\t\t\t\t\t<div class=\"fht-cell\" style=\"width: 30.4px;\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th style=\"\" data-field=\"id\">\n\t\t\t\t\t\t\t<div class=\"th-inner \">排名</div>\n\t\t\t\t\t\t\t<div class=\"fht-cell\" style=\"width: 177.6px;\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th style=\"\" data-field=\"name\">\n\t\t\t\t\t\t\t<div class=\"th-inner \">车型</div>\n\t\t\t\t\t\t\t<div class=\"fht-cell\" style=\"width: 438.4px;\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th style=\"\" data-field=\"price\">\n\t\t\t\t\t\t\t<div class=\"th-inner \">圈速</div>\n\t\t\t\t\t\t\t<div class=\"fht-cell\" style=\"width: 411.2px;\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t</table>\n\t\t</div>\n\t\t<div class=\"fixed-table-body\">\n\t\t\t<table id=\"table\" data-toggle=\"bootstrap-table\" data-toolbar=\"#toolbar\" data-height=\"460\" data-detail-view=\"true\"\n\t\t\t\tdata-detail-formatter=\"detailFormatter\" data-url=\"json/data1.json\" class=\"table table-bordered table-hover\"\n\t\t\t\tstyle=\"margin-top: -44.8px;\">\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th class=\"detail\" rowspan=\"1\">\n\t\t\t\t\t\t\t<div class=\"fht-cell\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th style=\"\" data-field=\"id\">\n\t\t\t\t\t\t\t<div class=\"th-inner \">ID</div>\n\t\t\t\t\t\t\t<div class=\"fht-cell\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th style=\"\" data-field=\"name\">\n\t\t\t\t\t\t\t<div class=\"th-inner \">Item Name</div>\n\t\t\t\t\t\t\t<div class=\"fht-cell\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th style=\"\" data-field=\"price\">\n\t\t\t\t\t\t\t<div class=\"th-inner \">Item Price</div>\n\t\t\t\t\t\t\t<div class=\"fht-cell\"></div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr data-index=\"0\" data-has-detail-view=\"true\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<a class=\"detail-icon\" href=\"#\">\n\t\t\t\t\t\t\t\t<i class=\"glyphicon glyphicon-plus icon-plus\"></i>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"\">0</td>\n\t\t\t\t\t\t<td style=\"\">Item 0</td>\n\t\t\t\t\t\t<td style=\"\">$0</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr data-index=\"1\" data-has-detail-view=\"true\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<a class=\"detail-icon\" href=\"#\"><i class=\"glyphicon glyphicon-minus icon-minus\"></i></a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"\">1</td>\n\t\t\t\t\t\t<td style=\"\">Item 1</td>\n\t\t\t\t\t\t<td style=\"\">$1</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class=\"detail-view\">\n\t\t\t\t\t\t<td colspan=\"4\">\n\t\t\t\t\t\t\t<p><b>id:</b> 1</p>\n\t\t\t\t\t\t\t<p><b>name:</b> Item 1</p>\n\t\t\t\t\t\t\t<p><b>price:</b> $1</p>\n\t\t\t\t\t\t\t<p><b>amount:</b> 4</p>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr data-index=\"2\" data-has-detail-view=\"true\">\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<a class=\"detail-icon\" href=\"#\">\n\t\t\t\t\t\t\t\t<i class=\"glyphicon glyphicon-plus icon-plus\"></i>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style=\"\">2</td>\n\t\t\t\t\t\t<td style=\"\">Item 2</td>\n\t\t\t\t\t\t<td style=\"\">$2</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div class=\"fixed-table-border\" style=\"height: 0px;\"></div>\n\t\t</div>\n\t</div> -->\n\n\t<div class=\"placeholding\" style=\"flex: 1\"></div>\n\t<footer>\n\t\t<div class=\"container\">\n\t\t\t<span style=\"float:left\">\n\t\t\t\t关注教主：<a href=\"https://space.bilibili.com/49576477\" target=\"_blank\"><img src=\"./img/bilibili.png\" alt=\"bilibili\"\n\t\t\t\t\t\tstyle=\"height: 1.5em;padding-bottom: 0.2em\"> @键盘车神教</a>\n\t\t\t\t<a href=\"https://www.weibo.com/u/5934299797\" target=\"_blank\"><img src=\"./img/weibo.png\" alt=\"weibo\"\n\t\t\t\t\t\tstyle=\"height: 1.5em;padding-bottom: 0.2em\"> @键盘车神教教主</a>\n\t\t\t</span>\n\n\n\t\t\t<span style=\"float: right\">\n\t\t\t\t查看源代码：<a href=\"https://github.com/KBRACER/kbracer.github.io\" target=\"_blank\"><img src=\"./img/github.png\"\n\t\t\t\t\t\talt=\"github\" style=\"height: 1.5em;padding-bottom: 0.2em\"> GitHub</a>&nbsp;&nbsp;&nbsp;\n\t\t\t</span>\n\t\t</div>\n\t</footer>\n</body>\n\n<script type=\"text/template\" id=\"tb\">\n\n\t{{each data as v i}}\n<tr \n  class=\"\n  {{if v.speed < 55}}\n  speed0\n  {{else if v.speed < 60}}\n  speed1\n  {{else if v.speed < 62}}\n  speed2\n  {{else if v.speed < 64}}\n  speed3\n  {{else if v.speed < 66}}\n  speed4\n  {{else if v.speed < 68}}\n  speed5\n  {{else if v.speed > 68}}\n  speed6\n  {{/if}}\n  \"\n  >\n    <td>{{i + 1}}</td>\n    <td class=\"align-left\">\n\t\t<div class=\"icon-flag {{v.nationality}}\"></div>\n\t\t{{v.car}}\n\t</td>\n    <td class=\"t-right\">{{v.price}}</td>\n    <td class=\"t-center\">{{v.hp_content}}</td>\n    <td class=\"blue t-left\">{{v.speed | timeFormat}}</td>\n    <td>{{v.tyre}}</td>\n    <td class=\"t-center\">{{v.temperature}}</td>\n    <td class=\"black\">{{v.Powertrain }}</td>\n    <td class=\"black\">{{v.limit}}</td>\n    <td class=\"black\">{{v.accelerate}}</td>\n    <td class=\"t-center black\">{{v.mods}}</td>\n    <!-- <td class=\"black center\">{{v.lv}}</td> -->\n    <td class=\"align-left\">\n      <a href=\"https://www.bilibili.com/video/{{v.BID}}\" target=\"_blank\">{{v.Btitle}}</a>\n        </td>\n  </tr>\n  {{/each}}\n\n</script>\n<script type=\"text/template\" id=\"tb2\">\n\n\t{{each data as v i}}\n<tr \n  class=\"\n  {{if v.speed < 69}}\n  speed0\n  {{else if v.speed < 72}}\n  speed1\n  {{else if v.speed < 74}}\n  speed2\n  {{else if v.speed < 77}}\n  speed3\n  {{else if v.speed < 80}}\n  speed4\n  {{else if v.speed < 85}}\n  speed5\n  {{else if v.speed > 90}}\n  speed6\n  {{/if}}\n  \"\n  >\n    <td>{{i + 1}}</td>\n    <td class=\"align-left\">\n\t\t<div class=\"icon-flag {{v.nationality}}\"></div>\n\t\t{{v.car}}\n\t</td>\n    <td class=\"t-right\">{{v.price}}</td>\n    <td class=\"t-center\">{{v.hp_content}}</td>\n    <td class=\"blue t-left\">{{v.speed | timeFormat}}</td>\n    <td>{{v.tyre}}</td>\n    <td class=\"t-center\">{{v.temperature}}</td>\n    <td class=\"black\">{{v.Powertrain }}</td>\n    <td class=\"black\">{{v.limit}}</td>\n    <td class=\"black\">{{v.accelerate}}</td>\n    <td class=\"t-center black\">{{v.mods}}</td>\n    <!-- <td class=\"black center\">{{v.lv}}</td> -->\n    <td class=\"align-left\">\n      <a href=\"https://www.bilibili.com/video/{{v.BID}}\" target=\"_blank\">{{v.Btitle}}</a>\n        </td>\n  </tr>\n  {{/each}}\n\n</script>\n<script type=\"text/template\" id=\"tb3\">\n\n\t{{each data as v i}}\n<tr \n  class=\"\n  {{if v.speed < 69}}\n  speed0\n  {{else if v.speed < 72}}\n  speed1\n  {{else if v.speed < 74}}\n  speed2\n  {{else if v.speed < 77}}\n  speed3\n  {{else if v.speed < 80}}\n  speed4\n  {{else if v.speed < 85}}\n  speed5\n  {{else if v.speed > 90}}\n  speed6\n  {{/if}}\n  \"\n  >\n    <td>{{i + 1}}</td>\n    <td class=\"align-left\">\n\t\t<div class=\"icon-flag {{v.nationality}}\"></div>\n\t\t{{v.car}}\n\t</td>\n\t<td class=\"t-center\">{{v.driver}}</td>\n    <!-- <td class=\"t-right\">{{v.price}}</td> -->\n    <td class=\"blue t-left\">{{v.speed | timeFormat}}</td>\n    <td class=\"t-center\">{{v.hp_content}}</td>\n    <td>{{v.tyre}}</td>\n    <td class=\"t-center\">{{v.temperature}}</td>\n    <td class=\"black\">{{v.Powertrain }}</td>\n    <td class=\"black\">{{v.limit}}</td>\n    <td class=\"black\">{{v.accelerate}}</td>\n    <td class=\"t-center black\">{{v.mods}}</td>\n    <!-- <td class=\"black center\">{{v.lv}}</td> -->\n    <td class=\"align-left\">\n      <a href=\"https://www.bilibili.com/video/{{v.BID}}\" target=\"_blank\">{{v.Btitle}}</a>\n        </td>\n  </tr>\n  {{/each}}\n\n</script>\n\n\n<!-- <div class=\"tips-content tips-content-mods\" style=\"display: none;\">\n\t<h3>改装程度</h3>\n\t<p>改装程度分【0】【1】【2】【3】【-1】</p>\n\t<p>【0】纯原厂，包括轮胎，心情件不算。</p>\n\t<p>【1】轻度改装，轮胎，轮毂，避震，刹车，进排气，ECU等，不能改装引擎和波箱内部结构，不能使用R胎。这是绝大部分改装车最常见的入门改装。</p>\n\t<p>【2】中度改装，引擎改装，如腹内锻造，大涡轮，扩缸或移植非性能引擎。传动系统改装，如LSD+大尾牙。可以使用热熔胎。</p>\n\t<p>【3】赛化改装。无限制，专业赛车，移植性能机，序列式，改变悬挂结构等。</p>\n\t<p>【-1】一般指使用了比原厂规格更低的轮胎，如A45，或者副驾带人（额外负重）。</p>\n</div>\n\n<div class=\"tips-content tips-content-temperature\" style=\"display: none;\">\n\t<h3>气温</h3>\n\t<p>最出圈速的气温是轮胎能够起温，且进气温度低。我会尽量选在10-25℃进行测试。</p>\n\t<p>气温过高：空气密度低。马力小于200ps的自然吸气引擎，或者高温衰减严重的涡轮买菜车，圈速会变慢。30℃以上区间会非常明显，相比10℃，这些车圈速在锐思会有0.X秒的差距。甚至有些极端车型有超过1s的差距，请大家自行脑补修正。</p>\n\t<p>气温过低：如果使用热熔胎在低温环境中测试，会因为轮胎无法进入工作温度而大幅影响圈速。而普通运动轮胎普遍可以在0℃的情况下正常工作。</p>\n\t<p>相对而言，散热较好且马力较大的宝马S55车型，保时捷911车型，受到高温影响较小。而搭载四驱的高性能车，如奥迪RS系列，对轮胎起温的要求较低，受到低温影响较小，0℃以下依然能发挥威力。</p>\n</div>\n\n<div class=\"tips-content tips-content-tyre\" style=\"display: none;\">\n\t<h3>轮胎磨损</h3>\n\t<p>我的测试车辆大多数来自白嫖。有的车借来时轮胎已经有严重磨损或者年份过久，会影响圈速，我都会在节目中说明。（如S3轮胎已经石化）</p>\n</div>\n\n<div class=\"tips-content tips-content-limit\" style=\"display: none;\">\n\t<h3>尾速</h3>\n\t<p>赛道尾速是指一条赛道中能达到的最高速度，一般在赛道最长的直线中诞生。尾速和01加速一样是动力水准的重要指标，但又有所不同。</p>\n\t<p>01加速不仅是对动力的检验，还需要考虑起步时的驱动效率，以及弹射程序的聪明与否。影响尾速的最大因素的仍然是动力水准，如我100ps的原厂菱帅只有112的尾速。但是450ps的911s（992）则是163的尾速。第二影响因素是弯道性能，也就是操控，因为直线上一个弯道出的快不快，直接影响直线部分的起始速度。</p>\n</div>\n\n<div class=\"tips-content tips-content-ranking\" style=\"display: none;\">\n\t<h3>为什么我要动态起步</h3>\n\t<p>Hot lap，一般被称为飞行圈或者飞驰圈（我喜欢叫飞行圈，因为比较中二）。指得是非静止起步的全力最快圈，也是大家约定俗称进行圈速测试的方式。</p>\n\t<p>有人可能会有疑问，因为每台车起始速度不同，但这由车辆性能差异导致，本就应该对圈速产生影响。</p>\n\t<p>而静态起步圈速测试和驱动形式关系较大，意义不大，一般并采用。</p>\n</div>\n\n<div class=\"tips-content tips-content-speed\" style=\"display: none;\">\n\t<p>圈速是一台车动力，操控性，制动和主动安全性的全面体现。</p>\n</div> -->\n\n<div class=\"tips\" style=\"display: none;\">\n\t<div class=\"tips-content tips-content-mods\" >\n\t\t<h3>1.改装程度</h3>\n\t\t<p>改装程度分【0】【1】【2】【3】【-1】</p>\n\t\t<p>【0】包括原厂车和只更换轮胎刹车以及心情件的车，因为很多老车的轮胎已经停止售卖，刹车片也很少维持原厂。但是轮胎不能有太越级的提升，比如思域的原厂胎提升一级到PS4是可以的，M2C的PSS星标提升到CUP2C是可以的，但是思域换成CUP2C是算入改装的。</p>\n\t\t<p>【1】轻度改装，轮胎，轮毂，避震，刹车，进排气，ECU等，不能改装引擎和波箱内部结构，不能使用R胎。这是绝大部分改装车最常见的入门改装。</p>\n\t\t<p>【2】中度改装，引擎改装，如腹内锻造，大涡轮，扩缸或移植非性能引擎。传动系统改装，如LSD+大尾牙。可以使用热熔胎。</p>\n\t\t<p>【3】赛化改装。无限制，专业赛车，移植性能机，序列式，改变悬挂结构等。</p>\n\t\t<p>【-1】一般指使用了比原厂规格更低的轮胎，如A45，或者副驾带人（额外负重）。</p>\n\t</div>\n\n\t<div class=\"tips-content tips-content-temperature\" >\n\t\t<h3>2.气温</h3>\n\t\t<p>最出圈速的气温是轮胎能够起温，且进气温度低。我会尽量选在10-25℃进行测试。</p>\n\t\t<p>气温过高：空气密度低。马力小于200ps的自然吸气引擎，或者高温衰减严重的涡轮买菜车，圈速会变慢。30℃以上区间会非常明显，相比10℃，这些车圈速在锐思会有0.X秒的差距。甚至有些极端车型有超过1s的差距，请大家自行脑补修正。\n\t\t</p>\n\t\t<p>气温过低：如果使用热熔胎在低温环境中测试，会因为轮胎无法进入工作温度而大幅影响圈速。而普通运动轮胎普遍可以在0℃的情况下正常工作。</p>\n\t\t<p>相对而言，散热较好且马力较大的宝马S55车型，保时捷911车型，受到高温影响较小。而搭载四驱的高性能车，如奥迪RS系列，对轮胎起温的要求较低，受到低温影响较小，0℃以下依然能发挥威力。</p>\n\t</div>\n\n\t<div class=\"tips-content tips-content-tyre\" >\n\t\t<h3>3.轮胎磨损</h3>\n\t\t<p>我的测试车辆大多数来自白嫖。有的车借来时轮胎已经有严重磨损或者年份过久，会影响圈速，我都会在节目中说明。（如S3轮胎已经石化）</p>\n\t</div>\n\n\t<div class=\"tips-content tips-content-limit\" >\n\t\t<h3>4.尾速</h3>\n\t\t<p>赛道尾速是指一条赛道中能达到的最高速度，一般在赛道最长的直线中诞生。尾速和01加速一样是动力水准的重要指标，但又有所不同。</p>\n\t\t<p>\n\t\t\t01加速不仅是对动力的检验，还需要考虑起步时的驱动效率，以及弹射程序的聪明与否。影响尾速的最大因素的仍然是动力水准，如我100ps的原厂菱帅只有112的尾速。但是450ps的911s（992）则是163的尾速。第二影响因素是弯道性能，也就是操控，因为直线上一个弯道出的快不快，直接影响直线部分的起始速度。\n\t\t</p>\n\t</div>\n\n\t<div class=\"tips-content tips-content-ranking\" >\n\t\t<h3>5.为什么我要动态起步</h3>\n\t\t<p>Hot lap，一般被称为飞行圈或者飞驰圈（我喜欢叫飞行圈，因为比较中二）。指得是非静止起步的全力最快圈，也是大家约定俗称进行圈速测试的方式。</p>\n\t\t<p>有人可能会有疑问，因为每台车起始速度不同，但这由车辆性能差异导致，本就应该对圈速产生影响。</p>\n\t\t<p>而静态起步圈速测试和驱动形式关系较大，意义不大，一般并采用。</p>\n\t</div>\n\n\t<div class=\"tips-content tips-content-speed\" >\n\t\t<p>圈速是一台车动力，操控性，制动和主动安全性的全面体现。</p>\n\t</div>\n</div>\n\n</html>"
  },
  {
    "path": "js/index.js",
    "content": "$(function () {\n  var jsonData;\n  var goldData;\n  var bigVData;\n  function setTable(arr) {\n    var htmlStr = template(\"tb\", {\n      data: arr,\n    });\n    $(\"#tb_results > tbody\").html(htmlStr);\n  }\n  function setTableGold(arr) {\n    var htmlStr = template(\"tb2\", {\n      data: arr,\n    });\n    $(\"#tb_results2 > tbody\").html(htmlStr);\n  }\n  function setTableBigV(arr) {\n    var htmlStr = template(\"tb3\", {\n      data: arr,\n    });\n    $(\"#tb_results3 > tbody\").html(htmlStr);\n  }\n\n  template.defaults.imports.timeFormat = function (date) {\n    var timeArr = date.split(\".\"),\n      sec = timeArr[0] % 60,\n      min;\n    timeArr[0] >= 60 ? (min = 1) : (min = 0);\n    sec < 10 ? (sec = \"0\" + sec) : null;\n    return `${min}:${sec}.${timeArr[1]}`;\n  };\n  //获取json数据\n  $.ajax({\n    url: \"./goldport.json?v=20240306\",\n    // async: false,\n    success: function (res) {\n      console.log('goldport',res);\n      goldData = res;\n      setTableGold(goldData);\n    },\n  });\n  $.ajax({\n    url: \"./speed.json?v=20240226\",\n    // async: false,\n    success: function (res) {\n      console.log('ruisi',res);\n      jsonData = res;\n      setTable(jsonData);\n    },\n  });\n  $.ajax({\n    url: \"./bigV.json?v=20240226\",\n    // async: false,\n    success: function (res) {\n      console.log('bigV',res);\n      bigVData = res;\n      setTableBigV(bigVData);\n    },\n  });\n  // setTable(jsonData);\n  // setTableGold(goldData);\n\n  $(\".mods,.lv,.powerType,.producer\").on(\"change\", function () {\n    // screen($(this).val())\n    screen(jsonData,'ruisi');\n    screen(goldData,'gold');\n    screen(bigVData,'bigV');\n  });\n  // 筛选\n  function screen(arr,type) {\n    var lv = $(\".lv\").val(),\n      mods = $(\".mods\").val(),\n      powerType = $(\".powerType\").val(),\n      producer = $(\".producer\").val(),\n      search = $('.search').val().toLowerCase();\n      // arr = jsonData;\n\n    // 车型级别\n    if (lv !== \"all\") {\n      if (lv == \"SUV\") {\n        arr = arr.filter(function (v) {\n          return [\"SUV1\", \"SUV2\", \"SUV3\", \"SUV4\",\"SUV5\"].includes(v.lv);\n        });\n      } else if (lv == \"0\") {\n        arr = arr.filter(function (v) {\n          return [\"A00\", \"A0\", \"A\", \"B\", \"C\",\"D\"].includes(v.lv);\n        });\n      } else {\n        arr = arr.filter(function (v) {\n          return v.lv == lv;\n        });\n      }\n    }\n\n    // 改装程度\n    if (mods == \"all\") {\n      // setTable(jsonData)\n    } else if (mods == 0) {\n      arr = arr.filter(function (v) {\n        return v.mods <= 0;\n      });\n    } else {\n      arr = arr.filter(function (v) {\n        return v.mods > 0;\n      });\n    }\n\n    // 动力类型： 0 燃油 ， 1 电动\n    if (powerType != \"all\") {\n      arr = arr.filter(function (v) {\n        return v.powerType == powerType;\n      });\n    }\n\n    // 产地： 0 国产， 1 合资 ， 2 进口\n    if (producer != \"all\") {\n      arr = arr.filter(function (v) {\n        return v.producer == producer;\n      });\n    }\n\n    if(search){\n      arr = arr.filter((v) => {\n        return v.car.toLowerCase().indexOf(search) != -1;\n      })\n    }\n    console.log(type,arr);\n    switch (type) {\n      case 'ruisi':\n        setTable(arr)\n        break;\n      case 'gold':\n        setTableGold(arr)\n        break;\n      case 'bigV':\n        setTableBigV(arr)\n        break;\n    \n      default:\n        break;\n    }\n  }\n\n  //搜索车型\n  $(\".search\").on(\"input\", function () {\n    // var val = $(this).val().toLowerCase();\n    // var arr = jsonData.filter((v) => {\n    //   return v.car.toLowerCase().indexOf(val) != -1;\n    // });\n    // setTable(arr);\n    \n    // screen()\n    screen(jsonData,'ruisi');\n    screen(goldData,'gold');\n    screen(bigVData,'bigV');\n  });\n\n  // button动效\n  document.querySelector(\".button\").onmousemove = (e) => {\n    const x = e.pageX - e.target.offsetLeft;\n    const y = e.pageY - e.target.offsetTop;\n    e.target.style.setProperty(\"--x\", `${x}px`);\n    e.target.style.setProperty(\"--y\", `${y}px`);\n  };\n\n  // 榜单切换\n  $('.box-tabs .tab').on('click',function(){\n    var index = $(this).index()\n    $(this).addClass('active').siblings().removeClass('active')\n    $('.table-hover').eq(index).addClass('active').siblings().removeClass('active')\n    // console.log($(this).addClass('active').siblings());\n  })\n\n  // // 榜单说明\n  $(\".button\").on(\"click\", function () {\n    layer.open({\n      type: 1,\n      area: [\"820px\", \"640px\"],\n      title: null,\n      shade: false,\n      content: $(\".tips\"),\n    });\n  });\n\n  // // 改装程度\n  // $('.mods .icon').click(function () {\n  //   layer.open({\n  //     type: 1,\n  //     shade: false,\n  //     title: false,\n  //     content: $('.tips-content-mods'),\n  //   });\n  // })\n  // // 气温\n  // $('.temperature .icon').click(function () {\n  //   layer.open({\n  //     type: 1,\n  //     shade: false,\n  //     title: false,\n  //     content: $('.tips-content-temperature'),\n  //   });\n  // })\n  // // 轮胎\n  // $('.tyre .icon').click(function () {\n  //   layer.open({\n  //     type: 1,\n  //     shade: false,\n  //     title: false,\n  //     content: $('.tips-content-tyre'),\n  //   });\n  // })\n  // // 尾速\n  // $('.limit .icon').click(function () {\n  //   layer.open({\n  //     type: 1,\n  //     shade: false,\n  //     title: false,\n  //     content: $('.tips-content-limit'),\n  //   });\n  // })\n  // // 排名 飞行圈说明\n  // $('.ranking .icon').click(function () {\n  //   layer.open({\n  //     type: 1,\n  //     shade: false,\n  //     title: false,\n  //     content: $('.tips-content-ranking'),\n  //   });\n  // })\n  // // 圈速\n  // $('.speed .icon').click(function () {\n  //   layer.open({\n  //     type: 1,\n  //     shade: false,\n  //     title: false,\n  //     content: $('.tips-content-speed'),\n  //   });\n  // })\n  (function () {\n    var width,\n      height,\n      largeHeader,\n      canvas,\n      ctx,\n      points,\n      target,\n      animateHeader = true;\n\n    // Main\n    initHeader();\n    initAnimation();\n    addListeners();\n\n    function initHeader() {\n      // width = window.innerWidth;\n      // height = window.innerHeight;\n      target = { x: width / 2, y: height / 2 };\n\n      largeHeader = document.querySelector(\"body\");\n      // largeHeader = document.getElementById(\"canvas_bg\");\n      // largeHeader.style.height = height + \"px\";\n      width = largeHeader.offsetWidth;\n      height = largeHeader.offsetHeight;\n\n      canvas = document.getElementById(\"canvas1\");\n      canvas.width = width;\n      canvas.height = height;\n      ctx = canvas.getContext(\"2d\");\n\n      // create points\n      points = [];\n      for (var x = 0; x < width; x = x + width / 20) {\n        for (var y = 0; y < height; y = y + height / 20) {\n          var px = x + (Math.random() * width) / 20;\n          var py = y + (Math.random() * height) / 20;\n          var p = { x: px, originX: px, y: py, originY: py };\n          points.push(p);\n        }\n      }\n\n      // for each point find the 5 closest points\n      for (var i = 0; i < points.length; i++) {\n        var closest = [];\n        var p1 = points[i];\n        for (var j = 0; j < points.length; j++) {\n          var p2 = points[j];\n          if (!(p1 == p2)) {\n            var placed = false;\n            for (var k = 0; k < 5; k++) {\n              if (!placed) {\n                if (closest[k] == undefined) {\n                  closest[k] = p2;\n                  placed = true;\n                }\n              }\n            }\n\n            for (var k = 0; k < 5; k++) {\n              if (!placed) {\n                if (getDistance(p1, p2) < getDistance(p1, closest[k])) {\n                  closest[k] = p2;\n                  placed = true;\n                }\n              }\n            }\n          }\n        }\n        p1.closest = closest;\n      }\n\n      // assign a circle to each point\n      for (var i in points) {\n        var c = new Circle(\n          points[i],\n          2 + Math.random() * 2,\n          \"rgba(255,255,255,0.3)\"\n        );\n        points[i].circle = c;\n      }\n    }\n\n    // Event handling\n    function addListeners() {\n      if (!(\"ontouchstart\" in window)) {\n        window.addEventListener(\"mousemove\", mouseMove);\n      }\n      window.addEventListener(\"scroll\", scrollCheck);\n      // window.addEventListener(\"resize\", resize);\n    }\n\n    function mouseMove(e) {\n      // var posx = (posy = 0);\n      // if (e.pageX || e.pageY) {\n      //   posx = e.pageX;\n      //   posy = e.pageY;\n      // } else if (e.clientX || e.clientY) {\n      //   posx =\n      //     e.clientX +\n      //     document.body.scrollLeft +\n      //     document.documentElement.scrollLeft;\n      //   posy =\n      //     e.clientY +\n      //     document.body.scrollTop +\n      //     document.documentElement.scrollTop;\n      // }\n      var scrTop = largeHeader.parentNode.offsetTop,\n        l = largeHeader.parentNode.offsetLeft,\n        h = largeHeader.parentNode.offsetHeight;\n\n      if (e.pageY >= scrTop && e.pageY <= scrTop + h) {\n        target.x = e.pageX - l;\n        // target.y = e.offsetY;\n        target.y = e.pageY - scrTop;\n      } else {\n        target.x = -500;\n        target.y = -500;\n      }\n    }\n\n    function scrollCheck() {\n      if (document.body.scrollTop > height) animateHeader = false;\n      else animateHeader = true;\n    }\n\n    function resize() {\n      width = window.innerWidth;\n      height = window.innerHeight;\n      largeHeader.style.height = height + \"px\";\n      canvas.width = width;\n      canvas.height = height;\n    }\n\n    // animation\n    function initAnimation() {\n      animate();\n      for (var i in points) {\n        shiftPoint(points[i]);\n      }\n    }\n\n    function animate() {\n      if (animateHeader) {\n        ctx.clearRect(0, 0, width, height);\n        for (var i in points) {\n          // detect points in range\n          if (Math.abs(getDistance(target, points[i])) < 4000) {\n            points[i].active = 0.3;\n            points[i].circle.active = 0.6;\n          } else if (Math.abs(getDistance(target, points[i])) < 20000) {\n            points[i].active = 0.1;\n            points[i].circle.active = 0.3;\n          } else if (Math.abs(getDistance(target, points[i])) < 40000) {\n            points[i].active = 0.02;\n            points[i].circle.active = 0.1;\n          } else {\n            points[i].active = 0;\n            points[i].circle.active = 0;\n          }\n\n          drawLines(points[i]);\n          points[i].circle.draw();\n        }\n      }\n      requestAnimationFrame(animate);\n    }\n\n    function shiftPoint(p) {\n      TweenLite.to(p, 1 + 1 * Math.random(), {\n        x: p.originX - 50 + Math.random() * 100,\n        y: p.originY - 50 + Math.random() * 100,\n        ease: Circ.easeInOut,\n        onComplete: function () {\n          shiftPoint(p);\n        },\n      });\n    }\n\n    // Canvas manipulation\n    function drawLines(p) {\n      if (!p.active) return;\n      for (var i in p.closest) {\n        ctx.beginPath();\n        ctx.moveTo(p.x, p.y);\n        ctx.lineTo(p.closest[i].x, p.closest[i].y);\n        ctx.strokeStyle = \"rgba(156,217,249,\" + p.active + \")\";\n        ctx.stroke();\n      }\n    }\n\n    function Circle(pos, rad, color) {\n      var _this = this;\n\n      // constructor\n      (function () {\n        _this.pos = pos || null;\n        _this.radius = rad || null;\n        _this.color = color || null;\n      })();\n\n      this.draw = function () {\n        if (!_this.active) return;\n        ctx.beginPath();\n        ctx.arc(_this.pos.x, _this.pos.y, _this.radius, 0, 2 * Math.PI, false);\n        ctx.fillStyle = \"rgba(156,217,249,\" + _this.active + \")\";\n        ctx.fill();\n      };\n    }\n\n    // Util\n    function getDistance(p1, p2) {\n      return Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2);\n    }\n  })();\n  console.log(\n    \"%c键盘车神教圈速榜 by铲子\",\n    \"text-shadow:0 1px 0 #ccc,0 2px 0 #c9c9c9,0 3px 0 #bbb, 0 4px 0 #b9b9b9,0 5px 0 #aaa,0 6px 1px rgba(0,0,0,0.1),0 0 5px rgba(0,0,0,0.25),0 10px 10px rgba(0,0,0,0.2),0 20px 20px rgba(0,0,0,0.15);font-size:100px\"\n  );\n});\n"
  },
  {
    "path": "lib/bootstrap/css/bootstrap-table.css",
    "content": "@charset \"UTF-8\";\n/**\n * @author zhixin wen <wenzhixin2010@gmail.com>\n * version: 1.15.5\n * https://github.com/wenzhixin/bootstrap-table/\n */\n.bootstrap-table .fixed-table-toolbar::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.bootstrap-table .fixed-table-toolbar .bs-bars,\n.bootstrap-table .fixed-table-toolbar .search,\n.bootstrap-table .fixed-table-toolbar .columns {\n  position: relative;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.bootstrap-table .fixed-table-toolbar .columns .btn-group > .btn-group {\n  display: inline-block;\n  margin-left: -1px !important;\n}\n.bootstrap-table .fixed-table-toolbar .columns .btn-group > .btn-group > .btn {\n  border-radius: 0;\n}\n.bootstrap-table .fixed-table-toolbar .columns .btn-group > .btn-group:first-child > .btn {\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n.bootstrap-table .fixed-table-toolbar .columns .btn-group > .btn-group:last-child > .btn {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 4px;\n}\n.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu {\n  text-align: left;\n  max-height: 300px;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n  z-index: 1001;\n}\n.bootstrap-table .fixed-table-toolbar .columns label {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.428571429;\n}\n.bootstrap-table .fixed-table-toolbar .columns-left {\n  margin-right: 5px;\n}\n.bootstrap-table .fixed-table-toolbar .columns-right {\n  margin-left: 5px;\n}\n.bootstrap-table .fixed-table-toolbar .pull-right .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n.bootstrap-table .fixed-table-container {\n  position: relative;\n  clear: both;\n}\n.bootstrap-table .fixed-table-container .table {\n  width: 100%;\n  margin-bottom: 0 !important;\n}\n.bootstrap-table .fixed-table-container .table th,\n.bootstrap-table .fixed-table-container .table td {\n  vertical-align: middle;\n  box-sizing: border-box;\n}\n.bootstrap-table .fixed-table-container .table thead th {\n  vertical-align: bottom;\n  padding: 0;\n  margin: 0;\n}\n.bootstrap-table .fixed-table-container .table thead th:focus {\n  outline: 0 solid transparent;\n}\n.bootstrap-table .fixed-table-container .table thead th.detail {\n  width: 30px;\n}\n.bootstrap-table .fixed-table-container .table thead th .th-inner {\n  padding: 0.75rem;\n  vertical-align: bottom;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n.bootstrap-table .fixed-table-container .table thead th .sortable {\n  cursor: pointer;\n  background-position: right;\n  background-repeat: no-repeat;\n  padding-right: 30px;\n}\n.bootstrap-table .fixed-table-container .table thead th .both {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC\");\n}\n.bootstrap-table .fixed-table-container .table thead th .asc {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==\");\n}\n.bootstrap-table .fixed-table-container .table thead th .desc {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII= \");\n}\n.bootstrap-table .fixed-table-container .table tbody tr.selected td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n.bootstrap-table .fixed-table-container .table tbody tr.no-records-found {\n  text-align: center;\n}\n.bootstrap-table .fixed-table-container .table tbody tr .card-view {\n  display: flex;\n}\n.bootstrap-table .fixed-table-container .table tbody tr .card-view .card-view-title {\n  font-weight: bold;\n  display: inline-block;\n  min-width: 30%;\n  text-align: left !important;\n}\n.bootstrap-table .fixed-table-container .table .bs-checkbox {\n  text-align: center;\n}\n.bootstrap-table .fixed-table-container .table .bs-checkbox label {\n  margin-bottom: 0;\n}\n.bootstrap-table .fixed-table-container .table input[type=radio],\n.bootstrap-table .fixed-table-container .table input[type=checkbox] {\n  margin: 0 auto !important;\n}\n.bootstrap-table .fixed-table-container .table.table-sm .th-inner {\n  padding: 0.3rem;\n}\n.bootstrap-table .fixed-table-container.fixed-height:not(.has-footer) {\n  border-bottom: 1px solid #dee2e6;\n}\n.bootstrap-table .fixed-table-container.fixed-height.has-card-view {\n  border-top: 1px solid #dee2e6;\n  border-bottom: 1px solid #dee2e6;\n}\n.bootstrap-table .fixed-table-container.fixed-height .fixed-table-border {\n  border-left: 1px solid #dee2e6;\n  border-right: 1px solid #dee2e6;\n}\n.bootstrap-table .fixed-table-container.fixed-height .table thead th {\n  border-bottom: 1px solid #dee2e6;\n}\n.bootstrap-table .fixed-table-container.fixed-height .table-dark thead th {\n  border-bottom: 1px solid #32383e;\n}\n.bootstrap-table .fixed-table-container .fixed-table-header {\n  overflow: hidden;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body {\n  overflow-x: auto;\n  overflow-y: auto;\n  height: 100%;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading {\n  align-items: center;\n  background: #fff;\n  display: none;\n  justify-content: center;\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  z-index: 1000;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap {\n  align-items: baseline;\n  display: flex;\n  justify-content: center;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .loading-text {\n  font-size: 2rem;\n  margin-right: 6px;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap {\n  align-items: center;\n  display: flex;\n  justify-content: center;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot,\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after,\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::before {\n  content: \"\";\n  animation-duration: 1.5s;\n  animation-iteration-count: infinite;\n  animation-name: LOADING;\n  background: #212529;\n  border-radius: 50%;\n  display: block;\n  height: 5px;\n  margin: 0 4px;\n  opacity: 0;\n  width: 5px;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot {\n  animation-delay: 0.3s;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after {\n  animation-delay: 0.6s;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark {\n  background: #212529;\n}\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-dot,\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::after,\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::before {\n  background: #fff;\n}\n.bootstrap-table .fixed-table-container .fixed-table-footer {\n  overflow: hidden;\n}\n.bootstrap-table .fixed-table-pagination::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.bootstrap-table .fixed-table-pagination > .pagination-detail,\n.bootstrap-table .fixed-table-pagination > .pagination {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.bootstrap-table .fixed-table-pagination > .pagination-detail .pagination-info {\n  line-height: 34px;\n  margin-right: 5px;\n}\n.bootstrap-table .fixed-table-pagination > .pagination-detail .page-list {\n  display: inline-block;\n}\n.bootstrap-table .fixed-table-pagination > .pagination-detail .page-list .btn-group {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.bootstrap-table .fixed-table-pagination > .pagination-detail .page-list .btn-group .dropdown-menu {\n  margin-bottom: 0;\n}\n.bootstrap-table .fixed-table-pagination > .pagination ul.pagination {\n  margin: 0;\n}\n.bootstrap-table .fixed-table-pagination > .pagination ul.pagination a {\n  padding: 6px 12px;\n  line-height: 1.428571429;\n}\n.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a {\n  color: #c8c8c8;\n}\n.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a::before {\n  content: \"⬅\";\n}\n.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a::after {\n  content: \"➡\";\n}\n.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.disabled a {\n  pointer-events: none;\n  cursor: default;\n}\n.bootstrap-table.fullscreen {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  width: 100% !important;\n  background: #fff;\n  height: calc(100vh);\n  overflow-y: scroll;\n}\n\n/* calculate scrollbar width */\ndiv.fixed-table-scroll-inner {\n  width: 100%;\n  height: 200px;\n}\n\ndiv.fixed-table-scroll-outer {\n  top: 0;\n  left: 0;\n  visibility: hidden;\n  width: 200px;\n  height: 150px;\n  overflow: hidden;\n}\n\n@keyframes LOADING {\n  0% {\n    opacity: 0;\n  }\n  50% {\n    opacity: 1;\n  }\n  to {\n    opacity: 0;\n  }\n}\n\n/*# sourceMappingURL=bootstrap-table.css.map */\n"
  },
  {
    "path": "lib/bootstrap/css/bootstrap-theme.css",
    "content": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n  text-shadow: none;\n}\n.btn:active,\n.btn.active {\n  background-image: none;\n}\n.btn-default {\n  text-shadow: 0 1px 0 #fff;\n  background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n  background-image:      -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));\n  background-image:         linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #dbdbdb;\n  border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n  background-color: #e0e0e0;\n  background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n  background-color: #e0e0e0;\n  border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n  background-color: #e0e0e0;\n  background-image: none;\n}\n.btn-primary {\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n  background-color: #265a88;\n  background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n  background-color: #265a88;\n  border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n  background-color: #265a88;\n  background-image: none;\n}\n.btn-success {\n  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n  background-image:      -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));\n  background-image:         linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n  background-color: #419641;\n  background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n  background-color: #419641;\n  border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n  background-color: #419641;\n  background-image: none;\n}\n.btn-info {\n  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n  background-image:      -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));\n  background-image:         linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n  background-color: #2aabd2;\n  background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n  background-color: #2aabd2;\n  border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n  background-color: #2aabd2;\n  background-image: none;\n}\n.btn-warning {\n  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n  background-image:      -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));\n  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n  background-color: #eb9316;\n  background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n  background-color: #eb9316;\n  border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n  background-color: #eb9316;\n  background-image: none;\n}\n.btn-danger {\n  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n  background-image:      -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));\n  background-image:         linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n  background-color: #c12e2a;\n  background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n  background-color: #c12e2a;\n  border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n  background-color: #c12e2a;\n  background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  background-color: #e8e8e8;\n  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image:      -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n  background-repeat: repeat-x;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  background-color: #2e6da4;\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n  background-repeat: repeat-x;\n}\n.navbar-default {\n  background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);\n  background-image:      -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));\n  background-image:         linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n  background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n  background-image:      -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));\n  background-image:         linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n  background-repeat: repeat-x;\n  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n.navbar-inverse {\n  background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n  background-image:      -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));\n  background-image:         linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  background-repeat: repeat-x;\n  border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n  background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n  background-image:      -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));\n  background-image:         linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n  background-repeat: repeat-x;\n  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);\n          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  border-radius: 0;\n}\n@media (max-width: 767px) {\n  .navbar .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #fff;\n    background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n    background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n    background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n    background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n    background-repeat: repeat-x;\n  }\n}\n.alert {\n  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n}\n.alert-success {\n  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n  background-image:      -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));\n  background-image:         linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #b2dba1;\n}\n.alert-info {\n  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n  background-image:      -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));\n  background-image:         linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #9acfea;\n}\n.alert-warning {\n  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n  background-image:      -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));\n  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #f5e79e;\n}\n.alert-danger {\n  background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n  background-image:      -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));\n  background-image:         linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #dca7a7;\n}\n.progress {\n  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n  background-image:      -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));\n  background-image:         linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar {\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-success {\n  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n  background-image:      -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));\n  background-image:         linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-info {\n  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n  background-image:      -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));\n  background-image:         linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-warning {\n  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n  background-image:      -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));\n  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-danger {\n  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n  background-image:      -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));\n  background-image:         linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n  background-repeat: repeat-x;\n}\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.list-group {\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  text-shadow: 0 -1px 0 #286090;\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n  text-shadow: none;\n}\n.panel {\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, .05);\n}\n.panel-default > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image:      -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image:      -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n  background-image:         linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n  background-image:      -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));\n  background-image:         linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n  background-image:      -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));\n  background-image:         linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n  background-image:      -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));\n  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n  background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n  background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n  background-image:      -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));\n  background-image:         linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n  background-repeat: repeat-x;\n}\n.well {\n  background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n  background-image:      -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n  background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));\n  background-image:         linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n  background-repeat: repeat-x;\n  border-color: #dcdcdc;\n  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n          box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */\n"
  },
  {
    "path": "lib/bootstrap/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  font-family: sans-serif;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\nbody {\n  margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline;\n}\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n[hidden],\ntemplate {\n  display: none;\n}\na {\n  background-color: transparent;\n}\na:active,\na:hover {\n  outline: 0;\n}\nabbr[title] {\n  border-bottom: 1px dotted;\n}\nb,\nstrong {\n  font-weight: bold;\n}\ndfn {\n  font-style: italic;\n}\nh1 {\n  margin: .67em 0;\n  font-size: 2em;\n}\nmark {\n  color: #000;\n  background: #ff0;\n}\nsmall {\n  font-size: 80%;\n}\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\nsup {\n  top: -.5em;\n}\nsub {\n  bottom: -.25em;\n}\nimg {\n  border: 0;\n}\nsvg:not(:root) {\n  overflow: hidden;\n}\nfigure {\n  margin: 1em 40px;\n}\nhr {\n  height: 0;\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n          box-sizing: content-box;\n}\npre {\n  overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  margin: 0;\n  font: inherit;\n  color: inherit;\n}\nbutton {\n  overflow: visible;\n}\nbutton,\nselect {\n  text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\ninput {\n  line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n  padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n          box-sizing: content-box;\n  -webkit-appearance: textfield;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\nfieldset {\n  padding: .35em .625em .75em;\n  margin: 0 2px;\n  border: 1px solid #c0c0c0;\n}\nlegend {\n  padding: 0;\n  border: 0;\n}\ntextarea {\n  overflow: auto;\n}\noptgroup {\n  font-weight: bold;\n}\ntable {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\ntd,\nth {\n  padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n  *,\n  *:before,\n  *:after {\n    color: #000 !important;\n    text-shadow: none !important;\n    background: transparent !important;\n    -webkit-box-shadow: none !important;\n            box-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  .navbar {\n    display: none;\n  }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important;\n  }\n  .label {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n@font-face {\n  font-family: 'Glyphicons Halflings';\n\n  src: url('../fonts/glyphicons-halflings-regular.eot');\n  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n  content: \"\\002a\";\n}\n.glyphicon-plus:before {\n  content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n  content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n  content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n  content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n  content: \"\\270f\";\n}\n.glyphicon-glass:before {\n  content: \"\\e001\";\n}\n.glyphicon-music:before {\n  content: \"\\e002\";\n}\n.glyphicon-search:before {\n  content: \"\\e003\";\n}\n.glyphicon-heart:before {\n  content: \"\\e005\";\n}\n.glyphicon-star:before {\n  content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n  content: \"\\e007\";\n}\n.glyphicon-user:before {\n  content: \"\\e008\";\n}\n.glyphicon-film:before {\n  content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n  content: \"\\e010\";\n}\n.glyphicon-th:before {\n  content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n  content: \"\\e012\";\n}\n.glyphicon-ok:before {\n  content: \"\\e013\";\n}\n.glyphicon-remove:before {\n  content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n  content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n  content: \"\\e016\";\n}\n.glyphicon-off:before {\n  content: \"\\e017\";\n}\n.glyphicon-signal:before {\n  content: \"\\e018\";\n}\n.glyphicon-cog:before {\n  content: \"\\e019\";\n}\n.glyphicon-trash:before {\n  content: \"\\e020\";\n}\n.glyphicon-home:before {\n  content: \"\\e021\";\n}\n.glyphicon-file:before {\n  content: \"\\e022\";\n}\n.glyphicon-time:before {\n  content: \"\\e023\";\n}\n.glyphicon-road:before {\n  content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n  content: \"\\e025\";\n}\n.glyphicon-download:before {\n  content: \"\\e026\";\n}\n.glyphicon-upload:before {\n  content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n  content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n  content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n  content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n  content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n  content: \"\\e032\";\n}\n.glyphicon-lock:before {\n  content: \"\\e033\";\n}\n.glyphicon-flag:before {\n  content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n  content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n  content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n  content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n  content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n  content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n  content: \"\\e040\";\n}\n.glyphicon-tag:before {\n  content: \"\\e041\";\n}\n.glyphicon-tags:before {\n  content: \"\\e042\";\n}\n.glyphicon-book:before {\n  content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n  content: \"\\e044\";\n}\n.glyphicon-print:before {\n  content: \"\\e045\";\n}\n.glyphicon-camera:before {\n  content: \"\\e046\";\n}\n.glyphicon-font:before {\n  content: \"\\e047\";\n}\n.glyphicon-bold:before {\n  content: \"\\e048\";\n}\n.glyphicon-italic:before {\n  content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n  content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n  content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n  content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n  content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n  content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n  content: \"\\e055\";\n}\n.glyphicon-list:before {\n  content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n  content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n  content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n  content: \"\\e059\";\n}\n.glyphicon-picture:before {\n  content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n  content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n  content: \"\\e063\";\n}\n.glyphicon-tint:before {\n  content: \"\\e064\";\n}\n.glyphicon-edit:before {\n  content: \"\\e065\";\n}\n.glyphicon-share:before {\n  content: \"\\e066\";\n}\n.glyphicon-check:before {\n  content: \"\\e067\";\n}\n.glyphicon-move:before {\n  content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n  content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n  content: \"\\e070\";\n}\n.glyphicon-backward:before {\n  content: \"\\e071\";\n}\n.glyphicon-play:before {\n  content: \"\\e072\";\n}\n.glyphicon-pause:before {\n  content: \"\\e073\";\n}\n.glyphicon-stop:before {\n  content: \"\\e074\";\n}\n.glyphicon-forward:before {\n  content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n  content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n  content: \"\\e077\";\n}\n.glyphicon-eject:before {\n  content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n  content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n  content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n  content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n  content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n  content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n  content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n  content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n  content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n  content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n  content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n  content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n  content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n  content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n  content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n  content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n  content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n  content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n  content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n  content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\";\n}\n.glyphicon-gift:before {\n  content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n  content: \"\\e103\";\n}\n.glyphicon-fire:before {\n  content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n  content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n  content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n  content: \"\\e107\";\n}\n.glyphicon-plane:before {\n  content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n  content: \"\\e109\";\n}\n.glyphicon-random:before {\n  content: \"\\e110\";\n}\n.glyphicon-comment:before {\n  content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n  content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n  content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n  content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n  content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n  content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n  content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n  content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n  content: \"\\e122\";\n}\n.glyphicon-bell:before {\n  content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n  content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n  content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n  content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n  content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n  content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\";\n}\n.glyphicon-globe:before {\n  content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n  content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n  content: \"\\e137\";\n}\n.glyphicon-filter:before {\n  content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n  content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n  content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n  content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n  content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n  content: \"\\e143\";\n}\n.glyphicon-link:before {\n  content: \"\\e144\";\n}\n.glyphicon-phone:before {\n  content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n  content: \"\\e146\";\n}\n.glyphicon-usd:before {\n  content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n  content: \"\\e149\";\n}\n.glyphicon-sort:before {\n  content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n  content: \"\\e157\";\n}\n.glyphicon-expand:before {\n  content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n  content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n  content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n  content: \"\\e161\";\n}\n.glyphicon-flash:before {\n  content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n  content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n  content: \"\\e164\";\n}\n.glyphicon-record:before {\n  content: \"\\e165\";\n}\n.glyphicon-save:before {\n  content: \"\\e166\";\n}\n.glyphicon-open:before {\n  content: \"\\e167\";\n}\n.glyphicon-saved:before {\n  content: \"\\e168\";\n}\n.glyphicon-import:before {\n  content: \"\\e169\";\n}\n.glyphicon-export:before {\n  content: \"\\e170\";\n}\n.glyphicon-send:before {\n  content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n  content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n  content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n  content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n  content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n  content: \"\\e179\";\n}\n.glyphicon-header:before {\n  content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n  content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n  content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n  content: \"\\e183\";\n}\n.glyphicon-tower:before {\n  content: \"\\e184\";\n}\n.glyphicon-stats:before {\n  content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n  content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n  content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n  content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n  content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n  content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\";\n}\n.glyphicon-cd:before {\n  content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n  content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n  content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n  content: \"\\e204\";\n}\n.glyphicon-copy:before {\n  content: \"\\e205\";\n}\n.glyphicon-paste:before {\n  content: \"\\e206\";\n}\n.glyphicon-alert:before {\n  content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n  content: \"\\e210\";\n}\n.glyphicon-king:before {\n  content: \"\\e211\";\n}\n.glyphicon-queen:before {\n  content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n  content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n  content: \"\\e214\";\n}\n.glyphicon-knight:before {\n  content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n  content: \"\\e216\";\n}\n.glyphicon-tent:before {\n  content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n  content: \"\\e218\";\n}\n.glyphicon-bed:before {\n  content: \"\\e219\";\n}\n.glyphicon-apple:before {\n  content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n  content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n  content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n  content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n  content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n  content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n  content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n  content: \"\\e227\";\n}\n.glyphicon-btc:before {\n  content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n  content: \"\\e227\";\n}\n.glyphicon-yen:before {\n  content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n  content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n  content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n  content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n  content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n  content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n  content: \"\\e232\";\n}\n.glyphicon-education:before {\n  content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n  content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n  content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n  content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n  content: \"\\e237\";\n}\n.glyphicon-oil:before {\n  content: \"\\e238\";\n}\n.glyphicon-grain:before {\n  content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n  content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n  content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n  content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n  content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n  content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n  content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n  content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n  content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n  content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n  content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n  content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n  content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n  content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n  content: \"\\e253\";\n}\n.glyphicon-console:before {\n  content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n  content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n  content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n  content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n  content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n  content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n  content: \"\\e260\";\n}\n* {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\nhtml {\n  font-size: 10px;\n\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #333;\n  background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\na {\n  color: #337ab7;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #23527c;\n  text-decoration: underline;\n}\na:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\nfigure {\n  margin: 0;\n}\nimg {\n  vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  max-width: 100%;\n  height: auto;\n}\n.img-rounded {\n  border-radius: 6px;\n}\n.img-thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  height: auto;\n  padding: 4px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: all .2s ease-in-out;\n       -o-transition: all .2s ease-in-out;\n          transition: all .2s ease-in-out;\n}\n.img-circle {\n  border-radius: 50%;\n}\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eee;\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n[role=\"button\"] {\n  cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n  font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n  font-size: 75%;\n}\nh1,\n.h1 {\n  font-size: 36px;\n}\nh2,\n.h2 {\n  font-size: 30px;\n}\nh3,\n.h3 {\n  font-size: 24px;\n}\nh4,\n.h4 {\n  font-size: 18px;\n}\nh5,\n.h5 {\n  font-size: 14px;\n}\nh6,\n.h6 {\n  font-size: 12px;\n}\np {\n  margin: 0 0 10px;\n}\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4;\n}\n@media (min-width: 768px) {\n  .lead {\n    font-size: 21px;\n  }\n}\nsmall,\n.small {\n  font-size: 85%;\n}\nmark,\n.mark {\n  padding: .2em;\n  background-color: #fcf8e3;\n}\n.text-left {\n  text-align: left;\n}\n.text-right {\n  text-align: right;\n}\n.text-center {\n  text-align: center;\n}\n.text-justify {\n  text-align: justify;\n}\n.text-nowrap {\n  white-space: nowrap;\n}\n.text-lowercase {\n  text-transform: lowercase;\n}\n.text-uppercase {\n  text-transform: uppercase;\n}\n.text-capitalize {\n  text-transform: capitalize;\n}\n.text-muted {\n  color: #777;\n}\n.text-primary {\n  color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n  color: #286090;\n}\n.text-success {\n  color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n  color: #2b542c;\n}\n.text-info {\n  color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n  color: #245269;\n}\n.text-warning {\n  color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n  color: #66512c;\n}\n.text-danger {\n  color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n  color: #843534;\n}\n.bg-primary {\n  color: #fff;\n  background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n  background-color: #286090;\n}\n.bg-success {\n  background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n  background-color: #c1e2b3;\n}\n.bg-info {\n  background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n  background-color: #afd9ee;\n}\n.bg-warning {\n  background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n  background-color: #f7ecb5;\n}\n.bg-danger {\n  background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n  background-color: #e4b9b9;\n}\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eee;\n}\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n  margin-bottom: 0;\n}\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n.list-inline {\n  padding-left: 0;\n  margin-left: -5px;\n  list-style: none;\n}\n.list-inline > li {\n  display: inline-block;\n  padding-right: 5px;\n  padding-left: 5px;\n}\ndl {\n  margin-top: 0;\n  margin-bottom: 20px;\n}\ndt,\ndd {\n  line-height: 1.42857143;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0;\n}\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    overflow: hidden;\n    clear: left;\n    text-align: right;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .dl-horizontal dd {\n    margin-left: 180px;\n  }\n}\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n  margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n  display: block;\n  font-size: 80%;\n  line-height: 1.42857143;\n  color: #777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n  content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  text-align: right;\n  border-right: 5px solid #eee;\n  border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n  content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n  content: '\\00A0 \\2014';\n}\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 4px;\n}\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #fff;\n  background-color: #333;\n  border-radius: 3px;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n}\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: bold;\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  color: #333;\n  word-break: break-all;\n  word-wrap: break-word;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n}\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border-radius: 0;\n}\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n.container {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n@media (min-width: 768px) {\n  .container {\n    width: 750px;\n  }\n}\n@media (min-width: 992px) {\n  .container {\n    width: 970px;\n  }\n}\n@media (min-width: 1200px) {\n  .container {\n    width: 1170px;\n  }\n}\n.container-fluid {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n.row {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n  float: left;\n}\n.col-xs-12 {\n  width: 100%;\n}\n.col-xs-11 {\n  width: 91.66666667%;\n}\n.col-xs-10 {\n  width: 83.33333333%;\n}\n.col-xs-9 {\n  width: 75%;\n}\n.col-xs-8 {\n  width: 66.66666667%;\n}\n.col-xs-7 {\n  width: 58.33333333%;\n}\n.col-xs-6 {\n  width: 50%;\n}\n.col-xs-5 {\n  width: 41.66666667%;\n}\n.col-xs-4 {\n  width: 33.33333333%;\n}\n.col-xs-3 {\n  width: 25%;\n}\n.col-xs-2 {\n  width: 16.66666667%;\n}\n.col-xs-1 {\n  width: 8.33333333%;\n}\n.col-xs-pull-12 {\n  right: 100%;\n}\n.col-xs-pull-11 {\n  right: 91.66666667%;\n}\n.col-xs-pull-10 {\n  right: 83.33333333%;\n}\n.col-xs-pull-9 {\n  right: 75%;\n}\n.col-xs-pull-8 {\n  right: 66.66666667%;\n}\n.col-xs-pull-7 {\n  right: 58.33333333%;\n}\n.col-xs-pull-6 {\n  right: 50%;\n}\n.col-xs-pull-5 {\n  right: 41.66666667%;\n}\n.col-xs-pull-4 {\n  right: 33.33333333%;\n}\n.col-xs-pull-3 {\n  right: 25%;\n}\n.col-xs-pull-2 {\n  right: 16.66666667%;\n}\n.col-xs-pull-1 {\n  right: 8.33333333%;\n}\n.col-xs-pull-0 {\n  right: auto;\n}\n.col-xs-push-12 {\n  left: 100%;\n}\n.col-xs-push-11 {\n  left: 91.66666667%;\n}\n.col-xs-push-10 {\n  left: 83.33333333%;\n}\n.col-xs-push-9 {\n  left: 75%;\n}\n.col-xs-push-8 {\n  left: 66.66666667%;\n}\n.col-xs-push-7 {\n  left: 58.33333333%;\n}\n.col-xs-push-6 {\n  left: 50%;\n}\n.col-xs-push-5 {\n  left: 41.66666667%;\n}\n.col-xs-push-4 {\n  left: 33.33333333%;\n}\n.col-xs-push-3 {\n  left: 25%;\n}\n.col-xs-push-2 {\n  left: 16.66666667%;\n}\n.col-xs-push-1 {\n  left: 8.33333333%;\n}\n.col-xs-push-0 {\n  left: auto;\n}\n.col-xs-offset-12 {\n  margin-left: 100%;\n}\n.col-xs-offset-11 {\n  margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n  margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n  margin-left: 75%;\n}\n.col-xs-offset-8 {\n  margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n  margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n  margin-left: 50%;\n}\n.col-xs-offset-5 {\n  margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n  margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n  margin-left: 25%;\n}\n.col-xs-offset-2 {\n  margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n  margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n  margin-left: 0;\n}\n@media (min-width: 768px) {\n  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n    float: left;\n  }\n  .col-sm-12 {\n    width: 100%;\n  }\n  .col-sm-11 {\n    width: 91.66666667%;\n  }\n  .col-sm-10 {\n    width: 83.33333333%;\n  }\n  .col-sm-9 {\n    width: 75%;\n  }\n  .col-sm-8 {\n    width: 66.66666667%;\n  }\n  .col-sm-7 {\n    width: 58.33333333%;\n  }\n  .col-sm-6 {\n    width: 50%;\n  }\n  .col-sm-5 {\n    width: 41.66666667%;\n  }\n  .col-sm-4 {\n    width: 33.33333333%;\n  }\n  .col-sm-3 {\n    width: 25%;\n  }\n  .col-sm-2 {\n    width: 16.66666667%;\n  }\n  .col-sm-1 {\n    width: 8.33333333%;\n  }\n  .col-sm-pull-12 {\n    right: 100%;\n  }\n  .col-sm-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-sm-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-sm-pull-9 {\n    right: 75%;\n  }\n  .col-sm-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-sm-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-sm-pull-6 {\n    right: 50%;\n  }\n  .col-sm-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-sm-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-sm-pull-3 {\n    right: 25%;\n  }\n  .col-sm-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-sm-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-sm-pull-0 {\n    right: auto;\n  }\n  .col-sm-push-12 {\n    left: 100%;\n  }\n  .col-sm-push-11 {\n    left: 91.66666667%;\n  }\n  .col-sm-push-10 {\n    left: 83.33333333%;\n  }\n  .col-sm-push-9 {\n    left: 75%;\n  }\n  .col-sm-push-8 {\n    left: 66.66666667%;\n  }\n  .col-sm-push-7 {\n    left: 58.33333333%;\n  }\n  .col-sm-push-6 {\n    left: 50%;\n  }\n  .col-sm-push-5 {\n    left: 41.66666667%;\n  }\n  .col-sm-push-4 {\n    left: 33.33333333%;\n  }\n  .col-sm-push-3 {\n    left: 25%;\n  }\n  .col-sm-push-2 {\n    left: 16.66666667%;\n  }\n  .col-sm-push-1 {\n    left: 8.33333333%;\n  }\n  .col-sm-push-0 {\n    left: auto;\n  }\n  .col-sm-offset-12 {\n    margin-left: 100%;\n  }\n  .col-sm-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-sm-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-sm-offset-9 {\n    margin-left: 75%;\n  }\n  .col-sm-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-sm-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-sm-offset-6 {\n    margin-left: 50%;\n  }\n  .col-sm-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-sm-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-sm-offset-3 {\n    margin-left: 25%;\n  }\n  .col-sm-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-sm-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-sm-offset-0 {\n    margin-left: 0;\n  }\n}\n@media (min-width: 992px) {\n  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n    float: left;\n  }\n  .col-md-12 {\n    width: 100%;\n  }\n  .col-md-11 {\n    width: 91.66666667%;\n  }\n  .col-md-10 {\n    width: 83.33333333%;\n  }\n  .col-md-9 {\n    width: 75%;\n  }\n  .col-md-8 {\n    width: 66.66666667%;\n  }\n  .col-md-7 {\n    width: 58.33333333%;\n  }\n  .col-md-6 {\n    width: 50%;\n  }\n  .col-md-5 {\n    width: 41.66666667%;\n  }\n  .col-md-4 {\n    width: 33.33333333%;\n  }\n  .col-md-3 {\n    width: 25%;\n  }\n  .col-md-2 {\n    width: 16.66666667%;\n  }\n  .col-md-1 {\n    width: 8.33333333%;\n  }\n  .col-md-pull-12 {\n    right: 100%;\n  }\n  .col-md-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-md-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-md-pull-9 {\n    right: 75%;\n  }\n  .col-md-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-md-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-md-pull-6 {\n    right: 50%;\n  }\n  .col-md-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-md-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-md-pull-3 {\n    right: 25%;\n  }\n  .col-md-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-md-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-md-pull-0 {\n    right: auto;\n  }\n  .col-md-push-12 {\n    left: 100%;\n  }\n  .col-md-push-11 {\n    left: 91.66666667%;\n  }\n  .col-md-push-10 {\n    left: 83.33333333%;\n  }\n  .col-md-push-9 {\n    left: 75%;\n  }\n  .col-md-push-8 {\n    left: 66.66666667%;\n  }\n  .col-md-push-7 {\n    left: 58.33333333%;\n  }\n  .col-md-push-6 {\n    left: 50%;\n  }\n  .col-md-push-5 {\n    left: 41.66666667%;\n  }\n  .col-md-push-4 {\n    left: 33.33333333%;\n  }\n  .col-md-push-3 {\n    left: 25%;\n  }\n  .col-md-push-2 {\n    left: 16.66666667%;\n  }\n  .col-md-push-1 {\n    left: 8.33333333%;\n  }\n  .col-md-push-0 {\n    left: auto;\n  }\n  .col-md-offset-12 {\n    margin-left: 100%;\n  }\n  .col-md-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-md-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-md-offset-9 {\n    margin-left: 75%;\n  }\n  .col-md-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-md-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-md-offset-6 {\n    margin-left: 50%;\n  }\n  .col-md-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-md-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-md-offset-3 {\n    margin-left: 25%;\n  }\n  .col-md-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-md-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-md-offset-0 {\n    margin-left: 0;\n  }\n}\n@media (min-width: 1200px) {\n  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n    float: left;\n  }\n  .col-lg-12 {\n    width: 100%;\n  }\n  .col-lg-11 {\n    width: 91.66666667%;\n  }\n  .col-lg-10 {\n    width: 83.33333333%;\n  }\n  .col-lg-9 {\n    width: 75%;\n  }\n  .col-lg-8 {\n    width: 66.66666667%;\n  }\n  .col-lg-7 {\n    width: 58.33333333%;\n  }\n  .col-lg-6 {\n    width: 50%;\n  }\n  .col-lg-5 {\n    width: 41.66666667%;\n  }\n  .col-lg-4 {\n    width: 33.33333333%;\n  }\n  .col-lg-3 {\n    width: 25%;\n  }\n  .col-lg-2 {\n    width: 16.66666667%;\n  }\n  .col-lg-1 {\n    width: 8.33333333%;\n  }\n  .col-lg-pull-12 {\n    right: 100%;\n  }\n  .col-lg-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-lg-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-lg-pull-9 {\n    right: 75%;\n  }\n  .col-lg-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-lg-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-lg-pull-6 {\n    right: 50%;\n  }\n  .col-lg-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-lg-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-lg-pull-3 {\n    right: 25%;\n  }\n  .col-lg-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-lg-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-lg-pull-0 {\n    right: auto;\n  }\n  .col-lg-push-12 {\n    left: 100%;\n  }\n  .col-lg-push-11 {\n    left: 91.66666667%;\n  }\n  .col-lg-push-10 {\n    left: 83.33333333%;\n  }\n  .col-lg-push-9 {\n    left: 75%;\n  }\n  .col-lg-push-8 {\n    left: 66.66666667%;\n  }\n  .col-lg-push-7 {\n    left: 58.33333333%;\n  }\n  .col-lg-push-6 {\n    left: 50%;\n  }\n  .col-lg-push-5 {\n    left: 41.66666667%;\n  }\n  .col-lg-push-4 {\n    left: 33.33333333%;\n  }\n  .col-lg-push-3 {\n    left: 25%;\n  }\n  .col-lg-push-2 {\n    left: 16.66666667%;\n  }\n  .col-lg-push-1 {\n    left: 8.33333333%;\n  }\n  .col-lg-push-0 {\n    left: auto;\n  }\n  .col-lg-offset-12 {\n    margin-left: 100%;\n  }\n  .col-lg-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-lg-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-lg-offset-9 {\n    margin-left: 75%;\n  }\n  .col-lg-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-lg-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-lg-offset-6 {\n    margin-left: 50%;\n  }\n  .col-lg-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-lg-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-lg-offset-3 {\n    margin-left: 25%;\n  }\n  .col-lg-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-lg-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-lg-offset-0 {\n    margin-left: 0;\n  }\n}\ntable {\n  background-color: transparent;\n}\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n  padding: 8px;\n  line-height: 1.42857143;\n  vertical-align: top;\n  border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n  border-top: 0;\n}\n.table > tbody + tbody {\n  border-top: 2px solid #ddd;\n}\n.table .table {\n  background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n  padding: 5px;\n}\n.table-bordered {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n  border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n  background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n  background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n  position: static;\n  display: table-column;\n  float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  display: table-cell;\n  float: none;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n  background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n  background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n  background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n  background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n  background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #ebcccc;\n}\n.table-responsive {\n  min-height: .01%;\n  overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 15px;\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid #ddd;\n  }\n  .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  .table-responsive > .table > thead > tr > th,\n  .table-responsive > .table > tbody > tr > th,\n  .table-responsive > .table > tfoot > tr > th,\n  .table-responsive > .table > thead > tr > td,\n  .table-responsive > .table > tbody > tr > td,\n  .table-responsive > .table > tfoot > tr > td {\n    white-space: nowrap;\n  }\n  .table-responsive > .table-bordered {\n    border: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0;\n  }\n  .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n  .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n    border-bottom: 0;\n  }\n}\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal;\n}\ninput[type=\"file\"] {\n  display: block;\n}\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\nselect[multiple],\nselect[size] {\n  height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555;\n}\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);\n}\n.form-control::-moz-placeholder {\n  color: #999;\n  opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n  color: #999;\n}\n.form-control::-webkit-input-placeholder {\n  color: #999;\n}\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  background-color: #eee;\n  opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n}\ntextarea.form-control {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"].form-control,\n  input[type=\"time\"].form-control,\n  input[type=\"datetime-local\"].form-control,\n  input[type=\"month\"].form-control {\n    line-height: 34px;\n  }\n  input[type=\"date\"].input-sm,\n  input[type=\"time\"].input-sm,\n  input[type=\"datetime-local\"].input-sm,\n  input[type=\"month\"].input-sm,\n  .input-group-sm input[type=\"date\"],\n  .input-group-sm input[type=\"time\"],\n  .input-group-sm input[type=\"datetime-local\"],\n  .input-group-sm input[type=\"month\"] {\n    line-height: 30px;\n  }\n  input[type=\"date\"].input-lg,\n  input[type=\"time\"].input-lg,\n  input[type=\"datetime-local\"].input-lg,\n  input[type=\"month\"].input-lg,\n  .input-group-lg input[type=\"date\"],\n  .input-group-lg input[type=\"time\"],\n  .input-group-lg input[type=\"datetime-local\"],\n  .input-group-lg input[type=\"month\"] {\n    line-height: 46px;\n  }\n}\n.form-group {\n  margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n  min-height: 20px;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-top: 4px \\9;\n  margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  vertical-align: middle;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n  cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n  cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n  cursor: not-allowed;\n}\n.form-control-static {\n  min-height: 34px;\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n  padding-right: 0;\n  padding-left: 0;\n}\n.input-sm {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-sm {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n  height: auto;\n}\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.form-group-sm select.form-control {\n  height: 30px;\n  line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n  height: auto;\n}\n.form-group-sm .form-control-static {\n  height: 30px;\n  min-height: 32px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.input-lg {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-lg {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n  height: auto;\n}\n.form-group-lg .form-control {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.form-group-lg select.form-control {\n  height: 46px;\n  line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n  height: auto;\n}\n.form-group-lg .form-control-static {\n  height: 46px;\n  min-height: 38px;\n  padding: 11px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.has-feedback {\n  position: relative;\n}\n.has-feedback .form-control {\n  padding-right: 42.5px;\n}\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #3c763d;\n}\n.has-success .form-control {\n  border-color: #3c763d;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-success .form-control:focus {\n  border-color: #2b542c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n  color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #8a6d3b;\n}\n.has-warning .form-control {\n  border-color: #8a6d3b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-warning .form-control:focus {\n  border-color: #66512c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n  color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #a94442;\n}\n.has-error .form-control {\n  border-color: #a94442;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);\n}\n.has-error .form-control:focus {\n  border-color: #843534;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #a94442;\n}\n.has-error .form-control-feedback {\n  color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n  top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0;\n}\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373;\n}\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-static {\n    display: inline-block;\n  }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .form-inline .input-group .input-group-addon,\n  .form-inline .input-group .input-group-btn,\n  .form-inline .input-group .form-control {\n    width: auto;\n  }\n  .form-inline .input-group > .form-control {\n    width: 100%;\n  }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio label,\n  .form-inline .checkbox label {\n    padding-left: 0;\n  }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  padding-top: 7px;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 27px;\n}\n.form-horizontal .form-group {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    padding-top: 7px;\n    margin-bottom: 0;\n    text-align: right;\n  }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 11px;\n    font-size: 18px;\n  }\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px;\n  }\n}\n.btn {\n  display: inline-block;\n  padding: 6px 12px;\n  margin-bottom: 0;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  -ms-touch-action: manipulation;\n      touch-action: manipulation;\n  cursor: pointer;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n  color: #333;\n  text-decoration: none;\n}\n.btn:active,\n.btn.active {\n  background-image: none;\n  outline: 0;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n  cursor: not-allowed;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n          box-shadow: none;\n  opacity: .65;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none;\n}\n.btn-default {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\n.btn-default:hover {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n  color: #333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default .badge {\n  color: #fff;\n  background-color: #333;\n}\n.btn-primary {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n  color: #fff;\n  background-color: #286090;\n  border-color: #122b40;\n}\n.btn-primary:hover {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n  color: #fff;\n  background-color: #204d74;\n  border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.btn-success {\n  color: #fff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #255625;\n}\n.btn-success:hover {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n  color: #fff;\n  background-color: #398439;\n  border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success .badge {\n  color: #5cb85c;\n  background-color: #fff;\n}\n.btn-info {\n  color: #fff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #1b6d85;\n}\n.btn-info:hover {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n  color: #fff;\n  background-color: #269abc;\n  border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info .badge {\n  color: #5bc0de;\n  background-color: #fff;\n}\n.btn-warning {\n  color: #fff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #985f0d;\n}\n.btn-warning:hover {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n  color: #fff;\n  background-color: #d58512;\n  border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning .badge {\n  color: #f0ad4e;\n  background-color: #fff;\n}\n.btn-danger {\n  color: #fff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #761c19;\n}\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n  color: #fff;\n  background-color: #ac2925;\n  border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger .badge {\n  color: #d9534f;\n  background-color: #fff;\n}\n.btn-link {\n  font-weight: normal;\n  color: #337ab7;\n  border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: #23527c;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n  color: #777;\n  text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-block {\n  display: block;\n  width: 100%;\n}\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity .15s linear;\n       -o-transition: opacity .15s linear;\n          transition: opacity .15s linear;\n}\n.fade.in {\n  opacity: 1;\n}\n.collapse {\n  display: none;\n}\n.collapse.in {\n  display: block;\n}\ntr.collapse.in {\n  display: table-row;\n}\ntbody.collapse.in {\n  display: table-row-group;\n}\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-timing-function: ease;\n       -o-transition-timing-function: ease;\n          transition-timing-function: ease;\n  -webkit-transition-duration: .35s;\n       -o-transition-duration: .35s;\n          transition-duration: .35s;\n  -webkit-transition-property: height, visibility;\n       -o-transition-property: height, visibility;\n          transition-property: height, visibility;\n}\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid \\9;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle:focus {\n  outline: 0;\n}\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  font-size: 14px;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  -webkit-background-clip: padding-box;\n          background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, .15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\n}\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu .divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.42857143;\n  color: #333;\n  white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  color: #262626;\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #fff;\n  text-decoration: none;\n  background-color: #337ab7;\n  outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  cursor: not-allowed;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n  display: block;\n}\n.open > a {\n  outline: 0;\n}\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857143;\n  color: #777;\n  white-space: nowrap;\n}\n.dropdown-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 990;\n}\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  content: \"\";\n  border-top: 0;\n  border-bottom: 4px dashed;\n  border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    right: 0;\n    left: auto;\n  }\n  .navbar-right .dropdown-menu-left {\n    right: auto;\n    left: 0;\n  }\n}\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px;\n}\n.btn-toolbar {\n  margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n  float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n  margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n  padding-right: 8px;\n  padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-right: 12px;\n  padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.btn .caret {\n  margin-left: 0;\n}\n.btn-lg .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n  border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n  float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-left-radius: 4px;\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n  display: table-cell;\n  float: none;\n  width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n  width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n  left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n  float: none;\n  padding-right: 0;\n  padding-left: 0;\n}\n.input-group .form-control {\n  position: relative;\n  z-index: 2;\n  float: left;\n  width: 100%;\n  margin-bottom: 0;\n}\n.input-group .form-control:focus {\n  z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555;\n  text-align: center;\n  background-color: #eee;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n}\n.input-group-addon.input-sm {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 3px;\n}\n.input-group-addon.input-lg {\n  padding: 10px 16px;\n  font-size: 18px;\n  border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n.input-group-btn > .btn {\n  position: relative;\n}\n.input-group-btn > .btn + .btn {\n  margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n  z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n  margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n  z-index: 2;\n  margin-left: -1px;\n}\n.nav {\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n.nav > li {\n  position: relative;\n  display: block;\n}\n.nav > li > a {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eee;\n}\n.nav > li.disabled > a {\n  color: #777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n  color: #777;\n  text-decoration: none;\n  cursor: not-allowed;\n  background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n  background-color: #eee;\n  border-color: #337ab7;\n}\n.nav .nav-divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.nav > li > a > img {\n  max-width: none;\n}\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n  float: left;\n  margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n  margin-right: 2px;\n  line-height: 1.42857143;\n  border: 1px solid transparent;\n  border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n  border-color: #eee #eee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n  color: #555;\n  cursor: default;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n  width: 100%;\n  border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n  float: none;\n}\n.nav-tabs.nav-justified > li > a {\n  margin-bottom: 5px;\n  text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-tabs.nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs.nav-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs.nav-justified > .active > a,\n  .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs.nav-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.nav-pills > li {\n  float: left;\n}\n.nav-pills > li > a {\n  border-radius: 4px;\n}\n.nav-pills > li + li {\n  margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n  color: #fff;\n  background-color: #337ab7;\n}\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li + li {\n  margin-top: 2px;\n  margin-left: 0;\n}\n.nav-justified {\n  width: 100%;\n}\n.nav-justified > li {\n  float: none;\n}\n.nav-justified > li > a {\n  margin-bottom: 5px;\n  text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs-justified {\n  border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.tab-content > .tab-pane {\n  display: none;\n}\n.tab-content > .active {\n  display: block;\n}\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n  .navbar {\n    border-radius: 4px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left;\n  }\n}\n.navbar-collapse {\n  padding-right: 15px;\n  padding-left: 15px;\n  overflow-x: visible;\n  -webkit-overflow-scrolling: touch;\n  border-top: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n}\n.navbar-collapse.in {\n  overflow-y: auto;\n}\n@media (min-width: 768px) {\n  .navbar-collapse {\n    width: auto;\n    border-top: 0;\n    -webkit-box-shadow: none;\n            box-shadow: none;\n  }\n  .navbar-collapse.collapse {\n    display: block !important;\n    height: auto !important;\n    padding-bottom: 0;\n    overflow: visible !important;\n  }\n  .navbar-collapse.in {\n    overflow-y: visible;\n  }\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-static-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    max-height: 200px;\n  }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n@media (min-width: 768px) {\n  .container > .navbar-header,\n  .container-fluid > .navbar-header,\n  .container > .navbar-collapse,\n  .container-fluid > .navbar-collapse {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n.navbar-static-top {\n  z-index: 1000;\n  border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n  .navbar-static-top {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n@media (min-width: 768px) {\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0;\n}\n.navbar-brand {\n  float: left;\n  height: 50px;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n  text-decoration: none;\n}\n.navbar-brand > img {\n  display: block;\n}\n@media (min-width: 768px) {\n  .navbar > .container .navbar-brand,\n  .navbar > .container-fluid .navbar-brand {\n    margin-left: -15px;\n  }\n}\n.navbar-toggle {\n  position: relative;\n  float: right;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-right: 15px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.navbar-toggle:focus {\n  outline: 0;\n}\n.navbar-toggle .icon-bar {\n  display: block;\n  width: 22px;\n  height: 2px;\n  border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n  margin-top: 4px;\n}\n@media (min-width: 768px) {\n  .navbar-toggle {\n    display: none;\n  }\n}\n.navbar-nav {\n  margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  line-height: 20px;\n}\n@media (max-width: 767px) {\n  .navbar-nav .open .dropdown-menu {\n    position: static;\n    float: none;\n    width: auto;\n    margin-top: 0;\n    background-color: transparent;\n    border: 0;\n    -webkit-box-shadow: none;\n            box-shadow: none;\n  }\n  .navbar-nav .open .dropdown-menu > li > a,\n  .navbar-nav .open .dropdown-menu .dropdown-header {\n    padding: 5px 15px 5px 25px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a {\n    line-height: 20px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-nav .open .dropdown-menu > li > a:focus {\n    background-image: none;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-nav {\n    float: left;\n    margin: 0;\n  }\n  .navbar-nav > li {\n    float: left;\n  }\n  .navbar-nav > li > a {\n    padding-top: 15px;\n    padding-bottom: 15px;\n  }\n}\n.navbar-form {\n  padding: 10px 15px;\n  margin-top: 8px;\n  margin-right: -15px;\n  margin-bottom: 8px;\n  margin-left: -15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n}\n@media (min-width: 768px) {\n  .navbar-form .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control-static {\n    display: inline-block;\n  }\n  .navbar-form .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .navbar-form .input-group .input-group-addon,\n  .navbar-form .input-group .input-group-btn,\n  .navbar-form .input-group .form-control {\n    width: auto;\n  }\n  .navbar-form .input-group > .form-control {\n    width: 100%;\n  }\n  .navbar-form .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio,\n  .navbar-form .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio label,\n  .navbar-form .checkbox label {\n    padding-left: 0;\n  }\n  .navbar-form .radio input[type=\"radio\"],\n  .navbar-form .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .navbar-form .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n@media (max-width: 767px) {\n  .navbar-form .form-group {\n    margin-bottom: 5px;\n  }\n  .navbar-form .form-group:last-child {\n    margin-bottom: 0;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-form {\n    width: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    margin-right: 0;\n    margin-left: 0;\n    border: 0;\n    -webkit-box-shadow: none;\n            box-shadow: none;\n  }\n}\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  border-top-left-radius: 4px;\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n  margin-top: 14px;\n  margin-bottom: 14px;\n}\n.navbar-text {\n  margin-top: 15px;\n  margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n  .navbar-text {\n    float: left;\n    margin-right: 15px;\n    margin-left: 15px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n    margin-right: -15px;\n  }\n  .navbar-right ~ .navbar-right {\n    margin-right: 0;\n  }\n}\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n  color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n  color: #5e5e5e;\n  background-color: transparent;\n}\n.navbar-default .navbar-text {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n  color: #333;\n  background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n  color: #555;\n  background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n  color: #ccc;\n  background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n  border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n  background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n  background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n  color: #555;\n  background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n    color: #777;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #333;\n    background-color: transparent;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #555;\n    background-color: #e7e7e7;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #ccc;\n    background-color: transparent;\n  }\n}\n.navbar-default .navbar-link {\n  color: #777;\n}\n.navbar-default .navbar-link:hover {\n  color: #333;\n}\n.navbar-default .btn-link {\n  color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n  color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n  color: #ccc;\n}\n.navbar-inverse {\n  background-color: #222;\n  border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n  color: #fff;\n  background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n  color: #444;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n  border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n  background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n  background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n  border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n  color: #fff;\n  background-color: #080808;\n}\n@media (max-width: 767px) {\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n    border-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n    color: #9d9d9d;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #fff;\n    background-color: transparent;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #fff;\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #444;\n    background-color: transparent;\n  }\n}\n.navbar-inverse .navbar-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n  color: #fff;\n}\n.navbar-inverse .btn-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n  color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n  color: #444;\n}\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n}\n.breadcrumb > li {\n  display: inline-block;\n}\n.breadcrumb > li + li:before {\n  padding: 0 5px;\n  color: #ccc;\n  content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n  color: #777;\n}\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px;\n}\n.pagination > li {\n  display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n  position: relative;\n  float: left;\n  padding: 6px 12px;\n  margin-left: -1px;\n  line-height: 1.42857143;\n  color: #337ab7;\n  text-decoration: none;\n  background-color: #fff;\n  border: 1px solid #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n  margin-left: 0;\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n  z-index: 2;\n  color: #23527c;\n  background-color: #eee;\n  border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n  z-index: 3;\n  color: #fff;\n  cursor: default;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n  color: #777;\n  cursor: not-allowed;\n  background-color: #fff;\n  border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-top-left-radius: 6px;\n  border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-top-right-radius: 6px;\n  border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-top-left-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n}\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  text-align: center;\n  list-style: none;\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #eee;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #777;\n  cursor: not-allowed;\n  background-color: #fff;\n}\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.label:empty {\n  display: none;\n}\n.btn .label {\n  position: relative;\n  top: -1px;\n}\n.label-default {\n  background-color: #777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n  background-color: #5e5e5e;\n}\n.label-primary {\n  background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n  background-color: #286090;\n}\n.label-success {\n  background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n  background-color: #449d44;\n}\n.label-info {\n  background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n  background-color: #31b0d5;\n}\n.label-warning {\n  background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n  background-color: #ec971f;\n}\n.label-danger {\n  background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n  background-color: #c9302c;\n}\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  background-color: #777;\n  border-radius: 10px;\n}\n.badge:empty {\n  display: none;\n}\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n  top: 0;\n  padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.list-group-item > .badge {\n  float: right;\n}\n.list-group-item > .badge + .badge {\n  margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n.jumbotron {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n  color: inherit;\n}\n.jumbotron p {\n  margin-bottom: 15px;\n  font-size: 21px;\n  font-weight: 200;\n}\n.jumbotron > hr {\n  border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n  padding-right: 15px;\n  padding-left: 15px;\n  border-radius: 6px;\n}\n.jumbotron .container {\n  max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n  .jumbotron {\n    padding-top: 48px;\n    padding-bottom: 48px;\n  }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    padding-right: 60px;\n    padding-left: 60px;\n  }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    font-size: 63px;\n  }\n}\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: border .2s ease-in-out;\n       -o-transition: border .2s ease-in-out;\n          transition: border .2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n  margin-right: auto;\n  margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: #333;\n}\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.alert h4 {\n  margin-top: 0;\n  color: inherit;\n}\n.alert .alert-link {\n  font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n  margin-bottom: 0;\n}\n.alert > p + p {\n  margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  color: inherit;\n}\n.alert-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.alert-success hr {\n  border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n  color: #2b542c;\n}\n.alert-info {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.alert-info hr {\n  border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n  color: #245269;\n}\n.alert-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.alert-warning hr {\n  border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n  color: #66512c;\n}\n.alert-danger {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.alert-danger hr {\n  border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n  color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@-o-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n.progress {\n  height: 20px;\n  margin-bottom: 20px;\n  overflow: hidden;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n}\n.progress-bar {\n  float: left;\n  width: 0;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #fff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);\n  -webkit-transition: width .6s ease;\n       -o-transition: width .6s ease;\n          transition: width .6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  -webkit-background-size: 40px 40px;\n          background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n       -o-animation: progress-bar-stripes 2s linear infinite;\n          animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n  background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n  background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n  background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n  background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);\n}\n.media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n.media-body {\n  width: 10000px;\n}\n.media-object {\n  display: block;\n}\n.media-object.img-thumbnail {\n  max-width: none;\n}\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n.media-middle {\n  vertical-align: middle;\n}\n.media-bottom {\n  vertical-align: bottom;\n}\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n.list-group {\n  padding-left: 0;\n  margin-bottom: 20px;\n}\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n  border-top-left-radius: 4px;\n  border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n  color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n  color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n  color: #555;\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n  color: #777;\n  cursor: not-allowed;\n  background-color: #eee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n  color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n  color: #777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  z-index: 2;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n  color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n  color: #c7ddef;\n}\n.list-group-item-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n  color: #3c763d;\n  background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n  color: #fff;\n  background-color: #3c763d;\n  border-color: #3c763d;\n}\n.list-group-item-info {\n  color: #31708f;\n  background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n  color: #31708f;\n  background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n  color: #fff;\n  background-color: #31708f;\n  border-color: #31708f;\n}\n.list-group-item-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n  color: #8a6d3b;\n  background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n  color: #fff;\n  background-color: #8a6d3b;\n  border-color: #8a6d3b;\n}\n.list-group-item-danger {\n  color: #a94442;\n  background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n  color: #a94442;\n  background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n  color: #fff;\n  background-color: #a94442;\n  border-color: #a94442;\n}\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n.panel {\n  margin-bottom: 20px;\n  background-color: #fff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);\n}\n.panel-body {\n  padding: 15px;\n}\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n  color: inherit;\n}\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n  color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n  color: inherit;\n}\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n  border-width: 1px 0;\n  border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n  border-top: 0;\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n  border-bottom: 0;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0;\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n  padding-right: 15px;\n  padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n  border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n  border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n  border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n  border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n  border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n  border-bottom: 0;\n}\n.panel > .table-responsive {\n  margin-bottom: 0;\n  border: 0;\n}\n.panel-group {\n  margin-bottom: 20px;\n}\n.panel-group .panel {\n  margin-bottom: 0;\n  border-radius: 4px;\n}\n.panel-group .panel + .panel {\n  margin-top: 5px;\n}\n.panel-group .panel-heading {\n  border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n  border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n  border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n  border-bottom: 1px solid #ddd;\n}\n.panel-default {\n  border-color: #ddd;\n}\n.panel-default > .panel-heading {\n  color: #333;\n  background-color: #f5f5f5;\n  border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n  color: #f5f5f5;\n  background-color: #333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ddd;\n}\n.panel-primary {\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #337ab7;\n}\n.panel-success {\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n  color: #dff0d8;\n  background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #d6e9c6;\n}\n.panel-info {\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n  color: #d9edf7;\n  background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #bce8f1;\n}\n.panel-warning {\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n  color: #fcf8e3;\n  background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #faebcc;\n}\n.panel-danger {\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n  color: #f2dede;\n  background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);\n}\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, .15);\n}\n.well-lg {\n  padding: 24px;\n  border-radius: 6px;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: 3px;\n}\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  filter: alpha(opacity=20);\n  opacity: .2;\n}\n.close:hover,\n.close:focus {\n  color: #000;\n  text-decoration: none;\n  cursor: pointer;\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\nbutton.close {\n  -webkit-appearance: none;\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n}\n.modal-open {\n  overflow: hidden;\n}\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  overflow: hidden;\n  -webkit-overflow-scrolling: touch;\n  outline: 0;\n}\n.modal.fade .modal-dialog {\n  -webkit-transition: -webkit-transform .3s ease-out;\n       -o-transition:      -o-transform .3s ease-out;\n          transition:         transform .3s ease-out;\n  -webkit-transform: translate(0, -25%);\n      -ms-transform: translate(0, -25%);\n       -o-transform: translate(0, -25%);\n          transform: translate(0, -25%);\n}\n.modal.in .modal-dialog {\n  -webkit-transform: translate(0, 0);\n      -ms-transform: translate(0, 0);\n       -o-transform: translate(0, 0);\n          transform: translate(0, 0);\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n.modal-content {\n  position: relative;\n  background-color: #fff;\n  -webkit-background-clip: padding-box;\n          background-clip: padding-box;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, .2);\n  border-radius: 6px;\n  outline: 0;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);\n}\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n.modal-backdrop.fade {\n  filter: alpha(opacity=0);\n  opacity: 0;\n}\n.modal-backdrop.in {\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n  margin-top: -2px;\n}\n.modal-title {\n  margin: 0;\n  line-height: 1.42857143;\n}\n.modal-body {\n  position: relative;\n  padding: 15px;\n}\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n  margin-bottom: 0;\n  margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto;\n  }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);\n  }\n  .modal-sm {\n    width: 300px;\n  }\n}\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px;\n  }\n}\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 12px;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n  filter: alpha(opacity=0);\n  opacity: 0;\n\n  line-break: auto;\n}\n.tooltip.in {\n  filter: alpha(opacity=90);\n  opacity: .9;\n}\n.tooltip.top {\n  padding: 5px 0;\n  margin-top: -3px;\n}\n.tooltip.right {\n  padding: 0 5px;\n  margin-left: 3px;\n}\n.tooltip.bottom {\n  padding: 5px 0;\n  margin-top: 3px;\n}\n.tooltip.left {\n  padding: 0 5px;\n  margin-left: -3px;\n}\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 4px;\n}\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n  right: 5px;\n  bottom: 0;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0;\n  border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px;\n  border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: normal;\n  background-color: #fff;\n  -webkit-background-clip: padding-box;\n          background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, .2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n          box-shadow: 0 5px 10px rgba(0, 0, 0, .2);\n\n  line-break: auto;\n}\n.popover.top {\n  margin-top: -10px;\n}\n.popover.right {\n  margin-left: 10px;\n}\n.popover.bottom {\n  margin-top: 10px;\n}\n.popover.left {\n  margin-left: -10px;\n}\n.popover-title {\n  padding: 8px 14px;\n  margin: 0;\n  font-size: 14px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0;\n}\n.popover-content {\n  padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover > .arrow {\n  border-width: 11px;\n}\n.popover > .arrow:after {\n  content: \"\";\n  border-width: 10px;\n}\n.popover.top > .arrow {\n  bottom: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-top-color: #999;\n  border-top-color: rgba(0, 0, 0, .25);\n  border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n  bottom: 1px;\n  margin-left: -10px;\n  content: \" \";\n  border-top-color: #fff;\n  border-bottom-width: 0;\n}\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-right-color: #999;\n  border-right-color: rgba(0, 0, 0, .25);\n  border-left-width: 0;\n}\n.popover.right > .arrow:after {\n  bottom: -10px;\n  left: 1px;\n  content: \" \";\n  border-right-color: #fff;\n  border-left-width: 0;\n}\n.popover.bottom > .arrow {\n  top: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999;\n  border-bottom-color: rgba(0, 0, 0, .25);\n}\n.popover.bottom > .arrow:after {\n  top: 1px;\n  margin-left: -10px;\n  content: \" \";\n  border-top-width: 0;\n  border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-right-width: 0;\n  border-left-color: #999;\n  border-left-color: rgba(0, 0, 0, .25);\n}\n.popover.left > .arrow:after {\n  right: 1px;\n  bottom: -10px;\n  content: \" \";\n  border-right-width: 0;\n  border-left-color: #fff;\n}\n.carousel {\n  position: relative;\n}\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n.carousel-inner > .item {\n  position: relative;\n  display: none;\n  -webkit-transition: .6s ease-in-out left;\n       -o-transition: .6s ease-in-out left;\n          transition: .6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n  .carousel-inner > .item {\n    -webkit-transition: -webkit-transform .6s ease-in-out;\n         -o-transition:      -o-transform .6s ease-in-out;\n            transition:         transform .6s ease-in-out;\n\n    -webkit-backface-visibility: hidden;\n            backface-visibility: hidden;\n    -webkit-perspective: 1000px;\n            perspective: 1000px;\n  }\n  .carousel-inner > .item.next,\n  .carousel-inner > .item.active.right {\n    left: 0;\n    -webkit-transform: translate3d(100%, 0, 0);\n            transform: translate3d(100%, 0, 0);\n  }\n  .carousel-inner > .item.prev,\n  .carousel-inner > .item.active.left {\n    left: 0;\n    -webkit-transform: translate3d(-100%, 0, 0);\n            transform: translate3d(-100%, 0, 0);\n  }\n  .carousel-inner > .item.next.left,\n  .carousel-inner > .item.prev.right,\n  .carousel-inner > .item.active {\n    left: 0;\n    -webkit-transform: translate3d(0, 0, 0);\n            transform: translate3d(0, 0, 0);\n  }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n.carousel-inner > .active {\n  left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n.carousel-inner > .next {\n  left: 100%;\n}\n.carousel-inner > .prev {\n  left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n.carousel-inner > .active.left {\n  left: -100%;\n}\n.carousel-inner > .active.right {\n  left: 100%;\n}\n.carousel-control {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 15%;\n  font-size: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n  background-color: rgba(0, 0, 0, 0);\n  filter: alpha(opacity=50);\n  opacity: .5;\n}\n.carousel-control.left {\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));\n  background-image:         linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n  background-repeat: repeat-x;\n}\n.carousel-control.right {\n  right: 0;\n  left: auto;\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));\n  background-image:         linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n  background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n  color: #fff;\n  text-decoration: none;\n  filter: alpha(opacity=90);\n  outline: 0;\n  opacity: .9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n  display: inline-block;\n  margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n  left: 50%;\n  margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n  right: 50%;\n  margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n  width: 20px;\n  height: 20px;\n  font-family: serif;\n  line-height: 1;\n}\n.carousel-control .icon-prev:before {\n  content: '\\2039';\n}\n.carousel-control .icon-next:before {\n  content: '\\203a';\n}\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  padding-left: 0;\n  margin-left: -30%;\n  text-align: center;\n  list-style: none;\n}\n.carousel-indicators li {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  margin: 1px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #000 \\9;\n  background-color: rgba(0, 0, 0, 0);\n  border: 1px solid #fff;\n  border-radius: 10px;\n}\n.carousel-indicators .active {\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  background-color: #fff;\n}\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);\n}\n.carousel-caption .btn {\n  text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -10px;\n    font-size: 30px;\n  }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -10px;\n  }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -10px;\n  }\n  .carousel-caption {\n    right: 20%;\n    left: 20%;\n    padding-bottom: 30px;\n  }\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n  display: table;\n  content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n  clear: both;\n}\n.center-block {\n  display: block;\n  margin-right: auto;\n  margin-left: auto;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.hidden {\n  display: none !important;\n}\n.affix {\n  position: fixed;\n}\n@-ms-viewport {\n  width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important;\n  }\n  table.visible-xs {\n    display: table !important;\n  }\n  tr.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important;\n  }\n  table.visible-sm {\n    display: table !important;\n  }\n  tr.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important;\n  }\n  table.visible-md {\n    display: table !important;\n  }\n  tr.visible-md {\n    display: table-row !important;\n  }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important;\n  }\n  table.visible-lg {\n    display: table !important;\n  }\n  tr.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important;\n  }\n}\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important;\n  }\n}\n.visible-print {\n  display: none !important;\n}\n@media print {\n  .visible-print {\n    display: block !important;\n  }\n  table.visible-print {\n    display: table !important;\n  }\n  tr.visible-print {\n    display: table-row !important;\n  }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important;\n  }\n}\n.visible-print-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-block {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline-block {\n    display: inline-block !important;\n  }\n}\n@media print {\n  .hidden-print {\n    display: none !important;\n  }\n}\n/*# sourceMappingURL=bootstrap.css.map */\n"
  },
  {
    "path": "lib/bootstrap/js/bootstrap-table.js",
    "content": "(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :\n\ttypeof define === 'function' && define.amd ? define(['jquery'], factory) :\n\t(global = global || self, global.BootstrapTable = factory(global.jQuery));\n}(this, function ($) { 'use strict';\n\n\t$ = $ && $.hasOwnProperty('default') ? $['default'] : $;\n\n\tvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar O = 'object';\n\tvar check = function (it) {\n\t  return it && it.Math == Math && it;\n\t};\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global_1 =\n\t  // eslint-disable-next-line no-undef\n\t  check(typeof globalThis == O && globalThis) ||\n\t  check(typeof window == O && window) ||\n\t  check(typeof self == O && self) ||\n\t  check(typeof commonjsGlobal == O && commonjsGlobal) ||\n\t  // eslint-disable-next-line no-new-func\n\t  Function('return this')();\n\n\tvar fails = function (exec) {\n\t  try {\n\t    return !!exec();\n\t  } catch (error) {\n\t    return true;\n\t  }\n\t};\n\n\t// Thank's IE8 for his funny defineProperty\n\tvar descriptors = !fails(function () {\n\t  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n\t});\n\n\tvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\n\tvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\t// Nashorn ~ JDK8 bug\n\tvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n\t// `Object.prototype.propertyIsEnumerable` method implementation\n\t// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\n\tvar f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n\t  var descriptor = getOwnPropertyDescriptor(this, V);\n\t  return !!descriptor && descriptor.enumerable;\n\t} : nativePropertyIsEnumerable;\n\n\tvar objectPropertyIsEnumerable = {\n\t\tf: f\n\t};\n\n\tvar createPropertyDescriptor = function (bitmap, value) {\n\t  return {\n\t    enumerable: !(bitmap & 1),\n\t    configurable: !(bitmap & 2),\n\t    writable: !(bitmap & 4),\n\t    value: value\n\t  };\n\t};\n\n\tvar toString = {}.toString;\n\n\tvar classofRaw = function (it) {\n\t  return toString.call(it).slice(8, -1);\n\t};\n\n\tvar split = ''.split;\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar indexedObject = fails(function () {\n\t  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n\t  // eslint-disable-next-line no-prototype-builtins\n\t  return !Object('z').propertyIsEnumerable(0);\n\t}) ? function (it) {\n\t  return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);\n\t} : Object;\n\n\t// `RequireObjectCoercible` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\n\tvar requireObjectCoercible = function (it) {\n\t  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n\t  return it;\n\t};\n\n\t// toObject with fallback for non-array-like ES3 strings\n\n\n\n\tvar toIndexedObject = function (it) {\n\t  return indexedObject(requireObjectCoercible(it));\n\t};\n\n\tvar isObject = function (it) {\n\t  return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n\t// `ToPrimitive` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-toprimitive\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tvar toPrimitive = function (input, PREFERRED_STRING) {\n\t  if (!isObject(input)) return input;\n\t  var fn, val;\n\t  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n\t  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n\t  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n\t  throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\n\tvar has = function (it, key) {\n\t  return hasOwnProperty.call(it, key);\n\t};\n\n\tvar document$1 = global_1.document;\n\t// typeof document.createElement is 'object' in old IE\n\tvar EXISTS = isObject(document$1) && isObject(document$1.createElement);\n\n\tvar documentCreateElement = function (it) {\n\t  return EXISTS ? document$1.createElement(it) : {};\n\t};\n\n\t// Thank's IE8 for his funny defineProperty\n\tvar ie8DomDefine = !descriptors && !fails(function () {\n\t  return Object.defineProperty(documentCreateElement('div'), 'a', {\n\t    get: function () { return 7; }\n\t  }).a != 7;\n\t});\n\n\tvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n\t// `Object.getOwnPropertyDescriptor` method\n\t// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n\tvar f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n\t  O = toIndexedObject(O);\n\t  P = toPrimitive(P, true);\n\t  if (ie8DomDefine) try {\n\t    return nativeGetOwnPropertyDescriptor(O, P);\n\t  } catch (error) { /* empty */ }\n\t  if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);\n\t};\n\n\tvar objectGetOwnPropertyDescriptor = {\n\t\tf: f$1\n\t};\n\n\tvar anObject = function (it) {\n\t  if (!isObject(it)) {\n\t    throw TypeError(String(it) + ' is not an object');\n\t  } return it;\n\t};\n\n\tvar nativeDefineProperty = Object.defineProperty;\n\n\t// `Object.defineProperty` method\n\t// https://tc39.github.io/ecma262/#sec-object.defineproperty\n\tvar f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n\t  anObject(O);\n\t  P = toPrimitive(P, true);\n\t  anObject(Attributes);\n\t  if (ie8DomDefine) try {\n\t    return nativeDefineProperty(O, P, Attributes);\n\t  } catch (error) { /* empty */ }\n\t  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n\t  if ('value' in Attributes) O[P] = Attributes.value;\n\t  return O;\n\t};\n\n\tvar objectDefineProperty = {\n\t\tf: f$2\n\t};\n\n\tvar hide = descriptors ? function (object, key, value) {\n\t  return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));\n\t} : function (object, key, value) {\n\t  object[key] = value;\n\t  return object;\n\t};\n\n\tvar setGlobal = function (key, value) {\n\t  try {\n\t    hide(global_1, key, value);\n\t  } catch (error) {\n\t    global_1[key] = value;\n\t  } return value;\n\t};\n\n\tvar shared = createCommonjsModule(function (module) {\n\tvar SHARED = '__core-js_shared__';\n\tvar store = global_1[SHARED] || setGlobal(SHARED, {});\n\n\t(module.exports = function (key, value) {\n\t  return store[key] || (store[key] = value !== undefined ? value : {});\n\t})('versions', []).push({\n\t  version: '3.1.3',\n\t  mode:  'global',\n\t  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n\t});\n\t});\n\n\tvar functionToString = shared('native-function-to-string', Function.toString);\n\n\tvar WeakMap = global_1.WeakMap;\n\n\tvar nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));\n\n\tvar id = 0;\n\tvar postfix = Math.random();\n\n\tvar uid = function (key) {\n\t  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n\t};\n\n\tvar keys = shared('keys');\n\n\tvar sharedKey = function (key) {\n\t  return keys[key] || (keys[key] = uid(key));\n\t};\n\n\tvar hiddenKeys = {};\n\n\tvar WeakMap$1 = global_1.WeakMap;\n\tvar set, get, has$1;\n\n\tvar enforce = function (it) {\n\t  return has$1(it) ? get(it) : set(it, {});\n\t};\n\n\tvar getterFor = function (TYPE) {\n\t  return function (it) {\n\t    var state;\n\t    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n\t      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n\t    } return state;\n\t  };\n\t};\n\n\tif (nativeWeakMap) {\n\t  var store = new WeakMap$1();\n\t  var wmget = store.get;\n\t  var wmhas = store.has;\n\t  var wmset = store.set;\n\t  set = function (it, metadata) {\n\t    wmset.call(store, it, metadata);\n\t    return metadata;\n\t  };\n\t  get = function (it) {\n\t    return wmget.call(store, it) || {};\n\t  };\n\t  has$1 = function (it) {\n\t    return wmhas.call(store, it);\n\t  };\n\t} else {\n\t  var STATE = sharedKey('state');\n\t  hiddenKeys[STATE] = true;\n\t  set = function (it, metadata) {\n\t    hide(it, STATE, metadata);\n\t    return metadata;\n\t  };\n\t  get = function (it) {\n\t    return has(it, STATE) ? it[STATE] : {};\n\t  };\n\t  has$1 = function (it) {\n\t    return has(it, STATE);\n\t  };\n\t}\n\n\tvar internalState = {\n\t  set: set,\n\t  get: get,\n\t  has: has$1,\n\t  enforce: enforce,\n\t  getterFor: getterFor\n\t};\n\n\tvar redefine = createCommonjsModule(function (module) {\n\tvar getInternalState = internalState.get;\n\tvar enforceInternalState = internalState.enforce;\n\tvar TEMPLATE = String(functionToString).split('toString');\n\n\tshared('inspectSource', function (it) {\n\t  return functionToString.call(it);\n\t});\n\n\t(module.exports = function (O, key, value, options) {\n\t  var unsafe = options ? !!options.unsafe : false;\n\t  var simple = options ? !!options.enumerable : false;\n\t  var noTargetGet = options ? !!options.noTargetGet : false;\n\t  if (typeof value == 'function') {\n\t    if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);\n\t    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n\t  }\n\t  if (O === global_1) {\n\t    if (simple) O[key] = value;\n\t    else setGlobal(key, value);\n\t    return;\n\t  } else if (!unsafe) {\n\t    delete O[key];\n\t  } else if (!noTargetGet && O[key]) {\n\t    simple = true;\n\t  }\n\t  if (simple) O[key] = value;\n\t  else hide(O, key, value);\n\t// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n\t})(Function.prototype, 'toString', function toString() {\n\t  return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);\n\t});\n\t});\n\n\tvar path = global_1;\n\n\tvar aFunction = function (variable) {\n\t  return typeof variable == 'function' ? variable : undefined;\n\t};\n\n\tvar getBuiltIn = function (namespace, method) {\n\t  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])\n\t    : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];\n\t};\n\n\tvar ceil = Math.ceil;\n\tvar floor = Math.floor;\n\n\t// `ToInteger` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-tointeger\n\tvar toInteger = function (argument) {\n\t  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n\t};\n\n\tvar min = Math.min;\n\n\t// `ToLength` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-tolength\n\tvar toLength = function (argument) {\n\t  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n\t};\n\n\tvar max = Math.max;\n\tvar min$1 = Math.min;\n\n\t// Helper for a popular repeating case of the spec:\n\t// Let integer be ? ToInteger(index).\n\t// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\n\tvar toAbsoluteIndex = function (index, length) {\n\t  var integer = toInteger(index);\n\t  return integer < 0 ? max(integer + length, 0) : min$1(integer, length);\n\t};\n\n\t// `Array.prototype.{ indexOf, includes }` methods implementation\n\tvar createMethod = function (IS_INCLUDES) {\n\t  return function ($this, el, fromIndex) {\n\t    var O = toIndexedObject($this);\n\t    var length = toLength(O.length);\n\t    var index = toAbsoluteIndex(fromIndex, length);\n\t    var value;\n\t    // Array#includes uses SameValueZero equality algorithm\n\t    // eslint-disable-next-line no-self-compare\n\t    if (IS_INCLUDES && el != el) while (length > index) {\n\t      value = O[index++];\n\t      // eslint-disable-next-line no-self-compare\n\t      if (value != value) return true;\n\t    // Array#indexOf ignores holes, Array#includes - not\n\t    } else for (;length > index; index++) {\n\t      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n\t    } return !IS_INCLUDES && -1;\n\t  };\n\t};\n\n\tvar arrayIncludes = {\n\t  // `Array.prototype.includes` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n\t  includes: createMethod(true),\n\t  // `Array.prototype.indexOf` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n\t  indexOf: createMethod(false)\n\t};\n\n\tvar indexOf = arrayIncludes.indexOf;\n\n\n\tvar objectKeysInternal = function (object, names) {\n\t  var O = toIndexedObject(object);\n\t  var i = 0;\n\t  var result = [];\n\t  var key;\n\t  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n\t  // Don't enum bug & hidden keys\n\t  while (names.length > i) if (has(O, key = names[i++])) {\n\t    ~indexOf(result, key) || result.push(key);\n\t  }\n\t  return result;\n\t};\n\n\t// IE8- don't enum bug keys\n\tvar enumBugKeys = [\n\t  'constructor',\n\t  'hasOwnProperty',\n\t  'isPrototypeOf',\n\t  'propertyIsEnumerable',\n\t  'toLocaleString',\n\t  'toString',\n\t  'valueOf'\n\t];\n\n\tvar hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');\n\n\t// `Object.getOwnPropertyNames` method\n\t// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n\tvar f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n\t  return objectKeysInternal(O, hiddenKeys$1);\n\t};\n\n\tvar objectGetOwnPropertyNames = {\n\t\tf: f$3\n\t};\n\n\tvar f$4 = Object.getOwnPropertySymbols;\n\n\tvar objectGetOwnPropertySymbols = {\n\t\tf: f$4\n\t};\n\n\t// all object keys, includes non-enumerable and symbols\n\tvar ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n\t  var keys = objectGetOwnPropertyNames.f(anObject(it));\n\t  var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;\n\t  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n\t};\n\n\tvar copyConstructorProperties = function (target, source) {\n\t  var keys = ownKeys(source);\n\t  var defineProperty = objectDefineProperty.f;\n\t  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;\n\t  for (var i = 0; i < keys.length; i++) {\n\t    var key = keys[i];\n\t    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n\t  }\n\t};\n\n\tvar replacement = /#|\\.prototype\\./;\n\n\tvar isForced = function (feature, detection) {\n\t  var value = data[normalize(feature)];\n\t  return value == POLYFILL ? true\n\t    : value == NATIVE ? false\n\t    : typeof detection == 'function' ? fails(detection)\n\t    : !!detection;\n\t};\n\n\tvar normalize = isForced.normalize = function (string) {\n\t  return String(string).replace(replacement, '.').toLowerCase();\n\t};\n\n\tvar data = isForced.data = {};\n\tvar NATIVE = isForced.NATIVE = 'N';\n\tvar POLYFILL = isForced.POLYFILL = 'P';\n\n\tvar isForced_1 = isForced;\n\n\tvar getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;\n\n\n\n\n\n\n\t/*\n\t  options.target      - name of the target object\n\t  options.global      - target is the global object\n\t  options.stat        - export as static methods of target\n\t  options.proto       - export as prototype methods of target\n\t  options.real        - real prototype method for the `pure` version\n\t  options.forced      - export even if the native feature is available\n\t  options.bind        - bind methods to the target, required for the `pure` version\n\t  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n\t  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n\t  options.sham        - add a flag to not completely full polyfills\n\t  options.enumerable  - export as enumerable property\n\t  options.noTargetGet - prevent calling a getter on target\n\t*/\n\tvar _export = function (options, source) {\n\t  var TARGET = options.target;\n\t  var GLOBAL = options.global;\n\t  var STATIC = options.stat;\n\t  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n\t  if (GLOBAL) {\n\t    target = global_1;\n\t  } else if (STATIC) {\n\t    target = global_1[TARGET] || setGlobal(TARGET, {});\n\t  } else {\n\t    target = (global_1[TARGET] || {}).prototype;\n\t  }\n\t  if (target) for (key in source) {\n\t    sourceProperty = source[key];\n\t    if (options.noTargetGet) {\n\t      descriptor = getOwnPropertyDescriptor$1(target, key);\n\t      targetProperty = descriptor && descriptor.value;\n\t    } else targetProperty = target[key];\n\t    FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n\t    // contained in target\n\t    if (!FORCED && targetProperty !== undefined) {\n\t      if (typeof sourceProperty === typeof targetProperty) continue;\n\t      copyConstructorProperties(sourceProperty, targetProperty);\n\t    }\n\t    // add a flag to not completely full polyfills\n\t    if (options.sham || (targetProperty && targetProperty.sham)) {\n\t      hide(sourceProperty, 'sham', true);\n\t    }\n\t    // extend global\n\t    redefine(target, key, sourceProperty, options);\n\t  }\n\t};\n\n\tvar nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {\n\t  // Chrome 38 Symbol has incorrect toString conversion\n\t  // eslint-disable-next-line no-undef\n\t  return !String(Symbol());\n\t});\n\n\t// `IsArray` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-isarray\n\tvar isArray = Array.isArray || function isArray(arg) {\n\t  return classofRaw(arg) == 'Array';\n\t};\n\n\t// `ToObject` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-toobject\n\tvar toObject = function (argument) {\n\t  return Object(requireObjectCoercible(argument));\n\t};\n\n\t// `Object.keys` method\n\t// https://tc39.github.io/ecma262/#sec-object.keys\n\tvar objectKeys = Object.keys || function keys(O) {\n\t  return objectKeysInternal(O, enumBugKeys);\n\t};\n\n\t// `Object.defineProperties` method\n\t// https://tc39.github.io/ecma262/#sec-object.defineproperties\n\tvar objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {\n\t  anObject(O);\n\t  var keys = objectKeys(Properties);\n\t  var length = keys.length;\n\t  var index = 0;\n\t  var key;\n\t  while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);\n\t  return O;\n\t};\n\n\tvar html = getBuiltIn('document', 'documentElement');\n\n\tvar IE_PROTO = sharedKey('IE_PROTO');\n\n\tvar PROTOTYPE = 'prototype';\n\tvar Empty = function () { /* empty */ };\n\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\n\tvar createDict = function () {\n\t  // Thrash, waste and sodomy: IE GC bug\n\t  var iframe = documentCreateElement('iframe');\n\t  var length = enumBugKeys.length;\n\t  var lt = '<';\n\t  var script = 'script';\n\t  var gt = '>';\n\t  var js = 'java' + script + ':';\n\t  var iframeDocument;\n\t  iframe.style.display = 'none';\n\t  html.appendChild(iframe);\n\t  iframe.src = String(js);\n\t  iframeDocument = iframe.contentWindow.document;\n\t  iframeDocument.open();\n\t  iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n\t  iframeDocument.close();\n\t  createDict = iframeDocument.F;\n\t  while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n\t  return createDict();\n\t};\n\n\t// `Object.create` method\n\t// https://tc39.github.io/ecma262/#sec-object.create\n\tvar objectCreate = Object.create || function create(O, Properties) {\n\t  var result;\n\t  if (O !== null) {\n\t    Empty[PROTOTYPE] = anObject(O);\n\t    result = new Empty();\n\t    Empty[PROTOTYPE] = null;\n\t    // add \"__proto__\" for Object.getPrototypeOf polyfill\n\t    result[IE_PROTO] = O;\n\t  } else result = createDict();\n\t  return Properties === undefined ? result : objectDefineProperties(result, Properties);\n\t};\n\n\thiddenKeys[IE_PROTO] = true;\n\n\tvar nativeGetOwnPropertyNames = objectGetOwnPropertyNames.f;\n\n\tvar toString$1 = {}.toString;\n\n\tvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n\t  ? Object.getOwnPropertyNames(window) : [];\n\n\tvar getWindowNames = function (it) {\n\t  try {\n\t    return nativeGetOwnPropertyNames(it);\n\t  } catch (error) {\n\t    return windowNames.slice();\n\t  }\n\t};\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar f$5 = function getOwnPropertyNames(it) {\n\t  return windowNames && toString$1.call(it) == '[object Window]'\n\t    ? getWindowNames(it)\n\t    : nativeGetOwnPropertyNames(toIndexedObject(it));\n\t};\n\n\tvar objectGetOwnPropertyNamesExternal = {\n\t\tf: f$5\n\t};\n\n\tvar Symbol$1 = global_1.Symbol;\n\tvar store$1 = shared('wks');\n\n\tvar wellKnownSymbol = function (name) {\n\t  return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]\n\t    || (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));\n\t};\n\n\tvar f$6 = wellKnownSymbol;\n\n\tvar wrappedWellKnownSymbol = {\n\t\tf: f$6\n\t};\n\n\tvar defineProperty = objectDefineProperty.f;\n\n\tvar defineWellKnownSymbol = function (NAME) {\n\t  var Symbol = path.Symbol || (path.Symbol = {});\n\t  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n\t    value: wrappedWellKnownSymbol.f(NAME)\n\t  });\n\t};\n\n\tvar defineProperty$1 = objectDefineProperty.f;\n\n\n\n\tvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\n\tvar setToStringTag = function (it, TAG, STATIC) {\n\t  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n\t    defineProperty$1(it, TO_STRING_TAG, { configurable: true, value: TAG });\n\t  }\n\t};\n\n\tvar aFunction$1 = function (it) {\n\t  if (typeof it != 'function') {\n\t    throw TypeError(String(it) + ' is not a function');\n\t  } return it;\n\t};\n\n\t// optional / simple context binding\n\tvar bindContext = function (fn, that, length) {\n\t  aFunction$1(fn);\n\t  if (that === undefined) return fn;\n\t  switch (length) {\n\t    case 0: return function () {\n\t      return fn.call(that);\n\t    };\n\t    case 1: return function (a) {\n\t      return fn.call(that, a);\n\t    };\n\t    case 2: return function (a, b) {\n\t      return fn.call(that, a, b);\n\t    };\n\t    case 3: return function (a, b, c) {\n\t      return fn.call(that, a, b, c);\n\t    };\n\t  }\n\t  return function (/* ...args */) {\n\t    return fn.apply(that, arguments);\n\t  };\n\t};\n\n\tvar SPECIES = wellKnownSymbol('species');\n\n\t// `ArraySpeciesCreate` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\n\tvar arraySpeciesCreate = function (originalArray, length) {\n\t  var C;\n\t  if (isArray(originalArray)) {\n\t    C = originalArray.constructor;\n\t    // cross-realm fallback\n\t    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n\t    else if (isObject(C)) {\n\t      C = C[SPECIES];\n\t      if (C === null) C = undefined;\n\t    }\n\t  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n\t};\n\n\tvar push = [].push;\n\n\t// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\n\tvar createMethod$1 = function (TYPE) {\n\t  var IS_MAP = TYPE == 1;\n\t  var IS_FILTER = TYPE == 2;\n\t  var IS_SOME = TYPE == 3;\n\t  var IS_EVERY = TYPE == 4;\n\t  var IS_FIND_INDEX = TYPE == 6;\n\t  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n\t  return function ($this, callbackfn, that, specificCreate) {\n\t    var O = toObject($this);\n\t    var self = indexedObject(O);\n\t    var boundFunction = bindContext(callbackfn, that, 3);\n\t    var length = toLength(self.length);\n\t    var index = 0;\n\t    var create = specificCreate || arraySpeciesCreate;\n\t    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n\t    var value, result;\n\t    for (;length > index; index++) if (NO_HOLES || index in self) {\n\t      value = self[index];\n\t      result = boundFunction(value, index, O);\n\t      if (TYPE) {\n\t        if (IS_MAP) target[index] = result; // map\n\t        else if (result) switch (TYPE) {\n\t          case 3: return true;              // some\n\t          case 5: return value;             // find\n\t          case 6: return index;             // findIndex\n\t          case 2: push.call(target, value); // filter\n\t        } else if (IS_EVERY) return false;  // every\n\t      }\n\t    }\n\t    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n\t  };\n\t};\n\n\tvar arrayIteration = {\n\t  // `Array.prototype.forEach` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n\t  forEach: createMethod$1(0),\n\t  // `Array.prototype.map` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.map\n\t  map: createMethod$1(1),\n\t  // `Array.prototype.filter` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n\t  filter: createMethod$1(2),\n\t  // `Array.prototype.some` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.some\n\t  some: createMethod$1(3),\n\t  // `Array.prototype.every` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.every\n\t  every: createMethod$1(4),\n\t  // `Array.prototype.find` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.find\n\t  find: createMethod$1(5),\n\t  // `Array.prototype.findIndex` method\n\t  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n\t  findIndex: createMethod$1(6)\n\t};\n\n\tvar $forEach = arrayIteration.forEach;\n\n\tvar HIDDEN = sharedKey('hidden');\n\tvar SYMBOL = 'Symbol';\n\tvar PROTOTYPE$1 = 'prototype';\n\tvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\tvar setInternalState = internalState.set;\n\tvar getInternalState = internalState.getterFor(SYMBOL);\n\tvar ObjectPrototype = Object[PROTOTYPE$1];\n\tvar $Symbol = global_1.Symbol;\n\tvar JSON$1 = global_1.JSON;\n\tvar nativeJSONStringify = JSON$1 && JSON$1.stringify;\n\tvar nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;\n\tvar nativeDefineProperty$1 = objectDefineProperty.f;\n\tvar nativeGetOwnPropertyNames$1 = objectGetOwnPropertyNamesExternal.f;\n\tvar nativePropertyIsEnumerable$1 = objectPropertyIsEnumerable.f;\n\tvar AllSymbols = shared('symbols');\n\tvar ObjectPrototypeSymbols = shared('op-symbols');\n\tvar StringToSymbolRegistry = shared('string-to-symbol-registry');\n\tvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\tvar WellKnownSymbolsStore = shared('wks');\n\tvar QObject = global_1.QObject;\n\t// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\n\tvar USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild;\n\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDescriptor = descriptors && fails(function () {\n\t  return objectCreate(nativeDefineProperty$1({}, 'a', {\n\t    get: function () { return nativeDefineProperty$1(this, 'a', { value: 7 }).a; }\n\t  })).a != 7;\n\t}) ? function (O, P, Attributes) {\n\t  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$1(ObjectPrototype, P);\n\t  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n\t  nativeDefineProperty$1(O, P, Attributes);\n\t  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n\t    nativeDefineProperty$1(ObjectPrototype, P, ObjectPrototypeDescriptor);\n\t  }\n\t} : nativeDefineProperty$1;\n\n\tvar wrap = function (tag, description) {\n\t  var symbol = AllSymbols[tag] = objectCreate($Symbol[PROTOTYPE$1]);\n\t  setInternalState(symbol, {\n\t    type: SYMBOL,\n\t    tag: tag,\n\t    description: description\n\t  });\n\t  if (!descriptors) symbol.description = description;\n\t  return symbol;\n\t};\n\n\tvar isSymbol = nativeSymbol && typeof $Symbol.iterator == 'symbol' ? function (it) {\n\t  return typeof it == 'symbol';\n\t} : function (it) {\n\t  return Object(it) instanceof $Symbol;\n\t};\n\n\tvar $defineProperty = function defineProperty(O, P, Attributes) {\n\t  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n\t  anObject(O);\n\t  var key = toPrimitive(P, true);\n\t  anObject(Attributes);\n\t  if (has(AllSymbols, key)) {\n\t    if (!Attributes.enumerable) {\n\t      if (!has(O, HIDDEN)) nativeDefineProperty$1(O, HIDDEN, createPropertyDescriptor(1, {}));\n\t      O[HIDDEN][key] = true;\n\t    } else {\n\t      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n\t      Attributes = objectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n\t    } return setSymbolDescriptor(O, key, Attributes);\n\t  } return nativeDefineProperty$1(O, key, Attributes);\n\t};\n\n\tvar $defineProperties = function defineProperties(O, Properties) {\n\t  anObject(O);\n\t  var properties = toIndexedObject(Properties);\n\t  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n\t  $forEach(keys, function (key) {\n\t    if (!descriptors || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n\t  });\n\t  return O;\n\t};\n\n\tvar $create = function create(O, Properties) {\n\t  return Properties === undefined ? objectCreate(O) : $defineProperties(objectCreate(O), Properties);\n\t};\n\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n\t  var P = toPrimitive(V, true);\n\t  var enumerable = nativePropertyIsEnumerable$1.call(this, P);\n\t  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n\t  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n\t};\n\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n\t  var it = toIndexedObject(O);\n\t  var key = toPrimitive(P, true);\n\t  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n\t  var descriptor = nativeGetOwnPropertyDescriptor$1(it, key);\n\t  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n\t    descriptor.enumerable = true;\n\t  }\n\t  return descriptor;\n\t};\n\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n\t  var names = nativeGetOwnPropertyNames$1(toIndexedObject(O));\n\t  var result = [];\n\t  $forEach(names, function (key) {\n\t    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n\t  });\n\t  return result;\n\t};\n\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n\t  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n\t  var names = nativeGetOwnPropertyNames$1(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n\t  var result = [];\n\t  $forEach(names, function (key) {\n\t    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n\t      result.push(AllSymbols[key]);\n\t    }\n\t  });\n\t  return result;\n\t};\n\n\t// `Symbol` constructor\n\t// https://tc39.github.io/ecma262/#sec-symbol-constructor\n\tif (!nativeSymbol) {\n\t  $Symbol = function Symbol() {\n\t    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n\t    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n\t    var tag = uid(description);\n\t    var setter = function (value) {\n\t      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n\t      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n\t      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n\t    };\n\t    if (descriptors && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n\t    return wrap(tag, description);\n\t  };\n\n\t  redefine($Symbol[PROTOTYPE$1], 'toString', function toString() {\n\t    return getInternalState(this).tag;\n\t  });\n\n\t  objectPropertyIsEnumerable.f = $propertyIsEnumerable;\n\t  objectDefineProperty.f = $defineProperty;\n\t  objectGetOwnPropertyDescriptor.f = $getOwnPropertyDescriptor;\n\t  objectGetOwnPropertyNames.f = objectGetOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n\t  objectGetOwnPropertySymbols.f = $getOwnPropertySymbols;\n\n\t  if (descriptors) {\n\t    // https://github.com/tc39/proposal-Symbol-description\n\t    nativeDefineProperty$1($Symbol[PROTOTYPE$1], 'description', {\n\t      configurable: true,\n\t      get: function description() {\n\t        return getInternalState(this).description;\n\t      }\n\t    });\n\t    {\n\t      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n\t    }\n\t  }\n\n\t  wrappedWellKnownSymbol.f = function (name) {\n\t    return wrap(wellKnownSymbol(name), name);\n\t  };\n\t}\n\n\t_export({ global: true, wrap: true, forced: !nativeSymbol, sham: !nativeSymbol }, {\n\t  Symbol: $Symbol\n\t});\n\n\t$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n\t  defineWellKnownSymbol(name);\n\t});\n\n\t_export({ target: SYMBOL, stat: true, forced: !nativeSymbol }, {\n\t  // `Symbol.for` method\n\t  // https://tc39.github.io/ecma262/#sec-symbol.for\n\t  'for': function (key) {\n\t    var string = String(key);\n\t    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n\t    var symbol = $Symbol(string);\n\t    StringToSymbolRegistry[string] = symbol;\n\t    SymbolToStringRegistry[symbol] = string;\n\t    return symbol;\n\t  },\n\t  // `Symbol.keyFor` method\n\t  // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n\t  keyFor: function keyFor(sym) {\n\t    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n\t    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n\t  },\n\t  useSetter: function () { USE_SETTER = true; },\n\t  useSimple: function () { USE_SETTER = false; }\n\t});\n\n\t_export({ target: 'Object', stat: true, forced: !nativeSymbol, sham: !descriptors }, {\n\t  // `Object.create` method\n\t  // https://tc39.github.io/ecma262/#sec-object.create\n\t  create: $create,\n\t  // `Object.defineProperty` method\n\t  // https://tc39.github.io/ecma262/#sec-object.defineproperty\n\t  defineProperty: $defineProperty,\n\t  // `Object.defineProperties` method\n\t  // https://tc39.github.io/ecma262/#sec-object.defineproperties\n\t  defineProperties: $defineProperties,\n\t  // `Object.getOwnPropertyDescriptor` method\n\t  // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n\t  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n\t});\n\n\t_export({ target: 'Object', stat: true, forced: !nativeSymbol }, {\n\t  // `Object.getOwnPropertyNames` method\n\t  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n\t  getOwnPropertyNames: $getOwnPropertyNames,\n\t  // `Object.getOwnPropertySymbols` method\n\t  // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n\t  getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\n\t// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n\t// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n\t_export({ target: 'Object', stat: true, forced: fails(function () { objectGetOwnPropertySymbols.f(1); }) }, {\n\t  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n\t    return objectGetOwnPropertySymbols.f(toObject(it));\n\t  }\n\t});\n\n\t// `JSON.stringify` method behavior with symbols\n\t// https://tc39.github.io/ecma262/#sec-json.stringify\n\tJSON$1 && _export({ target: 'JSON', stat: true, forced: !nativeSymbol || fails(function () {\n\t  var symbol = $Symbol();\n\t  // MS Edge converts symbol values to JSON as {}\n\t  return nativeJSONStringify([symbol]) != '[null]'\n\t    // WebKit converts symbol values to JSON as null\n\t    || nativeJSONStringify({ a: symbol }) != '{}'\n\t    // V8 throws on boxed symbols\n\t    || nativeJSONStringify(Object(symbol)) != '{}';\n\t}) }, {\n\t  stringify: function stringify(it) {\n\t    var args = [it];\n\t    var index = 1;\n\t    var replacer, $replacer;\n\t    while (arguments.length > index) args.push(arguments[index++]);\n\t    $replacer = replacer = args[1];\n\t    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n\t    if (!isArray(replacer)) replacer = function (key, value) {\n\t      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n\t      if (!isSymbol(value)) return value;\n\t    };\n\t    args[1] = replacer;\n\t    return nativeJSONStringify.apply(JSON$1, args);\n\t  }\n\t});\n\n\t// `Symbol.prototype[@@toPrimitive]` method\n\t// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\n\tif (!$Symbol[PROTOTYPE$1][TO_PRIMITIVE]) hide($Symbol[PROTOTYPE$1], TO_PRIMITIVE, $Symbol[PROTOTYPE$1].valueOf);\n\t// `Symbol.prototype[@@toStringTag]` property\n\t// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\n\tsetToStringTag($Symbol, SYMBOL);\n\n\thiddenKeys[HIDDEN] = true;\n\n\tvar defineProperty$2 = objectDefineProperty.f;\n\n\n\tvar NativeSymbol = global_1.Symbol;\n\n\tif (descriptors && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n\t  // Safari 12 bug\n\t  NativeSymbol().description !== undefined\n\t)) {\n\t  var EmptyStringDescriptionStore = {};\n\t  // wrap Symbol constructor for correct work with undefined description\n\t  var SymbolWrapper = function Symbol() {\n\t    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n\t    var result = this instanceof SymbolWrapper\n\t      ? new NativeSymbol(description)\n\t      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n\t      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n\t    if (description === '') EmptyStringDescriptionStore[result] = true;\n\t    return result;\n\t  };\n\t  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n\t  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n\t  symbolPrototype.constructor = SymbolWrapper;\n\n\t  var symbolToString = symbolPrototype.toString;\n\t  var native = String(NativeSymbol('test')) == 'Symbol(test)';\n\t  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n\t  defineProperty$2(symbolPrototype, 'description', {\n\t    configurable: true,\n\t    get: function description() {\n\t      var symbol = isObject(this) ? this.valueOf() : this;\n\t      var string = symbolToString.call(symbol);\n\t      if (has(EmptyStringDescriptionStore, symbol)) return '';\n\t      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n\t      return desc === '' ? undefined : desc;\n\t    }\n\t  });\n\n\t  _export({ global: true, forced: true }, {\n\t    Symbol: SymbolWrapper\n\t  });\n\t}\n\n\t// `Symbol.iterator` well-known symbol\n\t// https://tc39.github.io/ecma262/#sec-symbol.iterator\n\tdefineWellKnownSymbol('iterator');\n\n\tvar createProperty = function (object, key, value) {\n\t  var propertyKey = toPrimitive(key);\n\t  if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));\n\t  else object[propertyKey] = value;\n\t};\n\n\tvar SPECIES$1 = wellKnownSymbol('species');\n\n\tvar arrayMethodHasSpeciesSupport = function (METHOD_NAME) {\n\t  return !fails(function () {\n\t    var array = [];\n\t    var constructor = array.constructor = {};\n\t    constructor[SPECIES$1] = function () {\n\t      return { foo: 1 };\n\t    };\n\t    return array[METHOD_NAME](Boolean).foo !== 1;\n\t  });\n\t};\n\n\tvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\tvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\n\tvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n\tvar IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {\n\t  var array = [];\n\t  array[IS_CONCAT_SPREADABLE] = false;\n\t  return array.concat()[0] !== array;\n\t});\n\n\tvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\n\tvar isConcatSpreadable = function (O) {\n\t  if (!isObject(O)) return false;\n\t  var spreadable = O[IS_CONCAT_SPREADABLE];\n\t  return spreadable !== undefined ? !!spreadable : isArray(O);\n\t};\n\n\tvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n\t// `Array.prototype.concat` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n\t// with adding support of @@isConcatSpreadable and @@species\n\t_export({ target: 'Array', proto: true, forced: FORCED }, {\n\t  concat: function concat(arg) { // eslint-disable-line no-unused-vars\n\t    var O = toObject(this);\n\t    var A = arraySpeciesCreate(O, 0);\n\t    var n = 0;\n\t    var i, k, length, len, E;\n\t    for (i = -1, length = arguments.length; i < length; i++) {\n\t      E = i === -1 ? O : arguments[i];\n\t      if (isConcatSpreadable(E)) {\n\t        len = toLength(E.length);\n\t        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n\t        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n\t      } else {\n\t        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n\t        createProperty(A, n++, E);\n\t      }\n\t    }\n\t    A.length = n;\n\t    return A;\n\t  }\n\t});\n\n\tvar $filter = arrayIteration.filter;\n\n\n\t// `Array.prototype.filter` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n\t// with adding support of @@species\n\t_export({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {\n\t  filter: function filter(callbackfn /* , thisArg */) {\n\t    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n\t  }\n\t});\n\n\tvar UNSCOPABLES = wellKnownSymbol('unscopables');\n\tvar ArrayPrototype = Array.prototype;\n\n\t// Array.prototype[@@unscopables]\n\t// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n\tif (ArrayPrototype[UNSCOPABLES] == undefined) {\n\t  hide(ArrayPrototype, UNSCOPABLES, objectCreate(null));\n\t}\n\n\t// add a key to Array.prototype[@@unscopables]\n\tvar addToUnscopables = function (key) {\n\t  ArrayPrototype[UNSCOPABLES][key] = true;\n\t};\n\n\tvar $find = arrayIteration.find;\n\n\n\tvar FIND = 'find';\n\tvar SKIPS_HOLES = true;\n\n\t// Shouldn't skip holes\n\tif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n\t// `Array.prototype.find` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.find\n\t_export({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n\t  find: function find(callbackfn /* , that = undefined */) {\n\t    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n\t  }\n\t});\n\n\t// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n\taddToUnscopables(FIND);\n\n\tvar $findIndex = arrayIteration.findIndex;\n\n\n\tvar FIND_INDEX = 'findIndex';\n\tvar SKIPS_HOLES$1 = true;\n\n\t// Shouldn't skip holes\n\tif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES$1 = false; });\n\n\t// `Array.prototype.findIndex` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n\t_export({ target: 'Array', proto: true, forced: SKIPS_HOLES$1 }, {\n\t  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n\t    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n\t  }\n\t});\n\n\t// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n\taddToUnscopables(FIND_INDEX);\n\n\tvar $includes = arrayIncludes.includes;\n\n\n\t// `Array.prototype.includes` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n\t_export({ target: 'Array', proto: true }, {\n\t  includes: function includes(el /* , fromIndex = 0 */) {\n\t    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n\t  }\n\t});\n\n\t// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n\taddToUnscopables('includes');\n\n\tvar sloppyArrayMethod = function (METHOD_NAME, argument) {\n\t  var method = [][METHOD_NAME];\n\t  return !method || !fails(function () {\n\t    // eslint-disable-next-line no-useless-call,no-throw-literal\n\t    method.call(null, argument || function () { throw 1; }, 1);\n\t  });\n\t};\n\n\tvar $indexOf = arrayIncludes.indexOf;\n\n\n\tvar nativeIndexOf = [].indexOf;\n\n\tvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\n\tvar SLOPPY_METHOD = sloppyArrayMethod('indexOf');\n\n\t// `Array.prototype.indexOf` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n\t_export({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || SLOPPY_METHOD }, {\n\t  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n\t    return NEGATIVE_ZERO\n\t      // convert -0 to +0\n\t      ? nativeIndexOf.apply(this, arguments) || 0\n\t      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n\t  }\n\t});\n\n\tvar correctPrototypeGetter = !fails(function () {\n\t  function F() { /* empty */ }\n\t  F.prototype.constructor = null;\n\t  return Object.getPrototypeOf(new F()) !== F.prototype;\n\t});\n\n\tvar IE_PROTO$1 = sharedKey('IE_PROTO');\n\tvar ObjectPrototype$1 = Object.prototype;\n\n\t// `Object.getPrototypeOf` method\n\t// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n\tvar objectGetPrototypeOf = correctPrototypeGetter ? Object.getPrototypeOf : function (O) {\n\t  O = toObject(O);\n\t  if (has(O, IE_PROTO$1)) return O[IE_PROTO$1];\n\t  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n\t    return O.constructor.prototype;\n\t  } return O instanceof Object ? ObjectPrototype$1 : null;\n\t};\n\n\tvar ITERATOR = wellKnownSymbol('iterator');\n\tvar BUGGY_SAFARI_ITERATORS = false;\n\n\tvar returnThis = function () { return this; };\n\n\t// `%IteratorPrototype%` object\n\t// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\n\tvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n\tif ([].keys) {\n\t  arrayIterator = [].keys();\n\t  // Safari 8 has buggy iterators w/o `next`\n\t  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n\t  else {\n\t    PrototypeOfArrayIteratorPrototype = objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator));\n\t    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n\t  }\n\t}\n\n\tif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\tif ( !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n\n\tvar iteratorsCore = {\n\t  IteratorPrototype: IteratorPrototype,\n\t  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n\t};\n\n\tvar IteratorPrototype$1 = iteratorsCore.IteratorPrototype;\n\n\tvar createIteratorConstructor = function (IteratorConstructor, NAME, next) {\n\t  var TO_STRING_TAG = NAME + ' Iterator';\n\t  IteratorConstructor.prototype = objectCreate(IteratorPrototype$1, { next: createPropertyDescriptor(1, next) });\n\t  setToStringTag(IteratorConstructor, TO_STRING_TAG, false);\n\t  return IteratorConstructor;\n\t};\n\n\tvar aPossiblePrototype = function (it) {\n\t  if (!isObject(it) && it !== null) {\n\t    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n\t  } return it;\n\t};\n\n\t// `Object.setPrototypeOf` method\n\t// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n\t// Works with __proto__ only. Old v8 can't work with null proto objects.\n\t/* eslint-disable no-proto */\n\tvar objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n\t  var CORRECT_SETTER = false;\n\t  var test = {};\n\t  var setter;\n\t  try {\n\t    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n\t    setter.call(test, []);\n\t    CORRECT_SETTER = test instanceof Array;\n\t  } catch (error) { /* empty */ }\n\t  return function setPrototypeOf(O, proto) {\n\t    anObject(O);\n\t    aPossiblePrototype(proto);\n\t    if (CORRECT_SETTER) setter.call(O, proto);\n\t    else O.__proto__ = proto;\n\t    return O;\n\t  };\n\t}() : undefined);\n\n\tvar IteratorPrototype$2 = iteratorsCore.IteratorPrototype;\n\tvar BUGGY_SAFARI_ITERATORS$1 = iteratorsCore.BUGGY_SAFARI_ITERATORS;\n\tvar ITERATOR$1 = wellKnownSymbol('iterator');\n\tvar KEYS = 'keys';\n\tvar VALUES = 'values';\n\tvar ENTRIES = 'entries';\n\n\tvar returnThis$1 = function () { return this; };\n\n\tvar defineIterator = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n\t  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n\t  var getIterationMethod = function (KIND) {\n\t    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n\t    if (!BUGGY_SAFARI_ITERATORS$1 && KIND in IterablePrototype) return IterablePrototype[KIND];\n\t    switch (KIND) {\n\t      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n\t      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n\t      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n\t    } return function () { return new IteratorConstructor(this); };\n\t  };\n\n\t  var TO_STRING_TAG = NAME + ' Iterator';\n\t  var INCORRECT_VALUES_NAME = false;\n\t  var IterablePrototype = Iterable.prototype;\n\t  var nativeIterator = IterablePrototype[ITERATOR$1]\n\t    || IterablePrototype['@@iterator']\n\t    || DEFAULT && IterablePrototype[DEFAULT];\n\t  var defaultIterator = !BUGGY_SAFARI_ITERATORS$1 && nativeIterator || getIterationMethod(DEFAULT);\n\t  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n\t  var CurrentIteratorPrototype, methods, KEY;\n\n\t  // fix native\n\t  if (anyNativeIterator) {\n\t    CurrentIteratorPrototype = objectGetPrototypeOf(anyNativeIterator.call(new Iterable()));\n\t    if (IteratorPrototype$2 !== Object.prototype && CurrentIteratorPrototype.next) {\n\t      if ( objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$2) {\n\t        if (objectSetPrototypeOf) {\n\t          objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype$2);\n\t        } else if (typeof CurrentIteratorPrototype[ITERATOR$1] != 'function') {\n\t          hide(CurrentIteratorPrototype, ITERATOR$1, returnThis$1);\n\t        }\n\t      }\n\t      // Set @@toStringTag to native iterators\n\t      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true);\n\t    }\n\t  }\n\n\t  // fix Array#{values, @@iterator}.name in V8 / FF\n\t  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n\t    INCORRECT_VALUES_NAME = true;\n\t    defaultIterator = function values() { return nativeIterator.call(this); };\n\t  }\n\n\t  // define iterator\n\t  if ( IterablePrototype[ITERATOR$1] !== defaultIterator) {\n\t    hide(IterablePrototype, ITERATOR$1, defaultIterator);\n\t  }\n\n\t  // export additional methods\n\t  if (DEFAULT) {\n\t    methods = {\n\t      values: getIterationMethod(VALUES),\n\t      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n\t      entries: getIterationMethod(ENTRIES)\n\t    };\n\t    if (FORCED) for (KEY in methods) {\n\t      if (BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n\t        redefine(IterablePrototype, KEY, methods[KEY]);\n\t      }\n\t    } else _export({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME }, methods);\n\t  }\n\n\t  return methods;\n\t};\n\n\tvar ARRAY_ITERATOR = 'Array Iterator';\n\tvar setInternalState$1 = internalState.set;\n\tvar getInternalState$1 = internalState.getterFor(ARRAY_ITERATOR);\n\n\t// `Array.prototype.entries` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n\t// `Array.prototype.keys` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n\t// `Array.prototype.values` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.values\n\t// `Array.prototype[@@iterator]` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n\t// `CreateArrayIterator` internal method\n\t// https://tc39.github.io/ecma262/#sec-createarrayiterator\n\tvar es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) {\n\t  setInternalState$1(this, {\n\t    type: ARRAY_ITERATOR,\n\t    target: toIndexedObject(iterated), // target\n\t    index: 0,                          // next index\n\t    kind: kind                         // kind\n\t  });\n\t// `%ArrayIteratorPrototype%.next` method\n\t// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n\t}, function () {\n\t  var state = getInternalState$1(this);\n\t  var target = state.target;\n\t  var kind = state.kind;\n\t  var index = state.index++;\n\t  if (!target || index >= target.length) {\n\t    state.target = undefined;\n\t    return { value: undefined, done: true };\n\t  }\n\t  if (kind == 'keys') return { value: index, done: false };\n\t  if (kind == 'values') return { value: target[index], done: false };\n\t  return { value: [index, target[index]], done: false };\n\t}, 'values');\n\n\t// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n\tvar nativeJoin = [].join;\n\n\tvar ES3_STRINGS = indexedObject != Object;\n\tvar SLOPPY_METHOD$1 = sloppyArrayMethod('join', ',');\n\n\t// `Array.prototype.join` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.join\n\t_export({ target: 'Array', proto: true, forced: ES3_STRINGS || SLOPPY_METHOD$1 }, {\n\t  join: function join(separator) {\n\t    return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n\t  }\n\t});\n\n\tvar SPECIES$2 = wellKnownSymbol('species');\n\tvar nativeSlice = [].slice;\n\tvar max$1 = Math.max;\n\n\t// `Array.prototype.slice` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n\t// fallback for not array-like ES3 strings and DOM objects\n\t_export({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('slice') }, {\n\t  slice: function slice(start, end) {\n\t    var O = toIndexedObject(this);\n\t    var length = toLength(O.length);\n\t    var k = toAbsoluteIndex(start, length);\n\t    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n\t    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n\t    var Constructor, result, n;\n\t    if (isArray(O)) {\n\t      Constructor = O.constructor;\n\t      // cross-realm fallback\n\t      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n\t        Constructor = undefined;\n\t      } else if (isObject(Constructor)) {\n\t        Constructor = Constructor[SPECIES$2];\n\t        if (Constructor === null) Constructor = undefined;\n\t      }\n\t      if (Constructor === Array || Constructor === undefined) {\n\t        return nativeSlice.call(O, k, fin);\n\t      }\n\t    }\n\t    result = new (Constructor === undefined ? Array : Constructor)(max$1(fin - k, 0));\n\t    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n\t    result.length = n;\n\t    return result;\n\t  }\n\t});\n\n\tvar nativeSort = [].sort;\n\tvar test = [1, 2, 3];\n\n\t// IE8-\n\tvar FAILS_ON_UNDEFINED = fails(function () {\n\t  test.sort(undefined);\n\t});\n\t// V8 bug\n\tvar FAILS_ON_NULL = fails(function () {\n\t  test.sort(null);\n\t});\n\t// Old WebKit\n\tvar SLOPPY_METHOD$2 = sloppyArrayMethod('sort');\n\n\tvar FORCED$1 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD$2;\n\n\t// `Array.prototype.sort` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n\t_export({ target: 'Array', proto: true, forced: FORCED$1 }, {\n\t  sort: function sort(comparefn) {\n\t    return comparefn === undefined\n\t      ? nativeSort.call(toObject(this))\n\t      : nativeSort.call(toObject(this), aFunction$1(comparefn));\n\t  }\n\t});\n\n\tvar max$2 = Math.max;\n\tvar min$2 = Math.min;\n\tvar MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF;\n\tvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n\t// `Array.prototype.splice` method\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n\t// with adding support of @@species\n\t_export({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {\n\t  splice: function splice(start, deleteCount /* , ...items */) {\n\t    var O = toObject(this);\n\t    var len = toLength(O.length);\n\t    var actualStart = toAbsoluteIndex(start, len);\n\t    var argumentsLength = arguments.length;\n\t    var insertCount, actualDeleteCount, A, k, from, to;\n\t    if (argumentsLength === 0) {\n\t      insertCount = actualDeleteCount = 0;\n\t    } else if (argumentsLength === 1) {\n\t      insertCount = 0;\n\t      actualDeleteCount = len - actualStart;\n\t    } else {\n\t      insertCount = argumentsLength - 2;\n\t      actualDeleteCount = min$2(max$2(toInteger(deleteCount), 0), len - actualStart);\n\t    }\n\t    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER$1) {\n\t      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n\t    }\n\t    A = arraySpeciesCreate(O, actualDeleteCount);\n\t    for (k = 0; k < actualDeleteCount; k++) {\n\t      from = actualStart + k;\n\t      if (from in O) createProperty(A, k, O[from]);\n\t    }\n\t    A.length = actualDeleteCount;\n\t    if (insertCount < actualDeleteCount) {\n\t      for (k = actualStart; k < len - actualDeleteCount; k++) {\n\t        from = k + actualDeleteCount;\n\t        to = k + insertCount;\n\t        if (from in O) O[to] = O[from];\n\t        else delete O[to];\n\t      }\n\t      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n\t    } else if (insertCount > actualDeleteCount) {\n\t      for (k = len - actualDeleteCount; k > actualStart; k--) {\n\t        from = k + actualDeleteCount - 1;\n\t        to = k + insertCount - 1;\n\t        if (from in O) O[to] = O[from];\n\t        else delete O[to];\n\t      }\n\t    }\n\t    for (k = 0; k < insertCount; k++) {\n\t      O[k + actualStart] = arguments[k + 2];\n\t    }\n\t    O.length = len - actualDeleteCount + insertCount;\n\t    return A;\n\t  }\n\t});\n\n\t// makes subclassing work correct for wrapped built-ins\n\tvar inheritIfRequired = function ($this, dummy, Wrapper) {\n\t  var NewTarget, NewTargetPrototype;\n\t  if (\n\t    // it can work only with native `setPrototypeOf`\n\t    objectSetPrototypeOf &&\n\t    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n\t    typeof (NewTarget = dummy.constructor) == 'function' &&\n\t    NewTarget !== Wrapper &&\n\t    isObject(NewTargetPrototype = NewTarget.prototype) &&\n\t    NewTargetPrototype !== Wrapper.prototype\n\t  ) objectSetPrototypeOf($this, NewTargetPrototype);\n\t  return $this;\n\t};\n\n\t// a string of all valid unicode whitespaces\n\t// eslint-disable-next-line max-len\n\tvar whitespaces = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\tvar whitespace = '[' + whitespaces + ']';\n\tvar ltrim = RegExp('^' + whitespace + whitespace + '*');\n\tvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n\t// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\n\tvar createMethod$2 = function (TYPE) {\n\t  return function ($this) {\n\t    var string = String(requireObjectCoercible($this));\n\t    if (TYPE & 1) string = string.replace(ltrim, '');\n\t    if (TYPE & 2) string = string.replace(rtrim, '');\n\t    return string;\n\t  };\n\t};\n\n\tvar stringTrim = {\n\t  // `String.prototype.{ trimLeft, trimStart }` methods\n\t  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n\t  start: createMethod$2(1),\n\t  // `String.prototype.{ trimRight, trimEnd }` methods\n\t  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n\t  end: createMethod$2(2),\n\t  // `String.prototype.trim` method\n\t  // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n\t  trim: createMethod$2(3)\n\t};\n\n\tvar getOwnPropertyNames = objectGetOwnPropertyNames.f;\n\tvar getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f;\n\tvar defineProperty$3 = objectDefineProperty.f;\n\tvar trim = stringTrim.trim;\n\n\tvar NUMBER = 'Number';\n\tvar NativeNumber = global_1[NUMBER];\n\tvar NumberPrototype = NativeNumber.prototype;\n\n\t// Opera ~12 has broken Object#toString\n\tvar BROKEN_CLASSOF = classofRaw(objectCreate(NumberPrototype)) == NUMBER;\n\n\t// `ToNumber` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-tonumber\n\tvar toNumber = function (argument) {\n\t  var it = toPrimitive(argument, false);\n\t  var first, third, radix, maxCode, digits, length, index, code;\n\t  if (typeof it == 'string' && it.length > 2) {\n\t    it = trim(it);\n\t    first = it.charCodeAt(0);\n\t    if (first === 43 || first === 45) {\n\t      third = it.charCodeAt(2);\n\t      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n\t    } else if (first === 48) {\n\t      switch (it.charCodeAt(1)) {\n\t        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n\t        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n\t        default: return +it;\n\t      }\n\t      digits = it.slice(2);\n\t      length = digits.length;\n\t      for (index = 0; index < length; index++) {\n\t        code = digits.charCodeAt(index);\n\t        // parseInt parses a string to a first unavailable symbol\n\t        // but ToNumber should return NaN if a string contains unavailable symbols\n\t        if (code < 48 || code > maxCode) return NaN;\n\t      } return parseInt(digits, radix);\n\t    }\n\t  } return +it;\n\t};\n\n\t// `Number` constructor\n\t// https://tc39.github.io/ecma262/#sec-number-constructor\n\tif (isForced_1(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n\t  var NumberWrapper = function Number(value) {\n\t    var it = arguments.length < 1 ? 0 : value;\n\t    var dummy = this;\n\t    return dummy instanceof NumberWrapper\n\t      // check on 1..constructor(foo) case\n\t      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classofRaw(dummy) != NUMBER)\n\t        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n\t  };\n\t  for (var keys$1 = descriptors ? getOwnPropertyNames(NativeNumber) : (\n\t    // ES3:\n\t    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n\t    // ES2015 (in case, if modules with ES2015 Number statics required before):\n\t    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n\t    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n\t  ).split(','), j = 0, key; keys$1.length > j; j++) {\n\t    if (has(NativeNumber, key = keys$1[j]) && !has(NumberWrapper, key)) {\n\t      defineProperty$3(NumberWrapper, key, getOwnPropertyDescriptor$2(NativeNumber, key));\n\t    }\n\t  }\n\t  NumberWrapper.prototype = NumberPrototype;\n\t  NumberPrototype.constructor = NumberWrapper;\n\t  redefine(global_1, NUMBER, NumberWrapper);\n\t}\n\n\tvar nativeAssign = Object.assign;\n\n\t// `Object.assign` method\n\t// https://tc39.github.io/ecma262/#sec-object.assign\n\t// should work with symbols and should have deterministic property order (V8 bug)\n\tvar objectAssign = !nativeAssign || fails(function () {\n\t  var A = {};\n\t  var B = {};\n\t  // eslint-disable-next-line no-undef\n\t  var symbol = Symbol();\n\t  var alphabet = 'abcdefghijklmnopqrst';\n\t  A[symbol] = 7;\n\t  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n\t  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n\t}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n\t  var T = toObject(target);\n\t  var argumentsLength = arguments.length;\n\t  var index = 1;\n\t  var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;\n\t  var propertyIsEnumerable = objectPropertyIsEnumerable.f;\n\t  while (argumentsLength > index) {\n\t    var S = indexedObject(arguments[index++]);\n\t    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n\t    var length = keys.length;\n\t    var j = 0;\n\t    var key;\n\t    while (length > j) {\n\t      key = keys[j++];\n\t      if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n\t    }\n\t  } return T;\n\t} : nativeAssign;\n\n\t// `Object.assign` method\n\t// https://tc39.github.io/ecma262/#sec-object.assign\n\t_export({ target: 'Object', stat: true, forced: Object.assign !== objectAssign }, {\n\t  assign: objectAssign\n\t});\n\n\tvar propertyIsEnumerable = objectPropertyIsEnumerable.f;\n\n\t// `Object.{ entries, values }` methods implementation\n\tvar createMethod$3 = function (TO_ENTRIES) {\n\t  return function (it) {\n\t    var O = toIndexedObject(it);\n\t    var keys = objectKeys(O);\n\t    var length = keys.length;\n\t    var i = 0;\n\t    var result = [];\n\t    var key;\n\t    while (length > i) {\n\t      key = keys[i++];\n\t      if (!descriptors || propertyIsEnumerable.call(O, key)) {\n\t        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n\t      }\n\t    }\n\t    return result;\n\t  };\n\t};\n\n\tvar objectToArray = {\n\t  // `Object.entries` method\n\t  // https://tc39.github.io/ecma262/#sec-object.entries\n\t  entries: createMethod$3(true),\n\t  // `Object.values` method\n\t  // https://tc39.github.io/ecma262/#sec-object.values\n\t  values: createMethod$3(false)\n\t};\n\n\tvar $entries = objectToArray.entries;\n\n\t// `Object.entries` method\n\t// https://tc39.github.io/ecma262/#sec-object.entries\n\t_export({ target: 'Object', stat: true }, {\n\t  entries: function entries(O) {\n\t    return $entries(O);\n\t  }\n\t});\n\n\tvar TO_STRING_TAG$1 = wellKnownSymbol('toStringTag');\n\t// ES3 wrong here\n\tvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n\t// fallback for IE11 Script Access Denied error\n\tvar tryGet = function (it, key) {\n\t  try {\n\t    return it[key];\n\t  } catch (error) { /* empty */ }\n\t};\n\n\t// getting tag from ES6+ `Object.prototype.toString`\n\tvar classof = function (it) {\n\t  var O, tag, result;\n\t  return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t    // @@toStringTag case\n\t    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$1)) == 'string' ? tag\n\t    // builtinTag case\n\t    : CORRECT_ARGUMENTS ? classofRaw(O)\n\t    // ES3 arguments fallback\n\t    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n\t};\n\n\tvar TO_STRING_TAG$2 = wellKnownSymbol('toStringTag');\n\tvar test$1 = {};\n\n\ttest$1[TO_STRING_TAG$2] = 'z';\n\n\t// `Object.prototype.toString` method implementation\n\t// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n\tvar objectToString = String(test$1) !== '[object z]' ? function toString() {\n\t  return '[object ' + classof(this) + ']';\n\t} : test$1.toString;\n\n\tvar ObjectPrototype$2 = Object.prototype;\n\n\t// `Object.prototype.toString` method\n\t// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n\tif (objectToString !== ObjectPrototype$2.toString) {\n\t  redefine(ObjectPrototype$2, 'toString', objectToString, { unsafe: true });\n\t}\n\n\tvar trim$1 = stringTrim.trim;\n\n\n\tvar nativeParseFloat = global_1.parseFloat;\n\tvar FORCED$2 = 1 / nativeParseFloat(whitespaces + '-0') !== -Infinity;\n\n\t// `parseFloat` method\n\t// https://tc39.github.io/ecma262/#sec-parsefloat-string\n\tvar _parseFloat = FORCED$2 ? function parseFloat(string) {\n\t  var trimmedString = trim$1(String(string));\n\t  var result = nativeParseFloat(trimmedString);\n\t  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n\t} : nativeParseFloat;\n\n\t// `parseFloat` method\n\t// https://tc39.github.io/ecma262/#sec-parsefloat-string\n\t_export({ global: true, forced: parseFloat != _parseFloat }, {\n\t  parseFloat: _parseFloat\n\t});\n\n\tvar trim$2 = stringTrim.trim;\n\n\n\tvar nativeParseInt = global_1.parseInt;\n\tvar hex = /^[+-]?0[Xx]/;\n\tvar FORCED$3 = nativeParseInt(whitespaces + '08') !== 8 || nativeParseInt(whitespaces + '0x16') !== 22;\n\n\t// `parseInt` method\n\t// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n\tvar _parseInt = FORCED$3 ? function parseInt(string, radix) {\n\t  var S = trim$2(String(string));\n\t  return nativeParseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n\t} : nativeParseInt;\n\n\t// `parseInt` method\n\t// https://tc39.github.io/ecma262/#sec-parseint-string-radix\n\t_export({ global: true, forced: parseInt != _parseInt }, {\n\t  parseInt: _parseInt\n\t});\n\n\t// `RegExp.prototype.flags` getter implementation\n\t// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\n\tvar regexpFlags = function () {\n\t  var that = anObject(this);\n\t  var result = '';\n\t  if (that.global) result += 'g';\n\t  if (that.ignoreCase) result += 'i';\n\t  if (that.multiline) result += 'm';\n\t  if (that.dotAll) result += 's';\n\t  if (that.unicode) result += 'u';\n\t  if (that.sticky) result += 'y';\n\t  return result;\n\t};\n\n\tvar TO_STRING = 'toString';\n\tvar RegExpPrototype = RegExp.prototype;\n\tvar nativeToString = RegExpPrototype[TO_STRING];\n\n\tvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n\t// FF44- RegExp#toString has a wrong name\n\tvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n\t// `RegExp.prototype.toString` method\n\t// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\n\tif (NOT_GENERIC || INCORRECT_NAME) {\n\t  redefine(RegExp.prototype, TO_STRING, function toString() {\n\t    var R = anObject(this);\n\t    var p = String(R.source);\n\t    var rf = R.flags;\n\t    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? regexpFlags.call(R) : rf);\n\t    return '/' + p + '/' + f;\n\t  }, { unsafe: true });\n\t}\n\n\tvar MATCH = wellKnownSymbol('match');\n\n\t// `IsRegExp` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-isregexp\n\tvar isRegexp = function (it) {\n\t  var isRegExp;\n\t  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp');\n\t};\n\n\tvar notARegexp = function (it) {\n\t  if (isRegexp(it)) {\n\t    throw TypeError(\"The method doesn't accept regular expressions\");\n\t  } return it;\n\t};\n\n\tvar MATCH$1 = wellKnownSymbol('match');\n\n\tvar correctIsRegexpLogic = function (METHOD_NAME) {\n\t  var regexp = /./;\n\t  try {\n\t    '/./'[METHOD_NAME](regexp);\n\t  } catch (e) {\n\t    try {\n\t      regexp[MATCH$1] = false;\n\t      return '/./'[METHOD_NAME](regexp);\n\t    } catch (f) { /* empty */ }\n\t  } return false;\n\t};\n\n\t// `String.prototype.includes` method\n\t// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n\t_export({ target: 'String', proto: true, forced: !correctIsRegexpLogic('includes') }, {\n\t  includes: function includes(searchString /* , position = 0 */) {\n\t    return !!~String(requireObjectCoercible(this))\n\t      .indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n\t  }\n\t});\n\n\t// `String.prototype.{ codePointAt, at }` methods implementation\n\tvar createMethod$4 = function (CONVERT_TO_STRING) {\n\t  return function ($this, pos) {\n\t    var S = String(requireObjectCoercible($this));\n\t    var position = toInteger(pos);\n\t    var size = S.length;\n\t    var first, second;\n\t    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n\t    first = S.charCodeAt(position);\n\t    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n\t      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n\t        ? CONVERT_TO_STRING ? S.charAt(position) : first\n\t        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n\t  };\n\t};\n\n\tvar stringMultibyte = {\n\t  // `String.prototype.codePointAt` method\n\t  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n\t  codeAt: createMethod$4(false),\n\t  // `String.prototype.at` method\n\t  // https://github.com/mathiasbynens/String.prototype.at\n\t  charAt: createMethod$4(true)\n\t};\n\n\tvar charAt = stringMultibyte.charAt;\n\n\n\n\tvar STRING_ITERATOR = 'String Iterator';\n\tvar setInternalState$2 = internalState.set;\n\tvar getInternalState$2 = internalState.getterFor(STRING_ITERATOR);\n\n\t// `String.prototype[@@iterator]` method\n\t// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\n\tdefineIterator(String, 'String', function (iterated) {\n\t  setInternalState$2(this, {\n\t    type: STRING_ITERATOR,\n\t    string: String(iterated),\n\t    index: 0\n\t  });\n\t// `%StringIteratorPrototype%.next` method\n\t// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n\t}, function next() {\n\t  var state = getInternalState$2(this);\n\t  var string = state.string;\n\t  var index = state.index;\n\t  var point;\n\t  if (index >= string.length) return { value: undefined, done: true };\n\t  point = charAt(string, index);\n\t  state.index += point.length;\n\t  return { value: point, done: false };\n\t});\n\n\tvar nativeExec = RegExp.prototype.exec;\n\t// This always refers to the native implementation, because the\n\t// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n\t// which loads this file before patching the method.\n\tvar nativeReplace = String.prototype.replace;\n\n\tvar patchedExec = nativeExec;\n\n\tvar UPDATES_LAST_INDEX_WRONG = (function () {\n\t  var re1 = /a/;\n\t  var re2 = /b*/g;\n\t  nativeExec.call(re1, 'a');\n\t  nativeExec.call(re2, 'a');\n\t  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n\t})();\n\n\t// nonparticipating capturing group, copied from es5-shim's String#split patch.\n\tvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\n\tvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\n\tif (PATCH) {\n\t  patchedExec = function exec(str) {\n\t    var re = this;\n\t    var lastIndex, reCopy, match, i;\n\n\t    if (NPCG_INCLUDED) {\n\t      reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n\t    }\n\t    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n\t    match = nativeExec.call(re, str);\n\n\t    if (UPDATES_LAST_INDEX_WRONG && match) {\n\t      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n\t    }\n\t    if (NPCG_INCLUDED && match && match.length > 1) {\n\t      // Fix browsers whose `exec` methods don't consistently return `undefined`\n\t      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n\t      nativeReplace.call(match[0], reCopy, function () {\n\t        for (i = 1; i < arguments.length - 2; i++) {\n\t          if (arguments[i] === undefined) match[i] = undefined;\n\t        }\n\t      });\n\t    }\n\n\t    return match;\n\t  };\n\t}\n\n\tvar regexpExec = patchedExec;\n\n\tvar SPECIES$3 = wellKnownSymbol('species');\n\n\tvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n\t  // #replace needs built-in support for named groups.\n\t  // #match works fine because it just return the exec results, even if it has\n\t  // a \"grops\" property.\n\t  var re = /./;\n\t  re.exec = function () {\n\t    var result = [];\n\t    result.groups = { a: '7' };\n\t    return result;\n\t  };\n\t  return ''.replace(re, '$<a>') !== '7';\n\t});\n\n\t// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n\t// Weex JS has frozen built-in prototypes, so use try / catch wrapper\n\tvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n\t  var re = /(?:)/;\n\t  var originalExec = re.exec;\n\t  re.exec = function () { return originalExec.apply(this, arguments); };\n\t  var result = 'ab'.split(re);\n\t  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n\t});\n\n\tvar fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {\n\t  var SYMBOL = wellKnownSymbol(KEY);\n\n\t  var DELEGATES_TO_SYMBOL = !fails(function () {\n\t    // String methods call symbol-named RegEp methods\n\t    var O = {};\n\t    O[SYMBOL] = function () { return 7; };\n\t    return ''[KEY](O) != 7;\n\t  });\n\n\t  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n\t    // Symbol-named RegExp methods call .exec\n\t    var execCalled = false;\n\t    var re = /a/;\n\t    re.exec = function () { execCalled = true; return null; };\n\n\t    if (KEY === 'split') {\n\t      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n\t      // a new one. We need to return the patched regex when creating the new one.\n\t      re.constructor = {};\n\t      re.constructor[SPECIES$3] = function () { return re; };\n\t    }\n\n\t    re[SYMBOL]('');\n\t    return !execCalled;\n\t  });\n\n\t  if (\n\t    !DELEGATES_TO_SYMBOL ||\n\t    !DELEGATES_TO_EXEC ||\n\t    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n\t    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n\t  ) {\n\t    var nativeRegExpMethod = /./[SYMBOL];\n\t    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n\t      if (regexp.exec === regexpExec) {\n\t        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n\t          // The native String method already delegates to @@method (this\n\t          // polyfilled function), leasing to infinite recursion.\n\t          // We avoid it by directly calling the native @@method method.\n\t          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n\t        }\n\t        return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n\t      }\n\t      return { done: false };\n\t    });\n\t    var stringMethod = methods[0];\n\t    var regexMethod = methods[1];\n\n\t    redefine(String.prototype, KEY, stringMethod);\n\t    redefine(RegExp.prototype, SYMBOL, length == 2\n\t      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n\t      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n\t      ? function (string, arg) { return regexMethod.call(string, this, arg); }\n\t      // 21.2.5.6 RegExp.prototype[@@match](string)\n\t      // 21.2.5.9 RegExp.prototype[@@search](string)\n\t      : function (string) { return regexMethod.call(string, this); }\n\t    );\n\t    if (sham) hide(RegExp.prototype[SYMBOL], 'sham', true);\n\t  }\n\t};\n\n\tvar charAt$1 = stringMultibyte.charAt;\n\n\t// `AdvanceStringIndex` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-advancestringindex\n\tvar advanceStringIndex = function (S, index, unicode) {\n\t  return index + (unicode ? charAt$1(S, index).length : 1);\n\t};\n\n\t// `RegExpExec` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-regexpexec\n\tvar regexpExecAbstract = function (R, S) {\n\t  var exec = R.exec;\n\t  if (typeof exec === 'function') {\n\t    var result = exec.call(R, S);\n\t    if (typeof result !== 'object') {\n\t      throw TypeError('RegExp exec method returned something other than an Object or null');\n\t    }\n\t    return result;\n\t  }\n\n\t  if (classofRaw(R) !== 'RegExp') {\n\t    throw TypeError('RegExp#exec called on incompatible receiver');\n\t  }\n\n\t  return regexpExec.call(R, S);\n\t};\n\n\tvar max$3 = Math.max;\n\tvar min$3 = Math.min;\n\tvar floor$1 = Math.floor;\n\tvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\n\tvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n\tvar maybeToString = function (it) {\n\t  return it === undefined ? it : String(it);\n\t};\n\n\t// @@replace logic\n\tfixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative) {\n\t  return [\n\t    // `String.prototype.replace` method\n\t    // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n\t    function replace(searchValue, replaceValue) {\n\t      var O = requireObjectCoercible(this);\n\t      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n\t      return replacer !== undefined\n\t        ? replacer.call(searchValue, O, replaceValue)\n\t        : nativeReplace.call(String(O), searchValue, replaceValue);\n\t    },\n\t    // `RegExp.prototype[@@replace]` method\n\t    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n\t    function (regexp, replaceValue) {\n\t      var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n\t      if (res.done) return res.value;\n\n\t      var rx = anObject(regexp);\n\t      var S = String(this);\n\n\t      var functionalReplace = typeof replaceValue === 'function';\n\t      if (!functionalReplace) replaceValue = String(replaceValue);\n\n\t      var global = rx.global;\n\t      if (global) {\n\t        var fullUnicode = rx.unicode;\n\t        rx.lastIndex = 0;\n\t      }\n\t      var results = [];\n\t      while (true) {\n\t        var result = regexpExecAbstract(rx, S);\n\t        if (result === null) break;\n\n\t        results.push(result);\n\t        if (!global) break;\n\n\t        var matchStr = String(result[0]);\n\t        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n\t      }\n\n\t      var accumulatedResult = '';\n\t      var nextSourcePosition = 0;\n\t      for (var i = 0; i < results.length; i++) {\n\t        result = results[i];\n\n\t        var matched = String(result[0]);\n\t        var position = max$3(min$3(toInteger(result.index), S.length), 0);\n\t        var captures = [];\n\t        // NOTE: This is equivalent to\n\t        //   captures = result.slice(1).map(maybeToString)\n\t        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n\t        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n\t        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n\t        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n\t        var namedCaptures = result.groups;\n\t        if (functionalReplace) {\n\t          var replacerArgs = [matched].concat(captures, position, S);\n\t          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n\t          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n\t        } else {\n\t          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n\t        }\n\t        if (position >= nextSourcePosition) {\n\t          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n\t          nextSourcePosition = position + matched.length;\n\t        }\n\t      }\n\t      return accumulatedResult + S.slice(nextSourcePosition);\n\t    }\n\t  ];\n\n\t  // https://tc39.github.io/ecma262/#sec-getsubstitution\n\t  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n\t    var tailPos = position + matched.length;\n\t    var m = captures.length;\n\t    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n\t    if (namedCaptures !== undefined) {\n\t      namedCaptures = toObject(namedCaptures);\n\t      symbols = SUBSTITUTION_SYMBOLS;\n\t    }\n\t    return nativeReplace.call(replacement, symbols, function (match, ch) {\n\t      var capture;\n\t      switch (ch.charAt(0)) {\n\t        case '$': return '$';\n\t        case '&': return matched;\n\t        case '`': return str.slice(0, position);\n\t        case \"'\": return str.slice(tailPos);\n\t        case '<':\n\t          capture = namedCaptures[ch.slice(1, -1)];\n\t          break;\n\t        default: // \\d\\d?\n\t          var n = +ch;\n\t          if (n === 0) return match;\n\t          if (n > m) {\n\t            var f = floor$1(n / 10);\n\t            if (f === 0) return match;\n\t            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n\t            return match;\n\t          }\n\t          capture = captures[n - 1];\n\t      }\n\t      return capture === undefined ? '' : capture;\n\t    });\n\t  }\n\t});\n\n\t// `SameValue` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-samevalue\n\tvar sameValue = Object.is || function is(x, y) {\n\t  // eslint-disable-next-line no-self-compare\n\t  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n\t};\n\n\t// @@search logic\n\tfixRegexpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n\t  return [\n\t    // `String.prototype.search` method\n\t    // https://tc39.github.io/ecma262/#sec-string.prototype.search\n\t    function search(regexp) {\n\t      var O = requireObjectCoercible(this);\n\t      var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n\t      return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n\t    },\n\t    // `RegExp.prototype[@@search]` method\n\t    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n\t    function (regexp) {\n\t      var res = maybeCallNative(nativeSearch, regexp, this);\n\t      if (res.done) return res.value;\n\n\t      var rx = anObject(regexp);\n\t      var S = String(this);\n\n\t      var previousLastIndex = rx.lastIndex;\n\t      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n\t      var result = regexpExecAbstract(rx, S);\n\t      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n\t      return result === null ? -1 : result.index;\n\t    }\n\t  ];\n\t});\n\n\tvar SPECIES$4 = wellKnownSymbol('species');\n\n\t// `SpeciesConstructor` abstract operation\n\t// https://tc39.github.io/ecma262/#sec-speciesconstructor\n\tvar speciesConstructor = function (O, defaultConstructor) {\n\t  var C = anObject(O).constructor;\n\t  var S;\n\t  return C === undefined || (S = anObject(C)[SPECIES$4]) == undefined ? defaultConstructor : aFunction$1(S);\n\t};\n\n\tvar arrayPush = [].push;\n\tvar min$4 = Math.min;\n\tvar MAX_UINT32 = 0xFFFFFFFF;\n\n\t// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\n\tvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n\t// @@split logic\n\tfixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n\t  var internalSplit;\n\t  if (\n\t    'abbc'.split(/(b)*/)[1] == 'c' ||\n\t    'test'.split(/(?:)/, -1).length != 4 ||\n\t    'ab'.split(/(?:ab)*/).length != 2 ||\n\t    '.'.split(/(.?)(.?)/).length != 4 ||\n\t    '.'.split(/()()/).length > 1 ||\n\t    ''.split(/.?/).length\n\t  ) {\n\t    // based on es5-shim implementation, need to rework it\n\t    internalSplit = function (separator, limit) {\n\t      var string = String(requireObjectCoercible(this));\n\t      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n\t      if (lim === 0) return [];\n\t      if (separator === undefined) return [string];\n\t      // If `separator` is not a regex, use native split\n\t      if (!isRegexp(separator)) {\n\t        return nativeSplit.call(string, separator, lim);\n\t      }\n\t      var output = [];\n\t      var flags = (separator.ignoreCase ? 'i' : '') +\n\t                  (separator.multiline ? 'm' : '') +\n\t                  (separator.unicode ? 'u' : '') +\n\t                  (separator.sticky ? 'y' : '');\n\t      var lastLastIndex = 0;\n\t      // Make `global` and avoid `lastIndex` issues by working with a copy\n\t      var separatorCopy = new RegExp(separator.source, flags + 'g');\n\t      var match, lastIndex, lastLength;\n\t      while (match = regexpExec.call(separatorCopy, string)) {\n\t        lastIndex = separatorCopy.lastIndex;\n\t        if (lastIndex > lastLastIndex) {\n\t          output.push(string.slice(lastLastIndex, match.index));\n\t          if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n\t          lastLength = match[0].length;\n\t          lastLastIndex = lastIndex;\n\t          if (output.length >= lim) break;\n\t        }\n\t        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n\t      }\n\t      if (lastLastIndex === string.length) {\n\t        if (lastLength || !separatorCopy.test('')) output.push('');\n\t      } else output.push(string.slice(lastLastIndex));\n\t      return output.length > lim ? output.slice(0, lim) : output;\n\t    };\n\t  // Chakra, V8\n\t  } else if ('0'.split(undefined, 0).length) {\n\t    internalSplit = function (separator, limit) {\n\t      return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n\t    };\n\t  } else internalSplit = nativeSplit;\n\n\t  return [\n\t    // `String.prototype.split` method\n\t    // https://tc39.github.io/ecma262/#sec-string.prototype.split\n\t    function split(separator, limit) {\n\t      var O = requireObjectCoercible(this);\n\t      var splitter = separator == undefined ? undefined : separator[SPLIT];\n\t      return splitter !== undefined\n\t        ? splitter.call(separator, O, limit)\n\t        : internalSplit.call(String(O), separator, limit);\n\t    },\n\t    // `RegExp.prototype[@@split]` method\n\t    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n\t    //\n\t    // NOTE: This cannot be properly polyfilled in engines that don't support\n\t    // the 'y' flag.\n\t    function (regexp, limit) {\n\t      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n\t      if (res.done) return res.value;\n\n\t      var rx = anObject(regexp);\n\t      var S = String(this);\n\t      var C = speciesConstructor(rx, RegExp);\n\n\t      var unicodeMatching = rx.unicode;\n\t      var flags = (rx.ignoreCase ? 'i' : '') +\n\t                  (rx.multiline ? 'm' : '') +\n\t                  (rx.unicode ? 'u' : '') +\n\t                  (SUPPORTS_Y ? 'y' : 'g');\n\n\t      // ^(? + rx + ) is needed, in combination with some S slicing, to\n\t      // simulate the 'y' flag.\n\t      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n\t      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n\t      if (lim === 0) return [];\n\t      if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : [];\n\t      var p = 0;\n\t      var q = 0;\n\t      var A = [];\n\t      while (q < S.length) {\n\t        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n\t        var z = regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));\n\t        var e;\n\t        if (\n\t          z === null ||\n\t          (e = min$4(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n\t        ) {\n\t          q = advanceStringIndex(S, q, unicodeMatching);\n\t        } else {\n\t          A.push(S.slice(p, q));\n\t          if (A.length === lim) return A;\n\t          for (var i = 1; i <= z.length - 1; i++) {\n\t            A.push(z[i]);\n\t            if (A.length === lim) return A;\n\t          }\n\t          q = p = e;\n\t        }\n\t      }\n\t      A.push(S.slice(p));\n\t      return A;\n\t    }\n\t  ];\n\t}, !SUPPORTS_Y);\n\n\tvar non = '\\u200B\\u0085\\u180E';\n\n\t// check that a method works with the correct list\n\t// of whitespaces and has a correct name\n\tvar forcedStringTrimMethod = function (METHOD_NAME) {\n\t  return fails(function () {\n\t    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n\t  });\n\t};\n\n\tvar $trim = stringTrim.trim;\n\n\n\t// `String.prototype.trim` method\n\t// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n\t_export({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n\t  trim: function trim() {\n\t    return $trim(this);\n\t  }\n\t});\n\n\t// iterable DOM collections\n\t// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\n\tvar domIterables = {\n\t  CSSRuleList: 0,\n\t  CSSStyleDeclaration: 0,\n\t  CSSValueList: 0,\n\t  ClientRectList: 0,\n\t  DOMRectList: 0,\n\t  DOMStringList: 0,\n\t  DOMTokenList: 1,\n\t  DataTransferItemList: 0,\n\t  FileList: 0,\n\t  HTMLAllCollection: 0,\n\t  HTMLCollection: 0,\n\t  HTMLFormElement: 0,\n\t  HTMLSelectElement: 0,\n\t  MediaList: 0,\n\t  MimeTypeArray: 0,\n\t  NamedNodeMap: 0,\n\t  NodeList: 1,\n\t  PaintRequestList: 0,\n\t  Plugin: 0,\n\t  PluginArray: 0,\n\t  SVGLengthList: 0,\n\t  SVGNumberList: 0,\n\t  SVGPathSegList: 0,\n\t  SVGPointList: 0,\n\t  SVGStringList: 0,\n\t  SVGTransformList: 0,\n\t  SourceBufferList: 0,\n\t  StyleSheetList: 0,\n\t  TextTrackCueList: 0,\n\t  TextTrackList: 0,\n\t  TouchList: 0\n\t};\n\n\tvar $forEach$1 = arrayIteration.forEach;\n\n\n\t// `Array.prototype.forEach` method implementation\n\t// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n\tvar arrayForEach = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {\n\t  return $forEach$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n\t} : [].forEach;\n\n\tfor (var COLLECTION_NAME in domIterables) {\n\t  var Collection = global_1[COLLECTION_NAME];\n\t  var CollectionPrototype = Collection && Collection.prototype;\n\t  // some Chrome versions have non-configurable methods on DOMTokenList\n\t  if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try {\n\t    hide(CollectionPrototype, 'forEach', arrayForEach);\n\t  } catch (error) {\n\t    CollectionPrototype.forEach = arrayForEach;\n\t  }\n\t}\n\n\tvar ITERATOR$2 = wellKnownSymbol('iterator');\n\tvar TO_STRING_TAG$3 = wellKnownSymbol('toStringTag');\n\tvar ArrayValues = es_array_iterator.values;\n\n\tfor (var COLLECTION_NAME$1 in domIterables) {\n\t  var Collection$1 = global_1[COLLECTION_NAME$1];\n\t  var CollectionPrototype$1 = Collection$1 && Collection$1.prototype;\n\t  if (CollectionPrototype$1) {\n\t    // some Chrome versions have non-configurable methods on DOMTokenList\n\t    if (CollectionPrototype$1[ITERATOR$2] !== ArrayValues) try {\n\t      hide(CollectionPrototype$1, ITERATOR$2, ArrayValues);\n\t    } catch (error) {\n\t      CollectionPrototype$1[ITERATOR$2] = ArrayValues;\n\t    }\n\t    if (!CollectionPrototype$1[TO_STRING_TAG$3]) hide(CollectionPrototype$1, TO_STRING_TAG$3, COLLECTION_NAME$1);\n\t    if (domIterables[COLLECTION_NAME$1]) for (var METHOD_NAME in es_array_iterator) {\n\t      // some Chrome versions have non-configurable methods on DOMTokenList\n\t      if (CollectionPrototype$1[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) try {\n\t        hide(CollectionPrototype$1, METHOD_NAME, es_array_iterator[METHOD_NAME]);\n\t      } catch (error) {\n\t        CollectionPrototype$1[METHOD_NAME] = es_array_iterator[METHOD_NAME];\n\t      }\n\t    }\n\t  }\n\t}\n\n\tfunction _typeof(obj) {\n\t  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n\t    _typeof = function (obj) {\n\t      return typeof obj;\n\t    };\n\t  } else {\n\t    _typeof = function (obj) {\n\t      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n\t    };\n\t  }\n\n\t  return _typeof(obj);\n\t}\n\n\tfunction _classCallCheck(instance, Constructor) {\n\t  if (!(instance instanceof Constructor)) {\n\t    throw new TypeError(\"Cannot call a class as a function\");\n\t  }\n\t}\n\n\tfunction _defineProperties(target, props) {\n\t  for (var i = 0; i < props.length; i++) {\n\t    var descriptor = props[i];\n\t    descriptor.enumerable = descriptor.enumerable || false;\n\t    descriptor.configurable = true;\n\t    if (\"value\" in descriptor) descriptor.writable = true;\n\t    Object.defineProperty(target, descriptor.key, descriptor);\n\t  }\n\t}\n\n\tfunction _createClass(Constructor, protoProps, staticProps) {\n\t  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n\t  if (staticProps) _defineProperties(Constructor, staticProps);\n\t  return Constructor;\n\t}\n\n\tfunction _slicedToArray(arr, i) {\n\t  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n\t}\n\n\tfunction _toConsumableArray(arr) {\n\t  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n\t}\n\n\tfunction _arrayWithoutHoles(arr) {\n\t  if (Array.isArray(arr)) {\n\t    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n\t    return arr2;\n\t  }\n\t}\n\n\tfunction _arrayWithHoles(arr) {\n\t  if (Array.isArray(arr)) return arr;\n\t}\n\n\tfunction _iterableToArray(iter) {\n\t  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n\t}\n\n\tfunction _iterableToArrayLimit(arr, i) {\n\t  var _arr = [];\n\t  var _n = true;\n\t  var _d = false;\n\t  var _e = undefined;\n\n\t  try {\n\t    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n\t      _arr.push(_s.value);\n\n\t      if (i && _arr.length === i) break;\n\t    }\n\t  } catch (err) {\n\t    _d = true;\n\t    _e = err;\n\t  } finally {\n\t    try {\n\t      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n\t    } finally {\n\t      if (_d) throw _e;\n\t    }\n\t  }\n\n\t  return _arr;\n\t}\n\n\tfunction _nonIterableSpread() {\n\t  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n\t}\n\n\tfunction _nonIterableRest() {\n\t  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n\t}\n\n\tvar VERSION = '1.15.5';\n\tvar bootstrapVersion = 4;\n\n\ttry {\n\t  var rawVersion = $.fn.dropdown.Constructor.VERSION; // Only try to parse VERSION if it is defined.\n\t  // It is undefined in older versions of Bootstrap (tested with 3.1.1).\n\n\t  if (rawVersion !== undefined) {\n\t    bootstrapVersion = parseInt(rawVersion, 10);\n\t  }\n\t} catch (e) {// ignore\n\t}\n\n\tvar CONSTANTS = {\n\t  3: {\n\t    iconsPrefix: 'glyphicon',\n\t    icons: {\n\t      paginationSwitchDown: 'glyphicon-collapse-down icon-chevron-down',\n\t      paginationSwitchUp: 'glyphicon-collapse-up icon-chevron-up',\n\t      refresh: 'glyphicon-refresh icon-refresh',\n\t      toggleOff: 'glyphicon-list-alt icon-list-alt',\n\t      toggleOn: 'glyphicon-list-alt icon-list-alt',\n\t      columns: 'glyphicon-th icon-th',\n\t      detailOpen: 'glyphicon-plus icon-plus',\n\t      detailClose: 'glyphicon-minus icon-minus',\n\t      fullscreen: 'glyphicon-fullscreen',\n\t      search: 'glyphicon-search',\n\t      clearSearch: 'glyphicon-trash'\n\t    },\n\t    classes: {\n\t      buttonsPrefix: 'btn',\n\t      buttons: 'default',\n\t      buttonsGroup: 'btn-group',\n\t      buttonsDropdown: 'btn-group',\n\t      pull: 'pull',\n\t      inputGroup: 'input-group',\n\t      inputPrefix: 'input-',\n\t      input: 'form-control',\n\t      paginationDropdown: 'btn-group dropdown',\n\t      dropup: 'dropup',\n\t      dropdownActive: 'active',\n\t      paginationActive: 'active',\n\t      buttonActive: 'active'\n\t    },\n\t    html: {\n\t      toolbarDropdown: ['<ul class=\"dropdown-menu\" role=\"menu\">', '</ul>'],\n\t      toolbarDropdownItem: '<li role=\"menuitem\"><label>%s</label></li>',\n\t      toolbarDropdownSeparator: '<li class=\"divider\"></li>',\n\t      pageDropdown: ['<ul class=\"dropdown-menu\" role=\"menu\">', '</ul>'],\n\t      pageDropdownItem: '<li role=\"menuitem\" class=\"%s\"><a href=\"#\">%s</a></li>',\n\t      dropdownCaret: '<span class=\"caret\"></span>',\n\t      pagination: ['<ul class=\"pagination%s\">', '</ul>'],\n\t      paginationItem: '<li class=\"page-item%s\"><a class=\"page-link\" aria-label=\"%s\" href=\"javascript:void(0)\">%s</a></li>',\n\t      icon: '<i class=\"%s %s\"></i>',\n\t      inputGroup: '<div class=\"input-group\">%s<span class=\"input-group-btn\">%s</span></div>',\n\t      searchInput: '<input class=\"%s%s\" type=\"text\" placeholder=\"%s\">',\n\t      searchButton: '<button class=\"%s\" type=\"button\" name=\"search\" title=\"%s\">%s %s</button>',\n\t      searchClearButton: '<button class=\"%s\" type=\"button\" name=\"clearSearch\" title=\"%s\">%s %s</button>'\n\t    }\n\t  },\n\t  4: {\n\t    iconsPrefix: 'fa',\n\t    icons: {\n\t      paginationSwitchDown: 'fa-caret-square-down',\n\t      paginationSwitchUp: 'fa-caret-square-up',\n\t      refresh: 'fa-sync',\n\t      toggleOff: 'fa-toggle-off',\n\t      toggleOn: 'fa-toggle-on',\n\t      columns: 'fa-th-list',\n\t      detailOpen: 'fa-plus',\n\t      detailClose: 'fa-minus',\n\t      fullscreen: 'fa-arrows-alt',\n\t      search: 'fa-search',\n\t      clearSearch: 'fa-trash'\n\t    },\n\t    classes: {\n\t      buttonsPrefix: 'btn',\n\t      buttons: 'secondary',\n\t      buttonsGroup: 'btn-group',\n\t      buttonsDropdown: 'btn-group',\n\t      pull: 'float',\n\t      inputGroup: 'btn-group',\n\t      inputPrefix: 'form-control-',\n\t      input: 'form-control',\n\t      paginationDropdown: 'btn-group dropdown',\n\t      dropup: 'dropup',\n\t      dropdownActive: 'active',\n\t      paginationActive: 'active',\n\t      buttonActive: 'active'\n\t    },\n\t    html: {\n\t      toolbarDropdown: ['<div class=\"dropdown-menu dropdown-menu-right\">', '</div>'],\n\t      toolbarDropdownItem: '<label class=\"dropdown-item\">%s</label>',\n\t      pageDropdown: ['<div class=\"dropdown-menu\">', '</div>'],\n\t      pageDropdownItem: '<a class=\"dropdown-item %s\" href=\"#\">%s</a>',\n\t      toolbarDropdownSeparator: '<div class=\"dropdown-divider\"></div>',\n\t      dropdownCaret: '<span class=\"caret\"></span>',\n\t      pagination: ['<ul class=\"pagination%s\">', '</ul>'],\n\t      paginationItem: '<li class=\"page-item%s\"><a class=\"page-link\" aria-label=\"%s\" href=\"javascript:void(0)\">%s</a></li>',\n\t      icon: '<i class=\"%s %s\"></i>',\n\t      inputGroup: '<div class=\"input-group\">%s<div class=\"input-group-append\">%s</div></div>',\n\t      searchInput: '<input class=\"%s%s\" type=\"text\" placeholder=\"%s\">',\n\t      searchButton: '<button class=\"%s\" type=\"button\" name=\"search\" title=\"%s\">%s %s</button>',\n\t      searchClearButton: '<button class=\"%s\" type=\"button\" name=\"clearSearch\" title=\"%s\">%s %s</button>'\n\t    }\n\t  }\n\t}[bootstrapVersion];\n\tvar DEFAULTS = {\n\t  height: undefined,\n\t  classes: 'table table-bordered table-hover',\n\t  theadClasses: '',\n\t  rowStyle: function rowStyle(row, index) {\n\t    return {};\n\t  },\n\t  rowAttributes: function rowAttributes(row, index) {\n\t    return {};\n\t  },\n\t  undefinedText: '-',\n\t  locale: undefined,\n\t  virtualScroll: false,\n\t  virtualScrollItemHeight: undefined,\n\t  sortable: true,\n\t  sortClass: undefined,\n\t  silentSort: true,\n\t  sortName: undefined,\n\t  sortOrder: 'asc',\n\t  sortStable: false,\n\t  rememberOrder: false,\n\t  customSort: undefined,\n\t  columns: [[]],\n\t  data: [],\n\t  url: undefined,\n\t  method: 'get',\n\t  cache: true,\n\t  contentType: 'application/json',\n\t  dataType: 'json',\n\t  ajax: undefined,\n\t  ajaxOptions: {},\n\t  queryParams: function queryParams(params) {\n\t    return params;\n\t  },\n\t  queryParamsType: 'limit',\n\t  // 'limit', undefined\n\t  responseHandler: function responseHandler(res) {\n\t    return res;\n\t  },\n\t  totalField: 'total',\n\t  totalNotFilteredField: 'totalNotFiltered',\n\t  dataField: 'rows',\n\t  pagination: false,\n\t  onlyInfoPagination: false,\n\t  showExtendedPagination: false,\n\t  paginationLoop: true,\n\t  sidePagination: 'client',\n\t  // client or server\n\t  totalRows: 0,\n\t  totalNotFiltered: 0,\n\t  pageNumber: 1,\n\t  pageSize: 10,\n\t  pageList: [10, 25, 50, 100],\n\t  paginationHAlign: 'right',\n\t  // right, left\n\t  paginationVAlign: 'bottom',\n\t  // bottom, top, both\n\t  paginationDetailHAlign: 'left',\n\t  // right, left\n\t  paginationPreText: '&lsaquo;',\n\t  paginationNextText: '&rsaquo;',\n\t  paginationSuccessivelySize: 5,\n\t  // Maximum successively number of pages in a row\n\t  paginationPagesBySide: 1,\n\t  // Number of pages on each side (right, left) of the current page.\n\t  paginationUseIntermediate: false,\n\t  // Calculate intermediate pages for quick access\n\t  search: false,\n\t  searchOnEnterKey: false,\n\t  strictSearch: false,\n\t  visibleSearch: false,\n\t  showButtonIcons: true,\n\t  showButtonText: false,\n\t  showSearchButton: false,\n\t  showSearchClearButton: false,\n\t  trimOnSearch: true,\n\t  searchAlign: 'right',\n\t  searchTimeOut: 500,\n\t  searchText: '',\n\t  customSearch: undefined,\n\t  showHeader: true,\n\t  showFooter: false,\n\t  footerStyle: function footerStyle(row, index) {\n\t    return {};\n\t  },\n\t  showColumns: false,\n\t  showColumnsToggleAll: false,\n\t  minimumCountColumns: 1,\n\t  showPaginationSwitch: false,\n\t  showRefresh: false,\n\t  showToggle: false,\n\t  showFullscreen: false,\n\t  smartDisplay: true,\n\t  escape: false,\n\t  filterOptions: {\n\t    filterAlgorithm: 'and'\n\t  },\n\t  idField: undefined,\n\t  selectItemName: 'btSelectItem',\n\t  clickToSelect: false,\n\t  ignoreClickToSelectOn: function ignoreClickToSelectOn(_ref) {\n\t    var tagName = _ref.tagName;\n\t    return ['A', 'BUTTON'].includes(tagName);\n\t  },\n\t  singleSelect: false,\n\t  checkboxHeader: true,\n\t  maintainMetaData: false,\n\t  multipleSelectRow: false,\n\t  uniqueId: undefined,\n\t  cardView: false,\n\t  detailView: false,\n\t  detailViewIcon: true,\n\t  detailViewByClick: false,\n\t  detailFormatter: function detailFormatter(index, row) {\n\t    return '';\n\t  },\n\t  detailFilter: function detailFilter(index, row) {\n\t    return true;\n\t  },\n\t  toolbar: undefined,\n\t  toolbarAlign: 'left',\n\t  buttonsToolbar: undefined,\n\t  buttonsAlign: 'right',\n\t  buttonsPrefix: CONSTANTS.classes.buttonsPrefix,\n\t  buttonsClass: CONSTANTS.classes.buttons,\n\t  icons: CONSTANTS.icons,\n\t  html: CONSTANTS.html,\n\t  iconSize: undefined,\n\t  iconsPrefix: CONSTANTS.iconsPrefix,\n\t  // glyphicon or fa(font-awesome)\n\t  onAll: function onAll(name, args) {\n\t    return false;\n\t  },\n\t  onClickCell: function onClickCell(field, value, row, $element) {\n\t    return false;\n\t  },\n\t  onDblClickCell: function onDblClickCell(field, value, row, $element) {\n\t    return false;\n\t  },\n\t  onClickRow: function onClickRow(item, $element) {\n\t    return false;\n\t  },\n\t  onDblClickRow: function onDblClickRow(item, $element) {\n\t    return false;\n\t  },\n\t  onSort: function onSort(name, order) {\n\t    return false;\n\t  },\n\t  onCheck: function onCheck(row) {\n\t    return false;\n\t  },\n\t  onUncheck: function onUncheck(row) {\n\t    return false;\n\t  },\n\t  onCheckAll: function onCheckAll(rows) {\n\t    return false;\n\t  },\n\t  onUncheckAll: function onUncheckAll(rows) {\n\t    return false;\n\t  },\n\t  onCheckSome: function onCheckSome(rows) {\n\t    return false;\n\t  },\n\t  onUncheckSome: function onUncheckSome(rows) {\n\t    return false;\n\t  },\n\t  onLoadSuccess: function onLoadSuccess(data) {\n\t    return false;\n\t  },\n\t  onLoadError: function onLoadError(status) {\n\t    return false;\n\t  },\n\t  onColumnSwitch: function onColumnSwitch(field, checked) {\n\t    return false;\n\t  },\n\t  onPageChange: function onPageChange(number, size) {\n\t    return false;\n\t  },\n\t  onSearch: function onSearch(text) {\n\t    return false;\n\t  },\n\t  onToggle: function onToggle(cardView) {\n\t    return false;\n\t  },\n\t  onPreBody: function onPreBody(data) {\n\t    return false;\n\t  },\n\t  onPostBody: function onPostBody() {\n\t    return false;\n\t  },\n\t  onPostHeader: function onPostHeader() {\n\t    return false;\n\t  },\n\t  onPostFooter: function onPostFooter() {\n\t    return false;\n\t  },\n\t  onExpandRow: function onExpandRow(index, row, $detail) {\n\t    return false;\n\t  },\n\t  onCollapseRow: function onCollapseRow(index, row) {\n\t    return false;\n\t  },\n\t  onRefreshOptions: function onRefreshOptions(options) {\n\t    return false;\n\t  },\n\t  onRefresh: function onRefresh(params) {\n\t    return false;\n\t  },\n\t  onResetView: function onResetView() {\n\t    return false;\n\t  },\n\t  onScrollBody: function onScrollBody() {\n\t    return false;\n\t  }\n\t};\n\tvar EN = {\n\t  formatLoadingMessage: function formatLoadingMessage() {\n\t    return 'Loading, please wait';\n\t  },\n\t  formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {\n\t    return \"\".concat(pageNumber, \" rows per page\");\n\t  },\n\t  formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {\n\t    if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {\n\t      return \"Showing \".concat(pageFrom, \" to \").concat(pageTo, \" of \").concat(totalRows, \" rows (filtered from \").concat(totalNotFiltered, \" total rows)\");\n\t    }\n\n\t    return \"Showing \".concat(pageFrom, \" to \").concat(pageTo, \" of \").concat(totalRows, \" rows\");\n\t  },\n\t  formatSRPaginationPreText: function formatSRPaginationPreText() {\n\t    return 'previous page';\n\t  },\n\t  formatSRPaginationPageText: function formatSRPaginationPageText(page) {\n\t    return \"to page \".concat(page);\n\t  },\n\t  formatSRPaginationNextText: function formatSRPaginationNextText() {\n\t    return 'next page';\n\t  },\n\t  formatDetailPagination: function formatDetailPagination(totalRows) {\n\t    return \"Showing \".concat(totalRows, \" rows\");\n\t  },\n\t  formatSearch: function formatSearch() {\n\t    return 'Search';\n\t  },\n\t  formatClearSearch: function formatClearSearch() {\n\t    return 'Clear Search';\n\t  },\n\t  formatNoMatches: function formatNoMatches() {\n\t    return 'No matching records found';\n\t  },\n\t  formatPaginationSwitch: function formatPaginationSwitch() {\n\t    return 'Hide/Show pagination';\n\t  },\n\t  formatPaginationSwitchDown: function formatPaginationSwitchDown() {\n\t    return 'Show pagination';\n\t  },\n\t  formatPaginationSwitchUp: function formatPaginationSwitchUp() {\n\t    return 'Hide pagination';\n\t  },\n\t  formatRefresh: function formatRefresh() {\n\t    return 'Refresh';\n\t  },\n\t  formatToggle: function formatToggle() {\n\t    return 'Toggle';\n\t  },\n\t  formatToggleOn: function formatToggleOn() {\n\t    return 'Show card view';\n\t  },\n\t  formatToggleOff: function formatToggleOff() {\n\t    return 'Hide card view';\n\t  },\n\t  formatColumns: function formatColumns() {\n\t    return 'Columns';\n\t  },\n\t  formatColumnsToggleAll: function formatColumnsToggleAll() {\n\t    return 'Toggle all';\n\t  },\n\t  formatFullscreen: function formatFullscreen() {\n\t    return 'Fullscreen';\n\t  },\n\t  formatAllRows: function formatAllRows() {\n\t    return 'All';\n\t  }\n\t};\n\tvar COLUMN_DEFAULTS = {\n\t  field: undefined,\n\t  title: undefined,\n\t  titleTooltip: undefined,\n\t  'class': undefined,\n\t  width: undefined,\n\t  widthUnit: 'px',\n\t  rowspan: undefined,\n\t  colspan: undefined,\n\t  align: undefined,\n\t  // left, right, center\n\t  halign: undefined,\n\t  // left, right, center\n\t  falign: undefined,\n\t  // left, right, center\n\t  valign: undefined,\n\t  // top, middle, bottom\n\t  cellStyle: undefined,\n\t  radio: false,\n\t  checkbox: false,\n\t  checkboxEnabled: true,\n\t  clickToSelect: true,\n\t  showSelectTitle: false,\n\t  sortable: false,\n\t  sortName: undefined,\n\t  order: 'asc',\n\t  // asc, desc\n\t  sorter: undefined,\n\t  visible: true,\n\t  switchable: true,\n\t  cardVisible: true,\n\t  searchable: true,\n\t  formatter: undefined,\n\t  footerFormatter: undefined,\n\t  detailFormatter: undefined,\n\t  searchFormatter: true,\n\t  escape: false,\n\t  events: undefined\n\t};\n\tvar METHODS = ['getOptions', 'refreshOptions', 'getData', 'getSelections', 'getAllSelections', 'load', 'append', 'prepend', 'remove', 'removeAll', 'insertRow', 'updateRow', 'getRowByUniqueId', 'updateByUniqueId', 'removeByUniqueId', 'updateCell', 'updateCellByUniqueId', 'showRow', 'hideRow', 'getHiddenRows', 'showColumn', 'hideColumn', 'getVisibleColumns', 'getHiddenColumns', 'showAllColumns', 'hideAllColumns', 'mergeCells', 'checkAll', 'uncheckAll', 'checkInvert', 'check', 'uncheck', 'checkBy', 'uncheckBy', 'refresh', 'destroy', 'resetView', 'resetWidth', 'showLoading', 'hideLoading', 'togglePagination', 'toggleFullscreen', 'toggleView', 'resetSearch', 'filterBy', 'scrollTo', 'getScrollPosition', 'selectPage', 'prevPage', 'nextPage', 'toggleDetailView', 'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows', 'updateColumnTitle', 'updateFormatText'];\n\tvar EVENTS = {\n\t  'all.bs.table': 'onAll',\n\t  'click-row.bs.table': 'onClickRow',\n\t  'dbl-click-row.bs.table': 'onDblClickRow',\n\t  'click-cell.bs.table': 'onClickCell',\n\t  'dbl-click-cell.bs.table': 'onDblClickCell',\n\t  'sort.bs.table': 'onSort',\n\t  'check.bs.table': 'onCheck',\n\t  'uncheck.bs.table': 'onUncheck',\n\t  'check-all.bs.table': 'onCheckAll',\n\t  'uncheck-all.bs.table': 'onUncheckAll',\n\t  'check-some.bs.table': 'onCheckSome',\n\t  'uncheck-some.bs.table': 'onUncheckSome',\n\t  'load-success.bs.table': 'onLoadSuccess',\n\t  'load-error.bs.table': 'onLoadError',\n\t  'column-switch.bs.table': 'onColumnSwitch',\n\t  'page-change.bs.table': 'onPageChange',\n\t  'search.bs.table': 'onSearch',\n\t  'toggle.bs.table': 'onToggle',\n\t  'pre-body.bs.table': 'onPreBody',\n\t  'post-body.bs.table': 'onPostBody',\n\t  'post-header.bs.table': 'onPostHeader',\n\t  'post-footer.bs.table': 'onPostFooter',\n\t  'expand-row.bs.table': 'onExpandRow',\n\t  'collapse-row.bs.table': 'onCollapseRow',\n\t  'refresh-options.bs.table': 'onRefreshOptions',\n\t  'reset-view.bs.table': 'onResetView',\n\t  'refresh.bs.table': 'onRefresh',\n\t  'scroll-body.bs.table': 'onScrollBody'\n\t};\n\tObject.assign(DEFAULTS, EN);\n\tvar Constants = {\n\t  VERSION: VERSION,\n\t  THEME: \"bootstrap\".concat(bootstrapVersion),\n\t  CONSTANTS: CONSTANTS,\n\t  DEFAULTS: DEFAULTS,\n\t  COLUMN_DEFAULTS: COLUMN_DEFAULTS,\n\t  METHODS: METHODS,\n\t  EVENTS: EVENTS,\n\t  LOCALES: {\n\t    en: EN,\n\t    'en-US': EN\n\t  }\n\t};\n\n\t// `FlattenIntoArray` abstract operation\n\t// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\n\tvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n\t  var targetIndex = start;\n\t  var sourceIndex = 0;\n\t  var mapFn = mapper ? bindContext(mapper, thisArg, 3) : false;\n\t  var element;\n\n\t  while (sourceIndex < sourceLen) {\n\t    if (sourceIndex in source) {\n\t      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n\t      if (depth > 0 && isArray(element)) {\n\t        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n\t      } else {\n\t        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n\t        target[targetIndex] = element;\n\t      }\n\n\t      targetIndex++;\n\t    }\n\t    sourceIndex++;\n\t  }\n\t  return targetIndex;\n\t};\n\n\tvar flattenIntoArray_1 = flattenIntoArray;\n\n\t// `Array.prototype.flat` method\n\t// https://github.com/tc39/proposal-flatMap\n\t_export({ target: 'Array', proto: true }, {\n\t  flat: function flat(/* depthArg = 1 */) {\n\t    var depthArg = arguments.length ? arguments[0] : undefined;\n\t    var O = toObject(this);\n\t    var sourceLen = toLength(O.length);\n\t    var A = arraySpeciesCreate(O, 0);\n\t    A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n\t    return A;\n\t  }\n\t});\n\n\t// this method was added to unscopables after implementation\n\t// in popular engines, so it's moved to a separate module\n\n\n\taddToUnscopables('flat');\n\n\tvar FAILS_ON_PRIMITIVES = fails(function () { objectKeys(1); });\n\n\t// `Object.keys` method\n\t// https://tc39.github.io/ecma262/#sec-object.keys\n\t_export({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n\t  keys: function keys(it) {\n\t    return objectKeys(toObject(it));\n\t  }\n\t});\n\n\tvar Utils = {\n\t  // it only does '%s', and return '' when arguments are undefined\n\t  sprintf: function sprintf(_str) {\n\t    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t      args[_key - 1] = arguments[_key];\n\t    }\n\n\t    var flag = true;\n\t    var i = 0;\n\n\t    var str = _str.replace(/%s/g, function () {\n\t      var arg = args[i++];\n\n\t      if (typeof arg === 'undefined') {\n\t        flag = false;\n\t        return '';\n\t      }\n\n\t      return arg;\n\t    });\n\n\t    return flag ? str : '';\n\t  },\n\t  isEmptyObject: function isEmptyObject() {\n\t    var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t    return Object.entries(obj).length === 0 && obj.constructor === Object;\n\t  },\n\t  isNumeric: function isNumeric(n) {\n\t    return !isNaN(parseFloat(n)) && isFinite(n);\n\t  },\n\t  getFieldTitle: function getFieldTitle(list, value) {\n\t    var _iteratorNormalCompletion = true;\n\t    var _didIteratorError = false;\n\t    var _iteratorError = undefined;\n\n\t    try {\n\t      for (var _iterator = list[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t        var item = _step.value;\n\n\t        if (item.field === value) {\n\t          return item.title;\n\t        }\n\t      }\n\t    } catch (err) {\n\t      _didIteratorError = true;\n\t      _iteratorError = err;\n\t    } finally {\n\t      try {\n\t        if (!_iteratorNormalCompletion && _iterator.return != null) {\n\t          _iterator.return();\n\t        }\n\t      } finally {\n\t        if (_didIteratorError) {\n\t          throw _iteratorError;\n\t        }\n\t      }\n\t    }\n\n\t    return '';\n\t  },\n\t  setFieldIndex: function setFieldIndex(columns) {\n\t    var totalCol = 0;\n\t    var flag = [];\n\t    var _iteratorNormalCompletion2 = true;\n\t    var _didIteratorError2 = false;\n\t    var _iteratorError2 = undefined;\n\n\t    try {\n\t      for (var _iterator2 = columns[0][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t        var column = _step2.value;\n\t        totalCol += column.colspan || 1;\n\t      }\n\t    } catch (err) {\n\t      _didIteratorError2 = true;\n\t      _iteratorError2 = err;\n\t    } finally {\n\t      try {\n\t        if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n\t          _iterator2.return();\n\t        }\n\t      } finally {\n\t        if (_didIteratorError2) {\n\t          throw _iteratorError2;\n\t        }\n\t      }\n\t    }\n\n\t    for (var i = 0; i < columns.length; i++) {\n\t      flag[i] = [];\n\n\t      for (var j = 0; j < totalCol; j++) {\n\t        flag[i][j] = false;\n\t      }\n\t    }\n\n\t    for (var _i = 0; _i < columns.length; _i++) {\n\t      var _iteratorNormalCompletion3 = true;\n\t      var _didIteratorError3 = false;\n\t      var _iteratorError3 = undefined;\n\n\t      try {\n\t        for (var _iterator3 = columns[_i][Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t          var r = _step3.value;\n\t          var rowspan = r.rowspan || 1;\n\t          var colspan = r.colspan || 1;\n\n\t          var index = flag[_i].indexOf(false);\n\n\t          r.colspanIndex = index;\n\n\t          if (colspan === 1) {\n\t            r.fieldIndex = index; // when field is undefined, use index instead\n\n\t            if (typeof r.field === 'undefined') {\n\t              r.field = index;\n\t            }\n\t          } else {\n\t            r.colspanGroup = r.colspan;\n\t          }\n\n\t          for (var k = 0; k < rowspan; k++) {\n\t            flag[_i + k][index] = true;\n\t          }\n\n\t          for (var _k = 0; _k < colspan; _k++) {\n\t            flag[_i][index + _k] = true;\n\t          }\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError3 = true;\n\t        _iteratorError3 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n\t            _iterator3.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError3) {\n\t            throw _iteratorError3;\n\t          }\n\t        }\n\t      }\n\t    }\n\t  },\n\t  updateFieldGroup: function updateFieldGroup(columns) {\n\t    var allColumns = columns.flat();\n\t    var _iteratorNormalCompletion4 = true;\n\t    var _didIteratorError4 = false;\n\t    var _iteratorError4 = undefined;\n\n\t    try {\n\t      for (var _iterator4 = columns[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n\t        var c = _step4.value;\n\t        var _iteratorNormalCompletion5 = true;\n\t        var _didIteratorError5 = false;\n\t        var _iteratorError5 = undefined;\n\n\t        try {\n\t          for (var _iterator5 = c[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n\t            var r = _step5.value;\n\n\t            if (r.colspanGroup > 1) {\n\t              var colspan = 0;\n\n\t              var _loop = function _loop(i) {\n\t                var column = allColumns.find(function (col) {\n\t                  return col.fieldIndex === i;\n\t                });\n\n\t                if (column.visible) {\n\t                  colspan++;\n\t                }\n\t              };\n\n\t              for (var i = r.colspanIndex; i < r.colspanIndex + r.colspanGroup; i++) {\n\t                _loop(i);\n\t              }\n\n\t              r.colspan = colspan;\n\t              r.visible = colspan > 0;\n\t            }\n\t          }\n\t        } catch (err) {\n\t          _didIteratorError5 = true;\n\t          _iteratorError5 = err;\n\t        } finally {\n\t          try {\n\t            if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n\t              _iterator5.return();\n\t            }\n\t          } finally {\n\t            if (_didIteratorError5) {\n\t              throw _iteratorError5;\n\t            }\n\t          }\n\t        }\n\t      }\n\t    } catch (err) {\n\t      _didIteratorError4 = true;\n\t      _iteratorError4 = err;\n\t    } finally {\n\t      try {\n\t        if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n\t          _iterator4.return();\n\t        }\n\t      } finally {\n\t        if (_didIteratorError4) {\n\t          throw _iteratorError4;\n\t        }\n\t      }\n\t    }\n\t  },\n\t  getScrollBarWidth: function getScrollBarWidth() {\n\t    if (this.cachedWidth === undefined) {\n\t      var $inner = $('<div/>').addClass('fixed-table-scroll-inner');\n\t      var $outer = $('<div/>').addClass('fixed-table-scroll-outer');\n\t      $outer.append($inner);\n\t      $('body').append($outer);\n\t      var w1 = $inner[0].offsetWidth;\n\t      $outer.css('overflow', 'scroll');\n\t      var w2 = $inner[0].offsetWidth;\n\n\t      if (w1 === w2) {\n\t        w2 = $outer[0].clientWidth;\n\t      }\n\n\t      $outer.remove();\n\t      this.cachedWidth = w1 - w2;\n\t    }\n\n\t    return this.cachedWidth;\n\t  },\n\t  calculateObjectValue: function calculateObjectValue(self, name, args, defaultValue) {\n\t    var func = name;\n\n\t    if (typeof name === 'string') {\n\t      // support obj.func1.func2\n\t      var names = name.split('.');\n\n\t      if (names.length > 1) {\n\t        func = window;\n\t        var _iteratorNormalCompletion6 = true;\n\t        var _didIteratorError6 = false;\n\t        var _iteratorError6 = undefined;\n\n\t        try {\n\t          for (var _iterator6 = names[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n\t            var f = _step6.value;\n\t            func = func[f];\n\t          }\n\t        } catch (err) {\n\t          _didIteratorError6 = true;\n\t          _iteratorError6 = err;\n\t        } finally {\n\t          try {\n\t            if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n\t              _iterator6.return();\n\t            }\n\t          } finally {\n\t            if (_didIteratorError6) {\n\t              throw _iteratorError6;\n\t            }\n\t          }\n\t        }\n\t      } else {\n\t        func = window[name];\n\t      }\n\t    }\n\n\t    if (func !== null && _typeof(func) === 'object') {\n\t      return func;\n\t    }\n\n\t    if (typeof func === 'function') {\n\t      return func.apply(self, args || []);\n\t    }\n\n\t    if (!func && typeof name === 'string' && this.sprintf.apply(this, [name].concat(_toConsumableArray(args)))) {\n\t      return this.sprintf.apply(this, [name].concat(_toConsumableArray(args)));\n\t    }\n\n\t    return defaultValue;\n\t  },\n\t  compareObjects: function compareObjects(objectA, objectB, compareLength) {\n\t    var aKeys = Object.keys(objectA);\n\t    var bKeys = Object.keys(objectB);\n\n\t    if (compareLength && aKeys.length !== bKeys.length) {\n\t      return false;\n\t    }\n\n\t    for (var _i2 = 0, _aKeys = aKeys; _i2 < _aKeys.length; _i2++) {\n\t      var key = _aKeys[_i2];\n\n\t      if (bKeys.includes(key) && objectA[key] !== objectB[key]) {\n\t        return false;\n\t      }\n\t    }\n\n\t    return true;\n\t  },\n\t  escapeHTML: function escapeHTML(text) {\n\t    if (typeof text === 'string') {\n\t      return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;').replace(/'/g, '&#039;').replace(/`/g, '&#x60;');\n\t    }\n\n\t    return text;\n\t  },\n\t  getRealDataAttr: function getRealDataAttr(dataAttr) {\n\t    for (var _i3 = 0, _Object$entries = Object.entries(dataAttr); _i3 < _Object$entries.length; _i3++) {\n\t      var _Object$entries$_i = _slicedToArray(_Object$entries[_i3], 2),\n\t          attr = _Object$entries$_i[0],\n\t          value = _Object$entries$_i[1];\n\n\t      var auxAttr = attr.split(/(?=[A-Z])/).join('-').toLowerCase();\n\n\t      if (auxAttr !== attr) {\n\t        dataAttr[auxAttr] = value;\n\t        delete dataAttr[attr];\n\t      }\n\t    }\n\n\t    return dataAttr;\n\t  },\n\t  getItemField: function getItemField(item, field, escape) {\n\t    var value = item;\n\n\t    if (typeof field !== 'string' || item.hasOwnProperty(field)) {\n\t      return escape ? this.escapeHTML(item[field]) : item[field];\n\t    }\n\n\t    var props = field.split('.');\n\t    var _iteratorNormalCompletion7 = true;\n\t    var _didIteratorError7 = false;\n\t    var _iteratorError7 = undefined;\n\n\t    try {\n\t      for (var _iterator7 = props[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n\t        var p = _step7.value;\n\t        value = value && value[p];\n\t      }\n\t    } catch (err) {\n\t      _didIteratorError7 = true;\n\t      _iteratorError7 = err;\n\t    } finally {\n\t      try {\n\t        if (!_iteratorNormalCompletion7 && _iterator7.return != null) {\n\t          _iterator7.return();\n\t        }\n\t      } finally {\n\t        if (_didIteratorError7) {\n\t          throw _iteratorError7;\n\t        }\n\t      }\n\t    }\n\n\t    return escape ? this.escapeHTML(value) : value;\n\t  },\n\t  isIEBrowser: function isIEBrowser() {\n\t    return navigator.userAgent.includes('MSIE ') || /Trident.*rv:11\\./.test(navigator.userAgent);\n\t  },\n\t  findIndex: function findIndex(items, item) {\n\t    var _iteratorNormalCompletion8 = true;\n\t    var _didIteratorError8 = false;\n\t    var _iteratorError8 = undefined;\n\n\t    try {\n\t      for (var _iterator8 = items[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n\t        var it = _step8.value;\n\n\t        if (JSON.stringify(it) === JSON.stringify(item)) {\n\t          return items.indexOf(it);\n\t        }\n\t      }\n\t    } catch (err) {\n\t      _didIteratorError8 = true;\n\t      _iteratorError8 = err;\n\t    } finally {\n\t      try {\n\t        if (!_iteratorNormalCompletion8 && _iterator8.return != null) {\n\t          _iterator8.return();\n\t        }\n\t      } finally {\n\t        if (_didIteratorError8) {\n\t          throw _iteratorError8;\n\t        }\n\t      }\n\t    }\n\n\t    return -1;\n\t  },\n\t  trToData: function trToData(columns, $els) {\n\t    var _this = this;\n\n\t    var data = [];\n\t    var m = [];\n\t    $els.each(function (y, el) {\n\t      var row = {}; // save tr's id, class and data-* attributes\n\n\t      row._id = $(el).attr('id');\n\t      row._class = $(el).attr('class');\n\t      row._data = _this.getRealDataAttr($(el).data());\n\t      $(el).find('>td,>th').each(function (_x, el) {\n\t        var cspan = +$(el).attr('colspan') || 1;\n\t        var rspan = +$(el).attr('rowspan') || 1;\n\t        var x = _x; // skip already occupied cells in current row\n\n\t        for (; m[y] && m[y][x]; x++) {} // ignore\n\t        // mark matrix elements occupied by current cell with true\n\n\n\t        for (var tx = x; tx < x + cspan; tx++) {\n\t          for (var ty = y; ty < y + rspan; ty++) {\n\t            if (!m[ty]) {\n\t              // fill missing rows\n\t              m[ty] = [];\n\t            }\n\n\t            m[ty][tx] = true;\n\t          }\n\t        }\n\n\t        var field = columns[x].field;\n\t        row[field] = $(el).html().trim(); // save td's id, class and data-* attributes\n\n\t        row[\"_\".concat(field, \"_id\")] = $(el).attr('id');\n\t        row[\"_\".concat(field, \"_class\")] = $(el).attr('class');\n\t        row[\"_\".concat(field, \"_rowspan\")] = $(el).attr('rowspan');\n\t        row[\"_\".concat(field, \"_colspan\")] = $(el).attr('colspan');\n\t        row[\"_\".concat(field, \"_title\")] = $(el).attr('title');\n\t        row[\"_\".concat(field, \"_data\")] = _this.getRealDataAttr($(el).data());\n\t      });\n\t      data.push(row);\n\t    });\n\t    return data;\n\t  },\n\t  sort: function sort(a, b, order, sortStable) {\n\t    if (a === undefined || a === null) {\n\t      a = '';\n\t    }\n\n\t    if (b === undefined || b === null) {\n\t      b = '';\n\t    }\n\n\t    if (sortStable && a === b) {\n\t      a = a._position;\n\t      b = b._position;\n\t    } // If both values are numeric, do a numeric comparison\n\n\n\t    if (this.isNumeric(a) && this.isNumeric(b)) {\n\t      // Convert numerical values form string to float.\n\t      a = parseFloat(a);\n\t      b = parseFloat(b);\n\n\t      if (a < b) {\n\t        return order * -1;\n\t      }\n\n\t      if (a > b) {\n\t        return order;\n\t      }\n\n\t      return 0;\n\t    }\n\n\t    if (a === b) {\n\t      return 0;\n\t    } // If value is not a string, convert to string\n\n\n\t    if (typeof a !== 'string') {\n\t      a = a.toString();\n\t    }\n\n\t    if (a.localeCompare(b) === -1) {\n\t      return order * -1;\n\t    }\n\n\t    return order;\n\t  }\n\t};\n\n\tvar BLOCK_ROWS = 50;\n\tvar CLUSTER_BLOCKS = 4;\n\n\tvar VirtualScroll =\n\t/*#__PURE__*/\n\tfunction () {\n\t  function VirtualScroll(options) {\n\t    var _this = this;\n\n\t    _classCallCheck(this, VirtualScroll);\n\n\t    this.rows = options.rows;\n\t    this.scrollEl = options.scrollEl;\n\t    this.contentEl = options.contentEl;\n\t    this.callback = options.callback;\n\t    this.itemHeight = options.itemHeight;\n\t    this.cache = {};\n\t    this.scrollTop = this.scrollEl.scrollTop;\n\t    this.initDOM(this.rows, options.fixedScroll);\n\t    this.scrollEl.scrollTop = this.scrollTop;\n\t    this.lastCluster = 0;\n\n\t    var onScroll = function onScroll() {\n\t      if (_this.lastCluster !== (_this.lastCluster = _this.getNum())) {\n\t        _this.initDOM(_this.rows);\n\n\t        _this.callback();\n\t      }\n\t    };\n\n\t    this.scrollEl.addEventListener('scroll', onScroll, false);\n\n\t    this.destroy = function () {\n\t      _this.contentEl.innerHtml = '';\n\n\t      _this.scrollEl.removeEventListener('scroll', onScroll, false);\n\t    };\n\t  }\n\n\t  _createClass(VirtualScroll, [{\n\t    key: \"initDOM\",\n\t    value: function initDOM(rows, fixedScroll) {\n\t      if (typeof this.clusterHeight === 'undefined') {\n\t        this.cache.scrollTop = this.scrollEl.scrollTop;\n\t        this.cache.data = this.contentEl.innerHTML = rows[0] + rows[0] + rows[0];\n\t        this.getRowsHeight(rows);\n\t      }\n\n\t      var data = this.initData(rows, this.getNum(fixedScroll));\n\t      var thisRows = data.rows.join('');\n\t      var dataChanged = this.checkChanges('data', thisRows);\n\t      var topOffsetChanged = this.checkChanges('top', data.topOffset);\n\t      var bottomOffsetChanged = this.checkChanges('bottom', data.bottomOffset);\n\t      var html = [];\n\n\t      if (dataChanged && topOffsetChanged) {\n\t        if (data.topOffset) {\n\t          html.push(this.getExtra('top', data.topOffset));\n\t        }\n\n\t        html.push(thisRows);\n\n\t        if (data.bottomOffset) {\n\t          html.push(this.getExtra('bottom', data.bottomOffset));\n\t        }\n\n\t        this.contentEl.innerHTML = html.join('');\n\n\t        if (fixedScroll) {\n\t          this.contentEl.scrollTop = this.cache.scrollTop;\n\t        }\n\t      } else if (bottomOffsetChanged) {\n\t        this.contentEl.lastChild.style.height = \"\".concat(data.bottomOffset, \"px\");\n\t      }\n\t    }\n\t  }, {\n\t    key: \"getRowsHeight\",\n\t    value: function getRowsHeight() {\n\t      if (typeof this.itemHeight === 'undefined') {\n\t        var nodes = this.contentEl.children;\n\t        var node = nodes[Math.floor(nodes.length / 2)];\n\t        this.itemHeight = node.offsetHeight;\n\t      }\n\n\t      this.blockHeight = this.itemHeight * BLOCK_ROWS;\n\t      this.clusterRows = BLOCK_ROWS * CLUSTER_BLOCKS;\n\t      this.clusterHeight = this.blockHeight * CLUSTER_BLOCKS;\n\t    }\n\t  }, {\n\t    key: \"getNum\",\n\t    value: function getNum(fixedScroll) {\n\t      this.scrollTop = fixedScroll ? this.cache.scrollTop : this.scrollEl.scrollTop;\n\t      return Math.floor(this.scrollTop / (this.clusterHeight - this.blockHeight)) || 0;\n\t    }\n\t  }, {\n\t    key: \"initData\",\n\t    value: function initData(rows, num) {\n\t      if (rows.length < BLOCK_ROWS) {\n\t        return {\n\t          topOffset: 0,\n\t          bottomOffset: 0,\n\t          rowsAbove: 0,\n\t          rows: rows\n\t        };\n\t      }\n\n\t      var start = Math.max((this.clusterRows - BLOCK_ROWS) * num, 0);\n\t      var end = start + this.clusterRows;\n\t      var topOffset = Math.max(start * this.itemHeight, 0);\n\t      var bottomOffset = Math.max((rows.length - end) * this.itemHeight, 0);\n\t      var thisRows = [];\n\t      var rowsAbove = start;\n\n\t      if (topOffset < 1) {\n\t        rowsAbove++;\n\t      }\n\n\t      for (var i = start; i < end; i++) {\n\t        rows[i] && thisRows.push(rows[i]);\n\t      }\n\n\t      return {\n\t        topOffset: topOffset,\n\t        bottomOffset: bottomOffset,\n\t        rowsAbove: rowsAbove,\n\t        rows: thisRows\n\t      };\n\t    }\n\t  }, {\n\t    key: \"checkChanges\",\n\t    value: function checkChanges(type, value) {\n\t      var changed = value !== this.cache[type];\n\t      this.cache[type] = value;\n\t      return changed;\n\t    }\n\t  }, {\n\t    key: \"getExtra\",\n\t    value: function getExtra(className, height) {\n\t      var tag = document.createElement('tr');\n\t      tag.className = \"virtual-scroll-\".concat(className);\n\n\t      if (height) {\n\t        tag.style.height = \"\".concat(height, \"px\");\n\t      }\n\n\t      return tag.outerHTML;\n\t    }\n\t  }]);\n\n\t  return VirtualScroll;\n\t}();\n\n\tvar BootstrapTable =\n\t/*#__PURE__*/\n\tfunction () {\n\t  function BootstrapTable(el, options) {\n\t    _classCallCheck(this, BootstrapTable);\n\n\t    this.options = options;\n\t    this.$el = $(el);\n\t    this.$el_ = this.$el.clone();\n\t    this.timeoutId_ = 0;\n\t    this.timeoutFooter_ = 0;\n\t    this.init();\n\t  }\n\n\t  _createClass(BootstrapTable, [{\n\t    key: \"init\",\n\t    value: function init() {\n\t      this.initConstants();\n\t      this.initLocale();\n\t      this.initContainer();\n\t      this.initTable();\n\t      this.initHeader();\n\t      this.initData();\n\t      this.initHiddenRows();\n\t      this.initToolbar();\n\t      this.initPagination();\n\t      this.initBody();\n\t      this.initSearchText();\n\t      this.initServer();\n\t    }\n\t  }, {\n\t    key: \"initConstants\",\n\t    value: function initConstants() {\n\t      var o = this.options;\n\t      this.constants = Constants.CONSTANTS;\n\t      this.constants.theme = $.fn.bootstrapTable.theme;\n\t      var buttonsPrefix = o.buttonsPrefix ? \"\".concat(o.buttonsPrefix, \"-\") : '';\n\t      this.constants.buttonsClass = [o.buttonsPrefix, buttonsPrefix + o.buttonsClass, Utils.sprintf(\"\".concat(buttonsPrefix, \"%s\"), o.iconSize)].join(' ').trim();\n\t    }\n\t  }, {\n\t    key: \"initLocale\",\n\t    value: function initLocale() {\n\t      if (this.options.locale) {\n\t        var locales = $.fn.bootstrapTable.locales;\n\t        var parts = this.options.locale.split(/-|_/);\n\t        parts[0] = parts[0].toLowerCase();\n\n\t        if (parts[1]) {\n\t          parts[1] = parts[1].toUpperCase();\n\t        }\n\n\t        if (locales[this.options.locale]) {\n\t          $.extend(this.options, locales[this.options.locale]);\n\t        } else if (locales[parts.join('-')]) {\n\t          $.extend(this.options, locales[parts.join('-')]);\n\t        } else if (locales[parts[0]]) {\n\t          $.extend(this.options, locales[parts[0]]);\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: \"initContainer\",\n\t    value: function initContainer() {\n\t      var topPagination = ['top', 'both'].includes(this.options.paginationVAlign) ? '<div class=\"fixed-table-pagination clearfix\"></div>' : '';\n\t      var bottomPagination = ['bottom', 'both'].includes(this.options.paginationVAlign) ? '<div class=\"fixed-table-pagination\"></div>' : '';\n\t      this.$container = $(\"\\n      <div class=\\\"bootstrap-table \".concat(this.constants.theme, \"\\\">\\n      <div class=\\\"fixed-table-toolbar\\\"></div>\\n      \").concat(topPagination, \"\\n      <div class=\\\"fixed-table-container\\\">\\n      <div class=\\\"fixed-table-header\\\"><table></table></div>\\n      <div class=\\\"fixed-table-body\\\">\\n      <div class=\\\"fixed-table-loading\\\">\\n      <span class=\\\"loading-wrap\\\">\\n      <span class=\\\"loading-text\\\">\").concat(this.options.formatLoadingMessage(), \"</span>\\n      <span class=\\\"animation-wrap\\\"><span class=\\\"animation-dot\\\"></span></span>\\n      </span>\\n      </div>\\n      </div>\\n      <div class=\\\"fixed-table-footer\\\"><table><thead><tr></tr></thead></table></div>\\n      </div>\\n      \").concat(bottomPagination, \"\\n      </div>\\n    \"));\n\t      this.$container.insertAfter(this.$el);\n\t      this.$tableContainer = this.$container.find('.fixed-table-container');\n\t      this.$tableHeader = this.$container.find('.fixed-table-header');\n\t      this.$tableBody = this.$container.find('.fixed-table-body');\n\t      this.$tableLoading = this.$container.find('.fixed-table-loading');\n\t      this.$tableFooter = this.$el.find('tfoot'); // checking if custom table-toolbar exists or not\n\n\t      if (this.options.buttonsToolbar) {\n\t        this.$toolbar = $('body').find(this.options.buttonsToolbar);\n\t      } else {\n\t        this.$toolbar = this.$container.find('.fixed-table-toolbar');\n\t      }\n\n\t      this.$pagination = this.$container.find('.fixed-table-pagination');\n\t      this.$tableBody.append(this.$el);\n\t      this.$container.after('<div class=\"clearfix\"></div>');\n\t      this.$el.addClass(this.options.classes);\n\t      this.$tableLoading.addClass(this.options.classes);\n\n\t      if (this.options.height) {\n\t        this.$tableContainer.addClass('fixed-height');\n\n\t        if (this.options.showFooter) {\n\t          this.$tableContainer.addClass('has-footer');\n\t        }\n\n\t        if (this.options.classes.split(' ').includes('table-bordered')) {\n\t          this.$tableBody.append('<div class=\"fixed-table-border\"></div>');\n\t          this.$tableBorder = this.$tableBody.find('.fixed-table-border');\n\t          this.$tableLoading.addClass('fixed-table-border');\n\t        }\n\n\t        this.$tableFooter = this.$container.find('.fixed-table-footer');\n\t      } else {\n\t        if (!this.$tableFooter.length) {\n\t          this.$el.append('<tfoot><tr></tr></tfoot>');\n\t          this.$tableFooter = this.$el.find('tfoot');\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: \"initTable\",\n\t    value: function initTable() {\n\t      var _this = this;\n\n\t      var columns = [];\n\t      var data = [];\n\t      this.$header = this.$el.find('>thead');\n\n\t      if (!this.$header.length) {\n\t        this.$header = $(\"<thead class=\\\"\".concat(this.options.theadClasses, \"\\\"></thead>\")).appendTo(this.$el);\n\t      } else if (this.options.theadClasses) {\n\t        this.$header.addClass(this.options.theadClasses);\n\t      }\n\n\t      this.$header.find('tr').each(function (i, el) {\n\t        var column = [];\n\t        $(el).find('th').each(function (i, el) {\n\t          // #2014: getFieldIndex and elsewhere assume this is string, causes issues if not\n\t          if (typeof $(el).data('field') !== 'undefined') {\n\t            $(el).data('field', \"\".concat($(el).data('field')));\n\t          }\n\n\t          column.push($.extend({}, {\n\t            title: $(el).html(),\n\t            'class': $(el).attr('class'),\n\t            titleTooltip: $(el).attr('title'),\n\t            rowspan: $(el).attr('rowspan') ? +$(el).attr('rowspan') : undefined,\n\t            colspan: $(el).attr('colspan') ? +$(el).attr('colspan') : undefined\n\t          }, $(el).data()));\n\t        });\n\t        columns.push(column);\n\t      });\n\n\t      if (!Array.isArray(this.options.columns[0])) {\n\t        this.options.columns = [this.options.columns];\n\t      }\n\n\t      this.options.columns = $.extend(true, [], columns, this.options.columns);\n\t      this.columns = [];\n\t      this.fieldsColumnsIndex = [];\n\t      Utils.setFieldIndex(this.options.columns);\n\t      this.options.columns.forEach(function (columns, i) {\n\t        columns.forEach(function (_column, j) {\n\t          var column = $.extend({}, BootstrapTable.COLUMN_DEFAULTS, _column);\n\n\t          if (typeof column.fieldIndex !== 'undefined') {\n\t            _this.columns[column.fieldIndex] = column;\n\t            _this.fieldsColumnsIndex[column.field] = column.fieldIndex;\n\t          }\n\n\t          _this.options.columns[i][j] = column;\n\t        });\n\t      }); // if options.data is setting, do not process tbody and tfoot data\n\n\t      if (!this.options.data.length) {\n\t        this.options.data = Utils.trToData(this.columns, this.$el.find('>tbody>tr'));\n\n\t        if (data.length) {\n\t          this.fromHtml = true;\n\t        }\n\t      }\n\n\t      this.footerData = Utils.trToData(this.columns, this.$el.find('>tfoot>tr'));\n\n\t      if (this.footerData) {\n\t        this.$el.find('tfoot').html('<tr></tr>');\n\t      }\n\n\t      if (!this.options.showFooter || this.options.cardView) {\n\t        this.$tableFooter.hide();\n\t      } else {\n\t        this.$tableFooter.show();\n\t      }\n\t    }\n\t  }, {\n\t    key: \"initHeader\",\n\t    value: function initHeader() {\n\t      var _this2 = this;\n\n\t      var visibleColumns = {};\n\t      var html = [];\n\t      this.header = {\n\t        fields: [],\n\t        styles: [],\n\t        classes: [],\n\t        formatters: [],\n\t        detailFormatters: [],\n\t        events: [],\n\t        sorters: [],\n\t        sortNames: [],\n\t        cellStyles: [],\n\t        searchables: []\n\t      };\n\t      Utils.updateFieldGroup(this.options.columns);\n\t      this.options.columns.forEach(function (columns, i) {\n\t        html.push('<tr>');\n\n\t        if (i === 0 && !_this2.options.cardView && _this2.options.detailView && _this2.options.detailViewIcon) {\n\t          html.push(\"<th class=\\\"detail\\\" rowspan=\\\"\".concat(_this2.options.columns.length, \"\\\">\\n          <div class=\\\"fht-cell\\\"></div>\\n          </th>\\n        \"));\n\t        }\n\n\t        columns.forEach(function (column, j) {\n\t          var class_ = Utils.sprintf(' class=\"%s\"', column['class']);\n\t          var unitWidth = column.widthUnit;\n\t          var width = parseFloat(column.width);\n\t          var halign = Utils.sprintf('text-align: %s; ', column.halign ? column.halign : column.align);\n\t          var align = Utils.sprintf('text-align: %s; ', column.align);\n\t          var style = Utils.sprintf('vertical-align: %s; ', column.valign);\n\t          style += Utils.sprintf('width: %s; ', (column.checkbox || column.radio) && !width ? !column.showSelectTitle ? '36px' : undefined : width ? width + unitWidth : undefined);\n\n\t          if (typeof column.fieldIndex === 'undefined' && !column.visible) {\n\t            return;\n\t          }\n\n\t          if (typeof column.fieldIndex !== 'undefined') {\n\t            _this2.header.fields[column.fieldIndex] = column.field;\n\t            _this2.header.styles[column.fieldIndex] = align + style;\n\t            _this2.header.classes[column.fieldIndex] = class_;\n\t            _this2.header.formatters[column.fieldIndex] = column.formatter;\n\t            _this2.header.detailFormatters[column.fieldIndex] = column.detailFormatter;\n\t            _this2.header.events[column.fieldIndex] = column.events;\n\t            _this2.header.sorters[column.fieldIndex] = column.sorter;\n\t            _this2.header.sortNames[column.fieldIndex] = column.sortName;\n\t            _this2.header.cellStyles[column.fieldIndex] = column.cellStyle;\n\t            _this2.header.searchables[column.fieldIndex] = column.searchable;\n\n\t            if (!column.visible) {\n\t              return;\n\t            }\n\n\t            if (_this2.options.cardView && !column.cardVisible) {\n\t              return;\n\t            }\n\n\t            visibleColumns[column.field] = column;\n\t          }\n\n\t          html.push(\"<th\".concat(Utils.sprintf(' title=\"%s\"', column.titleTooltip)), column.checkbox || column.radio ? Utils.sprintf(' class=\"bs-checkbox %s\"', column['class'] || '') : class_, Utils.sprintf(' style=\"%s\"', halign + style), Utils.sprintf(' rowspan=\"%s\"', column.rowspan), Utils.sprintf(' colspan=\"%s\"', column.colspan), Utils.sprintf(' data-field=\"%s\"', column.field), // If `column` is not the first element of `this.options.columns[0]`, then className 'data-not-first-th' should be added.\n\t          j === 0 && i > 0 ? ' data-not-first-th' : '', '>');\n\t          html.push(Utils.sprintf('<div class=\"th-inner %s\">', _this2.options.sortable && column.sortable ? 'sortable both' : ''));\n\t          var text = _this2.options.escape ? Utils.escapeHTML(column.title) : column.title;\n\t          var title = text;\n\n\t          if (column.checkbox) {\n\t            text = '';\n\n\t            if (!_this2.options.singleSelect && _this2.options.checkboxHeader) {\n\t              text = '<label><input name=\"btSelectAll\" type=\"checkbox\" /><span></span></label>';\n\t            }\n\n\t            _this2.header.stateField = column.field;\n\t          }\n\n\t          if (column.radio) {\n\t            text = '';\n\t            _this2.header.stateField = column.field;\n\t            _this2.options.singleSelect = true;\n\t          }\n\n\t          if (!text && column.showSelectTitle) {\n\t            text += title;\n\t          }\n\n\t          html.push(text);\n\t          html.push('</div>');\n\t          html.push('<div class=\"fht-cell\"></div>');\n\t          html.push('</div>');\n\t          html.push('</th>');\n\t        });\n\t        html.push('</tr>');\n\t      });\n\t      this.$header.html(html.join(''));\n\t      this.$header.find('th[data-field]').each(function (i, el) {\n\t        $(el).data(visibleColumns[$(el).data('field')]);\n\t      });\n\t      this.$container.off('click', '.th-inner').on('click', '.th-inner', function (e) {\n\t        var $this = $(e.currentTarget);\n\n\t        if (_this2.options.detailView && !$this.parent().hasClass('bs-checkbox')) {\n\t          if ($this.closest('.bootstrap-table')[0] !== _this2.$container[0]) {\n\t            return false;\n\t          }\n\t        }\n\n\t        if (_this2.options.sortable && $this.parent().data().sortable) {\n\t          _this2.onSort(e);\n\t        }\n\t      });\n\t      this.$header.children().children().off('keypress').on('keypress', function (e) {\n\t        if (_this2.options.sortable && $(e.currentTarget).data().sortable) {\n\t          var code = e.keyCode || e.which;\n\n\t          if (code === 13) {\n\t            // Enter keycode\n\t            _this2.onSort(e);\n\t          }\n\t        }\n\t      });\n\t      var resizeEvent = \"resize.bootstrap-table\".concat(this.$el.attr('id') || '');\n\t      $(window).off(resizeEvent);\n\n\t      if (!this.options.showHeader || this.options.cardView) {\n\t        this.$header.hide();\n\t        this.$tableHeader.hide();\n\t        this.$tableLoading.css('top', 0);\n\t      } else {\n\t        this.$header.show();\n\t        this.$tableHeader.show();\n\t        this.$tableLoading.css('top', this.$header.outerHeight() + 1); // Assign the correct sortable arrow\n\n\t        this.getCaret();\n\t        $(window).on(resizeEvent, function (e) {\n\t          return _this2.resetWidth(e);\n\t        });\n\t      }\n\n\t      this.$selectAll = this.$header.find('[name=\"btSelectAll\"]');\n\t      this.$selectAll.off('click').on('click', function (_ref) {\n\t        var currentTarget = _ref.currentTarget;\n\t        var checked = $(currentTarget).prop('checked');\n\n\t        _this2[checked ? 'checkAll' : 'uncheckAll']();\n\n\t        _this2.updateSelected();\n\t      });\n\t    }\n\t  }, {\n\t    key: \"initData\",\n\t    value: function initData(data, type) {\n\t      if (type === 'append') {\n\t        this.options.data = this.options.data.concat(data);\n\t      } else if (type === 'prepend') {\n\t        this.options.data = [].concat(data).concat(this.options.data);\n\t      } else {\n\t        this.options.data = data || this.options.data;\n\t      }\n\n\t      this.data = this.options.data;\n\n\t      if (this.options.sidePagination === 'server') {\n\t        return;\n\t      }\n\n\t      this.initSort();\n\t    }\n\t  }, {\n\t    key: \"initSort\",\n\t    value: function initSort() {\n\t      var _this3 = this;\n\n\t      var name = this.options.sortName;\n\t      var order = this.options.sortOrder === 'desc' ? -1 : 1;\n\t      var index = this.header.fields.indexOf(this.options.sortName);\n\t      var timeoutId = 0;\n\n\t      if (index !== -1) {\n\t        if (this.options.sortStable) {\n\t          this.data.forEach(function (row, i) {\n\t            if (!row.hasOwnProperty('_position')) {\n\t              row._position = i;\n\t            }\n\t          });\n\t        }\n\n\t        if (this.options.customSort) {\n\t          Utils.calculateObjectValue(this.options, this.options.customSort, [this.options.sortName, this.options.sortOrder, this.data]);\n\t        } else {\n\t          this.data.sort(function (a, b) {\n\t            if (_this3.header.sortNames[index]) {\n\t              name = _this3.header.sortNames[index];\n\t            }\n\n\t            var aa = Utils.getItemField(a, name, _this3.options.escape);\n\t            var bb = Utils.getItemField(b, name, _this3.options.escape);\n\t            var value = Utils.calculateObjectValue(_this3.header, _this3.header.sorters[index], [aa, bb, a, b]);\n\n\t            if (value !== undefined) {\n\t              if (_this3.options.sortStable && value === 0) {\n\t                return order * (a._position - b._position);\n\t              }\n\n\t              return order * value;\n\t            }\n\n\t            return Utils.sort(aa, bb, order, _this3.options.sortStable);\n\t          });\n\t        }\n\n\t        if (this.options.sortClass !== undefined) {\n\t          clearTimeout(timeoutId);\n\t          timeoutId = setTimeout(function () {\n\t            _this3.$el.removeClass(_this3.options.sortClass);\n\n\t            var index = _this3.$header.find(\"[data-field=\\\"\".concat(_this3.options.sortName, \"\\\"]\")).index();\n\n\t            _this3.$el.find(\"tr td:nth-child(\".concat(index + 1, \")\")).addClass(_this3.options.sortClass);\n\t          }, 250);\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: \"onSort\",\n\t    value: function onSort(_ref2) {\n\t      var type = _ref2.type,\n\t          currentTarget = _ref2.currentTarget;\n\t      var $this = type === 'keypress' ? $(currentTarget) : $(currentTarget).parent();\n\t      var $this_ = this.$header.find('th').eq($this.index());\n\t      this.$header.add(this.$header_).find('span.order').remove();\n\n\t      if (this.options.sortName === $this.data('field')) {\n\t        this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';\n\t      } else {\n\t        this.options.sortName = $this.data('field');\n\n\t        if (this.options.rememberOrder) {\n\t          this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';\n\t        } else {\n\t          this.options.sortOrder = this.columns[this.fieldsColumnsIndex[$this.data('field')]].sortOrder || this.columns[this.fieldsColumnsIndex[$this.data('field')]].order;\n\t        }\n\t      }\n\n\t      this.trigger('sort', this.options.sortName, this.options.sortOrder);\n\t      $this.add($this_).data('order', this.options.sortOrder); // Assign the correct sortable arrow\n\n\t      this.getCaret();\n\n\t      if (this.options.sidePagination === 'server') {\n\t        this.options.pageNumber = 1;\n\t        this.initServer(this.options.silentSort);\n\t        return;\n\t      }\n\n\t      this.initSort();\n\t      this.initBody();\n\t    }\n\t  }, {\n\t    key: \"initToolbar\",\n\t    value: function initToolbar() {\n\t      var _this4 = this;\n\n\t      var o = this.options;\n\t      var html = [];\n\t      var timeoutId = 0;\n\t      var $keepOpen;\n\t      var switchableCount = 0;\n\n\t      if (this.$toolbar.find('.bs-bars').children().length) {\n\t        $('body').append($(o.toolbar));\n\t      }\n\n\t      this.$toolbar.html('');\n\n\t      if (typeof o.toolbar === 'string' || _typeof(o.toolbar) === 'object') {\n\t        $(Utils.sprintf('<div class=\"bs-bars %s-%s\"></div>', this.constants.classes.pull, o.toolbarAlign)).appendTo(this.$toolbar).append($(o.toolbar));\n\t      } // showColumns, showToggle, showRefresh\n\n\n\t      html = [\"<div class=\\\"\".concat(['columns', \"columns-\".concat(o.buttonsAlign), this.constants.classes.buttonsGroup, \"\".concat(this.constants.classes.pull, \"-\").concat(o.buttonsAlign)].join(' '), \"\\\">\")];\n\n\t      if (typeof o.icons === 'string') {\n\t        o.icons = Utils.calculateObjectValue(null, o.icons);\n\t      }\n\n\t      if (o.showPaginationSwitch) {\n\t        html.push(\"<button class=\\\"\".concat(this.constants.buttonsClass, \"\\\" type=\\\"button\\\" name=\\\"paginationSwitch\\\"\\n        aria-label=\\\"Pagination Switch\\\" title=\\\"\").concat(o.formatPaginationSwitch(), \"\\\">\\n        \").concat(o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.paginationSwitchDown) : '', \"\\n        \").concat(o.showButtonText ? o.formatPaginationSwitchUp() : '', \"\\n        </button>\"));\n\t      }\n\n\t      if (o.showRefresh) {\n\t        html.push(\"<button class=\\\"\".concat(this.constants.buttonsClass, \"\\\" type=\\\"button\\\" name=\\\"refresh\\\"\\n        aria-label=\\\"Refresh\\\" title=\\\"\").concat(o.formatRefresh(), \"\\\">\\n        \").concat(o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.refresh) : '', \"\\n        \").concat(o.showButtonText ? o.formatRefresh() : '', \"\\n        </button>\"));\n\t      }\n\n\t      if (o.showToggle) {\n\t        html.push(\"<button class=\\\"\".concat(this.constants.buttonsClass, \"\\\" type=\\\"button\\\" name=\\\"toggle\\\"\\n        aria-label=\\\"Toggle\\\" title=\\\"\").concat(o.formatToggle(), \"\\\">\\n        \").concat(o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.toggleOff) : '', \"\\n        \").concat(o.showButtonText ? o.formatToggleOn() : '', \"\\n        </button>\"));\n\t      }\n\n\t      if (o.showFullscreen) {\n\t        html.push(\"<button class=\\\"\".concat(this.constants.buttonsClass, \"\\\" type=\\\"button\\\" name=\\\"fullscreen\\\"\\n        aria-label=\\\"Fullscreen\\\" title=\\\"\").concat(o.formatFullscreen(), \"\\\">\\n        \").concat(o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.fullscreen) : '', \"\\n        \").concat(o.showButtonText ? o.formatFullscreen() : '', \"\\n        </button>\"));\n\t      }\n\n\t      if (o.showColumns) {\n\t        html.push(\"<div class=\\\"keep-open \".concat(this.constants.classes.buttonsDropdown, \"\\\" title=\\\"\").concat(o.formatColumns(), \"\\\">\\n        <button class=\\\"\").concat(this.constants.buttonsClass, \" dropdown-toggle\\\" type=\\\"button\\\" data-toggle=\\\"dropdown\\\"\\n        aria-label=\\\"Columns\\\" title=\\\"\").concat(o.formatColumns(), \"\\\">\\n        \").concat(o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.columns) : '', \"\\n        \").concat(o.showButtonText ? o.formatColumns() : '', \"\\n        \").concat(this.constants.html.dropdownCaret, \"\\n        </button>\\n        \").concat(this.constants.html.toolbarDropdown[0]));\n\n\t        if (o.showColumnsToggleAll) {\n\t          var allFieldsVisible = this.getVisibleColumns().length === this.columns.length;\n\t          html.push(Utils.sprintf(this.constants.html.toolbarDropdownItem, Utils.sprintf('<input type=\"checkbox\" class=\"toggle-all\" %s> <span>%s</span>', allFieldsVisible ? 'checked=\"checked\"' : '', o.formatColumnsToggleAll())));\n\t          html.push(this.constants.html.toolbarDropdownSeparator);\n\t        }\n\n\t        this.columns.forEach(function (column, i) {\n\t          if (column.radio || column.checkbox) {\n\t            return;\n\t          }\n\n\t          if (o.cardView && !column.cardVisible) {\n\t            return;\n\t          }\n\n\t          var checked = column.visible ? ' checked=\"checked\"' : '';\n\n\t          if (column.switchable) {\n\t            html.push(Utils.sprintf(_this4.constants.html.toolbarDropdownItem, Utils.sprintf('<input type=\"checkbox\" data-field=\"%s\" value=\"%s\"%s> <span>%s</span>', column.field, i, checked, column.title)));\n\t            switchableCount++;\n\t          }\n\t        });\n\t        html.push(this.constants.html.toolbarDropdown[1], '</div>');\n\t      }\n\n\t      html.push('</div>'); // Fix #188: this.showToolbar is for extensions\n\n\t      if (this.showToolbar || html.length > 2) {\n\t        this.$toolbar.append(html.join(''));\n\t      }\n\n\t      if (o.showPaginationSwitch) {\n\t        this.$toolbar.find('button[name=\"paginationSwitch\"]').off('click').on('click', function () {\n\t          return _this4.togglePagination();\n\t        });\n\t      }\n\n\t      if (o.showFullscreen) {\n\t        this.$toolbar.find('button[name=\"fullscreen\"]').off('click').on('click', function () {\n\t          return _this4.toggleFullscreen();\n\t        });\n\t      }\n\n\t      if (o.showRefresh) {\n\t        this.$toolbar.find('button[name=\"refresh\"]').off('click').on('click', function () {\n\t          return _this4.refresh();\n\t        });\n\t      }\n\n\t      if (o.showToggle) {\n\t        this.$toolbar.find('button[name=\"toggle\"]').off('click').on('click', function () {\n\t          _this4.toggleView();\n\t        });\n\t      }\n\n\t      if (o.showColumns) {\n\t        $keepOpen = this.$toolbar.find('.keep-open');\n\t        var $checkboxes = $keepOpen.find('input:not(\".toggle-all\")');\n\t        var $toggleAll = $keepOpen.find('input.toggle-all');\n\n\t        if (switchableCount <= o.minimumCountColumns) {\n\t          $keepOpen.find('input').prop('disabled', true);\n\t        }\n\n\t        $keepOpen.find('li, label').off('click').on('click', function (e) {\n\t          e.stopImmediatePropagation();\n\t        });\n\t        $checkboxes.off('click').on('click', function (_ref3) {\n\t          var currentTarget = _ref3.currentTarget;\n\t          var $this = $(currentTarget);\n\n\t          _this4._toggleColumn($this.val(), $this.prop('checked'), false);\n\n\t          _this4.trigger('column-switch', $this.data('field'), $this.prop('checked'));\n\n\t          $toggleAll.prop('checked', $checkboxes.filter(':checked').length === _this4.columns.length);\n\t        });\n\t        $toggleAll.off('click').on('click', function (_ref4) {\n\t          var currentTarget = _ref4.currentTarget;\n\n\t          _this4._toggleAllColumns($(currentTarget).prop('checked'));\n\t        });\n\t      } // Fix #4516: this.showSearchClearButton is for extensions\n\n\n\t      if (o.search || this.showSearchClearButton) {\n\t        html = [];\n\t        var showSearchButton = Utils.sprintf(this.constants.html.searchButton, this.constants.buttonsClass, o.formatSearch(), o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.search) : '', o.showButtonText ? o.formatSearch() : '');\n\t        var showSearchClearButton = Utils.sprintf(this.constants.html.searchClearButton, this.constants.buttonsClass, o.formatClearSearch(), o.showButtonIcons ? Utils.sprintf(this.constants.html.icon, o.iconsPrefix, o.icons.clearSearch) : '', o.showButtonText ? o.formatClearSearch() : '');\n\t        var searchInputHtml = \"<input class=\\\"\".concat(this.constants.classes.input, \"\\n        \").concat(Utils.sprintf(' %s%s', this.constants.classes.inputPrefix, o.iconSize), \"\\n        search-input\\\" type=\\\"text\\\" placeholder=\\\"\").concat(o.formatSearch(), \"\\\">\");\n\t        var searchInputFinalHtml = searchInputHtml;\n\n\t        if (o.showSearchButton || o.showSearchClearButton) {\n\t          var buttonsHtml = (o.showSearchButton ? showSearchButton : '') + (o.showSearchClearButton ? showSearchClearButton : '');\n\t          searchInputFinalHtml = o.search ? Utils.sprintf(this.constants.html.inputGroup, searchInputHtml, buttonsHtml) : buttonsHtml;\n\t        }\n\n\t        html.push(Utils.sprintf(\"\\n        <div class=\\\"\".concat(this.constants.classes.pull, \"-\").concat(o.searchAlign, \" search \").concat(this.constants.classes.inputGroup, \"\\\">\\n          %s\\n        </div>\\n      \"), searchInputFinalHtml));\n\t        this.$toolbar.append(html.join(''));\n\t        var $searchInput = this.$toolbar.find('.search input');\n\n\t        var handleInputEvent = function handleInputEvent() {\n\t          var eventTriggers = Utils.isIEBrowser() ? 'mouseup' : 'keyup drop blur';\n\t          $searchInput.off(eventTriggers).on(eventTriggers, function (event) {\n\t            if (o.searchOnEnterKey && event.keyCode !== 13) {\n\t              return;\n\t            }\n\n\t            if ([37, 38, 39, 40].includes(event.keyCode)) {\n\t              return;\n\t            }\n\n\t            clearTimeout(timeoutId); // doesn't matter if it's 0\n\n\t            timeoutId = setTimeout(function () {\n\t              _this4.onSearch(event);\n\t            }, o.searchTimeOut);\n\t          });\n\t        };\n\n\t        if (o.showSearchButton) {\n\t          this.$toolbar.find('.search button[name=search]').off('click').on('click', function (event) {\n\t            clearTimeout(timeoutId); // doesn't matter if it's 0\n\n\t            timeoutId = setTimeout(function () {\n\t              _this4.onSearch({\n\t                currentTarget: $searchInput\n\t              });\n\t            }, o.searchTimeOut);\n\t          });\n\n\t          if (o.searchOnEnterKey) {\n\t            handleInputEvent();\n\t          }\n\t        } else {\n\t          handleInputEvent();\n\t        }\n\n\t        if (o.showSearchClearButton) {\n\t          this.$toolbar.find('.search button[name=clearSearch]').click(function () {\n\t            _this4.resetSearch();\n\t          });\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: \"onSearch\",\n\t    value: function onSearch() {\n\t      var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t          currentTarget = _ref5.currentTarget,\n\t          firedByInitSearchText = _ref5.firedByInitSearchText;\n\n\t      var overwriteSearchText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n\t      if (currentTarget !== undefined && $(currentTarget).length && overwriteSearchText) {\n\t        var text = $(currentTarget).val().trim();\n\n\t        if (this.options.trimOnSearch && $(currentTarget).val() !== text) {\n\t          $(currentTarget).val(text);\n\t        }\n\n\t        if (this.searchText === text) {\n\t          return;\n\t        }\n\n\t        if ($(currentTarget).hasClass('search-input')) {\n\t          this.searchText = text;\n\t          this.options.searchText = text;\n\t        }\n\t      }\n\n\t      if (!firedByInitSearchText) {\n\t        this.options.pageNumber = 1;\n\t      }\n\n\t      this.initSearch();\n\n\t      if (firedByInitSearchText) {\n\t        if (this.options.sidePagination === 'client') {\n\t          this.updatePagination();\n\t        }\n\t      } else {\n\t        this.updatePagination();\n\t      }\n\n\t      this.trigger('search', this.searchText);\n\t    }\n\t  }, {\n\t    key: \"initSearch\",\n\t    value: function initSearch() {\n\t      var _this5 = this;\n\n\t      this.filterOptions = this.filterOptions || this.options.filterOptions;\n\n\t      if (this.options.sidePagination !== 'server') {\n\t        if (this.options.customSearch) {\n\t          this.data = Utils.calculateObjectValue(this.options, this.options.customSearch, [this.options.data, this.searchText, this.filterColumns]);\n\t          return;\n\t        }\n\n\t        var s = this.searchText && (this.options.escape ? Utils.escapeHTML(this.searchText) : this.searchText).toLowerCase();\n\t        var f = Utils.isEmptyObject(this.filterColumns) ? null : this.filterColumns; // Check filter\n\n\t        if (typeof this.filterOptions.filterAlgorithm === 'function') {\n\t          this.data = this.options.data.filter(function (item, i) {\n\t            return _this5.filterOptions.filterAlgorithm.apply(null, [item, f]);\n\t          });\n\t        } else if (typeof this.filterOptions.filterAlgorithm === 'string') {\n\t          this.data = f ? this.options.data.filter(function (item, i) {\n\t            var filterAlgorithm = _this5.filterOptions.filterAlgorithm;\n\n\t            if (filterAlgorithm === 'and') {\n\t              for (var key in f) {\n\t                if (Array.isArray(f[key]) && !f[key].includes(item[key]) || !Array.isArray(f[key]) && item[key] !== f[key]) {\n\t                  return false;\n\t                }\n\t              }\n\t            } else if (filterAlgorithm === 'or') {\n\t              var match = false;\n\n\t              for (var _key in f) {\n\t                if (Array.isArray(f[_key]) && f[_key].includes(item[_key]) || !Array.isArray(f[_key]) && item[_key] === f[_key]) {\n\t                  match = true;\n\t                }\n\t              }\n\n\t              return match;\n\t            }\n\n\t            return true;\n\t          }) : this.options.data;\n\t        }\n\n\t        var visibleFields = this.getVisibleFields();\n\t        this.data = s ? this.data.filter(function (item, i) {\n\t          for (var j = 0; j < _this5.header.fields.length; j++) {\n\t            if (!_this5.header.searchables[j] || _this5.options.visibleSearch && visibleFields.indexOf(_this5.header.fields[j]) === -1) {\n\t              continue;\n\t            }\n\n\t            var key = Utils.isNumeric(_this5.header.fields[j]) ? parseInt(_this5.header.fields[j], 10) : _this5.header.fields[j];\n\t            var column = _this5.columns[_this5.fieldsColumnsIndex[key]];\n\t            var value = void 0;\n\n\t            if (typeof key === 'string') {\n\t              value = item;\n\t              var props = key.split('.');\n\n\t              for (var _i = 0; _i < props.length; _i++) {\n\t                if (value[props[_i]] !== null) {\n\t                  value = value[props[_i]];\n\t                }\n\t              }\n\t            } else {\n\t              value = item[key];\n\t            } // Fix #142: respect searchFormatter boolean\n\n\n\t            if (column && column.searchFormatter) {\n\t              value = Utils.calculateObjectValue(column, _this5.header.formatters[j], [value, item, i, column.field], value);\n\t            }\n\n\t            if (typeof value === 'string' || typeof value === 'number') {\n\t              if (_this5.options.strictSearch) {\n\t                if (\"\".concat(value).toLowerCase() === s) {\n\t                  return true;\n\t                }\n\t              } else {\n\t                var largerSmallerEqualsRegex = /(?:(<=|=>|=<|>=|>|<)(?:\\s+)?(\\d+)?|(\\d+)?(\\s+)?(<=|=>|=<|>=|>|<))/gm;\n\t                var matches = largerSmallerEqualsRegex.exec(s);\n\t                var comparisonCheck = false;\n\n\t                if (matches) {\n\t                  var operator = matches[1] || \"\".concat(matches[5], \"l\");\n\t                  var comparisonValue = matches[2] || matches[3];\n\t                  var int = parseInt(value, 10);\n\t                  var comparisonInt = parseInt(comparisonValue, 10);\n\n\t                  switch (operator) {\n\t                    case '>':\n\t                    case '<l':\n\t                      comparisonCheck = int > comparisonInt;\n\t                      break;\n\n\t                    case '<':\n\t                    case '>l':\n\t                      comparisonCheck = int < comparisonInt;\n\t                      break;\n\n\t                    case '<=':\n\t                    case '=<':\n\t                    case '>=l':\n\t                    case '=>l':\n\t                      comparisonCheck = int <= comparisonInt;\n\t                      break;\n\n\t                    case '>=':\n\t                    case '=>':\n\t                    case '<=l':\n\t                    case '=<l':\n\t                      comparisonCheck = int >= comparisonInt;\n\t                      break;\n\n\t                    default:\n\t                      break;\n\t                  }\n\t                }\n\n\t                if (comparisonCheck || \"\".concat(value).toLowerCase().includes(s)) {\n\t                  return true;\n\t                }\n\t              }\n\t            }\n\t          }\n\n\t          return false;\n\t        }) : this.data;\n\t      }\n\t    }\n\t  }, {\n\t    key: \"initPagination\",\n\t    value: function initPagination() {\n\t      var _this6 = this;\n\n\t      var o = this.options;\n\n\t      if (!o.pagination) {\n\t        this.$pagination.hide();\n\t        return;\n\t      }\n\n\t      this.$pagination.show();\n\t      var html = [];\n\t      var $allSelected = false;\n\t      var i;\n\t      var from;\n\t      var to;\n\t      var $pageList;\n\t      var $pre;\n\t      var $next;\n\t      var $number;\n\t      var data = this.getData({\n\t        includeHiddenRows: false\n\t      });\n\t      var pageList = o.pageList;\n\n\t      if (o.sidePagination !== 'server') {\n\t        o.totalRows = data.length;\n\t      }\n\n\t      this.totalPages = 0;\n\n\t      if (o.totalRows) {\n\t        if (o.pageSize === o.formatAllRows()) {\n\t          o.pageSize = o.totalRows;\n\t          $allSelected = true;\n\t        } else if (o.pageSize === o.totalRows) {\n\t          // Fix #667 Table with pagination,\n\t          // multiple pages and a search this matches to one page throws exception\n\t          var pageLst = typeof o.pageList === 'string' ? o.pageList.replace('[', '').replace(']', '').replace(/ /g, '').toLowerCase().split(',') : o.pageList;\n\n\t          if (pageLst.includes(o.formatAllRows().toLowerCase())) {\n\t            $allSelected = true;\n\t          }\n\t        }\n\n\t        this.totalPages = ~~((o.totalRows - 1) / o.pageSize) + 1;\n\t        o.totalPages = this.totalPages;\n\t      }\n\n\t      if (this.totalPages > 0 && o.pageNumber > this.totalPages) {\n\t        o.pageNumber = this.totalPages;\n\t      }\n\n\t      this.pageFrom = (o.pageNumber - 1) * o.pageSize + 1;\n\t      this.pageTo = o.pageNumber * o.pageSize;\n\n\t      if (this.pageTo > o.totalRows) {\n\t        this.pageTo = o.totalRows;\n\t      }\n\n\t      if (this.options.pagination && this.options.sidePagination !== 'server') {\n\t        this.options.totalNotFiltered = this.options.data.length;\n\t      }\n\n\t      if (!this.options.showExtendedPagination) {\n\t        this.options.totalNotFiltered = undefined;\n\t      }\n\n\t      var paginationInfo = o.onlyInfoPagination ? o.formatDetailPagination(o.totalRows) : o.formatShowingRows(this.pageFrom, this.pageTo, o.totalRows, o.totalNotFiltered);\n\t      html.push(\"<div class=\\\"\".concat(this.constants.classes.pull, \"-\").concat(o.paginationDetailHAlign, \" pagination-detail\\\">\\n      <span class=\\\"pagination-info\\\">\\n      \").concat(paginationInfo, \"\\n      </span>\"));\n\n\t      if (!o.onlyInfoPagination) {\n\t        html.push('<span class=\"page-list\">');\n\t        var pageNumber = [\"<span class=\\\"\".concat(this.constants.classes.paginationDropdown, \"\\\">\\n        <button class=\\\"\").concat(this.constants.buttonsClass, \" dropdown-toggle\\\" type=\\\"button\\\" data-toggle=\\\"dropdown\\\">\\n        <span class=\\\"page-size\\\">\\n        \").concat($allSelected ? o.formatAllRows() : o.pageSize, \"\\n        </span>\\n        \").concat(this.constants.html.dropdownCaret, \"\\n        </button>\\n        \").concat(this.constants.html.pageDropdown[0])];\n\n\t        if (typeof o.pageList === 'string') {\n\t          var list = o.pageList.replace('[', '').replace(']', '').replace(/ /g, '').split(',');\n\t          pageList = [];\n\t          var _iteratorNormalCompletion = true;\n\t          var _didIteratorError = false;\n\t          var _iteratorError = undefined;\n\n\t          try {\n\t            for (var _iterator = list[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t              var value = _step.value;\n\t              pageList.push(value.toLowerCase() === o.formatAllRows().toLowerCase() || ['all', 'unlimited'].includes(value.toLowerCase()) ? o.formatAllRows() : +value);\n\t            }\n\t          } catch (err) {\n\t            _didIteratorError = true;\n\t            _iteratorError = err;\n\t          } finally {\n\t            try {\n\t              if (!_iteratorNormalCompletion && _iterator.return != null) {\n\t                _iterator.return();\n\t              }\n\t            } finally {\n\t              if (_didIteratorError) {\n\t                throw _iteratorError;\n\t              }\n\t            }\n\t          }\n\t        }\n\n\t        pageList.forEach(function (page, i) {\n\t          if (!o.smartDisplay || i === 0 || pageList[i - 1] < o.totalRows) {\n\t            var active;\n\n\t            if ($allSelected) {\n\t              active = page === o.formatAllRows() ? _this6.constants.classes.dropdownActive : '';\n\t            } else {\n\t              active = page === o.pageSize ? _this6.constants.classes.dropdownActive : '';\n\t            }\n\n\t            pageNumber.push(Utils.sprintf(_this6.constants.html.pageDropdownItem, active, page));\n\t          }\n\t        });\n\t        pageNumber.push(\"\".concat(this.constants.html.pageDropdown[1], \"</span>\"));\n\t        html.push(o.formatRecordsPerPage(pageNumber.join('')));\n\t        html.push('</span></div>');\n\t        html.push(\"<div class=\\\"\".concat(this.constants.classes.pull, \"-\").concat(o.paginationHAlign, \" pagination\\\">\"), Utils.sprintf(this.constants.html.pagination[0], Utils.sprintf(' pagination-%s', o.iconSize)), Utils.sprintf(this.constants.html.paginationItem, ' page-pre', o.formatSRPaginationPreText(), o.paginationPreText));\n\n\t        if (this.totalPages < o.paginationSuccessivelySize) {\n\t          from = 1;\n\t          to = this.totalPages;\n\t        } else {\n\t          from = o.pageNumber - o.paginationPagesBySide;\n\t          to = from + o.paginationPagesBySide * 2;\n\t        }\n\n\t        if (o.pageNumber < o.paginationSuccessivelySize - 1) {\n\t          to = o.paginationSuccessivelySize;\n\t        }\n\n\t        if (o.paginationSuccessivelySize > this.totalPages - from) {\n\t          from = from - (o.paginationSuccessivelySize - (this.totalPages - from)) + 1;\n\t        }\n\n\t        if (from < 1) {\n\t          from = 1;\n\t        }\n\n\t        if (to > this.totalPages) {\n\t          to = this.totalPages;\n\t        }\n\n\t        var middleSize = Math.round(o.paginationPagesBySide / 2);\n\n\t        var pageItem = function pageItem(i) {\n\t          var classes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\t          return Utils.sprintf(_this6.constants.html.paginationItem, classes + (i === o.pageNumber ? \" \".concat(_this6.constants.classes.paginationActive) : ''), o.formatSRPaginationPageText(i), i);\n\t        };\n\n\t        if (from > 1) {\n\t          var max = o.paginationPagesBySide;\n\t          if (max >= from) max = from - 1;\n\n\t          for (i = 1; i <= max; i++) {\n\t            html.push(pageItem(i));\n\t          }\n\n\t          if (from - 1 === max + 1) {\n\t            i = from - 1;\n\t            html.push(pageItem(i));\n\t          } else {\n\t            if (from - 1 > max) {\n\t              if (from - o.paginationPagesBySide * 2 > o.paginationPagesBySide && o.paginationUseIntermediate) {\n\t                i = Math.round((from - middleSize) / 2 + middleSize);\n\t                html.push(pageItem(i, ' page-intermediate'));\n\t              } else {\n\t                html.push(Utils.sprintf(this.constants.html.paginationItem, ' page-first-separator disabled', '', '...'));\n\t              }\n\t            }\n\t          }\n\t        }\n\n\t        for (i = from; i <= to; i++) {\n\t          html.push(pageItem(i));\n\t        }\n\n\t        if (this.totalPages > to) {\n\t          var min = this.totalPages - (o.paginationPagesBySide - 1);\n\t          if (to >= min) min = to + 1;\n\n\t          if (to + 1 === min - 1) {\n\t            i = to + 1;\n\t            html.push(pageItem(i));\n\t          } else {\n\t            if (min > to + 1) {\n\t              if (this.totalPages - to > o.paginationPagesBySide * 2 && o.paginationUseIntermediate) {\n\t                i = Math.round((this.totalPages - middleSize - to) / 2 + to);\n\t                html.push(pageItem(i, ' page-intermediate'));\n\t              } else {\n\t                html.push(Utils.sprintf(this.constants.html.paginationItem, ' page-last-separator disabled', '', '...'));\n\t              }\n\t            }\n\t          }\n\n\t          for (i = min; i <= this.totalPages; i++) {\n\t            html.push(pageItem(i));\n\t          }\n\t        }\n\n\t        html.push(Utils.sprintf(this.constants.html.paginationItem, ' page-next', o.formatSRPaginationNextText(), o.paginationNextText));\n\t        html.push(this.constants.html.pagination[1], '</div>');\n\t      }\n\n\t      this.$pagination.html(html.join(''));\n\t      var dropupClass = ['bottom', 'both'].includes(o.paginationVAlign) ? \" \".concat(this.constants.classes.dropup) : '';\n\t      this.$pagination.last().find('.page-list > span').addClass(dropupClass);\n\n\t      if (!o.onlyInfoPagination) {\n\t        $pageList = this.$pagination.find('.page-list a');\n\t        $pre = this.$pagination.find('.page-pre');\n\t        $next = this.$pagination.find('.page-next');\n\t        $number = this.$pagination.find('.page-item').not('.page-next, .page-pre, .page-last-separator, .page-first-separator');\n\n\t        if (this.totalPages <= 1) {\n\t          this.$pagination.find('div.pagination').hide();\n\t        }\n\n\t        if (o.smartDisplay) {\n\t          if (pageList.length < 2 || o.totalRows <= pageList[0]) {\n\t            this.$pagination.find('span.page-list').hide();\n\t          }\n\t        } // when data is empty, hide the pagination\n\n\n\t        this.$pagination[this.getData().length ? 'show' : 'hide']();\n\n\t        if (!o.paginationLoop) {\n\t          if (o.pageNumber === 1) {\n\t            $pre.addClass('disabled');\n\t          }\n\n\t          if (o.pageNumber === this.totalPages) {\n\t            $next.addClass('disabled');\n\t          }\n\t        }\n\n\t        if ($allSelected) {\n\t          o.pageSize = o.formatAllRows();\n\t        } // removed the events for last and first, onPageNumber executeds the same logic\n\n\n\t        $pageList.off('click').on('click', function (e) {\n\t          return _this6.onPageListChange(e);\n\t        });\n\t        $pre.off('click').on('click', function (e) {\n\t          return _this6.onPagePre(e);\n\t        });\n\t        $next.off('click').on('click', function (e) {\n\t          return _this6.onPageNext(e);\n\t        });\n\t        $number.off('click').on('click', function (e) {\n\t          return _this6.onPageNumber(e);\n\t        });\n\t      }\n\t    }\n\t  }, {\n\t    key: \"updatePagination\",\n\t    value: function updatePagination(event) {\n\t      // Fix #171: IE disabled button can be clicked bug.\n\t      if (event && $(event.currentTarget).hasClass('disabled')) {\n\t        return;\n\t      }\n\n\t      if (!this.options.maintainMetaData) {\n\t        this.resetRows();\n\t      }\n\n\t      this.initPagination();\n\n\t      if (this.options.sidePagination === 'server') {\n\t        this.initServer();\n\t      } else {\n\t        this.initBody();\n\t      }\n\n\t      this.trigger('page-change', this.options.pageNumber, this.options.pageSize);\n\t    }\n\t  }, {\n\t    key: \"onPageListChange\",\n\t    value: function onPageListChange(event) {\n\t      event.preventDefault();\n\t      var $this = $(event.currentTarget);\n\t      $this.parent().addClass(this.constants.classes.dropdownActive).siblings().removeClass(this.constants.classes.dropdownActive);\n\t      this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ? this.options.formatAllRows() : +$this.text();\n\t      this.$toolbar.find('.page-size').text(this.options.pageSize);\n\t      this.updatePagination(event);\n\t      return false;\n\t    }\n\t  }, {\n\t    key: \"onPagePre\",\n\t    value: function onPagePre(event) {\n\t      event.preventDefault();\n\n\t      if (this.options.pageNumber - 1 === 0) {\n\t        this.options.pageNumber = this.options.totalPages;\n\t      } else {\n\t        this.options.pageNumber--;\n\t      }\n\n\t      this.updatePagination(event);\n\t      return false;\n\t    }\n\t  }, {\n\t    key: \"onPageNext\",\n\t    value: function onPageNext(event) {\n\t      event.preventDefault();\n\n\t      if (this.options.pageNumber + 1 > this.options.totalPages) {\n\t        this.options.pageNumber = 1;\n\t      } else {\n\t        this.options.pageNumber++;\n\t      }\n\n\t      this.updatePagination(event);\n\t      return false;\n\t    }\n\t  }, {\n\t    key: \"onPageNumber\",\n\t    value: function onPageNumber(event) {\n\t      event.preventDefault();\n\n\t      if (this.options.pageNumber === +$(event.currentTarget).text()) {\n\t        return;\n\t      }\n\n\t      this.options.pageNumber = +$(event.currentTarget).text();\n\t      this.updatePagination(event);\n\t      return false;\n\t    }\n\t  }, {\n\t    key: \"initRow\",\n\t    value: function initRow(item, i, data, trFragments) {\n\t      var _this7 = this;\n\n\t      var html = [];\n\t      var style = {};\n\t      var csses = [];\n\t      var data_ = '';\n\t      var attributes = {};\n\t      var htmlAttributes = [];\n\n\t      if (Utils.findIndex(this.hiddenRows, item) > -1) {\n\t        return;\n\t      }\n\n\t      style = Utils.calculateObjectValue(this.options, this.options.rowStyle, [item, i], style);\n\n\t      if (style && style.css) {\n\t        for (var _i2 = 0, _Object$entries = Object.entries(style.css); _i2 < _Object$entries.length; _i2++) {\n\t          var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),\n\t              key = _Object$entries$_i[0],\n\t              value = _Object$entries$_i[1];\n\n\t          csses.push(\"\".concat(key, \": \").concat(value));\n\t        }\n\t      }\n\n\t      attributes = Utils.calculateObjectValue(this.options, this.options.rowAttributes, [item, i], attributes);\n\n\t      if (attributes) {\n\t        for (var _i3 = 0, _Object$entries2 = Object.entries(attributes); _i3 < _Object$entries2.length; _i3++) {\n\t          var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),\n\t              key = _Object$entries2$_i[0],\n\t              value = _Object$entries2$_i[1];\n\n\t          htmlAttributes.push(\"\".concat(key, \"=\\\"\").concat(Utils.escapeHTML(value), \"\\\"\"));\n\t        }\n\t      }\n\n\t      if (item._data && !Utils.isEmptyObject(item._data)) {\n\t        for (var _i4 = 0, _Object$entries3 = Object.entries(item._data); _i4 < _Object$entries3.length; _i4++) {\n\t          var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),\n\t              k = _Object$entries3$_i[0],\n\t              v = _Object$entries3$_i[1];\n\n\t          // ignore data-index\n\t          if (k === 'index') {\n\t            return;\n\t          }\n\n\t          data_ += \" data-\".concat(k, \"='\").concat(_typeof(v) === 'object' ? JSON.stringify(v) : v, \"'\");\n\t        }\n\t      }\n\n\t      html.push('<tr', Utils.sprintf(' %s', htmlAttributes.length ? htmlAttributes.join(' ') : undefined), Utils.sprintf(' id=\"%s\"', Array.isArray(item) ? undefined : item._id), Utils.sprintf(' class=\"%s\"', style.classes || (Array.isArray(item) ? undefined : item._class)), \" data-index=\\\"\".concat(i, \"\\\"\"), Utils.sprintf(' data-uniqueid=\"%s\"', Utils.getItemField(item, this.options.uniqueId, false)), Utils.sprintf(' data-has-detail-view=\"%s\"', !this.options.cardView && this.options.detailView && Utils.calculateObjectValue(null, this.options.detailFilter, [i, item]) ? 'true' : undefined), Utils.sprintf('%s', data_), '>');\n\n\t      if (this.options.cardView) {\n\t        html.push(\"<td colspan=\\\"\".concat(this.header.fields.length, \"\\\"><div class=\\\"card-views\\\">\"));\n\t      }\n\n\t      if (!this.options.cardView && this.options.detailView && this.options.detailViewIcon) {\n\t        html.push('<td>');\n\n\t        if (Utils.calculateObjectValue(null, this.options.detailFilter, [i, item])) {\n\t          html.push(\"\\n          <a class=\\\"detail-icon\\\" href=\\\"#\\\">\\n          \".concat(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, this.options.icons.detailOpen), \"\\n          </a>\\n        \"));\n\t        }\n\n\t        html.push('</td>');\n\t      }\n\n\t      this.header.fields.forEach(function (field, j) {\n\t        var text = '';\n\t        var value_ = Utils.getItemField(item, field, _this7.options.escape);\n\t        var value = '';\n\t        var type = '';\n\t        var cellStyle = {};\n\t        var id_ = '';\n\t        var class_ = _this7.header.classes[j];\n\t        var style_ = '';\n\t        var data_ = '';\n\t        var rowspan_ = '';\n\t        var colspan_ = '';\n\t        var title_ = '';\n\t        var column = _this7.columns[j];\n\n\t        if (_this7.fromHtml && typeof value_ === 'undefined') {\n\t          if (!column.checkbox && !column.radio) {\n\t            return;\n\t          }\n\t        }\n\n\t        if (!column.visible) {\n\t          return;\n\t        }\n\n\t        if (_this7.options.cardView && !column.cardVisible) {\n\t          return;\n\t        }\n\n\t        if (column.escape) {\n\t          value_ = Utils.escapeHTML(value_);\n\t        }\n\n\t        if (csses.concat([_this7.header.styles[j]]).length) {\n\t          style_ = \" style=\\\"\".concat(csses.concat([_this7.header.styles[j]]).join('; '), \"\\\"\");\n\t        } // handle td's id and class\n\n\n\t        if (item[\"_\".concat(field, \"_id\")]) {\n\t          id_ = Utils.sprintf(' id=\"%s\"', item[\"_\".concat(field, \"_id\")]);\n\t        }\n\n\t        if (item[\"_\".concat(field, \"_class\")]) {\n\t          class_ = Utils.sprintf(' class=\"%s\"', item[\"_\".concat(field, \"_class\")]);\n\t        }\n\n\t        if (item[\"_\".concat(field, \"_rowspan\")]) {\n\t          rowspan_ = Utils.sprintf(' rowspan=\"%s\"', item[\"_\".concat(field, \"_rowspan\")]);\n\t        }\n\n\t        if (item[\"_\".concat(field, \"_colspan\")]) {\n\t          colspan_ = Utils.sprintf(' colspan=\"%s\"', item[\"_\".concat(field, \"_colspan\")]);\n\t        }\n\n\t        if (item[\"_\".concat(field, \"_title\")]) {\n\t          title_ = Utils.sprintf(' title=\"%s\"', item[\"_\".concat(field, \"_title\")]);\n\t        }\n\n\t        cellStyle = Utils.calculateObjectValue(_this7.header, _this7.header.cellStyles[j], [value_, item, i, field], cellStyle);\n\n\t        if (cellStyle.classes) {\n\t          class_ = \" class=\\\"\".concat(cellStyle.classes, \"\\\"\");\n\t        }\n\n\t        if (cellStyle.css) {\n\t          var csses_ = [];\n\n\t          for (var _i5 = 0, _Object$entries4 = Object.entries(cellStyle.css); _i5 < _Object$entries4.length; _i5++) {\n\t            var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i5], 2),\n\t                key = _Object$entries4$_i[0],\n\t                _value = _Object$entries4$_i[1];\n\n\t            csses_.push(\"\".concat(key, \": \").concat(_value));\n\t          }\n\n\t          style_ = \" style=\\\"\".concat(csses_.concat(_this7.header.styles[j]).join('; '), \"\\\"\");\n\t        }\n\n\t        value = Utils.calculateObjectValue(column, _this7.header.formatters[j], [value_, item, i, field], value_);\n\n\t        if (item[\"_\".concat(field, \"_data\")] && !Utils.isEmptyObject(item[\"_\".concat(field, \"_data\")])) {\n\t          for (var _i6 = 0, _Object$entries5 = Object.entries(item[\"_\".concat(field, \"_data\")]); _i6 < _Object$entries5.length; _i6++) {\n\t            var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i6], 2),\n\t                k = _Object$entries5$_i[0],\n\t                v = _Object$entries5$_i[1];\n\n\t            // ignore data-index\n\t            if (k === 'index') {\n\t              return;\n\t            }\n\n\t            data_ += \" data-\".concat(k, \"=\\\"\").concat(v, \"\\\"\");\n\t          }\n\t        }\n\n\t        if (column.checkbox || column.radio) {\n\t          type = column.checkbox ? 'checkbox' : type;\n\t          type = column.radio ? 'radio' : type;\n\t          var c = column['class'] || '';\n\t          var isChecked = (value === true || value_ || value && value.checked) && value !== false;\n\t          var isDisabled = !column.checkboxEnabled || value && value.disabled;\n\t          text = [_this7.options.cardView ? \"<div class=\\\"card-view \".concat(c, \"\\\">\") : \"<td class=\\\"bs-checkbox \".concat(c, \"\\\"\").concat(class_).concat(style_, \">\"), \"<label>\\n            <input\\n            data-index=\\\"\".concat(i, \"\\\"\\n            name=\\\"\").concat(_this7.options.selectItemName, \"\\\"\\n            type=\\\"\").concat(type, \"\\\"\\n            \").concat(Utils.sprintf('value=\"%s\"', item[_this7.options.idField]), \"\\n            \").concat(Utils.sprintf('checked=\"%s\"', isChecked ? 'checked' : undefined), \"\\n            \").concat(Utils.sprintf('disabled=\"%s\"', isDisabled ? 'disabled' : undefined), \" />\\n            <span></span>\\n            </label>\"), _this7.header.formatters[j] && typeof value === 'string' ? value : '', _this7.options.cardView ? '</div>' : '</td>'].join('');\n\t          item[_this7.header.stateField] = value === true || !!value_ || value && value.checked;\n\t        } else {\n\t          value = typeof value === 'undefined' || value === null ? _this7.options.undefinedText : value;\n\n\t          if (_this7.options.cardView) {\n\t            var cardTitle = _this7.options.showHeader ? \"<span class=\\\"card-view-title\\\"\".concat(style_, \">\").concat(Utils.getFieldTitle(_this7.columns, field), \"</span>\") : '';\n\t            text = \"<div class=\\\"card-view\\\">\".concat(cardTitle, \"<span class=\\\"card-view-value\\\">\").concat(value, \"</span></div>\");\n\n\t            if (_this7.options.smartDisplay && value === '') {\n\t              text = '<div class=\"card-view\"></div>';\n\t            }\n\t          } else {\n\t            text = \"<td\".concat(id_).concat(class_).concat(style_).concat(data_).concat(rowspan_).concat(colspan_).concat(title_, \">\").concat(value, \"</td>\");\n\t          }\n\t        }\n\n\t        html.push(text);\n\t      });\n\n\t      if (this.options.cardView) {\n\t        html.push('</div></td>');\n\t      }\n\n\t      html.push('</tr>');\n\t      return html.join('');\n\t    }\n\t  }, {\n\t    key: \"initBody\",\n\t    value: function initBody(fixedScroll) {\n\t      var _this8 = this;\n\n\t      var data = this.getData();\n\t      this.trigger('pre-body', data);\n\t      this.$body = this.$el.find('>tbody');\n\n\t      if (!this.$body.length) {\n\t        this.$body = $('<tbody></tbody>').appendTo(this.$el);\n\t      } // Fix #389 Bootstrap-table-flatJSON is not working\n\n\n\t      if (!this.options.pagination || this.options.sidePagination === 'server') {\n\t        this.pageFrom = 1;\n\t        this.pageTo = data.length;\n\t      }\n\n\t      var rows = [];\n\t      var trFragments = $(document.createDocumentFragment());\n\t      var hasTr = false;\n\n\t      for (var i = this.pageFrom - 1; i < this.pageTo; i++) {\n\t        var item = data[i];\n\t        var tr = this.initRow(item, i, data, trFragments);\n\t        hasTr = hasTr || !!tr;\n\n\t        if (tr && typeof tr === 'string') {\n\t          if (!this.options.virtualScroll) {\n\t            trFragments.append(tr);\n\t          } else {\n\t            rows.push(tr);\n\t          }\n\t        }\n\t      } // show no records\n\n\n\t      if (!hasTr) {\n\t        this.$body.html(\"<tr class=\\\"no-records-found\\\">\".concat(Utils.sprintf('<td colspan=\"%s\">%s</td>', this.$header.find('th').length, this.options.formatNoMatches()), \"</tr>\"));\n\t      } else {\n\t        if (!this.options.virtualScroll) {\n\t          this.$body.html(trFragments);\n\t        } else {\n\t          if (this.virtualScroll) {\n\t            this.virtualScroll.destroy();\n\t          }\n\n\t          this.virtualScroll = new VirtualScroll({\n\t            rows: rows,\n\t            fixedScroll: fixedScroll,\n\t            scrollEl: this.$tableBody[0],\n\t            contentEl: this.$body[0],\n\t            itemHeight: this.options.virtualScrollItemHeight,\n\t            callback: function callback() {\n\t              _this8.fitHeader();\n\n\t              _this8.initBodyEvent();\n\t            }\n\t          });\n\t        }\n\t      }\n\n\t      if (!fixedScroll) {\n\t        this.scrollTo(0);\n\t      }\n\n\t      this.initBodyEvent();\n\t      this.updateSelected();\n\t      this.initFooter();\n\t      this.resetView();\n\n\t      if (this.options.sidePagination !== 'server') {\n\t        this.options.totalRows = data.length;\n\t      }\n\n\t      this.trigger('post-body', data);\n\t    }\n\t  }, {\n\t    key: \"initBodyEvent\",\n\t    value: function initBodyEvent() {\n\t      var _this9 = this;\n\n\t      // click to select by column\n\t      this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {\n\t        var $td = $(e.currentTarget);\n\t        var $tr = $td.parent();\n\t        var $cardViewArr = $(e.target).parents('.card-views').children();\n\t        var $cardViewTarget = $(e.target).parents('.card-view');\n\t        var rowIndex = $tr.data('index');\n\t        var item = _this9.data[rowIndex];\n\t        var index = _this9.options.cardView ? $cardViewArr.index($cardViewTarget) : $td[0].cellIndex;\n\n\t        var fields = _this9.getVisibleFields();\n\n\t        var field = fields[_this9.options.detailView && _this9.options.detailViewIcon && !_this9.options.cardView ? index - 1 : index];\n\t        var column = _this9.columns[_this9.fieldsColumnsIndex[field]];\n\t        var value = Utils.getItemField(item, field, _this9.options.escape);\n\n\t        if ($td.find('.detail-icon').length) {\n\t          return;\n\t        }\n\n\t        _this9.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);\n\n\t        _this9.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr, field); // if click to select - then trigger the checkbox/radio click\n\n\n\t        if (e.type === 'click' && _this9.options.clickToSelect && column.clickToSelect && !Utils.calculateObjectValue(_this9.options, _this9.options.ignoreClickToSelectOn, [e.target])) {\n\t          var $selectItem = $tr.find(Utils.sprintf('[name=\"%s\"]', _this9.options.selectItemName));\n\n\t          if ($selectItem.length) {\n\t            $selectItem[0].click();\n\t          }\n\t        }\n\n\t        if (e.type === 'click' && _this9.options.detailViewByClick) {\n\t          _this9.toggleDetailView(rowIndex, _this9.header.detailFormatters[_this9.fieldsColumnsIndex[field]]);\n\t        }\n\t      }).off('mousedown').on('mousedown', function (e) {\n\t        // https://github.com/jquery/jquery/issues/1741\n\t        _this9.multipleSelectRowCtrlKey = e.ctrlKey || e.metaKey;\n\t        _this9.multipleSelectRowShiftKey = e.shiftKey;\n\t      });\n\t      this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function (e) {\n\t        e.preventDefault();\n\n\t        _this9.toggleDetailView($(e.currentTarget).parent().parent().data('index'));\n\n\t        return false;\n\t      });\n\t      this.$selectItem = this.$body.find(Utils.sprintf('[name=\"%s\"]', this.options.selectItemName));\n\t      this.$selectItem.off('click').on('click', function (e) {\n\t        e.stopImmediatePropagation();\n\t        var $this = $(e.currentTarget);\n\n\t        _this9._toggleCheck($this.prop('checked'), $this.data('index'));\n\t      });\n\t      this.header.events.forEach(function (_events, i) {\n\t        var events = _events;\n\n\t        if (!events) {\n\t          return;\n\t        } // fix bug, if events is defined with namespace\n\n\n\t        if (typeof events === 'string') {\n\t          events = Utils.calculateObjectValue(null, events);\n\t        }\n\n\t        var field = _this9.header.fields[i];\n\n\t        var fieldIndex = _this9.getVisibleFields().indexOf(field);\n\n\t        if (fieldIndex === -1) {\n\t          return;\n\t        }\n\n\t        if (_this9.options.detailView && !_this9.options.cardView) {\n\t          fieldIndex += 1;\n\t        }\n\n\t        var _loop = function _loop(key) {\n\t          if (!events.hasOwnProperty(key)) {\n\t            return \"continue\";\n\t          }\n\n\t          var event = events[key];\n\n\t          _this9.$body.find('>tr:not(.no-records-found)').each(function (i, tr) {\n\t            var $tr = $(tr);\n\t            var $td = $tr.find(_this9.options.cardView ? '.card-views>.card-view' : '>td').eq(fieldIndex);\n\t            var index = key.indexOf(' ');\n\t            var name = key.substring(0, index);\n\t            var el = key.substring(index + 1);\n\t            $td.find(el).off(name).on(name, function (e) {\n\t              var index = $tr.data('index');\n\t              var row = _this9.data[index];\n\t              var value = row[field];\n\t              event.apply(_this9, [e, value, row, index]);\n\t            });\n\t          });\n\t        };\n\n\t        for (var key in events) {\n\t          var _ret = _loop(key);\n\n\t          if (_ret === \"continue\") continue;\n\t        }\n\t      });\n\t    }\n\t  }, {\n\t    key: \"initServer\",\n\t    value: function initServer(silent, query, url) {\n\t      var _this10 = this;\n\n\t      var data = {};\n\t      var index = this.header.fields.indexOf(this.options.sortName);\n\t      var params = {\n\t        searchText: this.searchText,\n\t        sortName: this.options.sortName,\n\t        sortOrder: this.options.sortOrder\n\t      };\n\n\t      if (this.header.sortNames[index]) {\n\t        params.sortName = this.header.sortNames[index];\n\t      }\n\n\t      if (this.options.pagination && this.options.sidePagination === 'server') {\n\t        params.pageSize = this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows : this.options.pageSize;\n\t        params.pageNumber = this.options.pageNumber;\n\t      }\n\n\t      if (!(url || this.options.url) && !this.options.ajax) {\n\t        return;\n\t      }\n\n\t      if (this.options.queryParamsType === 'limit') {\n\t        params = {\n\t          search: params.searchText,\n\t          sort: params.sortName,\n\t          order: params.sortOrder\n\t        };\n\n\t        if (this.options.pagination && this.options.sidePagination === 'server') {\n\t          params.offset = this.options.pageSize === this.options.formatAllRows() ? 0 : this.options.pageSize * (this.options.pageNumber - 1);\n\t          params.limit = this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows : this.options.pageSize;\n\n\t          if (params.limit === 0) {\n\t            delete params.limit;\n\t          }\n\t        }\n\t      }\n\n\t      if (!Utils.isEmptyObject(this.filterColumnsPartial)) {\n\t        params.filter = JSON.stringify(this.filterColumnsPartial, null);\n\t      }\n\n\t      $.extend(params, query || {});\n\t      data = Utils.calculateObjectValue(this.options, this.options.queryParams, [params], data); // false to stop request\n\n\t      if (data === false) {\n\t        return;\n\t      }\n\n\t      if (!silent) {\n\t        this.showLoading();\n\t      }\n\n\t      var request = $.extend({}, Utils.calculateObjectValue(null, this.options.ajaxOptions), {\n\t        type: this.options.method,\n\t        url: url || this.options.url,\n\t        data: this.options.contentType === 'application/json' && this.options.method === 'post' ? JSON.stringify(data) : data,\n\t        cache: this.options.cache,\n\t        contentType: this.options.contentType,\n\t        dataType: this.options.dataType,\n\t        success: function success(_res, textStatus, jqXHR) {\n\t          var res = Utils.calculateObjectValue(_this10.options, _this10.options.responseHandler, [_res, jqXHR], _res);\n\n\t          _this10.load(res);\n\n\t          _this10.trigger('load-success', res, jqXHR.status, jqXHR);\n\n\t          if (!silent) {\n\t            _this10.hideLoading();\n\t          }\n\t        },\n\t        error: function error(jqXHR) {\n\t          var data = [];\n\n\t          if (_this10.options.sidePagination === 'server') {\n\t            data = {};\n\t            data[_this10.options.totalField] = 0;\n\t            data[_this10.options.dataField] = [];\n\t          }\n\n\t          _this10.load(data);\n\n\t          _this10.trigger('load-error', jqXHR.status, jqXHR);\n\n\t          if (!silent) _this10.$tableLoading.hide();\n\t        }\n\t      });\n\n\t      if (this.options.ajax) {\n\t        Utils.calculateObjectValue(this, this.options.ajax, [request], null);\n\t      } else {\n\t        if (this._xhr && this._xhr.readyState !== 4) {\n\t          this._xhr.abort();\n\t        }\n\n\t        this._xhr = $.ajax(request);\n\t      }\n\n\t      return data;\n\t    }\n\t  }, {\n\t    key: \"initSearchText\",\n\t    value: function initSearchText() {\n\t      if (this.options.search) {\n\t        this.searchText = '';\n\n\t        if (this.options.searchText !== '') {\n\t          var $search = this.$toolbar.find('.search input');\n\t          $search.val(this.options.searchText);\n\t          this.onSearch({\n\t            currentTarget: $search,\n\t            firedByInitSearchText: true\n\t          });\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: \"getCaret\",\n\t    value: function getCaret() {\n\t      var _this11 = this;\n\n\t      this.$header.find('th').each(function (i, th) {\n\t        $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === _this11.options.sortName ? _this11.options.sortOrder : 'both');\n\t      });\n\t    }\n\t  }, {\n\t    key: \"updateSelected\",\n\t    value: function updateSelected() {\n\t      var checkAll = this.$selectItem.filter(':enabled').length && this.$selectItem.filter(':enabled').length === this.$selectItem.filter(':enabled').filter(':checked').length;\n\t      this.$selectAll.add(this.$selectAll_).prop('checked', checkAll);\n\t      this.$selectItem.each(function (i, el) {\n\t        $(el).closest('tr')[$(el).prop('checked') ? 'addClass' : 'removeClass']('selected');\n\t      });\n\t    }\n\t  }, {\n\t    key: \"updateRows\",\n\t    value: function updateRows() {\n\t      var _this12 = this;\n\n\t      this.$selectItem.each(function (i, el) {\n\t        _this12.data[$(el).data('index')][_this12.header.stateField] = $(el).prop('checked');\n\t      });\n\t    }\n\t  }, {\n\t    key: \"resetRows\",\n\t    value: function resetRows() {\n\t      var _iteratorNormalCompletion2 = true;\n\t      var _didIteratorError2 = false;\n\t      var _iteratorError2 = undefined;\n\n\t      try {\n\t        for (var _iterator2 = this.data[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t          var row = _step2.value;\n\t          this.$selectAll.prop('checked', false);\n\t          this.$selectItem.prop('checked', false);\n\n\t          if (this.header.stateField) {\n\t            row[this.header.stateField] = false;\n\t          }\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError2 = true;\n\t        _iteratorError2 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n\t            _iterator2.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError2) {\n\t            throw _iteratorError2;\n\t          }\n\t        }\n\t      }\n\n\t      this.initHiddenRows();\n\t    }\n\t  }, {\n\t    key: \"trigger\",\n\t    value: function trigger(_name) {\n\t      var _this$options;\n\n\t      var name = \"\".concat(_name, \".bs.table\");\n\n\t      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key2 = 1; _key2 < _len; _key2++) {\n\t        args[_key2 - 1] = arguments[_key2];\n\t      }\n\n\t      (_this$options = this.options)[BootstrapTable.EVENTS[name]].apply(_this$options, args);\n\n\t      this.$el.trigger($.Event(name), args);\n\t      this.options.onAll(name, args);\n\t      this.$el.trigger($.Event('all.bs.table'), [name, args]);\n\t    }\n\t  }, {\n\t    key: \"resetHeader\",\n\t    value: function resetHeader() {\n\t      var _this13 = this;\n\n\t      // fix #61: the hidden table reset header bug.\n\t      // fix bug: get $el.css('width') error sometime (height = 500)\n\t      clearTimeout(this.timeoutId_);\n\t      this.timeoutId_ = setTimeout(function () {\n\t        return _this13.fitHeader();\n\t      }, this.$el.is(':hidden') ? 100 : 0);\n\t    }\n\t  }, {\n\t    key: \"fitHeader\",\n\t    value: function fitHeader() {\n\t      var _this14 = this;\n\n\t      if (this.$el.is(':hidden')) {\n\t        this.timeoutId_ = setTimeout(function () {\n\t          return _this14.fitHeader();\n\t        }, 100);\n\t        return;\n\t      }\n\n\t      var fixedBody = this.$tableBody.get(0);\n\t      var scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth && fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ? Utils.getScrollBarWidth() : 0;\n\t      this.$el.css('margin-top', -this.$header.outerHeight());\n\t      var focused = $(':focus');\n\n\t      if (focused.length > 0) {\n\t        var $th = focused.parents('th');\n\n\t        if ($th.length > 0) {\n\t          var dataField = $th.attr('data-field');\n\n\t          if (dataField !== undefined) {\n\t            var $headerTh = this.$header.find(\"[data-field='\".concat(dataField, \"']\"));\n\n\t            if ($headerTh.length > 0) {\n\t              $headerTh.find(':input').addClass('focus-temp');\n\t            }\n\t          }\n\t        }\n\t      }\n\n\t      this.$header_ = this.$header.clone(true, true);\n\t      this.$selectAll_ = this.$header_.find('[name=\"btSelectAll\"]');\n\t      this.$tableHeader.css('margin-right', scrollWidth).find('table').css('width', this.$el.outerWidth()).html('').attr('class', this.$el.attr('class')).append(this.$header_);\n\t      this.$tableLoading.css('width', this.$el.outerWidth());\n\t      var focusedTemp = $('.focus-temp:visible:eq(0)');\n\n\t      if (focusedTemp.length > 0) {\n\t        focusedTemp.focus();\n\t        this.$header.find('.focus-temp').removeClass('focus-temp');\n\t      } // fix bug: $.data() is not working as expected after $.append()\n\n\n\t      this.$header.find('th[data-field]').each(function (i, el) {\n\t        _this14.$header_.find(Utils.sprintf('th[data-field=\"%s\"]', $(el).data('field'))).data($(el).data());\n\t      });\n\t      var visibleFields = this.getVisibleFields();\n\t      var $ths = this.$header_.find('th');\n\t      var $tr = this.$body.find('>tr:not(.no-records-found,.virtual-scroll-top)').eq(0);\n\n\t      while ($tr.length && $tr.find('>td[colspan]:not([colspan=\"1\"])').length) {\n\t        $tr = $tr.next();\n\t      }\n\n\t      $tr.find('> *').each(function (i, el) {\n\t        var $this = $(el);\n\t        var index = i;\n\n\t        if (_this14.options.detailView && _this14.options.detailViewIcon && !_this14.options.cardView) {\n\t          if (i === 0) {\n\t            var $thDetail = $ths.filter('.detail');\n\n\t            var _zoomWidth = $thDetail.innerWidth() - $thDetail.find('.fht-cell').width();\n\n\t            $thDetail.find('.fht-cell').width($this.innerWidth() - _zoomWidth);\n\t          }\n\n\t          index = i - 1;\n\t        }\n\n\t        if (index === -1) {\n\t          return;\n\t        }\n\n\t        var $th = _this14.$header_.find(Utils.sprintf('th[data-field=\"%s\"]', visibleFields[index]));\n\n\t        if ($th.length > 1) {\n\t          $th = $($ths[$this[0].cellIndex]);\n\t        }\n\n\t        var zoomWidth = $th.innerWidth() - $th.find('.fht-cell').width();\n\t        $th.find('.fht-cell').width($this.innerWidth() - zoomWidth);\n\t      });\n\t      this.horizontalScroll();\n\t      this.trigger('post-header');\n\t    }\n\t  }, {\n\t    key: \"initFooter\",\n\t    value: function initFooter() {\n\t      if (!this.options.showFooter || this.options.cardView) {\n\t        // do nothing\n\t        return;\n\t      }\n\n\t      var data = this.getData();\n\t      var html = [];\n\n\t      if (!this.options.cardView && this.options.detailView && this.options.detailViewIcon) {\n\t        html.push('<th class=\"detail\"><div class=\"th-inner\"></div><div class=\"fht-cell\"></div></th>');\n\t      }\n\n\t      var _iteratorNormalCompletion3 = true;\n\t      var _didIteratorError3 = false;\n\t      var _iteratorError3 = undefined;\n\n\t      try {\n\t        for (var _iterator3 = this.columns[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t          var column = _step3.value;\n\t          var falign = '';\n\t          var valign = '';\n\t          var csses = [];\n\t          var style = {};\n\t          var class_ = Utils.sprintf(' class=\"%s\"', column['class']);\n\n\t          if (!column.visible) {\n\t            continue;\n\t          }\n\n\t          if (this.options.cardView && !column.cardVisible) {\n\t            return;\n\t          }\n\n\t          falign = Utils.sprintf('text-align: %s; ', column.falign ? column.falign : column.align);\n\t          valign = Utils.sprintf('vertical-align: %s; ', column.valign);\n\t          style = Utils.calculateObjectValue(null, this.options.footerStyle, [column]);\n\n\t          if (style && style.css) {\n\t            for (var _i7 = 0, _Object$entries6 = Object.entries(style.css); _i7 < _Object$entries6.length; _i7++) {\n\t              var _Object$entries6$_i = _slicedToArray(_Object$entries6[_i7], 2),\n\t                  key = _Object$entries6$_i[0],\n\t                  value = _Object$entries6$_i[1];\n\n\t              csses.push(\"\".concat(key, \": \").concat(value));\n\t            }\n\t          }\n\n\t          if (style && style.classes) {\n\t            class_ = Utils.sprintf(' class=\"%s\"', column['class'] ? [column['class'], style.classes].join(' ') : style.classes);\n\t          }\n\n\t          html.push('<th', class_, Utils.sprintf(' style=\"%s\"', falign + valign + csses.concat().join('; ')), '>');\n\t          html.push('<div class=\"th-inner\">');\n\t          html.push(Utils.calculateObjectValue(column, column.footerFormatter, [data], this.footerData[0] && this.footerData[0][column.field] || ''));\n\t          html.push('</div>');\n\t          html.push('<div class=\"fht-cell\"></div>');\n\t          html.push('</div>');\n\t          html.push('</th>');\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError3 = true;\n\t        _iteratorError3 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n\t            _iterator3.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError3) {\n\t            throw _iteratorError3;\n\t          }\n\t        }\n\t      }\n\n\t      this.$tableFooter.find('tr').html(html.join(''));\n\t      this.trigger('post-footer', this.$tableFooter);\n\t    }\n\t  }, {\n\t    key: \"fitFooter\",\n\t    value: function fitFooter() {\n\t      var _this15 = this;\n\n\t      if (this.$el.is(':hidden')) {\n\t        setTimeout(function () {\n\t          return _this15.fitFooter();\n\t        }, 100);\n\t        return;\n\t      }\n\n\t      var fixedBody = this.$tableBody.get(0);\n\t      var scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth && fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ? Utils.getScrollBarWidth() : 0;\n\t      this.$tableFooter.css('margin-right', scrollWidth).find('table').css('width', this.$el.outerWidth()).attr('class', this.$el.attr('class'));\n\t      var visibleFields = this.getVisibleFields();\n\t      var $ths = this.$tableFooter.find('th');\n\t      var $tr = this.$body.find('>tr:first-child:not(.no-records-found)');\n\n\t      while ($tr.length && $tr.find('>td[colspan]:not([colspan=\"1\"])').length) {\n\t        $tr = $tr.next();\n\t      }\n\n\t      $tr.find('> *').each(function (i, el) {\n\t        var $this = $(el);\n\t        var index = i;\n\n\t        if (_this15.options.detailView && !_this15.options.cardView) {\n\t          if (i === 0) {\n\t            var $thDetail = $ths.filter('.detail');\n\n\t            var _zoomWidth2 = $thDetail.innerWidth() - $thDetail.find('.fht-cell').width();\n\n\t            $thDetail.find('.fht-cell').width($this.innerWidth() - _zoomWidth2);\n\t          }\n\n\t          index = i - 1;\n\t        }\n\n\t        if (index === -1) {\n\t          return;\n\t        }\n\n\t        var $th = $ths.eq(i);\n\t        var zoomWidth = $th.innerWidth() - $th.find('.fht-cell').width();\n\t        $th.find('.fht-cell').width($this.innerWidth() - zoomWidth);\n\t      });\n\t      this.horizontalScroll();\n\t    }\n\t  }, {\n\t    key: \"horizontalScroll\",\n\t    value: function horizontalScroll() {\n\t      var _this16 = this;\n\n\t      // horizontal scroll event\n\t      // TODO: it's probably better improving the layout than binding to scroll event\n\t      this.$tableBody.off('scroll').on('scroll', function (_ref6) {\n\t        var currentTarget = _ref6.currentTarget;\n\n\t        if (_this16.options.showHeader && _this16.options.height) {\n\t          _this16.$tableHeader.scrollLeft($(currentTarget).scrollLeft());\n\t        }\n\n\t        if (_this16.options.showFooter && !_this16.options.cardView) {\n\t          _this16.$tableFooter.scrollLeft($(currentTarget).scrollLeft());\n\t        }\n\n\t        _this16.trigger('scroll-body', $(currentTarget));\n\t      });\n\t    }\n\t  }, {\n\t    key: \"getVisibleFields\",\n\t    value: function getVisibleFields() {\n\t      var visibleFields = [];\n\t      var _iteratorNormalCompletion4 = true;\n\t      var _didIteratorError4 = false;\n\t      var _iteratorError4 = undefined;\n\n\t      try {\n\t        for (var _iterator4 = this.header.fields[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n\t          var field = _step4.value;\n\t          var column = this.columns[this.fieldsColumnsIndex[field]];\n\n\t          if (!column || !column.visible) {\n\t            continue;\n\t          }\n\n\t          visibleFields.push(field);\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError4 = true;\n\t        _iteratorError4 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n\t            _iterator4.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError4) {\n\t            throw _iteratorError4;\n\t          }\n\t        }\n\t      }\n\n\t      return visibleFields;\n\t    }\n\t  }, {\n\t    key: \"initHiddenRows\",\n\t    value: function initHiddenRows() {\n\t      this.hiddenRows = [];\n\t    } // PUBLIC FUNCTION DEFINITION\n\t    // =======================\n\n\t  }, {\n\t    key: \"getOptions\",\n\t    value: function getOptions() {\n\t      // deep copy and remove data\n\t      var options = $.extend({}, this.options);\n\t      delete options.data;\n\t      return $.extend(true, {}, options);\n\t    }\n\t  }, {\n\t    key: \"refreshOptions\",\n\t    value: function refreshOptions(options) {\n\t      // If the objects are equivalent then avoid the call of destroy / init methods\n\t      if (Utils.compareObjects(this.options, options, true)) {\n\t        return;\n\t      }\n\n\t      this.options = $.extend(this.options, options);\n\t      this.trigger('refresh-options', this.options);\n\t      this.destroy();\n\t      this.init();\n\t    }\n\t  }, {\n\t    key: \"getData\",\n\t    value: function getData(params) {\n\t      var data = this.options.data;\n\n\t      if (this.searchText || this.options.sortName || !Utils.isEmptyObject(this.filterColumns) || !Utils.isEmptyObject(this.filterColumnsPartial)) {\n\t        data = this.data;\n\t      }\n\n\t      if (params && params.useCurrentPage) {\n\t        data = data.slice(this.pageFrom - 1, this.pageTo);\n\t      }\n\n\t      if (params && !params.includeHiddenRows) {\n\t        var hiddenRows = this.getHiddenRows();\n\t        data = data.filter(function (row) {\n\t          return Utils.findIndex(hiddenRows, row) === -1;\n\t        });\n\t      }\n\n\t      return data;\n\t    }\n\t  }, {\n\t    key: \"getSelections\",\n\t    value: function getSelections() {\n\t      var _this17 = this;\n\n\t      // fix #2424: from html with checkbox\n\t      return this.data.filter(function (row) {\n\t        return row[_this17.header.stateField] === true;\n\t      });\n\t    }\n\t  }, {\n\t    key: \"getAllSelections\",\n\t    value: function getAllSelections() {\n\t      var _this18 = this;\n\n\t      return this.options.data.filter(function (row) {\n\t        return row[_this18.header.stateField] === true;\n\t      });\n\t    }\n\t  }, {\n\t    key: \"load\",\n\t    value: function load(_data) {\n\t      var fixedScroll = false;\n\t      var data = _data; // #431: support pagination\n\n\t      if (this.options.pagination && this.options.sidePagination === 'server') {\n\t        this.options.totalRows = data[this.options.totalField];\n\t      }\n\n\t      if (this.options.pagination && this.options.sidePagination === 'server') {\n\t        this.options.totalNotFiltered = data[this.options.totalNotFilteredField];\n\t      }\n\n\t      fixedScroll = data.fixedScroll;\n\t      data = Array.isArray(data) ? data : data[this.options.dataField];\n\t      this.initData(data);\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initBody(fixedScroll);\n\t    }\n\t  }, {\n\t    key: \"append\",\n\t    value: function append(data) {\n\t      this.initData(data, 'append');\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"prepend\",\n\t    value: function prepend(data) {\n\t      this.initData(data, 'prepend');\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"remove\",\n\t    value: function remove(params) {\n\t      var len = this.options.data.length;\n\t      var i;\n\t      var row;\n\n\t      if (!params.hasOwnProperty('field') || !params.hasOwnProperty('values')) {\n\t        return;\n\t      }\n\n\t      for (i = len - 1; i >= 0; i--) {\n\t        row = this.options.data[i];\n\n\t        if (!row.hasOwnProperty(params.field)) {\n\t          continue;\n\t        }\n\n\t        if (params.values.includes(row[params.field])) {\n\t          this.options.data.splice(i, 1);\n\n\t          if (this.options.sidePagination === 'server') {\n\t            this.options.totalRows -= 1;\n\t          }\n\t        }\n\t      }\n\n\t      if (len === this.options.data.length) {\n\t        return;\n\t      }\n\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"removeAll\",\n\t    value: function removeAll() {\n\t      if (this.options.data.length > 0) {\n\t        this.options.data.splice(0, this.options.data.length);\n\t        this.initSearch();\n\t        this.initPagination();\n\t        this.initBody(true);\n\t      }\n\t    }\n\t  }, {\n\t    key: \"insertRow\",\n\t    value: function insertRow(params) {\n\t      if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n\t        return;\n\t      }\n\n\t      this.options.data.splice(params.index, 0, params.row);\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"updateRow\",\n\t    value: function updateRow(params) {\n\t      var allParams = Array.isArray(params) ? params : [params];\n\t      var _iteratorNormalCompletion5 = true;\n\t      var _didIteratorError5 = false;\n\t      var _iteratorError5 = undefined;\n\n\t      try {\n\t        for (var _iterator5 = allParams[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n\t          var _params = _step5.value;\n\n\t          if (!_params.hasOwnProperty('index') || !_params.hasOwnProperty('row')) {\n\t            continue;\n\t          }\n\n\t          $.extend(this.options.data[_params.index], _params.row);\n\n\t          if (_params.hasOwnProperty('replace') && _params.replace) {\n\t            this.options.data[_params.index] = _params.row;\n\t          } else {\n\t            $.extend(this.options.data[_params.index], _params.row);\n\t          }\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError5 = true;\n\t        _iteratorError5 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n\t            _iterator5.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError5) {\n\t            throw _iteratorError5;\n\t          }\n\t        }\n\t      }\n\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"getRowByUniqueId\",\n\t    value: function getRowByUniqueId(_id) {\n\t      var uniqueId = this.options.uniqueId;\n\t      var len = this.options.data.length;\n\t      var id = _id;\n\t      var dataRow = null;\n\t      var i;\n\t      var row;\n\t      var rowUniqueId;\n\n\t      for (i = len - 1; i >= 0; i--) {\n\t        row = this.options.data[i];\n\n\t        if (row.hasOwnProperty(uniqueId)) {\n\t          // uniqueId is a column\n\t          rowUniqueId = row[uniqueId];\n\t        } else if (row._data && row._data.hasOwnProperty(uniqueId)) {\n\t          // uniqueId is a row data property\n\t          rowUniqueId = row._data[uniqueId];\n\t        } else {\n\t          continue;\n\t        }\n\n\t        if (typeof rowUniqueId === 'string') {\n\t          id = id.toString();\n\t        } else if (typeof rowUniqueId === 'number') {\n\t          if (Number(rowUniqueId) === rowUniqueId && rowUniqueId % 1 === 0) {\n\t            id = parseInt(id);\n\t          } else if (rowUniqueId === Number(rowUniqueId) && rowUniqueId !== 0) {\n\t            id = parseFloat(id);\n\t          }\n\t        }\n\n\t        if (rowUniqueId === id) {\n\t          dataRow = row;\n\t          break;\n\t        }\n\t      }\n\n\t      return dataRow;\n\t    }\n\t  }, {\n\t    key: \"updateByUniqueId\",\n\t    value: function updateByUniqueId(params) {\n\t      var allParams = Array.isArray(params) ? params : [params];\n\t      var _iteratorNormalCompletion6 = true;\n\t      var _didIteratorError6 = false;\n\t      var _iteratorError6 = undefined;\n\n\t      try {\n\t        for (var _iterator6 = allParams[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n\t          var _params2 = _step6.value;\n\n\t          if (!_params2.hasOwnProperty('id') || !_params2.hasOwnProperty('row')) {\n\t            continue;\n\t          }\n\n\t          var rowId = this.options.data.indexOf(this.getRowByUniqueId(_params2.id));\n\n\t          if (rowId === -1) {\n\t            continue;\n\t          }\n\n\t          if (_params2.hasOwnProperty('replace') && _params2.replace) {\n\t            this.options.data[rowId] = _params2.row;\n\t          } else {\n\t            $.extend(this.options.data[rowId], _params2.row);\n\t          }\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError6 = true;\n\t        _iteratorError6 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n\t            _iterator6.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError6) {\n\t            throw _iteratorError6;\n\t          }\n\t        }\n\t      }\n\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"removeByUniqueId\",\n\t    value: function removeByUniqueId(id) {\n\t      var len = this.options.data.length;\n\t      var row = this.getRowByUniqueId(id);\n\n\t      if (row) {\n\t        this.options.data.splice(this.options.data.indexOf(row), 1);\n\t      }\n\n\t      if (len === this.options.data.length) {\n\t        return;\n\t      }\n\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"updateCell\",\n\t    value: function updateCell(params) {\n\t      if (!params.hasOwnProperty('index') || !params.hasOwnProperty('field') || !params.hasOwnProperty('value')) {\n\t        return;\n\t      }\n\n\t      this.data[params.index][params.field] = params.value;\n\n\t      if (params.reinit === false) {\n\t        return;\n\t      }\n\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"updateCellByUniqueId\",\n\t    value: function updateCellByUniqueId(params) {\n\t      var _this19 = this;\n\n\t      if (!params.hasOwnProperty('id') || !params.hasOwnProperty('field') || !params.hasOwnProperty('value')) {\n\t        return;\n\t      }\n\n\t      var allParams = Array.isArray(params) ? params : [params];\n\t      allParams.forEach(function (_ref7) {\n\t        var id = _ref7.id,\n\t            field = _ref7.field,\n\t            value = _ref7.value;\n\n\t        var rowId = _this19.options.data.indexOf(_this19.getRowByUniqueId(id));\n\n\t        if (rowId === -1) {\n\t          return;\n\t        }\n\n\t        _this19.options.data[rowId][field] = value;\n\t      });\n\n\t      if (params.reinit === false) {\n\t        return;\n\t      }\n\n\t      this.initSort();\n\t      this.initBody(true);\n\t    }\n\t  }, {\n\t    key: \"showRow\",\n\t    value: function showRow(params) {\n\t      this._toggleRow(params, true);\n\t    }\n\t  }, {\n\t    key: \"hideRow\",\n\t    value: function hideRow(params) {\n\t      this._toggleRow(params, false);\n\t    }\n\t  }, {\n\t    key: \"_toggleRow\",\n\t    value: function _toggleRow(params, visible) {\n\t      var row;\n\n\t      if (params.hasOwnProperty('index')) {\n\t        row = this.getData()[params.index];\n\t      } else if (params.hasOwnProperty('uniqueId')) {\n\t        row = this.getRowByUniqueId(params.uniqueId);\n\t      }\n\n\t      if (!row) {\n\t        return;\n\t      }\n\n\t      var index = Utils.findIndex(this.hiddenRows, row);\n\n\t      if (!visible && index === -1) {\n\t        this.hiddenRows.push(row);\n\t      } else if (visible && index > -1) {\n\t        this.hiddenRows.splice(index, 1);\n\t      }\n\n\t      if (visible) {\n\t        this.updatePagination();\n\t      } else {\n\t        this.initBody(true);\n\t        this.initPagination();\n\t      }\n\t    }\n\t  }, {\n\t    key: \"getHiddenRows\",\n\t    value: function getHiddenRows(show) {\n\t      if (show) {\n\t        this.initHiddenRows();\n\t        this.initBody(true);\n\t        return;\n\t      }\n\n\t      var data = this.getData();\n\t      var rows = [];\n\t      var _iteratorNormalCompletion7 = true;\n\t      var _didIteratorError7 = false;\n\t      var _iteratorError7 = undefined;\n\n\t      try {\n\t        for (var _iterator7 = data[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n\t          var row = _step7.value;\n\n\t          if (this.hiddenRows.includes(row)) {\n\t            rows.push(row);\n\t          }\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError7 = true;\n\t        _iteratorError7 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion7 && _iterator7.return != null) {\n\t            _iterator7.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError7) {\n\t            throw _iteratorError7;\n\t          }\n\t        }\n\t      }\n\n\t      this.hiddenRows = rows;\n\t      return rows;\n\t    }\n\t  }, {\n\t    key: \"showColumn\",\n\t    value: function showColumn(field) {\n\t      var _this20 = this;\n\n\t      var fields = Array.isArray(field) ? field : [field];\n\t      fields.forEach(function (field) {\n\t        _this20._toggleColumn(_this20.fieldsColumnsIndex[field], true, true);\n\t      });\n\t    }\n\t  }, {\n\t    key: \"hideColumn\",\n\t    value: function hideColumn(field) {\n\t      var _this21 = this;\n\n\t      var fields = Array.isArray(field) ? field : [field];\n\t      fields.forEach(function (field) {\n\t        _this21._toggleColumn(_this21.fieldsColumnsIndex[field], false, true);\n\t      });\n\t    }\n\t  }, {\n\t    key: \"_toggleColumn\",\n\t    value: function _toggleColumn(index, checked, needUpdate) {\n\t      if (index === -1 || this.columns[index].visible === checked) {\n\t        return;\n\t      }\n\n\t      this.columns[index].visible = checked;\n\t      this.initHeader();\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initBody();\n\n\t      if (this.options.showColumns) {\n\t        var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);\n\n\t        if (needUpdate) {\n\t          $items.filter(Utils.sprintf('[value=\"%s\"]', index)).prop('checked', checked);\n\t        }\n\n\t        if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n\t          $items.filter(':checked').prop('disabled', true);\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: \"getVisibleColumns\",\n\t    value: function getVisibleColumns() {\n\t      return this.columns.filter(function (_ref8) {\n\t        var visible = _ref8.visible;\n\t        return visible;\n\t      });\n\t    }\n\t  }, {\n\t    key: \"getHiddenColumns\",\n\t    value: function getHiddenColumns() {\n\t      return this.columns.filter(function (_ref9) {\n\t        var visible = _ref9.visible;\n\t        return !visible;\n\t      });\n\t    }\n\t  }, {\n\t    key: \"showAllColumns\",\n\t    value: function showAllColumns() {\n\t      this._toggleAllColumns(true);\n\t    }\n\t  }, {\n\t    key: \"hideAllColumns\",\n\t    value: function hideAllColumns() {\n\t      this._toggleAllColumns(false);\n\t    }\n\t  }, {\n\t    key: \"_toggleAllColumns\",\n\t    value: function _toggleAllColumns(visible) {\n\t      var _this22 = this;\n\n\t      var _iteratorNormalCompletion8 = true;\n\t      var _didIteratorError8 = false;\n\t      var _iteratorError8 = undefined;\n\n\t      try {\n\t        for (var _iterator8 = this.columns.slice().reverse()[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n\t          var column = _step8.value;\n\n\t          if (column.switchable) {\n\t            if (!visible && this.options.showColumns && this.getVisibleColumns().length === this.options.minimumCountColumns) {\n\t              continue;\n\t            }\n\n\t            column.visible = visible;\n\t          }\n\t        }\n\t      } catch (err) {\n\t        _didIteratorError8 = true;\n\t        _iteratorError8 = err;\n\t      } finally {\n\t        try {\n\t          if (!_iteratorNormalCompletion8 && _iterator8.return != null) {\n\t            _iterator8.return();\n\t          }\n\t        } finally {\n\t          if (_didIteratorError8) {\n\t            throw _iteratorError8;\n\t          }\n\t        }\n\t      }\n\n\t      this.initHeader();\n\t      this.initSearch();\n\t      this.initPagination();\n\t      this.initBody();\n\n\t      if (this.options.showColumns) {\n\t        var $items = this.$toolbar.find('.keep-open input:not(\".toggle-all\")').prop('disabled', false);\n\n\t        if (visible) {\n\t          $items.prop('checked', visible);\n\t        } else {\n\t          $items.get().reverse().forEach(function (item) {\n\t            if ($items.filter(':checked').length > _this22.options.minimumCountColumns) {\n\t              $(item).prop('checked', visible);\n\t            }\n\t          });\n\t        }\n\n\t        if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n\t          $items.filter(':checked').prop('disabled', true);\n\t        }\n\t      }\n\t    }\n\t  }, {\n\t    key: \"mergeCells\",\n\t    value: function mergeCells(options) {\n\t      var row = options.index;\n\t      var col = this.getVisibleFields().indexOf(options.field);\n\t      var rowspan = options.rowspan || 1;\n\t      var colspan = options.colspan || 1;\n\t      var i;\n\t      var j;\n\t      var $tr = this.$body.find('>tr');\n\n\t      if (this.options.detailView && !this.options.cardView) {\n\t        col += 1;\n\t      }\n\n\t      var $td = $tr.eq(row).find('>td').eq(col);\n\n\t      if (row < 0 || col < 0 || row >= this.data.length) {\n\t        return;\n\t      }\n\n\t      for (i = row; i < row + rowspan; i++) {\n\t        for (j = col; j < col + colspan; j++) {\n\t          $tr.eq(i).find('>td').eq(j).hide();\n\t        }\n\t      }\n\n\t      $td.attr('rowspan', rowspan).attr('colspan', colspan).show();\n\t    }\n\t  }, {\n\t    key: \"checkAll\",\n\t    value: function checkAll() {\n\t      this._toggleCheckAll(true);\n\t    }\n\t  }, {\n\t    key: \"uncheckAll\",\n\t    value: function uncheckAll() {\n\t      this._toggleCheckAll(false);\n\t    }\n\t  }, {\n\t    key: \"_toggleCheckAll\",\n\t    value: function _toggleCheckAll(checked) {\n\t      var rowsBefore = this.getSelections();\n\t      this.$selectAll.add(this.$selectAll_).prop('checked', checked);\n\t      this.$selectItem.filter(':enabled').prop('checked', checked);\n\t      this.updateRows();\n\t      var rowsAfter = this.getSelections();\n\n\t      if (checked) {\n\t        this.trigger('check-all', rowsAfter, rowsBefore);\n\t        return;\n\t      }\n\n\t      this.trigger('uncheck-all', rowsAfter, rowsBefore);\n\t    }\n\t  }, {\n\t    key: \"checkInvert\",\n\t    value: function checkInvert() {\n\t      var $items = this.$selectItem.filter(':enabled');\n\t      var checked = $items.filter(':checked');\n\t      $items.each(function (i, el) {\n\t        $(el).prop('checked', !$(el).prop('checked'));\n\t      });\n\t      this.updateRows();\n\t      this.updateSelected();\n\t      this.trigger('uncheck-some', checked);\n\t      checked = this.getSelections();\n\t      this.trigger('check-some', checked);\n\t    }\n\t  }, {\n\t    key: \"check\",\n\t    value: function check(index) {\n\t      this._toggleCheck(true, index);\n\t    }\n\t  }, {\n\t    key: \"uncheck\",\n\t    value: function uncheck(index) {\n\t      this._toggleCheck(false, index);\n\t    }\n\t  }, {\n\t    key: \"_toggleCheck\",\n\t    value: function _toggleCheck(checked, index) {\n\t      var $el = this.$selectItem.filter(\"[data-index=\\\"\".concat(index, \"\\\"]\"));\n\t      var row = this.data[index];\n\n\t      if ($el.is(':radio') || this.options.singleSelect || this.options.multipleSelectRow && !this.multipleSelectRowCtrlKey && !this.multipleSelectRowShiftKey) {\n\t        var _iteratorNormalCompletion9 = true;\n\t        var _didIteratorError9 = false;\n\t        var _iteratorError9 = undefined;\n\n\t        try {\n\t          for (var _iterator9 = this.options.data[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {\n\t            var r = _step9.value;\n\t            r[this.header.stateField] = false;\n\t          }\n\t        } catch (err) {\n\t          _didIteratorError9 = true;\n\t          _iteratorError9 = err;\n\t        } finally {\n\t          try {\n\t            if (!_iteratorNormalCompletion9 && _iterator9.return != null) {\n\t              _iterator9.return();\n\t            }\n\t          } finally {\n\t            if (_didIteratorError9) {\n\t              throw _iteratorError9;\n\t            }\n\t          }\n\t        }\n\n\t        this.$selectItem.filter(':checked').not($el).prop('checked', false);\n\t      }\n\n\t      row[this.header.stateField] = checked;\n\n\t      if (this.options.multipleSelectRow) {\n\t        if (this.multipleSelectRowShiftKey && this.multipleSelectRowLastSelectedIndex >= 0) {\n\t          var indexes = [this.multipleSelectRowLastSelectedIndex, index].sort();\n\n\t          for (var i = indexes[0] + 1; i < indexes[1]; i++) {\n\t            this.data[i][this.header.stateField] = true;\n\t            this.$selectItem.filter(\"[data-index=\\\"\".concat(i, \"\\\"]\")).prop('checked', true);\n\t          }\n\t        }\n\n\t        this.multipleSelectRowCtrlKey = false;\n\t        this.multipleSelectRowShiftKey = false;\n\t        this.multipleSelectRowLastSelectedIndex = checked ? index : -1;\n\t      }\n\n\t      $el.prop('checked', checked);\n\t      this.updateSelected();\n\t      this.trigger(checked ? 'check' : 'uncheck', this.data[index], $el);\n\t    }\n\t  }, {\n\t    key: \"checkBy\",\n\t    value: function checkBy(obj) {\n\t      this._toggleCheckBy(true, obj);\n\t    }\n\t  }, {\n\t    key: \"uncheckBy\",\n\t    value: function uncheckBy(obj) {\n\t      this._toggleCheckBy(false, obj);\n\t    }\n\t  }, {\n\t    key: \"_toggleCheckBy\",\n\t    value: function _toggleCheckBy(checked, obj) {\n\t      var _this23 = this;\n\n\t      if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {\n\t        return;\n\t      }\n\n\t      var rows = [];\n\t      this.data.forEach(function (row, i) {\n\t        if (!row.hasOwnProperty(obj.field)) {\n\t          return false;\n\t        }\n\n\t        if (obj.values.includes(row[obj.field])) {\n\t          var $el = _this23.$selectItem.filter(':enabled').filter(Utils.sprintf('[data-index=\"%s\"]', i));\n\n\t          $el = checked ? $el.not(':checked') : $el.filter(':checked');\n\n\t          if (!$el.length) {\n\t            return;\n\t          }\n\n\t          $el.prop('checked', checked);\n\t          row[_this23.header.stateField] = checked;\n\t          rows.push(row);\n\n\t          _this23.trigger(checked ? 'check' : 'uncheck', row, $el);\n\t        }\n\t      });\n\t      this.updateSelected();\n\t      this.trigger(checked ? 'check-some' : 'uncheck-some', rows);\n\t    }\n\t  }, {\n\t    key: \"refresh\",\n\t    value: function refresh(params) {\n\t      if (params && params.url) {\n\t        this.options.url = params.url;\n\t      }\n\n\t      if (params && params.pageNumber) {\n\t        this.options.pageNumber = params.pageNumber;\n\t      }\n\n\t      if (params && params.pageSize) {\n\t        this.options.pageSize = params.pageSize;\n\t      }\n\n\t      this.trigger('refresh', this.initServer(params && params.silent, params && params.query, params && params.url));\n\t    }\n\t  }, {\n\t    key: \"destroy\",\n\t    value: function destroy() {\n\t      this.$el.insertBefore(this.$container);\n\t      $(this.options.toolbar).insertBefore(this.$el);\n\t      this.$container.next().remove();\n\t      this.$container.remove();\n\t      this.$el.html(this.$el_.html()).css('margin-top', '0').attr('class', this.$el_.attr('class') || ''); // reset the class\n\t    }\n\t  }, {\n\t    key: \"resetView\",\n\t    value: function resetView(params) {\n\t      var padding = 0;\n\n\t      if (params && params.height) {\n\t        this.options.height = params.height;\n\t      }\n\n\t      this.$selectAll.prop('checked', this.$selectItem.length > 0 && this.$selectItem.length === this.$selectItem.filter(':checked').length);\n\t      this.$tableContainer.toggleClass('has-card-view', this.options.cardView);\n\n\t      if (!this.options.cardView && this.options.showHeader && this.options.height) {\n\t        this.$tableHeader.show();\n\t        this.resetHeader();\n\t        padding += this.$header.outerHeight(true) + 1;\n\t      } else {\n\t        this.$tableHeader.hide();\n\t        this.trigger('post-header');\n\t      }\n\n\t      if (!this.options.cardView && this.options.showFooter) {\n\t        this.$tableFooter.show();\n\t        this.fitFooter();\n\n\t        if (this.options.height) {\n\t          padding += this.$tableFooter.outerHeight(true);\n\t        }\n\t      }\n\n\t      if (this.options.height) {\n\t        var toolbarHeight = this.$toolbar.outerHeight(true);\n\t        var paginationHeight = this.$pagination.outerHeight(true);\n\t        var height = this.options.height - toolbarHeight - paginationHeight;\n\t        var tableHeight = this.$tableBody.find('table').outerHeight(true);\n\t        this.$tableContainer.css('height', \"\".concat(height, \"px\"));\n\t        this.$tableBorder && this.$tableBorder.css('height', \"\".concat(height - tableHeight - padding - 1, \"px\"));\n\t      }\n\n\t      if (this.options.cardView) {\n\t        // remove the element css\n\t        this.$el.css('margin-top', '0');\n\t        this.$tableContainer.css('padding-bottom', '0');\n\t        this.$tableFooter.hide();\n\t      } else {\n\t        // Assign the correct sortable arrow\n\t        this.getCaret();\n\t        this.$tableContainer.css('padding-bottom', \"\".concat(padding, \"px\"));\n\t      }\n\n\t      this.trigger('reset-view');\n\t    }\n\t  }, {\n\t    key: \"resetWidth\",\n\t    value: function resetWidth() {\n\t      if (this.options.showHeader && this.options.height) {\n\t        this.fitHeader();\n\t      }\n\n\t      if (this.options.showFooter && !this.options.cardView) {\n\t        this.fitFooter();\n\t      }\n\t    }\n\t  }, {\n\t    key: \"showLoading\",\n\t    value: function showLoading() {\n\t      this.$tableLoading.css('display', 'flex');\n\t    }\n\t  }, {\n\t    key: \"hideLoading\",\n\t    value: function hideLoading() {\n\t      this.$tableLoading.css('display', 'none');\n\t    }\n\t  }, {\n\t    key: \"togglePagination\",\n\t    value: function togglePagination() {\n\t      this.options.pagination = !this.options.pagination;\n\t      var icon = this.options.showButtonIcons ? this.options.pagination ? this.options.icons.paginationSwitchDown : this.options.icons.paginationSwitchUp : '';\n\t      var text = this.options.showButtonText ? this.options.pagination ? this.options.formatPaginationSwitchUp() : this.options.formatPaginationSwitchDown() : '';\n\t      this.$toolbar.find('button[name=\"paginationSwitch\"]').html(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, icon) + ' ' + text);\n\t      this.updatePagination();\n\t    }\n\t  }, {\n\t    key: \"toggleFullscreen\",\n\t    value: function toggleFullscreen() {\n\t      this.$el.closest('.bootstrap-table').toggleClass('fullscreen');\n\t      this.resetView();\n\t    }\n\t  }, {\n\t    key: \"toggleView\",\n\t    value: function toggleView() {\n\t      this.options.cardView = !this.options.cardView;\n\t      this.initHeader();\n\t      var icon = this.options.showButtonIcons ? this.options.cardView ? this.options.icons.toggleOn : this.options.icons.toggleOff : '';\n\t      var text = this.options.showButtonText ? this.options.cardView ? this.options.formatToggleOff() : this.options.formatToggleOn() : '';\n\t      this.$toolbar.find('button[name=\"toggle\"]').html(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, icon) + ' ' + text);\n\t      this.initBody();\n\t      this.trigger('toggle', this.options.cardView);\n\t    }\n\t  }, {\n\t    key: \"resetSearch\",\n\t    value: function resetSearch(text) {\n\t      var $search = this.$toolbar.find('.search input');\n\t      $search.val(text || '');\n\t      this.onSearch({\n\t        currentTarget: $search\n\t      });\n\t    }\n\t  }, {\n\t    key: \"filterBy\",\n\t    value: function filterBy(columns, options) {\n\t      this.filterOptions = Utils.isEmptyObject(options) ? this.options.filterOptions : $.extend(this.options.filterOptions, options);\n\t      this.filterColumns = Utils.isEmptyObject(columns) ? {} : columns;\n\t      this.options.pageNumber = 1;\n\t      this.initSearch();\n\t      this.updatePagination();\n\t    }\n\t  }, {\n\t    key: \"scrollTo\",\n\t    value: function scrollTo(params) {\n\t      if (typeof params === 'undefined') {\n\t        return this.$tableBody.scrollTop();\n\t      }\n\n\t      var options = {\n\t        unit: 'px',\n\t        value: 0\n\t      };\n\n\t      if (_typeof(params) === 'object') {\n\t        options = Object.assign(options, params);\n\t      } else if (typeof params === 'string' && params === 'bottom') {\n\t        options.value = this.$tableBody[0].scrollHeight;\n\t      } else if (typeof params === 'string') {\n\t        options.value = params;\n\t      }\n\n\t      var scrollTo = options.value;\n\n\t      if (options.unit === 'rows') {\n\t        scrollTo = 0;\n\t        this.$body.find(\"> tr:lt(\".concat(options.value, \")\")).each(function (i, el) {\n\t          scrollTo += $(el).outerHeight(true);\n\t        });\n\t      }\n\n\t      this.$tableBody.scrollTop(scrollTo);\n\t    }\n\t  }, {\n\t    key: \"getScrollPosition\",\n\t    value: function getScrollPosition() {\n\t      return this.scrollTo();\n\t    }\n\t  }, {\n\t    key: \"selectPage\",\n\t    value: function selectPage(page) {\n\t      if (page > 0 && page <= this.options.totalPages) {\n\t        this.options.pageNumber = page;\n\t        this.updatePagination();\n\t      }\n\t    }\n\t  }, {\n\t    key: \"prevPage\",\n\t    value: function prevPage() {\n\t      if (this.options.pageNumber > 1) {\n\t        this.options.pageNumber--;\n\t        this.updatePagination();\n\t      }\n\t    }\n\t  }, {\n\t    key: \"nextPage\",\n\t    value: function nextPage() {\n\t      if (this.options.pageNumber < this.options.totalPages) {\n\t        this.options.pageNumber++;\n\t        this.updatePagination();\n\t      }\n\t    }\n\t  }, {\n\t    key: \"toggleDetailView\",\n\t    value: function toggleDetailView(index, _columnDetailFormatter) {\n\t      var $tr = this.$body.find(Utils.sprintf('> tr[data-index=\"%s\"]', index));\n\n\t      if ($tr.next().is('tr.detail-view')) {\n\t        this.collapseRow(index);\n\t      } else {\n\t        this.expandRow(index, _columnDetailFormatter);\n\t      }\n\n\t      this.resetView();\n\t    }\n\t  }, {\n\t    key: \"expandRow\",\n\t    value: function expandRow(index, _columnDetailFormatter) {\n\t      var row = this.data[index];\n\t      var $tr = this.$body.find(Utils.sprintf('> tr[data-index=\"%s\"][data-has-detail-view]', index));\n\n\t      if ($tr.next().is('tr.detail-view')) {\n\t        return;\n\t      }\n\n\t      if (this.options.detailViewIcon) {\n\t        $tr.find('a.detail-icon').html(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, this.options.icons.detailClose));\n\t      }\n\n\t      $tr.after(Utils.sprintf('<tr class=\"detail-view\"><td colspan=\"%s\"></td></tr>', $tr.children('td').length));\n\t      var $element = $tr.next().find('td');\n\t      var detailFormatter = _columnDetailFormatter || this.options.detailFormatter;\n\t      var content = Utils.calculateObjectValue(this.options, detailFormatter, [index, row, $element], '');\n\n\t      if ($element.length === 1) {\n\t        $element.append(content);\n\t      }\n\n\t      this.trigger('expand-row', index, row, $element);\n\t    }\n\t  }, {\n\t    key: \"collapseRow\",\n\t    value: function collapseRow(index) {\n\t      var row = this.data[index];\n\t      var $tr = this.$body.find(Utils.sprintf('> tr[data-index=\"%s\"][data-has-detail-view]', index));\n\n\t      if (!$tr.next().is('tr.detail-view')) {\n\t        return;\n\t      }\n\n\t      if (this.options.detailViewIcon) {\n\t        $tr.find('a.detail-icon').html(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, this.options.icons.detailOpen));\n\t      }\n\n\t      this.trigger('collapse-row', index, row, $tr.next());\n\t      $tr.next().remove();\n\t    }\n\t  }, {\n\t    key: \"expandAllRows\",\n\t    value: function expandAllRows() {\n\t      var trs = this.$body.find('> tr[data-index][data-has-detail-view]');\n\n\t      for (var i = 0; i < trs.length; i++) {\n\t        this.expandRow($(trs[i]).data('index'));\n\t      }\n\t    }\n\t  }, {\n\t    key: \"collapseAllRows\",\n\t    value: function collapseAllRows() {\n\t      var trs = this.$body.find('> tr[data-index][data-has-detail-view]');\n\n\t      for (var i = 0; i < trs.length; i++) {\n\t        this.collapseRow($(trs[i]).data('index'));\n\t      }\n\t    }\n\t  }, {\n\t    key: \"updateColumnTitle\",\n\t    value: function updateColumnTitle(params) {\n\t      if (!params.hasOwnProperty('field') || !params.hasOwnProperty('title')) {\n\t        return;\n\t      }\n\n\t      this.columns[this.fieldsColumnsIndex[params.field]].title = this.options.escape ? Utils.escapeHTML(params.title) : params.title;\n\n\t      if (this.columns[this.fieldsColumnsIndex[params.field]].visible) {\n\t        var header = this.options.height !== undefined ? this.$tableHeader : this.$header;\n\t        header.find('th[data-field]').each(function (i, el) {\n\t          if ($(el).data('field') === params.field) {\n\t            $($(el).find('.th-inner')[0]).text(params.title);\n\t            return false;\n\t          }\n\t        });\n\t      }\n\t    }\n\t  }, {\n\t    key: \"updateFormatText\",\n\t    value: function updateFormatText(formatName, text) {\n\t      if (!/^format/.test(formatName) || !this.options[formatName]) {\n\t        return;\n\t      }\n\n\t      if (typeof text === 'string') {\n\t        this.options[formatName] = function () {\n\t          return text;\n\t        };\n\t      } else if (typeof text === 'function') {\n\t        this.options[formatName] = text;\n\t      }\n\n\t      this.initToolbar();\n\t      this.initPagination();\n\t      this.initBody();\n\t    }\n\t  }]);\n\n\t  return BootstrapTable;\n\t}();\n\n\tBootstrapTable.VERSION = Constants.VERSION;\n\tBootstrapTable.DEFAULTS = Constants.DEFAULTS;\n\tBootstrapTable.LOCALES = Constants.LOCALES;\n\tBootstrapTable.COLUMN_DEFAULTS = Constants.COLUMN_DEFAULTS;\n\tBootstrapTable.METHODS = Constants.METHODS;\n\tBootstrapTable.EVENTS = Constants.EVENTS; // BOOTSTRAP TABLE PLUGIN DEFINITION\n\t// =======================\n\n\t$.BootstrapTable = BootstrapTable;\n\n\t$.fn.bootstrapTable = function (option) {\n\t  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key3 = 1; _key3 < _len2; _key3++) {\n\t    args[_key3 - 1] = arguments[_key3];\n\t  }\n\n\t  var value;\n\t  this.each(function (i, el) {\n\t    var data = $(el).data('bootstrap.table');\n\t    var options = $.extend({}, BootstrapTable.DEFAULTS, $(el).data(), _typeof(option) === 'object' && option);\n\n\t    if (typeof option === 'string') {\n\t      var _data2;\n\n\t      if (!Constants.METHODS.includes(option)) {\n\t        throw new Error(\"Unknown method: \".concat(option));\n\t      }\n\n\t      if (!data) {\n\t        return;\n\t      }\n\n\t      value = (_data2 = data)[option].apply(_data2, args);\n\n\t      if (option === 'destroy') {\n\t        $(el).removeData('bootstrap.table');\n\t      }\n\t    }\n\n\t    if (!data) {\n\t      $(el).data('bootstrap.table', data = new $.BootstrapTable(el, options));\n\t    }\n\t  });\n\t  return typeof value === 'undefined' ? this : value;\n\t};\n\n\t$.fn.bootstrapTable.Constructor = BootstrapTable;\n\t$.fn.bootstrapTable.theme = Constants.THEME;\n\t$.fn.bootstrapTable.VERSION = Constants.VERSION;\n\t$.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS;\n\t$.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS;\n\t$.fn.bootstrapTable.events = BootstrapTable.EVENTS;\n\t$.fn.bootstrapTable.locales = BootstrapTable.LOCALES;\n\t$.fn.bootstrapTable.methods = BootstrapTable.METHODS;\n\t$.fn.bootstrapTable.utils = Utils; // BOOTSTRAP TABLE INIT\n\t// =======================\n\n\t$(function () {\n\t  $('[data-toggle=\"table\"]').bootstrapTable();\n\t});\n\n\treturn BootstrapTable;\n\n}));\n"
  },
  {
    "path": "lib/bootstrap/js/bootstrap.js",
    "content": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n  'use strict';\n  var version = $.fn.jquery.split(' ')[0].split('.')\n  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n  }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.7\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n  // ============================================================\n\n  function transitionEnd() {\n    var el = document.createElement('bootstrap')\n\n    var transEndEventNames = {\n      WebkitTransition : 'webkitTransitionEnd',\n      MozTransition    : 'transitionend',\n      OTransition      : 'oTransitionEnd otransitionend',\n      transition       : 'transitionend'\n    }\n\n    for (var name in transEndEventNames) {\n      if (el.style[name] !== undefined) {\n        return { end: transEndEventNames[name] }\n      }\n    }\n\n    return false // explicit for ie8 (  ._.)\n  }\n\n  // http://blog.alexmaccaw.com/css-transitions\n  $.fn.emulateTransitionEnd = function (duration) {\n    var called = false\n    var $el = this\n    $(this).one('bsTransitionEnd', function () { called = true })\n    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n    setTimeout(callback, duration)\n    return this\n  }\n\n  $(function () {\n    $.support.transition = transitionEnd()\n\n    if (!$.support.transition) return\n\n    $.event.special.bsTransitionEnd = {\n      bindType: $.support.transition.end,\n      delegateType: $.support.transition.end,\n      handle: function (e) {\n        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n      }\n    }\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.7\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // ALERT CLASS DEFINITION\n  // ======================\n\n  var dismiss = '[data-dismiss=\"alert\"]'\n  var Alert   = function (el) {\n    $(el).on('click', dismiss, this.close)\n  }\n\n  Alert.VERSION = '3.3.7'\n\n  Alert.TRANSITION_DURATION = 150\n\n  Alert.prototype.close = function (e) {\n    var $this    = $(this)\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = $(selector === '#' ? [] : selector)\n\n    if (e) e.preventDefault()\n\n    if (!$parent.length) {\n      $parent = $this.closest('.alert')\n    }\n\n    $parent.trigger(e = $.Event('close.bs.alert'))\n\n    if (e.isDefaultPrevented()) return\n\n    $parent.removeClass('in')\n\n    function removeElement() {\n      // detach from parent, fire event then clean up data\n      $parent.detach().trigger('closed.bs.alert').remove()\n    }\n\n    $.support.transition && $parent.hasClass('fade') ?\n      $parent\n        .one('bsTransitionEnd', removeElement)\n        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n      removeElement()\n  }\n\n\n  // ALERT PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.alert')\n\n      if (!data) $this.data('bs.alert', (data = new Alert(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.alert\n\n  $.fn.alert             = Plugin\n  $.fn.alert.Constructor = Alert\n\n\n  // ALERT NO CONFLICT\n  // =================\n\n  $.fn.alert.noConflict = function () {\n    $.fn.alert = old\n    return this\n  }\n\n\n  // ALERT DATA-API\n  // ==============\n\n  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.7\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // BUTTON PUBLIC CLASS DEFINITION\n  // ==============================\n\n  var Button = function (element, options) {\n    this.$element  = $(element)\n    this.options   = $.extend({}, Button.DEFAULTS, options)\n    this.isLoading = false\n  }\n\n  Button.VERSION  = '3.3.7'\n\n  Button.DEFAULTS = {\n    loadingText: 'loading...'\n  }\n\n  Button.prototype.setState = function (state) {\n    var d    = 'disabled'\n    var $el  = this.$element\n    var val  = $el.is('input') ? 'val' : 'html'\n    var data = $el.data()\n\n    state += 'Text'\n\n    if (data.resetText == null) $el.data('resetText', $el[val]())\n\n    // push to event loop to allow forms to submit\n    setTimeout($.proxy(function () {\n      $el[val](data[state] == null ? this.options[state] : data[state])\n\n      if (state == 'loadingText') {\n        this.isLoading = true\n        $el.addClass(d).attr(d, d).prop(d, true)\n      } else if (this.isLoading) {\n        this.isLoading = false\n        $el.removeClass(d).removeAttr(d).prop(d, false)\n      }\n    }, this), 0)\n  }\n\n  Button.prototype.toggle = function () {\n    var changed = true\n    var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n    if ($parent.length) {\n      var $input = this.$element.find('input')\n      if ($input.prop('type') == 'radio') {\n        if ($input.prop('checked')) changed = false\n        $parent.find('.active').removeClass('active')\n        this.$element.addClass('active')\n      } else if ($input.prop('type') == 'checkbox') {\n        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n        this.$element.toggleClass('active')\n      }\n      $input.prop('checked', this.$element.hasClass('active'))\n      if (changed) $input.trigger('change')\n    } else {\n      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n      this.$element.toggleClass('active')\n    }\n  }\n\n\n  // BUTTON PLUGIN DEFINITION\n  // ========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.button')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n      if (option == 'toggle') data.toggle()\n      else if (option) data.setState(option)\n    })\n  }\n\n  var old = $.fn.button\n\n  $.fn.button             = Plugin\n  $.fn.button.Constructor = Button\n\n\n  // BUTTON NO CONFLICT\n  // ==================\n\n  $.fn.button.noConflict = function () {\n    $.fn.button = old\n    return this\n  }\n\n\n  // BUTTON DATA-API\n  // ===============\n\n  $(document)\n    .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      var $btn = $(e.target).closest('.btn')\n      Plugin.call($btn, 'toggle')\n      if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n        // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n        e.preventDefault()\n        // The target component still receive the focus\n        if ($btn.is('input,button')) $btn.trigger('focus')\n        else $btn.find('input:visible,button:visible').first().trigger('focus')\n      }\n    })\n    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n    })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.7\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CAROUSEL CLASS DEFINITION\n  // =========================\n\n  var Carousel = function (element, options) {\n    this.$element    = $(element)\n    this.$indicators = this.$element.find('.carousel-indicators')\n    this.options     = options\n    this.paused      = null\n    this.sliding     = null\n    this.interval    = null\n    this.$active     = null\n    this.$items      = null\n\n    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n  }\n\n  Carousel.VERSION  = '3.3.7'\n\n  Carousel.TRANSITION_DURATION = 600\n\n  Carousel.DEFAULTS = {\n    interval: 5000,\n    pause: 'hover',\n    wrap: true,\n    keyboard: true\n  }\n\n  Carousel.prototype.keydown = function (e) {\n    if (/input|textarea/i.test(e.target.tagName)) return\n    switch (e.which) {\n      case 37: this.prev(); break\n      case 39: this.next(); break\n      default: return\n    }\n\n    e.preventDefault()\n  }\n\n  Carousel.prototype.cycle = function (e) {\n    e || (this.paused = false)\n\n    this.interval && clearInterval(this.interval)\n\n    this.options.interval\n      && !this.paused\n      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n    return this\n  }\n\n  Carousel.prototype.getItemIndex = function (item) {\n    this.$items = item.parent().children('.item')\n    return this.$items.index(item || this.$active)\n  }\n\n  Carousel.prototype.getItemForDirection = function (direction, active) {\n    var activeIndex = this.getItemIndex(active)\n    var willWrap = (direction == 'prev' && activeIndex === 0)\n                || (direction == 'next' && activeIndex == (this.$items.length - 1))\n    if (willWrap && !this.options.wrap) return active\n    var delta = direction == 'prev' ? -1 : 1\n    var itemIndex = (activeIndex + delta) % this.$items.length\n    return this.$items.eq(itemIndex)\n  }\n\n  Carousel.prototype.to = function (pos) {\n    var that        = this\n    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n    if (pos > (this.$items.length - 1) || pos < 0) return\n\n    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n    if (activeIndex == pos) return this.pause().cycle()\n\n    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n  }\n\n  Carousel.prototype.pause = function (e) {\n    e || (this.paused = true)\n\n    if (this.$element.find('.next, .prev').length && $.support.transition) {\n      this.$element.trigger($.support.transition.end)\n      this.cycle(true)\n    }\n\n    this.interval = clearInterval(this.interval)\n\n    return this\n  }\n\n  Carousel.prototype.next = function () {\n    if (this.sliding) return\n    return this.slide('next')\n  }\n\n  Carousel.prototype.prev = function () {\n    if (this.sliding) return\n    return this.slide('prev')\n  }\n\n  Carousel.prototype.slide = function (type, next) {\n    var $active   = this.$element.find('.item.active')\n    var $next     = next || this.getItemForDirection(type, $active)\n    var isCycling = this.interval\n    var direction = type == 'next' ? 'left' : 'right'\n    var that      = this\n\n    if ($next.hasClass('active')) return (this.sliding = false)\n\n    var relatedTarget = $next[0]\n    var slideEvent = $.Event('slide.bs.carousel', {\n      relatedTarget: relatedTarget,\n      direction: direction\n    })\n    this.$element.trigger(slideEvent)\n    if (slideEvent.isDefaultPrevented()) return\n\n    this.sliding = true\n\n    isCycling && this.pause()\n\n    if (this.$indicators.length) {\n      this.$indicators.find('.active').removeClass('active')\n      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n      $nextIndicator && $nextIndicator.addClass('active')\n    }\n\n    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n    if ($.support.transition && this.$element.hasClass('slide')) {\n      $next.addClass(type)\n      $next[0].offsetWidth // force reflow\n      $active.addClass(direction)\n      $next.addClass(direction)\n      $active\n        .one('bsTransitionEnd', function () {\n          $next.removeClass([type, direction].join(' ')).addClass('active')\n          $active.removeClass(['active', direction].join(' '))\n          that.sliding = false\n          setTimeout(function () {\n            that.$element.trigger(slidEvent)\n          }, 0)\n        })\n        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n    } else {\n      $active.removeClass('active')\n      $next.addClass('active')\n      this.sliding = false\n      this.$element.trigger(slidEvent)\n    }\n\n    isCycling && this.cycle()\n\n    return this\n  }\n\n\n  // CAROUSEL PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.carousel')\n      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n      var action  = typeof option == 'string' ? option : options.slide\n\n      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n      if (typeof option == 'number') data.to(option)\n      else if (action) data[action]()\n      else if (options.interval) data.pause().cycle()\n    })\n  }\n\n  var old = $.fn.carousel\n\n  $.fn.carousel             = Plugin\n  $.fn.carousel.Constructor = Carousel\n\n\n  // CAROUSEL NO CONFLICT\n  // ====================\n\n  $.fn.carousel.noConflict = function () {\n    $.fn.carousel = old\n    return this\n  }\n\n\n  // CAROUSEL DATA-API\n  // =================\n\n  var clickHandler = function (e) {\n    var href\n    var $this   = $(this)\n    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n    if (!$target.hasClass('carousel')) return\n    var options = $.extend({}, $target.data(), $this.data())\n    var slideIndex = $this.attr('data-slide-to')\n    if (slideIndex) options.interval = false\n\n    Plugin.call($target, options)\n\n    if (slideIndex) {\n      $target.data('bs.carousel').to(slideIndex)\n    }\n\n    e.preventDefault()\n  }\n\n  $(document)\n    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n  $(window).on('load', function () {\n    $('[data-ride=\"carousel\"]').each(function () {\n      var $carousel = $(this)\n      Plugin.call($carousel, $carousel.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.7\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n  'use strict';\n\n  // COLLAPSE PUBLIC CLASS DEFINITION\n  // ================================\n\n  var Collapse = function (element, options) {\n    this.$element      = $(element)\n    this.options       = $.extend({}, Collapse.DEFAULTS, options)\n    this.$trigger      = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n                           '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n    this.transitioning = null\n\n    if (this.options.parent) {\n      this.$parent = this.getParent()\n    } else {\n      this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n    }\n\n    if (this.options.toggle) this.toggle()\n  }\n\n  Collapse.VERSION  = '3.3.7'\n\n  Collapse.TRANSITION_DURATION = 350\n\n  Collapse.DEFAULTS = {\n    toggle: true\n  }\n\n  Collapse.prototype.dimension = function () {\n    var hasWidth = this.$element.hasClass('width')\n    return hasWidth ? 'width' : 'height'\n  }\n\n  Collapse.prototype.show = function () {\n    if (this.transitioning || this.$element.hasClass('in')) return\n\n    var activesData\n    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n    if (actives && actives.length) {\n      activesData = actives.data('bs.collapse')\n      if (activesData && activesData.transitioning) return\n    }\n\n    var startEvent = $.Event('show.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    if (actives && actives.length) {\n      Plugin.call(actives, 'hide')\n      activesData || actives.data('bs.collapse', null)\n    }\n\n    var dimension = this.dimension()\n\n    this.$element\n      .removeClass('collapse')\n      .addClass('collapsing')[dimension](0)\n      .attr('aria-expanded', true)\n\n    this.$trigger\n      .removeClass('collapsed')\n      .attr('aria-expanded', true)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse in')[dimension]('')\n      this.transitioning = 0\n      this.$element\n        .trigger('shown.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n    this.$element\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n  }\n\n  Collapse.prototype.hide = function () {\n    if (this.transitioning || !this.$element.hasClass('in')) return\n\n    var startEvent = $.Event('hide.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    var dimension = this.dimension()\n\n    this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n    this.$element\n      .addClass('collapsing')\n      .removeClass('collapse in')\n      .attr('aria-expanded', false)\n\n    this.$trigger\n      .addClass('collapsed')\n      .attr('aria-expanded', false)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.transitioning = 0\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse')\n        .trigger('hidden.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    this.$element\n      [dimension](0)\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n  }\n\n  Collapse.prototype.toggle = function () {\n    this[this.$element.hasClass('in') ? 'hide' : 'show']()\n  }\n\n  Collapse.prototype.getParent = function () {\n    return $(this.options.parent)\n      .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n      .each($.proxy(function (i, element) {\n        var $element = $(element)\n        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n      }, this))\n      .end()\n  }\n\n  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n    var isOpen = $element.hasClass('in')\n\n    $element.attr('aria-expanded', isOpen)\n    $trigger\n      .toggleClass('collapsed', !isOpen)\n      .attr('aria-expanded', isOpen)\n  }\n\n  function getTargetFromTrigger($trigger) {\n    var href\n    var target = $trigger.attr('data-target')\n      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n    return $(target)\n  }\n\n\n  // COLLAPSE PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.collapse')\n      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.collapse\n\n  $.fn.collapse             = Plugin\n  $.fn.collapse.Constructor = Collapse\n\n\n  // COLLAPSE NO CONFLICT\n  // ====================\n\n  $.fn.collapse.noConflict = function () {\n    $.fn.collapse = old\n    return this\n  }\n\n\n  // COLLAPSE DATA-API\n  // =================\n\n  $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n    var $this   = $(this)\n\n    if (!$this.attr('data-target')) e.preventDefault()\n\n    var $target = getTargetFromTrigger($this)\n    var data    = $target.data('bs.collapse')\n    var option  = data ? 'toggle' : $this.data()\n\n    Plugin.call($target, option)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.7\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // DROPDOWN CLASS DEFINITION\n  // =========================\n\n  var backdrop = '.dropdown-backdrop'\n  var toggle   = '[data-toggle=\"dropdown\"]'\n  var Dropdown = function (element) {\n    $(element).on('click.bs.dropdown', this.toggle)\n  }\n\n  Dropdown.VERSION = '3.3.7'\n\n  function getParent($this) {\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = selector && $(selector)\n\n    return $parent && $parent.length ? $parent : $this.parent()\n  }\n\n  function clearMenus(e) {\n    if (e && e.which === 3) return\n    $(backdrop).remove()\n    $(toggle).each(function () {\n      var $this         = $(this)\n      var $parent       = getParent($this)\n      var relatedTarget = { relatedTarget: this }\n\n      if (!$parent.hasClass('open')) return\n\n      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this.attr('aria-expanded', 'false')\n      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n    })\n  }\n\n  Dropdown.prototype.toggle = function (e) {\n    var $this = $(this)\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    clearMenus()\n\n    if (!isActive) {\n      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n        // if mobile we use a backdrop because click events don't delegate\n        $(document.createElement('div'))\n          .addClass('dropdown-backdrop')\n          .insertAfter($(this))\n          .on('click', clearMenus)\n      }\n\n      var relatedTarget = { relatedTarget: this }\n      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this\n        .trigger('focus')\n        .attr('aria-expanded', 'true')\n\n      $parent\n        .toggleClass('open')\n        .trigger($.Event('shown.bs.dropdown', relatedTarget))\n    }\n\n    return false\n  }\n\n  Dropdown.prototype.keydown = function (e) {\n    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n    var $this = $(this)\n\n    e.preventDefault()\n    e.stopPropagation()\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    if (!isActive && e.which != 27 || isActive && e.which == 27) {\n      if (e.which == 27) $parent.find(toggle).trigger('focus')\n      return $this.trigger('click')\n    }\n\n    var desc = ' li:not(.disabled):visible a'\n    var $items = $parent.find('.dropdown-menu' + desc)\n\n    if (!$items.length) return\n\n    var index = $items.index(e.target)\n\n    if (e.which == 38 && index > 0)                 index--         // up\n    if (e.which == 40 && index < $items.length - 1) index++         // down\n    if (!~index)                                    index = 0\n\n    $items.eq(index).trigger('focus')\n  }\n\n\n  // DROPDOWN PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.dropdown')\n\n      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.dropdown\n\n  $.fn.dropdown             = Plugin\n  $.fn.dropdown.Constructor = Dropdown\n\n\n  // DROPDOWN NO CONFLICT\n  // ====================\n\n  $.fn.dropdown.noConflict = function () {\n    $.fn.dropdown = old\n    return this\n  }\n\n\n  // APPLY TO STANDARD DROPDOWN ELEMENTS\n  // ===================================\n\n  $(document)\n    .on('click.bs.dropdown.data-api', clearMenus)\n    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.7\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // MODAL CLASS DEFINITION\n  // ======================\n\n  var Modal = function (element, options) {\n    this.options             = options\n    this.$body               = $(document.body)\n    this.$element            = $(element)\n    this.$dialog             = this.$element.find('.modal-dialog')\n    this.$backdrop           = null\n    this.isShown             = null\n    this.originalBodyPad     = null\n    this.scrollbarWidth      = 0\n    this.ignoreBackdropClick = false\n\n    if (this.options.remote) {\n      this.$element\n        .find('.modal-content')\n        .load(this.options.remote, $.proxy(function () {\n          this.$element.trigger('loaded.bs.modal')\n        }, this))\n    }\n  }\n\n  Modal.VERSION  = '3.3.7'\n\n  Modal.TRANSITION_DURATION = 300\n  Modal.BACKDROP_TRANSITION_DURATION = 150\n\n  Modal.DEFAULTS = {\n    backdrop: true,\n    keyboard: true,\n    show: true\n  }\n\n  Modal.prototype.toggle = function (_relatedTarget) {\n    return this.isShown ? this.hide() : this.show(_relatedTarget)\n  }\n\n  Modal.prototype.show = function (_relatedTarget) {\n    var that = this\n    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n    this.$element.trigger(e)\n\n    if (this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = true\n\n    this.checkScrollbar()\n    this.setScrollbar()\n    this.$body.addClass('modal-open')\n\n    this.escape()\n    this.resize()\n\n    this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n    this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n      that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n      })\n    })\n\n    this.backdrop(function () {\n      var transition = $.support.transition && that.$element.hasClass('fade')\n\n      if (!that.$element.parent().length) {\n        that.$element.appendTo(that.$body) // don't move modals dom position\n      }\n\n      that.$element\n        .show()\n        .scrollTop(0)\n\n      that.adjustDialog()\n\n      if (transition) {\n        that.$element[0].offsetWidth // force reflow\n      }\n\n      that.$element.addClass('in')\n\n      that.enforceFocus()\n\n      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n      transition ?\n        that.$dialog // wait for modal to slide in\n          .one('bsTransitionEnd', function () {\n            that.$element.trigger('focus').trigger(e)\n          })\n          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n        that.$element.trigger('focus').trigger(e)\n    })\n  }\n\n  Modal.prototype.hide = function (e) {\n    if (e) e.preventDefault()\n\n    e = $.Event('hide.bs.modal')\n\n    this.$element.trigger(e)\n\n    if (!this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = false\n\n    this.escape()\n    this.resize()\n\n    $(document).off('focusin.bs.modal')\n\n    this.$element\n      .removeClass('in')\n      .off('click.dismiss.bs.modal')\n      .off('mouseup.dismiss.bs.modal')\n\n    this.$dialog.off('mousedown.dismiss.bs.modal')\n\n    $.support.transition && this.$element.hasClass('fade') ?\n      this.$element\n        .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n      this.hideModal()\n  }\n\n  Modal.prototype.enforceFocus = function () {\n    $(document)\n      .off('focusin.bs.modal') // guard against infinite focus loop\n      .on('focusin.bs.modal', $.proxy(function (e) {\n        if (document !== e.target &&\n            this.$element[0] !== e.target &&\n            !this.$element.has(e.target).length) {\n          this.$element.trigger('focus')\n        }\n      }, this))\n  }\n\n  Modal.prototype.escape = function () {\n    if (this.isShown && this.options.keyboard) {\n      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n        e.which == 27 && this.hide()\n      }, this))\n    } else if (!this.isShown) {\n      this.$element.off('keydown.dismiss.bs.modal')\n    }\n  }\n\n  Modal.prototype.resize = function () {\n    if (this.isShown) {\n      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n    } else {\n      $(window).off('resize.bs.modal')\n    }\n  }\n\n  Modal.prototype.hideModal = function () {\n    var that = this\n    this.$element.hide()\n    this.backdrop(function () {\n      that.$body.removeClass('modal-open')\n      that.resetAdjustments()\n      that.resetScrollbar()\n      that.$element.trigger('hidden.bs.modal')\n    })\n  }\n\n  Modal.prototype.removeBackdrop = function () {\n    this.$backdrop && this.$backdrop.remove()\n    this.$backdrop = null\n  }\n\n  Modal.prototype.backdrop = function (callback) {\n    var that = this\n    var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n    if (this.isShown && this.options.backdrop) {\n      var doAnimate = $.support.transition && animate\n\n      this.$backdrop = $(document.createElement('div'))\n        .addClass('modal-backdrop ' + animate)\n        .appendTo(this.$body)\n\n      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n        if (this.ignoreBackdropClick) {\n          this.ignoreBackdropClick = false\n          return\n        }\n        if (e.target !== e.currentTarget) return\n        this.options.backdrop == 'static'\n          ? this.$element[0].focus()\n          : this.hide()\n      }, this))\n\n      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n      this.$backdrop.addClass('in')\n\n      if (!callback) return\n\n      doAnimate ?\n        this.$backdrop\n          .one('bsTransitionEnd', callback)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callback()\n\n    } else if (!this.isShown && this.$backdrop) {\n      this.$backdrop.removeClass('in')\n\n      var callbackRemove = function () {\n        that.removeBackdrop()\n        callback && callback()\n      }\n      $.support.transition && this.$element.hasClass('fade') ?\n        this.$backdrop\n          .one('bsTransitionEnd', callbackRemove)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callbackRemove()\n\n    } else if (callback) {\n      callback()\n    }\n  }\n\n  // these following methods are used to handle overflowing modals\n\n  Modal.prototype.handleUpdate = function () {\n    this.adjustDialog()\n  }\n\n  Modal.prototype.adjustDialog = function () {\n    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n    this.$element.css({\n      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n    })\n  }\n\n  Modal.prototype.resetAdjustments = function () {\n    this.$element.css({\n      paddingLeft: '',\n      paddingRight: ''\n    })\n  }\n\n  Modal.prototype.checkScrollbar = function () {\n    var fullWindowWidth = window.innerWidth\n    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n      var documentElementRect = document.documentElement.getBoundingClientRect()\n      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n    }\n    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n    this.scrollbarWidth = this.measureScrollbar()\n  }\n\n  Modal.prototype.setScrollbar = function () {\n    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n    this.originalBodyPad = document.body.style.paddingRight || ''\n    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n  }\n\n  Modal.prototype.resetScrollbar = function () {\n    this.$body.css('padding-right', this.originalBodyPad)\n  }\n\n  Modal.prototype.measureScrollbar = function () { // thx walsh\n    var scrollDiv = document.createElement('div')\n    scrollDiv.className = 'modal-scrollbar-measure'\n    this.$body.append(scrollDiv)\n    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n    this.$body[0].removeChild(scrollDiv)\n    return scrollbarWidth\n  }\n\n\n  // MODAL PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option, _relatedTarget) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.modal')\n      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n      if (typeof option == 'string') data[option](_relatedTarget)\n      else if (options.show) data.show(_relatedTarget)\n    })\n  }\n\n  var old = $.fn.modal\n\n  $.fn.modal             = Plugin\n  $.fn.modal.Constructor = Modal\n\n\n  // MODAL NO CONFLICT\n  // =================\n\n  $.fn.modal.noConflict = function () {\n    $.fn.modal = old\n    return this\n  }\n\n\n  // MODAL DATA-API\n  // ==============\n\n  $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n    var $this   = $(this)\n    var href    = $this.attr('href')\n    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n    if ($this.is('a')) e.preventDefault()\n\n    $target.one('show.bs.modal', function (showEvent) {\n      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n      $target.one('hidden.bs.modal', function () {\n        $this.is(':visible') && $this.trigger('focus')\n      })\n    })\n    Plugin.call($target, option, this)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TOOLTIP PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Tooltip = function (element, options) {\n    this.type       = null\n    this.options    = null\n    this.enabled    = null\n    this.timeout    = null\n    this.hoverState = null\n    this.$element   = null\n    this.inState    = null\n\n    this.init('tooltip', element, options)\n  }\n\n  Tooltip.VERSION  = '3.3.7'\n\n  Tooltip.TRANSITION_DURATION = 150\n\n  Tooltip.DEFAULTS = {\n    animation: true,\n    placement: 'top',\n    selector: false,\n    template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    container: false,\n    viewport: {\n      selector: 'body',\n      padding: 0\n    }\n  }\n\n  Tooltip.prototype.init = function (type, element, options) {\n    this.enabled   = true\n    this.type      = type\n    this.$element  = $(element)\n    this.options   = this.getOptions(options)\n    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n    this.inState   = { click: false, hover: false, focus: false }\n\n    if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n    }\n\n    var triggers = this.options.trigger.split(' ')\n\n    for (var i = triggers.length; i--;) {\n      var trigger = triggers[i]\n\n      if (trigger == 'click') {\n        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n      } else if (trigger != 'manual') {\n        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'\n        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n      }\n    }\n\n    this.options.selector ?\n      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n      this.fixTitle()\n  }\n\n  Tooltip.prototype.getDefaults = function () {\n    return Tooltip.DEFAULTS\n  }\n\n  Tooltip.prototype.getOptions = function (options) {\n    options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n    if (options.delay && typeof options.delay == 'number') {\n      options.delay = {\n        show: options.delay,\n        hide: options.delay\n      }\n    }\n\n    return options\n  }\n\n  Tooltip.prototype.getDelegateOptions = function () {\n    var options  = {}\n    var defaults = this.getDefaults()\n\n    this._options && $.each(this._options, function (key, value) {\n      if (defaults[key] != value) options[key] = value\n    })\n\n    return options\n  }\n\n  Tooltip.prototype.enter = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n    }\n\n    if (self.tip().hasClass('in') || self.hoverState == 'in') {\n      self.hoverState = 'in'\n      return\n    }\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'in'\n\n    if (!self.options.delay || !self.options.delay.show) return self.show()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'in') self.show()\n    }, self.options.delay.show)\n  }\n\n  Tooltip.prototype.isInStateTrue = function () {\n    for (var key in this.inState) {\n      if (this.inState[key]) return true\n    }\n\n    return false\n  }\n\n  Tooltip.prototype.leave = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n    }\n\n    if (self.isInStateTrue()) return\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'out'\n\n    if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'out') self.hide()\n    }, self.options.delay.hide)\n  }\n\n  Tooltip.prototype.show = function () {\n    var e = $.Event('show.bs.' + this.type)\n\n    if (this.hasContent() && this.enabled) {\n      this.$element.trigger(e)\n\n      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n      if (e.isDefaultPrevented() || !inDom) return\n      var that = this\n\n      var $tip = this.tip()\n\n      var tipId = this.getUID(this.type)\n\n      this.setContent()\n      $tip.attr('id', tipId)\n      this.$element.attr('aria-describedby', tipId)\n\n      if (this.options.animation) $tip.addClass('fade')\n\n      var placement = typeof this.options.placement == 'function' ?\n        this.options.placement.call(this, $tip[0], this.$element[0]) :\n        this.options.placement\n\n      var autoToken = /\\s?auto?\\s?/i\n      var autoPlace = autoToken.test(placement)\n      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n      $tip\n        .detach()\n        .css({ top: 0, left: 0, display: 'block' })\n        .addClass(placement)\n        .data('bs.' + this.type, this)\n\n      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n      this.$element.trigger('inserted.bs.' + this.type)\n\n      var pos          = this.getPosition()\n      var actualWidth  = $tip[0].offsetWidth\n      var actualHeight = $tip[0].offsetHeight\n\n      if (autoPlace) {\n        var orgPlacement = placement\n        var viewportDim = this.getPosition(this.$viewport)\n\n        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :\n                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :\n                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :\n                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :\n                    placement\n\n        $tip\n          .removeClass(orgPlacement)\n          .addClass(placement)\n      }\n\n      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n      this.applyPlacement(calculatedOffset, placement)\n\n      var complete = function () {\n        var prevHoverState = that.hoverState\n        that.$element.trigger('shown.bs.' + that.type)\n        that.hoverState = null\n\n        if (prevHoverState == 'out') that.leave(that)\n      }\n\n      $.support.transition && this.$tip.hasClass('fade') ?\n        $tip\n          .one('bsTransitionEnd', complete)\n          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n        complete()\n    }\n  }\n\n  Tooltip.prototype.applyPlacement = function (offset, placement) {\n    var $tip   = this.tip()\n    var width  = $tip[0].offsetWidth\n    var height = $tip[0].offsetHeight\n\n    // manually read margins because getBoundingClientRect includes difference\n    var marginTop = parseInt($tip.css('margin-top'), 10)\n    var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n    // we must check for NaN for ie 8/9\n    if (isNaN(marginTop))  marginTop  = 0\n    if (isNaN(marginLeft)) marginLeft = 0\n\n    offset.top  += marginTop\n    offset.left += marginLeft\n\n    // $.fn.offset doesn't round pixel values\n    // so we use setOffset directly with our own function B-0\n    $.offset.setOffset($tip[0], $.extend({\n      using: function (props) {\n        $tip.css({\n          top: Math.round(props.top),\n          left: Math.round(props.left)\n        })\n      }\n    }, offset), 0)\n\n    $tip.addClass('in')\n\n    // check to see if placing tip in new offset caused the tip to resize itself\n    var actualWidth  = $tip[0].offsetWidth\n    var actualHeight = $tip[0].offsetHeight\n\n    if (placement == 'top' && actualHeight != height) {\n      offset.top = offset.top + height - actualHeight\n    }\n\n    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n    if (delta.left) offset.left += delta.left\n    else offset.top += delta.top\n\n    var isVertical          = /top|bottom/.test(placement)\n    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n    $tip.offset(offset)\n    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n  }\n\n  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n    this.arrow()\n      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n      .css(isVertical ? 'top' : 'left', '')\n  }\n\n  Tooltip.prototype.setContent = function () {\n    var $tip  = this.tip()\n    var title = this.getTitle()\n\n    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n    $tip.removeClass('fade in top bottom left right')\n  }\n\n  Tooltip.prototype.hide = function (callback) {\n    var that = this\n    var $tip = $(this.$tip)\n    var e    = $.Event('hide.bs.' + this.type)\n\n    function complete() {\n      if (that.hoverState != 'in') $tip.detach()\n      if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n        that.$element\n          .removeAttr('aria-describedby')\n          .trigger('hidden.bs.' + that.type)\n      }\n      callback && callback()\n    }\n\n    this.$element.trigger(e)\n\n    if (e.isDefaultPrevented()) return\n\n    $tip.removeClass('in')\n\n    $.support.transition && $tip.hasClass('fade') ?\n      $tip\n        .one('bsTransitionEnd', complete)\n        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n      complete()\n\n    this.hoverState = null\n\n    return this\n  }\n\n  Tooltip.prototype.fixTitle = function () {\n    var $e = this.$element\n    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n    }\n  }\n\n  Tooltip.prototype.hasContent = function () {\n    return this.getTitle()\n  }\n\n  Tooltip.prototype.getPosition = function ($element) {\n    $element   = $element || this.$element\n\n    var el     = $element[0]\n    var isBody = el.tagName == 'BODY'\n\n    var elRect    = el.getBoundingClientRect()\n    if (elRect.width == null) {\n      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n    }\n    var isSvg = window.SVGElement && el instanceof window.SVGElement\n    // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n    // See https://github.com/twbs/bootstrap/issues/20280\n    var elOffset  = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n    return $.extend({}, elRect, scroll, outerDims, elOffset)\n  }\n\n  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n  }\n\n  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n    var delta = { top: 0, left: 0 }\n    if (!this.$viewport) return delta\n\n    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n    var viewportDimensions = this.getPosition(this.$viewport)\n\n    if (/right|left/.test(placement)) {\n      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll\n      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n      if (topEdgeOffset < viewportDimensions.top) { // top overflow\n        delta.top = viewportDimensions.top - topEdgeOffset\n      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n      }\n    } else {\n      var leftEdgeOffset  = pos.left - viewportPadding\n      var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n      if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n        delta.left = viewportDimensions.left - leftEdgeOffset\n      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n      }\n    }\n\n    return delta\n  }\n\n  Tooltip.prototype.getTitle = function () {\n    var title\n    var $e = this.$element\n    var o  = this.options\n\n    title = $e.attr('data-original-title')\n      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)\n\n    return title\n  }\n\n  Tooltip.prototype.getUID = function (prefix) {\n    do prefix += ~~(Math.random() * 1000000)\n    while (document.getElementById(prefix))\n    return prefix\n  }\n\n  Tooltip.prototype.tip = function () {\n    if (!this.$tip) {\n      this.$tip = $(this.options.template)\n      if (this.$tip.length != 1) {\n        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n      }\n    }\n    return this.$tip\n  }\n\n  Tooltip.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n  }\n\n  Tooltip.prototype.enable = function () {\n    this.enabled = true\n  }\n\n  Tooltip.prototype.disable = function () {\n    this.enabled = false\n  }\n\n  Tooltip.prototype.toggleEnabled = function () {\n    this.enabled = !this.enabled\n  }\n\n  Tooltip.prototype.toggle = function (e) {\n    var self = this\n    if (e) {\n      self = $(e.currentTarget).data('bs.' + this.type)\n      if (!self) {\n        self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n        $(e.currentTarget).data('bs.' + this.type, self)\n      }\n    }\n\n    if (e) {\n      self.inState.click = !self.inState.click\n      if (self.isInStateTrue()) self.enter(self)\n      else self.leave(self)\n    } else {\n      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n    }\n  }\n\n  Tooltip.prototype.destroy = function () {\n    var that = this\n    clearTimeout(this.timeout)\n    this.hide(function () {\n      that.$element.off('.' + that.type).removeData('bs.' + that.type)\n      if (that.$tip) {\n        that.$tip.detach()\n      }\n      that.$tip = null\n      that.$arrow = null\n      that.$viewport = null\n      that.$element = null\n    })\n  }\n\n\n  // TOOLTIP PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.tooltip')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tooltip\n\n  $.fn.tooltip             = Plugin\n  $.fn.tooltip.Constructor = Tooltip\n\n\n  // TOOLTIP NO CONFLICT\n  // ===================\n\n  $.fn.tooltip.noConflict = function () {\n    $.fn.tooltip = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.7\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // POPOVER PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Popover = function (element, options) {\n    this.init('popover', element, options)\n  }\n\n  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n  Popover.VERSION  = '3.3.7'\n\n  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n  })\n\n\n  // NOTE: POPOVER EXTENDS tooltip.js\n  // ================================\n\n  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n  Popover.prototype.constructor = Popover\n\n  Popover.prototype.getDefaults = function () {\n    return Popover.DEFAULTS\n  }\n\n  Popover.prototype.setContent = function () {\n    var $tip    = this.tip()\n    var title   = this.getTitle()\n    var content = this.getContent()\n\n    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n    ](content)\n\n    $tip.removeClass('fade top bottom left right in')\n\n    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n    // this manually by checking the contents.\n    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n  }\n\n  Popover.prototype.hasContent = function () {\n    return this.getTitle() || this.getContent()\n  }\n\n  Popover.prototype.getContent = function () {\n    var $e = this.$element\n    var o  = this.options\n\n    return $e.attr('data-content')\n      || (typeof o.content == 'function' ?\n            o.content.call($e[0]) :\n            o.content)\n  }\n\n  Popover.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n  }\n\n\n  // POPOVER PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.popover')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.popover\n\n  $.fn.popover             = Plugin\n  $.fn.popover.Constructor = Popover\n\n\n  // POPOVER NO CONFLICT\n  // ===================\n\n  $.fn.popover.noConflict = function () {\n    $.fn.popover = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.7\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // SCROLLSPY CLASS DEFINITION\n  // ==========================\n\n  function ScrollSpy(element, options) {\n    this.$body          = $(document.body)\n    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)\n    this.selector       = (this.options.target || '') + ' .nav li > a'\n    this.offsets        = []\n    this.targets        = []\n    this.activeTarget   = null\n    this.scrollHeight   = 0\n\n    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n    this.refresh()\n    this.process()\n  }\n\n  ScrollSpy.VERSION  = '3.3.7'\n\n  ScrollSpy.DEFAULTS = {\n    offset: 10\n  }\n\n  ScrollSpy.prototype.getScrollHeight = function () {\n    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n  }\n\n  ScrollSpy.prototype.refresh = function () {\n    var that          = this\n    var offsetMethod  = 'offset'\n    var offsetBase    = 0\n\n    this.offsets      = []\n    this.targets      = []\n    this.scrollHeight = this.getScrollHeight()\n\n    if (!$.isWindow(this.$scrollElement[0])) {\n      offsetMethod = 'position'\n      offsetBase   = this.$scrollElement.scrollTop()\n    }\n\n    this.$body\n      .find(this.selector)\n      .map(function () {\n        var $el   = $(this)\n        var href  = $el.data('target') || $el.attr('href')\n        var $href = /^#./.test(href) && $(href)\n\n        return ($href\n          && $href.length\n          && $href.is(':visible')\n          && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n      })\n      .sort(function (a, b) { return a[0] - b[0] })\n      .each(function () {\n        that.offsets.push(this[0])\n        that.targets.push(this[1])\n      })\n  }\n\n  ScrollSpy.prototype.process = function () {\n    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset\n    var scrollHeight = this.getScrollHeight()\n    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()\n    var offsets      = this.offsets\n    var targets      = this.targets\n    var activeTarget = this.activeTarget\n    var i\n\n    if (this.scrollHeight != scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n    }\n\n    if (activeTarget && scrollTop < offsets[0]) {\n      this.activeTarget = null\n      return this.clear()\n    }\n\n    for (i = offsets.length; i--;) {\n      activeTarget != targets[i]\n        && scrollTop >= offsets[i]\n        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n        && this.activate(targets[i])\n    }\n  }\n\n  ScrollSpy.prototype.activate = function (target) {\n    this.activeTarget = target\n\n    this.clear()\n\n    var selector = this.selector +\n      '[data-target=\"' + target + '\"],' +\n      this.selector + '[href=\"' + target + '\"]'\n\n    var active = $(selector)\n      .parents('li')\n      .addClass('active')\n\n    if (active.parent('.dropdown-menu').length) {\n      active = active\n        .closest('li.dropdown')\n        .addClass('active')\n    }\n\n    active.trigger('activate.bs.scrollspy')\n  }\n\n  ScrollSpy.prototype.clear = function () {\n    $(this.selector)\n      .parentsUntil(this.options.target, '.active')\n      .removeClass('active')\n  }\n\n\n  // SCROLLSPY PLUGIN DEFINITION\n  // ===========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.scrollspy')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.scrollspy\n\n  $.fn.scrollspy             = Plugin\n  $.fn.scrollspy.Constructor = ScrollSpy\n\n\n  // SCROLLSPY NO CONFLICT\n  // =====================\n\n  $.fn.scrollspy.noConflict = function () {\n    $.fn.scrollspy = old\n    return this\n  }\n\n\n  // SCROLLSPY DATA-API\n  // ==================\n\n  $(window).on('load.bs.scrollspy.data-api', function () {\n    $('[data-spy=\"scroll\"]').each(function () {\n      var $spy = $(this)\n      Plugin.call($spy, $spy.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.7\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TAB CLASS DEFINITION\n  // ====================\n\n  var Tab = function (element) {\n    // jscs:disable requireDollarBeforejQueryAssignment\n    this.element = $(element)\n    // jscs:enable requireDollarBeforejQueryAssignment\n  }\n\n  Tab.VERSION = '3.3.7'\n\n  Tab.TRANSITION_DURATION = 150\n\n  Tab.prototype.show = function () {\n    var $this    = this.element\n    var $ul      = $this.closest('ul:not(.dropdown-menu)')\n    var selector = $this.data('target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    if ($this.parent('li').hasClass('active')) return\n\n    var $previous = $ul.find('.active:last a')\n    var hideEvent = $.Event('hide.bs.tab', {\n      relatedTarget: $this[0]\n    })\n    var showEvent = $.Event('show.bs.tab', {\n      relatedTarget: $previous[0]\n    })\n\n    $previous.trigger(hideEvent)\n    $this.trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n    var $target = $(selector)\n\n    this.activate($this.closest('li'), $ul)\n    this.activate($target, $target.parent(), function () {\n      $previous.trigger({\n        type: 'hidden.bs.tab',\n        relatedTarget: $this[0]\n      })\n      $this.trigger({\n        type: 'shown.bs.tab',\n        relatedTarget: $previous[0]\n      })\n    })\n  }\n\n  Tab.prototype.activate = function (element, container, callback) {\n    var $active    = container.find('> .active')\n    var transition = callback\n      && $.support.transition\n      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n    function next() {\n      $active\n        .removeClass('active')\n        .find('> .dropdown-menu > .active')\n          .removeClass('active')\n        .end()\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', false)\n\n      element\n        .addClass('active')\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', true)\n\n      if (transition) {\n        element[0].offsetWidth // reflow for transition\n        element.addClass('in')\n      } else {\n        element.removeClass('fade')\n      }\n\n      if (element.parent('.dropdown-menu').length) {\n        element\n          .closest('li.dropdown')\n            .addClass('active')\n          .end()\n          .find('[data-toggle=\"tab\"]')\n            .attr('aria-expanded', true)\n      }\n\n      callback && callback()\n    }\n\n    $active.length && transition ?\n      $active\n        .one('bsTransitionEnd', next)\n        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n      next()\n\n    $active.removeClass('in')\n  }\n\n\n  // TAB PLUGIN DEFINITION\n  // =====================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.tab')\n\n      if (!data) $this.data('bs.tab', (data = new Tab(this)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tab\n\n  $.fn.tab             = Plugin\n  $.fn.tab.Constructor = Tab\n\n\n  // TAB NO CONFLICT\n  // ===============\n\n  $.fn.tab.noConflict = function () {\n    $.fn.tab = old\n    return this\n  }\n\n\n  // TAB DATA-API\n  // ============\n\n  var clickHandler = function (e) {\n    e.preventDefault()\n    Plugin.call($(this), 'show')\n  }\n\n  $(document)\n    .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n    .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.7\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // AFFIX CLASS DEFINITION\n  // ======================\n\n  var Affix = function (element, options) {\n    this.options = $.extend({}, Affix.DEFAULTS, options)\n\n    this.$target = $(this.options.target)\n      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))\n\n    this.$element     = $(element)\n    this.affixed      = null\n    this.unpin        = null\n    this.pinnedOffset = null\n\n    this.checkPosition()\n  }\n\n  Affix.VERSION  = '3.3.7'\n\n  Affix.RESET    = 'affix affix-top affix-bottom'\n\n  Affix.DEFAULTS = {\n    offset: 0,\n    target: window\n  }\n\n  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n    var scrollTop    = this.$target.scrollTop()\n    var position     = this.$element.offset()\n    var targetHeight = this.$target.height()\n\n    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n    if (this.affixed == 'bottom') {\n      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n    }\n\n    var initializing   = this.affixed == null\n    var colliderTop    = initializing ? scrollTop : position.top\n    var colliderHeight = initializing ? targetHeight : height\n\n    if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n    return false\n  }\n\n  Affix.prototype.getPinnedOffset = function () {\n    if (this.pinnedOffset) return this.pinnedOffset\n    this.$element.removeClass(Affix.RESET).addClass('affix')\n    var scrollTop = this.$target.scrollTop()\n    var position  = this.$element.offset()\n    return (this.pinnedOffset = position.top - scrollTop)\n  }\n\n  Affix.prototype.checkPositionWithEventLoop = function () {\n    setTimeout($.proxy(this.checkPosition, this), 1)\n  }\n\n  Affix.prototype.checkPosition = function () {\n    if (!this.$element.is(':visible')) return\n\n    var height       = this.$element.height()\n    var offset       = this.options.offset\n    var offsetTop    = offset.top\n    var offsetBottom = offset.bottom\n    var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n    if (typeof offset != 'object')         offsetBottom = offsetTop = offset\n    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)\n    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n    if (this.affixed != affix) {\n      if (this.unpin != null) this.$element.css('top', '')\n\n      var affixType = 'affix' + (affix ? '-' + affix : '')\n      var e         = $.Event(affixType + '.bs.affix')\n\n      this.$element.trigger(e)\n\n      if (e.isDefaultPrevented()) return\n\n      this.affixed = affix\n      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n      this.$element\n        .removeClass(Affix.RESET)\n        .addClass(affixType)\n        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n    }\n\n    if (affix == 'bottom') {\n      this.$element.offset({\n        top: scrollHeight - height - offsetBottom\n      })\n    }\n  }\n\n\n  // AFFIX PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.affix')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.affix\n\n  $.fn.affix             = Plugin\n  $.fn.affix.Constructor = Affix\n\n\n  // AFFIX NO CONFLICT\n  // =================\n\n  $.fn.affix.noConflict = function () {\n    $.fn.affix = old\n    return this\n  }\n\n\n  // AFFIX DATA-API\n  // ==============\n\n  $(window).on('load', function () {\n    $('[data-spy=\"affix\"]').each(function () {\n      var $spy = $(this)\n      var data = $spy.data()\n\n      data.offset = data.offset || {}\n\n      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n      if (data.offsetTop    != null) data.offset.top    = data.offsetTop\n\n      Plugin.call($spy, data)\n    })\n  })\n\n}(jQuery);\n"
  },
  {
    "path": "lib/bootstrap/js/npm.js",
    "content": "// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequire('../../js/transition.js')\nrequire('../../js/alert.js')\nrequire('../../js/button.js')\nrequire('../../js/carousel.js')\nrequire('../../js/collapse.js')\nrequire('../../js/dropdown.js')\nrequire('../../js/modal.js')\nrequire('../../js/tooltip.js')\nrequire('../../js/popover.js')\nrequire('../../js/scrollspy.js')\nrequire('../../js/tab.js')\nrequire('../../js/affix.js')"
  },
  {
    "path": "lib/canvas-bg/rAF.js",
    "content": "// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\n// MIT license\n\n(function() {\n    var lastTime = 0;\n    var vendors = ['ms', 'moz', 'webkit', 'o'];\n    for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n        window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n        window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']\n            || window[vendors[x]+'CancelRequestAnimationFrame'];\n    }\n\n    if (!window.requestAnimationFrame)\n        window.requestAnimationFrame = function(callback, element) {\n            var currTime = new Date().getTime();\n            var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n            var id = window.setTimeout(function() { callback(currTime + timeToCall); },\n                timeToCall);\n            lastTime = currTime + timeToCall;\n            return id;\n        };\n\n    if (!window.cancelAnimationFrame)\n        window.cancelAnimationFrame = function(id) {\n            clearTimeout(id);\n        };\n}());"
  },
  {
    "path": "lib/layer/layer.js",
    "content": "/*! layer-v3.1.1 Web弹层组件 MIT License  http://layer.layui.com/  By 贤心 */\n ;!function(e,t){\"use strict\";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if(\"interactive\"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf(\"/\")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:[\"&#x786E;&#x5B9A;\",\"&#x53D6;&#x6D88;\"],type:[\"dialog\",\"page\",\"iframe\",\"loading\",\"tips\"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?\"getPropertyValue\":\"getAttribute\"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName(\"head\")[0],s=document.createElement(\"link\");\"string\"==typeof i&&(n=i);var l=(n||t).replace(/\\.|\\//g,\"\"),f=\"layuicss-\"+l,c=0;s.rel=\"stylesheet\",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),\"function\"==typeof i&&!function u(){return++c>80?e.console&&console.error(\"layer.css: Invalid\"):void(1989===parseInt(o.getStyle(document.getElementById(f),\"width\"))?i():setTimeout(u,100))}()}}},r={v:\"3.1.1\",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||\"ActiveXObject\"in e)&&((t.match(/msie\\s(\\d+)/)||[])[1]||\"11\")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,\"string\"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss(\"modules/layer/\"+e.extend):o.link(\"theme/\"+e.extend),this):this},ready:function(e){var t=\"layer\",i=\"\",n=(a?\"modules/layer/\":\"theme/\")+\"default/layer.css?v=\"+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a=\"function\"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s=\"function\"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s=\"function\"==typeof n,f=o.config.skin,c=(f?f+\" \"+f+\"-msg\":\"\")||\"layui-layer-msg\",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+\" layui-layer-hui\",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+\" \"+(n.skin||\"layui-layer-hui\")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=[\"layui-layer\",\".layui-layer-title\",\".layui-layer-main\",\".layui-layer-dialog\",\"layui-layer-iframe\",\"layui-layer-content\",\"layui-layer-btn\",\"layui-layer-close\"];l.anim=[\"layer-anim-00\",\"layer-anim-01\",\"layer-anim-02\",\"layer-anim-03\",\"layer-anim-04\",\"layer-anim-05\",\"layer-anim-06\"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:\"&#x4FE1;&#x606F;\",offset:\"auto\",area:\"auto\",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f=\"object\"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'<div class=\"layui-layer-title\" style=\"'+(f?r.title[1]:\"\")+'\">'+(f?r.title[0]:r.title)+\"</div>\":\"\";return r.zIndex=s,t([r.shade?'<div class=\"layui-layer-shade\" id=\"layui-layer-shade'+a+'\" times=\"'+a+'\" style=\"'+(\"z-index:\"+(s-1)+\"; \")+'\"></div>':\"\",'<div class=\"'+l[0]+(\" layui-layer-\"+o.type[r.type])+(0!=r.type&&2!=r.type||r.shade?\"\":\" layui-layer-border\")+\" \"+(r.skin||\"\")+'\" id=\"'+l[0]+a+'\" type=\"'+o.type[r.type]+'\" times=\"'+a+'\" showtime=\"'+r.time+'\" conType=\"'+(e?\"object\":\"string\")+'\" style=\"z-index: '+s+\"; width:\"+r.area[0]+\";height:\"+r.area[1]+(r.fixed?\"\":\";position:absolute;\")+'\">'+(e&&2!=r.type?\"\":u)+'<div id=\"'+(r.id||\"\")+'\" class=\"layui-layer-content'+(0==r.type&&r.icon!==-1?\" layui-layer-padding\":\"\")+(3==r.type?\" layui-layer-loading\"+r.icon:\"\")+'\">'+(0==r.type&&r.icon!==-1?'<i class=\"layui-layer-ico layui-layer-ico'+r.icon+'\"></i>':\"\")+(1==r.type&&e?\"\":r.content||\"\")+'</div><span class=\"layui-layer-setwin\">'+function(){var e=c?'<a class=\"layui-layer-min\" href=\"javascript:;\"><cite></cite></a><a class=\"layui-layer-ico layui-layer-max\" href=\"javascript:;\"></a>':\"\";return r.closeBtn&&(e+='<a class=\"layui-layer-ico '+l[7]+\" \"+l[7]+(r.title?r.closeBtn:4==r.type?\"1\":\"2\")+'\" href=\"javascript:;\"></a>'),e}()+\"</span>\"+(r.btn?function(){var e=\"\";\"string\"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t<i;t++)e+='<a class=\"'+l[6]+t+'\">'+r.btn[t]+\"</a>\";return'<div class=\"'+l[6]+\" layui-layer-btn-\"+(r.btnAlign||\"\")+'\">'+e+\"</div>\"}():\"\")+(r.resize?'<span class=\"layui-layer-resize\"></span>':\"\")+\"</div>\"],u,i('<div class=\"layui-layer-move\"></div>')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f=\"object\"==typeof s,c=i(\"body\");if(!t.id||!i(\"#\"+t.id)[0]){switch(\"string\"==typeof t.area&&(t.area=\"auto\"===t.area?[\"\",\"\"]:[t.area,\"\"]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn=\"btn\"in t?t.btn:o.btn[0],r.closeAll(\"dialog\");break;case 2:var s=t.content=f?t.content:[t.content||\"http://layer.layui.com\",\"auto\"];t.content='<iframe scrolling=\"'+(t.content[1]||\"auto\")+'\" allowtransparency=\"true\" id=\"'+l[4]+a+'\" name=\"'+l[4]+a+'\" onload=\"this.className=\\'\\';\" class=\"layui-layer-load\" frameborder=\"0\" src=\"'+t.content[0]+'\"></iframe>';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll(\"loading\");break;case 4:f||(t.content=[t.content,\"body\"]),t.follow=t.content[1],t.content=t.content[0]+'<i class=\"layui-layer-TipsG\"></i>',delete t.title,t.tips=\"object\"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll(\"tips\")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i(\"body\").append(n[1])}():function(){s.parents(\".\"+l[0])[0]||(s.data(\"display\",s.css(\"display\")).show().addClass(\"layui-layer-wrap\").wrap(n[1]),i(\"#\"+l[0]+a).find(\".\"+l[5]).before(r))}()}():c.append(n[1]),i(\".layui-layer-move\")[0]||c.append(o.moveElem=u),e.layero=i(\"#\"+l[0]+a),t.scrollbar||l.html.css(\"overflow\",\"hidden\").attr(\"layer-full\",a)}).auto(a),i(\"#layui-layer-shade\"+e.index).css({\"background-color\":t.shade[1]||\"#000\",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find(\"iframe\").attr(\"src\",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on(\"resize\",function(){e.offset(),(/^\\d+%$/.test(t.area[0])||/^\\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u=\"layer-anim \"+l.anim[t.anim];e.layero.addClass(u).one(\"webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend\",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data(\"isOutAnim\",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i(\"#\"+l[0]+e);\"\"===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find(\".\"+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css(\"padding-top\"))))};switch(a.type){case 2:u(\"iframe\");break;default:\"\"===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u(\".\"+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u(\".\"+l[5])):u(\".\"+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o=\"object\"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):\"auto\"!==t.offset&&(\"t\"===t.offset?e.offsetTop=0:\"r\"===t.offset?e.offsetLeft=n.width()-a[0]:\"b\"===t.offset?e.offsetTop=n.height()-a[1]:\"l\"===t.offset?e.offsetLeft=0:\"lt\"===t.offset?(e.offsetTop=0,e.offsetLeft=0):\"lb\"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):\"rt\"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):\"rb\"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr(\"minLeft\")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css(\"left\")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i(\"body\"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(\".layui-layer-TipsG\"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:\"auto\"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass(\"layui-layer-TipsB\").addClass(\"layui-layer-TipsT\").css(\"border-right-color\",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass(\"layui-layer-TipsL\").addClass(\"layui-layer-TipsR\").css(\"border-bottom-color\",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass(\"layui-layer-TipsT\").addClass(\"layui-layer-TipsB\").css(\"border-right-color\",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass(\"layui-layer-TipsR\").addClass(\"layui-layer-TipsL\").css(\"border-bottom-color\",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find(\".\"+l[5]).css({\"background-color\":t.tips[1],\"padding-right\":t.closeBtn?\"30px\":\"\"}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(\".layui-layer-resize\"),c={};return t.move&&l.css(\"cursor\",\"move\"),l.on(\"mousedown\",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css(\"left\")),e.clientY-parseFloat(s.css(\"top\"))],o.moveElem.css(\"cursor\",\"move\").show())}),f.on(\"mousedown\",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css(\"cursor\",\"se-resize\").show()}),a.on(\"mousemove\",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l=\"fixed\"===s.css(\"position\");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;a<c.stX&&(a=c.stX),a>f&&(a=f),o<c.stY&&(o=c.stY),o>u&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on(\"mouseup\",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find(\"iframe\").on(\"load\",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find(\".\"+l[6]).children(\"a\").on(\"click\",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a[\"btn\"+(e+1)]&&a[\"btn\"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find(\".\"+l[7]).on(\"click\",e),a.shadeClose&&i(\"#layui-layer-shade\"+t.index).on(\"click\",function(){r.close(t.index)}),n.find(\".layui-layer-min\").on(\"click\",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(\".layui-layer-max\").on(\"click\",function(){i(this).hasClass(\"layui-layer-maxmin\")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i(\"select\"),function(e,t){var n=i(this);n.parents(\".\"+l[0])[0]||1==n.attr(\"layer\")&&i(\".\"+l[0]).length<1&&n.removeAttr(\"layer\").show(),n=null})},s.pt.IE6=function(e){i(\"select\").each(function(e,t){var n=i(this);n.parents(\".\"+l[0])[0]||\"none\"===n.css(\"display\")||n.attr({layer:\"1\"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css(\"z-index\",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on(\"mousedown\",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css(\"margin-left\"))];e.find(\".layui-layer-max\").addClass(\"layui-layer-maxmin\"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr(\"layer-full\")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty(\"overflow\"):l.html[0].style.removeAttribute(\"overflow\"),l.html.removeAttr(\"layer-full\"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i(\".\"+l[4]).attr(\"times\"),i(\"#\"+l[0]+t).find(\"iframe\").contents().find(e)},r.getFrameIndex=function(e){return i(\"#\"+e).parents(\".\"+l[4]).attr(\"times\")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame(\"html\",e).outerHeight(),n=i(\"#\"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find(\".\"+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find(\"iframe\").css({height:t})}},r.iframeSrc=function(e,t){i(\"#\"+l[0]+e).find(\"iframe\").attr(\"src\",t)},r.style=function(e,t,n){var a=i(\"#\"+l[0]+e),r=a.find(\".layui-layer-content\"),s=a.attr(\"type\"),f=a.find(l[1]).outerHeight()||0,c=a.find(\".\"+l[6]).outerHeight()||0;a.attr(\"minLeft\");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find(\".\"+l[6]).outerHeight(),s===o.type[2]?a.find(\"iframe\").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css(\"padding-top\"))-parseFloat(r.css(\"padding-bottom\"))}))},r.min=function(e,t){var a=i(\"#\"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr(\"minLeft\")||181*o.minIndex+\"px\",c=a.css(\"position\");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr(\"position\",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:\"fixed\",overflow:\"hidden\"},!0),a.find(\".layui-layer-min\").hide(),\"page\"===a.attr(\"type\")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr(\"minLeft\")||o.minIndex++,a.attr(\"minLeft\",f)},r.restore=function(e){var t=i(\"#\"+l[0]+e),n=t.attr(\"area\").split(\",\");t.attr(\"type\");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr(\"position\"),overflow:\"visible\"},!0),t.find(\".layui-layer-max\").removeClass(\"layui-layer-maxmin\"),t.find(\".layui-layer-min\").show(),\"page\"===t.attr(\"type\")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i(\"#\"+l[0]+e);o.record(a),l.html.attr(\"layer-full\")||l.html.css(\"overflow\",\"hidden\").attr(\"layer-full\",e),clearTimeout(t),t=setTimeout(function(){var t=\"fixed\"===a.css(\"position\");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(\".layui-layer-min\").hide()},100)},r.title=function(e,t){var n=i(\"#\"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i(\"#\"+l[0]+e),n=t.attr(\"type\"),a=\"layer-anim-close\";if(t[0]){var s=\"layui-layer-wrap\",f=function(){if(n===o.type[1]&&\"object\"===t.attr(\"conType\")){t.children(\":not(.\"+l[5]+\")\").remove();for(var a=t.find(\".\"+s),r=0;r<2;r++)a.unwrap();a.css(\"display\",a.data(\"display\")).removeClass(s)}else{if(n===o.type[2])try{var f=i(\"#\"+l[4]+e)[0];f.contentWindow.document.write(\"\"),f.contentWindow.close(),t.find(\".\"+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML=\"\",t.remove()}\"function\"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data(\"isOutAnim\")&&t.addClass(\"layer-anim \"+a),i(\"#layui-layer-moves, #layui-layer-shade\"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr(\"minLeft\")&&(o.minIndex--,o.minLeft.push(t.attr(\"minLeft\"))),r.ie&&r.ie<10||!t.data(\"isOutAnim\")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i(\".\"+l[0]),function(){var t=i(this),n=e?t.attr(\"type\")===e:1;n&&r.close(t.attr(\"times\")),n=null})};var f=r.cache||{},c=function(e){return f.skin?\" \"+f.skin+\" \"+f.skin+\"-\"+e:\"\"};r.prompt=function(e,t){var a=\"\";if(e=e||{},\"function\"==typeof e&&(t=e),e.area){var o=e.area;a='style=\"width: '+o[0]+\"; height: \"+o[1]+';\"',delete e.area}var s,l=2==e.formType?'<textarea class=\"layui-layer-input\"'+a+\">\"+(e.value||\"\")+\"</textarea>\":function(){return'<input type=\"'+(1==e.formType?\"password\":\"text\")+'\" class=\"layui-layer-input\" value=\"'+(e.value||\"\")+'\">'}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:[\"&#x786E;&#x5B9A;\",\"&#x53D6;&#x6D88;\"],content:l,skin:\"layui-layer-prompt\"+c(\"prompt\"),maxWidth:n.width(),success:function(e){s=e.find(\".layui-layer-input\"),s.focus(),\"function\"==typeof f&&f(e)},resize:!1,yes:function(i){var n=s.val();\"\"===n?s.focus():n.length>(e.maxlength||500)?r.tips(\"&#x6700;&#x591A;&#x8F93;&#x5165;\"+(e.maxlength||500)+\"&#x4E2A;&#x5B57;&#x6570;\",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n=\"layui-this\",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:\"layui-layer-tab\"+c(\"tab\"),resize:!1,title:function(){var e=t.length,i=1,a=\"\";if(e>0)for(a='<span class=\"'+n+'\">'+t[0].title+\"</span>\";i<e;i++)a+=\"<span>\"+t[i].title+\"</span>\";return a}(),content:'<ul class=\"layui-layer-tabmain\">'+function(){var e=t.length,i=1,a=\"\";if(e>0)for(a='<li class=\"layui-layer-tabli '+n+'\">'+(t[0].content||\"no content\")+\"</li>\";i<e;i++)a+='<li class=\"layui-layer-tabli\">'+(t[i].content||\"no  content\")+\"</li>\";return a}()+\"</ul>\",success:function(t){var o=t.find(\".layui-layer-title\").children(),r=t.find(\".layui-layer-tabmain\").children();o.on(\"mousedown\",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),\"function\"==typeof e.change&&e.change(o)}),\"function\"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||\"img\";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg(\"&#x6CA1;&#x6709;&#x56FE;&#x7247;\")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr(\"layer-index\",e),u.push({alt:t.attr(\"alt\"),pid:t.attr(\"layer-pid\"),src:t.attr(\"layer-src\")||t.attr(\"src\"),thumb:t.attr(\"src\")})})};if(h(),0===u.length)return;if(n||p.on(\"click\",t.img,function(){var e=i(this),n=e.attr(\"layer-index\");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(\".layui-layer-imgprev\").on(\"click\",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(\".layui-layer-imgnext\").on(\"click\",function(e){e.preventDefault(),s.imgnext()}),i(document).on(\"keyup\",s.keyup)},s.loadi=r.load(1,{shade:!(\"shade\"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:\"layui-layer-photos\",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]<r[1]&&(a[0]=a[0]/r[1],a[1]=a[1]/r[1])}return[a[0]+\"px\",a[1]+\"px\"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:\".layui-layer-phimg img\",moveType:1,scrollbar:!1,moveOut:!0,isOutAnim:!1,skin:\"layui-layer-photos\"+c(\"photos\"),content:'<div class=\"layui-layer-phimg\"><img src=\"'+u[d].src+'\" alt=\"'+(u[d].alt||\"\")+'\" layer-pid=\"'+u[d].pid+'\"><div class=\"layui-layer-imgsee\">'+(u.length>1?'<span class=\"layui-layer-imguide\"><a href=\"javascript:;\" class=\"layui-layer-iconext layui-layer-imgprev\"></a><a href=\"javascript:;\" class=\"layui-layer-iconext layui-layer-imgnext\"></a></span>':\"\")+'<div class=\"layui-layer-imgbar\" style=\"display:'+(a?\"block\":\"\")+'\"><span class=\"layui-layer-imgtit\"><a href=\"javascript:;\">'+(u[d].alt||\"\")+\"</a><em>\"+s.imgIndex+\"/\"+u.length+\"</em></span></div></div></div>\",success:function(e,i){s.bigimg=e.find(\".layui-layer-phimg\"),s.imgsee=e.find(\".layui-layer-imguide,.layui-layer-imgbar\"),s.event(e),t.tab&&t.tab(u[d],e),\"function\"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off(\"keyup\",s.keyup)}},t))},function(){r.close(s.loadi),r.msg(\"&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;\",{time:3e4,btn:[\"&#x4E0B;&#x4E00;&#x5F20;\",\"&#x4E0D;&#x770B;&#x4E86;\"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i(\"html\"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define(\"jquery\",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t(\"layer\",r)})):\"function\"==typeof define&&define.amd?define([\"jquery\"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);"
  },
  {
    "path": "lib/layer/mobile/layer.js",
    "content": "/*! layer mobile-v2.0.0 Web弹层组件 MIT License  http://layer.layui.com/mobile  By 贤心 */\n ;!function(e){\"use strict\";var t=document,n=\"querySelectorAll\",i=\"getElementsByClassName\",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:\"scale\"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener(\"click\",function(e){t.call(this,e)},!1)};var r=0,o=[\"layui-m-layer\"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement(\"div\");e.id=s.id=o[0]+r,s.setAttribute(\"class\",o[0]+\" \"+o[0]+(n.type||0)),s.setAttribute(\"index\",r);var l=function(){var e=\"object\"==typeof n.title;return n.title?'<h3 style=\"'+(e?n.title[1]:\"\")+'\">'+(e?n.title[0]:n.title)+\"</h3>\":\"\"}(),c=function(){\"string\"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type=\"1\">'+n.btn[0]+\"</span>\",2===t&&(e='<span no type=\"0\">'+n.btn[1]+\"</span>\"+e),'<div class=\"layui-m-layerbtn\">'+e+\"</div>\"):\"\"}();if(n.fixed||(n.top=n.hasOwnProperty(\"top\")?n.top:100,n.style=n.style||\"\",n.style+=\" top:\"+(t.body.scrollTop+n.top)+\"px\"),2===n.type&&(n.content='<i></i><i class=\"layui-m-layerload\"></i><i></i><p>'+(n.content||\"\")+\"</p>\"),n.skin&&(n.anim=\"up\"),\"msg\"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?\"<div \"+(\"string\"==typeof n.shade?'style=\"'+n.shade+'\"':\"\")+' class=\"layui-m-layershade\"></div>':\"\")+'<div class=\"layui-m-layermain\" '+(n.fixed?\"\":'style=\"position:static;\"')+'><div class=\"layui-m-layersection\"><div class=\"layui-m-layerchild '+(n.skin?\"layui-m-layer-\"+n.skin+\" \":\"\")+(n.className?n.className:\"\")+\" \"+(n.anim?\"layui-m-anim-\"+n.anim:\"\")+'\" '+(n.style?'style=\"'+n.style+'\"':\"\")+\">\"+l+'<div class=\"layui-m-layercont\">'+n.content+\"</div>\"+c+\"</div></div></div>\",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute(\"index\"))}document.body.appendChild(s);var u=e.elem=a(\"#\"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute(\"type\");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i](\"layui-m-layerbtn\")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i](\"layui-m-layershade\")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:\"2.0\",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a(\"#\"+o[0]+e)[0];n&&(n.innerHTML=\"\",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],\"function\"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute(\"index\"))}},\"function\"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf(\"/\")+1);n.getAttribute(\"merge\")||document.head.appendChild(function(){var e=t.createElement(\"link\");return e.href=a+\"need/layer.css?2.0\",e.type=\"text/css\",e.rel=\"styleSheet\",e.id=\"layermcss\",e}())}()}(window);"
  },
  {
    "path": "lib/layer/mobile/need/layer.css",
    "content": ".layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px}"
  },
  {
    "path": "lib/layer/theme/default/layer.css",
    "content": ".layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+\"px\")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#3e62e2;background-color:#3e62e2;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:230px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:43px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}}"
  },
  {
    "path": "lib/template.js",
    "content": "/*! art-template@4.13.1 for browser | https://github.com/aui/art-template */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.template=t():e.template=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e[\"default\"]}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=4)}([function(e,t,n){\"use strict\";var r=n(6),i=n(2),o=n(22),s=function(e,t){t.onerror(e,t);var n=function(){return\"{Template Error}\"};return n.mappings=[],n.sourcesContent=[],n},a=function u(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};\"string\"!=typeof e?t=e:t.source=e,t=i.$extend(t),e=t.source,!0===t.debug&&(t.cache=!1,t.minimize=!1,t.compileDebug=!0),t.compileDebug&&(t.minimize=!1),t.filename&&(t.filename=t.resolveFilename(t.filename,t));var n=t.filename,a=t.cache,c=t.caches;if(a&&n){var l=c.get(n);if(l)return l}if(!e)try{e=t.loader(n,t),t.source=e}catch(m){var f=new o({name:\"CompileError\",path:n,message:\"template not found: \"+m.message,stack:m.stack});if(t.bail)throw f;return s(f,t)}var p=void 0,h=new r(t);try{p=h.build()}catch(f){if(f=new o(f),t.bail)throw f;return s(f,t)}var d=function(e,n){try{return p(e,n)}catch(f){if(!t.compileDebug)return t.cache=!1,t.compileDebug=!0,u(t)(e,n);if(f=new o(f),t.bail)throw f;return s(f,t)()}};return d.mappings=p.mappings,d.sourcesContent=p.sourcesContent,d.toString=function(){return p.toString()},a&&n&&c.set(n,d),d};a.Compiler=r,e.exports=a},function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t[\"default\"]=/((['\"])(?:(?!\\2|\\\\).|\\\\(?:\\r\\n|[\\s\\S]))*(\\2)?|`(?:[^`\\\\$]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{[^}]*\\}?)*\\}?)*(`)?)|(\\/\\/.*)|(\\/\\*(?:[^*]|\\*(?!\\/))*(\\*\\/)?)|(\\/(?!\\*)(?:\\[(?:(?![\\]\\\\]).|\\\\.)*\\]|(?![\\/\\]\\\\]).|\\\\.)+\\/(?:(?!\\s*(?:\\b|[\\u0080-\\uFFFF$\\\\'\"~({]|[+\\-!](?!=)|\\.?\\d))|[gmiyu]{1,5}\\b(?![\\u0080-\\uFFFF$\\\\]|\\s*(?:[+\\-*%&|^<>!=?({]|\\/(?![\\/*])))))|(0[xX][\\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][+-]?\\d+)?)|((?!\\d)(?:(?!\\s)[$\\w\\u0080-\\uFFFF]|\\\\u[\\da-fA-F]{4}|\\\\u\\{[\\da-fA-F]+\\})+)|(--|\\+\\+|&&|\\|\\||=>|\\.{3}|(?:[+\\-\\/%&|^]|\\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\\](){}])|(\\s+)|(^$|[\\s\\S])/g,t.matchToToken=function(e){var t={type:\"invalid\",value:e[0]};return e[1]?(t.type=\"string\",t.closed=!(!e[3]&&!e[4])):e[5]?t.type=\"comment\":e[6]?(t.type=\"comment\",t.closed=!!e[7]):e[8]?t.type=\"regex\":e[9]?t.type=\"number\":e[10]?t.type=\"name\":e[11]?t.type=\"punctuator\":e[12]&&(t.type=\"whitespace\"),t}},function(e,t,n){\"use strict\";function r(){this.$extend=function(e){return e=e||{},o(e,e instanceof r?e:this)}}var i=n(10),o=n(12),s=n(13),a=n(14),u=n(15),c=n(16),l=n(17),f=n(18),p=n(19),h=n(21),d=\"undefined\"==typeof window,m={source:null,filename:null,rules:[f,l],escape:!0,debug:!!d&&\"production\"!==process.env.NODE_ENV,bail:!0,cache:!0,minimize:!0,compileDebug:!1,resolveFilename:h,include:s,htmlMinifier:p,htmlMinifierOptions:{collapseWhitespace:!0,minifyCSS:!0,minifyJS:!0,ignoreCustomFragments:[]},onerror:a,loader:c,caches:u,root:\"/\",extname:\".art\",ignore:[],imports:i};r.prototype=m,e.exports=new r},function(e,t){},function(e,t,n){\"use strict\";var r=n(5),i=n(0),o=n(23),s=function(e,t){return t instanceof Object?r({filename:e},t):i({filename:e,source:t})};s.render=r,s.compile=i,s.defaults=o,e.exports=s},function(e,t,n){\"use strict\";var r=n(0),i=function(e,t,n){return r(e,n)(t)};e.exports=i},function(e,t,n){\"use strict\";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(7),u=n(9),c=\"$data\",l=\"$imports\",f=\"print\",p=\"include\",h=\"extend\",d=\"block\",m=\"$$out\",v=\"$$line\",g=\"$$blocks\",y=\"$$slice\",b=\"$$from\",w=\"$$options\",x=function(e,t){return Object.hasOwnProperty.call(e,t)},k=JSON.stringify,E=function(){function e(t){var n,s,a=this;o(this,e);var x=t.source,k=t.minimize,E=t.htmlMinifier;if(this.options=t,this.stacks=[],this.context=[],this.scripts=[],this.CONTEXT_MAP={},this.ignore=[c,l,w].concat(i(t.ignore)),this.internal=(n={},r(n,m,\"''\"),r(n,v,\"[0,0]\"),r(n,g,\"arguments[1]||{}\"),r(n,b,\"null\"),r(n,f,\"function(){var s=''.concat.apply('',arguments);\"+m+\"+=s;return s}\"),r(n,p,\"function(src,data){var s=\"+w+\".include(src,data||\"+c+\",arguments[2]||\"+g+\",\"+w+\");\"+m+\"+=s;return s}\"),r(n,h,\"function(from){\"+b+\"=from}\"),r(n,y,\"function(c,p,s){p=\"+m+\";\"+m+\"='';c();s=\"+m+\";\"+m+\"=p+s;return s}\"),r(n,d,\"function(){var a=arguments,s;if(typeof a[0]==='function'){return \"+y+\"(a[0])}else if(\"+b+\"){if(!\"+g+\"[a[0]]){\"+g+\"[a[0]]=\"+y+\"(a[1])}else{\"+m+\"+=\"+g+\"[a[0]]}}else{s=\"+g+\"[a[0]];if(typeof s==='string'){\"+m+\"+=s}else{s=\"+y+\"(a[1])}return s}}\"),n),this.dependencies=(s={},r(s,f,[m]),r(s,p,[m,w,c,g]),r(s,h,[b,p]),r(s,d,[y,b,m,g]),s),this.importContext(m),t.compileDebug&&this.importContext(v),k)try{x=E(x,t)}catch(T){}this.source=x,this.getTplTokens(x,t.rules,this).forEach(function(e){e.type===u.TYPE_STRING?a.parseString(e):a.parseExpression(e)})}return s(e,[{key:\"getTplTokens\",value:function(){return u.apply(undefined,arguments)}},{key:\"getEsTokens\",value:function(e){return a(e)}},{key:\"getVariables\",value:function(e){var t=!1;return e.filter(function(e){return\"whitespace\"!==e.type&&\"comment\"!==e.type}).filter(function(e){return\"name\"===e.type&&!t||(t=\"punctuator\"===e.type&&\".\"===e.value,!1)}).map(function(e){return e.value})}},{key:\"importContext\",value:function(e){var t=this,n=\"\",r=this.internal,i=this.dependencies,o=this.ignore,s=this.context,a=this.options,u=a.imports,f=this.CONTEXT_MAP;x(f,e)||-1!==o.indexOf(e)||(x(r,e)?(n=r[e],x(i,e)&&i[e].forEach(function(e){return t.importContext(e)})):n=\"$escape\"===e||\"$each\"===e||x(u,e)?l+\".\"+e:c+\".\"+e,f[e]=n,s.push({name:e,value:n}))}},{key:\"parseString\",value:function(e){var t=e.value;if(t){var n=m+\"+=\"+k(t);this.scripts.push({source:t,tplToken:e,code:n})}}},{key:\"parseExpression\",value:function(e){var t=this,n=e.value,r=e.script,i=r.output,o=this.options.escape,s=r.code;i&&(s=!1===o||i===u.TYPE_RAW?m+\"+=\"+r.code:m+\"+=$escape(\"+r.code+\")\");var a=this.getEsTokens(s);this.getVariables(a).forEach(function(e){return t.importContext(e)}),this.scripts.push({source:n,tplToken:e,code:s})}},{key:\"checkExpression\",value:function(e){for(var t=[[/^\\s*}[\\w\\W]*?{?[\\s;]*$/,\"\"],[/(^[\\w\\W]*?\\([\\w\\W]*?(?:=>|\\([\\w\\W]*?\\))\\s*{[\\s;]*$)/,\"$1})\"],[/(^[\\w\\W]*?\\([\\w\\W]*?\\)\\s*{[\\s;]*$)/,\"$1}\"]],n=0;n<t.length;){if(t[n][0].test(e)){var r;e=(r=e).replace.apply(r,i(t[n]));break}n++}try{return new Function(e),!0}catch(o){return!1}}},{key:\"build\",value:function(){var e=this.options,t=this.context,n=this.scripts,r=this.stacks,i=this.source,o=e.filename,s=e.imports,a=[],f=x(this.CONTEXT_MAP,h),d=0,y=function(e,t){var n=t.line,i=t.start,o={generated:{line:r.length+d+1,column:1},original:{line:n+1,column:i+1}};return d+=e.split(/\\n/).length-1,o},E=function(e){return e.replace(/^[\\t ]+|[\\t ]$/g,\"\")};r.push(\"function(\"+c+\"){\"),r.push(\"'use strict'\"),r.push(c+\"=\"+c+\"||{}\"),r.push(\"var \"+t.map(function(e){return e.name+\"=\"+e.value}).join(\",\")),e.compileDebug?(r.push(\"try{\"),n.forEach(function(e){e.tplToken.type===u.TYPE_EXPRESSION&&r.push(v+\"=[\"+[e.tplToken.line,e.tplToken.start].join(\",\")+\"]\"),a.push(y(e.code,e.tplToken)),r.push(E(e.code))}),r.push(\"}catch(error){\"),r.push(\"throw {\"+[\"name:'RuntimeError'\",\"path:\"+k(o),\"message:error.message\",\"line:\"+v+\"[0]+1\",\"column:\"+v+\"[1]+1\",\"source:\"+k(i),\"stack:error.stack\"].join(\",\")+\"}\"),r.push(\"}\")):n.forEach(function(e){a.push(y(e.code,e.tplToken)),r.push(E(e.code))}),f&&(r.push(m+\"=''\"),r.push(p+\"(\"+b+\",\"+c+\",\"+g+\")\")),r.push(\"return \"+m),r.push(\"}\");var T=r.join(\"\\n\");try{var O=new Function(l,w,\"return \"+T)(s,e);return O.mappings=a,O.sourcesContent=[i],O}catch(P){for(var $=0,j=0,_=0,S=void 0;$<n.length;){var C=n[$];if(!this.checkExpression(C.code)){j=C.tplToken.line,_=C.tplToken.start,S=C.code;break}$++}throw{name:\"CompileError\",path:o,message:P.message,line:j+1,column:_+1,source:i,generated:S,stack:P.stack}}}}]),e}();E.CONSTS={DATA:c,IMPORTS:l,PRINT:f,INCLUDE:p,EXTEND:h,BLOCK:d,OPTIONS:w,OUT:m,LINE:v,BLOCKS:g,SLICE:y,FROM:b,ESCAPE:\"$escape\",EACH:\"$each\"},e.exports=E},function(e,t,n){\"use strict\";var r=n(8),i=n(1)[\"default\"],o=n(1).matchToToken,s=function(e){return e.match(i).map(function(e){return i.lastIndex=0,o(i.exec(e))}).map(function(e){return\"name\"===e.type&&r(e.value)&&(e.type=\"keyword\"),e})};e.exports=s},function(e,t,n){\"use strict\";var r={\"abstract\":!0,await:!0,\"boolean\":!0,\"break\":!0,\"byte\":!0,\"case\":!0,\"catch\":!0,\"char\":!0,\"class\":!0,\"const\":!0,\"continue\":!0,\"debugger\":!0,\"default\":!0,\"delete\":!0,\"do\":!0,\"double\":!0,\"else\":!0,\"enum\":!0,\"export\":!0,\"extends\":!0,\"false\":!0,\"final\":!0,\"finally\":!0,\"float\":!0,\"for\":!0,\"function\":!0,\"goto\":!0,\"if\":!0,\"implements\":!0,\"import\":!0,\"in\":!0,\"instanceof\":!0,\"int\":!0,\"interface\":!0,\"let\":!0,\"long\":!0,\"native\":!0,\"new\":!0,\"null\":!0,\"package\":!0,\"private\":!0,\"protected\":!0,\"public\":!0,\"return\":!0,\"short\":!0,\"static\":!0,\"super\":!0,\"switch\":!0,\"synchronized\":!0,\"this\":!0,\"throw\":!0,\"transient\":!0,\"true\":!0,\"try\":!0,\"typeof\":!0,\"var\":!0,\"void\":!0,\"volatile\":!0,\"while\":!0,\"with\":!0,\"yield\":!0};e.exports=function(e){return r.hasOwnProperty(e)}},function(e,t,n){\"use strict\";function r(e){var t=new String(e.value);return t.line=e.line,t.start=e.start,t.end=e.end,t}function i(e,t,n){this.type=e,this.value=t,this.script=null,n?(this.line=n.line+n.value.split(/\\n/).length-1,this.line===n.line?this.start=n.end:this.start=n.value.length-n.value.lastIndexOf(\"\\n\")-1):(this.line=0,this.start=0),this.end=this.start+this.value.length}var o=function(e,t){for(var n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},o=[new i(\"string\",e)],s=0;s<t.length;s++)for(var a=t[s],u=a.test.ignoreCase?\"ig\":\"g\",c=new RegExp(a.test.source,u),l=0;l<o.length;l++){var f=o[l],p=o[l-1];if(\"string\"===f.type){for(var h=void 0,d=0,m=[],v=f.value;null!==(h=c.exec(v));)h.index>d&&(p=new i(\"string\",v.slice(d,h.index),p),m.push(p)),p=new i(\"expression\",h[0],p),h[0]=r(p),p.script=a.use.apply(n,h),m.push(p),d=h.index+h[0].length;d<v.length&&(p=new i(\"string\",v.slice(d),p),m.push(p)),o.splice.apply(o,[l,1].concat(m)),l+=m.length-1}}return o};o.TYPE_STRING=\"string\",o.TYPE_EXPRESSION=\"expression\",o.TYPE_RAW=\"raw\",o.TYPE_ESCAPE=\"escape\",e.exports=o},function(e,t,n){\"use strict\";(function(t){function n(e){return\"string\"!=typeof e&&(e=e===undefined||null===e?\"\":\"function\"==typeof e?n(e.call(e)):JSON.stringify(e)),e}function r(e){var t=\"\"+e,n=s.exec(t);if(!n)return e;var r=\"\",i=void 0,o=void 0,a=void 0;for(i=n.index,o=0;i<t.length;i++){switch(t.charCodeAt(i)){case 34:a=\"&#34;\";break;case 38:a=\"&#38;\";break;case 39:a=\"&#39;\";break;case 60:a=\"&#60;\";break;case 62:a=\"&#62;\";break;default:continue}o!==i&&(r+=t.substring(o,i)),o=i+1,r+=a}return o!==i?r+t.substring(o,i):r}/*! art-template@runtime | https://github.com/aui/art-template */\nvar i=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==t?t:{},o=Object.create(i),s=/[\"&'<>]/;o.$escape=function(e){return r(n(e))},o.$each=function(e,t){if(Array.isArray(e))for(var n=0,r=e.length;n<r;n++)t(e[n],n);else for(var i in e)t(e[i],i)},e.exports=o}).call(t,n(11))},function(e,t){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(r){\"object\"==typeof window&&(n=window)}e.exports=n},function(e,t,n){\"use strict\";var r=Object.prototype.toString,i=function(e){return null===e?\"Null\":r.call(e).slice(8,-1)},o=function s(e,t){var n=void 0,r=i(e);if(\"Object\"===r?n=Object.create(t||{}):\"Array\"===r&&(n=[].concat(t||[])),n){for(var o in e)Object.hasOwnProperty.call(e,o)&&(n[o]=s(e[o],n[o]));return n}return e};e.exports=o},function(e,t,n){\"use strict\";var r=function(e,t,r,i){var o=n(0);return i=i.$extend({filename:i.resolveFilename(e,i),bail:!0,source:null}),o(i)(t,r)};e.exports=r},function(e,t,n){\"use strict\";var r=function(e){console.error(e.name,e.message)};e.exports=r},function(e,t,n){\"use strict\";var r={__data:Object.create(null),set:function(e,t){this.__data[e]=t},get:function(e){return this.__data[e]},reset:function(){this.__data={}}};e.exports=r},function(e,t,n){\"use strict\";var r=\"undefined\"==typeof window,i=function(e){if(r){return n(3).readFileSync(e,\"utf8\")}var t=document.getElementById(e);return t.value||t.innerHTML};e.exports=i},function(e,t,n){\"use strict\";var r={test:/{{([@#]?)[ \\t]*(\\/?)([\\w\\W]*?)[ \\t]*}}/,use:function(e,t,n,i){var o=this,s=o.options,a=o.getEsTokens(i),u=a.map(function(e){return e.value}),c={},l=void 0,f=!!t&&\"raw\",p=n+u.shift(),h=function(t,n){console.warn((s.filename||\"anonymous\")+\":\"+(e.line+1)+\":\"+(e.start+1)+\"\\nTemplate upgrade: {{\"+t+\"}} -> {{\"+n+\"}}\")};switch(\"#\"===t&&h(\"#value\",\"@value\"),p){case\"set\":i=\"var \"+u.join(\"\").trim();break;case\"if\":i=\"if(\"+u.join(\"\").trim()+\"){\";break;case\"else\":var d=u.indexOf(\"if\");~d?(u.splice(0,d+1),i=\"}else if(\"+u.join(\"\").trim()+\"){\"):i=\"}else{\";break;case\"/if\":i=\"}\";break;case\"each\":l=r._split(a),l.shift(),\"as\"===l[1]&&(h(\"each object as value index\",\"each object value index\"),l.splice(1,1));i=\"$each(\"+(l[0]||\"$data\")+\",function(\"+(l[1]||\"$value\")+\",\"+(l[2]||\"$index\")+\"){\";break;case\"/each\":i=\"})\";break;case\"block\":l=r._split(a),l.shift(),i=\"block(\"+l.join(\",\").trim()+\",function(){\";break;case\"/block\":i=\"})\";break;case\"echo\":p=\"print\",h(\"echo value\",\"value\");case\"print\":case\"include\":case\"extend\":if(0!==u.join(\"\").trim().indexOf(\"(\")){l=r._split(a),l.shift(),i=p+\"(\"+l.join(\",\")+\")\";break}default:if(~u.indexOf(\"|\")){var m=a.reduce(function(e,t){var n=t.value,r=t.type;return\"|\"===n?e.push([]):\"whitespace\"!==r&&\"comment\"!==r&&(e.length||e.push([]),\":\"===n&&1===e[e.length-1].length?h(\"value | filter: argv\",\"value | filter argv\"):e[e.length-1].push(t)),e},[]).map(function(e){return r._split(e)});i=m.reduce(function(e,t){var n=t.shift();return t.unshift(e),\"$imports.\"+n+\"(\"+t.join(\",\")+\")\"},m.shift().join(\" \").trim())}f=f||\"escape\"}return c.code=i,c.output=f,c},_split:function(e){e=e.filter(function(e){var t=e.type;return\"whitespace\"!==t&&\"comment\"!==t});for(var t=0,n=e.shift(),r=/\\]|\\)/,i=[[n]];t<e.length;){var o=e[t];\"punctuator\"===o.type||\"punctuator\"===n.type&&!r.test(n.value)?i[i.length-1].push(o):i.push([o]),n=o,t++}return i.map(function(e){return e.map(function(e){return e.value}).join(\"\")})}};e.exports=r},function(e,t,n){\"use strict\";var r={test:/<%(#?)((?:==|=#|[=-])?)[ \\t]*([\\w\\W]*?)[ \\t]*(-?)%>/,use:function(e,t,n,r){return n={\"-\":\"raw\",\"=\":\"escape\",\"\":!1,\"==\":\"raw\",\"=#\":\"raw\"}[n],t&&(r=\"/*\"+r+\"*/\",n=!1),{code:r,output:n}}};e.exports=r},function(e,t,n){\"use strict\";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var i=\"undefined\"==typeof window,o=function(e,t){if(i){var o,s=n(20).minify,a=t.htmlMinifierOptions,u=t.rules.map(function(e){return e.test});(o=a.ignoreCustomFragments).push.apply(o,r(u)),e=s(e,a)}return e};e.exports=o},function(e,t){!function(e){e.noop=function(){}}(\"object\"==typeof e&&\"object\"==typeof e.exports?e.exports:window)},function(e,t,n){\"use strict\";var r=\"undefined\"==typeof window,i=/^\\.+\\//,o=function(e,t){if(r){var o=n(3),s=t.root,a=t.extname;if(i.test(e)){var u=t.filename,c=!u||e===u,l=c?s:o.dirname(u);e=o.resolve(l,e)}else e=o.resolve(s,e);o.extname(e)||(e+=a)}return e};e.exports=o},function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function o(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){var t=e.name,n=e.source,r=e.path,i=e.line,o=e.column,s=e.generated,a=e.message;if(!n)return a;var u=n.split(/\\n/),c=Math.max(i-3,0),l=Math.min(u.length,i+3),f=u.slice(c,l).map(function(e,t){var n=t+c+1;return(n===i?\" >> \":\"    \")+n+\"| \"+e}).join(\"\\n\");return(r||\"anonymous\")+\":\"+i+\":\"+o+\"\\n\"+f+\"\\n\\n\"+t+\": \"+a+(s?\"\\n   generated: \"+s:\"\")}var a=function(e){function t(e){r(this,t);var n=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e.message));return n.name=\"TemplateError\",n.message=s(e),Error.captureStackTrace&&Error.captureStackTrace(n,n.constructor),n}return o(t,e),t}(Error);e.exports=a},function(e,t,n){\"use strict\";e.exports=n(2)}])});"
  },
  {
    "path": "speed.json",
    "content": "[\t\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"911 GT3RS\",\n\t\t\"BID\": \"BV1fA411g7RK\",\n\t\t\"Btitle\": \"300万的911 开起来像“小马力前驱车”？-- 911 GT3RS\",\n\t\t\"hp\": \"570\",\n\t\t\"hp_content\": \"570\",\n\t\t\"Powertrain\": \"4.0/7DCT\",\n\t\t\"speed\": \"52.34\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2R\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.29\",\n\t\t\"limit\": \"164.96\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"226.80\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BMW M4\",\n\t\t\"BID\": \"BV1ES4y1z7yC\",\n\t\t\"Btitle\": \"卖车前，复盘“国产魔王M4”的改装思路...\",\n\t\t\"hp\": \"521\",\n\t\t\"hp_content\": \"521\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"53.52\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"F200\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"163.465\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"90.68\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BMW M4\",\n\t\t\"BID\": \"BV1oU4y1d7PB\",\n\t\t\"Btitle\": \"【国产魔王计划】圈速测试，我差点哭了...\",\n\t\t\"hp\": \"521\",\n\t\t\"hp_content\": \"521\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"54.77\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"TD\",\n\t\t\"temperature\": \"0\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"159.49\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"90.68\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"911 S\",\n\t\t\"BID\": \"BV16y4y167AL\",\n\t\t\"Btitle\": \"911=赛场上的爸爸？\",\n\t\t\"hp\": \"450\",\n\t\t\"hp_content\": \"450\",\n\t\t\"Powertrain\": \"3.0T/8DCT\",\n\t\t\"speed\": \"54.83\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0 PZ4\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.28\",\n\t\t\"limit\": \"163\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"147.30\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BMW M4\",\n\t\t\"BID\": \"BV1kq4y1n7VB\",\n\t\t\"Btitle\": \"M4换上CUP2能干911？-- 米其林全系运动胎指南\",\n\t\t\"hp\": \"431\",\n\t\t\"hp_content\": \"431\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"55.43\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup 2C\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.49\",\n\t\t\"limit\": \"155.49\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"90.68\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"F8 Tributo\",\n\t\t\"BID\": \"BV1UQ4y1Q7CX\",\n\t\t\"Btitle\": \"为了你们，我不能买法拉利了……\",\n\t\t\"hp\": \"720\",\n\t\t\"hp_content\": \"720\",\n\t\t\"Powertrain\": \"3.9T/7DCT\",\n\t\t\"speed\": \"55.49\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.72\",\n\t\t\"limit\": \"166.44\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"305.70\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"718\",\n\t\t\"BID\": \"BV1Ut4y1s7ZA\",\n\t\t\"Btitle\": \"370马力丐版718，锤爆911？\",\n\t\t\"hp\": \"370\",\n\t\t\"hp_content\": \"250+150\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"55.69\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"CUP2R\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.30\",\n\t\t\"limit\": \"149.159\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"54.50\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"911 GTS\",\n\t\t\"BID\": \"BV1qi4y1c7kK\",\n\t\t\"Btitle\": \"保时捷911，推头还是甩尾？\",\n\t\t\"hp\": \"450\",\n\t\t\"hp_content\": \"450\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"55.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"24\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.6\",\n\t\t\"limit\": \"157\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"146.00\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"E92 M3\",\n\t\t\"BID\": \"BV1JK4y177cW\",\n\t\t\"Btitle\": \"自吸老宝马怎么改，能赢新款M4？\",\n\t\t\"hp\": \"420\",\n\t\t\"hp_content\": \"420\",\n\t\t\"Powertrain\": \"4.0/7DCT\",\n\t\t\"speed\": \"55.80\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"DH\",\n\t\t\"temperature\": \"11\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.24\",\n\t\t\"limit\": \"152\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"110.50\"\n    },\n    {\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"丰田86\",\n\t\t\"BID\": \"BV13L411e7Kc\",\n\t\t\"Btitle\": \"丰田，比兰博基尼快？\",\n\t\t\"hp\": \"233\",\n\t\t\"hp_content\": \"233\",\n\t\t\"Powertrain\": \"2.0L/6MT\",\n\t\t\"speed\": \"55.88\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"TD\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.21\",\n\t\t\"limit\": \"139.52\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.90\"\n    },\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"BMW M2C\",\n\t\t\"BID\": \"BV1UZ4y1y7qE\",\n\t\t\"Btitle\": \"半热熔胎M2C跑不过街胎M4？\",\n\t\t\"hp\": \"410\",\n\t\t\"hp_content\": \"410\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"55.95\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"TR\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"155.127\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"64.38\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"Huracan EVO\",\n\t\t\"BID\": \"BV1T44y1P7fP\",\n\t\t\"Btitle\": \"喜欢本田的高转？不如买兰博基尼！\",\n\t\t\"hp\": \"611\",\n\t\t\"hp_content\": \"611\",\n\t\t\"Powertrain\": \"5.2/7DCT\",\n\t\t\"speed\": \"55.98\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.60\",\n\t\t\"limit\": \"162.601\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"254.00\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"Cayman GTS\",\n\t\t\"BID\": \"BV1s44y1V7aS\",\n\t\t\"Btitle\": \"40万，约等于超跑！\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"3.4/7DCT\",\n\t\t\"speed\": \"56.14\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"11\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.45\",\n\t\t\"limit\": \"150.08\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"87.5\"\n\t},\n    {\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"奥迪RS3\",\n\t\t\"BID\": \"BV13L4y1g72v\",\n\t\t\"Btitle\": \"500马力+热熔胎，奥迪RS3成为赛道新王？\",\n\t\t\"hp\": \"530\",\n\t\t\"hp_content\": \"530\",\n\t\t\"Powertrain\": \"2.5T/7DCT\",\n\t\t\"speed\": \"56.25\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"Z214\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.67\",\n\t\t\"limit\": \"153.39\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"51.38\"\n    },   \n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"迈锐宝XL\",\n\t\t\"BID\": \"BV1R44y1b7sf\",\n\t\t\"Btitle\": \"【迈锐宝XL进化3.0】15W我花完了，这TCR你就说要不要吧！\",\n\t\t\"hp\": \"257\",\n\t\t\"hp_content\": \"257\",\n\t\t\"Powertrain\": \"2.0T/9AT\",\n\t\t\"speed\": \"56.29\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"DM\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.21\",\n\t\t\"limit\": \"141.09\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"21.99\"\n    },\n    {\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"奥迪RS4\",\n\t\t\"BID\": \"BV1NL411F79s\",\n\t\t\"Btitle\": \"四驱打爆一切？旅行车键盘值0分\",\n\t\t\"hp\": \"450\",\n\t\t\"hp_content\": \"450\",\n\t\t\"Powertrain\": \"2.9T/8AT\",\n\t\t\"speed\": \"56.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SC6\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.93\",\n\t\t\"limit\": \"150.22\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"82.88\"\n    },      \n\t{\n \t\t\"year\":\"2021\",\n \t\t\"car\": \"G82 M4\",\n\t\t\"BID\": \"BV1pP4y1x7dg\",\n\t\t\"Btitle\": \"大80马力，新M4动力却输给老M4？\",\n\t\t\"hp\": \"510\",\n\t\t\"hp_content\": \"510\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"56.38\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.34\",\n\t\t\"limit\": \"154.03\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"87.99\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BMW M4\",\n\t\t\"BID\": \"BV1pP4y1x7dg？\",\n\t\t\"Btitle\": \"大80马力，新M4动力却输给老M4？\",\n\t\t\"hp\": \"431\",\n\t\t\"hp_content\": \"431\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"56.45\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S*\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.49\",\n\t\t\"limit\": \"152.19\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"90.68\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"BMW M2\",\n\t\t\"BID\": \"BV1zX4y137RJ\",\n\t\t\"Btitle\": \"改装30W，宝马M2 vs M3 赛道大战~\",\n\t\t\"hp\": \"410\",\n\t\t\"hp_content\": \"410\",\n\t\t\"Powertrain\": \"3.0/7DCT\",\n\t\t\"speed\": \"56.60\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"AR-1\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.3\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"59.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"C43\",\n\t\t\"BID\": \"BV1e44y1V74o\",\n\t\t\"Btitle\": \"四驱能让C43干翻C63么？\",\n\t\t\"hp\": \"390\",\n\t\t\"hp_content\": \"390\",\n\t\t\"Powertrain\": \"3.0T/9AT\",\n\t\t\"speed\": \"56.76\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"CUP2C\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.25\",\n\t\t\"limit\": \"149.19\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"57.38\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"BMW M2C\",\n\t\t\"BID\": \"BV1tA411N7ot\",\n\t\t\"Btitle\": \"换胎快1秒？键盘车神の终极改装~\",\n\t\t\"hp\": \"410\",\n\t\t\"hp_content\": \"410\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"56.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup 2\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.2\",\n\t\t\"limit\": \"154\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"63.38\"\n\t},\n\t{\n\t  \"year\":\"2023\",\n\t  \"car\": \"718 GT4\",\n\t  \"BID\": \"BV19o4y1B7XG\",\n\t  \"Btitle\": \"250万，买一台手动挡718？\",\n\t  \"hp\": \"414\",\n\t  \"hp_content\": \"414\",\n\t  \"Powertrain\": \"4.0/6MT\",\n\t  \"speed\": \"56.81\",\n\t  \"mods\": \"0\",\n\t  \"tyre\": \"Race 2\",\n\t  \"temperature\": \"14\",\n\t  \"lv\": \"S\",\n\t  \"time\": \"\",\n\t  \"accelerate\": \"--\",\n\t  \"limit\": \"154.26\",\n\t  \"powerType\":\"0\",\n\t  \"producer\":\"2\",\n\t  \"nationality\":\"DE\",\n\t  \"price\":\"250.00\"\n\t },\n\t{\n\t    \"year\":\"2018\",\n\t\t\"car\": \"BMW M3\",\n\t\t\"BID\": \"BV1zX4y137RJ\",\n\t\t\"Btitle\": \"改装30W，宝马M2 vs M3 赛道大战~\",\n\t\t\"hp\": \"550\",\n\t\t\"hp_content\": \"450+100\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"56.90\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.1\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"108.89\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"GT-R\",\n\t\t\"BID\": \"BV1nK4y1m7pg\",\n\t\t\"Btitle\": \"虽然我的GTR车头很重，但是入弯却不推头～\",\n\t\t\"hp\": \"555\",\n\t\t\"hp_content\": \"555\",\n\t\t\"Powertrain\": \"3.8T/6DCT\",\n\t\t\"speed\": \"56.90\",\n\t\t\"mods\": \"-1\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.5\",\n\t\t\"limit\": \"159\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"162.80\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"伊兰特N\",\n\t\t\"BID\": \"BV1MZ4y1D7w9\",\n\t\t\"Btitle\": \"10000块四条胎，为了伊兰特N我尽力了！\",\n\t\t\"hp\": \"280\",\n\t\t\"hp_content\": \"280\",\n\t\t\"Powertrain\": \"2.0T/8DCT\",\n\t\t\"speed\": \"56.91\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.67\",\n\t\t\"limit\": \"143.75\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"--\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"奥迪S3\",\n\t\t\"BID\": \"BV1b34y1C7PY\",\n\t\t\"Btitle\": \"米其林CUP2C，卫途01，韩泰Z214对比测评，奥迪S3不推头了？\",\n\t\t\"hp\": \"290\",\n\t\t\"hp_content\": \"290\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"56.98\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"214\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.04\",\n\t\t\"limit\": \"144.02\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"36.38\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"86\",\n\t\t\"BID\": \"BV1zS4y1c7cL\",\n\t\t\"Btitle\": \"2.0T内战，丰田SUPRA操控吊打丰田86？\",\n\t\t\"hp\": \"240\",\n\t\t\"hp_content\": \"240\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"57.05\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"A052\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.62\",\n\t\t\"limit\": \"143.748\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"24.98\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV1wu411g7bK\",\n\t\t\"Btitle\": \"13000公里，我把影豹R带去了纽北~\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"57.13\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"A052\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"144\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"141.13\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"13.80\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"Supra\",\n\t\t\"BID\": \"BV1bU4y1V7Cf\",\n\t\t\"Btitle\": \"SUPRA赛道吊打M-Power全系！\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"57.18\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS\",\n\t\t\"temperature\": \"35\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.3\",\n\t\t\"limit\": \"147.37\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"62.90\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"X4M\",\n\t\t\"BID\": \"BV1GF411h7Xk\",\n\t\t\"Btitle\": \"Jacky说这玩意能赢我M4？——X4 M赛道测评\",\n\t\t\"hp\": \"510\",\n\t\t\"hp_content\": \"510\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"57.19\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SC6\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.9\",\n\t\t\"limit\": \"151.967\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"92.59\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"BMW M4 ZCP\",\n\t\t\"BID\": \"BV1mz4y1o7kP\",\n\t\t\"Btitle\": \"千古谜题：宝马M4 vs M2C，谁厉害？\",\n\t\t\"hp\": \"450\",\n\t\t\"hp_content\": \"450\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"57.24\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.5\",\n\t\t\"limit\": \"150.42\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"89.99\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BMW M4\",\n\t\t\"BID\": \"BV1Eo4y1k7PD\",\n\t\t\"Btitle\": \"教主卖车？F82 M4超长伪干货全面详解。（对比C63 GIULIA QV RS5 911 G82）\",\n\t\t\"hp\": \"431\",\n\t\t\"hp_content\": \"431\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"57.33\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.3\",\n\t\t\"limit\": \"153.79\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"90.68\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"A45s\",\n\t\t\"BID\": \"BV1d3411z7rd\",\n\t\t\"Btitle\": \"A 45 S比A 35强多少，能值70W？\",\n\t\t\"hp\": \"421\",\n\t\t\"hp_content\": \"421\",\n\t\t\"Powertrain\": \"2.0T/8DCT\",\n\t\t\"speed\": \"57.36\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"24\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.99\",\n\t\t\"limit\": \"150.29\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"57.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"CT5 2.7\",\n\t\t\"BID\": \"BV1pf4y1u7ds\",\n\t\t\"Btitle\": \"全国最强CT5，2.7T能打几台宝马3系？\",\n\t\t\"hp\": \"325\",\n\t\t\"hp_content\": \"325\",\n\t\t\"Powertrain\": \"2.7T/10AT\",\n\t\t\"speed\": \"57.38\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"CUP2R\",\n\t\t\"temperature\": \"19\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.40\",\n\t\t\"limit\": \"145.06\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"33.97\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"Focus RS\",\n\t\t\"BID\": \"BV1vJ411n7TY\",\n\t\t\"Btitle\": \"【干货】如何用“4550块”爆改一台福克斯RS，赛道锤爆A45/EVO/S3...\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.3T/6MT\",\n\t\t\"speed\": \"57.40\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"米其林Slick\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"144\",\n\t\t\"accelerate\": \"5.0\",\n\t\t\"limit\": \"144\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"37.88\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"奥迪S3\",\n\t\t\"BID\": \"BV1b34y1C7PY\",\n\t\t\"Btitle\": \"米其林CUP2C，卫途01，韩泰Z214对比测评，奥迪S3不推头了？\",\n\t\t\"hp\": \"290\",\n\t\t\"hp_content\": \"290\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"57.56\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.04\",\n\t\t\"limit\": \"141.90\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"36.38\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"Model 3P\",\n\t\t\"BID\": \"BV1YF411u7HW\",\n\t\t\"Btitle\": \"真正的M3，Model 3P到底强在哪？\",\n\t\t\"hp\": \"486\",\n\t\t\"hp_content\": \"486\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"57.58\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.64\",\n\t\t\"limit\": \"148.176\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"36.79\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"BMW 1M\",\n\t\t\"BID\": \"BV1Gg411L7cQ\",\n\t\t\"Btitle\": \"开3000km来北京 改装1M赛道屠榜M全系？\",\n\t\t\"hp\": \"400\",\n\t\t\"hp_content\": \"400\",\n\t\t\"Powertrain\": \"3.0T/6MT\",\n\t\t\"speed\": \"57.63\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup 2\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.65\",\n\t\t\"limit\": \"148.56\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"59.8\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"伊兰特N\",\n\t\t\"BID\": \"BV1TL411j7X5\",\n\t\t\"Btitle\": \"M Power不行，N Power行！——伊兰特N赛道测试\",\n\t\t\"hp\": \"280\",\n\t\t\"hp_content\": \"280\",\n\t\t\"Powertrain\": \"2.0T/8DCT\",\n\t\t\"speed\": \"57.68\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S(HN)\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.67\",\n\t\t\"limit\": \"145.83\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"--\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅 进化6\",\n\t\t\"BID\": \"BV1oM41127vJ\",\n\t\t\"Btitle\": \"锻造菱帅王，杀爆新手村！\",\n\t\t\"hp\": \"140\",\n\t\t\"hp_content\": \"100+40\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"57.71\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"TD\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.88\",\n\t\t\"limit\": \"130.10\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"迈锐宝XL\",\n\t\t\"BID\": \"BV1VU4y1N7T8\",\n\t\t\"Btitle\": \"【迈锐宝XL进化2.0】刷ECU，干掉宝马M2C！\",\n\t\t\"hp\": \"257\",\n\t\t\"hp_content\": \"257\",\n\t\t\"Powertrain\": \"2.0T/9AT\",\n\t\t\"speed\": \"57.77\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.11\",\n\t\t\"limit\": \"141.06\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"20.49\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"奥迪S3\",\n\t\t\"BID\": \"BV1b34y1C7PY\",\n\t\t\"Btitle\": \"米其林CUP2C，卫途01，韩泰Z214对比测评，奥迪S3不推头了？\",\n\t\t\"hp\": \"290\",\n\t\t\"hp_content\": \"290\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"57.78\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"卫途01\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.04\",\n\t\t\"limit\": \"141.02\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"36.38\"\n\t},\n\t{\n\t  \"year\":\"2022\",\n\t  \"car\": \"Giulia QV\",\n\t  \"BID\": \"BV15g411v7uF\",\n\t  \"Btitle\": \"四叶草，在哪快？\",\n\t  \"hp\": \"510\",\n\t  \"hp_content\": \"510\",\n\t  \"Powertrain\": \"2.9T/8AT\",\n\t  \"speed\": \"57.80\",\n\t  \"mods\": \"1\",\n\t  \"tyre\": \"CUP2 C\",\n\t  \"temperature\": \"36\",\n\t  \"lv\": \"B\",\n\t  \"time\": \"\",\n\t  \"accelerate\": \"4.33\",\n\t  \"limit\": \"153.06\",\n\t  \"powerType\":\"0\",\n\t  \"producer\":\"2\",\n\t  \"nationality\":\"IT\",\n\t  \"price\":\"90.28\"\n\t },\n\t {\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+\",\n\t\t\"BID\": \"BV1oH4y1S7zD\",\n\t\t\"Btitle\": \"南北最强的领克03+，谁才是天下第一？\",\n\t\t\"hp\": \"289\",\n\t\t\"hp_content\": \"289\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"57.85\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"TR\",\n\t\t\"temperature\": \"40\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.91\",\n\t\t\"limit\": \"139.89\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"22.28\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"极氪001\",\n\t\t\"BID\": \"BV1Zc411H7gx\",\n\t\t\"Btitle\": \"国产电车，超越特斯拉？\",\n\t\t\"hp\": \"544\",\n\t\t\"hp_content\": \"544\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"57.90\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.78\",\n\t\t\"limit\": \"153.22\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"38.60\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+Cyan\",\n\t\t\"BID\": \"BV1oH4y1S7zD\",\n\t\t\"Btitle\": \"南北最强的领克03+，谁才是天下第一？\",\n\t\t\"hp\": \"289\",\n\t\t\"hp_content\": \"289\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"57.93\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"TR\",\n\t\t\"temperature\": \"40\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.41\",\n\t\t\"limit\": \"138.93\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"BMW M2C\",\n\t\t\"BID\": \"BV1mz4y1o7kP\",\n\t\t\"Btitle\": \"千古谜题：宝马M4 vs M2C，谁厉害？\",\n\t\t\"hp\": \"410\",\n\t\t\"hp_content\": \"410\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"57.95\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.5\",\n\t\t\"limit\": \"148.42\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"64.38\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV1wN4y197AG\",\n\t\t\"Btitle\": \"完全体影豹R，强无敌！\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"57.95\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"卫途02\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"139.73\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"15.80\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"MX-5 ND\",\n\t\t\"BID\": \"BV1N14y1s7qE\",\n\t\t\"Btitle\": \"超级MX5，BRZ杀手？\",\n\t\t\"hp\": \"260\",\n\t\t\"hp_content\": \"260\",\n\t\t\"Powertrain\": \"2.0/6AT\",\n\t\t\"speed\": \"57.95\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"A052\",\n\t\t\"temperature\": \"19\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.87\",\n\t\t\"limit\": \"141.39\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"33.9\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"Kona N\",\n\t\t\"BID\": \"BV1Mb4y1H7xA\",\n\t\t\"Btitle\": \"比伊兰特N更纯粹更好玩，Kona N赛道测试\",\n\t\t\"hp\": \"280\",\n\t\t\"hp_content\": \"280\",\n\t\t\"Powertrain\": \"2.0T/8DCT\",\n\t\t\"speed\": \"58.25\",\n\t\t\"mods\": \"-1\",\n\t\t\"tyre\": \"P0 PZ4\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.77\",\n\t\t\"limit\": \"142.27\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"--\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"思域\",\n\t\t\"BID\": \"BV1NK4y1A7UW\",\n\t\t\"Btitle\": \"国货之光领克03+被东瀛烂仔暴打？\",\n\t\t\"hp\": \"225\",\n\t\t\"hp_content\": \"225\",\n\t\t\"Powertrain\": \"1.5T/6MT\",\n\t\t\"speed\": \"58.26\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"AR-1/MC6\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.8\",\n\t\t\"limit\": \"139.34\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"12.99\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"Model YP\",\n\t\t\"BID\": \"BV17a411a76E\",\n\t\t\"Btitle\": \"刷新SUV记录？Model YP赛道测试\",\n\t\t\"hp\": \"486\",\n\t\t\"hp_content\": \"486\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"58.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.02\",\n\t\t\"limit\": \"147.40\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"41.79\"\n\t},\n\t{\n\t\t\"year\":\"2010\",\n\t\t\"car\": \"C63\",\n\t\t\"BID\": \"BV1r44y167gi\",\n\t\t\"Btitle\": \"30多万的老奔驰-AMG C 63，操控堪比宝马M2C\",\n\t\t\"hp\": \"487\",\n\t\t\"hp_content\": \"487\",\n\t\t\"Powertrain\": \"6.2/7AT\",\n\t\t\"speed\": \"58.34\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.4\",\n\t\t\"limit\": \"-\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"133.80\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"Golf GTI\",\n\t\t\"BID\": \"BV1JA411G7WK\",\n\t\t\"Btitle\": \"“GTI”吊打思域，成为键盘车神の前驱新神？\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"58.35\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"AR-1\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.8\",\n\t\t\"limit\": \"140.45\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"23.99\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1L5411m7bj\",\n\t\t\"Btitle\": \"我把丰田86开着火了...\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"58.57\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"卫途02\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.63\",\n\t\t\"limit\": \"134.892\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.98\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"718\",\n\t\t\"BID\": \"BV1cX4y1G7EH\",\n\t\t\"Btitle\": \"保时捷中置跑车内战，自然吸气6缸 vs 涡轮增压4缸~ | 新老Cayman谁更强？\",\n\t\t\"hp\": \"250\",\n\t\t\"hp_content\": \"250\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"58.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.6\",\n\t\t\"limit\": \"140\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"54.5\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"A35\",\n\t\t\"BID\": \"BV1rv411K7fD\",\n\t\t\"Btitle\": \"35块买个签名，A 35就是AMG！\",\n\t\t\"hp\": \"306\",\n\t\t\"hp_content\": \"306\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"58.61\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"24\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.22\",\n\t\t\"limit\": \"142.67\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"39.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI 8\",\n\t\t\"BID\": \"BV1sm4y1o7Xs\",\n\t\t\"Btitle\": \"30000块改装GTI，CYAN和N都是辣鸡？\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"58.61\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"2\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.5\",\n\t\t\"limit\": \"139.40\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"BRZ\",\n\t\t\"BID\": \"BV1MR4y1A7WS\",\n\t\t\"Btitle\": \"全国首提二手新BRZ...\",\n\t\t\"hp\": \"234\",\n\t\t\"hp_content\": \"234\",\n\t\t\"Powertrain\": \"2.4/6MT\",\n\t\t\"speed\": \"58.66\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.63\",\n\t\t\"limit\": \"137.578\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"30.88\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"Cayman 981\",\n\t\t\"BID\": \"BV1cX4y1G7EH\",\n\t\t\"Btitle\": \"保时捷中置跑车内战，自然吸气6缸 vs 涡轮增压4缸~ | 新老Cayman谁更强？\",\n\t\t\"hp\": \"275\",\n\t\t\"hp_content\": \"275\",\n\t\t\"Powertrain\": \"2.7/7DCT\",\n\t\t\"speed\": \"58.70\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup 2\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.6\",\n\t\t\"limit\": \"139\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"72.7\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅 进化6\",\n\t\t\"BID\": \"BV1oM41127vJ\",\n\t\t\"Btitle\": \"锻造菱帅王，杀爆新手村！\",\n\t\t\"hp\": \"140\",\n\t\t\"hp_content\": \"140\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"58.77\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"卫途01\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.88\",\n\t\t\"limit\": \"126.41\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"Supra\",\n\t\t\"BID\": \"BV1zS4y1c7cL\",\n\t\t\"Btitle\": \"2.0T内战，丰田SUPRA操控吊打丰田86？\",\n\t\t\"hp\": \"197\",\n\t\t\"hp_content\": \"197\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"58.84\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS\",\n\t\t\"temperature\": \"4\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.34\",\n\t\t\"limit\": \"134.845\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"49.60\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"Benz A45\",\n\t\t\"BID\": \"BV1u64y1x757\",\n\t\t\"Btitle\": \"AMG A 45的真实实力，领克03+怎么比\",\n\t\t\"hp\": \"381\",\n\t\t\"hp_content\": \"381\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"58.86\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"SC6\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.28S\",\n\t\t\"limit\": \"146.72\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"49.80\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"思域Type-R\",\n\t\t\"BID\": \"BV1az4y1p7ct\",\n\t\t\"Btitle\": \"本田TYPE-R没有领克快，是人性的扭曲还是被充值了...\",\n\t\t\"hp\": \"300\",\n\t\t\"hp_content\": \"300\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"58.95\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.72\",\n\t\t\"limit\": \"142.71\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"40.20\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"Focus RS\",\n\t\t\"BID\": \"av78690283\",\n\t\t\"Btitle\": \"特斯拉Model3 vs 福克斯RS，教主的战车终于出现了！\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.3T/6MT\",\n\t\t\"speed\": \"58.96\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PSS\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"138\",\n\t\t\"accelerate\": \"5.0\",\n\t\t\"limit\": \"138\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"40.18\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"小鹏P7\",\n\t\t\"BID\": \"BV1Yq4y1E7Y8\",\n\t\t\"Btitle\": \"小鹏P7能刷到1000ps么？\",\n\t\t\"hp\": \"430\",\n\t\t\"hp_content\": \"430\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"59.00\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.3\",\n\t\t\"limit\": \"148.20\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"34.99\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1Qy4y1g79T\",\n\t\t\"Btitle\": \"开一台改装“CT4”干掉全场“M2C”是什么体验？-- CT4改装分析\",\n\t\t\"hp\": \"270\",\n\t\t\"hp_content\": \"270\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"59.10\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"Cup 2\",\n\t\t\"temperature\": \"21\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.22\",\n\t\t\"limit\": \"140.24\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2010\",\n\t\t\"car\": \"Z4\",\n\t\t\"BID\": \"BV1P5411R7zs\",\n\t\t\"Btitle\": \"轻松600马力神车，N54宝马Z4赛道测试\",\n\t\t\"hp\": \"306\",\n\t\t\"hp_content\": \"306\",\n\t\t\"Powertrain\": \"3.0T/7DCT\",\n\t\t\"speed\": \"59.19\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"卫途02\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.53\",\n\t\t\"limit\": \"141.31\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"78.80\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"奥迪S4\",\n\t\t\"BID\": \"BV1KC4y1x7bk\",\n\t\t\"Btitle\": \"V6+四驱=神，你想打几台86？--奥迪S4\",\n\t\t\"hp\": \"354\",\n\t\t\"hp_content\": \"354\",\n\t\t\"Powertrain\": \"3T/8AT\",\n\t\t\"speed\": \"59.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.5\",\n\t\t\"limit\": \"141\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"45.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"CT5\",\n\t\t\"BID\": \"BV1Gt4y1B7De\",\n\t\t\"Btitle\": \"凯迪拉克CT5干掉宝马330i，要花多少钱？\",\n\t\t\"hp\": \"241\",\n\t\t\"hp_content\": \"241\",\n\t\t\"Powertrain\": \"2.0T/10AT\",\n\t\t\"speed\": \"59.50\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup 2\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"129\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"33.97\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"03+Cyan\",\n\t\t\"BID\": \"BV1Aa411B7HM\",\n\t\t\"Btitle\": \"领克03+Cyan徒有其表？值么？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"59.54\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"2\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.10\",\n\t\t\"limit\": \"134.06\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"25.68\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"领克03+\",\n\t\t\"BID\": \"BV1A84y1c7fR\",\n\t\t\"Btitle\": \"京城最速03+有多快，手动思域追不上？【头文字D追走】\",\n\t\t\"hp\": \"254\",\n\t\t\"hp_content\": \"254\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"59.61\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"AR-1/MC6\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.1\",\n\t\t\"limit\": \"135.49\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"22.88\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"飞凡F7\",\n\t\t\"BID\": \"BV1oc411N7qx\",\n\t\t\"Btitle\": \"飞凡F7跑赛道，是一种什么体验？\",\n\t\t\"hp\": \"544\",\n\t\t\"hp_content\": \"544\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"59.63\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS EV\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.83\",\n\t\t\"limit\": \"149.24\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"30.19\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"86\",\n\t\t\"BID\": \"BV1L5411m7bj\",\n\t\t\"Btitle\": \"我把丰田86开着火了...\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"59.78\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"11\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.80\",\n\t\t\"limit\": \"135.184\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"27.78\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"飞度\",\n\t\t\"BID\": \"BV13S4y1N7Gs\",\n\t\t\"Btitle\": \"80000块移植K20A，飞度王！\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"59.81\",\n\t\t\"mods\": \"3\",\n\t\t\"tyre\": \"NS2R\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"136.96\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"7.38\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"野马\",\n\t\t\"BID\": \"BV15f4y1u79p\",\n\t\t\"Btitle\": \"2.3T原厂Mustang的操控如何，赛道轻松干掉原厂86？\",\n\t\t\"hp\": \"299\",\n\t\t\"hp_content\": \"299\",\n\t\t\"Powertrain\": \"2.3T/10AT\",\n\t\t\"speed\": \"59.89\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"3\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.57\",\n\t\t\"limit\": \"135.16\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"36.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"极氪001\",\n\t\t\"BID\": \"BV1yS4y197Qp\",\n\t\t\"Btitle\": \"赛道拉爆极氪001，要露馅了？\",\n\t\t\"hp\": \"544\",\n\t\t\"hp_content\": \"544\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"59.91\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PC6\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.88\",\n\t\t\"limit\": \"149.39\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"36.00\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"MINI JCW\",\n\t\t\"BID\": \"BV1Bb4y1871i\",\n\t\t\"Btitle\": \"小拉力赛车？MINI JCW R56性能测试！\",\n\t\t\"hp\": \"211\",\n\t\t\"hp_content\": \"211\",\n\t\t\"Powertrain\": \"1.6T/6AT\",\n\t\t\"speed\": \"59.96\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"TD\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.08\",\n\t\t\"limit\": \"136.57\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"UK\",\n\t\t\"price\":\"39.90\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"LOTUS GT410\",\n\t\t\"BID\": \"BV1hZ4y1P7Br\",\n\t\t\"Btitle\": \"路特斯GT410，比保时捷911更硬？\",\n\t\t\"hp\": \"410\",\n\t\t\"hp_content\": \"410\",\n\t\t\"Powertrain\": \"3.5SC/6AT\",\n\t\t\"speed\": \"60.0\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"147\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"UK\",\n\t\t\"price\":\"97.20\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"Model Y\",\n\t\t\"BID\": \"BV1qo4y1C7dt\",\n\t\t\"Btitle\": \"SUV吊打小钢炮？特斯拉Model Y赛道测评！\",\n\t\t\"hp\": \"432\",\n\t\t\"hp_content\": \"432\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"60.08\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K127\",\n\t\t\"temperature\": \"21\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.95\",\n\t\t\"limit\": \"145.751\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"34.79\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"宝马I4 M50\",\n\t\t\"BID\": \"BV1cg411R7xw\",\n\t\t\"Btitle\": \"半价M4，跑不过86？\",\n\t\t\"hp\": \"544\",\n\t\t\"hp_content\": \"544\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"60.08\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K127\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"3.87\",\n\t\t\"limit\": \"150.53\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"53.99\"\n\t},\n\t{\n\t  \"year\":\"2005\",\n\t  \"car\": \"菱帅 进化5\",\n\t  \"BID\": \"BV1eK41167Xe\",\n\t  \"Btitle\": \"8000转的超级菱帅！【菱帅进化5.0】\",\n\t  \"hp\": \"125\",\n\t  \"hp_content\": \"125\",\n\t  \"Powertrain\": \"1.6/5MT\",\n\t  \"speed\": \"60.14\",\n\t  \"mods\": \"2\",\n\t  \"tyre\": \"卫途01\",\n\t  \"temperature\": \"14\",\n\t  \"lv\": \"A\",\n\t  \"time\": \"\",\n\t  \"accelerate\": \"8.96\",\n\t  \"limit\": \"122.91\",\n\t  \"powerType\":\"0\",\n\t  \"producer\":\"0\",\n\t  \"nationality\":\"CN\",\n\t  \"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"飞度\",\n\t\t\"BID\": \"av48683350\",\n\t\t\"Btitle\": \"7W买车7W改，超跑飞度成功刷新“键盘车神圈速榜”\",\n\t\t\"hp\": \"151\",\n\t\t\"hp_content\": \"151\",\n\t\t\"Powertrain\": \"1.5/5MT\",\n\t\t\"speed\": \"60.20\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"RE71R+AD08R\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"360\",\n\t\t\"accelerate\": \"8.0\",\n\t\t\"limit\": \"128\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"7.38\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"领克03+\",\n\t\t\"BID\": \"BV1NK4y1A7UW\",\n\t\t\"Btitle\": \"国货之光领克03+被东瀛烂仔暴打？\",\n\t\t\"hp\": \"254\",\n\t\t\"hp_content\": \"254\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"60.21\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.3\",\n\t\t\"limit\": \"133.08\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"22.88\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"谢尔比GTE\",\n\t\t\"BID\": \"BV1144y1g72R\",\n\t\t\"Btitle\": \"40W的野马王，比超跑还宽\",\n\t\t\"hp\": \"368\",\n\t\t\"hp_content\": \"368\",\n\t\t\"Powertrain\": \"2.3T/10AT\",\n\t\t\"speed\": \"60.22\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.77\",\n\t\t\"limit\": \"135.371\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"41.80\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"CT5 尊贵型\",\n\t\t\"BID\": \"BV1P64y1v7f1\",\n\t\t\"Btitle\": \"30万级最强底盘中型轿车 可能就是它！\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/10AT\",\n\t\t\"speed\": \"60.26\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.73\",\n\t\t\"limit\": \"130.22\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"32.27\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV1nV4y1Y7r3\",\n\t\t\"Btitle\": \"影豹R+LSD，可能是全国首测？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"60.33\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"PS5\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"140.00\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"15.80\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"梅甘娜RS\",\n\t\t\"BID\": \"BV1PU4y1878m\",\n\t\t\"Btitle\": \"【最强手动挡钢炮特辑】梅甘娜RS，嘉年华ST，速翼特赛道PK！\",\n\t\t\"hp\": \"275\",\n\t\t\"hp_content\": \"275\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"60.35\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"8\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.71\",\n\t\t\"limit\": \"139.4\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"FR\",\n\t\t\"price\":\"35.99\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"宝马328i\",\n\t\t\"BID\": \"BV1gY4y167rz\",\n\t\t\"Btitle\": \"永远的标杆，宝马328i~\",\n\t\t\"hp\": \"245\",\n\t\t\"hp_content\": \"245\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"60.35\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.92\",\n\t\t\"limit\": \"135.317\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"42.60\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"Giulia 280\",\n\t\t\"BID\": \"BV1mK411p7rK\",\n\t\t\"Btitle\": \"Giulia是B级运动车最强？他能打爆CT5/宝马3/奥迪A4么?\",\n\t\t\"hp\": \"330\",\n\t\t\"hp_content\": \"330\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"60.40\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.7\",\n\t\t\"limit\": \"135\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"44.98\"\n\t},\n\t{\n\t\t\"year\":\"2015\",\n\t\t\"car\": \"Brz\",\n\t\t\"BID\": \"BV1PP4y1E7m2\",\n\t\t\"Btitle\": \"换上米其林PS4，BRZ直接干翻小钢炮\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"60.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.70\",\n\t\t\"limit\": \"133.77\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.90\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"小鹏P7\",\n\t\t\"BID\": \"BV1Ra4y1L7p2\",\n\t\t\"Btitle\": \"电动妖刀！小鹏P7！\",\n\t\t\"hp\": \"430\",\n\t\t\"hp_content\": \"430\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"60.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.3\",\n\t\t\"limit\": \"145\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"33.99\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"Brz\",\n\t\t\"BID\": \"BV1PP4y1E7m2\",\n\t\t\"Btitle\": \"换上米其林PS4，BRZ直接干翻小钢炮\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6AT\",\n\t\t\"speed\": \"60.61\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.40\",\n\t\t\"limit\": \"132.28\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"27.98\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"MINI JCW\",\n\t\t\"BID\": \"BV1Bb4y1871i\",\n\t\t\"Btitle\": \"小拉力赛车？MINI JCW R56性能测试！\",\n\t\t\"hp\": \"211\",\n\t\t\"hp_content\": \"211\",\n\t\t\"Powertrain\": \"1.6T/6AT\",\n\t\t\"speed\": \"60.63\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.08\",\n\t\t\"limit\": \"138.19\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"UK\",\n\t\t\"price\":\"39.90\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"迈锐宝XL\",\n\t\t\"BID\": \"BV1pU4y177kq\",\n\t\t\"Btitle\": \"【迈锐宝XL进化1.0】白嫖的15W改装经费怎么花？\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/9AT\",\n\t\t\"speed\": \"60.67\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"Cup2C\",\n\t\t\"temperature\": \"33\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"125.01\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"20.49\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"BMW 330i\",\n\t\t\"BID\": \"BV1Sv4y1f76E\",\n\t\t\"Btitle\": \"宝马3系，运动亡者？-- 330i挑战CT5圈速\",\n\t\t\"hp\": \"258\",\n\t\t\"hp_content\": \"258\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"60.70\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.8\",\n\t\t\"limit\": \"136\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"37.99\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"BMW 540i\",\n\t\t\"BID\": \"BV1Ya4y1i7mL\",\n\t\t\"Btitle\": \"3.0T标轴C级运动王 | 宝马540 vs 捷豹XF对比测评\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"3.0T/8AT\",\n\t\t\"speed\": \"60.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Eagle F1*\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.2\",\n\t\t\"limit\": \"139\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"59.39\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"福克斯ST\",\n\t\t\"BID\": \"BV12g4y1z7WV\",\n\t\t\"Btitle\": \"10万块买的“低配”梅甘娜RS有多香？--福克斯ST\",\n\t\t\"hp\": \"275\",\n\t\t\"hp_content\": \"275\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"60.80\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"R888R/F1\",\n\t\t\"temperature\": \"3\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.5\",\n\t\t\"limit\": \"134\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"野马\",\n\t\t\"BID\": \"BV1hQ4y1q7RW\",\n\t\t\"Btitle\": \"流言终结者：Mustang操控真的很差？\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.3T/10AT\",\n\t\t\"speed\": \"60.84\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.58\",\n\t\t\"limit\": \"134.31\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"36.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"CT5 顶配\",\n\t\t\"BID\": \"BV1ci4y1V7Ko\",\n\t\t\"Btitle\": \"“洗浴城”的运动之王！--凯迪拉克CT5\",\n\t\t\"hp\": \"241\",\n\t\t\"hp_content\": \"241\",\n\t\t\"Powertrain\": \"2.0T/10AT\",\n\t\t\"speed\": \"60.90\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.0\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"33.97\"\n\t},\n\t{\n\t\t\"year\":\"2003\",\n\t\t\"car\": \"菱帅\",\n\t\t\"BID\": \"BV1TK411u7k2\",\n\t\t\"Btitle\": \"我膨胀了！又买了台菱帅！【赛车 vs 街车】\",\n\t\t\"hp\": \"100\",\n\t\t\"hp_content\": \"100\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"61.00\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"125\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI 8\",\n\t\t\"BID\": \"BV1F34y1Q7JC\",\n\t\t\"Btitle\": \"GTI换上领克03+的轮胎，赛道圈速竟然这么快\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"61.25\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.54\",\n\t\t\"limit\": \"135.10\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"02HB\",\n\t\t\"BID\": \"BV1oq4y1h7vb\",\n\t\t\"Btitle\": \"18万，是钢炮？\",\n\t\t\"hp\": \"254\",\n\t\t\"hp_content\": \"254\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"61.27\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.84\",\n\t\t\"limit\": \"129.15\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"18.18\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"福克斯ST\",\n\t\t\"BID\": \"BV12g4y1z7WV\",\n\t\t\"Btitle\": \"10万块买的“低配”梅甘娜RS有多香？\",\n\t\t\"hp\": \"250\",\n\t\t\"hp_content\": \"250\",\n\t\t\"Powertrain\": \"2.0T/6MT\",\n\t\t\"speed\": \"61.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"F1\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.7\",\n\t\t\"limit\": \"135\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.98\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"思域SI\",\n\t\t\"BID\": \"BV1ii4y1S7LB\",\n\t\t\"Btitle\": \"大排量自吸前驱车，谁最强？\",\n\t\t\"hp\": \"207\",\n\t\t\"hp_content\": \"207\",\n\t\t\"Powertrain\": \"2.4/6MT\",\n\t\t\"speed\": \"61.33\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"33\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.1\",\n\t\t\"limit\": \"130.97\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"19.98\"\n\t},\n\t{\n\t\t\"year\":\"2015\",\n\t\t\"car\": \"Brz\",\n\t\t\"BID\": \"BV11Z4y1Q7a8\",\n\t\t\"Btitle\": \"手动vs自动，原厂BRZ赛道测试！\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6MT\",\n\t\t\"speed\": \"61.38\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Advan DB\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.70\",\n\t\t\"limit\": \"133.33\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"26.90\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"领克03+\",\n\t\t\"BID\": \"BV1ui4y137jA\",\n\t\t\"Btitle\": \"奥迪S3/大众GTI，被领克03+打爆了？\",\n\t\t\"hp\": \"254\",\n\t\t\"hp_content\": \"254\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"61.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"34\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.5\",\n\t\t\"limit\": \"129\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"22.88\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"奥迪A4L\",\n\t\t\"BID\": \"BV1iD4y1Q7KH\",\n\t\t\"Btitle\": \"奥迪A4L的“运动性”反而退步了？\",\n\t\t\"hp\": \"252\",\n\t\t\"hp_content\": \"252\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"61.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.6\",\n\t\t\"limit\": \"129\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"39.68\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"领克05+\",\n\t\t\"BID\": \"BV1AF411V7CP\",\n\t\t\"Btitle\": \"领克05+算的上“赛道级SUV”？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"61.46\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"22\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.86\",\n\t\t\"limit\": \"130.86\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"23.58\"\n\t},\n\t{\n\t\t\"year\":\"2006\",\n\t\t\"car\": \"BMW M6\",\n\t\t\"BID\": \"BV1Hy4y1Y7Jz\",\n\t\t\"Btitle\": \"20多万，买F1的V10引擎~\",\n\t\t\"hp\": \"507\",\n\t\t\"hp_content\": \"507\",\n\t\t\"Powertrain\": \"5.0/7SMG\",\n\t\t\"speed\": \"61.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.2\",\n\t\t\"limit\": \"149\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"229.80\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"沃尔沃S60 T8\",\n\t\t\"BID\": \"BV1BA4y197S3\",\n\t\t\"Btitle\": \"30万出头落地，S60 T8平替S4？\",\n\t\t\"hp\": \"404\",\n\t\t\"hp_content\": \"404\",\n\t\t\"Powertrain\": \"2.0T+E/8AT\",\n\t\t\"speed\": \"61.51\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.10\",\n\t\t\"limit\": \"138.26\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"SE\",\n\t\t\"price\":\"46.19\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"嘉年华ST\",\n\t\t\"BID\": \"BV1PU4y1878m\",\n\t\t\"Btitle\": \"【最强手动挡钢炮特辑】梅甘娜RS，嘉年华ST，速翼特赛道PK！\",\n\t\t\"hp\": \"182\",\n\t\t\"hp_content\": \"182\",\n\t\t\"Powertrain\": \"1.6T/6MT\",\n\t\t\"speed\": \"61.56\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"AR-1\",\n\t\t\"temperature\": \"8\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.78\",\n\t\t\"limit\": \"131.3\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"18.59\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"马自达3\",\n\t\t\"BID\": \"BV1BT4y1C767\",\n\t\t\"Btitle\": \"2.5引擎+手动挡，帝王马自达3来了！\",\n\t\t\"hp\": \"192\",\n\t\t\"hp_content\": \"192\",\n\t\t\"Powertrain\": \"2.5/6MT\",\n\t\t\"speed\": \"61.61\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"3\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.96\",\n\t\t\"limit\": \"130.76\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"11.30\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"Brz\",\n\t\t\"BID\": \"BV11Z4y1Q7a8\",\n\t\t\"Btitle\": \"手动vs自动，原厂BRZ赛道测试！\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0/6AT\",\n\t\t\"speed\": \"61.62\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"DB\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.40\",\n\t\t\"limit\": \"129.20\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"27.98\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV1Wa4y1F72T\",\n\t\t\"Btitle\": \"影豹R，低配如何变高配？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"61.75\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"卫途02\",\n\t\t\"temperature\": \"40\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.91\",\n\t\t\"limit\": \"132.16\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"13.80\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"迈锐宝XL\",\n\t\t\"BID\": \"BV1Xt4y1e78H\",\n\t\t\"Btitle\": \"6台屌丝战车，谁能追上奔驰?\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/9AT\",\n\t\t\"speed\": \"61.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC5\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.78\",\n\t\t\"limit\": \"131\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"21.99\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅 进化4\",\n\t\t\"BID\": \"BV1dh411474c\",\n\t\t\"Btitle\": \"【菱帅进化4.0】小马力的春药，3000块你要么？\",\n\t\t\"hp\": \"100\",\n\t\t\"hp_content\": \"100\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"61.81\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"10.5\",\n\t\t\"limit\": \"\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2010\",\n\t\t\"car\": \"SLK\",\n\t\t\"BID\": \"BV1W84y1178n\",\n\t\t\"Btitle\": \"6万块奔驰SLK，赛道日大杀四方？\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"1.8SC/5AT\",\n\t\t\"speed\": \"61.85\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS5\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.06\",\n\t\t\"limit\": \"124.55\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"59.80\"\n \t},\n\t{\n\t\t\"year\":\"2015\",\n\t\t\"car\": \"野马\",\n\t\t\"BID\": \"BV1hQ4y1q7RW\",\n\t\t\"Btitle\": \"流言终结者：Mustang操控真的很差？\",\n\t\t\"hp\": \"350\",\n\t\t\"hp_content\": \"350\",\n\t\t\"Powertrain\": \"2.3T/6AT\",\n\t\t\"speed\": \"62.00\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"PSS\",\n\t\t\"temperature\": \"5\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.45\",\n\t\t\"limit\": \"134.63\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"39.98\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"BMW 330Li\",\n\t\t\"BID\": \"BV1uk4y1o7NE\",\n\t\t\"Btitle\": \"5W改装宝马330Li，还跑不过捷豹XEL嘛？\",\n\t\t\"hp\": \"252\",\n\t\t\"hp_content\": \"252\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.10\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"P7\",\n\t\t\"temperature\": \"34\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.2\",\n\t\t\"limit\": \"132\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"42.98\"\n\t},\n\t{\n\t\t\"year\":\"2009\",\n\t\t\"car\": \"G37\",\n\t\t\"BID\": \"BV1mu411z7Y9\",\n\t\t\"Btitle\": \"人人都吹的奇瑞王G37，就这？\",\n\t\t\"hp\": \"351\",\n\t\t\"hp_content\": \"351\",\n\t\t\"Powertrain\": \"3.7/7AT\",\n\t\t\"speed\": \"62.16\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"11\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.78\",\n\t\t\"limit\": \"138.9\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"49.10\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1wa4y1H72F\",\n\t\t\"Btitle\": \"凯迪拉克CT4：美国的宝马E90～\",\n\t\t\"hp\": \"270\",\n\t\t\"hp_content\": \"270\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.20\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"RE003\",\n\t\t\"temperature\": \"1\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.67\",\n\t\t\"limit\": \"135\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"君威GS\",\n\t\t\"BID\": \"BV1Xt4y1e78H\",\n\t\t\"Btitle\": \"6台屌丝战车，谁能追上奔驰?\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/9AT\",\n\t\t\"speed\": \"62.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC5\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.98\",\n\t\t\"limit\": \"129\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"21.88\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅 进化3\",\n\t\t\"BID\": \"BV1ai4y1o7mB\",\n\t\t\"Btitle\": \"【菱帅进化3.0】小马力前驱回归，自信男人の大杀器：Camber！\",\n\t\t\"hp\": \"100\",\n\t\t\"hp_content\": \"100\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"62.35\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"16\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"10.5\",\n\t\t\"limit\": \"\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"ATS-L\",\n\t\t\"BID\": \"BV1Pv411s7Tf\",\n\t\t\"Btitle\": \"去洗浴中心，凯迪拉克ATS-L和CT4谁更快？\",\n\t\t\"hp\": \"279\",\n\t\t\"hp_content\": \"279\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"泰然者\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.2\",\n\t\t\"limit\": \"131\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"36.88\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"思域\",\n\t\t\"BID\": \"BV1zi4y117xQ\",\n\t\t\"Btitle\": \"【米其林PS5】性能测试，11代思域圈速提升几秒？\",\n\t\t\"hp\": \"182\",\n\t\t\"hp_content\": \"182\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"62.42\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS5\",\n\t\t\"temperature\": \"0\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"131.46\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"14.29\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"CT4\",\n\t\t\"BID\": \"BV1wa4y1H72F\",\n\t\t\"Btitle\": \"凯迪拉克CT4：美国的宝马E90～\",\n\t\t\"hp\": \"237\",\n\t\t\"hp_content\": \"237\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PC6SSR\",\n\t\t\"temperature\": \"1\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.0\",\n\t\t\"limit\": \"135\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"25.97\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"速腾GLI\",\n\t\t\"BID\": \"av76939481\",\n\t\t\"Btitle\": \"GTI vs GLI -- 大众“推头王”之间的对决？\",\n\t\t\"hp\": \"290\",\n\t\t\"hp_content\": \"290\",\n\t\t\"Powertrain\": \"2.0T/6DCT\",\n\t\t\"speed\": \"62.50\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"S001\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"303\",\n\t\t\"accelerate\": \"6.6\",\n\t\t\"limit\": \"134\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"21.88\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"C63 507\",\n\t\t\"BID\": \"BV1r44y167gi\",\n\t\t\"Btitle\": \"30多万的老奔驰-AMG C 63，操控堪比宝马M2C\",\n\t\t\"hp\": \"507\",\n\t\t\"hp_content\": \"507\",\n\t\t\"Powertrain\": \"6.2/7AT\",\n\t\t\"speed\": \"62.54\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4S\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.2\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"114.80\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"星越L\",\n\t\t\"BID\": \"BV1Yq4y1z77X\",\n\t\t\"Btitle\": \"教主也造假？星越L比宝马3系快？\",\n\t\t\"hp\": \"238\",\n\t\t\"hp_content\": \"238\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.61\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Eagle F1\",\n\t\t\"temperature\": \"12\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.07\",\n\t\t\"limit\": \"-\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"18.52\"\n\t},\n\t{\n\t\t\"year\":\"2006\",\n\t\t\"car\": \"206 进化3\",\n\t\t\"BID\": \"\",\n\t\t\"Btitle\": \"\",\n\t\t\"hp\": \"165\",\n\t\t\"hp_content\": \"165\",\n\t\t\"Powertrain\": \"1.8/5MT\",\n\t\t\"speed\": \"62.68\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.1\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"7.78\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"GTI 8\",\n\t\t\"BID\": \"BV1F34y1Q7JC\",\n\t\t\"Btitle\": \"GTI换上领克03+的轮胎，赛道圈速竟然这么快\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"62.69\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"邓禄普050\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"6.92\",\n\t\t\"limit\": \"132.71\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"捷豹XEL\",\n\t\t\"BID\": \"av40240801\",\n\t\t\"Btitle\": \"你以为宝马3系同级别操控秒天秒地？试试捷豹XEL吧\",\n\t\t\"hp\": \"250\",\n\t\t\"hp_content\": \"250\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P7\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"1364\",\n\t\t\"accelerate\": \"7.8\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"UK\",\n\t\t\"price\":\"36.28\"\n\t},\n\t{\n\t\t\"year\":\"2023\",\n\t\t\"car\": \"影豹R\",\n\t\t\"BID\": \"BV1va4y1A7sA\",\n\t\t\"Btitle\": \"影豹R，低配才香？\",\n\t\t\"hp\": \"265\",\n\t\t\"hp_content\": \"265\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.81\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.91\",\n\t\t\"limit\": \"133.66\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"13.80\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"BMW 430i\",\n\t\t\"BID\": \"BV1kK4y1R7Lb\",\n\t\t\"Btitle\": \"2.0T卖60W+？宝马430i性能让我很失望\",\n\t\t\"hp\": \"258\",\n\t\t\"hp_content\": \"258\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"62.94\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"泰然者+S001\",\n\t\t\"temperature\": \"15\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.8\",\n\t\t\"limit\": \"136.10\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"45.98\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"领克03\",\n\t\t\"BID\": \"av76609493\",\n\t\t\"Btitle\": \"领克03四缸版,教主愿称他为“A级最速买菜王”\",\n\t\t\"hp\": \"190\",\n\t\t\"hp_content\": \"190\",\n\t\t\"Powertrain\": \"2.0T/6AT\",\n\t\t\"speed\": \"63.20\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Eagle F1\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"18\",\n\t\t\"accelerate\": \"7.3\",\n\t\t\"limit\": \"127\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"15.48\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"捷豹XF\",\n\t\t\"BID\": \"BV1Ya4y1i7mL\",\n\t\t\"Btitle\": \"3.0T标轴C级运动王 | 宝马540 vs 捷豹XF对比测评\",\n\t\t\"hp\": \"340\",\n\t\t\"hp_content\": \"340\",\n\t\t\"Powertrain\": \"3.0SC/8AT\",\n\t\t\"speed\": \"63.20\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P0\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"5.6\",\n\t\t\"limit\": \"133\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"UK\",\n\t\t\"price\":\"63.80\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"BMW 325Li\",\n\t\t\"BID\": \"BV1P64y1v7f1\",\n\t\t\"Btitle\": \"30万级最强底盘中型轿车 可能就是它！\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"63.28\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"P7\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.90\",\n\t\t\"limit\": \"125.26\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"34.69\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"A220L\",\n\t\t\"BID\": \"BV1Xt4y1e78H\",\n\t\t\"Btitle\": \"6台屌丝战车，谁能追上奔驰?\",\n\t\t\"hp\": \"190\",\n\t\t\"hp_content\": \"190\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"63.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"泰然者\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.1\",\n\t\t\"limit\": \"128\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"29.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"MG6\",\n\t\t\"BID\": \"BV1Ra411a7vQ\",\n\t\t\"Btitle\": \"花里胡哨之王，MG6...\",\n\t\t\"hp\": \"181\",\n\t\t\"hp_content\": \"181\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"63.34\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"泰然者\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.93\",\n\t\t\"limit\": \"124.711\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"13.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"思域HB\",\n\t\t\"BID\": \"BV1vR4y1T799\",\n\t\t\"Btitle\": \"退步？思域11比10代还慢了...\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"63.37\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Advan DB\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.98\",\n\t\t\"limit\": \"127.82\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"14.39\"\n\t},\n\t{\n\t\t\"year\":\"2015\",\n\t\t\"car\": \"E320L\",\n\t\t\"BID\": \"\",\n\t\t\"Btitle\": \"\",\n\t\t\"hp\": \"272\",\n\t\t\"hp_content\": \"272\",\n\t\t\"Powertrain\": \"3.0T/7AT\",\n\t\t\"speed\": \"63.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.0\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"59.80\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"天籁\",\n\t\t\"BID\": \"av58322205\",\n\t\t\"Btitle\": \"“天籁 | 凯美瑞 | 雅阁”赛道大横评，谁是“虚假的运动车型”？\",\n\t\t\"hp\": \"252\",\n\t\t\"hp_content\": \"252\",\n\t\t\"Powertrain\": \"2.0T/CVT\",\n\t\t\"speed\": \"63.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"BluEearth-GT\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"139\",\n\t\t\"accelerate\": \"6.9\",\n\t\t\"limit\": \"131\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"21.58\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"思域\",\n\t\t\"BID\": \"BV1rp4y1H7Ce\",\n\t\t\"Btitle\": \"思域比领克03强在哪？改装+原厂全面解析！\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/6MT\",\n\t\t\"speed\": \"63.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC5/DB\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.0\",\n\t\t\"limit\": \"130\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"12.99\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"翼神\",\n\t\t\"BID\": \"BV1ii4y1S7LB\",\n\t\t\"Btitle\": \"大排量自吸前驱车，谁最强？\",\n\t\t\"hp\": \"170\",\n\t\t\"hp_content\": \"170\",\n\t\t\"Powertrain\": \"2.4/5MT\",\n\t\t\"speed\": \"63.53\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"P7\",\n\t\t\"temperature\": \"0\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.5\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"13.08\"\n\t},\n\t{\n\t\t\"year\":\"2010\",\n\t\t\"car\": \"嘉年华\",\n\t\t\"BID\": \"\",\n\t\t\"Btitle\": \"\",\n\t\t\"hp\": \"103\",\n\t\t\"hp_content\": \"103\",\n\t\t\"Powertrain\": \"1.5/5MT\",\n\t\t\"speed\": \"63.55\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"0\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"9.29\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"高尔夫GTI\",\n\t\t\"BID\": \"BV1ui4y137jA\",\n\t\t\"Btitle\": \"奥迪S3/大众GTI，被领克03+打爆了？\",\n\t\t\"hp\": \"220\",\n\t\t\"hp_content\": \"220\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"63.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"S001\",\n\t\t\"temperature\": \"34\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.0\",\n\t\t\"limit\": \"127\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"23.99\"\n\t}, \n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"菲斯塔\",\n\t\t\"BID\": \"av60306282\",\n\t\t\"Btitle\": \"“现代菲斯塔”打爆“名爵MG6”，教主再次冲出赛道~\",\n\t\t\"hp\": \"204\",\n\t\t\"hp_content\": \"204\",\n\t\t\"Powertrain\": \"1.6T/7DCT\",\n\t\t\"speed\": \"63.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"耐克森\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"313\",\n\t\t\"accelerate\": \"6.8\",\n\t\t\"limit\": \"129\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"14.08\"\n\t},\n\t{\n\t\t\"year\":\"2007\",\n\t\t\"car\": \"C2 进化2\",\n\t\t\"BID\": \"BV1yt4y1z7Mo\",\n\t\t\"Btitle\": \"【206进化2.0】135马力，不怕飞度、速翼特！\",\n\t\t\"hp\": \"135\",\n\t\t\"hp_content\": \"135\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"63.70\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"14\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.5\",\n\t\t\"limit\": \"118\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"FR\",\n\t\t\"price\":\"8.88\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"飞度\",\n\t\t\"BID\": \"av45970606\",\n\t\t\"Btitle\": \"低配版“飞驰人生”！大众POLO vs 本田飞度\",\n\t\t\"hp\": \"131\",\n\t\t\"hp_content\": \"131\",\n\t\t\"Powertrain\": \"1.5/5MT\",\n\t\t\"speed\": \"63.70\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"UC6\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"753\",\n\t\t\"accelerate\": \"8.7\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"7.38\"\n\t},\n\t{\n\t\t\"year\":\"2012\",\n\t\t\"car\": \"高尔夫GTI\",\n\t\t\"BID\": \"av76939481\",\n\t\t\"Btitle\": \"GTI vs GLI -- 大众“推头王”之间的对决？\",\n\t\t\"hp\": \"230\",\n\t\t\"hp_content\": \"230\",\n\t\t\"Powertrain\": \"2.0T/6DCT\",\n\t\t\"speed\": \"63.70\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"P7\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"374\",\n\t\t\"accelerate\": \"7.3\",\n\t\t\"limit\": \"126\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"23.58\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"思域\",\n\t\t\"BID\": \"BV1vR4y1T799\",\n\t\t\"Btitle\": \"退步？思域11比10代还慢了...\",\n\t\t\"hp\": \"182\",\n\t\t\"hp_content\": \"182\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"63.91\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"玛吉斯510\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.13\",\n\t\t\"limit\": \"129.61\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"14.29\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"奥迪A3\",\n\t\t\"BID\": \"BV1Fb4y1Q7Fu\",\n\t\t\"Btitle\": \"奔驰宝马被高尔夫吊打？凯特姐“进退两男”？\",\n\t\t\"hp\": \"150\",\n\t\t\"hp_content\": \"150\",\n\t\t\"Powertrain\": \"1.4T/7DCT\",\n\t\t\"speed\": \"64.07\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"Eagle F1\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.19\",\n\t\t\"limit\": \"126.41\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"20.31\"\n\t},\n\t{\n\t\t\"year\":\"2015\",\n\t\t\"car\": \"福克斯\",\n\t\t\"BID\": \"av53756099\",\n\t\t\"Btitle\": \"改装福克斯有福克斯RS几分功力？\",\n\t\t\"hp\": \"236\",\n\t\t\"hp_content\": \"236\",\n\t\t\"Powertrain\": \"1.5T/6AT\",\n\t\t\"speed\": \"64.10\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"23\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"1407\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"14.98\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"Golf 7\",\n\t\t\"BID\": \"BV1DK4y1C7vt\",\n\t\t\"Btitle\": \"【误】高尔夫R vs 福克斯ST？--赛道周末Vlog23\",\n\t\t\"hp\": \"150\",\n\t\t\"hp_content\": \"150\",\n\t\t\"Powertrain\": \"1.4T/7DCT\",\n\t\t\"speed\": \"64.10\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K117\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.2\",\n\t\t\"limit\": \"124\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"17.19\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"Golf 8\",\n\t\t\"BID\": \"BV1F34y1Q7JC\",\n\t\t\"Btitle\": \"GTI换上领克03+的轮胎，赛道圈速竟然这么快\",\n\t\t\"hp\": \"150\",\n\t\t\"hp_content\": \"150\",\n\t\t\"Powertrain\": \"1.4T/7DCT\",\n\t\t\"speed\": \"64.12\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"邓禄普sp\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.08\",\n\t\t\"limit\": \"125.95\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"22.98\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅 进化2\",\n\t\t\"BID\": \"BV1tA411v7CG\",\n\t\t\"Btitle\": \"【菱帅进化2.0】买车7000块，改刹车7000块？\",\n\t\t\"hp\": \"100\",\n\t\t\"hp_content\": \"100\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"64.20\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"10.5\",\n\t\t\"limit\": \"116\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"Focus\",\n\t\t\"BID\": \"BV1DK4y1C7vt\",\n\t\t\"Btitle\": \"【误】高尔夫R vs 福克斯ST？--赛道周末Vlog23\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"1.5T/8AT\",\n\t\t\"speed\": \"64.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.9\",\n\t\t\"limit\": \"121\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"13.48\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"蔚来ES8\",\n\t\t\"BID\": \"\",\n\t\t\"Btitle\": \"内容下架了\",\n\t\t\"hp\": \"652\",\n\t\t\"hp_content\": \"652\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"64.60\",\n\t\t\"mods\": \"-1\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"4.4\",\n\t\t\"limit\": \"130\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"44.80\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"508L\",\n\t\t\"BID\": \"BV1Xt4y1e78H\",\n\t\t\"Btitle\": \"6台屌丝战车，谁能追上奔驰?\",\n\t\t\"hp\": \"211\",\n\t\t\"hp_content\": \"211\",\n\t\t\"Powertrain\": \"1.8T/8AT\",\n\t\t\"speed\": \"64.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"固特异\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.11\",\n\t\t\"limit\": \"125\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"FR\",\n\t\t\"price\":\"18.97\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"嘉年华\",\n\t\t\"BID\": \"BV1qh4y1k7Aa\",\n\t\t\"Btitle\": \"马自达2 vs 嘉年华，谁是2万钢炮王？\",\n\t\t\"hp\": \"103\",\n\t\t\"hp_content\": \"103\",\n\t\t\"Powertrain\": \"1.5/5MT\",\n\t\t\"speed\": \"64.68\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"19\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"10.12\",\n\t\t\"limit\": \"117.49\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"10.19\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅 进化1\",\n\t\t\"BID\": \"av31676244\",\n\t\t\"Btitle\": \"6000多块钱改装一台车，你不撞车谁撞车？\",\n\t\t\"hp\": \"100\",\n\t\t\"hp_content\": \"100\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"64.70\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"347\",\n\t\t\"accelerate\": \"10.5\",\n\t\t\"limit\": \"113\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"Giulia 200\",\n\t\t\"BID\": \"av43028847\",\n\t\t\"Btitle\": \"百万级底盘居然赢不了教主二手菱帅？\",\n\t\t\"hp\": \"200\",\n\t\t\"hp_content\": \"200\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"64.70\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"四季P7\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"185\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"IT\",\n\t\t\"price\":\"31.98\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"马自达3\",\n\t\t\"BID\": \"BV1ii4y1S7LB\",\n\t\t\"Btitle\": \"大排量自吸前驱车，谁最强？\",\n\t\t\"hp\": \"192\",\n\t\t\"hp_content\": \"192\",\n\t\t\"Powertrain\": \"2.5/6AT\",\n\t\t\"speed\": \"64.73\",\n\t\t\"mods\": \"2\",\n\t\t\"tyre\": \"MXM4\",\n\t\t\"temperature\": \"33\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.5\",\n\t\t\"limit\": \"119.7\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"11.49\"\n\t},\n\t{\n\t\t\"year\":\"2011\",\n\t\t\"car\": \"马自达2\",\n\t\t\"BID\": \"BV1qh4y1k7Aa\",\n\t\t\"Btitle\": \"马自达2 vs 嘉年华，谁是2万钢炮王？\",\n\t\t\"hp\": \"102\",\n\t\t\"hp_content\": \"102\",\n\t\t\"Powertrain\": \"1.5/5MT\",\n\t\t\"speed\": \"64.75\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS3\",\n\t\t\"temperature\": \"19\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.76\",\n\t\t\"limit\": \"118.24\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"8.88\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"BMW 118i\",\n\t\t\"BID\": \"av36925339\",\n\t\t\"Btitle\": \"【键盘对决第1期】马自达昂克赛拉VS宝马118（下集）\",\n\t\t\"hp\": \"170\",\n\t\t\"hp_content\": \"170\",\n\t\t\"Powertrain\": \"1.6T/8AT\",\n\t\t\"speed\": \"64.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"防爆P7\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"537\",\n\t\t\"accelerate\": \"7.2\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"29.20\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"K5\",\n\t\t\"BID\": \"BV1Xt4y1e78H\",\n\t\t\"Btitle\": \"6台屌丝战车，谁能追上奔驰?\",\n\t\t\"hp\": \"240\",\n\t\t\"hp_content\": \"240\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"65.10\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"NEXEN\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.48\",\n\t\t\"limit\": \"127\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"18.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"UNI-T\",\n\t\t\"BID\": \"BV1ty4y1Y7Aw\",\n\t\t\"Btitle\": \"国产小型SUV也配谈运动? -- 4车SUV大乱斗\",\n\t\t\"hp\": \"180\",\n\t\t\"hp_content\": \"180\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"65.10\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"MC6\",\n\t\t\"temperature\": \"-3\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.95\",\n\t\t\"limit\": \"118\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.39\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"奥迪A3L\",\n\t\t\"BID\": \"BV1Fb4y1Q7Fu\",\n\t\t\"Btitle\": \"奔驰宝马被高尔夫吊打？凯特姐“进退两男”？\",\n\t\t\"hp\": \"150\",\n\t\t\"hp_content\": \"150\",\n\t\t\"Powertrain\": \"1.4T/7DCT\",\n\t\t\"speed\": \"65.39\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K127\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.03\",\n\t\t\"limit\": \"126.06\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"20.96\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"名爵MG6\",\n\t\t\"BID\": \"av60306282\",\n\t\t\"Btitle\": \"“现代菲斯塔”打爆“名爵MG6”，教主再次冲出赛道~\",\n\t\t\"hp\": \"169\",\n\t\t\"hp_content\": \"169\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"65.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"T005\",\n\t\t\"temperature\": \"23\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"384\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"120\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"10.98\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"阿特兹\",\n\t\t\"BID\": \"BV1Xt4y1e78H\",\n\t\t\"Btitle\": \"6台屌丝战车，谁能追上奔驰?\",\n\t\t\"hp\": \"192\",\n\t\t\"hp_content\": \"192\",\n\t\t\"Powertrain\": \"2.5/6AT\",\n\t\t\"speed\": \"65.40\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"advan DB\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.51\",\n\t\t\"limit\": \"124\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"19.98\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"奥迪A3\",\n\t\t\"BID\": \"av57499131\",\n\t\t\"Btitle\": \"“键盘车神”批判性的买了一台奥迪A3，开起来香么？\",\n\t\t\"hp\": \"150\",\n\t\t\"hp_content\": \"150\",\n\t\t\"Powertrain\": \"1.4T/7DCT\",\n\t\t\"speed\": \"65.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K115\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"1401\",\n\t\t\"accelerate\": \"8.4\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"18.49\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"零跑S01\",\n\t\t\"BID\": \"BV1KX4y1K7jm\",\n\t\t\"Btitle\": \"年轻人的第一台电动超跑！我买下次一定！\",\n\t\t\"hp\": \"170\",\n\t\t\"hp_content\": \"170\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"65.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"PS4\",\n\t\t\"temperature\": \"0\",\n\t\t\"lv\": \"S\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.5\",\n\t\t\"limit\": \"119\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"12.99\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"领克06\",\n\t\t\"BID\": \"BV1ty4y1Y7Aw\",\n\t\t\"Btitle\": \"国产小型SUV也配谈运动? -- 4车SUV大乱斗\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"65.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"UC6\",\n\t\t\"temperature\": \"-3\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.59\",\n\t\t\"limit\": \"122\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.86\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"索纳塔\",\n\t\t\"BID\": \"BV1Xt4y1e78H\",\n\t\t\"Btitle\": \"6台屌丝战车，谁能追上奔驰?\",\n\t\t\"hp\": \"240\",\n\t\t\"hp_content\": \"240\",\n\t\t\"Powertrain\": \"2.0T/8AT\",\n\t\t\"speed\": \"65.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"米其林\",\n\t\t\"temperature\": \"13\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.28\",\n\t\t\"limit\": \"129\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"KR\",\n\t\t\"price\":\"18.38\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"凡尔赛\",\n\t\t\"BID\": \"BV18b4y1B7jV\",\n\t\t\"Btitle\": \"底盘操控到底怎样 凡尔赛性能测试\",\n\t\t\"hp\": \"175\",\n\t\t\"hp_content\": \"175\",\n\t\t\"Powertrain\": \"1.6T/8AT\",\n\t\t\"speed\": \"65.62\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"固特异 御乘\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.21\",\n\t\t\"limit\": \"122.82\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"FR\",\n\t\t\"price\":\"18.67\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"领克02\",\n\t\t\"BID\": \"BV1wh411d7X4\",\n\t\t\"Btitle\": \"【B站】发了台“领克02”给我，SUV我就不去赛道了么？\",\n\t\t\"hp\": \"180\",\n\t\t\"hp_content\": \"180\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"65.70\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"御乘\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.8\",\n\t\t\"limit\": \"121\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"18.88\"\n\t},\n\t{\n\t\t\"year\":\"2016\",\n\t\t\"car\": \"昂克塞拉\",\n\t\t\"BID\": \"av36925339\",\n\t\t\"Btitle\": \"【键盘对决第1期】马自达昂克赛拉VS宝马118（下集）\",\n\t\t\"hp\": \"158\",\n\t\t\"hp_content\": \"158\",\n\t\t\"Powertrain\": \"2.0/6AT\",\n\t\t\"speed\": \"65.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"DB\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"537\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"15.29\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"吉利ICON\",\n\t\t\"BID\": \"BV1ty4y1Y7Aw\",\n\t\t\"Btitle\": \"国产小型SUV也配谈运动? -- 4车SUV大乱斗\",\n\t\t\"hp\": \"177\",\n\t\t\"hp_content\": \"177\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"65.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"UC6\",\n\t\t\"temperature\": \"-3\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.38\",\n\t\t\"limit\": \"121\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"12.88\"\n\t},\n\t{\n\t  \"year\":\"2022\",\n\t  \"car\": \"拿铁DHT-PHEV\",\n\t  \"BID\": \"BV1yv4y1v7QU\",\n\t  \"Btitle\": \"键盘车神教的女主持人？\",\n\t  \"hp\": \"437\",\n\t  \"hp_content\": \"437\",\n\t  \"Powertrain\": \"1.5T+E\",\n\t  \"speed\": \"65.80\",\n\t  \"mods\": \"0\",\n\t  \"tyre\": \"浩悦4\",\n\t  \"temperature\": \"17\",\n\t  \"lv\": \"B\",\n\t  \"time\": \"\",\n\t  \"accelerate\": \"5.11\",\n\t  \"limit\": \"126.50\",\n\t  \"powerType\":\"0\",\n\t  \"producer\":\"0\",\n\t  \"nationality\":\"CN\",\n\t  \"price\":\"26.30\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"CX-4\",\n\t\t\"BID\": \"\",\n\t\t\"Btitle\": \"www.zhihu.com/zvideo/1279892141532749824\",\n\t\t\"hp\": \"196\",\n\t\t\"hp_content\": \"196\",\n\t\t\"Powertrain\": \"2.5/6AT\",\n\t\t\"speed\": \"66.00\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"DB\",\n\t\t\"temperature\": \"36\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.4\",\n\t\t\"limit\": \"121\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"17.98\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"凌云S\",\n\t\t\"BID\": \"BV1vr4y147p4\",\n\t\t\"Btitle\": \"凌云S特调造假，让我白花18万？\",\n\t\t\"hp\": \"261\",\n\t\t\"hp_content\": \"261\",\n\t\t\"Powertrain\": \"2.0T/7DCT\",\n\t\t\"speed\": \"66.00\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"UC6\",\n\t\t\"temperature\": \"27\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.36\",\n\t\t\"limit\": \"124.441\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"16.99\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"奔驰A200L\",\n\t\t\"BID\": \"BV1Fb4y1Q7Fu\",\n\t\t\"Btitle\": \"奔驰宝马被高尔夫吊打？凯特姐“进退两男”？\",\n\t\t\"hp\": \"163\",\n\t\t\"hp_content\": \"163\",\n\t\t\"Powertrain\": \"1.3T/7DCT\",\n\t\t\"speed\": \"66.05\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"primacy 4\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.60\",\n\t\t\"limit\": \"124\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"24.98\"\n\t},\n\t{\n\t\t\"year\":\"2021\",\n\t\t\"car\": \"BMW 120\",\n\t\t\"BID\": \"BV1Fb4y1Q7Fu\",\n\t\t\"Btitle\": \"奔驰宝马被高尔夫吊打？凯特姐“进退两男”？\",\n\t\t\"hp\": \"140\",\n\t\t\"hp_content\": \"140\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"66.08\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K117\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.71\",\n\t\t\"limit\": \"116\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"20.38\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\n\t\t\"car\": \"创酷RS\",\n\t\t\"BID\": \"BV1Ga411Q755\",\n\t\t\"Btitle\": \"10W最强SUV？创酷RS赛道测试...\",\n\t\t\"hp\": \"184\",\n\t\t\"hp_content\": \"184\",\n\t\t\"Powertrain\": \"1.5T/CVT\",\n\t\t\"speed\": \"66.17\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"泰然者\",\n\t\t\"temperature\": \"32\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"7.76\",\n\t\t\"limit\": \"118.8\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"12.89\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"凯美瑞\",\n\t\t\"BID\": \"av58322205\",\n\t\t\"Btitle\": \"“天籁 | 凯美瑞 | 雅阁”赛道大横评，谁是“虚假的运动车型”？\",\n\t\t\"hp\": \"218\",\n\t\t\"hp_content\": \"218\",\n\t\t\"Powertrain\": \"2.5+E/CVT\",\n\t\t\"speed\": \"66.20\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"BluEearth-GT\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"252\",\n\t\t\"accelerate\": \"8.8\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"23.98\"\n\t},\n\t{\n\t\t\"year\":\"2006\",\n\t\t\"car\": \"206 进化1\",\n\t\t\"BID\": \"BV17E411u7hn\",\n\t\t\"Btitle\": \"【206进化1.0】啥叫“新手改装4件套”？-- 8000块改一台标致206\",\n\t\t\"hp\": \"130\",\n\t\t\"hp_content\": \"106+14\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"66.50\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.7\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"10.28\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"飞度\",\n\t\t\"BID\": \"BV1aK4y1a7nN\",\n\t\t\"Btitle\": \"教主太膨胀，直接买超跑？\",\n\t\t\"hp\": \"131\",\n\t\t\"hp_content\": \"131\",\n\t\t\"Powertrain\": \"1.5/5MT\",\n\t\t\"speed\": \"66.80\",\n\t\t\"mods\": \"-1\",\n\t\t\"tyre\": \"固铂\",\n\t\t\"temperature\": \"29\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"8.8\",\n\t\t\"limit\": \"120\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"7.38\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"ES200\",\n\t\t\"BID\": \"BV13b4y1t7z1\",\n\t\t\"Btitle\": \"ES200，公路闪电？\",\n\t\t\"hp\": \"173\",\n\t\t\"hp_content\": \"173\",\n\t\t\"Powertrain\": \"2.0/CVT\",\n\t\t\"speed\": \"66.89\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"AE51\",\n\t\t\"temperature\": \"9\",\n\t\t\"lv\": \"C\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.72\",\n\t\t\"limit\": \"122.03\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"29.49\"\n\t},\n\t{\n\t\t\"year\":\"2014\",\n\t\t\"car\": \"POLO\",\n\t\t\"BID\": \"av45970606\",\n\t\t\"Btitle\": \"低配版“飞驰人生”！大众POLO vs 本田飞度\",\n\t\t\"hp\": \"110\",\n\t\t\"hp_content\": \"110\",\n\t\t\"Powertrain\": \"1.6/6AT\",\n\t\t\"speed\": \"66.90\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"AD08R\",\n\t\t\"temperature\": \"6\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"753\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"10.39\"\n\t},\n\t{\n\t\t\"year\":\"2009\",\n\t\t\"car\": \"思铂睿\",\n\t\t\"BID\": \"av50120061\",\n\t\t\"Btitle\": \"2.4高转自然吸气“大号思域SI买菜车”\",\n\t\t\"hp\": \"181\",\n\t\t\"hp_content\": \"181\",\n\t\t\"Powertrain\": \"2.4/5AT\",\n\t\t\"speed\": \"66.90\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"313\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"23.78\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"威朗\",\n\t\t\"BID\": \"av38448486\",\n\t\t\"Btitle\": \"要不是变速箱拦着，我能打十台思域\",\n\t\t\"hp\": \"169\",\n\t\t\"hp_content\": \"169\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"67.20\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"CC5\",\n\t\t\"temperature\": \"26\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"985\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"15.59\"\n\t},\n\t{\n\t\t\"year\":\"2005\",\n\t\t\"car\": \"菱帅\",\n\t\t\"BID\": \"av24427381\",\n\t\t\"Btitle\": \"7000块的二手菱帅，下赛道居然直追小钢炮？\",\n\t\t\"hp\": \"100\",\n\t\t\"hp_content\": \"100\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"67.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"7\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"410\",\n\t\t\"accelerate\": \"10.2\",\n\t\t\"limit\": \"112\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"11.88\"\n\t},\n\t{\n\t\t\"year\":\"2018\",\n\t\t\"car\": \"雅阁\",\n\t\t\"BID\": \"av58322205\",\n\t\t\"Btitle\": \"“天籁 | 凯美瑞 | 雅阁”赛道大横评，谁是“虚假的运动车型”？\",\n\t\t\"hp\": \"215\",\n\t\t\"hp_content\": \"215\",\n\t\t\"Powertrain\": \"2.0E/CVT\",\n\t\t\"speed\": \"67.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"DB\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"B\",\n\t\t\"time\": \"377\",\n\t\t\"accelerate\": \"8.1\",\n\t\t\"limit\": \"\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"19.98\"\n\t},\n\t{\n\t\t\"year\":\"2019\",\n\t\t\"car\": \"捷达VS5\",\n\t\t\"BID\": \"BV1ty4y1Y7Aw\",\n\t\t\"Btitle\": \"国产小型SUV也配谈运动? -- 4车SUV大乱斗\",\n\t\t\"hp\": \"150\",\n\t\t\"hp_content\": \"150\",\n\t\t\"Powertrain\": \"1.4T/6AT\",\n\t\t\"speed\": \"67.70\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"玲珑GREEN\",\n\t\t\"temperature\": \"-3\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.02\",\n\t\t\"limit\": \"117\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"9.88\"\n\t},\n\t{\n\t\t\"year\":\"2012\",\n\t\t\"car\": \"福克斯\",\n\t\t\"BID\": \"av49386270\",\n\t\t\"Btitle\": \"“平民操控王”经典福克斯，赛道圈速竟然倒数第一？\",\n\t\t\"hp\": \"124\",\n\t\t\"hp_content\": \"124\",\n\t\t\"Powertrain\": \"1.8/5MT\",\n\t\t\"speed\": \"67.90\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"357\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"US\",\n\t\t\"price\":\"9.98\"\n\t},\n\t{\n\t\t\"year\":\"2006\",\t\n\t\t\"car\": \"206\",\n\t\t\"BID\": \"BV1oE411E7Q2\",\n\t\t\"Btitle\": \"【206进化赛道篇】万元驾驶之王？“标致206”vs“东南菱帅”\",\n\t\t\"hp\": \"120\",\n\t\t\"hp_content\": \"120\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"67.90\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"9.7\",\n\t\t\"limit\": \"-\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"FR\",\n\t\t\"price\":\"10.28\"\n\t},\n\t{\n\t\t\"year\":\"2022\",\t\n\t\t\"car\": \"北汽魔方\",\n\t\t\"BID\": \"BV1BP4y1m71E\",\n\t\t\"Btitle\": \"9.99万买这么大个SUV？\",\n\t\t\"hp\": \"188\",\n\t\t\"hp_content\": \"188\",\n\t\t\"Powertrain\": \"1.5T/7DCT\",\n\t\t\"speed\": \"67.91\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"UC6\",\n\t\t\"temperature\": \"17\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"118.60\",\n\t\t\"limit\": \"8.40\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"9.99\"\n\t},\n\t{\n\t\t\"year\":\"2017\",\n\t\t\"car\": \"雷凌\",\n\t\t\"BID\": \"BV1Jp4y1972m\",\n\t\t\"Btitle\": \"AE86的真正继任者，10W块买回家 -- 赛道周末Vlog24\",\n\t\t\"hp\": \"116\",\n\t\t\"hp_content\": \"116\",\n\t\t\"Powertrain\": \"1.2T/CVT\",\n\t\t\"speed\": \"68.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"K415\",\n\t\t\"temperature\": \"31\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"10.5\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"10.78\"\n\t},\n\t{\n\t\t\"year\":\"--\",\n\t\t\"car\": \"富康\",\n\t\t\"BID\": \"BV1VN411o7fj\",\n\t\t\"Btitle\": \"韩寒座驾，5000块你要么?\",\n\t\t\"hp\": \"106\",\n\t\t\"hp_content\": \"106\",\n\t\t\"Powertrain\": \"1.6/5MT\",\n\t\t\"speed\": \"68.60\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"FR\",\n\t\t\"price\":\"7.58\"\n\t},\n\t{\n\t\t\"year\":\"2008\",\n\t\t\"car\": \"POLO\",\n\t\t\"BID\": \"av55145767\",\n\t\t\"Btitle\": \"打工1W多块买的老POLO，二挡5800转换挡变身买菜王！\",\n\t\t\"hp\": \"86\",\n\t\t\"hp_content\": \"86\",\n\t\t\"Powertrain\": \"1.4/5MT\",\n\t\t\"speed\": \"68.70\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"18\",\n\t\t\"lv\": \"A0\",\n\t\t\"time\": \"622\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"8.68\"\n\t},\n\t{\n\t\t\"year\":\"2015\",\n\t\t\"car\": \"菱悦\",\n\t\t\"BID\": \"av77754389\",\n\t\t\"Btitle\": \"【干货】菱悦VS菱帅，谁才是键盘车神的最爱？\",\n\t\t\"hp\": \"120\",\n\t\t\"hp_content\": \"120\",\n\t\t\"Powertrain\": \"1.5/5MT\",\n\t\t\"speed\": \"68.80\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"28\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"35\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"5.69\"\n\t},\n\t{\n\t\t\"year\":\"2006\",\n\t\t\"car\": \"甲壳虫\",\n\t\t\"BID\": \"av55879307\",\n\t\t\"Btitle\": \"“逗斗车”的甲壳虫，教主借来豁赛道~\",\n\t\t\"hp\": \"115\",\n\t\t\"hp_content\": \"115\",\n\t\t\"Powertrain\": \"2.0/6AT\",\n\t\t\"speed\": \"69.80\",\n\t\t\"mods\": \"1\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"21\",\n\t\t\"lv\": \"A\",\n\t\t\"time\": \"531\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"2\",\n\t\t\"nationality\":\"DE\",\n\t\t\"price\":\"36.50\"\n\t},\n\t{\n\t\t\"year\":\"2013\",\n\t\t\"car\": \"奥拓\",\n\t\t\"BID\": \"BV1R7411D72A\",\n\t\t\"Btitle\": \"【送命挑战】普通人开“宝马”能赢赛车手开“奥拓”？\",\n\t\t\"hp\": \"71\",\n\t\t\"hp_content\": \"71\",\n\t\t\"Powertrain\": \"1.0/5MT\",\n\t\t\"speed\": \"71.30\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"原厂\",\n\t\t\"temperature\": \"30\",\n\t\t\"lv\": \"A00\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"--\",\n\t\t\"limit\": \"--\",\n\t\t\"powerType\":\"0\",\n\t\t\"producer\":\"1\",\n\t\t\"nationality\":\"JP\",\n\t\t\"price\":\"4.18\"\n\t},\n\t{\n\t\t  \"year\":\"2022\",\n\t\t  \"car\": \"五菱EV\",\n\t\t  \"BID\": \"BV1PL4y1c7qB\",\n\t\t  \"Btitle\": \"41马力，是钢炮？\",\n\t\t  \"hp\": \"41\",\n\t\t  \"hp_content\": \"41\",\n\t\t  \"Powertrain\": \"E\",\n\t\t  \"speed\": \"76.03\",\n\t\t  \"mods\": \"0\",\n\t\t  \"tyre\": \"玲珑\",\n\t\t  \"temperature\": \"27\",\n\t\t  \"lv\": \"A00\",\n\t\t  \"time\": \"\",\n\t\t  \"accelerate\": \"17.12\",\n\t\t  \"limit\": \"98.18\",\n\t\t  \"powerType\":\"1\",\n\t\t  \"producer\":\"0\",\n\t\t  \"nationality\":\"CN\",\n\t\t  \"price\":\"5.58\"\n\t},\n\t{\n\t\t\"year\":\"2020\",\n\t\t\"car\": \"五菱EV\",\n\t\t\"BID\": \"BV1Rv411W7A7\",\n\t\t\"Btitle\": \"27马力的赛道猛男，会翻车？\",\n\t\t\"hp\": \"27\",\n\t\t\"hp_content\": \"27\",\n\t\t\"Powertrain\": \"E\",\n\t\t\"speed\": \"87.50\",\n\t\t\"mods\": \"0\",\n\t\t\"tyre\": \"玲珑\",\n\t\t\"temperature\": \"10\",\n\t\t\"lv\": \"A00\",\n\t\t\"time\": \"\",\n\t\t\"accelerate\": \"∞\",\n\t\t\"limit\": \"70\",\n\t\t\"powerType\":\"1\",\n\t\t\"producer\":\"0\",\n\t\t\"nationality\":\"CN\",\n\t\t\"price\":\"2.88\"\n\t}\n]"
  }
]