<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><link id="ico" rel="shortcut icon"/><meta name="viewport" content="width=device-width,initial-scale=1"><title>广碳云 GLODON CARBON CLOUD</title><script>// 重写方法
		window.Number.prototype.customToFixed = function (d) {
        var s = this + '' // number -> string

        if (!d) d = 0 // 参数默认值

        if (s.indexOf('.') == -1) s += '.' // 格式化数字字符串，如 '100' -> '100.'）

        s += new Array(d + 1).join('0') //若 d = 2, 则 '100.' -> '100.00', '100.123' -> '100.12300'

        if (
          new RegExp('^(-|\\+)?(\\d+(\\.\\d{0,' + (d + 1) + '})?)\\d*$').test(s)
        ) {
          var s = '0' + RegExp.$2, // $2 为匹配到完整数字，如 '100.666' -> '0100.666'
            pm = RegExp.$1, // $1 正负符号
            a = RegExp.$3.length, // $3 获取包含 . 即后面需要 d + 1 长度的数值
            b = true

          if (a == d + 2) {
            // a 长度包含了 . 和 对应 d 长度的后一位
            
            a = s.match(/\d/g) // 获取数字部分字符串

            // 判断最后完整数字字符最后一位是否 > 4, 即是否需要四舍五入
            if (parseInt(a[a.length - 1]) > 4) {
              for (var i = a.length - 2; i >= 0; i--) {
                // 倒序遍历
                a[i] = parseInt(a[i]) + 1 // 进一
                if (a[i] == 10) {
                  // 满 10 进制，本位置 0 ，前一位进一
                  a[i] = 0
                  b = i != 1 // 当前遍历是到第二位时，b = false，第一位为 0
                } else break // 没满 10 直接跳出循环
              }
            }

            // 只获取小数点前后的数字，通过 . 拼接
            s = a
              .join('')
              .replace(new RegExp('(\\d+)(\\d{' + d + '})\\d$'), '$1.$2')
          }

          if (b) s = s.substr(1) // 删除首位的 0
          return (pm + s).replace(/\.$/, '') // 以 . 结尾替换成空字符
        }

		window.String.prototype.customToFixed = function (d) {
			var d = Number(this);
			return d.customToFixed(d);
		}

        // 不符合正则，直接转 string 返回
        return this + ''
      }</script>
      <script>
  window.chatConfig = { 
    header: true,
    token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE4MDkwNDkwMDQsInJvIjoicmVzb3VyY2UiLCJ0ZW4iOiJqem50eXdiIiwicmlkIjoiYmY4ZTgwZjgtYjg1YS00ZmUxLWE0MDAtMzQwNjkxMjYxMDM0IiwicGR0IjoiY3Zmb3JjZSIsImNvbXMiOlsiZGF0YSIsImNoYXQiLCJjb3BpbG90IiwiYWlzaG9wIiwibWNwbWdyIiwia25vd2xlZGdlVXBsb2FkIl0sImV4dCI6eyJ0IjoiYSJ9LCJzaWQiOjE3NjM2OTI3MDF9.aoa9V4LF47u9KGpAFaKEBKsnJO5WvIZI8UNHyrHHSNE',
    iconUrl:'',
    iconContainerStyle: {
      width: '40px',
      height: '40px',
      borderRadius: '50%',
      padding: '2px',
    }
  };
</script>
<script
  type="text/javascript"
  src="https://cv-cdn.obs.cn-north-4.myhuaweicloud.com/glodon/libs/embed/4.1.0/embed.umd.cjs" defer
></script>
      <script>let reportLoading = false;
		let reportStatus = 'none';
		window.Report = [];
		window.Report.methods = "_init track defineCom listen onError changeApi".split(" ");
		window.Report.factory = function(b) {
			return function() {
				try {
					var a = Array.prototype.slice.call(arguments);
					a.unshift(b);
					window.Report.push(a);
					return window.Report;
				}catch(e) {
					console.log(e)
				}
			};
		};
		for (var i = 0; i < window.Report.methods.length; i++) {
			var key = window.Report.methods[i];
			window.Report[key] = window.Report.factory(key);
		}
		window.Report.load = function(b, x) {
			if(reportStatus != 'none') return
			if (!document.getElementById("report-js")) {
				reportLoading = true;
				reportStatus = 'start';
				var a = document.createElement("script");
				var verDate = new Date();
				var verStr =
				verDate.getFullYear().toString() +
				verDate.getMonth().toString() +
				verDate.getDate().toString();

				a.type = "text/javascript";
				a.id = "report-js";
				a.async = !0;
				a.src = "https://aecore.glodon.com/static/prod-ops/sdk/isv/wdc.js?v=" + verStr;
				a.onerror = function() {
					console.log("report sdk load failed");
				};
				let sessionId=new Date().getTime()+'';
				a.onload = function() {
					reportLoading = false;
					reportStatus = 'finish';
					Report.listen({
						onError: function(obj) {
							console.log(obj);
						}
					});
					Report.defineCom({
						pcode: "-1",
						ver: "v1.0.0",
						sessionid: sessionId,
					});
				}
				
				window.Report.changeApi("prod")
				var c = document.getElementsByTagName("script")[0];
				c.parentNode.insertBefore(a, c);
				window.Report._init(b);
			}
		};</script><link rel="icon" href="/gccWeb/favicon.ico"><link href="/gccWeb/css/vendor.d43219ebc333214f4a66.css" rel="stylesheet"><link href="/gccWeb/css/main.62c1e2842692ce55f5dd.css" rel="stylesheet"></head><body><div id="root"></div><script>if(location.href.indexOf('edu-') > -1 && location.href.indexOf('gccWeb') > -1) {
			document.querySelector('title').innerHTML = '广碳云 教育版'
		}else if(location.href.indexOf('edu-') > -1 && location.href.indexOf('gccCompWeb') > -1) {
			document.querySelector('title').innerHTML = '广碳云 大赛版'
		}</script><script src="/gccWeb/js/vendor.ee48d247ed070e7cdf28.js"></script><script src="/gccWeb/js/main.970b13160f23841ed5f1.js"></script></body></html>
