!(function (a, b) {
  function c() {
    var b = f.getBoundingClientRect().width;
    b / i > 420 && (b = 420 * i);
    var c = b / 10;
    (f.style.fontSize = c + 'px'), (k.rem = a.rem = c);
  }
  var d,
    e = a.document,
    f = e.documentElement,
    g = e.querySelector('meta[name="viewport"]'),
    h = e.querySelector('meta[name="flexible"]'),
    i = 0,
    j = 0,
    k = b.flexible || (b.flexible = {});
  if (g) {
    console.warn('将根据已有的meta标签来设置缩放比例');
    var l = g.getAttribute('content').match(/initial\-scale=([\d\.]+)/);
    l && ((j = parseFloat(l[1])), (i = parseInt(1 / j)));
  } else if (h) {
    var m = h.getAttribute('content');
    if (m) {
      var n = m.match(/initial\-dpr=([\d\.]+)/),
        o = m.match(/maximum\-dpr=([\d\.]+)/);
      n && ((i = parseFloat(n[1])), (j = parseFloat((1 / i).toFixed(2)))),
        o && ((i = parseFloat(o[1])), (j = parseFloat((1 / i).toFixed(2))));
    }
  }
  if (!i && !j) {
    var p = a.navigator.userAgent,
      q = (!!p.match(/android/gi), !!p.match(/iphone/gi)),
      r = q && !!p.match(/OS 9_3/),
      s = a.devicePixelRatio;
    (i =
      q && !r
        ? s >= 3 && (!i || i >= 3)
          ? 3
          : s >= 2 && (!i || i >= 2)
          ? 2
          : 1
        : 1),
      (j = 1 / i);
  }
  if ((f.setAttribute('data-dpr', i), !g))
    if (
      ((g = e.createElement('meta')),
      g.setAttribute('name', 'viewport'),
      g.setAttribute(
        'content',
        'initial-scale=' +
          j +
          ', maximum-scale=' +
          j +
          ', minimum-scale=' +
          j +
          ', user-scalable=no'
      ),
      f.firstElementChild)
    )
      f.firstElementChild.appendChild(g);
    else {
      var t = e.createElement('div');
      t.appendChild(g), e.write(t.innerHTML);
    }
  a.addEventListener(
    'resize',
    function () {
      clearTimeout(d), (d = setTimeout(c, 300));
    },
    !1
  ),
    a.addEventListener(
      'pageshow',
      function (a) {
        a.persisted && (clearTimeout(d), (d = setTimeout(c, 300)));
      },
      !1
    ),
    'complete' === e.readyState
      ? (e.body.style.fontSize = 12 * i + 'px')
      : e.addEventListener(
          'DOMContentLoaded',
          function () {
            e.body.style.fontSize = 12 * i + 'px';
          },
          !1
        ),
    c(),
    (k.dpr = a.dpr = i),
    (k.refreshRem = c),
    (k.rem2px = function (a) {
      var b = parseFloat(a) * this.rem;
      return 'string' == typeof a && a.match(/rem$/) && (b += 'px'), b;
    }),
    (k.px2rem = function (a) {
      var b = parseFloat(a) / this.rem;
      return 'string' == typeof a && a.match(/px$/) && (b += 'rem'), b;
    });
})(window, window.lib || (window.lib = {}));