text: ! function(e, n) {
  	"function" == typeof define && (define.amd || define.cmd) ? define(function() {
  		return n(e)
  	}) : n(e, !0)
  }(this, function(o, e) {
  	if (!o.jWeixin) {
  		var n, c = {
  				config: "preVerifyJSAPI",
  				onMenuShareTimeline: "menu:share:timeline",
  				onMenuShareAppMessage: "menu:share:appmessage",
  				onMenuShareQQ: "menu:share:qq",
  				onMenuShareWeibo: "menu:share:weiboApp",
  				onMenuShareQZone: "menu:share:QZone",
  				previewImage: "imagePreview",
  				getLocation: "geoLocation",
  				openProductSpecificView: "openProductViewWithPid",
  				addCard: "batchAddCard",
  				openCard: "batchViewCard",
  				chooseWXPay: "getBrandWCPayRequest",
  				openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
  				startSearchBeacons: "startMonitoringBeacons",
  				stopSearchBeacons: "stopMonitoringBeacons",
  				onSearchBeacons: "onBeaconsInRange",
  				consumeAndShareCard: "consumedShareCard",
  				openAddress: "editAddress"
  			},
  			a = function() {
  				var e = {};
  				for (var n in c) e[c[n]] = n;
  				return e
  			}(),
  			i = o.document,
  			t = i.title,
  			r = navigator.userAgent.toLowerCase(),
  			s = navigator.platform.toLowerCase(),
  			d = !(!s.match("mac") && !s.match("win")),
  			u = -1 != r.indexOf("wxdebugger"),
  			l = -1 != r.indexOf("micromessenger"),
  			p = -1 != r.indexOf("android"),
  			f = -1 != r.indexOf("iphone") || -1 != r.indexOf("ipad"),
  			m = (n = r.match(/micromessenger\/(\d+\.\d+\.\d+)/) || r.match(/micromessenger\/(\d+\.\d+)/)) ? n[1] : "",
  			g = {
  				initStartTime: L(),
  				initEndTime: 0,
  				preVerifyStartTime: 0,
  				preVerifyEndTime: 0
  			},
  			h = {
  				version: 1,
  				appId: "",
  				initTime: 0,
  				preVerifyTime: 0,
  				networkType: "",
  				isPreVerifyOk: 1,
  				systemType: f ? 1 : p ? 2 : -1,
  				clientVersion: m,
  				url: encodeURIComponent(location.href)
  			},
  			v = {},
  			S = {
  				_completes: []
  			},
  			y = {
  				state: 0,
  				data: {}
  			};
  		O(function() {
  			g.initEndTime = L()
  		});
  		var I = !1,
  			_ = [],
  			w = {
  				config: function(e) {
  					B("config", v = e);
  					var t = !1 !== v.check;
  					O(function() {
  						if (t) M(c.config, {
  							verifyJsApiList: C(v.jsApiList),
  							verifyOpenTagList: C(v.openTagList)
  						}, function() {
  							S._complete = function(e) {
  								g.preVerifyEndTime = L(), y.state = 1, y.data = e
  							}, S.success = function(e) {
  								h.isPreVerifyOk = 0
  							}, S.fail = function(e) {
  								S._fail ? S._fail(e) : y.state = -1
  							};
  							var t = S._completes;
  							return t.push(function() {
  								! function() {
  									if (!(d || u || v.debug || m < "6.0.2" || h.systemType < 0)) {
  										var i = new Image;
  										h.appId = v.appId, h.initTime = g.initEndTime - g.initStartTime, h.preVerifyTime = g.preVerifyEndTime -
  											g.preVerifyStartTime, w.getNetworkType({
  												isInnerInvoke: !0,
  												success: function(e) {
  													h.networkType = e.networkType;
  													var n = "https://open.weixin.qq.com/sdk/report?v=" + h.version + "&o=" + h.isPreVerifyOk + "&s=" +
  														h.systemType + "&c=" + h.clientVersion + "&a=" + h.appId + "&n=" + h.networkType + "&i=" + h.initTime +
  														"&p=" + h.preVerifyTime + "&u=" + h.url;
  													i.src = n
  												}
  											})
  									}
  								}()
  							}), S.complete = function(e) {
  								for (var n = 0, i = t.length; n < i; ++n) t[n]();
  								S._completes = []
  							}, S
  						}()), g.preVerifyStartTime = L();
  						else {
  							y.state = 1;
  							for (var e = S._completes, n = 0, i = e.length; n < i; ++n) e[n]();
  							S._completes = []
  						}
  					}), w.invoke || (w.invoke = function(e, n, i) {
  						o.WeixinJSBridge && WeixinJSBridge.invoke(e, x(n), i)
  					}, w.on = function(e, n) {
  						o.WeixinJSBridge && WeixinJSBridge.on(e, n)
  					})
  				},
  				ready: function(e) {
  					0 != y.state ? e() : (S._completes.push(e), !l && v.debug && e())
  				},
  				error: function(e) {
  					m < "6.0.2" || (-1 == y.state ? e(y.data) : S._fail = e)
  				},
  				checkJsApi: function(e) {
  					M("checkJsApi", {
  						jsApiList: C(e.jsApiList)
  					}, (e._complete = function(e) {
  						if (p) {
  							var n = e.checkResult;
  							n && (e.checkResult = JSON.parse(n))
  						}
  						e = function(e) {
  							var n = e.checkResult;
  							for (var i in n) {
  								var t = a[i];
  								t && (n[t] = n[i], delete n[i])
  							}
  							return e
  						}(e)
  					}, e))
  				},
  				onMenuShareTimeline: function(e) {
  					P(c.onMenuShareTimeline, {
  						complete: function() {
  							M("shareTimeline", {
  								title: e.title || t,
  								desc: e.title || t,
  								img_url: e.imgUrl || "",
  								link: e.link || location.href,
  								type: e.type || "link",
  								data_url: e.dataUrl || ""
  							}, e)
  						}
  					}, e)
  				},
  				onMenuShareAppMessage: function(n) {
  					P(c.onMenuShareAppMessage, {
  						complete: function(e) {
  							"favorite" === e.scene ? M("sendAppMessage", {
  								title: n.title || t,
  								desc: n.desc || "",
  								link: n.link || location.href,
  								img_url: n.imgUrl || "",
  								type: n.type || "link",
  								data_url: n.dataUrl || ""
  							}) : M("sendAppMessage", {
  								title: n.title || t,
  								desc: n.desc || "",
  								link: n.link || location.href,
  								img_url: n.imgUrl || "",
  								type: n.type || "link",
  								data_url: n.dataUrl || ""
  							}, n)
  						}
  					}, n)
  				},
  				onMenuShareQQ: function(e) {
  					P(c.onMenuShareQQ, {
  						complete: function() {
  							M("shareQQ", {
  								title: e.title || t,
  								desc: e.desc || "",
  								img_url: e.imgUrl || "",
  								link: e.link || location.href
  							}, e)
  						}
  					}, e)
  				},
  				onMenuShareWeibo: function(e) {
  					P(c.onMenuShareWeibo, {
  						complete: function() {
  							M("shareWeiboApp", {
  								title: e.title || t,
  								desc: e.desc || "",
  								img_url: e.imgUrl || "",
  								link: e.link || location.href
  							}, e)
  						}
  					}, e)
  				},
  				onMenuShareQZone: function(e) {
  					P(c.onMenuShareQZone, {
  						complete: function() {
  							M("shareQZone", {
  								title: e.title || t,
  								desc: e.desc || "",
  								img_url: e.imgUrl || "",
  								link: e.link || location.href
  							}, e)
  						}
  					}, e)
  				},
  				updateTimelineShareData: function(e) {
  					M("updateTimelineShareData", {
  						title: e.title,
  						link: e.link,
  						imgUrl: e.imgUrl
  					}, e)
  				},
  				updateAppMessageShareData: function(e) {
  					M("updateAppMessageShareData", {
  						title: e.title,
  						desc: e.desc,
  						link: e.link,
  						imgUrl: e.imgUrl
  					}, e)
  				},
  				startRecord: function(e) {
  					M("startRecord", {}, e)
  				},
  				stopRecord: function(e) {
  					M("stopRecord", {}, e)
  				},
  				onVoiceRecordEnd: function(e) {
  					P("onVoiceRecordEnd", e)
  				},
  				playVoice: function(e) {
  					M("playVoice", {
  						localId: e.localId
  					}, e)
  				},
  				pauseVoice: function(e) {
  					M("pauseVoice", {
  						localId: e.localId
  					}, e)
  				},
  				stopVoice: function(e) {
  					M("stopVoice", {
  						localId: e.localId
  					}, e)
  				},
  				onVoicePlayEnd: function(e) {
  					P("onVoicePlayEnd", e)
  				},
  				uploadVoice: function(e) {
  					M("uploadVoice", {
  						localId: e.localId,
  						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
  					}, e)
  				},
  				downloadVoice: function(e) {
  					M("downloadVoice", {
  						serverId: e.serverId,
  						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
  					}, e)
  				},
  				translateVoice: function(e) {
  					M("translateVoice", {
  						localId: e.localId,
  						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
  					}, e)
  				},
  				chooseImage: function(e) {
  					M("chooseImage", {
  						scene: "1|2",
  						count: e.count || 9,
  						sizeType: e.sizeType || ["original", "compressed"],
  						sourceType: e.sourceType || ["album", "camera"]
  					}, (e._complete = function(e) {
  						if (p) {
  							var n = e.localIds;
  							try {
  								n && (e.localIds = JSON.parse(n))
  							} catch (e) {}
  						}
  					}, e))
  				},
  				getLocation: function(e) {},
  				previewImage: function(e) {
  					M(c.previewImage, {
  						current: e.current,
  						urls: e.urls
  					}, e)
  				},
  				uploadImage: function(e) {
  					M("uploadImage", {
  						localId: e.localId,
  						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
  					}, e)
  				},
  				downloadImage: function(e) {
  					M("downloadImage", {
  						serverId: e.serverId,
  						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
  					}, e)
  				},
  				getLocalImgData: function(e) {
  					!1 === I ? (I = !0, M("getLocalImgData", {
  						localId: e.localId
  					}, (e._complete = function(e) {
  						if (I = !1, 0 < _.length) {
  							var n = _.shift();
  							wx.getLocalImgData(n)
  						}
  					}, e))) : _.push(e)
  				},
  				getNetworkType: function(e) {
  					M("getNetworkType", {}, (e._complete = function(e) {
  						e = function(e) {
  							var n = e.errMsg;
  							e.errMsg = "getNetworkType:ok";
  							var i = e.subtype;
  							if (delete e.subtype, i) e.networkType = i;
  							else {
  								var t = n.indexOf(":"),
  									o = n.substring(t + 1);
  								switch (o) {
  									case "wifi":
  									case "edge":
  									case "wwan":
  										e.networkType = o;
  										break;
  									default:
  										e.errMsg = "getNetworkType:fail"
  								}
  							}
  							return e
  						}(e)
  					}, e))
  				},
  				openLocation: function(e) {
  					M("openLocation", {
  						latitude: e.latitude,
  						longitude: e.longitude,
  						name: e.name || "",
  						address: e.address || "",
  						scale: e.scale || 28,
  						infoUrl: e.infoUrl || ""
  					}, e)
  				},
  				getLocation: function(e) {
  					M(c.getLocation, {
  						type: (e = e || {}).type || "wgs84"
  					}, (e._complete = function(e) {
  						delete e.type
  					}, e))
  				},
  				hideOptionMenu: function(e) {
  					M("hideOptionMenu", {}, e)
  				},
  				showOptionMenu: function(e) {
  					M("showOptionMenu", {}, e)
  				},
  				closeWindow: function(e) {
  					M("closeWindow", {}, e = e || {})
  				},
  				hideMenuItems: function(e) {
  					M("hideMenuItems", {
  						menuList: e.menuList
  					}, e)
  				},
  				showMenuItems: function(e) {
  					M("showMenuItems", {
  						menuList: e.menuList
  					}, e)
  				},
  				hideAllNonBaseMenuItem: function(e) {
  					M("hideAllNonBaseMenuItem", {}, e)
  				},
  				showAllNonBaseMenuItem: function(e) {
  					M("showAllNonBaseMenuItem", {}, e)
  				},
  				scanQRCode: function(e) {
  					M("scanQRCode", {
  						needResult: (e = e || {}).needResult || 0,
  						scanType: e.scanType || ["qrCode", "barCode"]
  					}, (e._complete = function(e) {
  						if (f) {
  							var n = e.resultStr;
  							if (n) {
  								var i = JSON.parse(n);
  								e.resultStr = i && i.scan_code && i.scan_code.scan_result
  							}
  						}
  					}, e))
  				},
  				openAddress: function(e) {
  					M(c.openAddress, {}, (e._complete = function(e) {
  						e = function(e) {
  							return e.postalCode = e.addressPostalCode, delete e.addressPostalCode, e.provinceName = e.proviceFirstStageName,
  								delete e.proviceFirstStageName, e.cityName = e.addressCitySecondStageName, delete e.addressCitySecondStageName,
  								e.countryName = e.addressCountiesThirdStageName, delete e.addressCountiesThirdStageName, e.detailInfo = e
  								.addressDetailInfo, delete e.addressDetailInfo, e
  						}(e)
  					}, e))
  				},
  				openProductSpecificView: function(e) {
  					M(c.openProductSpecificView, {
  						pid: e.productId,
  						view_type: e.viewType || 0,
  						ext_info: e.extInfo
  					}, e)
  				},
  				addCard: function(e) {
  					for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
  						var r = n[t],
  							a = {
  								card_id: r.cardId,
  								card_ext: r.cardExt
  							};
  						i.push(a)
  					}
  					M(c.addCard, {
  						card_list: i
  					}, (e._complete = function(e) {
  						var n = e.card_list;
  						if (n) {
  							for (var i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
  								var o = n[i];
  								o.cardId = o.card_id, o.cardExt = o.card_ext, o.isSuccess = !!o.is_succ, delete o.card_id, delete o.card_ext,
  									delete o.is_succ
  							}
  							e.cardList = n, delete e.card_list
  						}
  					}, e))
  				},
  				chooseCard: function(e) {
  					M("chooseCard", {
  						app_id: v.appId,
  						location_id: e.shopId || "",
  						sign_type: e.signType || "SHA1",
  						card_id: e.cardId || "",
  						card_type: e.cardType || "",
  						card_sign: e.cardSign,
  						time_stamp: e.timestamp + "",
  						nonce_str: e.nonceStr
  					}, (e._complete = function(e) {
  						e.cardList = e.choose_card_info, delete e.choose_card_info
  					}, e))
  				},
  				openCard: function(e) {
  					for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
  						var r = n[t],
  							a = {
  								card_id: r.cardId,
  								code: r.code
  							};
  						i.push(a)
  					}
  					M(c.openCard, {
  						card_list: i
  					}, e)
  				},
  				consumeAndShareCard: function(e) {
  					M(c.consumeAndShareCard, {
  						consumedCardId: e.cardId,
  						consumedCode: e.code
  					}, e)
  				},
  				chooseWXPay: function(e) {
  					M(c.chooseWXPay, V(e), e)
  				},
  				openEnterpriseRedPacket: function(e) {
  					M(c.openEnterpriseRedPacket, V(e), e)
  				},
  				startSearchBeacons: function(e) {
  					M(c.startSearchBeacons, {
  						ticket: e.ticket
  					}, e)
  				},
  				stopSearchBeacons: function(e) {
  					M(c.stopSearchBeacons, {}, e)
  				},
  				onSearchBeacons: function(e) {
  					P(c.onSearchBeacons, e)
  				},
  				openEnterpriseChat: function(e) {
  					M("openEnterpriseChat", {
  						useridlist: e.userIds,
  						chatname: e.groupName
  					}, e)
  				},
  				launchMiniProgram: function(e) {
  					M("launchMiniProgram", {
  						targetAppId: e.targetAppId,
  						path: function(e) {
  							if ("string" == typeof e && 0 < e.length) {
  								var n = e.split("?")[0],
  									i = e.split("?")[1];
  								return n += ".html", void 0 !== i ? n + "?" + i : n
  							}
  						}(e.path),
  						envVersion: e.envVersion
  					}, e)
  				},
  				openBusinessView: function(e) {
  					M("openBusinessView", {
  						businessType: e.businessType,
  						queryString: e.queryString || "",
  						envVersion: e.envVersion
  					}, (e._complete = function(n) {
  						if (p) {
  							var e = n.extraData;
  							if (e) try {
  								n.extraData = JSON.parse(e)
  							} catch (e) {
  								n.extraData = {}
  							}
  						}
  					}, e))
  				},
  				miniProgram: {
  					navigateBack: function(e) {
  						e = e || {}, O(function() {
  							M("invokeMiniProgramAPI", {
  								name: "navigateBack",
  								arg: {
  									delta: e.delta || 1
  								}
  							}, e)
  						})
  					},
  					navigateTo: function(e) {
  						O(function() {
  							M("invokeMiniProgramAPI", {
  								name: "navigateTo",
  								arg: {
  									url: e.url
  								}
  							}, e)
  						})
  					},
  					redirectTo: function(e) {
  						O(function() {
  							M("invokeMiniProgramAPI", {
  								name: "redirectTo",
  								arg: {
  									url: e.url
  								}
  							}, e)
  						})
  					},
  					switchTab: function(e) {
  						O(function() {
  							M("invokeMiniProgramAPI", {
  								name: "switchTab",
  								arg: {
  									url: e.url
  								}
  							}, e)
  						})
  					},
  					reLaunch: function(e) {
  						O(function() {
  							M("invokeMiniProgramAPI", {
  								name: "reLaunch",
  								arg: {
  									url: e.url
  								}
  							}, e)
  						})
  					},
  					postMessage: function(e) {
  						O(function() {
  							M("invokeMiniProgramAPI", {
  								name: "postMessage",
  								arg: e.data || {}
  							}, e)
  						})
  					},
  					getEnv: function(e) {
  						O(function() {
  							e({
  								miniprogram: "miniprogram" === o.__wxjs_environment
  							})
  						})
  					}
  				}
  			},
  			T = 1,
  			k = {};
  		return i.addEventListener("error", function(e) {
  			if (!p) {
  				var n = e.target,
  					i = n.tagName,
  					t = n.src;
  				if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i)
  					if (-1 != t.indexOf("wxlocalresource://")) {
  						e.preventDefault(), e.stopPropagation();
  						var o = n["wx-id"];
  						if (o || (o = T++, n["wx-id"] = o), k[o]) return;
  						k[o] = !0, wx.ready(function() {
  							wx.getLocalImgData({
  								localId: t,
  								success: function(e) {
  									n.src = e.localData
  								}
  							})
  						})
  					}
  			}
  		}, !0), i.addEventListener("load", function(e) {
  			if (!p) {
  				var n = e.target,
  					i = n.tagName;
  				n.src;
  				if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) {
  					var t = n["wx-id"];
  					t && (k[t] = !1)
  				}
  			}
  		}, !0), e && (o.wx = o.jWeixin = w), w
  	}
  
  	function M(n, e, i) {
  		o.WeixinJSBridge ? WeixinJSBridge.invoke(n, x(e), function(e) {
  			A(n, e, i)
  		}) : B(n, i)
  	}
  
  	function P(n, i, t) {
  		o.WeixinJSBridge ? WeixinJSBridge.on(n, function(e) {
  			t && t.trigger && t.trigger(e), A(n, e, i)
  		}) : B(n, t || i)
  	}
  
  	function x(e) {
  		return (e = e || {}).appId = v.appId, e.verifyAppId = v.appId, e.verifySignType = "sha1", e.verifyTimestamp = v.timestamp +
  			"", e.verifyNonceStr = v.nonceStr, e.verifySignature = v.signature, e
  	}
  
  	function V(e) {
  		return {
  			timeStamp: e.timestamp + "",
  			nonceStr: e.nonceStr,
  			package: e.package,
  			paySign: e.paySign,
  			signType: e.signType || "SHA1"
  		}
  	}
  
  	function A(e, n, i) {
  		"openEnterpriseChat" != e && "openBusinessView" !== e || (n.errCode = n.err_code), delete n.err_code, delete n.err_desc,
  			delete n.err_detail;
  		var t = n.errMsg;
  		t || (t = n.err_msg, delete n.err_msg, t = function(e, n) {
  				var i = e,
  					t = a[i];
  				t && (i = t);
  				var o = "ok";
  				if (n) {
  					var r = n.indexOf(":");
  					"confirm" == (o = n.substring(r + 1)) && (o = "ok"), "failed" == o && (o = "fail"), -1 != o.indexOf("failed_") &&
  						(o = o.substring(7)), -1 != o.indexOf("fail_") && (o = o.substring(5)), "access denied" != (o = (o = o.replace(
  							/_/g, " ")).toLowerCase()) && "no permission to execute" != o || (o = "permission denied"), "config" == i &&
  						"function not exist" == o && (o = "ok"), "" == o && (o = "fail")
  				}
  				return n = i + ":" + o
  			}(e, t), n.errMsg = t), (i = i || {})._complete && (i._complete(n), delete i._complete), t = n.errMsg || "", v.debug &&
  			!i.isInnerInvoke && alert(JSON.stringify(n));
  		var o = t.indexOf(":");
  		switch (t.substring(o + 1)) {
  			case "ok":
  				i.success && i.success(n);
  				break;
  			case "cancel":
  				i.cancel && i.cancel(n);
  				break;
  			default:
  				i.fail && i.fail(n)
  		}
  		i.complete && i.complete(n)
  	}
  
  	function C(e) {
  		if (e) {
  			for (var n = 0, i = e.length; n < i; ++n) {
  				var t = e[n],
  					o = c[t];
  				o && (e[n] = o)
  			}
  			return e
  		}
  	}
  
  	function B(e, n) {
  		if (!(!v.debug || n && n.isInnerInvoke)) {
  			var i = a[e];
  			i && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || "")
  		}
  	}
  
  	function L() {
  		return (new Date).getTime()
  	}
  
  	function O(e) {
  		l && (o.WeixinJSBridge ? e() : i.addEventListener && i.addEventListener("WeixinJSBridgeReady", e, !1))
  	}
  });
  