js 数组中的方法 [1,2,3].filter((v)=>v===2)

[1,2,3].filter((v)=>v===2) 直接这样写会报错

Uncaught TypeError: Cannot read property 'filter' of undefined

这是什么原因?

5个回答

Uncaught TypeError: Cannot read property 'filter' of undefined
这个错误说明 xxx.filter 前面的xxx的值是undefined。

应该是你[1,2,3].filter((v)=>v===2)代码的上一行代码结尾处没有写;分号。
导致第二行开始的[1,2,3]成了上一行结尾处对象的属性下标。

比如

var obj = {a:"asd"}
[1,2,3].filter((v)=>v===2)

{a:"asd"}后面没有写;分号,就会把这两行合起来执行。
var obj = {a:"asd"}[1,2,3].filter((v)=>v===2)
{a:"asd"}[1,2,3]就是访问{a:"asd"}对象的[3]属性,结果自然是 undefined

qq_40086260
qq_40086260 正解!!
4 个月之前 回复

没有报错,哈哈

<script>
    alert([1,2,3].filter((v)=>v===2));
</script>
guangcaiwudong
Kevin.Y.K 回复qq_40086260: 去掉了也没有任何问题
4 个月之前 回复
qq_40086260
qq_40086260 你把alert去掉
4 个月之前 回复

你用的什么浏览器?浏览器版本问题吗

(function(){

console.log( [1,2,3].filter(function(v){ return v === 2}) );
})(function(){
if (!Array.prototype.filter){
Array.prototype.filter = function(fun){

if (this === void 0 || this === null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== "function")
throw new TypeError();
var res = [];
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
for (var i = 0; i < len; i++){
if (i in t)
{
var val = t[i];
if (fun.call(thisArg, val, i, t))
res.push(val);
}
}
return res;
};
}
});

这是es6的语法 你用的es5版本的js吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于js的一个奇怪的问题
var obj={a:123}[1,2,3].filter(v=>v===2) 这段代码报错 但是 {a:123}[1,2,3].filter(v=>v===2) 这样写就不报错 哪位大神给我指点指点![图片说明](https://img-ask.csdn.net/upload/201912/22/1577015254_890752.png)
Vue用v-for循环渲染数组数据,数组数据更新时,视图没有更新
Vue用v-for循环渲染数组数据,数组数据更新时,视图没有更新,filter,和变异方法都试过了,好像都不行,看网上有说是重复实例化vue的原因,但是不太明白。 ![图片说明](https://img-ask.csdn.net/upload/201709/07/1504762347_121687.png) html是这样的 ![图片说明](https://img-ask.csdn.net/upload/201709/07/1504751164_800070.png) 要实现的是,点击触发but()方法,然后ajax获取数据,用v-for循环渲染出来。现在的问题是,第一次拿到数据可以正常渲染,当第二次触发方法时,ajax重新获取到新数据,vue中的data也已经改变了,但是页面上没改变。没弄懂怎么回事。
Element meta-data#com.amap.api.v2.apikey ... duplicated with element declared at AndroidManifest.xml
**问题** 在ionic项目打包的时候,出现了这样的错误: ![图片说明](https://img-ask.csdn.net/upload/201908/26/1566809989_115448.png) ** 分析** 我自己在网上找了一些类似的问题,说是androidmanifest文件中有重复,但是我仔细看过androidManifest文件,没有关于我报错这项重复的代码。 下面我贴出我AndroidManifest文件代码: ``` <?xml version='1.0' encoding='utf-8'?> <manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="io.ionic.starter" tools:ignore="GradleOverrides" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-feature android:name="android.hardware.telephony" android:required="false" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" /> <uses-permission android:name="android.permission.RECEIVE_MMS" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.WRITE_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" /> <permission android:name="io.ionic.starter.permission.JPUSH_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="io.ionic.starter.permission.JPUSH_MESSAGE" /> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true"> <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> <intent-filter android:label="@string/launcher_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:enabled="true" android:exported="false" android:name="cn.jpush.android.service.PushService" android:process=":remote"> <intent-filter> <action android:name="cn.jpush.android.intent.REGISTER" /> <action android:name="cn.jpush.android.intent.REPORT" /> <action android:name="cn.jpush.android.intent.PushService" /> <action android:name="cn.jpush.android.intent.PUSH_TIME" /> </intent-filter> </service> <provider android:authorities="io.ionic.starter.DataProvider" android:exported="true" android:name="cn.jpush.android.service.DataProvider" /> <service android:enabled="true" android:exported="true" android:name="cn.jpush.android.service.DaemonService"> <intent-filter> <action android:name="cn.jpush.android.intent.DaemonService" /> <category android:name="io.ionic.starter" /> </intent-filter> </service> <provider android:authorities="io.ionic.starter.DownloadProvider" android:exported="true" android:name="cn.jpush.android.service.DownloadProvider" /> <receiver android:enabled="true" android:name="cn.jpush.android.service.PushReceiver"> <intent-filter android:priority="1000"> <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /> <category android:name="io.ionic.starter" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <action android:name="android.intent.action.PACKAGE_REMOVED" /> <data android:scheme="package" /> </intent-filter> </receiver> <activity android:configChanges="orientation|keyboardHidden" android:exported="false" android:name="cn.jpush.android.ui.PopWinActivity" android:theme="@style/MyDialogStyle"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <category android:name="io.ionic.starter" /> </intent-filter> </activity> <service android:enabled="true" android:exported="false" android:name="cn.jpush.android.service.DownloadService" /> <receiver android:name="cn.jpush.android.service.AlarmReceiver" /> <receiver android:enabled="true" android:exported="false" android:name="cn.jiguang.cordova.push.JPushEventReceiver"> <intent-filter> <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" /> <category android:name="io.ionic.starter" /> </intent-filter> </receiver> <receiver android:enabled="true" android:exported="false" android:name="cn.jiguang.cordova.push.JPushReceiver"> <intent-filter> <action android:name="cn.jpush.android.intent.REGISTRATION" /> <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <action android:name="cn.jpush.android.intent.CONNECTION" /> <category android:name="io.ionic.starter" /> </intent-filter> </receiver> <activity android:configChanges="orientation|keyboardHidden" android:exported="false" android:name="cn.jpush.android.ui.PushActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"> <intent-filter> <action android:name="cn.jpush.android.ui.PushActivity" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="io.ionic.starter" /> </intent-filter> </activity> <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default" /> <meta-data android:name="JPUSH_APPKEY" android:value="............................................" /> <service android:name="com.amap.api.location.APSService" /> <meta-data android:name="com.amap.api.v2.apikey" android:value="................................................" /> <meta-data android:name="com.amap.api.v2.apikey" android:value="$API_KEY" /> <provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="org.apache.cordova.camera.FileProvider"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/camera_provider_paths" /> </provider> </application> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-sdk android:minSdkVersion="19" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> </manifest> ``` 问题找了好久也没有解决,哪位大神能帮忙看看。
关于设置时间数组的问题
我定义了这样一个数组 ``` const totalTimes = ['6:05','6:15','6:20','6:25','6:40','6:45','6:55','7:00','8:00','9:00'] const inStation = [10,20,50,60,40,70,50,80,20,10] const outStation =[30,40,35,65,0,40,20,30,10,20] const totalStation = inStation.map(function(v,i){ return v+outStation[i] }) ``` 设置五分钟的时间轴 ``` //5-24总时间 var m = 5; var n = -5; var arr=[]; for(var i=0;i<229;i++){ n+=5; if(n>55){ n = 0; m+=1 } arr.push(m+":"+(n>9?n:"0"+n)); } ``` 进行五分钟的时间补全 ``` //数据设置 const last = totalTimes[totalTimes.length-1] const length = arr.indexOf(last) +1 const resXtimeArray = arr.slice(0,length) let resTotalPassenger = [] let resInPassenger =[] let resOutPassenger =[] let totalNum = 0 let inNum = 0 let outNum = 0 resXtimeArray.map((value,index) => { if(totalTimes.indexOf(value) !== -1) { resTotalPassenger[index] = totalStation[totalNum++] resInPassenger[index] = inStation[inNum++] resOutPassenger[index] = outStation[outNum++] } else { resTotalPassenger[index] = 0 resInPassenger[index] = 0 resOutPassenger[index] = 0 } }) ``` 然后进行数据轴为10分钟的两两补全 ``` tenMinuteSel(){ //定义x轴数组 this.xAixsTimeData = this.xAixsTotalData.filter((value,index)=>{ if(index%2===0){ return true } }) //总乘客 let resTotal = [] this.yAxisTotalPassenger.filter((item,index,arr)=>{ if((index+1)%2 ===0){ let sumTotal = (arr[index+1]||0)+(arr[index]||0); resTotal.push(sumTotal) } }) resTotal.unshift(this.yAxisTotalPassenger[0]) this.resTotalPassenger =[] this.resTotalPassenger = [].concat(resTotal) //出站乘客 let resOut = [] this.yAxisOutPassenger.filter((item,index,arr)=>{ if((index+1)%2 ===0){ let sumOut = (arr[index+1]|| 0)+(arr[index]||0); resOut.push(sumOut) } }) resOut.unshift(this.yAxisOutPassenger[0]) this.resOutPassenger =[] this.resOutPassenger = [].concat(resOut) //定义 进入的乘客相加 let resIn = [] this.yAxisInPassenger.filter((item,index,arr)=>{ if((index+1)%2 ===0){ let sum = (arr[index+1]|| 0)+(arr[index]||0); resIn.push(sum) } }) resIn.unshift(this.yAxisInPassenger[0]) this.resInPassenger =[] this.resInPassenger = [].concat(resIn) this.drawPassengerChart() }, ``` 这样设置的话,我的时间有'9:05'的值话,会多出来放到'9:10'中,我该怎么设置能确定多余的数后,在坐标轴之间保留原来的05的时间轴,变成 '8:50','9:00','9:05','9:10'
求大佬帮忙看下如何解密,或者帮忙给下解密思路!
/* *Description: Theme Javascript *Author: 0000 *Website: 0000 *Mail: 0000 *Weibo: 0000 *Version: 1.2(2019-07-29) */ "use strict"; !(function () { try { if (parent != self && (parent.document.domain != document.domain || (document.referrer && !/^http(s)?:\/\/[.\w-]+\.raogui\.com\//i.test(document.referrer)))) { throw new Error("can't be iframed"); } } catch (e) { debugger; window.open(location.href, "_top"); } })(); (function (e) { Date.now = Date.now || function () { return +(new Date) }, e.ias = function (t) { function u() { var t; i.onChangePage(function (e, t, r) { s && s.setPage(e, r), n.onPageChange.call(this, e, r, t) }); if (n.triggerPageThreshold > 0) a(); else if (e(n.next).attr("href")) { var u = r.getCurrentScrollOffset(n.scrollContainer); E(function () { p(u) }) } return s && s.havePage() && (l(), t = s.getPage(), r.forceScrollTop(function () { var n; t > 1 ? (v(t), n = h(!0), e("html, body").scrollTop(n)) : a() })), o } function a() { c(), n.scrollContainer.scroll(f) } function f() { var e, t; e = r.getCurrentScrollOffset(n.scrollContainer), t = h(), e >= t && (m() >= n.triggerPageThreshold ? (l(), E(function () { p(e) })) : p(e)) } function l() { n.scrollContainer.unbind("scroll", f) } function c() { e(n.pagination).hide() } function h(t) { var r, i; return r = e(n.container).find(n.item).last(), r.size() === 0 ? 0 : (i = r.offset().top + r.height(), t || (i += n.thresholdMargin), i) } function p(t, r) { var s; s = e(n.next).attr("href"); if (!s) return n.noneleft && e(n.container).find(n.item).last().after(n.noneleft), l(); if (n.beforePageChange && e.isFunction(n.beforePageChange) && n.beforePageChange(t, s) === !1) return; i.pushPages(t, s), l(), y(), d(s, function (t, i) { var o = n.onLoadItems.call(this, i), u; o !== !1 && (e(i).hide(), u = e(n.container).find(n.item).last(), u.after(i), e(i).fadeIn()), s = e(n.next, t).attr("href"), e(n.pagination).replaceWith(e(n.pagination, t)), b(), c(), s ? a() : l(), n.onRenderComplete.call(this, i), r && r.call(this) }) } function d(t, r, i) { var s = [], o, u = Date.now(), a, f; i = i || n.loaderDelay, e.get(t, null, function (t) { o = e(n.container, t).eq(0), 0 === o.length && (o = e(t).filter(n.container).eq(0)), o && o.find(n.item).each(function () { s.push(this) }), r && (f = this, a = Date.now() - u, a < i ? setTimeout(function () { r.call(f, t, s) }, i - a) : r.call(f, t, s)) }, "html") } function v(t) { var n = h(!0); n > 0 && p(n, function () { l(), i.getCurPageNum(n) + 1 < t ? (v(t), e("html,body").animate({ scrollTop: n }, 400, "swing")) : (e("html,body").animate({ scrollTop: n }, 1e3, "swing"), a()) }) } function m() { var e = r.getCurrentScrollOffset(n.scrollContainer); return i.getCurPageNum(e) } function g() { var t = e(".ias_loader"); return t.size() === 0 && (t = e('<div class="ias_loader">' + n.loader + "</div>"), t.hide()), t } function y() { var t = g(), r; n.customLoaderProc !== !1 ? n.customLoaderProc(t) : (r = e(n.container).find(n.item).parent().last(), r.after(t), t.fadeIn()) } function b() { var e = g(); e.remove() } function w(t) { var r = e(".ias_trigger"); return r.size() === 0 && (r = e('<div class="ias_trigger"><a href="#">' + n.trigger + "</a></div>"), r.hide()), e("a", r).unbind("click").bind("click", function () { return S(), t.call(), !1 }), r } function E(t) { var r = w(t), i; n.customTriggerProc !== !1 ? n.customTriggerProc(r) : (i = e(n.container).find(n.item).parent().last(), i.after(r), r.fadeIn()) } function S() { var e = w(); e.remove() } var n = e.extend({}, e.ias.defaults, t), r = new e.ias.util, i = new e.ias.paging(n.scrollContainer), s = n.history ? new e.ias.history : !1, o = this; u() }, e.ias.defaults = { container: "#container", scrollContainer: e(window), item: ".item", pagination: "#pagination", next: ".next", noneleft: !1, loader: '<img src="images/loader.gif"/>', loaderDelay: 600, triggerPageThreshold: 3, trigger: "Load more items", thresholdMargin: 0, history: !0, onPageChange: function () {}, beforePageChange: function () {}, onLoadItems: function () {}, onRenderComplete: function () {}, customLoaderProc: !1, customTriggerProc: !1 }, e.ias.util = function () { function i() { e(window).load(function () { t = !0 }) } var t = !1, n = !1, r = this; i(), this.forceScrollTop = function (i) { e("html,body").scrollTop(0), n || (t ? (i.call(), n = !0) : setTimeout(function () { r.forceScrollTop(i) }, 1)) }, this.getCurrentScrollOffset = function (e) { var t, n; return e.get(0) === window ? t = e.scrollTop() : t = e.offset().top, n = e.height(), t + n } }, e.ias.paging = function () { function s() { e(window).scroll(o) } function o() { var t, s, o, f, l; t = i.getCurrentScrollOffset(e(window)), s = u(t), o = a(t), r !== s && (f = o[0], l = o[1], n.call({}, s, f, l)), r = s } function u(e) { for (var n = t.length - 1; n > 0; n--) if (e > t[n][0]) return n + 1; return 1 } function a(e) { for (var n = t.length - 1; n >= 0; n--) if (e > t[n][0]) return t[n]; return null } var t = [ [0, document.location.toString()] ], n = function () {}, r = 1, i = new e.ias.util; s(), this.getCurPageNum = function (t) { return t = t || i.getCurrentScrollOffset(e(window)), u(t) }, this.onChangePage = function (e) { n = e }, this.pushPages = function (e, n) { t.push([e, n]) } }, e.ias.history = function () { function n() { t = !!(window.history && history.pushState && history.replaceState), t = !1 } var e = !1, t = !1; n(), this.setPage = function (e, t) { this.updateState({ page: e }, "", t) }, this.havePage = function () { return this.getState() !== !1 }, this.getPage = function () { var e; return this.havePage() ? (e = this.getState(), e.page) : 1 }, this.getState = function () { var e, n, r; if (t) { n = history.state; if (n && n.ias) return n.ias } else { e = window.location.hash.substring(0, 7) === "#/page/"; if (e) return r = parseInt(window.location.hash.replace("#/page/", ""), 10), { page: r } } return !1 }, this.updateState = function (t, n, r) { e ? this.replaceState(t, n, r) : this.pushState(t, n, r) }, this.pushState = function (n, r, i) { var s; t ? history.pushState({ ias: n }, r, i) : (s = n.page > 0 ? "#/page/" + n.page : "", window.location.hash = s), e = !0 }, this.replaceState = function (e, n, r) { t ? history.replaceState({ ias: e }, n, r) : this.pushState(e, n, r) } } })(jQuery); (function () { var a, b, c, d, e, f = function (a, b) { return function () { return a.apply(b, arguments) } }, g = [].indexOf || function (a) { for (var b = 0, c = this.length; c > b; b++) if (b in this && this[b] === a) return b; return -1 }; b = function () { function a() {} return a.prototype.extend = function (a, b) { var c, d; for (c in b) d = b[c], null == a[c] && (a[c] = d); return a }, a.prototype.isMobile = function (a) { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a) }, a.prototype.addEvent = function (a, b, c) { return null != a.addEventListener ? a.addEventListener(b, c, !1) : null != a.attachEvent ? a.attachEvent("on" + b, c) : a[b] = c }, a.prototype.removeEvent = function (a, b, c) { return null != a.removeEventListener ? a.removeEventListener(b, c, !1) : null != a.detachEvent ? a.detachEvent("on" + b, c) : delete a[b] }, a.prototype.innerHeight = function () { return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight }, a }(), c = this.WeakMap || this.MozWeakMap || (c = function () { function a() { this.keys = [], this.values = [] } return a.prototype.get = function (a) { var b, c, d, e, f; for (f = this.keys, b = d = 0, e = f.length; e > d; b = ++d) if (c = f[b], c === a) return this.values[b] }, a.prototype.set = function (a, b) { var c, d, e, f, g; for (g = this.keys, c = e = 0, f = g.length; f > e; c = ++e) if (d = g[c], d === a) return void(this.values[c] = b); return this.keys.push(a), this.values.push(b) }, a }()), a = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a = function () { function a() { "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.") } return a.notSupported = !0, a.prototype.observe = function () {}, a }()), d = this.getComputedStyle || function (a) { return this.getPropertyValue = function (b) { var c; return "float" === b && (b = "styleFloat"), e.test(b) && b.replace(e, function (a, b) { return b.toUpperCase() }), (null != (c = a.currentStyle) ? c[b] : void 0) || null }, this }, e = /(\-([a-z]){1})/g, this.WOW = function () { function e(a) { null == a && (a = {}), this.scrollCallback = f(this.scrollCallback, this), this.scrollHandler = f(this.scrollHandler, this), this.start = f(this.start, this), this.scrolled = !0, this.config = this.util().extend(a, this.defaults), this.animationNameCache = new c } return e.prototype.defaults = { boxClass: "wow", animateClass: "animated", offset: 0, mobile: !0, live: !0 }, e.prototype.init = function () { var a; return this.element = window.document.documentElement, "interactive" === (a = document.readyState) || "complete" === a ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = [] }, e.prototype.start = function () { var b, c, d, e; if (this.stopped = !1, this.boxes = function () { var a, c, d, e; for (d = this.element.querySelectorAll("." + this.config.boxClass), e = [], a = 0, c = d.length; c > a; a++) b = d[a], e.push(b); return e }.call(this), this.all = function () { var a, c, d, e; for (d = this.boxes, e = [], a = 0, c = d.length; c > a; a++) b = d[a], e.push(b); return e }.call(this), this.boxes.length) if (this.disabled()) this.resetStyle(); else { for (e = this.boxes, c = 0, d = e.length; d > c; c++) b = e[c], this.applyStyle(b, !0); this.util().addEvent(window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50) } return this.config.live ? new a(function (a) { return function (b) { var c, d, e, f, g; for (g = [], e = 0, f = b.length; f > e; e++) d = b[e], g.push(function () { var a, b, e, f; for (e = d.addedNodes || [], f = [], a = 0, b = e.length; b > a; a++) c = e[a], f.push(this.doSync(c)); return f }.call(a)); return g } }(this)).observe(document.body, { childList: !0, subtree: !0 }) : void 0 }, e.prototype.stop = function () { return this.stopped = !0, this.util().removeEvent(window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0 }, e.prototype.sync = function () { return a.notSupported ? this.doSync(this.element) : void 0 }, e.prototype.doSync = function (a) { var b, c, d, e, f; if (!this.stopped) { if (null == a && (a = this.element), 1 !== a.nodeType) return; for (a = a.parentNode || a, e = a.querySelectorAll("." + this.config.boxClass), f = [], c = 0, d = e.length; d > c; c++) b = e[c], g.call(this.all, b) < 0 ? (this.applyStyle(b, !0), this.boxes.push(b), this.all.push(b), f.push(this.scrolled = !0)) : f.push(void 0); return f } }, e.prototype.show = function (a) { return this.applyStyle(a), a.className = "" + a.className + " " + this.config.animateClass }, e.prototype.applyStyle = function (a, b) { var c, d, e; return d = a.getAttribute("data-wow-duration"), c = a.getAttribute("data-wow-delay"), e = a.getAttribute("data-wow-iteration"), this.animate(function (f) { return function () { return f.customStyle(a, b, d, c, e) } }(this)) }, e.prototype.animate = function () { return "requestAnimationFrame" in window ? function (a) { return window.requestAnimationFrame(a) } : function (a) { return a() } }(), e.prototype.resetStyle = function () { var a, b, c, d, e; for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) a = d[b], e.push(a.setAttribute("style", "visibility: visible;")); return e }, e.prototype.customStyle = function (a, b, c, d, e) { return b && this.cacheAnimationName(a), a.style.visibility = b ? "hidden" : "visible", c && this.vendorSet(a.style, { animationDuration: c }), d && this.vendorSet(a.style, { animationDelay: d }), e && this.vendorSet(a.style, { animationIterationCount: e }), this.vendorSet(a.style, { animationName: b ? "none" : this.cachedAnimationName(a) }), a }, e.prototype.vendors = ["moz", "webkit"], e.prototype.vendorSet = function (a, b) { var c, d, e, f; f = []; for (c in b) d = b[c], a["" + c] = d, f.push(function () { var b, f, g, h; for (g = this.vendors, h = [], b = 0, f = g.length; f > b; b++) e = g[b], h.push(a["" + e + c.charAt(0).toUpperCase() + c.substr(1)] = d); return h }.call(this)); return f }, e.prototype.vendorCSS = function (a, b) { var c, e, f, g, h, i; for (e = d(a), c = e.getPropertyCSSValue(b), i = this.vendors, g = 0, h = i.length; h > g; g++) f = i[g], c = c || e.getPropertyCSSValue("-" + f + "-" + b); return c }, e.prototype.animationName = function (a) { var b; try { b = this.vendorCSS(a, "animation-name").cssText } catch (c) { b = d(a).getPropertyValue("animation-name") } return "none" === b ? "" : b }, e.prototype.cacheAnimationName = function (a) { return this.animationNameCache.set(a, this.animationName(a)) }, e.prototype.cachedAnimationName = function (a) { return this.animationNameCache.get(a) }, e.prototype.scrollHandler = function () { return this.scrolled = !0 }, e.prototype.scrollCallback = function () { var a; return !this.scrolled || (this.scrolled = !1, this.boxes = function () { var b, c, d, e; for (d = this.boxes, e = [], b = 0, c = d.length; c > b; b++) a = d[b], a && (this.isVisible(a) ? this.show(a) : e.push(a)); return e }.call(this), this.boxes.length || this.config.live) ? void 0 : this.stop() }, e.prototype.offsetTop = function (a) { for (var b; void 0 === a.offsetTop;) a = a.parentNode; for (b = a.offsetTop; a = a.offsetParent;) b += a.offsetTop; return b }, e.prototype.isVisible = function (a) { var b, c, d, e, f; return c = a.getAttribute("data-wow-offset") || this.config.offset, f = window.pageYOffset, e = f + Math.min(this.element.clientHeight, this.util().innerHeight()) - c, d = this.offsetTop(a), b = d + a.clientHeight, e >= d && b >= f }, e.prototype.util = function () { return null != this._util ? this._util : this._util = new b }, e.prototype.disabled = function () { return !this.config.mobile && this.util().isMobile(navigator.userAgent) }, e }() }).call(this); eval(function (p, a, c, k, e, d) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) { d[e(c)] = k[c] || e(c) } k = [function (e) { return d[e] }]; e = function () { return '\\w+' }; c = 1 }; while (c--) { if (k[c]) { p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) } } return p }('(5($){$.J.L=5(r){8 1={d:0,A:0,b:"h",v:"N",3:4};6(r){$.D(1,r)}8 m=9;6("h"==1.b){$(1.3).p("h",5(b){8 C=0;m.t(5(){6(!$.k(9,1)&&!$.l(9,1)){$(9).z("o")}j{6(C++>1.A){g B}}});8 w=$.M(m,5(f){g!f.e});m=$(w)})}g 9.t(5(){8 2=9;$(2).c("s",$(2).c("i"));6("h"!=1.b||$.k(2,1)||$.l(2,1)){6(1.u){$(2).c("i",1.u)}j{$(2).K("i")}2.e=B}j{2.e=x}$(2).T("o",5(){6(!9.e){$("<V />").p("X",5(){$(2).Y().c("i",$(2).c("s"))[1.v](1.Z);2.e=x}).c("i",$(2).c("s"))}});6("h"!=1.b){$(2).p(1.b,5(b){6(!2.e){$(2).z("o")}})}})};$.k=5(f,1){6(1.3===E||1.3===4){8 7=$(4).F()+$(4).O()}j{8 7=$(1.3).n().G+$(1.3).F()}g 7<=$(f).n().G-1.d};$.l=5(f,1){6(1.3===E||1.3===4){8 7=$(4).I()+$(4).U()}j{8 7=$(1.3).n().q+$(1.3).I()}g 7<=$(f).n().q-1.d};$.D($.P[\':\'],{"Q-H-7":"$.k(a, {d : 0, 3: 4})","R-H-7":"!$.k(a, {d : 0, 3: 4})","S-y-7":"$.l(a, {d : 0, 3: 4})","q-y-7":"!$.l(a, {d : 0, 3: 4})"})})(W);', 62, 62, '|settings|self|container|window|function|if|fold|var|this||event|attr|threshold|loaded|element|return|scroll|src|else|belowthefold|rightoffold|elements|offset|appear|bind|left|options|original|each|placeholder|effect|temp|true|of|trigger|failurelimit|false|counter|extend|undefined|height|top|the|width|fn|removeAttr|lazyload|grep|show|scrollTop|expr|below|above|right|one|scrollLeft|img|jQuery|load|hide|effectspeed'.split('|'), 0, {})); function copyright() { document.oncontextmenu = function () { return false }; document.onselectstart = function () { return false }; function closepage() { window.close() }; if ((window.console && (console.firebug || console.table && /firebug/i.test(console.table()))) || (typeof opera == 'object' && typeof opera.postError == 'function' && console.profile.length > 0)) { closepage() }; if (typeof console.profiles == "object" && console.profiles.length > 0) { closepage() }; window.onresize = function () { if ((window.outerHeight - window.innerHeight) > 200) { closepage() } } } $(function () {; var encode_version = 'sojson.v5', nwtpi = '__0x4e8f9', __0x4e8f9 = ['BMOlb8K1Rw==', 'Nn0DMw==', 'VlLDnMKlcg==', 'PcO0wrQTwr8RGw==', 'YcK2w5TDjX3Dl8KpJQPDvsKpw5kR', 'wpjCm8KUMhw9wq8bw6bDrMKsaw==', 'dDLDuinDgcKwclM=', 'GnrDtMOhwrfCmzJn', 'X3HCqMK0w5Y=', 'eFZSw7XDvMOwwqI1w77DoSlzw4UMDjfCpxXDj8K0wqU7w4s=', 'wrPDusKDdMKoBFQzPUluw4NRF8Kmwrwn', 'w441w63CkhfCiXwU', 'dcKww5XDgw==', 'w4bDhBvDu8OxFVI=', 'w6JdZMObL8KLw4UI', 'MsKYMUfDssOsw6vDhA==', 'KsKLw7LDuBEb', 'NArDvCfCknHCo8KfDcK0w4vDucKkJml7w6DDlMKiwqHCmgbpmKjorarliLzkvbbnmZw=', 'wo5VwpXDngZ8bnBawos=', 'LcKvw5QxbA0Gw54=', 'dMKzw5jDmXc=', 'w55Dw7rCusO/HmDCrg==', 'w5xsw7fCgxnChHVG', 'SsKHJA==', 'ZwQ0', 'UgjDlhjDmQ==', 'BcK2wpJZwpLCkQ==', 'aRvDoT4=', 'w7XDlcKjw47CsA==', 'SsKFwq9oCg==', 'XARHdMO5', 'w7/DhcKnVxdG', 'f8K6w5jDnXTDjw==', 'bBIp', 'w7nDhcKyTExQwq/CqR/DncO5E1vDucK9w6HCocOzw70/GWkodsKawoJawqjDmTJPecKMPwfCs3XDiwkvw6TCj8OawpnDsipJwojDjMK1wod8PEZRAiTDpDJxJcO+w43DicKqO8KIERhvwrPCiMOsaXrDrcOMRHBFw5vCocKzw7zDrEglL8KIw7IC', 'wod0w7rCgwjCjHdPwrI=', 'ZMKww5vDiXPDlcOrO1M=', '5LmG6IGg5Yux6ZiAwq0SHUkvGMKhPcOZ', 'fAzDunvDijfDkMKM', 'WcONDsK1wohUw7c=', 'O8OfYE4=', 'w7ckw6A=', 'w5zCryldw4QwTA==', 'eBHDvHw=', 'Zh1ld8O3', 'c3fDv8KVbQ==', 'KsKfw6bDnhMeFzo=', 'wrxKf8ObNsKe', 'IcOPw79EVD0XXA==', 'wr3DoMOHwpxH', 'wrbDncKzw7HCjQ==', 'T8KyKMOpBQ==', 'YMKMwp9IFQ5Kwrk=', 'w4PDhRvDucOVHFPCvsK0', 'wqFKecOdMA==', 'w44Mw4VMREDCpxdlfQ==', 'KBlpWMKu', 'U8K9w5Y=', 'wrPCnhs=', 'WcOTCMKzwpsdw643wqg=', 'wrLDusKpw4zCmUnDtcO8Gw==', 'wqLDmsKDw4DCqQ==', 'wptJKMKnRA==', 'LERV', 'IHUfMB/Dqg==', 'JxBuXMKxwr8=', 'dwoLwqvCug==', 'JWtkB8Omw7jCoTvChmXCpg==', 'RcK6w7fDtk4=', 'fAHDsjbDnnfCjMKSH8K0woU=', 'ZSjDvTLDgw==', 'OMKSw6DDsRYRAzo=', 'BcOFBsK0wosRw5U+wq1oIA==', 'GXjDssOmwrXClg==', 'w5xyw7vChwo=', 'woF5w6zCiQLCiU1FwqY=', 'worDoMKsw6nCoQ==', 'Rk/DrMKSw7QywojDuQ==', 'ecOCD2wi', 'Pg7DvHTDiw==', 'w7nDj8KtXw1GwoTCpBrDgcO9', 'wrfDssO7wopj', 'w4LDpsK/w5BO', 'YQJuecOvwolLwqfDosOdwrs=', 'bwoMwrnClg==', 'w5AdwpXCuV0=', 'wpPCvRdLw54=', 'YcK+w5QNfA==', 'wr5OYMORLsKPw6oIw7wvwp4=', 'woFxwqBOTg==', 'wqtOacOdFA==', 'w5fDkhrDiMO4GkXCow==', 'S8Krw7MuXA==', 'w4DCgcKSLR49wqwbw7fCucOufWbDnXPCtQ==', 'YxEnH0E=', 'wplTE8KEWw==', 'fgo1wqjCjFEk', 'Q2zDj8KRUA==', 'PsKOwolPFA5GwrjDqMKawrnDjnLCpg==', 'woDDucKLw5dbw4IjfHg=', 'wqrCkDA=', 'VgpQbcO5', 'HsKjwpdXwo4=', 'w5fDqMK6w5lK', 'wpjDhR3Do8O9FUbCpcK0', 'S8KRPcOVBg==', 'L251w67Dlg==', 'w6DDhMK4w4DCksO6dB5BH8KA', 'WQVib0Q=', 'VG/DgcKVV07CqMOtcsORw44=', 'H2jDpcO7wpjCnTpswqs=', 'McOIEsKNwpQ=', 'TgbDrAfDmw==', 'wogLw51CCwHCsR0/ZQ==', 'aQDDvDzDk2bCqg==', 'w57Dq8Kaw5pTw58=', 'ZAzDvn3DkjvDvMKOLcKCw4Q=', 'w4XDnxzDp8O9FVHCow==', 'C8KvcMKREA==', 'w4UBw6fDlcO/', 'w44Mw5NGQUjCqxc/', 'PcOaMMKhw6M=', 'P8O8wqMDwrsJ', 'FsK3SsKzFg==', 'T0rDuw==', 'w4Ybwo7Ch18n', 'w5rDkxDDrMOgEw==', 'XArDtzLDtw==', 'alZFw6TDtsO8w7okw6M=', 'w55Aw6DCusO6Fm/CrQ==', 'VxFCZHc=', 'w5x3w7vCiBvDiTdHwrMww5nDjA4W', 'bAQjwrTDjk0jOzI=', 'w4FmwqzCml/CmS1Ww6Y=', 'w53DusKEw5ZJ', 'DRpTS8Kh', 'w7LDmzbDk8OE', 'chgjE1zDh8OMDsK4Ml8=', 'LBpqYsK8', 'w55dw7bCvsOsUyLCr8K8Dgp0wooHw43ClsK1KcKj', 'LiHCvsKiEcKB', 'wpQQw5dJS0TCkB46bzM=', 'woFiw4HCtcOc', 'VnzDmsK7w4w=', 'wpfCsMKCMTo=', 'WcKowrVJGw==', 'wrDDvcKTw6c=', 'w5oVworChUg=', 'LcOEw650XTkKW3vCiA==', 'cxbDqw==', 'worDl1HCtQ==', 'Qj/DswfDtg==', 'NMOSw6ti', 'w63Ds8Kvw5tN', 'H3I4NC4=', 'ZDnDng==', 'KMOSVXN9w7BuQ0I=', 'M8Obw7duTA==', 'w7/DhcKnVxdGwoTCpBrDgcO9', 'TgLDghrDvw==', 'w4QCw6rDj8K4wobCl3ES', 'U0TDr8K2w7Q2wrjDpsOSwohc', 'S8OeFmkb', 'OcKuw4TDk3/DkA==', 'wprCncKWIhE0woAEw7PDpsKz', 'AmnCocK8w4YPfsKZU8OWO8O8wooHwrQtB8O8wqM=', 'w5XDgww=', 'DMK3wp99wpbChMKYSg==', 'LMOZwqsdwrA=', 'A8OYwrM=', 'fQvDgw==', 'XzfCqsK6', 'axpKdg==', 'B8OVGMKz', 'KMKZXsKXHA==', 'dj8dwqfCjg==', 'bx8zwr8=', 'GsOfa1DClw==', 'VU7DpcK+w642wrjDpsOSwohc', 'eMOjJ8Kkw6DDj0tWdXoORcOfw5k=', 'aRrDoSM=', 'w5Ufw60=', 'A8KNP8OMEEQKO23DuBsvwoMVGnE0w7zDuXtiwpITWw==', 'Ixp2XsK3', 'wotwwq4=', 'b8KcOw==', 'wqPDk8KrVARXwq/CvRbDkMKuQAbCvg==', 'w5QIw6PDmcOiwovCoHAfVsKa', 'MsOUwpItwpM=', 'N8OkMsK6', 'ZMKtw5I=', 'woELw4Rc', 'U3LDhQ==', 'LiPCqsKnF8KewrtqwqhHwq/CqMO4cg==', 'w7zDuMKeYw==', 'OcK7w5TDjn3DksKpIwfDocOuw50M', 'TsKSN8ODHg==', 'GMK9w78Dwqc=', 'fANte8O7', 'aTbDkm7Dpg==', 'wr5BB8KGXCrDrMOj', 'ZcK7E1bDnQ==', 'wrPDqMKPZcK+DFQ8KQcmw5NUUMKiwqE=', 'KsO5wrUnwrIcBEk=', 'OMO0wrMIwrcTEEk=', 'H8K2wpZRwozCgMKoVWHDvgo=', 'MsKdNEvDocOo', 'AmLCq8Kow4xXJcKEEsOKOQ==', 'AnLCqMK0w4ZGfMOUHMOcOsKlw4oVwq4y', 'w4IEw73DhsO4wo/Cmg==', 'wq1PacO9NMKLw5oX', 'IGLDhsOLwpQ=', 'w6nDucKtSMKq', 'w4IVwo/CiU46ZXc=', 'YMKbw4U=', 'w77Dg8K4Vw1PwpPCpws=', 'OMKXw6vDuRobDTrDisOywpAb', 'wogew4NtS0DCoAE=', 'TCIIwoPCgQ==', 'KMOuwqI=', 'wqDDucOmwrJS', 'NMOZw7ppSzAFW3vCo8Oi', 'woJaw6bCscOs', 'KcOfdkjCgQ==', 'P8KFw5gXwqs=', 'w7HDjsKgw4HCkMOqRxZJH8KDw5DDucKD', 'b8OdA30Iw6s6UQY=', 'ax3Dpg==', 'ZkfDkcK8bw==', 'wplSw5LCncOF', 'wpBzw7DCgg==', 'Zg57ccOvwoA=', 'axA6NHo=', 'w7FNBsKkVA==', 'w4xwwqhESw==', 'w7LDp8KGw6rCiMOTwrlLXw==', 'dMKaNU7CqcKtw6XDh2k/', 'BsOtYcK7bA==', 'wrx2DsKtUQ==', 'wpFRw7fCnMOkHn/CsQ==', 'WcONCsKywpM=', 'KhFkeMKpwrbCnMK1', 'w6DDiMKjw7bCsw==', 'wpxMw4M=', 'aMOLC2A/w6kcUxNWw6E=', 'Fn8iETw=', 'wpzCl8KcKgs0woAEw7PDpsKz', 'OMKLw67DtAs=', 'BH7DuMO9wpjCljM=', 'fTLDjyrDkw==', 'BsKYw5wSwoNuam1Hw5wY', 'TWHDksKRUw==', 'w6gwwq7Cp3g=', 'wo3DssO6wrdB', 'LcOywrIRwq0=', 'wpUMw5VcZkbCthwv', 'MFHDksOOwps=', 'NMODA2E8w6U8UF4Lw7/DsyLDlQ==', 'wqRKfsO9NMKLw5oX', 'VCEVworCoA==', 'Zwh6d8O5wok=', 'QmnDiMKW', 'cx48E0bDjg==', 'dWbClsKfw4Q=', 'SMK9aMKbHBbDpsO6woZbwqE=', 'wrdACsKiWD8=', 'OcKsw53Dk3jDnsKxJBLDu8Kr', 'c8KQwp8=', 'AMKywolZwpPCi8OGTW/DvQ==', 'S8KfOsOFOlgT', 'N0lJw7s=', 'eW1kHMO2w7LCkDo=', 'J8O4wr8DwqoV', 'wqdKF8KzZw==', 'N8O+L8Klw6TDj0Y=', 'IsKVw6vDqQ==', 'Jh3DojjDgnfCvcOTHcKowpjCr8KxKmt7w6HDlsKyw67ChFFdw7QnAsKrw78Rcgk=', 'NMOiX8Kz', 'cxEnGE/Dh8OpBMK8Ilg=', 'eX1+AcOgw7jCkHrChHnCuzUhd1MqwpE=', 'PsKQwptIEQJXw7rCtMOVwrPDgnLCssKDw5LCoWo=', 'emcaPgrDu8K2w4dswpBaVMOdeEsfw4BQEA==', 'w5xpw6nCjx7CgGsHwrUxw4LDkQwQVsKhBw==', 'woDDucKfw5ZNw44pNGzDpTp9w4MQZMKZw5hW', 'wrPDv8KdeMKvAEpyJBxyw5JXHsOjwqZ4wqhg', 'w5wPwpDCjA==', 'w5jDgxLDpw==', 'w4DDv8KEw5M=', 'asK4w44=', 'w7LDusKAw7XCncOZwq5AF0BJw7vDncKJRiwV', 'ZQVhXMKgwrXCjsK0', 'Mg8uwrvDgkY7Ny3CqMKkbMKVJsO2wp8ZIysyOBbDjW5xwr4xwofDocOEw7If5pWv5o+76Lys5YWW5LiwewrCr8Oowrwlw63CuX0=', '5Lib5Lmj6aOs', 'w43DlcKnw47Ch8O0ZxNHCcKFw5XDvcKN', 'w7rDk8Kww4k=', 'woPDs8KEw7M=', 'cAg9FA==', 'wr/ChixGw5A=', 'wrrCkMKlLAQ=', 'w5MOwojCkg==', 'LsOfd07Cmxs/w6c=', 'Zwh5csOiwo9t', 'YwbDtX/DnSrDjMKWLcKDw4M=', 'BMK+wpw=', 'CsKvfsKLFBzDs8O3', 'wqXDt8K0w4nDhkTDt8OqEsOXQ0ZnwoXCvMOewqvDhcO+Ux3Cg8OraRbCmFslYWjCs8Kjw4MMF8Onw47CsMK6w4bDpcKdXVHDsMO/w5PDkmXCpcKPAUQ+w5Eewq/Dj8KvUhDDgArCpMKUwpbDq3rCmcOgF8OHEsKe', 'esKPPEfDjMOj', 'wpjDmhfDuMOgVxjCvsKlDzE=', 'RHnDrMOgwrfCnQ==', 'woNdw7zCqA==', 'N3sDIx/DpsKw', 'fw3Dq3/DnzrDhsKROMKQw4PDmcKbw7ZPUsOCbw==', 'eMO8L8K7w7E=', 'wrxKDsK1XC7Dq8O1', 'bXLDgcK7w5A=', 'WikkwrXCig==', 'c8KMwoJVBB9R', 'aMOLB2sww58rXgZA', 'LUVTOMO/', 'LcK7w5E9dQs=', 'wp7CqsK4', 'I3Y9', 'J8KAw7A9woA=', 'SMKtacKGHhzDoMO+', 'w4XDmhfDr8OxP1nCp8Ku', 'w7Maw4XDvsO7', 'ajjDtCfDg8K8', 'LcOWbFE=', 'dcK+w5LDkWjDlMKxIhY=', 'Zh8qwqHDjgU1OTrCog==', '6L+M5ZqD6aOv6YKg', 'UcKyw5tdwpbChMKYSj3CrxvCmxHCuGNgwoJIw6hiw5fCszPDtkd/woo3w4VYwrTDmQ==', 'M8OIw6loVDA=', 'wqFtwoF6SA==', 'SMKOwpRlAg==', 'dgPCnsKoEA==', 'QXDDlsKXVU/Cv8Ou', 'FsKPw4o4wrk=', 'w6fDvA7Dn8OM', 'CXfDqcOqwrI=', 'wrbCn8KJAR4=', 'P1haOMOq', 'KsKVw6vDsB4LAQ==', 'w6rDncKM', 'DnLDs8O5wrXCmyY=', 'w7zDkMK6', 'YQJ5', 'dcK6wr1zJw==', 'G8O1wpstwpg=', 'NcOqw7Rhdg==', 'wq/Dt8KXw63CgsOWwpVBSw==', 'P8OsYcKFaw==', 'DsKrbcKVEAc=', 'w5PDmxPDjsOT', 'b8KGN1U=', 'TSBFVsO3wph4wpnDpsOfwr3DnMObw5U=', 'amjCo8K3w7I=', 'Vg9kScOJ', 'a8K3GMOBFg==', 'eBoKL0E=', 'JAVzacKg', 'FMKracKdDhbDkcO/wpNEwrc=', 'CWjDsw==']; (function (_0x2b1eb9, _0x402612) { var _0x4b57ac = function (_0x2c1edb) { while (--_0x2c1edb) { _0x2b1eb9['push'](_0x2b1eb9['shift']()); } }; _0x4b57ac(++_0x402612); }(__0x4e8f9, 0x191)); var _0x18b1 = function (_0x169e03, _0xe16e03) { _0x169e03 = _0x169e03 - 0x0; var _0x476a1a = __0x4e8f9[_0x169e03]; if (_0x18b1['initialized'] === undefined) { (function () { var _0x46fa4d = typeof window !== 'undefined' ? window : typeof process === 'object' && typeof require === 'function' && typeof global === 'object' ? global : this; var _0x34c270 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; _0x46fa4d['atob'] || (_0x46fa4d['atob'] = function (_0x3ababe) { var _0x5c4cc8 = String(_0x3ababe)['replace'](/=+$/, ''); for (var _0x44aa32 = 0x0, _0x60bd64, _0x41f24a, _0x11b221 = 0x0, _0x5cbacf = ''; _0x41f24a = _0x5c4cc8['charAt'](_0x11b221++); ~_0x41f24a && (_0x60bd64 = _0x44aa32 % 0x4 ? _0x60bd64 * 0x40 + _0x41f24a : _0x41f24a, _0x44aa32++ % 0x4) ? _0x5cbacf += String['fromCharCode'](0xff & _0x60bd64 >> (-0x2 * _0x44aa32 & 0x6)) : 0x0) { _0x41f24a = _0x34c270['indexOf'](_0x41f24a); } return _0x5cbacf; }); }()); var _0x24ff89 = function (_0x46ff43, _0x1bd592) { var _0x456e7a = [], _0x2b56f5 = 0x0, _0x18c727, _0x158dfa = '', _0x75e5b = ''; _0x46ff43 = atob(_0x46ff43); for (var _0x156520 = 0x0, _0x2e93c1 = _0x46ff43['length']; _0x156520 < _0x2e93c1; _0x156520++) { _0x75e5b += '%' + ('00' + _0x46ff43['charCodeAt'](_0x156520)['toString'](0x10))['slice'](-0x2); } _0x46ff43 = decodeURIComponent(_0x75e5b); for (var _0x53d822 = 0x0; _0x53d822 < 0x100; _0x53d822++) { _0x456e7a[_0x53d822] = _0x53d822; } for (_0x53d822 = 0x0; _0x53d822 < 0x100; _0x53d822++) { _0x2b56f5 = (_0x2b56f5 + _0x456e7a[_0x53d822] + _0x1bd592['charCodeAt'](_0x53d822 % _0x1bd592['length'])) % 0x100; _0x18c727 = _0x456e7a[_0x53d822]; _0x456e7a[_0x53d822] = _0x456e7a[_0x2b56f5]; _0x456e7a[_0x2b56f5] = _0x18c727; } _0x53d822 = 0x0; _0x2b56f5 = 0x0; for (var _0x3bb312 = 0x0; _0x3bb312 < _0x46ff43['length']; _0x3bb312++) { _0x53d822 = (_0x53d822 + 0x1) % 0x100; _0x2b56f5 = (_0x2b56f5 + _0x456e7a[_0x53d822]) % 0x100; _0x18c727 = _0x456e7a[_0x53d822]; _0x456e7a[_0x53d822] = _0x456e7a[_0x2b56f5]; _0x456e7a[_0x2b56f5] = _0x18c727; _0x158dfa += String['fromCharCode'](_0x46ff43['charCodeAt'](_0x3bb312) ^ _0x456e7a[(_0x456e7a[_0x53d822] + _0x456e7a[_0x2b56f5]) % 0x100]); } return _0x158dfa; }; _0x18b1['rc4'] = _0x24ff89; _0x18b1['data'] = {}; _0x18b1['initialized'] = !![]; } var _0x499959 = _0x18b1['data'][_0x169e03]; if (_0x499959 === undefined) { if (_0x18b1['once'] === undefined) { _0x18b1['once'] = !![]; } _0x476a1a = _0x18b1['rc4'](_0x476a1a, _0xe16e03); _0x18b1['data'][_0x169e03] = _0x476a1a; } else { _0x476a1a = _0x499959; } return _0x476a1a; }; var s = document[_0x18b1('0x0', 'poVV')]; $(_0x18b1('0x1', 'HOk%'))[_0x18b1('0x2', 'peu@')](function () { var _0x2ca160 = { 'MZHoP': function _0x3decd3(_0x16a3c8, _0x486851) { return _0x16a3c8 === _0x486851; }, 'pTlMm': _0x18b1('0x3', 'c5s&'), 'SwYgV': function _0xf5556(_0x3be0d9, _0x53afb8) { return _0x3be0d9(_0x53afb8); }, 'JSlAp': _0x18b1('0x4', 'iPrm'), 'HwSat': function _0x26c655(_0x2b2eaf, _0x18393c) { return _0x2b2eaf + _0x18393c; }, 'jIVsc': function _0x5419b5(_0x1b84b6, _0x2e4ae2) { return _0x1b84b6 + _0x2e4ae2; }, 'bLvIp': function _0x5caf49(_0x9316e1, _0x258ecd) { return _0x9316e1 / _0x258ecd; }, 'MwNzA': function _0x112e0f(_0x49b5ea, _0x3843eb) { return _0x49b5ea - _0x3843eb; } }; if (this[_0x18b1('0x5', 'poVV')] == s['toString']()[_0x18b1('0x6', 'xGoY')]('#')[0x0]) { if (_0x2ca160['MZHoP']('QIn', _0x2ca160['pTlMm'])) { _0x2ca160[_0x18b1('0x7', 'jxGf')]($, this)['parents']('li')[_0x18b1('0x8', '$JJ@')]('on')[_0x18b1('0x9', '!9sF')](_0x2ca160['JSlAp'])['prev']()[_0x18b1('0xa', 'xx2s')]('on'); return ![]; } else { return _0x2ca160[_0x18b1('0xb', '#ps7')](_0x2ca160[_0x18b1('0xc', 'lh@T')](x + '%\x20', _0x2ca160[_0x18b1('0xd', 'e8lZ')](_0x2ca160['MwNzA'](selectortop[_0x18b1('0xe', 'Jf])')]()['top'], pos), 0x2)), 'px'); } } }); var useragent = navigator[_0x18b1('0xf', 'Hhu3')]; var ismobile = useragent[_0x18b1('0x10', '!9sF')]('Mobile'); $(_0x18b1('0x11', '^ow7'))[_0x18b1('0x12', 'punP')](function () { var _0x27a016 = { 'hDGwV': function _0x323626(_0x2717de, _0x2e3943) { return _0x2717de === _0x2e3943; }, 'cLChU': _0x18b1('0x13', '#tg('), 'xOTcJ': _0x18b1('0x14', 'iPrm'), 'DlKbt': function _0x2740a4(_0x3111a9, _0xcfb20e) { return _0x3111a9 === _0xcfb20e; }, 'ReFLR': function _0x32ef9b(_0x8af3ff, _0x148ee8) { return _0x8af3ff(_0x148ee8); }, 'yaLfX': _0x18b1('0x15', 'HOk%'), 'mFhcq': _0x18b1('0x16', 'B88Y') }; if (ismobile == null) { if (_0x27a016['hDGwV'](_0x27a016[_0x18b1('0x17', 'B88Y')], _0x27a016['xOTcJ'])) { var _0x57540d = $('.schfixed'); if (!_0x57540d['is'](e['target']) && _0x27a016[_0x18b1('0x18', 'c2IJ')](_0x57540d[_0x18b1('0x19', 'UICF')](e[_0x18b1('0x1a', ']T$c')])[_0x18b1('0x1b', 'punP')], 0x0)) { _0x27a016['ReFLR']($, _0x27a016[_0x18b1('0x1c', 'BP!&')])[_0x18b1('0x1d', '@Ajj')]('on'); } } else { window['location']['href'] = _0x27a016[_0x18b1('0x1e', 'o1e&')]($, this)['attr']('href'); } } else { $(this)['parent']()[_0x18b1('0x1f', 'zHa*')](_0x27a016[_0x18b1('0x20', 'zHa*')])[_0x18b1('0x21', '$JJ@')]()[_0x18b1('0x22', 'HOk%')](_0x27a016['mFhcq']); return ![]; } }); $(window)[_0x18b1('0x23', '8XdI')](function () { var _0x19ffc3 = { 'kQtNI': function _0x417bf0(_0x5c82b0, _0x30152b) { return _0x5c82b0(_0x30152b); }, 'czGRT': function _0x2f0a0d(_0x177056, _0x369008) { return _0x177056 <= _0x369008; }, 'VtIkO': function _0x59387e(_0x3fce41, _0x27cfe0) { return _0x3fce41(_0x27cfe0); }, 'PHmYV': function _0x256022(_0x517f64, _0xd93489) { return _0x517f64 > _0xd93489; }, 'zlyus': _0x18b1('0x24', 'ML%E') }; var _0x225a7c = _0x19ffc3['kQtNI']($, window)[_0x18b1('0x25', 'ML%E')](); var _0x5d0e6c = 0x0; if (_0x19ffc3['czGRT'](_0x225a7c, _0x5d0e6c)) { _0x19ffc3[_0x18b1('0x26', 'lh@T')]($, '.head')[_0x18b1('0x1d', '@Ajj')]('on'); } if (_0x19ffc3['PHmYV'](_0x225a7c, _0x5d0e6c)) { $(_0x19ffc3['zlyus'])[_0x18b1('0x27', '^5U)')]('on'); } }); $('.menuico')[_0x18b1('0x28', '6@cm')](function () { var _0x349a53 = { 'meuvf': function _0x1d6bac(_0x22835b, _0x302dd2) { return _0x22835b(_0x302dd2); }, 'BeowP': function _0x46af55(_0xa193d7, _0x17ea46) { return _0xa193d7(_0x17ea46); }, 'llWos': _0x18b1('0x29', 'poVV'), 'aaKtt': function _0x1ba980(_0x37e669, _0x55d162) { return _0x37e669(_0x55d162); }, 'bgiYg': '.schfixed,.schbox,.userico' }; _0x349a53['meuvf']($, this)[_0x18b1('0x2a', '1hv#')]('on'); _0x349a53[_0x18b1('0x2b', '#ps7')]($, _0x349a53[_0x18b1('0x2c', '!NH(')])[_0x18b1('0x2d', 'xGoY')]('on'); if (_0x349a53[_0x18b1('0x2e', 'BP!&')]($, _0x349a53[_0x18b1('0x2f', 'eq&O')])['hasClass']('on')) { _0x349a53[_0x18b1('0x30', 'iPrm')]($, _0x349a53[_0x18b1('0x31', '#tg(')])[_0x18b1('0x32', '!9sF')]('on'); } }); $('.schico.statepop')[_0x18b1('0x33', 'v0nK')](function () { var _0x2aeb3a = { 'gedcL': '.schbox', 'HrNzG': function _0x4b294c(_0x3c4870, _0x12400b) { return _0x3c4870(_0x12400b); } }; $(this)['nextAll'](_0x2aeb3a[_0x18b1('0x34', '!9sF')])[_0x18b1('0x35', 'Hhu3')]('on'); _0x2aeb3a[_0x18b1('0x36', '#tg(')]($, '.schinput')['focus'](); }); $(_0x18b1('0x37', 'x2hZ'))[_0x18b1('0x38', '6150')](function () { var _0x994af5 = { 'FvpAk': function _0x6620e4(_0xd3fa99, _0x44696e) { return _0xd3fa99(_0x44696e); }, 'HxChY': '.schbox' }; _0x994af5[_0x18b1('0x39', 'c2IJ')]($, this)[_0x18b1('0x3a', 'BP!&')](_0x994af5['HxChY'])['removeClass']('on'); }); $('.schico.statefixed\x20a')[_0x18b1('0x3b', 'jxGf')](function (_0x50c8aa) { var _0x490362 = { 'CgYsz': '6|1|3|5|4|2|0', 'ybRfw': function _0x4ce529(_0xc0c72, _0x2b28b4) { return _0xc0c72(_0x2b28b4); }, 'kKSbF': _0x18b1('0x3c', 'Jf])'), 'mxIhX': _0x18b1('0x3d', '!NH('), 'FhyVi': _0x18b1('0x3e', 'iPrm'), 'IgrPb': function _0x543f85(_0x4fa587, _0x1838fe) { return _0x4fa587(_0x1838fe); }, 'wDOcP': function _0x3c7754(_0x51d135, _0x3b260f) { return _0x51d135(_0x3b260f); }, 'WIFgx': 'slidedown' }; var _0x477d76 = _0x490362[_0x18b1('0x3f', 'xGoY')][_0x18b1('0x40', '$GBD')]('|'), _0x45e962 = 0x0; while (!![]) { switch (_0x477d76[_0x45e962++]) { case '0': _0x490362[_0x18b1('0x41', '!NH(')]($, _0x18b1('0x42', 'Hhu3'))[_0x18b1('0x43', 'e8lZ')](); continue; case '1': if (_0x490362['ybRfw']($, '.menuico,.menu')['hasClass']('on')) { _0x490362['ybRfw']($, _0x490362[_0x18b1('0x44', 'UICF')])[_0x18b1('0x45', 's8iX')]('on'); } continue; case '2': $(this)['nextAll'](_0x490362[_0x18b1('0x46', 'gXCZ')])[_0x18b1('0x47', 'jxGf')]('on'); continue; case '3': var _0x2ac533 = navigator[_0x18b1('0x48', '8XdI')]; continue; case '4': if (_0x49efe0) { if (_0x490362[_0x18b1('0x49', 'HOk%')] === _0x490362[_0x18b1('0x4a', 'zHa*')]) { _0x490362['IgrPb']($, _0x18b1('0x4b', '^ow7'))[_0x18b1('0x4c', 'zHa*')]({ 'scrollTop': 0x0 }, 0x0); } else { _0x490362['wDOcP']($, this)[_0x18b1('0x4d', '!NH(')]()[_0x18b1('0x4e', 'poVV')](_0x490362['WIFgx'])[_0x18b1('0x4f', 'Hhu3')]()['removeClass'](_0x490362['WIFgx']); return ![]; } } continue; case '5': var _0x49efe0 = !!_0x2ac533[_0x18b1('0x50', '*Lv0')](/\(i[^;]+;( U;)? CPU.+Mac OS X/); continue; case '6': event['stopPropagation'](); continue; } break; } }); $(document)[_0x18b1('0x51', 'c5s&')](function (_0x39ba7d) { var _0x37d201 = { 'kJvif': function _0x1c0598(_0x5bf9e4, _0x19269d) { return _0x5bf9e4(_0x19269d); }, 'oqNVn': _0x18b1('0x52', '^ow7'), 'pyNAn': function _0x34b7c8(_0xecd6f3, _0x83621b) { return _0xecd6f3 === _0x83621b; }, 'TdbcE': function _0x16f7a8(_0x3f461c, _0x4eeaed) { return _0x3f461c(_0x4eeaed); } }; var _0x4e9556 = _0x37d201[_0x18b1('0x53', 'ZBbP')]($, _0x37d201['oqNVn']); if (!_0x4e9556['is'](_0x39ba7d[_0x18b1('0x54', '9Zo#')]) && _0x37d201[_0x18b1('0x55', '*Lv0')](_0x4e9556[_0x18b1('0x56', '^5U)')](_0x39ba7d[_0x18b1('0x57', 'eq&O')])[_0x18b1('0x58', 'Hhu3')], 0x0)) { _0x37d201[_0x18b1('0x59', 'zHa*')]($, _0x18b1('0x5a', 'UICF'))['removeClass']('on'); } }); $(_0x18b1('0x5b', 'VvA8'))['on'](_0x18b1('0x5c', 'gXCZ'), function () { var _0x205b0f = { 'FoSpd': function _0x4b77e0(_0x3f23d1, _0x4c57ca) { return _0x3f23d1(_0x4c57ca); }, 'DmHXP': _0x18b1('0x5d', 'ML%E'), 'gojYy': function _0x4d1a74(_0x26d029, _0x1ffea7) { return _0x26d029(_0x1ffea7); }, 'IKYhz': 'cur', 'qWRjT': function _0x5284bf(_0x4ee918, _0x37b27b) { return _0x4ee918(_0x37b27b); }, 'yBstG': _0x18b1('0x5e', 'BP!&') }; var _0x11c306 = _0x18b1('0x5f', 'ML%E')[_0x18b1('0x60', '!NH(')]('|'), _0x3dd087 = 0x0; while (!![]) { switch (_0x11c306[_0x3dd087++]) { case '0': _0x205b0f[_0x18b1('0x61', 'punP')]($, _0x205b0f[_0x18b1('0x62', 'Hhu3')])[_0x18b1('0x63', '6150')]('on'); continue; case '1': _0x205b0f[_0x18b1('0x64', 'punP')]($, _0x18b1('0x65', 'VvA8'))['toggleClass'](_0x205b0f['IKYhz']); continue; case '2': $(_0x18b1('0x66', '!c$M'))[_0x18b1('0x67', '^ow7')]('on'); continue; case '3': _0x205b0f[_0x18b1('0x68', 'VvA8')]($, this)['toggleClass']('on'); continue; case '4': _0x205b0f[_0x18b1('0x69', '^5U)')]($, _0x205b0f[_0x18b1('0x6a', 'x2hZ')])['toggleClass'](_0x205b0f[_0x18b1('0x6b', 'Jf])')]); continue; } break; } }); $('')[_0x18b1('0x6c', 'lh@T')](_0x18b1('0x6d', 'eq&O'), function (_0x473bd4) { var _0xc7f29 = { 'JQfVD': function _0x42f7ab(_0x5a8c43, _0xfde413) { return _0x5a8c43 == _0xfde413; }, 'CyGdp': _0x18b1('0x6e', 'xx2s'), 'dgOHA': function _0x61ee20(_0x424977, _0x47a7a4) { return _0x424977 !== _0x47a7a4; }, 'KfUcT': 'lWK', 'kRoZC': function _0x144189(_0x5c06c4, _0x5cebfd) { return _0x5c06c4(_0x5cebfd); }, 'FlWKM': function _0x2e9626(_0x41be39, _0x3b3348) { return _0x41be39(_0x3b3348); }, 'QppfR': _0x18b1('0x6f', 'poVV'), 'gDzyn': function _0x176c8a(_0x4c296e, _0x42a54c) { return _0x4c296e === _0x42a54c; }, 'NWZed': '_trackPageview', 'xTZjl': _0x18b1('0x70', 'Hhu3'), 'Dahvb': 'href' }; if (_0xc7f29[_0x18b1('0x71', 'zHa*')](_0x473bd4[_0x18b1('0x72', 'xx2s')], _0xc7f29[_0x18b1('0x73', '!NH(')])) { if (_0xc7f29['dgOHA'](_0xc7f29[_0x18b1('0x74', ']T$c')], _0x18b1('0x75', 'zHa*'))) { var _0x2d3ede = _0x18b1('0x76', '6@cm')[_0x18b1('0x77', 'xx2s')]('|'), _0x257aa5 = 0x0; while (!![]) { switch (_0x2d3ede[_0x257aa5++]) { case '0': _0xc7f29['kRoZC']($, '.menu,.menuico')[_0x18b1('0x78', '1hv#')]('on'); continue; case '1': _0xc7f29[_0x18b1('0x79', 'zHa*')]($, _0x18b1('0x7a', 'c5s&'))[_0x18b1('0x7b', '^5U)')](_0xc7f29[_0x18b1('0x7c', '6@cm')]); continue; case '2': $(this)['toggleClass']('on'); continue; case '3': $(_0x18b1('0x7d', 'o1e&'))[_0x18b1('0x7e', 'x2hZ')]('on'); continue; case '4': $(_0x18b1('0x7f', 'VqsX'))['toggleClass'](_0x18b1('0x80', 'Hhu3')); continue; } break; } } else { _0xc7f29['FlWKM']($, this)[_0x18b1('0x81', '$GBD')]('on'); } } else { if (_0xc7f29[_0x18b1('0x82', '9Zo#')](_0x18b1('0x83', '9Zo#'), _0x18b1('0x84', '8Y#s'))) { window[_0x18b1('0x85', '!c$M')] && window[_0x18b1('0x86', 'gXCZ')][_0x18b1('0x87', 'HOk%')]([_0xc7f29[_0x18b1('0x88', '*Lv0')], _0xc7f29['FlWKM'](jQuery, _0xc7f29[_0x18b1('0x89', 'BP!&')])[_0x18b1('0x8a', 'BP!&')](_0xc7f29[_0x18b1('0x8b', 'peu@')], pageUrl)[0x0]['pathname']['replace'](/^[^\/]/, '/')]); } else { $(this)[_0x18b1('0x8c', '^5U)')]('on'); } } }); var $thisSrc = $(_0x18b1('0x8d', 'ZBbP'))[_0x18b1('0x8e', 'zHa*')](_0x18b1('0x8f', 'c5s&')); var $thisImg = $('.saleimglist\x20ul\x20li'); $(_0x18b1('0x90', 'e8lZ'))['addClass']('on'); $thisImg[_0x18b1('0x91', 'punP')](function () { var _0x377a2f = { 'tOiYq': function _0x2bd617(_0x72f78b, _0x1ccd47) { return _0x72f78b(_0x1ccd47); }, 'voRlD': _0x18b1('0x92', 'v0nK'), 'eVnRL': _0x18b1('0x93', '0456'), 'yICIM': _0x18b1('0x94', '1hv#') }; $(this)['addClass']('on')['siblings']()[_0x18b1('0x95', 'c5s&')]('on'); var _0x31b3b6 = _0x377a2f['tOiYq']($, this)['find'](_0x377a2f['voRlD'])['attr'](_0x377a2f['eVnRL']); $(_0x377a2f[_0x18b1('0x96', '9Zo#')])[_0x18b1('0x97', 'ZBbP')](_0x18b1('0x98', 'o1e&'), _0x31b3b6); }); var $firstImg = $('.saleimglist\x20ul\x20li.on\x20img')[_0x18b1('0x99', '^ow7')](_0x18b1('0x9a', 'jxGf')); $(_0x18b1('0x9b', '!c$M'))[_0x18b1('0x9c', '(p0(')]('src', $firstImg); $(_0x18b1('0x9d', 'o1e&'))[_0x18b1('0x9e', 'e8lZ')](function () { var _0x4cacd7 = { 'jJDvH': function _0x3fe346(_0x3d8e49, _0x1bb737) { return _0x3d8e49(_0x1bb737); }, 'yUKtX': function _0x385c95(_0x48d36b, _0x452dc1) { return _0x48d36b(_0x452dc1); } }; var _0xfa594c = _0x4cacd7[_0x18b1('0x9f', 'jyyG')]($, this)[_0x18b1('0xa0', 'xGoY')](); _0x4cacd7[_0x18b1('0xa1', 'poVV')]($, this)[_0x18b1('0xa2', 'c2IJ')]('on')['siblings']()['removeClass']('on'); _0x4cacd7[_0x18b1('0xa3', '0456')]($, _0x18b1('0xa4', '(p0('))['eq'](_0xfa594c)[_0x18b1('0xa5', '9Zo#')]('on')[_0x18b1('0xa6', '9Zo#')]()[_0x18b1('0xa7', '$GBD')]('on'); }); var $window = $(window); var $slide = $(_0x18b1('0xa8', '0456')); var $countup = $(_0x18b1('0xa9', 'VqsX')); var windowHeight = $window['height'](); $(_0x18b1('0xaa', 'VqsX'))['bind'](_0x18b1('0xab', 'c5s&'), function (_0x1055a8, _0x58fec7) { var _0x139372 = { 'WYAEq': function _0x4183cc(_0xd1cd67, _0x5df99e) { return _0xd1cd67(_0x5df99e); }, 'JyFBM': 'display' }; if (_0x58fec7 == !![]) { _0x139372['WYAEq']($, this)[_0x18b1('0xac', '!9sF')](_0x139372[_0x18b1('0xad', '8XdI')]); } else { _0x139372['WYAEq']($, this)['removeClass'](_0x18b1('0xab', 'c5s&')); } }); function newPos(_0x28a49c, _0x34e2c7, _0xec6741, _0x199bd8) { var _0x33c222 = { 'xVlHK': function _0x395348(_0x16796c, _0x15e30f) { return _0x16796c + _0x15e30f; }, 'tuGYu': function _0x50b6d0(_0x361c17, _0x39da41) { return _0x361c17 / _0x39da41; } }; return _0x33c222['xVlHK'](_0x28a49c + '%\x20', _0x33c222[_0x18b1('0xae', '(p0(')](_0x34e2c7[_0x18b1('0xaf', 'eq&O')]()['top'] - _0xec6741, 0x2)) + 'px'; } function Move() { var _0xeb13f2 = { 'BIONc': 'display', 'UnrOa': function _0x505c77(_0x9d062c, _0x382c38) { return _0x9d062c + _0x382c38; }, 'waunt': function _0x1dd262(_0x1bf7ce, _0x121c30) { return _0x1bf7ce / _0x121c30; }, 'MrcbD': _0x18b1('0xb0', 'Jf])'), 'FGwNT': function _0xe8d9d(_0x10f015, _0x3518fc, _0xb123b9, _0x4c2bf6, _0x5d69b7) { return _0x10f015(_0x3518fc, _0xb123b9, _0x4c2bf6, _0x5d69b7); } }; var _0x26c114 = $window[_0x18b1('0xb1', '1hv#')](); if (tpower[_0x18b1('0xb2', '$JJ@')]) { if ($slide[_0x18b1('0xb3', '^ow7')](_0xeb13f2[_0x18b1('0xb4', 'BP!&')])) { $slide[_0x18b1('0xb5', '9Zo#')]({ 'transform': _0xeb13f2[_0x18b1('0xb6', '#ps7')](_0x18b1('0xb7', 'xx2s'), Math[_0x18b1('0xb8', 'VvA8')](_0xeb13f2[_0x18b1('0xb9', 'peu@')](_0x26c114, 0x2))) + _0xeb13f2[_0x18b1('0xba', 'jyyG')] }); } } if (tpower[_0x18b1('0xbb', 's8iX')]) { if ($countup['hasClass'](_0xeb13f2['BIONc'])) { if (navigator[_0x18b1('0xbc', '6@cm')]['match'](/mobile/i)) { $countup[_0x18b1('0xbd', 'zHa*')]({ 'backgroundPosition': 0x32 % 0x0 }); } else { $countup['css']({ 'backgroundPosition': _0xeb13f2[_0x18b1('0xbe', 'jxGf')](newPos, 0x32, $countup, _0x26c114, 0x2) }); } } } } Move(); $window['resize'](function () { var _0x5808a5 = { 'igABM': function _0x530460(_0x3498c4) { return _0x3498c4(); } }; _0x5808a5[_0x18b1('0xbf', 'VvA8')](Move); }); $window[_0x18b1('0xc0', 'ML%E')](_0x18b1('0xc1', 'xGoY'), function () { var _0x39d79c = { 'kmtHP': function _0x1b8125(_0x198104) { return _0x198104(); } }; _0x39d79c[_0x18b1('0xc2', '6150')](Move); }); function headresponse() { var _0x4cf4b8 = { 'AfDml': function _0x542005(_0x1e71f5, _0x41c85c) { return _0x1e71f5(_0x41c85c); }, 'cSmha': _0x18b1('0xc3', 'c2IJ'), 'rivYW': function _0x4747dc(_0x46828b, _0x5b69b9) { return _0x46828b === _0x5b69b9; }, 'BkOFF': _0x18b1('0xc4', 'v0nK'), 'CLQTI': '5|4|3|1|6|0|2', 'mFZDh': function _0x221732(_0x3bd48e, _0x254bbe) { return _0x3bd48e(_0x254bbe); }, 'eoVbf': _0x18b1('0xc5', 'lh@T'), 'ZJRGB': function _0x33dd82(_0x18ff1d, _0x5bbca6) { return _0x18ff1d(_0x5bbca6); }, 'xenJr': '.schinput', 'oZeIP': '.menuico,.menu', 'zYJBL': _0x18b1('0xc6', '0456') }; var _0x17e84 = _0x4cf4b8[_0x18b1('0xc7', '6S![')]($, window)['width'](); if (_0x17e84 <= 0x320) { $(_0x4cf4b8[_0x18b1('0xc8', 'c2IJ')])[_0x18b1('0xc9', 'VvA8')]('m'); $(_0x18b1('0xca', 'HOk%'))[_0x18b1('0xcb', 'punP')]('m'); } else { if (_0x4cf4b8[_0x18b1('0xcc', 's8iX')](_0x18b1('0xcd', 'VvA8'), 'lyP')) { $('.head')[_0x18b1('0xce', '6@cm')]('m'); _0x4cf4b8['AfDml']($, _0x4cf4b8[_0x18b1('0xcf', ']T$c')])[_0x18b1('0xd0', 'x2hZ')]('m'); } else { var _0x19b96a = _0x4cf4b8['CLQTI'][_0x18b1('0xd1', '$JJ@')]('|'), _0x120d2f = 0x0; while (!![]) { switch (_0x19b96a[_0x120d2f++]) { case '0': _0x4cf4b8['mFZDh']($, this)[_0x18b1('0xd2', '8XdI')](_0x4cf4b8[_0x18b1('0xd3', '8Y#s')])[_0x18b1('0xd4', 'jyyG')]('on'); continue; case '1': var _0x3bc5a8 = !!_0x14f10f[_0x18b1('0xd5', 'jxGf')](/\(i[^;]+;( U;)? CPU.+Mac OS X/); continue; case '2': _0x4cf4b8[_0x18b1('0xd6', 'eq&O')]($, _0x4cf4b8[_0x18b1('0xd7', '#ps7')])[_0x18b1('0xd8', '9Zo#')](); continue; case '3': var _0x14f10f = navigator[_0x18b1('0xd9', '^ow7')]; continue; case '4': if (_0x4cf4b8[_0x18b1('0xda', '8XdI')]($, _0x18b1('0xdb', '6@cm'))[_0x18b1('0xdc', '!9sF')]('on')) { $(_0x4cf4b8['oZeIP'])['removeClass']('on'); } continue; case '5': event['stopPropagation'](); continue; case '6': if (_0x3bc5a8) { _0x4cf4b8[_0x18b1('0xdd', 'BP!&')]($, _0x4cf4b8['zYJBL'])['animate']({ 'scrollTop': 0x0 }, 0x0); } continue; } break; } } } } $window[_0x18b1('0xde', 'xGoY')](function () { headresponse(); }); $window[_0x18b1('0xdf', 'jxGf')](_0x18b1('0xe0', '6150'), function () { var _0x3c8793 = { 'YgRBf': function _0x756def(_0x12681d) { return _0x12681d(); } }; _0x3c8793[_0x18b1('0xe1', 'VqsX')](headresponse); }); headresponse(); var $slidetitle = $(_0x18b1('0xe2', '*Lv0'))[_0x18b1('0xe3', 'c2IJ')](); $(_0x18b1('0xe4', 'o1e&'))[_0x18b1('0xe5', 'Jf])')](_0x18b1('0xe6', '$GBD'), -$slidetitle / 0x2); $('.loader')[_0x18b1('0xe7', 'e8lZ')](_0x18b1('0xe8', 'UICF')); $('#txaArticle')['focus'](function () { var _0x4ce858 = { 'xotvW': function _0xc52591(_0x5c47ae, _0x54077b) { return _0x5c47ae > _0x54077b; }, 'jZJAN': function _0x26c9d2(_0x3e9fd7, _0x234585) { return _0x3e9fd7(_0x234585); }, 'lGgdi': _0x18b1('0xe9', '@Ajj') }; var _0x1327de = $('.cmtform\x20.text')[_0x18b1('0xea', '9Zo#')]; if (_0x4ce858[_0x18b1('0xeb', 'c2IJ')](_0x1327de, 0x0)) { _0x4ce858['jZJAN']($, _0x4ce858['lGgdi'])['slideDown'](); } }); if (tpower[_0x18b1('0xec', 'ZBbP')]) { new WOW()[_0x18b1('0xed', '$JJ@')](); } if ($(_0x18b1('0xee', 'zHa*'))[_0x18b1('0xef', '6S![')]() != 0x1) { if (tpower[_0x18b1('0xf0', '6150')]) { var swiper = new Swiper(_0x18b1('0xf1', '@Ajj'), { 'pagination': _0x18b1('0xf2', 'Jf])'), 'paginationClickable': !![], 'slidesPerView': 0x1, 'spaceBetween': 0x0, 'autoplay': 0x9c4, 'loop': !![], 'prevButton': _0x18b1('0xf3', ']T$c'), 'nextButton': '.swiper-button-next', 'effect': 'fade' }); } else { var swiper = new Swiper(_0x18b1('0xf4', 'ML%E'), { 'pagination': _0x18b1('0xf5', '!NH('), 'paginationClickable': !![], 'slidesPerView': 0x1, 'spaceBetween': 0x0, 'autoplay': 0x9c4, 'loop': !![], 'prevButton': '.swiper-button-prev', 'nextButton': _0x18b1('0xf6', '(p0(') }); } } else { var swiper = new Swiper('.swiper-container', { 'pagination': _0x18b1('0xf7', 'eq&O'), 'noSwiping': !![], 'prevButton': _0x18b1('0xf8', 'Hhu3'), 'nextButton': _0x18b1('0xf9', '!NH('), 'simulateTouch': ![] }); } if (tpower['ajaxpager']) { var $loadpagenum = tpower['loadpagenum']; $[_0x18b1('0xfa', '#tg(')]({ 'thresholdMargin': -0x64, 'triggerPageThreshold': $loadpagenum, 'history': ![], 'container': _0x18b1('0xfb', 'lh@T'), 'item': '.post', 'pagination': _0x18b1('0xfc', 'punP'), 'next': '.next-page\x20a', 'loader': _0x18b1('0xfd', 'BP!&'), 'trigger': _0x18b1('0xfe', 'poVV'), 'onPageChange': function (_0x574181, _0x134285, _0x16aaa4) { var _0x4ac26c = { 'MZpyz': _0x18b1('0xff', 's8iX'), 'TbTiy': function _0x26fff7(_0x289c9e, _0x3a170b) { return _0x289c9e(_0x3a170b); }, 'nlndf': _0x18b1('0x100', 's8iX') }; window['_gaq'] && window[_0x18b1('0x101', 'lh@T')][_0x18b1('0x102', '6150')]([_0x4ac26c[_0x18b1('0x103', 'iPrm')], _0x4ac26c[_0x18b1('0x104', 'x2hZ')](jQuery, '<a/>')[_0x18b1('0x105', 'eq&O')](_0x4ac26c['nlndf'], _0x134285)[0x0][_0x18b1('0x106', 'peu@')][_0x18b1('0x107', 'xGoY')](/^[^\/]/, '/')]); } }); } if (tpower[_0x18b1('0x108', 'poVV')]) { copyright(); } if (tpower['lazyload']) { $(_0x18b1('0x109', '$GBD'))[_0x18b1('0x10a', '*Lv0')]({ 'placeholder': _0x18b1('0x10b', 'B88Y'), 'effect': _0x18b1('0x10c', '0456'), 'threshold': 0xc8 }); } if (tpower['bling']) { $(_0x18b1('0x10d', 'Hhu3'))['hide'](); $(_0x18b1('0x10e', '8XdI'))[_0x18b1('0x10f', 'VvA8')](); $('.list')[_0x18b1('0x110', ']T$c')][_0x18b1('0x111', 'poVV')] = loadingChange; function loadingChange() { var _0x27249b = { 'rULxL': function _0x4d53f9(_0x31ac5c, _0x567dc5) { return _0x31ac5c == _0x567dc5; }, 'JYIjH': function _0x192bc8(_0x3cee9, _0x944774) { return _0x3cee9(_0x944774); }, 'TBcxh': _0x18b1('0x112', 'ZBbP'), 'zKZPo': _0x18b1('0x113', 'c2IJ') }; if (_0x27249b['rULxL'](_0x27249b[_0x18b1('0x114', '^5U)')]($, _0x27249b[_0x18b1('0x115', 'BP!&')])[_0x18b1('0x116', 'Jf])')][_0x18b1('0x117', '6@cm')], _0x27249b[_0x18b1('0x118', '@Ajj')])) { setTimeout(function () { var _0x1239ce = { 'UwKHo': function _0x12c80a(_0x41e3c1, _0x2d864a) { return _0x41e3c1(_0x2d864a); }, 'KhMzx': _0x18b1('0x119', '#tg('), 'BWdxe': '.list,.news' }; if (_0x18b1('0x11a', 'x2hZ') === _0x18b1('0x11b', ']T$c')) { _0x1239ce[_0x18b1('0x11c', 'jyyG')]($, _0x18b1('0x11d', '*Lv0'))[_0x18b1('0x11e', 'Hhu3')](); } else { _0x1239ce[_0x18b1('0x11f', 'c5s&')]($, _0x1239ce['KhMzx'])[_0x18b1('0x120', '8Y#s')](); _0x1239ce['UwKHo']($, _0x1239ce['BWdxe'])[_0x18b1('0x121', 'peu@')](); } }, 0x3e8); } } loadingChange(); } if (tpower[_0x18b1('0x122', 'o1e&')]) { (function () { var _0x50d060 = { 'XmxDc': function _0x496d1b(_0x2e7eda, _0x44068a) { return _0x2e7eda(_0x44068a); }, 'hVSPz': _0x18b1('0x123', 'BP!&'), 'CpHWm': _0x18b1('0x124', '8Y#s'), 'vSUcb': _0x18b1('0x125', '$GBD'), 'dxqMV': 'body', 'QJpTX': 'title', 'vRzWI': _0x18b1('0x126', 'xx2s'), 'memss': function _0xf3f310(_0xb09c21) { return _0xb09c21(); } }; var _0x55609b = _0x50d060[_0x18b1('0x127', 'v0nK')], _0x16c4e9 = _0x50d060[_0x18b1('0x128', 'Jf])')]($, _0x50d060[_0x18b1('0x129', '!c$M')])[_0x18b1('0x12a', 'jxGf')]($(_0x50d060[_0x18b1('0x12b', 'jyyG')]))['attr'](_0x50d060[_0x18b1('0x12c', 'Hhu3')], _0x55609b)[_0x18b1('0x12d', '8XdI')](function () { _0x50d060[_0x18b1('0x12e', 'x2hZ')]($, _0x50d060[_0x18b1('0x12f', '@Ajj')])[_0x18b1('0x130', '$JJ@')]({ 'scrollTop': 0x0 }, 0x0); }), _0x47a6f5 = function () { var _0x5f1d8e = { 'FigjP': function _0x679887(_0x5ccf9b, _0x21fb2e) { return _0x5ccf9b === _0x21fb2e; }, 'eYQRF': 'fLr', 'XGywT': _0x18b1('0x131', '!NH('), 'mEauO': function _0x4e0534(_0x4612c0, _0x225baa) { return _0x4612c0(_0x225baa); }, 'PhJIF': _0x18b1('0x132', '8XdI'), 'uAofN': function _0x338b41(_0x24c23a, _0x3cc668) { return _0x24c23a(_0x3cc668); }, 'xgDSk': function _0x5e37c1(_0x2f8a27, _0x4a5fba) { return _0x2f8a27(_0x4a5fba); }, 'emmEG': function _0x184cef(_0x4be100, _0x2b604c) { return _0x4be100 > _0x2b604c; }, 'CbmWJ': 'LYL', 'FIFac': _0x18b1('0x133', '1hv#'), 'opsRe': '.head', 'CnJcG': _0x18b1('0x134', 'xGoY'), 'yiONg': function _0x40e4d0(_0x33c4cd, _0x2509f6) { return _0x33c4cd + _0x2509f6; } }; if (_0x5f1d8e['FigjP'](_0x5f1d8e[_0x18b1('0x135', 'Jf])')], _0x5f1d8e['XGywT'])) { _0x5f1d8e['mEauO']($, this)[_0x18b1('0xa', 'xx2s')](_0x5f1d8e[_0x18b1('0x136', '9Zo#')]); } else { var _0xb049bc = _0x5f1d8e[_0x18b1('0x137', 'xx2s')]($, document)[_0x18b1('0x138', 'lh@T')](), _0x21f608 = _0x5f1d8e[_0x18b1('0x139', '6S![')]($, window)[_0x18b1('0x13a', '*Lv0')](); _0x5f1d8e[_0x18b1('0x13b', 'Hhu3')](_0xb049bc, 0x1f4) ? _0x16c4e9[_0x18b1('0x13c', '0456')]() : _0x16c4e9['hide'](); if (!window[_0x18b1('0x13d', 'xGoY')]) { if (_0x5f1d8e[_0x18b1('0x13e', 'VqsX')](_0x5f1d8e[_0x18b1('0x13f', 'xGoY')], _0x5f1d8e[_0x18b1('0x140', 'e8lZ')])) { _0x5f1d8e[_0x18b1('0x141', '6150')]($, _0x5f1d8e[_0x18b1('0x142', 'punP')])[_0x18b1('0x143', '*Lv0')]('on'); } else { _0x16c4e9[_0x18b1('0x144', '8XdI')](_0x5f1d8e[_0x18b1('0x145', '6S![')], _0x5f1d8e['yiONg'](_0xb049bc, _0x21f608) - 0xa6); } } } }; $(window)[_0x18b1('0x146', ']T$c')](_0x50d060[_0x18b1('0x147', 'jxGf')], _0x47a6f5); _0x50d060['memss'](_0x47a6f5); }()); } if (tpower[_0x18b1('0x148', '9Zo#')]) { var $viewallheight = tpower[_0x18b1('0x149', 'o1e&')]; var $viewallstyle = tpower[_0x18b1('0x14a', 'x2hZ')]; var a = $('.viewall')['outerHeight'](); var arr = document[_0x18b1('0x14b', '8Y#s')][_0x18b1('0x14c', '8XdI')][_0x18b1('0x14d', 'VqsX')]('/'); var arrLen = arr['length']; var styleEle = _0x18b1('0x14e', 'UICF') + _0x18b1('0x14f', '(p0(') + $viewallheight + 'px;}' + _0x18b1('0x150', 'ML%E'); $(_0x18b1('0x151', 'o1e&'))[_0x18b1('0x152', 'Hhu3')](styleEle); var b = $(_0x18b1('0x153', '!9sF'))['outerHeight'](); var sheight = 0x64 - Math['ceil'](b / a * 0x64); if (sheight > 0x0 && arr[arrLen - 0x1]['indexOf']('_') < 0x0) { if ($viewallstyle == '1') { $(_0x18b1('0x154', '0456'))[_0x18b1('0x155', '$JJ@')](_0x18b1('0x156', 'zHa*') + sheight + '%' + _0x18b1('0x157', 'eq&O')); } else { $(_0x18b1('0x158', '#tg('))['append']('<div\x20class=\x22telesmore\x22><i>阅读更多</i></div>'); } $('.teles,.telesmore')['on'](_0x18b1('0x159', 'o1e&'), function () { var _0x4d72bb = { 'WPmmB': function _0xa13714(_0x5f1ca8, _0x342338) { return _0x5f1ca8(_0x342338); }, 'XEqOt': function _0x49b21f(_0x51cc56, _0x2a1e64) { return _0x51cc56(_0x2a1e64); } }; _0x4d72bb['WPmmB']($, _0x18b1('0x15a', 'VvA8'))['animate']({ 'height': a }, function () { var _0xf0ff80 = { 'IKpju': function _0x1713dc(_0x1fd3fd, _0xc0a0ac) { return _0x1fd3fd === _0xc0a0ac; }, 'ZfCIk': _0x18b1('0x15b', 'ML%E'), 'gtvaT': function _0x4824b5(_0x4104e7, _0x36d6d3) { return _0x4104e7(_0x36d6d3); }, 'IiNjz': 'auto' }; if (_0xf0ff80['IKpju'](_0x18b1('0x15c', 'e8lZ'), _0x18b1('0x15d', '6150'))) { $(_0xf0ff80[_0x18b1('0x15e', 'zHa*')])[_0x18b1('0x15f', '$GBD')](_0x18b1('0x160', 'zHa*')); } else { _0xf0ff80[_0x18b1('0x161', 's8iX')]($, _0xf0ff80[_0x18b1('0x162', 'Jf])')])[_0x18b1('0xbd', 'zHa*')]('height', _0xf0ff80[_0x18b1('0x163', 'xGoY')]); } }); _0x4d72bb['XEqOt']($, this)[_0x18b1('0x164', '1hv#')](); return ![]; }); } else { $('.viewall')['css'](_0x18b1('0x165', 'o1e&'), 'auto'); } } console[_0x18b1('0x166', '6150')]('%c' + '1234567890!', _0x18b1('0x167', '1hv#'));; if (!(typeof encode_version !== _0x18b1('0x168', 'ML%E') && encode_version === _0x18b1('0x169', 'o1e&'))) { window['alert'](_0x18b1('0x16a', '9Zo#')); }; encode_version = 'sojson.v5'; }); $(document).keyup(function (event) { switch (event.keyCode) { case 27: $(".schbox,.schfixed").removeClass("on"); case 96: $(".schbox,.schfixed").removeClass("on"); } });
两个JS文件冲突!只要有hover()事件的js和底下的js文件同时用就报错!
eval(function (p, a, c, k, e, d) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) { d[e(c)] = k[c] || e(c) } k = [function (e) { return d[e] }]; e = function () { return '\\w+' }; c = 1 }; while (c--) { if (k[c]) { p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) } } return p }('o ay={a6:\'1.11\'};m $5B(N){k(N!=9e)};m $G(N){B(!$5B(N))k U;B(N.4t)k\'L\';o G=5X N;B(G==\'2t\'&&N.a8){21(N.7v){Y 1:k\'L\';Y 3:k(/\\S/).2N(N.91)?\'a9\':\'bo\'}}B(G==\'2t\'||G==\'m\'){21(N.7X){Y 2j:k\'1u\';Y 7u:k\'5e\';Y 1f:k\'7F\'}B(5X N.V==\'3P\'){B(N.2U)k\'bw\';B(N.7b)k\'1b\'}}k G};m $1Q(){o 4f={};M(o i=0;i<1b.V;i++){M(o I 1e 1b[i]){o ap=1b[i][I];o 5z=4f[I];B(5z&&$G(ap)==\'2t\'&&$G(5z)==\'2t\')4f[I]=$1Q(5z,ap);19 4f[I]=ap}}k 4f};o $Q=m(){o 1l=1b;B(!1l[1])1l=[c,1l[0]];M(o I 1e 1l[1])1l[0][I]=1l[1][I];k 1l[0]};o $4d=m(){M(o i=0,l=1b.V;i<l;i++){1b[i].Q=m(1N){M(o 1T 1e 1N){B(!c.1x[1T])c.1x[1T]=1N[1T];B(!c[1T])c[1T]=$4d.6c(1T)}}}};$4d.6c=m(1T){k m(17){k c.1x[1T].3t(17,2j.1x.8K.1X(1b,1))}};$4d(7B,2j,6g,9P);m $2w(N){k!!(N||N===0)};m $4F(N,7U){k $5B(N)?N:7U};m $6X(2X,1L){k 1c.8s(1c.6X()*(1L-2X+1)+2X)};m $33(){k O 9z().9Q()};m $6J(2b){b5(2b);b4(2b);k 1k};o 3d=m(N){N=N||{};N.Q=$Q;k N};o b8=O 3d(W);o bm=O 3d(R);R.67=R.2G(\'67\')[0];W.3B=!!(R.54);B(W.9a)W.2s=W[W.66?\'aV\':\'9E\']=1g;19 B(R.8X&&!R.bj&&!ai.a3)W.3L=W[W.3B?\'a7\':\'5T\']=1g;19 B(R.aG!=1k)W.7f=1g;W.ax=W.3L;6Y.Q=$Q;B(5X 5j==\'9e\'){o 5j=m(){};B(W.3L)R.9V("aO");5j.1x=(W.3L)?W["[[aW.1x]]"]:{}}5j.1x.4t=m(){};B(W.9E)49{R.aT("aA",U,1g)}48(e){};o 1f=m(1y){o 4V=m(){k(1b[0]!==1k&&c.1w&&$G(c.1w)==\'m\')?c.1w.3t(c,1b):c};$Q(4V,c);4V.1x=1y;4V.7X=1f;k 4V};1f.1r=m(){};1f.1x={Q:m(1y){o 68=O c(1k);M(o I 1e 1y){o 8c=68[I];68[I]=1f.86(8c,1y[I])}k O 1f(68)},56:m(){M(o i=0,l=1b.V;i<l;i++)$Q(c.1x,1b[i])}};1f.86=m(3y,2a){B(3y&&3y!=2a){o G=$G(2a);B(G!=$G(3y))k 2a;21(G){Y\'m\':o 7q=m(){c.1o=1b.7b.1o;k 2a.3t(c,1b)};7q.1o=3y;k 7q;Y\'2t\':k $1Q(3y,2a)}}k 2a};o 6G=O 1f({af:m(T){c.3Y=c.3Y||[];c.3Y.1i(T);k c},7h:m(){B(c.3Y&&c.3Y.V)c.3Y.8I().2q(10,c)},bn:m(){c.3Y=[]}});o 2A=O 1f({29:m(G,T){B(T!=1f.1r){c.$1a=c.$1a||{};c.$1a[G]=c.$1a[G]||[];c.$1a[G].6q(T)}k c},1v:m(G,1l,2q){B(c.$1a&&c.$1a[G]){c.$1a[G].1z(m(T){T.2L({\'17\':c,\'2q\':2q,\'1b\':1l})()},c)}k c},4m:m(G,T){B(c.$1a&&c.$1a[G])c.$1a[G].2O(T);k c}});o 6a=O 1f({3Z:m(){c.C=$1Q.3t(1k,[c.C].Q(1b));B(c.29){M(o 35 1e c.C){B($G(c.C[35]==\'m\')&&(/^51[A-Z]/).2N(35))c.29(35,c.C[35])}}k c}});2j.Q({61:m(T,17){M(o i=0,j=c.V;i<j;i++)T.1X(17,c[i],i,c)},2R:m(T,17){o 4j=[];M(o i=0,j=c.V;i<j;i++){B(T.1X(17,c[i],i,c))4j.1i(c[i])}k 4j},2y:m(T,17){o 4j=[];M(o i=0,j=c.V;i<j;i++)4j[i]=T.1X(17,c[i],i,c);k 4j},5E:m(T,17){M(o i=0,j=c.V;i<j;i++){B(!T.1X(17,c[i],i,c))k U}k 1g},aL:m(T,17){M(o i=0,j=c.V;i<j;i++){B(T.1X(17,c[i],i,c))k 1g}k U},4n:m(2U,12){o 4v=c.V;M(o i=(12<0)?1c.1L(0,4v+12):12||0;i<4v;i++){B(c[i]===2U)k i}k-1},6Z:m(1q,V){1q=1q||0;B(1q<0)1q=c.V+1q;V=V||(c.V-1q);o 6z=[];M(o i=0;i<V;i++)6z[i]=c[1q++];k 6z},2O:m(2U){o i=0;o 4v=c.V;62(i<4v){B(c[i]===2U){c.5m(i,1);4v--}19{i++}}k c},1j:m(2U,12){k c.4n(2U,12)!=-1},aN:m(1G){o N={},V=1c.2X(c.V,1G.V);M(o i=0;i<V;i++)N[1G[i]]=c[i];k N},Q:m(1u){M(o i=0,j=1u.V;i<j;i++)c.1i(1u[i]);k c},1Q:m(1u){M(o i=0,l=1u.V;i<l;i++)c.6q(1u[i]);k c},6q:m(2U){B(!c.1j(2U))c.1i(2U);k c},b0:m(){k c[$6X(0,c.V-1)]||1k},7p:m(){k c[c.V-1]||1k}});2j.1x.1z=2j.1x.61;2j.1z=2j.61;m $A(1u){k 2j.6Z(1u)};m $1z(3o,T,17){B(3o&&5X 3o.V==\'3P\'&&$G(3o)!=\'2t\'){2j.61(3o,T,17)}19{M(o 1p 1e 3o)T.1X(17||3o,3o[1p],1p)}};2j.1x.2N=2j.1x.1j;6g.Q({2N:m(6e,2z){k(($G(6e)==\'2h\')?O 7u(6e,2z):6e).2N(c)},2P:m(){k 4X(c,10)},9A:m(){k 4T(c)},7I:m(){k c.31(/-\\D/g,m(2M){k 2M.6T(1).7D()})},8U:m(){k c.31(/\\w[A-Z]/g,m(2M){k(2M.6T(0)+\'-\'+2M.6T(1).4S())})},7S:m(){k c.31(/\\b[a-z]/g,m(2M){k 2M.7D()})},6y:m(){k c.31(/^\\s+|\\s+$/g,\'\')},7x:m(){k c.31(/\\s{2,}/g,\' \').6y()},52:m(1u){o 1m=c.2M(/\\d{1,3}/g);k(1m)?1m.52(1u):U},57:m(1u){o 3i=c.2M(/^#?(\\w{1,2})(\\w{1,2})(\\w{1,2})$/);k(3i)?3i.8K(1).57(1u):U},1j:m(2h,s){k(s)?(s+c+s).4n(s+2h+s)>-1:c.4n(2h)>-1},84:m(){k c.31(/([.*+?^${}()|[\\]\\/\\\\])/g,\'\\\\$1\')}});2j.Q({52:m(1u){B(c.V<3)k U;B(c.V==4&&c[3]==0&&!1u)k\'ba\';o 3i=[];M(o i=0;i<3;i++){o 4B=(c[i]-0).3F(16);3i.1i((4B.V==1)?\'0\'+4B:4B)}k 1u?3i:\'#\'+3i.1V(\'\')},57:m(1u){B(c.V!=3)k U;o 1m=[];M(o i=0;i<3;i++){1m.1i(4X((c[i].V==1)?c[i]+c[i]:c[i],16))}k 1u?1m:\'1m(\'+1m.1V(\',\')+\')\'}});7B.Q({2L:m(C){o T=c;C=$1Q({\'17\':T,\'K\':U,\'1b\':1k,\'2q\':U,\'3G\':U,\'6n\':U},C);B($2w(C.1b)&&$G(C.1b)!=\'1u\')C.1b=[C.1b];k m(K){o 1l;B(C.K){K=K||W.K;1l=[(C.K===1g)?K:O C.K(K)];B(C.1b)1l.Q(C.1b)}19 1l=C.1b||1b;o 3j=m(){k T.3t($4F(C.17,T),1l)};B(C.2q)k 9G(3j,C.2q);B(C.3G)k aa(3j,C.3G);B(C.6n)49{k 3j()}48(aF){k U};k 3j()}},aq:m(1l,17){k c.2L({\'1b\':1l,\'17\':17})},6n:m(1l,17){k c.2L({\'1b\':1l,\'17\':17,\'6n\':1g})()},17:m(17,1l){k c.2L({\'17\':17,\'1b\':1l})},ak:m(17,1l){k c.2L({\'17\':17,\'K\':1g,\'1b\':1l})},2q:m(2q,17,1l){k c.2L({\'2q\':2q,\'17\':17,\'1b\':1l})()},3G:m(9M,17,1l){k c.2L({\'3G\':9M,\'17\':17,\'1b\':1l})()}});9P.Q({2P:m(){k 4X(c)},9A:m(){k 4T(c)},1M:m(2X,1L){k 1c.2X(1L,1c.1L(2X,c))},2c:m(5d){5d=1c.36(10,5d||0);k 1c.2c(c*5d)/5d},b7:m(T){M(o i=0;i<c;i++)T(i)}});o P=O 1f({1w:m(F,1N){B($G(F)==\'2h\'){B(W.2s&&1N&&(1N.1p||1N.G)){o 1p=(1N.1p)?\' 1p="\'+1N.1p+\'"\':\'\';o G=(1N.G)?\' G="\'+1N.G+\'"\':\'\';4p 1N.1p;4p 1N.G;F=\'<\'+F+1p+G+\'>\'}F=R.9V(F)}F=$(F);k(!1N||!F)?F:F.26(1N)}});o 1R=O 1f({1w:m(15){k(15)?$Q(15,c):c}});1R.Q=m(1N){M(o 1T 1e 1N){c.1x[1T]=1N[1T];c[1T]=$4d.6c(1T)}};m $(F){B(!F)k 1k;B(F.4t)k 2n.4q(F);B([W,R].1j(F))k F;o G=$G(F);B(G==\'2h\'){F=R.5Q(F);G=(F)?\'L\':U}B(G!=\'L\')k 1k;B(F.4t)k 2n.4q(F);B([\'2t\',\'b3\'].1j(F.5M.4S()))k F;$Q(F,P.1x);F.4t=m(){};k 2n.4q(F)};R.5P=R.2G;m $$(){o 15=[];M(o i=0,j=1b.V;i<j;i++){o 1J=1b[i];21($G(1J)){Y\'L\':15.1i(1J);Y\'b2\':1B;Y U:1B;Y\'2h\':1J=R.5P(1J,1g);5Z:15.Q(1J)}}k $$.4U(15)};$$.4U=m(1u){o 15=[];M(o i=0,l=1u.V;i<l;i++){B(1u[i].$64)5L;o L=$(1u[i]);B(L&&!L.$64){L.$64=1g;15.1i(L)}}M(o n=0,d=15.V;n<d;n++)15[n].$64=1k;k O 1R(15)};1R.5G=m(I){k m(){o 1l=1b;o 1t=[];o 15=1g;M(o i=0,j=c.V,3j;i<j;i++){3j=c[i][I].3t(c[i],1l);B($G(3j)!=\'L\')15=U;1t.1i(3j)};k(15)?$$.4U(1t):1t}};P.Q=m(1y){M(o I 1e 1y){5j.1x[I]=1y[I];P.1x[I]=1y[I];P[I]=$4d.6c(I);o 97=(2j.1x[I])?I+\'1R\':I;1R.1x[97]=1R.5G(I)}};P.Q({26:m(1N){M(o 1T 1e 1N){o 3E=1N[1T];21(1T){Y\'90\':c.7w(3E);1B;Y\'1a\':B(c.65)c.65(3E);1B;Y\'1y\':c.6f(3E);1B;5Z:c.5J(1T,3E)}}k c},34:m(F,8M){F=$(F);21(8M){Y\'9m\':F.2Y.6B(c,F);1B;Y\'9r\':o 4D=F.8Q();B(!4D)F.2Y.7m(c);19 F.2Y.6B(c,4D);1B;Y\'1E\':o 6C=F.6H;B(6C){F.6B(c,6C);1B}5Z:F.7m(c)}k c},bB:m(F){k c.34(F,\'9m\')},92:m(F){k c.34(F,\'9r\')},ae:m(F){k c.34(F,\'4I\')},aj:m(F){k c.34(F,\'1E\')},93:m(){o 15=[];$1z(1b,m(9s){15=15.6F(9s)});$$(15).34(c);k c},2O:m(){k c.2Y.9L(c)},a4:m(9c){o F=$(c.ag(9c!==U));B(!F.$1a)k F;F.$1a={};M(o G 1e c.$1a)F.$1a[G]={\'1G\':$A(c.$1a[G].1G),\'1A\':$A(c.$1a[G].1A)};k F.5v()},az:m(F){F=$(F);c.2Y.am(F,c);k F},80:m(1I){c.7m(R.av(1I));k c},7r:m(1F){k c.1F.1j(1F,\' \')},9f:m(1F){B(!c.7r(1F))c.1F=(c.1F+\' \'+1F).7x();k c},9g:m(1F){c.1F=c.1F.31(O 7u(\'(^|\\\\s)\'+1F+\'(?:\\\\s|$)\'),\'$1\').7x();k c},aD:m(1F){k c.7r(1F)?c.9g(1F):c.9f(1F)},30:m(I,J){21(I){Y\'2p\':k c.9n(4T(J));Y\'aB\':I=(W.2s)?\'ah\':\'ab\'}I=I.7I();21($G(J)){Y\'3P\':B(![\'bi\',\'99\'].1j(I))J+=\'4x\';1B;Y\'1u\':J=\'1m(\'+J.1V(\',\')+\')\'}c.1D[I]=J;k c},7w:m(1O){21($G(1O)){Y\'2t\':P.5n(c,\'30\',1O);1B;Y\'2h\':c.1D.77=1O}k c},9n:m(2p){B(2p==0){B(c.1D.5C!="5r")c.1D.5C="5r"}19{B(c.1D.5C!="9o")c.1D.5C="9o"}B(!c.5V||!c.5V.bf)c.1D.99=1;B(W.2s)c.1D.2R=(2p==1)?\'\':"6l(2p="+2p*3w+")";c.1D.2p=c.$3q.2p=2p;k c},1Z:m(I){I=I.7I();o 1C=c.1D[I];B(!$2w(1C)){B(I==\'2p\')k c.$3q.2p;1C=[];M(o 1D 1e P.3s){B(I==1D){P.3s[1D].1z(m(s){o 1D=c.1Z(s);1C.1i(4X(1D)?1D:\'8d\')},c);B(I==\'3p\'){o 5E=1C.5E(m(4B){k(4B==1C[0])});k(5E)?1C[0]:U}k 1C.1V(\' \')}}B(I.1j(\'3p\')){B(P.3s.3p.1j(I)){k[\'7T\',\'6O\',\'2x\'].2y(m(p){k c.1Z(I+p)},c).1V(\' \')}19 B(P.7N.1j(I)){k[\'8J\',\'8H\',\'8n\',\'8p\'].2y(m(p){k c.1Z(\'3p\'+p+I.31(\'3p\',\'\'))},c).1V(\' \')}}B(R.8S)1C=R.8S.bA(c,1k).bt(I.8U());19 B(c.5V)1C=c.5V[I]}B(W.2s)1C=P.7Y(I,1C,c);B(1C&&I.2N(/2o/i)&&1C.1j(\'1m\')){k 1C.5D(\'1m\').5m(1,4).2y(m(2o){k 2o.52()}).1V(\' \')}k 1C},8Z:m(){k P.7J(c,\'1Z\',1b)},4J:m(5I,1q){5I+=\'b9\';o F=(1q)?c[1q]:c[5I];62(F&&$G(F)!=\'L\')F=F[5I];k $(F)},aS:m(){k c.4J(\'3y\')},8Q:m(){k c.4J(\'4D\')},aU:m(){k c.4J(\'4D\',\'6H\')},7p:m(){k c.4J(\'3y\',\'aK\')},aJ:m(){k $(c.2Y)},aM:m(){k $$(c.8X)},7a:m(F){k!!$A(c.2G(\'*\')).1j(F)},5b:m(I){o 3l=P.5O[I];B(3l)k c[3l];o 6w=P.8r[I]||0;B(!W.2s||6w)k c.b6(I,6w);o 6K=c.aX[I];k(6K)?6K.91:1k},b1:m(I){o 3l=P.5O[I];B(3l)c[3l]=\'\';19 c.aZ(I);k c},aY:m(){k P.7J(c,\'5b\',1b)},5J:m(I,J){o 3l=P.5O[I];B(3l)c[3l]=J;19 c.bz(I,J);k c},6f:m(1O){k P.5n(c,\'5J\',1O)},72:m(){c.7Q=$A(1b).1V(\'\');k c},by:m(1I){o 2T=c.4w();B([\'1D\',\'2f\'].1j(2T)){B(W.2s){B(2T==\'1D\')c.8a.77=1I;19 B(2T==\'2f\')c.5J(\'1I\',1I);k c}19{c.9L(c.6H);k c.80(1I)}}c[$5B(c.73)?\'73\':\'7M\']=1I;k c},a2:m(){o 2T=c.4w();B([\'1D\',\'2f\'].1j(2T)){B(W.2s){B(2T==\'1D\')k c.8a.77;19 B(2T==\'2f\')k c.5b(\'1I\')}19{k c.7Q}}k($4F(c.73,c.7M))},4w:m(){k c.5M.4S()},1r:m(){2n.5u(c.2G(\'*\'));k c.72(\'\')}});P.7Y=m(I,1C,L){B($2w(4X(1C)))k 1C;B([\'3f\',\'2H\'].1j(I)){o 1A=(I==\'2H\')?[\'1H\',\'4H\']:[\'1E\',\'4I\'];o 3S=0;1A.1z(m(J){3S+=L.1Z(\'3p-\'+J+\'-2H\').2P()+L.1Z(\'6Q-\'+J).2P()});k L[\'3n\'+I.7S()]-3S+\'4x\'}19 B(I.2N(/3p(.+)7T|2J|6Q/)){k\'8d\'}k 1C};P.3s={\'3p\':[],\'6Q\':[],\'2J\':[]};[\'8J\',\'8H\',\'8n\',\'8p\'].1z(m(7R){M(o 1D 1e P.3s)P.3s[1D].1i(1D+7R)});P.7N=[\'aP\',\'aQ\',\'aR\'];P.7J=m(F,1P,1G){o 1C={};$1z(1G,m(1n){1C[1n]=F[1P](1n)});k 1C};P.5n=m(F,1P,7E){M(o 1n 1e 7E)F[1P](1n,7E[1n]);k F};P.5O=O 3d({\'7F\':\'1F\',\'M\':\'bu\',\'bs\':\'bp\',\'bq\':\'bv\',\'bx\':\'be\',\'bd\':\'bb\',\'bc\':\'bg\',\'bh\':\'aI\',\'bl\':\'bk\',\'J\':\'J\',\'6U\':\'6U\',\'6P\':\'6P\',\'6W\':\'6W\',\'74\':\'74\'});P.8r={\'7O\':2,\'3W\':2};P.2m={5w:{2S:m(G,T){B(c.7c)c.7c(G,T,U);19 c.a5(\'51\'+G,T);k c},4h:m(G,T){B(c.8u)c.8u(G,T,U);19 c.aH(\'51\'+G,T);k c}}};W.Q(P.2m.5w);R.Q(P.2m.5w);P.Q(P.2m.5w);o 2n={15:[],4q:m(F){B(!F.$3q){2n.15.1i(F);F.$3q={\'2p\':1}}k F},5u:m(15){M(o i=0,j=15.V,F;i<j;i++){B(!(F=15[i])||!F.$3q)5L;B(F.$1a)F.1v(\'5u\').5v();M(o p 1e F.$3q)F.$3q[p]=1k;M(o d 1e P.1x)F[d]=1k;2n.15[2n.15.4n(F)]=1k;F.4t=F.$3q=F=1k}2n.15.2O(1k)},1r:m(){2n.4q(W);2n.4q(R);2n.5u(2n.15)}};W.2S(\'8m\',m(){W.2S(\'7H\',2n.1r);B(W.2s)W.2S(\'7H\',aC)});o 2E=O 1f({1w:m(K){B(K&&K.$8G)k K;c.$8G=1g;K=K||W.K;c.K=K;c.G=K.G;c.3m=K.3m||K.aE;B(c.3m.7v==3)c.3m=c.3m.2Y;c.8I=K.ao;c.an=K.au;c.as=K.at;c.ar=K.aw;B([\'7j\',\'43\'].1j(c.G)){c.a1=(K.87)?K.87/ad:-(K.ac||0)/3}19 B(c.G.1j(\'1n\')){c.5k=K.7V||K.al;M(o 1p 1e 2E.1G){B(2E.1G[1p]==c.5k){c.1n=1p;1B}}B(c.G==\'8o\'){o 5p=c.5k-ca;B(5p>0&&5p<13)c.1n=\'f\'+5p}c.1n=c.1n||6g.dp(c.5k).4S()}19 B(c.G.2N(/(8t|2Z|dq)/)){c.4k={\'x\':K.7n||K.7Z+R.2D.4Y,\'y\':K.7s||K.7P+R.2D.59};c.dr={\'x\':K.7n?K.7n-W.85:K.7Z,\'y\':K.7s?K.7s-W.8b:K.7P};c.dn=(K.7V==3)||(K.dm==2);21(c.G){Y\'7z\':c.28=K.28||K.dj;1B;Y\'7L\':c.28=K.28||K.9w}c.8B()}k c},1S:m(){k c.5y().5t()},5y:m(){B(c.K.5y)c.K.5y();19 c.K.dk=1g;k c},5t:m(){B(c.K.5t)c.K.5t();19 c.K.dl=U;k c}});2E.5s={28:m(){B(c.28&&c.28.7v==3)c.28=c.28.2Y},8z:m(){49{2E.5s.28.1X(c)}48(e){c.28=c.3m}}};2E.1x.8B=(W.7f)?2E.5s.8z:2E.5s.28;2E.1G=O 3d({\'ds\':13,\'dt\':38,\'dz\':40,\'1H\':37,\'4H\':39,\'dA\':27,\'dy\':32,\'dx\':8,\'du\':9,\'4p\':46});P.2m.2A={29:m(G,T){c.$1a=c.$1a||{};c.$1a[G]=c.$1a[G]||{\'1G\':[],\'1A\':[]};B(c.$1a[G].1G.1j(T))k c;c.$1a[G].1G.1i(T);o 5q=G;o 2d=P.2A[G];B(2d){B(2d.6N)2d.6N.1X(c,T);B(2d.2y)T=2d.2y;B(2d.G)5q=2d.G}B(!c.7c)T=T.2L({\'17\':c,\'K\':1g});c.$1a[G].1A.1i(T);k(P.7k.1j(5q))?c.2S(5q,T):c},4m:m(G,T){B(!c.$1a||!c.$1a[G])k c;o 2e=c.$1a[G].1G.4n(T);B(2e==-1)k c;o 1n=c.$1a[G].1G.5m(2e,1)[0];o J=c.$1a[G].1A.5m(2e,1)[0];o 2d=P.2A[G];B(2d){B(2d.2O)2d.2O.1X(c,T);B(2d.G)G=2d.G}k(P.7k.1j(G))?c.4h(G,J):c},65:m(1O){k P.5n(c,\'29\',1O)},5v:m(G){B(!c.$1a)k c;B(!G){M(o 5U 1e c.$1a)c.5v(5U);c.$1a=1k}19 B(c.$1a[G]){c.$1a[G].1G.1z(m(T){c.4m(G,T)},c);c.$1a[G]=1k}k c},1v:m(G,1l,2q){B(c.$1a&&c.$1a[G]){c.$1a[G].1G.1z(m(T){T.2L({\'17\':c,\'2q\':2q,\'1b\':1l})()},c)}k c},8j:m(12,G){B(!12.$1a)k c;B(!G){M(o 5U 1e 12.$1a)c.8j(12,5U)}19 B(12.$1a[G]){12.$1a[G].1G.1z(m(T){c.29(G,T)},c)}k c}};W.Q(P.2m.2A);R.Q(P.2m.2A);P.Q(P.2m.2A);P.2A=O 3d({\'8i\':{G:\'7z\',2y:m(K){K=O 2E(K);B(K.28!=c&&!c.7a(K.28))c.1v(\'8i\',K)}},\'8h\':{G:\'7L\',2y:m(K){K=O 2E(K);B(K.28!=c&&!c.7a(K.28))c.1v(\'8h\',K)}},\'43\':{G:(W.7f)?\'7j\':\'43\'}});P.7k=[\'8t\',\'dv\',\'7l\',\'7e\',\'43\',\'7j\',\'7z\',\'7L\',\'4g\',\'8o\',\'dw\',\'di\',\'3C\',\'7H\',\'8m\',\'dh\',\'d4\',\'d5\',\'d6\',\'9H\',\'d3\',\'d2\',\'3z\',\'8l\',\'79\',\'cZ\',\'45\'];7B.Q({5K:m(17,1l){k c.2L({\'17\':17,\'1b\':1l,\'K\':2E})}});1R.Q({d0:m(2T){k O 1R(c.2R(m(F){k(P.4w(F)==2T)}))},8e:m(1F,2l){o 15=c.2R(m(F){k(F.1F&&F.1F.1j(1F,\' \'))});k(2l)?15:O 1R(15)},8k:m(3D,2l){o 15=c.2R(m(F){k(F.3D==3D)});k(2l)?15:O 1R(15)},89:m(1p,7G,J,2l){o 15=c.2R(m(F){o 2a=P.5b(F,1p);B(!2a)k U;B(!7G)k 1g;21(7G){Y\'=\':k(2a==J);Y\'*=\':k(2a.1j(J));Y\'^=\':k(2a.8C(0,J.V)==J);Y\'$=\':k(2a.8C(2a.V-J.V)==J);Y\'!=\':k(2a!=J);Y\'~=\':k 2a.1j(J,\' \')}k U});k(2l)?15:O 1R(15)}});m $E(1J,2R){k($(2R)||R).8y(1J)};m $d1(1J,2R){k($(2R)||R).5P(1J)};$$.3c={\'5e\':/^(\\w*|\\*)(?:#([\\w-]+)|\\.([\\w-]+))?(?:\\[(\\w+)(?:([!*^$]?=)["\']?([^"\'\\]]*)["\']?)?])?$/,\'3B\':{6t:m(1t,2Q,1d,i){o 2v=[2Q.d7?\'78:\':\'\',1d[1]];B(1d[2])2v.1i(\'[@3D="\',1d[2],\'"]\');B(1d[3])2v.1i(\'[1j(6F(" ", @7F, " "), " \',1d[3],\' ")]\');B(1d[4]){B(1d[5]&&1d[6]){21(1d[5]){Y\'*=\':2v.1i(\'[1j(@\',1d[4],\', "\',1d[6],\'")]\');1B;Y\'^=\':2v.1i(\'[d8-de(@\',1d[4],\', "\',1d[6],\'")]\');1B;Y\'$=\':2v.1i(\'[df(@\',1d[4],\', 2h-V(@\',1d[4],\') - \',1d[6].V,\' + 1) = "\',1d[6],\'"]\');1B;Y\'=\':2v.1i(\'[@\',1d[4],\'="\',1d[6],\'"]\');1B;Y\'!=\':2v.1i(\'[@\',1d[4],\'!="\',1d[6],\'"]\')}}19{2v.1i(\'[@\',1d[4],\']\')}}1t.1i(2v.1V(\'\'));k 1t},6x:m(1t,2Q,2l){o 15=[];o 3B=R.54(\'.//\'+1t.1V(\'//\'),2Q,$$.3c.88,dC.dd,1k);M(o i=0,j=3B.dc;i<j;i++)15.1i(3B.d9(i));k(2l)?15:O 1R(15.2y($))}},\'8g\':{6t:m(1t,2Q,1d,i){B(i==0){B(1d[2]){o F=2Q.5Q(1d[2]);B(!F||((1d[1]!=\'*\')&&(P.4w(F)!=1d[1])))k U;1t=[F]}19{1t=$A(2Q.2G(1d[1]))}}19{1t=$$.3c.2G(1t,1d[1]);B(1d[2])1t=1R.8k(1t,1d[2],1g)}B(1d[3])1t=1R.8e(1t,1d[3],1g);B(1d[4])1t=1R.89(1t,1d[4],1d[5],1d[6],1g);k 1t},6x:m(1t,2Q,2l){k(2l)?1t:$$.4U(1t)}},88:m(7W){k(7W==\'78\')?\'da://9k.db.dB/dK/78\':U},2G:m(2Q,5M){o 6D=[];M(o i=0,j=2Q.V;i<j;i++)6D.Q(2Q[i].2G(5M));k 6D}};$$.3c.1P=(W.3B)?\'3B\':\'8g\';P.2m.76={5S:m(1J,2l){o 1t=[];1J=1J.6y().5D(\' \');M(o i=0,j=1J.V;i<j;i++){o 8q=1J[i];o 1d=8q.2M($$.3c.5e);B(!1d)1B;1d[1]=1d[1]||\'*\';o 2v=$$.3c[$$.3c.1P].6t(1t,c,1d,i);B(!2v)1B;1t=2v}k $$.3c[$$.3c.1P].6x(1t,c,2l)},8y:m(1J){k $(c.5S(1J,1g)[0]||U)},5P:m(1J,2l){o 15=[];1J=1J.5D(\',\');M(o i=0,j=1J.V;i<j;i++)15=15.6F(c.5S(1J[i],1g));k(2l)?15:$$.4U(15)}};P.Q({5Q:m(3D){o F=R.5Q(3D);B(!F)k U;M(o 1o=F.2Y;1o!=c;1o=1o.2Y){B(!1o)k U}k F},dW:m(1F){k c.5S(\'.\'+1F)}});R.Q(P.2m.76);P.Q(P.2m.76);P.Q({3v:m(){21(c.4w()){Y\'3z\':o 1A=[];$1z(c.C,m(35){B(35.74)1A.1i($4F(35.J,35.1I))});k(c.6W)?1A:1A[0];Y\'8D\':B(!(c.6P&&[\'dT\',\'dU\'].1j(c.G))&&![\'5r\',\'1I\',\'e1\'].1j(c.G))1B;Y\'8w\':k c.J}k U},8f:m(){k $$(c.2G(\'8D\'),c.2G(\'3z\'),c.2G(\'8w\'))},5c:m(){o 47=[];c.8f().1z(m(F){o 1p=F.1p;o J=F.3v();B(J===U||!1p||F.6U)k;o 6S=m(3E){47.1i(1p+\'=\'+6m(3E))};B($G(J)==\'1u\')J.1z(6S);19 6S(J)});k 47.1V(\'&\')}});P.Q({3x:m(x,y){c.4Y=x;c.59=y},6L:m(){k{\'45\':{\'x\':c.4Y,\'y\':c.59},\'3S\':{\'x\':c.4L,\'y\':c.4G},\'6M\':{\'x\':c.5A,\'y\':c.5H}}},3Q:m(22){22=22||[];o F=c,1H=0,1E=0;do{1H+=F.e6||0;1E+=F.e7||0;F=F.e2}62(F);22.1z(m(L){1H-=L.4Y||0;1E-=L.59||0});k{\'x\':1H,\'y\':1E}},9i:m(22){k c.3Q(22).y},9h:m(22){k c.3Q(22).x},6j:m(22){o 2i=c.3Q(22);o N={\'2H\':c.4L,\'3f\':c.4G,\'1H\':2i.x,\'1E\':2i.y};N.4H=N.1H+N.2H;N.4I=N.1E+N.3f;k N}});P.2A.6r={6N:m(T){B(W.5R){T.1X(c);k}o 4Z=m(){B(W.5R)k;W.5R=1g;W.2b=$6J(W.2b);c.1v(\'6r\')}.17(c);B(R.4u&&W.3L){W.2b=m(){B([\'5R\',\'6v\'].1j(R.4u))4Z()}.3G(50)}19 B(R.4u&&W.2s){B(!$(\'6s\')){o 3W=(W.dV.dR==\'dH:\')?\'://0\':\'70:dS(0)\';R.dI(\'<2f 3D="6s" dG 3W="\'+3W+\'"><\\/2f>\');$(\'6s\').69=m(){B(c.4u==\'6v\')4Z()}}}19{W.2S("3C",4Z);R.2S("dF",4Z)}}};W.dJ=m(T){k c.29(\'6r\',T)};W.Q({8L:m(){B(c.5T)k c.dP;B(c.82)k R.5F.81;k R.2D.81},9Y:m(){B(c.5T)k c.dQ;B(c.82)k R.5F.83;k R.2D.83},9S:m(){B(c.2s)k 1c.1L(R.2D.4L,R.2D.5A);B(c.3L)k R.5F.5A;k R.2D.5A},9F:m(){B(c.2s)k 1c.1L(R.2D.4G,R.2D.5H);B(c.3L)k R.5F.5H;k R.2D.5H},9D:m(){k c.85||R.2D.4Y},9T:m(){k c.8b||R.2D.59},6L:m(){k{\'3S\':{\'x\':c.8L(),\'y\':c.9Y()},\'6M\':{\'x\':c.9S(),\'y\':c.9F()},\'45\':{\'x\':c.9D(),\'y\':c.9T()}}},3Q:m(){k{\'x\':0,\'y\':0}}});o 1h={};1h.2F=O 1f({C:{4P:1f.1r,25:1f.1r,6I:1f.1r,1W:m(p){k-(1c.9p(1c.7C*p)-1)/2},3r:dN,2k:\'4x\',44:1g,9R:50},1w:m(C){c.L=c.L||1k;c.3Z(C);B(c.C.1w)c.C.1w.1X(c)},9I:m(){o 33=$33();B(33<c.33+c.C.3r){c.3R=c.C.1W((33-c.33)/c.C.3r);c.3N();c.3V()}19{c.1S(1g);c.26(c.14);c.1v(\'25\',c.L,10);c.7h()}},26:m(14){c.18=14;c.3V();k c},3N:m(){c.18=c.3J(c.12,c.14)},3J:m(12,14){k(14-12)*c.3R+12},1q:m(12,14){B(!c.C.44)c.1S();19 B(c.2b)k c;c.12=12;c.14=14;c.9H=c.14-c.12;c.33=$33();c.2b=c.9I.3G(1c.2c(8A/c.C.9R),c);c.1v(\'4P\',c.L);k c},1S:m(5N){B(!c.2b)k c;c.2b=$6J(c.2b);B(!5N)c.1v(\'6I\',c.L);k c},2d:m(12,14){k c.1q(12,14)},dM:m(5N){k c.1S(5N)}});1h.2F.56(O 6G,O 2A,O 6a);1h.2W={3z:m(I,14){B(I.2N(/2o/i))k c.2x;o G=$G(14);B((G==\'1u\')||(G==\'2h\'&&14.1j(\' \')))k c.5G;k c.9K},2B:m(F,I,4l){B(!4l.1i)4l=[4l];o 12=4l[0],14=4l[1];B(!$2w(14)){14=12;12=F.1Z(I)}o 1s=c.3z(I,14);k{\'12\':1s.2B(12),\'14\':1s.2B(14),\'1s\':1s}}};1h.2W.9K={2B:m(J){k 4T(J)},4b:m(12,14,4c){k 4c.3J(12,14)},3v:m(J,2k,I){B(2k==\'4x\'&&I!=\'2p\')J=1c.2c(J);k J+2k}};1h.2W.5G={2B:m(J){k J.1i?J:J.5D(\' \').2y(m(v){k 4T(v)})},4b:m(12,14,4c){o 18=[];M(o i=0;i<12.V;i++)18[i]=4c.3J(12[i],14[i]);k 18},3v:m(J,2k,I){B(2k==\'4x\'&&I!=\'2p\')J=J.2y(1c.2c);k J.1V(2k+\' \')+2k}};1h.2W.2x={2B:m(J){k J.1i?J:J.57(1g)},4b:m(12,14,4c){o 18=[];M(o i=0;i<12.V;i++)18[i]=1c.2c(4c.3J(12[i],14[i]));k 18},3v:m(J){k\'1m(\'+J.1V(\',\')+\')\'}};1h.6O=1h.2F.Q({1w:m(F,I,C){c.L=$(F);c.I=I;c.1o(C)},94:m(){k c.26(0)},3N:m(){c.18=c.1s.4b(c.12,c.14,c)},26:m(14){c.1s=1h.2W.3z(c.I,14);k c.1o(c.1s.2B(14))},1q:m(12,14){B(c.2b&&c.C.44)k c;o 1U=1h.2W.2B(c.L,c.I,[12,14]);c.1s=1U.1s;k c.1o(1U.12,1U.14)},3V:m(){c.L.30(c.I,c.1s.3v(c.18,c.C.2k,c.I))}});P.Q({dO:m(I,C){k O 1h.6O(c,I,C)}});1h.3s=1h.2F.Q({1w:m(F,C){c.L=$(F);c.1o(C)},3N:m(){M(o p 1e c.12)c.18[p]=c.1s[p].4b(c.12[p],c.14[p],c)},26:m(14){o 1U={};c.1s={};M(o p 1e 14){c.1s[p]=1h.2W.3z(p,14[p]);1U[p]=c.1s[p].2B(14[p])}k c.1o(1U)},1q:m(N){B(c.2b&&c.C.44)k c;c.18={};c.1s={};o 12={},14={};M(o p 1e N){o 1U=1h.2W.2B(c.L,p,N[p]);12[p]=1U.12;14[p]=1U.14;c.1s[p]=1U.1s}k c.1o(12,14)},3V:m(){M(o p 1e c.18)c.L.30(p,c.1s[p].3v(c.18[p],c.C.2k,p))}});P.Q({dE:m(C){k O 1h.3s(c,C)}});1h.1R=1h.2F.Q({1w:m(15,C){c.15=$$(15);c.1o(C)},3N:m(){M(o i 1e c.12){o 5f=c.12[i],3u=c.14[i],3e=c.1s[i],5g=c.18[i]={};M(o p 1e 5f)5g[p]=3e[p].4b(5f[p],3u[p],c)}},26:m(14){o 1U={};c.1s={};M(o i 1e 14){o 3u=14[i],3e=c.1s[i]={},9y=1U[i]={};M(o p 1e 3u){3e[p]=1h.2W.3z(p,3u[p]);9y[p]=3e[p].2B(3u[p])}}k c.1o(1U)},1q:m(N){B(c.2b&&c.C.44)k c;c.18={};c.1s={};o 12={},14={};M(o i 1e N){o 6R=N[i],5f=12[i]={},3u=14[i]={},3e=c.1s[i]={};M(o p 1e 6R){o 1U=1h.2W.2B(c.15[i],p,6R[p]);5f[p]=1U.12;3u[p]=1U.14;3e[p]=1U.1s}}k c.1o(12,14)},3V:m(){M(o i 1e c.18){o 5g=c.18[i],3e=c.1s[i];M(o p 1e 5g)c.15[i].30(p,3e[p].3v(5g[p],c.C.2k,p))}}});1h.dD=1h.2F.Q({C:{22:[],3n:{\'x\':0,\'y\':0},9W:1g},1w:m(L,C){c.18=[];c.L=$(L);c.2u={\'1S\':c.1S.17(c,U)};c.1o(C);B(c.C.9W){c.29(\'4P\',m(){R.29(\'43\',c.2u.1S)}.17(c));c.29(\'25\',m(){R.4m(\'43\',c.2u.1S)}.17(c))}},3N:m(){M(o i=0;i<2;i++)c.18[i]=c.3J(c.12[i],c.14[i])},3x:m(x,y){B(c.2b&&c.C.44)k c;o F=c.L.6L();o 1A={\'x\':x,\'y\':y};M(o z 1e F.3S){o 1L=F.6M[z]-F.3S[z];B($2w(1A[z]))1A[z]=($G(1A[z])==\'3P\')?1A[z].1M(0,1L):1L;19 1A[z]=F.45[z];1A[z]+=c.C.3n[z]}k c.1q([F.45.x,F.45.y],[1A.x,1A.y])},e3:m(){k c.3x(U,0)},e5:m(){k c.3x(U,\'9N\')},bC:m(){k c.3x(0,U)},e4:m(){k c.3x(\'9N\',U)},9w:m(F){o 1o=c.L.3Q(c.C.22);o 3m=$(F).3Q(c.C.22);k c.3x(3m.x-1o.x,3m.y-1o.y)},3V:m(){c.L.3x(c.18[0],c.18[1])}});1h.e0=1h.2F.Q({C:{23:\'95\'},1w:m(F,C){c.L=$(F);c.3U=O P(\'dX\',{\'90\':$Q(c.L.8Z(\'2J\'),{\'dZ\':\'5r\'})}).92(c.L).93(c.L);c.L.30(\'2J\',0);c.3Z(C);c.18=[];c.1o(c.C);c.4z=1g;c.29(\'25\',m(){c.4z=(c.18[0]===0)});B(W.5T)c.29(\'25\',m(){B(c.4z)c.L.2O().34(c.3U)})},3N:m(){M(o i=0;i<2;i++)c.18[i]=c.3J(c.12[i],c.14[i])},95:m(){c.2J=\'2J-1E\';c.4E=\'3f\';c.3n=c.L.4G},dY:m(){c.2J=\'2J-1H\';c.4E=\'2H\';c.3n=c.L.4L},8W:m(23){c[23||c.C.23]();k c.1q([c.L.1Z(c.2J).2P(),c.3U.1Z(c.4E).2P()],[0,c.3n])},8P:m(23){c[23||c.C.23]();k c.1q([c.L.1Z(c.2J).2P(),c.3U.1Z(c.4E).2P()],[-c.3n,0])},94:m(23){c[23||c.C.23]();c.4z=U;k c.26([-c.3n,0])},dg:m(23){c[23||c.C.23]();c.4z=1g;k c.26([0,c.3n])},cX:m(23){B(c.3U.4G==0||c.3U.4L==0)k c.8W(23);k c.8P(23)},3V:m(){c.L.30(c.2J,c.18[0]+c.C.2k);c.3U.30(c.4E,c.18[1]+c.C.2k)}});1h.7K=m(1W,2z){2z=2z||[];B($G(2z)!=\'1u\')2z=[2z];k $Q(1W,{c4:m(2e){k 1W(2e,2z)},c5:m(2e){k 1-1W(1-2e,2z)},c6:m(2e){k(2e<=0.5)?1W(2*2e,2z)/2:(2-1W(2*(1-2e),2z))/2}})};1h.2V=O 3d({cY:m(p){k p}});1h.2V.Q=m(6A){M(o 1W 1e 6A){1h.2V[1W]=O 1h.7K(6A[1W]);1h.2V.7g(1W)}};1h.2V.7g=m(1W){[\'c2\',\'bY\',\'bZ\'].1z(m(75){1h.2V[1W.4S()+75]=1h.2V[1W][\'c0\'+75]})};1h.2V.Q({c1:m(p,x){k 1c.36(p,x[0]||6)},c7:m(p){k 1c.36(2,8*(p-1))},c8:m(p){k 1-1c.8T(1c.ce(p))},cf:m(p){k 1-1c.8T((1-p)*1c.7C/2)},cg:m(p,x){x=x[0]||1.cd;k 1c.36(p,2)*((x+1)*p-x)},cc:m(p){o J;M(o a=0,b=1;1;a+=b,b/=2){B(p>=(7-4*a)/11){J=-1c.36((11-6*a-11*p)/4,2)+b*b;1B}}k J},c9:m(p,x){k 1c.36(2,10*--p)*1c.9p(20*p*1c.7C*(x[0]||1)/3)}});[\'cb\',\'bX\',\'bW\',\'bJ\'].1z(m(1W,i){1h.2V[1W]=O 1h.7K(m(p){k 1c.36(p,[i+2])});1h.2V.7g(1W)});o 3X={};3X.2F=O 1f({C:{4M:U,2k:\'4x\',4P:1f.1r,9v:1f.1r,25:1f.1r,9l:1f.1r,9b:1f.1r,1M:U,3A:{x:\'1H\',y:\'1E\'},3T:U,9t:6},1w:m(F,C){c.3Z(C);c.L=$(F);c.4M=$(c.C.4M)||c.L;c.2Z={\'18\':{},\'2e\':{}};c.J={\'1q\':{},\'18\':{}};c.2u={\'1q\':c.1q.5K(c),\'4i\':c.4i.5K(c),\'3H\':c.3H.5K(c),\'1S\':c.1S.17(c)};c.9q();B(c.C.1w)c.C.1w.1X(c)},9q:m(){c.4M.29(\'7e\',c.2u.1q);k c},bK:m(){c.4M.4m(\'7e\',c.2u.1q);k c},1q:m(K){c.1v(\'9v\',c.L);c.2Z.1q=K.4k;o 1M=c.C.1M;c.1M={\'x\':[],\'y\':[]};M(o z 1e c.C.3A){B(!c.C.3A[z])5L;c.J.18[z]=c.L.1Z(c.C.3A[z]).2P();c.2Z.2e[z]=K.4k[z]-c.J.18[z];B(1M&&1M[z]){M(o i=0;i<2;i++){B($2w(1M[z][i]))c.1M[z][i]=($G(1M[z][i])==\'m\')?1M[z][i]():1M[z][i]}}}B($G(c.C.3T)==\'3P\')c.C.3T={\'x\':c.C.3T,\'y\':c.C.3T};R.2S(\'4g\',c.2u.4i);R.2S(\'7l\',c.2u.1S);c.1v(\'4P\',c.L);K.1S()},4i:m(K){o 9u=1c.2c(1c.bL(1c.36(K.4k.x-c.2Z.1q.x,2)+1c.36(K.4k.y-c.2Z.1q.y,2)));B(9u>c.C.9t){R.4h(\'4g\',c.2u.4i);R.2S(\'4g\',c.2u.3H);c.3H(K);c.1v(\'9l\',c.L)}K.1S()},3H:m(K){c.4K=U;c.2Z.18=K.4k;M(o z 1e c.C.3A){B(!c.C.3A[z])5L;c.J.18[z]=c.2Z.18[z]-c.2Z.2e[z];B(c.1M[z]){B($2w(c.1M[z][1])&&(c.J.18[z]>c.1M[z][1])){c.J.18[z]=c.1M[z][1];c.4K=1g}19 B($2w(c.1M[z][0])&&(c.J.18[z]<c.1M[z][0])){c.J.18[z]=c.1M[z][0];c.4K=1g}}B(c.C.3T[z])c.J.18[z]-=(c.J.18[z]%c.C.3T[z]);c.L.30(c.C.3A[z],c.J.18[z]+c.C.2k)}c.1v(\'9b\',c.L);K.1S()},1S:m(){R.4h(\'4g\',c.2u.4i);R.4h(\'4g\',c.2u.3H);R.4h(\'7l\',c.2u.1S);c.1v(\'25\',c.L)}});3X.2F.56(O 2A,O 6a);P.Q({bI:m(C){k O 3X.2F(c,$1Q({3A:{x:\'2H\',y:\'3f\'}},C))}});3X.9j=3X.2F.Q({C:{5o:[],2K:U,22:[]},1w:m(F,C){c.3Z(C);c.L=$(F);c.5o=$$(c.C.5o);c.2K=$(c.C.2K);c.2i={\'L\':c.L.1Z(\'2i\'),\'2K\':U};B(c.2K)c.2i.2K=c.2K.1Z(\'2i\');B(![\'7y\',\'4o\',\'7t\'].1j(c.2i.L))c.2i.L=\'4o\';o 1E=c.L.1Z(\'1E\').2P();o 1H=c.L.1Z(\'1H\').2P();B(c.2i.L==\'4o\'&&![\'7y\',\'4o\',\'7t\'].1j(c.2i.2K)){1E=$2w(1E)?1E:c.L.9i(c.C.22);1H=$2w(1H)?1H:c.L.9h(c.C.22)}19{1E=$2w(1E)?1E:0;1H=$2w(1H)?1H:0}c.L.7w({\'1E\':1E,\'1H\':1H,\'2i\':c.2i.L});c.1o(c.L)},1q:m(K){c.2I=1k;B(c.2K){o 3M=c.2K.6j();o F=c.L.6j();B(c.2i.L==\'4o\'&&![\'7y\',\'4o\',\'7t\'].1j(c.2i.2K)){c.C.1M={\'x\':[3M.1H,3M.4H-F.2H],\'y\':[3M.1E,3M.4I-F.3f]}}19{c.C.1M={\'y\':[0,3M.3f-F.3f],\'x\':[0,3M.2H-F.2H]}}}c.1o(K)},3H:m(K){c.1o(K);o 2I=c.4K?U:c.5o.2R(c.8V,c).7p();B(c.2I!=2I){B(c.2I)c.2I.1v(\'bH\',[c.L,c]);c.2I=2I?2I.1v(\'bD\',[c.L,c]):1k}k c},8V:m(F){F=F.6j(c.C.22);o 18=c.2Z.18;k(18.x>F.1H&&18.x<F.4H&&18.y<F.4I&&18.y>F.1E)},1S:m(){B(c.2I&&!c.4K)c.2I.1v(\'bF\',[c.L,c]);19 c.L.1v(\'bG\',c);c.1o();k c}});P.Q({bM:m(C){k O 3X.9j(c,C)}});o 5W=O 1f({C:{1P:\'42\',9x:1g,8N:1f.1r,4A:1f.1r,6d:1f.1r,9d:1g,4Q:\'bN-8\',98:U,3O:{}},6E:m(){c.2g=(W.66)?O 66():(W.2s?O 9a(\'bT.bU\'):U);k c},1w:m(C){c.6E().3Z(C);c.C.4R=c.C.4R||c.4R;c.3O={};B(c.C.9d&&c.C.1P==\'42\'){o 4Q=(c.C.4Q)?\'; bV=\'+c.C.4Q:\'\';c.4C(\'9X-G\',\'8Y/x-9k-bS-bR\'+4Q)}B(c.C.1w)c.C.1w.1X(c)},8R:m(){B(c.2g.4u!=4||!c.4a)k;c.4a=U;o 41=0;49{41=c.2g.41}48(e){};B(c.C.4R.1X(c,41))c.4A();19 c.6d();c.2g.69=1f.1r},4R:m(41){k((41>=bO)&&(41<bP))},4A:m(){c.3a={\'1I\':c.2g.bQ,\'5i\':c.2g.ch};c.1v(\'4A\',[c.3a.1I,c.3a.5i]);c.7h()},6d:m(){c.1v(\'6d\',c.2g)},4C:m(1p,J){c.3O[1p]=J;k c},5a:m(2r,1K){B(c.C.98)c.8O();19 B(c.4a)k c;c.4a=1g;B(1K&&c.C.1P==\'53\'){2r=2r+(2r.1j(\'?\')?\'&\':\'?\')+1K;1K=1k}c.2g.4z(c.C.1P.7D(),2r,c.C.9x);c.2g.69=c.8R.17(c);B((c.C.1P==\'42\')&&c.2g.ci)c.4C(\'cK\',\'cL\');$Q(c.3O,c.C.3O);M(o G 1e c.3O)49{c.2g.cM(G,c.3O[G])}48(e){};c.1v(\'8N\');c.2g.5a($4F(1K,1k));k c},8O:m(){B(!c.4a)k c;c.4a=U;c.2g.79();c.2g.69=1f.1r;c.6E();c.1v(\'6I\');k c}});5W.56(O 6G,O 2A,O 6a);o 9B=5W.Q({C:{1K:1k,71:1k,25:1f.1r,5Y:U,6V:U},1w:m(2r,C){c.29(\'4A\',c.25);c.3Z(C);c.C.1K=c.C.1K||c.C.cJ;B(![\'42\',\'53\'].1j(c.C.1P)){c.5h=\'5h=\'+c.C.1P;c.C.1P=\'42\'}c.1o();c.4C(\'X-cI-cE\',\'66\');c.4C(\'cF\',\'1I/70, 1I/cG, 8Y/5i, 1I/5i, */*\');c.2r=2r},25:m(){B(c.C.71)$(c.C.71).1r().72(c.3a.1I);B(c.C.5Y||c.C.6V)c.5Y();c.1v(\'25\',[c.3a.1I,c.3a.5i],20)},9J:m(1K){1K=1K||c.C.1K;21($G(1K)){Y\'L\':1K=$(1K).5c();1B;Y\'2t\':1K=6Y.5c(1K)}B(c.5h)1K=(1K)?[c.5h,1K].1V(\'&\'):c.5h;k c.5a(c.2r,1K)},5Y:m(){o 2f,3b;B(c.C.6V||(/(cN|cU)2f/).2N(c.9C(\'9X-G\')))3b=c.3a.1I;19{3b=[];o 5e=/<2f[^>]*>([\\s\\S]*?)<\\/2f>/cW;62((2f=5e.cT(c.3a.1I)))3b.1i(2f[1]);3b=3b.1V(\'\\n\')}B(3b)(W.9U)?W.9U(3b):W.9G(3b,0)},9C:m(1p){49{k c.2g.cS(1p)}48(e){};k 1k}});6Y.5c=m(1O){o 47=[];M(o I 1e 1O)47.1i(6m(I)+\'=\'+6m(1O[I]));k 47.1V(\'&\')};P.Q({5a:m(C){k O 9B(c.5b(\'cQ\'),$1Q({1K:c.5c()},C,{1P:\'42\'})).9J()}});o 3g=O 3d({C:{6k:U,6i:U,3r:U,4y:U},26:m(1n,J,C){C=$1Q(c.C,C);J=6m(J);B(C.6k)J+=\'; 6k=\'+C.6k;B(C.6i)J+=\'; 6i=\'+C.6i;B(C.3r){o 6h=O 9z();6h.cR(6h.9Q()+C.3r*24*60*60*8A);J+=\'; cC=\'+6h.cp()}B(C.4y)J+=\'; 4y\';R.3K=1n+\'=\'+J;k $Q(C,{\'1n\':1n,\'J\':J})},53:m(1n){o J=R.3K.2M(\'(?:^|;)\\\\s*\'+1n.84()+\'=([^;]*)\');k J?cq(J[1]):U},2O:m(3K,C){B($G(3K)==\'2t\')c.26(3K.1n,\'\',$1Q(3K,{3r:-1}));19 c.26(3K,\'\',$1Q(C,{3r:-1}))}});o 3h={3F:m(N){21($G(N)){Y\'2h\':k\'"\'+N.31(/(["\\\\])/g,\'\\\\$1\')+\'"\';Y\'1u\':k\'[\'+N.2y(3h.3F).1V(\',\')+\']\';Y\'2t\':o 2h=[];M(o I 1e N)2h.1i(3h.3F(I)+\':\'+3h.3F(N[I]));k\'{\'+2h.1V(\',\')+\'}\';Y\'3P\':B(cr(N))1B;Y U:k\'1k\'}k 6g(N)},54:m(3I,4y){k(($G(3I)!=\'2h\')||(4y&&!3I.2N(/^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+co-u \\n\\r\\t])+?$/)))?1k:ck(\'(\'+3I+\')\')}};3h.cl=5W.Q({1w:m(2r,C){c.2r=2r;c.29(\'4A\',c.25);c.1o(C);c.4C(\'X-cs\',\'ct\')},5a:m(N){k c.1o(c.2r,\'cz=\'+3h.3F(N))},25:m(){c.1v(\'25\',[3h.54(c.3a.1I,c.C.4y)])}});o 8v=O 3d({70:m(1O,1y){1y=$1Q({\'58\':1f.1r},1y);o 2f=O P(\'2f\',{\'3W\':1O}).65({\'3C\':1y.58,\'cA\':m(){B(c.4u==\'6v\')c.1v(\'3C\')}});4p 1y.58;k 2f.6f(1y).34(R.67)},1s:m(1O,1y){k O P(\'cB\',$1Q({\'cy\':\'cx\',\'cu\':\'cv\',\'G\':\'1I/1s\',\'7O\':1O},1y)).34(R.67)},4s:m(1O,1y){1y=$1Q({\'58\':1f.1r,\'cw\':1f.1r,\'c3\':1f.1r},1y);o 4s=O cm();4s.3W=1O;o L=O P(\'7d\',{\'3W\':1O});[\'3C\',\'79\',\'8l\'].1z(m(G){o K=1y[\'51\'+G];4p 1y[\'51\'+G];L.29(G,m(){c.4m(G,1b.7b);K.1X(c)})});B(4s.2H&&4s.3f)L.1v(\'3C\',L,1);k L.6f(1y)},6p:m(4r,C){C=$1Q({25:1f.1r,8F:1f.1r},C);B(!4r.1i)4r=[4r];o 6p=[];o 63=0;4r.1z(m(1O){o 7d=O 8v.4s(1O,{\'58\':m(){C.8F.1X(c,63);63++;B(63==4r.V)C.25()}});6p.1i(7d)});k O 1R(6p)}});o 3k=O 1f({V:0,1w:m(2t){c.N=2t||{};c.55()},53:m(1n){k(c.6o(1n))?c.N[1n]:1k},6o:m(1n){k(1n 1e c.N)},26:m(1n,J){B(!c.6o(1n))c.V++;c.N[1n]=J;k c},55:m(){c.V=0;M(o p 1e c.N)c.V++;k c},2O:m(1n){B(c.6o(1n)){4p c.N[1n];c.V--}k c},1z:m(T,17){$1z(c.N,T,17)},Q:m(N){$Q(c.N,N);k c.55()},1Q:m(){c.N=$1Q.3t(1k,[c.N].Q(1b));k c.55()},1r:m(){c.N={};c.V=0;k c},1G:m(){o 1G=[];M(o I 1e c.N)1G.1i(I);k 1G},1A:m(){o 1A=[];M(o I 1e c.N)1A.1i(c.N[I]);k 1A}});m $H(N){k O 3k(N)};3k.3g=3k.Q({1w:m(1p,C){c.1p=1p;c.C=$Q({\'8x\':1g},C||{});c.3C()},8E:m(){B(c.V==0){3g.2O(c.1p,c.C);k 1g}o 3I=3h.3F(c.N);B(3I.V>cj)k U;3g.26(c.1p,3I,c.C);k 1g},3C:m(){c.N=3h.54(3g.53(c.1p),1g)||{};c.55()}});3k.3g.2m={};[\'Q\',\'26\',\'1Q\',\'1r\',\'2O\'].1z(m(1P){3k.3g.2m[1P]=m(){3k.1x[1P].3t(c,1b);B(c.C.8x)c.8E();k c}});3k.3g.56(3k.3g.2m);o 2x=O 1f({1w:m(2o,G){G=G||(2o.1i?\'1m\':\'3i\');o 1m,1Y;21(G){Y\'1m\':1m=2o;1Y=1m.7o();1B;Y\'1Y\':1m=2o.96();1Y=2o;1B;5Z:1m=2o.57(1g);1Y=1m.7o()}1m.1Y=1Y;1m.3i=1m.52();k $Q(1m,2x.1x)},4f:m(){o 4W=$A(1b);o 6l=($G(4W[4W.V-1])==\'3P\')?4W.cn():50;o 1m=c.6Z();4W.1z(m(2o){2o=O 2x(2o);M(o i=0;i<3;i++)1m[i]=1c.2c((1m[i]/ 3w * (3w - 6l)) + (2o[i] /3w*6l))});k O 2x(1m,\'1m\')},cD:m(){k O 2x(c.2y(m(J){k 4e-J}))},cP:m(J){k O 2x([J,c.1Y[1],c.1Y[2]],\'1Y\')},cV:m(6b){k O 2x([c.1Y[0],6b,c.1Y[2]],\'1Y\')},cO:m(6b){k O 2x([c.1Y[0],c.1Y[1],6b],\'1Y\')}});m $cH(r,g,b){k O 2x([r,g,b],\'1m\')};m $bE(h,s,b){k O 2x([h,s,b],\'1Y\')};2j.Q({7o:m(){o 4O=c[0],4N=c[1],5x=c[2];o 2C,5l,6u;o 1L=1c.1L(4O,4N,5x),2X=1c.2X(4O,4N,5x);o 3R=1L-2X;6u=1L/4e;5l=(1L!=0)?3R/1L:0;B(5l==0){2C=0}19{o 7i=(1L-4O)/3R;o 7A=(1L-4N)/3R;o br=(1L-5x)/3R;B(4O==1L)2C=br-7A;19 B(4N==1L)2C=2+7i-br;19 2C=4+7A-7i;2C/=6;B(2C<0)2C++}k[1c.2c(2C*9Z),1c.2c(5l*3w),1c.2c(6u*3w)]},96:m(){o br=1c.2c(c[2]/3w*4e);B(c[1]==0){k[br,br,br]}19{o 2C=c[0]%9Z;o f=2C%60;o p=1c.2c((c[2]*(3w-c[1]))/dL*4e);o q=1c.2c((c[2]*(a0-c[1]*f))/9O*4e);o t=1c.2c((c[2]*(a0-c[1]*(60-f)))/9O*4e);21(1c.8s(2C/60)){Y 0:k[br,t,p];Y 1:k[q,br,p];Y 2:k[p,br,t];Y 3:k[p,q,br];Y 4:k[t,p,br];Y 5:k[br,p,q]}}k U}});', 62, 876, '||||||||||||this||||||||return||function||var|||||||||||||if|options|||el|type||property|value|event|element|for|obj|new|Element|extend|document||fn|false|length|window||case||||from||to|elements||bind|now|else|events|arguments|Math|param|in|Class|true|Fx|push|contains|null|args|rgb|key|parent|name|start|empty|css|items|array|fireEvent|initialize|prototype|properties|each|values|break|result|style|top|className|keys|left|text|selector|data|max|limit|props|source|method|merge|Elements|stop|prop|parsed|join|transition|call|hsb|getStyle||switch|overflown|mode||onComplete|set||relatedTarget|addEvent|current|timer|round|custom|pos|script|transport|string|position|Array|unit|nocash|Methods|Garbage|color|opacity|delay|url|ie|object|bound|temp|chk|Color|map|params|Events|parse|hue|documentElement|Event|Base|getElementsByTagName|width|overed|margin|container|create|match|test|remove|toInt|context|filter|addListener|tag|item|Transitions|CSS|min|parentNode|mouse|setStyle|replace||time|inject|option|pow||||response|scripts|shared|Abstract|iCss|height|Cookie|Json|hex|returns|Hash|index|target|offset|iterable|border|tmp|duration|Styles|apply|iTo|getValue|100|scrollTo|previous|select|modifiers|xpath|load|id|val|toString|periodical|drag|str|compute|cookie|webkit|cont|setNow|headers|number|getPosition|delta|size|grid|wrapper|increase|src|Drag|chains|setOptions||status|post|mousewheel|wait|scroll||queryString|catch|try|running|getNow|fx|native|255|mix|mousemove|removeListener|check|results|page|fromTo|removeEvent|indexOf|absolute|delete|collect|sources|image|htmlElement|readyState|len|getTag|px|secure|open|onSuccess|bit|setHeader|next|layout|pick|offsetHeight|right|bottom|walk|out|offsetWidth|handle|green|red|onStart|encoding|isSuccess|toLowerCase|parseFloat|unique|klass|colors|parseInt|scrollLeft|domReady||on|rgbToHex|get|evaluate|setLength|implement|hexToRgb|onload|scrollTop|send|getProperty|toQueryString|precision|regexp|iFrom|iNow|_method|xml|HTMLElement|code|saturation|splice|setMany|droppables|fKey|realType|hidden|fix|preventDefault|trash|removeEvents|Listeners|blue|stopPropagation|mp|scrollWidth|defined|visibility|split|every|body|Multi|scrollHeight|brother|setProperty|bindWithEvent|continue|tagName|end|Properties|getElementsBySelector|getElementById|loaded|getElements|webkit419|evType|currentStyle|XHR|typeof|evalScripts|default||forEach|while|counter|included|addEvents|XMLHttpRequest|head|proto|onreadystatechange|Options|percent|generic|onFailure|regex|setProperties|String|date|path|getCoordinates|domain|alpha|encodeURIComponent|attempt|hasKey|images|include|domready|ie_ready|getParam|brightness|complete|flag|getItems|trim|newArray|transitions|insertBefore|first|found|setTransport|concat|Chain|firstChild|onCancel|clear|node|getSize|scrollSize|add|Style|checked|padding|iProps|qs|charAt|disabled|evalResponse|multiple|random|Object|copy|javascript|update|setHTML|innerText|selected|easeType|Dom|cssText|xhtml|abort|hasChild|callee|addEventListener|img|mousedown|gecko|compat|callChain|rr|DOMMouseScroll|NativeEvents|mouseup|appendChild|pageX|rgbToHsb|getLast|merged|hasClass|pageY|fixed|RegExp|nodeType|setStyles|clean|relative|mouseover|gr|Function|PI|toUpperCase|pairs|class|operator|unload|camelCase|getMany|Transition|mouseout|textContent|borderShort|href|clientY|innerHTML|direction|capitalize|Width|picked|which|prefix|constructor|fixStyle|clientX|appendText|clientWidth|opera|clientHeight|escapeRegExp|pageXOffset|Merge|wheelDelta|resolver|filterByAttribute|styleSheet|pageYOffset|pp|0px|filterByClass|getFormElements|normal|mouseleave|mouseenter|cloneEvents|filterById|error|beforeunload|Bottom|keydown|Left|sel|PropertiesIFlag|floor|click|removeEventListener|Asset|textarea|autoSave|getElement|relatedTargetGecko|1000|fixRelatedTarget|substr|input|save|onProgress|extended|Right|shift|Top|slice|getWidth|where|onRequest|cancel|slideOut|getNext|onStateChange|defaultView|sin|hyphenate|checkAgainst|slideIn|childNodes|application|getStyles|styles|nodeValue|injectAfter|adopt|hide|vertical|hsbToRgb|elementsProperty|autoCancel|zoom|ActiveXObject|onDrag|contents|urlEncoded|undefined|addClass|removeClass|getLeft|getTop|Move|www|onSnap|before|setOpacity|visible|cos|attach|after|argument|snap|distance|onBeforeStart|toElement|async|iParsed|Date|toFloat|Ajax|getHeader|getScrollLeft|ie6|getScrollHeight|setTimeout|change|step|request|Single|removeChild|interval|full|600000|Number|getTime|fps|getScrollWidth|getScrollTop|execScript|createElement|wheelStops|Content|getHeight|360|6000|wheel|getText|taintEnabled|clone|attachEvent|version|webkit420|nodeName|textnode|setInterval|cssFloat|detail|120|injectInside|chain|cloneNode|styleFloat|navigator|injectTop|bindAsEventListener|keyCode|replaceChild|control|shiftKey||pass|meta|alt|altKey|ctrlKey|createTextNode|metaKey|khtml|MooTools|replaceWith|BackgroundImageCache|float|CollectGarbage|toggleClass|srcElement|err|getBoxObjectFor|detachEvent|readOnly|getParent|lastChild|some|getChildren|associate|iframe|borderWidth|borderStyle|borderColor|getPrevious|execCommand|getFirst|ie7|DOMElement|attributes|getProperties|removeAttribute|getRandom|removeProperty|boolean|embed|clearInterval|clearTimeout|getAttribute|times|Window|Sibling|transparent|tabIndex|maxlength|tabindex|accessKey|hasLayout|maxLength|readonly|zIndex|all|frameBorder|frameborder|Document|clearChain|whitespace|colSpan|rowspan||colspan|getPropertyValue|htmlFor|rowSpan|collection|accesskey|setText|setAttribute|getComputedStyle|injectBefore|toLeft|over|HSB|drop|emptydrop|leave|makeResizable|Quint|detach|sqrt|makeDraggable|utf|200|300|responseText|urlencoded|form|Microsoft|XMLHTTP|charset|Quart|Cubic|Out|InOut|ease|Pow|In|onerror|easeIn|easeOut|easeInOut|Expo|Circ|Elastic|111|Quad|Bounce|618|acos|Sine|Back|responseXML|overrideMimeType|4096|eval|Remote|Image|pop|Eaeflnr|toGMTString|decodeURIComponent|isFinite|Request|JSON|media|screen|onabort|stylesheet|rel|json|readystatechange|link|expires|invert|With|Accept|html|RGB|Requested|postBody|Connection|close|setRequestHeader|ecma|setBrightness|setHue|action|setTime|getResponseHeader|exec|java|setSaturation|gi|toggle|linear|contextmenu|filterByTag|ES|reset|submit|move|focus|blur|namespaceURI|starts|snapshotItem|http|w3|snapshotLength|UNORDERED_NODE_SNAPSHOT_TYPE|with|substring|show|resize|keyup|fromElement|cancelBubble|returnValue|button|rightClick||fromCharCode|menu|client|enter|up|tab|dblclick|keypress|backspace|space|down|esc|org|XPathResult|Scroll|effects|DOMContentLoaded|defer|https|write|onDomReady|1999|10000|clearTimer|500|effect|innerWidth|innerHeight|protocol|void|checkbox|radio|location|getElementsByClassName|div|horizontal|overflow|Slide|password|offsetParent|toTop|toRight|toBottom|offsetLeft|offsetTop'.split('|'), 0, {}))
退出登录,session不知道怎么失效了,获取不到session里面的值?
登录页面我弄了一个验证码,存放到session中,刷新页面第一次登录可以验证, 但是退出登录后,再次登录session里面的值获取不到了,报空指针,为什么?我调试 发现退出登录的时候,session中也存放值了,为什么就是获取不到呢? ``` 09:25:06.144 [5200279@qtp-16921957-13 - /servlet/captchaServlet?method=getJPGCodeServlet] DEBUG org.mortbay.log - RESPONSE /servlet/captchaServlet 200 09:25:10.228 [5200279@qtp-16921957-13] DEBUG org.mortbay.log - EOF 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - REQUEST /training_security_check on org.mortbay.jetty.HttpConnection@1be372a 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - Got Session ID 13ke4zpaqcz65188p4bhmhpnre from cookie 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - sessionManager=org.mortbay.jetty.servlet.HashSessionManager@6c8a0c 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - session=null 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - servlet=default 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - chain=Set Character Encoding->springSecurityFilterChain->default 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - servlet holder=default 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - call filter Set Character Encoding 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - call filter springSecurityFilterChain 09:25:19.968 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.u.m.AntPathRequestMatcher - Checking match of request : '/training_security_check'; against '/js/**' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.u.m.AntPathRequestMatcher - Checking match of request : '/training_security_check'; against '/image/**' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.u.m.AntPathRequestMatcher - Checking match of request : '/training_security_check'; against '/css/**' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.u.m.AntPathRequestMatcher - Checking match of request : '/training_security_check'; against '/img/**' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.u.m.AntPathRequestMatcher - Checking match of request : '/training_security_check'; against '/check-**' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.security.web.FilterChainProxy - /training_security_check at position 1 of 5 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.c.HttpSessionSecurityContextRepository - No HttpSession currently exists 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.c.HttpSessionSecurityContextRepository - No SecurityContext was available from the HttpSession: null. A new one will be created. 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.security.web.FilterChainProxy - /training_security_check at position 2 of 5 in additional filter chain; firing Filter: 'LogoutFilter' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.security.web.FilterChainProxy - /training_security_check at position 3 of 5 in additional filter chain; firing Filter: 'CspUsernamePasswordAuthenticationFilter' 09:25:19.969 [5200279@qtp-16921957-13 - /training_security_check] DEBUG c.a.v.s.w.a.CspUsernamePasswordAuthenticationFilter - Request is to process authentication 09:25:24.804 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.s.HttpSessionEventPublisher - Publishing event: org.springframework.security.web.session.HttpSessionCreatedEvent[source=org.mortbay.jetty.servlet.HashSessionManager$Session:1j6zr4li8qb2m10zam8dqsmj1y@15216624] 09:29:26.160 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.c.HttpSessionSecurityContextRepository - SecurityContext is empty or contents are anonymous - context will not be stored in HttpSession. 09:29:29.129 [5200279@qtp-16921957-13 - /training_security_check] DEBUG o.s.s.w.c.SecurityContextPersistenceFilter - SecurityContextHolder now cleared, as request processing completed 09:29:39.700 [5200279@qtp-16921957-13 - /training_security_check] ERROR org.mortbay.log - /training_security_check java.lang.NullPointerException: null at com.auchan.via.security.web.authentication.CspUsernamePasswordAuthenticationFilter.attemptAuthentication(CspUsernamePasswordAuthenticationFilter.java:113) ~[classes/:na] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) ~[spring-web-4.0.6.RELEASE.jar:4.0.6.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) ~[spring-web-4.0.6.RELEASE.jar:4.0.6.RELEASE] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) ~[jetty-6.1.26.jar:6.1.26] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) ~[spring-web-4.0.6.RELEASE.jar:4.0.6.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.0.6.RELEASE.jar:4.0.6.RELEASE] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) ~[jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) ~[jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.Server.handle(Server.java:322) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jetty-6.1.26.jar:6.1.26] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jetty-6.1.26.jar:6.1.26] at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) [jetty-6.1.26.jar:6.1.26] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jetty-util-6.1.26.jar:6.1.26] 09:29:39.911 [5200279@qtp-16921957-13 - /training_security_check] DEBUG org.mortbay.log - POST /training_security_check HTTP/1.1 ```
cas server4.1.3集群退出的问题
一个Nginx+两个Tomcat组成的cas server集群,cas server主要配置如下: ticketRegistry.xml文件: ``` <bean id="ticketDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" p:driverClass="com.mysql.jdbc.Driver" p:jdbcUrl="jdbc:mysql://localhost:7999/casticket?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull" p:user="root" p:password="root" p:initialPoolSize="6" p:minPoolSize="6" p:maxPoolSize="20" p:maxIdleTimeExcessConnections="1000" p:checkoutTimeout="2000" p:acquireIncrement="16" p:acquireRetryAttempts="5" p:acquireRetryDelay="2000" p:idleConnectionTestPeriod="30" p:preferredTestQuery="select 1" /> <!-- Ticket Registry --> <!-- <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry"/> --> <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.JpaTicketRegistry" /> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/> <util:list id="packagesToScan"> <value>org.jasig.cas.ticket</value> <value>org.jasig.cas.adaptors.jdbc</value> </util:list> <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" p:generateDdl="true" p:showSql="true" /> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" p:dataSource-ref="ticketDataSource" p:jpaVendorAdapter-ref="jpaVendorAdapter" p:packagesToScan-ref="packagesToScan"> <property name="persistenceUnitName" value="CasPU"/> <property name="jpaProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" p:entityManagerFactory-ref="entityManagerFactory" /> <!-- 使用这个报错 --> <!-- <tx:annotation-driven transaction-manager="transactionManager" /> --> <tx:advice id="txRegistryAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="deleteTicket" read-only="false" /> <tx:method name="addTicket" read-only="false" /> <tx:method name="updateTicket" read-only="false" /> <tx:method name="getTicket" read-only="true" /> <tx:method name="getTickets" read-only="true" /> <tx:method name="add*" read-only="false"/> <tx:method name="delete*" read-only="false"/> <tx:method name="save*" read-only="false"/> <tx:method name="update*" read-only="false"/> <tx:method name="get*" read-only="true"/> <tx:method name="grant*" read-only="false"/> <tx:method name="validate*" read-only="true"/> <tx:method name="sessionCount" read-only="true" /> <tx:method name="serviceTicketCount" read-only="true" /> </tx:attributes> </tx:advice> <tx:advice id="txRegistryLockingAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="getOwner" read-only="true" /> <tx:method name="acquire" read-only="false" /> <tx:method name="release" read-only="false" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="ticketRegistryOperations" expression="execution(* org.jasig.cas.ticket.registry.JpaTicketRegistry.*(..))"/> <aop:pointcut id="ticketRegistryLockingOperations" expression="execution(* org.jasig.cas.ticket.registry.support.JpaLockingStrategy.*(..))"/> <aop:pointcut id="centralAuthenticationServiceOperations" expression="execution(* org.jasig.cas.CentralAuthenticationService.*(..))"/> <aop:advisor advice-ref="txRegistryAdvice" pointcut-ref="ticketRegistryOperations"/> <aop:advisor advice-ref="txRegistryLockingAdvice" pointcut-ref="ticketRegistryLockingOperations"/> <aop:advisor advice-ref="txRegistryAdvice" pointcut-ref="centralAuthenticationServiceOperations"/> </aop:config> <!--Quartz --> <!-- TICKET REGISTRY CLEANER --> <bean id="cleanerLock" class="org.jasig.cas.ticket.registry.support.JpaLockingStrategy" p:uniqueId="${host.name}" p:applicationId="cas-ticket-registry-cleaner" /> <bean id="ticketRegistryCleaner" class="org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner" c:centralAuthenticationService-ref="centralAuthenticationService" c:ticketRegistry-ref="ticketRegistry" p:lock-ref="cleanerLock"/> <bean id="jobDetailTicketRegistryCleaner" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" p:targetObject-ref="ticketRegistryCleaner" p:targetMethod="clean"/> <bean id="triggerJobDetailTicketRegistryCleaner" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean" p:jobDetail-ref="jobDetailTicketRegistryCleaner" p:startDelay="20000" p:repeatInterval="5000000"/> ``` Nginx.conf配置文件: ``` upstream cas { server 10.0.0.8:8082 weight=1; server 10.0.0.8:8083 weight=1; } server { listen 8080; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #proxy_redirect off; proxy_set_header Host $host; proxy_set_header Referer $http_referer; proxy_set_header Cookie $http_cookie; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://cas; } ``` 两个tomcat使用memcached-session-manager实现session共享: ``` <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:localhost:11211" sticky="false" sessionBackupAsync="false" lockingMode="auto" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> ``` 客户端SpringMVC项目web.xml文件: ``` <filter> <filter-name>CAS Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>http://h4:8080/cas</param-value> </init-param> </filter> <!-- 该过滤器负责用户的认证工作,必须启用它 --> <filter> <filter-name>CASFilter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <!-- 下面的URL是Cas服务器的登录地址 --> <param-value>http://h4:8080/cas/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://localhost:8888</param-value> </init-param> </filter> <!-- 该过滤器负责对Ticket的校验工作,必须启用它 --> <filter> <filter-name>CAS Validation Filter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <!-- 下面的URL是Cas服务器的认证地址 --> <param-value>http://h4:8080/cas</param-value><!-- /login --> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://localhost:8888</param-value> </init-param> <init-param> <param-name>redirectAfterValidation</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>useSession</param-name> <param-value>true</param-value> </init-param> <!--<init-param>--> <!--<param-name>renew</param-name>--> <!--<param-value>false</param-value>--> <!--</init-param>--> <!--<init-param>--> <!--<param-name>gateway</param-name>--> <!--<param-value>false</param-value>--> <!--</init-param>--> </filter> <filter> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 --> <filter> <filter-name>CAS Assertion Thread Local Filter</filter-name> <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> </filter> <filter> <filter-name>CasForInvokeContextFilter</filter-name> <filter-class>javacommon.filter.LoginFilter</filter-class> </filter> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> ``` 客户端项目退出时报错: 2016-10-18 10:58:35,558 ERROR [org.springframework.transaction.interceptor.TransactionInterceptor] - Application exception overridden by commit exception INVALID_TICKET at org.jasig.cas.CentralAuthenticationServiceImpl.getTicket(CentralAuthenticationServiceImpl.java:520) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
如何在这段js里添加个东西 !!!!!!
![图片说明](https://img-ask.csdn.net/upload/201606/22/1466560587_584561.png) 就是这上的那个问题 就是当名称没有输入的时候 下面的结果 哪里的名称显示 商品一 如果在添加一个 还是没有名称 那就是商品二 以此类推 js代码 ``` var rx = /^\d+(\.\d+)?$/, rxInt = /^\d+$/,tbRst=$('#tbRst'); function validate(ipts) { var ipt = ipts.filter('.price'); if (!rx.test(ipt.val())) { alert('单价为数字!'); ipt.select(); return false } ipt = ipts.filter('.num'); if (!rxInt.test(ipt.val())) { alert('数量为数字!'); ipt.select(); return false } return true } function delRow(btn) { if (confirm('确认删除?!')) { $(btn).closest('tr').nextAll().each(function () { this.cells[0].innerHTML =parseInt( this.cells[0].innerHTML) - 1;}); $(btn).closest('tr').remove(); updateSortADV(); } } function updateSortADV() { var arrTds = $('#tbRst').find('tr td:nth-child(5)'), arrMoney = arrTds.map(function () { return { index: this.parentNode.rowIndex, v: parseInt(this.innerHTML) } }).get(); arrMoney.sort(function (a, b) { return a.v - b.v }); var l = arrMoney.length, h = l - 1; for (var i = 0; i < l; i++) { arrTds.eq(arrMoney[i].index - 1).next().html(i + 1).next().html(i == 0 ? '价格较低' : i == h ? '价格较贵' : '') } } function addTR(btn) { var input = $(btn).closest('form').find(':text'); if (validate(input)) { $('#tbRst').append('<tr align="center"><td>' + (tbRst.find('tr').length + 1) + '</td><td>' + input.filter('.name').val() + '</td><td>' + input.filter('.price').val() + '</td><td>' + input.filter('.num').val() + '</td><td>' + (parseFloat(input.filter('.price').val()) * parseInt(input.filter('.num').val())).toFixed(2) + '</td><td></td><td></td><td><input type="button" value="编辑" onclick="editUpdate(this)"/> <input type="button" value="删除" onclick="delRow(this)"/></td></tr>'); btn.form.reset(); updateSortADV(); } } function editUpdate(btn) { var tds = $(btn).closest('tr').find('td'), edit = btn.value == '编辑'; if (!edit) { if (!validate(tds.find('input'))) return; tds.eq(4).html((parseFloat(tds.eq(2).find('input').val()) * parseFloat(tds.eq(3).find('input').val())).toFixed(2)); } tds.eq(1).html(edit ? '<input type="text" class="name" value="' + tds.eq(1).text() + '"/>' : tds.eq(1).find('input').val()) tds.eq(2).html(edit ? '<input type="text" class="price" value="' + tds.eq(2).text() + '"/>' : tds.eq(2).find('input').val()) tds.eq(3).html(edit ? '<input type="text" class="num" value="' + tds.eq(3).text() + '"/>' : tds.eq(3).find('input').val()) btn.value = edit ? '更新' : '编辑'; updateSortADV(); } ``` 求解决
vue+elementUI表格数据修改,表格消失
新人学习vue+elementUI的时候,做一个简单的增删改查,每次表格里data的数据改了,之前的表格就会消失,麻烦路过大佬给看一下问题 ``` <div id="test"> <div> <el-table id="tab" :data="data.filter(data => !search || data.Name.toLowerCase().includes(search .toLowerCase()))" style="width: 100%"> <el-table-column label="姓名" prop="Name" width="180"></el-table-column> <el-table-column label="年龄" prop="Age" width="180"></el-table-column> <el-table-column label="毕业学校" prop="School" width="180"></el-table-column> <el-table-column label="备注" prop="Remark" width="180"></el-table-column> <el-table-column align="right"> <template slot="header" slot-scope="scope"> <el-input v-model="search " size="180" placeholder="输入姓名进行搜索"/> </template> <template slot-scope="scope"> <el-button type="success" @click="Edit(scope.row)">编辑</el-button><el-button @click="Delete(scope.row.Id)">删除</el-button> </template> </el-table-column> </el-table> </div> </div> <div id="row"> <div> <el-input v-model="savData.Name" placeholder="姓名"/> </div> <div> <el-input v-model="savData.Age" placeholder="年龄"/> </div> <div> <el-select v-model="savData.School"> <el-option label="杨村第一小学" value="杨村第一小学"></el-option> <el-option label="杨村第二小学" value="杨村第二小学"></el-option> <el-option label="杨村第三小学" value="杨村第三小学"></el-option> </el-select> </div> <div> <el-input v-model="savData.Remark" placeholder="备注"/> </div> <div> <el-button type="success" @click="Save">保存</el-button> </div> </div> var vue = new Vue({ el: '#test', data: data, methods: {//监听方法 Change:function(){ console.log(this.data) }, Delete: function (id) { console.log(id) for (var i=0;i<this.data.length;i++){ if (this.data[i].Id == id) { this.data.splice(i, 1);//从哪个数据开始到之后几条数据删除 this.rowsSave.splice(i,1); break; } } }, Edit: function (row) { console.log(3) rowSadta.savData = row; }, //上一页方法 PrePage: function (event) { console.log(4) $(".pagination .active").prev().trigger("click"); }, //下一页方法 NextPage: function (event) { console.log(5) $(".pagination .active").next().trigger("click"); }, //点击页码的方法 NumPage: function (num, event) { console.log(6) if (this.curpage == num) { return; } this.curpage = num; $(".pagination li").removeClass("active"); if (event.target.tagName.toUpperCase() == "LI") { $(event.target).addClass("active"); } else { $(event.target).parent().addClass("active"); } if (this.curpage == 1) { $("#prepage").addClass("disabled"); } else { $("#prepage").removeClass("disabled"); } if (this.curpage == Math.ceil(this.data.length / this.pagesize)) { $("#nextpage").addClass("disabled"); } else { $("#nextpage").removeClass("disabled"); } }, } }); ```
数据库为什么报这个错误
<p> // --&gt; &lt;script src="/javascripts/tinymce/plugins/javaeye/langs/zh.js" type="text/javascript"&gt;&lt;/script&gt; h: 730px; height: 350px;"&gt;</p> <p>WARN,catalina-exec-385,2010-11-19 11:23:46,453,resourcepool.BasicResourcePool -- com.mchange.v2.resourcepool.BasicResourcePool@13a503ce -- an attempt to checkout a resource was interrupted, and the pool is still live: some other thread must have either interrupted the Thread attempting checkout!<br>java.lang.InterruptedException<br> at java.lang.Object.wait(Native Method)<br> at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1315)<br> at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)<br> at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)<br> at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)<br> at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)<br> at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)<br> at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)<br> at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:280)<br> at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:320)<br> at org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes(SQLErrorCodesFactory.java:212)<br> at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:141)<br> at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.&lt;init&gt;(SQLErrorCodeSQLExceptionTranslator.java:104)<br> at org.springframework.orm.hibernate3.SessionFactoryUtils.newJdbcExceptionTranslator(SessionFactoryUtils.java:143)<br> at org.springframework.orm.hibernate3.HibernateAccessor.getDefaultJdbcExceptionTranslator(HibernateAccessor.java:453)<br> at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)<br> at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)<br> at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)<br> at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)<br> at asian.game.util.logger.LoggerAdvice.saveLog(LoggerAdvice.java:133)<br> at asian.game.util.logger.LoggerAdvice.before(LoggerAdvice.java:54)<br> at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:49)<br> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)<br> at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)<br> at $Proxy25.updateLoginOutTime(Unknown Source)<br> at asian.game.web.frame.action.LoginValidateAction.loginOut(LoginValidateAction.java:58)<br> at sun.reflect.GeneratedMethodAccessor3564.invoke(Unknown Source)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br> at java.lang.reflect.Method.invoke(Unknown Source)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)<br> at asian.game.util.interceptor.LoggerInterceptor.intercept(LoggerInterceptor.java:50)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)<br> at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)<br> at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)<br> at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)<br> at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)<br> at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)<br> at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)<br> at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)<br> at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)<br> at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)<br> at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)<br> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at newcom.com.cn.os.LoginValidateFilter.doFilter(LoginValidateFilter.java:87)<br> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)<br> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)<br> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)<br> at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)<br> at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)<br> at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2087)<br> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)<br> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)<br> at java.lang.Thread.run(Unknown Source)</p> <p> </p> <p>我用数据库连接池是C3P0的,连接池配置如下:</p> <p> </p> <p><span style="white-space: pre;"> </span>&lt;bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt;</p> <p>        <span style="white-space: pre;"> </span>&lt;property name="driverClass" value="${driverClassName}"/&gt;</p> <p>        <span style="white-space: pre;"> </span>&lt;property name="jdbcUrl" value="${url}"/&gt;</p> <p>     <span style="white-space: pre;"> </span>   <span style="white-space: pre;"> </span>&lt;property name="user" value="${username}"/&gt;</p> <p>        <span style="white-space: pre;"> </span>&lt;property name="password" value="${password}"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="acquireIncrement" value="3"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="acquireRetryAttempts" value="30"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="acquireRetryDelay" value="1000"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="idleConnectionTestPeriod" value="60"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="initialPoolSize" value="20"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="maxIdleTime" value="60"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="minPoolSize" value="10"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="maxPoolSize" value="500"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="maxStatements" value="0"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="maxStatementsPerConnection" value="0"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="numHelperThreads" value="3"/&gt;</p> <p><span style="white-space: pre;"> </span>&lt;property name="testConnectionOnCheckin" value="true"/&gt;</p> <p>       <span style="white-space: pre;"> </span>&lt;property name="preferredTestQuery" value="select sysdate from dual" /&gt;</p> <p><span style="white-space: pre;"> </span>&lt;/bean&gt;</p>
基于springmvc+mybatis的登录表单提交后404
前端填写正确的用户名和密码后,提交登录,浏览器显示404,前端提交的地址是/userlogin,后端对接的/user/userlogin也是对的,浏览器f12里显示请求的确成功传给了后端,但是不知道为什么404。用的是tomcat8.5,java版本1.8,phpstudy最新版,mysql5.7.26。 ## 这是所用到的包: ![图片说明](https://img-ask.csdn.net/upload/202002/01/1580567617_880785.jpg) ## 这是目录结构: ![图片说明](https://img-ask.csdn.net/upload/202002/01/1580567511_223692.jpg) ## 这是web.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springmvc_test</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置spring监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 加载spring配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/context-config.xml</param-value> </context-param> <!-- 配置前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- DispatcherServlet在初始化方法里面会读取该初始化参数的值来获得 spring配置文件的位置 ,然后启动spring容器。 --> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 配置字符编码 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> ``` ## 这是context-config.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 扫描service包下的注解 --> <context:component-scan base-package="com.test.service"></context:component-scan> <!-- 配置数据库 --> <!-- 加载配置文件 --> <!-- <context:property-placeholder location="classpath:jdbc.properties"/> --> <bean id="dateSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/Eday_Test"></property> <property name="username" value="root"></property> <property name="password" value="123456"></property> </bean> <!-- 配置Sqlsessionfactory并将数据源注入 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 引入数据源 --> <property name="dateSource" ref="dateSource"></property> <!-- 载入mybatis配置文件 --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <!-- 载入配置mapper映射的xml --> <property name="mapperLocations" value="classpath:com/test/mapper/*.xml"></property> </bean> <!-- 配置扫描mapper接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackge" value="com.test.mapper"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dateSource" ref="dateSource"></property> </bean> <tx:annotation-driven transaction-manager="transactionManager"/> </beans> ``` ## 这是mybatis-config.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <!-- 配置别名 --> <typeAlias alias="User" type="com.test.pojo.User"/> </typeAliases> </configuration> ``` ## 这是springmvc-config.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 扫描controller包下的注解 --> <context:component-scan base-package="com.test.controller"></context:component-scan> <!-- 开启注解 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 静态资源访问 --> <mvc:default-servlet-handler/> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置试图解析的默认路径,即配置页面的根路径 --> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans> ``` ## 这是UserController.java: ```java package com.test.controller; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.test.pojo.User; import com.test.service.UserService; //声明控制器 @Controller //设置bean的scope属性为多例(prototype) @Scope("prototype") //设置请求映射,当客户端请求/user时,转到该控制器处理 @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value="/userlogin") public ModelAndView login(String user_Name,String user_pwd,ModelAndView mv,HttpSession session){ //调用userService中的login方法处理user实体类对象 User user = userService.login(user_Name,user_pwd); //登录的逻辑判断,判断条件是返回结果不为空 if(user!=null){ //登陆成功,将user对象设置到HttpSession作用范围域中,相当于服务端的cookie,有效时间默认30分钟 //在程序运行期间,在任意页面都可以提取它的值。 session.setAttribute("user",user); //转发到main请求 //登录成功,跳转页面 mv.setViewName("login/login-success"); }else{ //登录失败,向前端传递失败信息 mv.addObject("message","用户名或密码错误,请重新输入!"); //登录失败,跳转到登录页面 mv.setViewName("login"); } return mv; } //跳转到用户注册界面 @RequestMapping(value="/userregister"/*,method=RequestMethod.POST*/) public String register(User user){ String user_Name = user.getUser_Name(); //如果数据库中没有该用户,可以注册,否则跳转页面 if(userService.findByUserName(user_Name)==null){ //添加用户 userService.register(user); //注册成功,跳转到主页面 return "index"; }else{ //注册失败,跳转到错误页面 return "error"; } } } ``` ## 这是UserMapper.java: ```java package com.test.mapper; import org.apache.ibatis.annotations.Param; import com.test.pojo.User; public interface UserMapper { //根据用户名和密码查找,mybatis中有多个参数时,需要使用@Param注解 User findByUserNameAndPassword(@Param("user_Name")String user_Name,@Param("user_Pwd")String user_Pwd); //增加用户 void addUser(User user); //根据用户名查询 User findByUserName(String user_Name); } ``` ## 这是UserMapper.xml: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.tes.mapper.UserMapper"> <!-- 根据用户名和密码查询 --> <select id="findByUserNameAndPasssword" resultType="User"> select * from user where user_Name=#{user_Name} and user_Pwd=#{user_Pwd} </select> <!-- 增加用户 --> <insert id="addUser" parameterType="User"> insert into user (user_Name,user_Pwd,user_Email,user_NickName,user_Birth,user_Phone,user_InvitationCode) values(#{user_Name},#{user_Pwd},#{user_Email},#{user_NickName},#{user_Birth},#{user_Phone},#{user_InvitationCode}) </insert> <!-- 根据用户名查询 --> <select id="findByUserName" resultType="User"> select * from user where user_Name=#{user_Name} </select> </mapper> ``` ## 这是User.java: ```java package com.test.pojo; import java.sql.Timestamp; public class User { private int user_Id; private String user_Name; private int user_Pwd; private String user_Email; private String user_NickName; private Timestamp user_Time; private String user_Birth; private int user_Fans; private int user_Follow; private int user_Score; private String user_HeadImgAddr; private int user_Phone; private String user_InvitationCode; public int getUser_Id() { return user_Id; } public void setUser_Id(int user_Id) { this.user_Id = user_Id; } public String getUser_Name() { return user_Name; } public void setUser_Name(String user_Name) { this.user_Name = user_Name; } public int getUser_Pwd() { return user_Pwd; } public void setUser_Pwd(int user_Pwd) { this.user_Pwd = user_Pwd; } public String getUser_Email() { return user_Email; } public void setUser_Email(String user_Email) { this.user_Email = user_Email; } public String getUser_NickName() { return user_NickName; } public void setUser_NickName(String user_NickName) { this.user_NickName = user_NickName; } public Timestamp getUser_Time() { return user_Time; } public void setUser_Time(Timestamp user_Time) { this.user_Time = user_Time; } public String getUser_Birth() { return user_Birth; } public void setUser_Birth(String user_Birth) { this.user_Birth = user_Birth; } public int getUser_Fans() { return user_Fans; } public void setUser_Fans(int user_Fans) { this.user_Fans = user_Fans; } public int getUser_Follow() { return user_Follow; } public void setUser_Follow(int user_Follow) { this.user_Follow = user_Follow; } public int getUser_Score() { return user_Score; } public void setUser_Score(int user_Score) { this.user_Score = user_Score; } public String getUser_HeadImgAddr() { return user_HeadImgAddr; } public void setUser_HeadImgAddr(String user_HeadImgAddr) { this.user_HeadImgAddr = user_HeadImgAddr; } public int getUser_Phone() { return user_Phone; } public void setUser_Phone(int user_Phone) { this.user_Phone = user_Phone; } public String getUser_InvitationCode() { return user_InvitationCode; } public void setUser_InvitationCode(String user_InvitationCode) { this.user_InvitationCode = user_InvitationCode; } @Override public String toString() { return "User [user_Id=" + user_Id + ", user_Name=" + user_Name + ", user_Pwd=" + user_Pwd + ", user_Email=" + user_Email + ", user_NickName=" + user_NickName + ", user_Time=" + user_Time + ", user_Birth=" + user_Birth + ", user_Fans=" + user_Fans + ", user_Follow=" + user_Follow + ", user_Score=" + user_Score + ", user_HeadImgAddr=" + user_HeadImgAddr + ", user_Phone=" + user_Phone + ", user_InvitationCode=" + user_InvitationCode + "]"; } } ``` ## 这是UserService.java: ```java package com.test.service; import com.test.pojo.User; public interface UserService { //通过用户名及密码核查用户登录 User login(String user_Name,String user_Pwd); //增加用户 void register(User user); //根据用户名查询 User findByUserName(String user); } ``` ## 这是UserServiceImpl.java: ```java package com.test.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.test.mapper.UserMapper; import com.test.pojo.User; import com.test.service.UserService; @Service @Transactional public class UserServiceImpl implements UserService { //注入UserMapper接口 @Autowired private UserMapper userMapper; //登录,根据用户名和密码进行查询 @Override public User login(String user_Name,String user_Pwd){ return userMapper.findByUserNameAndPassword(user_Name,user_Pwd); } //注册,增加用户 @Override public void register(User user){ userMapper.addUser(user); } //根据用户名查询 @Override public User findByUserName(String user_Name){ return userMapper.findByUserName(user_Name); } } ``` ##这是login.jsp ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="../css/login.css" /> <title>登录</title> </head> <body> <!--导航栏--> <nav class="nav"> <ul> <li class="logo"><a href="#">Eday</a></li> <li class="shouye"><a href="../index.jsp" class="neirong">首页</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">文章列表</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">留言板</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">更新日志</a></li> </ul> </nav> <!--登录板块--> <header class="header"> <p class="logintitle"> <b>登录</b> </p> <form action="${pageContext.request.contextPath }/user/userlogin" method="post" class=login-form> <p class= login-username-p> <label for="username" class="login-username-text">用户名:</label> <input type=text name="user_Name" class="login-username-input"> <br><a href="register.jsp" class=login-register>注册</a> </p> <p class="login-psw-p"> <label for="psw" class="login-psw-text">密码:</label> <input type=password name="user_Pwd" class="login-psw-input"> <br><a href="#" class=login-forget>忘记密码</a> </p> <div class=login-button-div> <label for=button></label> <button type=sublim class=login-button>登录</button> </div> </form> </header> </body> </html> ``` ## 这是login-success.jsp: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登录成功,请等待跳转...</title> <script type="text/javascript"> onload=function(){ setInterval(go, 1000); }; var x=3; //利用了全局变量来执行 function go(){ x--; if(x>0){ document.getElementById("sp").innerHTML=x; //每次设置的x的值都不一样了。 }else{ location.href='../index.jsp'; } } </script> </head> <body> <!--导航栏--> <nav class="nav"> <ul> <li class="logo"><a href="#">Eday</a></li> <li class="shouye"><a href="../index.jsp" class="neirong">首页</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">文章列表</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">留言板</a></li> <li class="fgx">|</li> <li><a href="#" class="neirong">更新日志</a></li> </ul> </nav> <header> <div> <p>登录成功!页面将在3秒后自动跳转,请稍等...</p> </div> </header> </body> </html> ``` ## 这是数据库: ![图片说明](https://img-ask.csdn.net/upload/202002/01/1580568589_694404.jpg)
帮忙看看为何管理那块不显示呢 是在JS文件里的
var ghost = window.location.hostname+":2258"; var sendrefresh = true; var showicon = true; var portraiturl = "http://" + host + "/IceBeans/"; var usenickname = 0; var listmode = 1; function UserList() { this.nSort = 0; this.nSort0 = 0; this.m_pUsers = new Array(); this.GetCount = function () { return this.m_pUsers.length; } this.GetAdminCount = function () { var num = 0; for (var i = 0; i < this.GetCount(); i++) { if (this.GetObject(i).usertype == "11") { num++; } } return num; } this.GetUserCount = function () { return this.m_pUsers.length;// - this.GetAdminCount(); } this.GetObject = function (n) { return this.m_pUsers[n]; } this.GetID = function (strName) { var obj; for (var i = 0; i < this.GetCount(); i++) { if (this.GetObject(i).name == strName) { obj = this.GetObject(i); return obj.id; } } return 0; } this.Find = function (strName) { for (var i = 0; i < this.GetCount(); i++) if (this.GetObject(i).name == strName) return i; return -1; } this.FindObject = function (strName) { var i = this.Find(strName); if (i != -1) return this.GetObject(i); return null; } this.FindbyID = function (ID) { for (var i = 0; i < this.GetCount(); i++) if (this.GetObject(i).id == ID) return i; return -1; } this.FindObjectbyID = function (ID) { var i = this.FindbyID(ID); if (i != -1) return this.GetObject(i); return null; } this.Add = function (name, adminmode, usertype, extinfo, icon, id, sex, voice, video) { var obj, n; if ((n = this.Find(name)) != -1) obj = this.GetObject(n); else obj = new UserObject(); obj.name = name; obj.adminmode = adminmode; obj.usertype = usertype; obj.extinfo = extinfo; obj.icon = icon; obj.id = id; obj.sex = sex; obj.voice = voice; obj.video = video; obj.level = get_user_type(name); if (n == -1) this.m_pUsers[this.GetCount()] = obj; this.DoSort(); } this.Del = function (strName) { var n = this.Find(strName); if (n != -1) { delete this.m_pUsers[n]; this.m_pUsers.sort(this.SortOnNull); this.m_pUsers.length--; return true; } return false; } this.RemoveAll = function () { for (var i = 0; i < this.GetCount(); i++) delete this.m_pUsers[i]; this.m_pUsers.length = 0; } this.SortOnXB = function (a, b) { var n1 = a.sex; var n2 = b.sex; if (n1 == n2) return 0; if (n1 > n2) return 1; if (n1 < n2) return -1; } this.SortOnName = function (a, b) { var n1 = a.name.length; var n2 = b.name.length; if (n1 == n2) return 0; if (n1 > n2) return -1; if (n1 < n2) return 1; } this.SortOnName1 = function (a, b) { var a2 = new String(a.name); var b2 = new String(b.name); if (a.adminmode == 1 && b.adminmode != 1) { t = -1; } else if (a.adminmode != 1 && b.adminmode == 1) { t = 1; } else { if (a2.substr(0, 1) == "*" && b2.substr(0, 1) != "*") { t = -1; } else if (a2.substr(0, 1) != "*" && b2.substr(0, 1) == "*") { t = 1; } else { if (a2 == b2) { t = 0; } if (a2 > b2) { t = -1; } if (a2 < b2) { t = 1; } } } return t; } this.SortOnName2 = function (a, b) { if (a.adminmode == 1 && b.adminmode != 1) { t = -1; } else if (a.adminmode != 1 && b.adminmode == 1) { t = 1; } else { t = 0; } return t; } this.SortOnUserType = function (a, b) { if (a.adminmode == 1 && b.adminmode != 1) { t = -1; } else if (a.adminmode != 1 && b.adminmode == 1) { t = 1; } else { if (a.usertype > b.usertype) { t = 1; } else if (a.usertype < b.usertype) { t = -1; } else { if (a.name < b.name) { t = 1; } else if (a.name > b.name) { t = -1; } else { t = 0; } } } return t; } this.SortOnNull = function (a, b) { if (a == null || b == null) return -1; return 0; } this.DoSort = function () { return; } this.SortByLevel = function () { this.m_pUsers.sort(function (a, b) { return a.level - b.level; }); } } var timerID = null, timerRunning = false; function refreshstop() { if (timerRunning) clearTimeout(timerID); timerRunning = false; } function refreshstart() { refreshstop(); writeuserlist(); } function Users_Add(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname) { var isnewuser = (parent.Users.FindObject(name) == null); try { this.d.refreshsdx(name, id); } catch (e) { } if (limituserlist == 1) { if ((voice == 0) && (video == 0)) { newlogin(name, id, nickname); } if (usertype != "11") { //如果是管理员保证列出。可以在脚本中重定义本函数使得VIP用户也可以保证列出 if (this.Users.GetCount() > limituserlistnum) { return; } } } this.Users.Add(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname); if (this.Users.GetCount() < refreshatonce_threshold) { refreshstart(); } if (listmode == 1) { if (list_parsed == 0) { var tmp = name + "-'" + adminmode + "-'" + usertype + "-'" + extinfo + "-'" + icon + "-'" + id + "-'" + exps + "-'" + nickname + "'-" + sex + "'-" + voice + "'-" + video; list.push(tmp); list_length = list.length; } else { addusertolist(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname); } } if (isAutoWelcome && isnewuser) { if (get_user_type(name) > 10) { setTimeout('parent.d.send_msg_ex("' + name + '","[Advertising][username=' + parent.myinfo.USER + ']","",1,11,"",1)', 15000); } } } function Users_Add1(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname) { if (limituserlist == 1) { if ((voice == 0) && (video == 0)) { newlogin(name, id, nickname); } if (usertype != "11") { //如果是管理员保证列出。可以在脚本中重定义本函数使得VIP用户也可以保证列出 if (this.Users.GetCount() > limituserlistnum) { return; } } } this.Users.Add(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname); this.Users.SortByLevel(); if (this.Users.GetCount() < refreshatonce_threshold) { //refreshstart(); } /*增加到用户列表*/ if (listmode == 1) { addusertolist(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname); } } function newlogin(name, id, nickname) { if (this.n == null) return; if (this.n.document == null) return; var objTable = this.n.document.getElementById('newuserlisttable'); var row = objTable.rows.length; var i = 0; for (i = 1; i < row; i++) { if (objTable.rows[i].id == id) { return; } } if (objTable.rows.length >= 6) { objTable.deleteRow(1); } var objRow = objTable.insertRow(); objRow.id = id; var objCell = objRow.insertCell(); if (usenickname) { objCell.innerHTML = "[<a target=d href=\"javascript:parent.cs('" + name + "'," + id + ")\">" + nickname + "</a>]"; } else { objCell.innerHTML = "[<a target=d href=\"javascript:parent.cs('" + name + "'," + id + ")\">" + name + "</a>]"; } } function Users_Del(str) { if (this.Users.Del(str)) if (this.Users.GetCount() < refreshatonce_threshold) { refreshstart(); } if (listmode == 1) { deluserfromlist(str); } } function Users_GetID(str) { return this.Users.GetID(str); } var Users = new UserList(); function dodeluserfromlist(listtable, name) { var i; var rown = 0; rown = listtable.rows.length; for (i = 0; i < rown; i++) { if (listtable.rows[i].id == name) { listtable.deleteRow(i); return 1; break; } } return 0; } function smdeluser(listtable,name) { var table = this.r.document.getElementById(""+listtable+""); dodeluserfromlist(table, name); this.r.document.getElementById("AdminCount").innerHTML = this.r.document.getElementById("AdminCount").innerHTML-1; } function checkvipuser(name) { return "Z"; } function getlist(type) { if (type != "adm") return; alist = new Array(); listtable = this.r.document.getElementById("listtable_" + type); rown = listtable.rows.length; for (i = 0; i < rown; i++) { alist[alist.length] = listtable.rows[i].id; } } function Swap(table, i, j) { if (i < 0 || j > table.rows.length - 1) return; if (i < j) { table.moveRow(i, j); table.moveRow(j - 1, i); } else { table.moveRow(i, j); table.moveRow(j + 1, i); } } function addusertolist(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname) { if (this.r == null) return; if (this.r.document == null) return; if (list_parsed == 1) { //this.r.document.getElementById("usercount").innerHTML = Users.GetCount(); this.r.document.getElementById("AdminCount").innerHTML = Users.GetAdminCount(); this.r.document.getElementById("UserCount").innerHTML = Users.GetUserCount(); } if (ppmode == 1) { voice = 1; } var i; var listtable, listrow, listcell; var rown = 0; if (adminmode == 0) { //remove from listtable_adm /*下管情况需删除管理员里相同名字*/ listtable = this.r.document.getElementById("listtable_adm"); dodeluserfromlist(listtable, name); } /*取相关列表表格*/ level = get_user_type(name); portrait = ""; //icon = ""; displayname = new String(name); if (extinfo != 0) t = extinfo; else t = ""; var infolist = new Array(""); if (typeof (t) != "undefined" && t != "" && displayname.substr(0, 1) == "*") { infolist = t.split(":"); if (!infolist[0]) { infolist[0] = "" }; if (!infolist[1]) { infolist[1] = "" }; if (!infolist[2]) { infolist[2] = "" }; portrait = infolist[0]; //icon = infolist[1]; } userinfo0 = getptid(name, portrait, adminmode) userinfo = userinfo0.split("\t"); styletext = "" title = ""; adminmode_ret = adminmode; if (userinfo.length >= 1) { ptid = userinfo[0]; if (userinfo.length >= 2) { styletext = userinfo[1]; if (userinfo.length >= 3) { title = userinfo[2]; if (userinfo.length >= 4) { adminmode_ret = userinfo[3]; } } } } else { ptid = userinfo0; } if (usertype == "11") { listtable = this.r.document.getElementById("listtable_sm"); } else if (level > 0 ) { listtable = this.r.document.getElementById("listtable_vip"); } else if (name.charAt(0) == '*' ) { listtable = this.r.document.getElementById("listtable_reg"); } else { listtable = this.r.document.getElementById("listtable_other"); } rown = listtable.rows.length; listrow = null; /*按级别和昵称字符排序*/ for (i = 0; i < rown; i++) { cmpname = listtable.rows[i].id; cmplevel = listtable.rows[i].level; cmpstr = cmplevel + cmpname; if (cmpstr == level + name) { listrow = listtable.rows[i]; } } // var p_length = listtable.rows.length; // for (var i = 0; i <= p_length - 2; i++) { // for (var j = p_length - 1; j >= 1; j--) { // if (listtable.rows[j].level < listtable.rows[j - 1].level) { // Swap(listtable, j, j - 1); // } // } // } if (listrow == null) { /*没有此名的*/ /*上管情况下需从其他列表表格中删除同名者,*/ if (adminmode > 0) { var listtable1; listtable1 = this.r.document.getElementById("listtable_vip"); if (dodeluserfromlist(listtable1, name) == 0) { listtable1 = this.r.document.getElementById("listtable_reg"); if (dodeluserfromlist(listtable1, name) == 0) { listtable1 = this.r.document.getElementById("listtable_other"); dodeluserfromlist(listtable1, name); } } } /*增加进相关列表表格*/ listrow = listtable.insertRow(i); listrow.id = name; listrow.level = level; } else { /*有此名的,先删除该行第一列(声频视频状态可能变化,需要重写)*/ listrow.deleteCell(0); } /*重写该行第一列*/ listcell = listrow.insertCell(0); var cellcontent = ""; if (showicon == true) { //portrait = "<image src=" + ptid + ".gif border=0 align=absmiddle>"; var s = sex == 0 ? "0" : "1"; s = "1"; var imgurl = myvip.GetImgUrl(name, s); portrait = "<image src='" + imgurl + "' border='0' align='absmiddle'>"; //portrait += "<img src='" + "http://m.ABC.COM/xq/" + icon + "_x.gif" + "' border='0' align='absmiddle'>"; } else { portrait = ""; } if (voice == 1) { voicenote = "<font face=\"Webdings\" color=000000>&#175</font>"; nametitle = name + " 开麦"; } else if (voice == 2) { voicenote = "<font face=\"Wingdings\" color=black>(</font>"; nametitle = name + " 双工"; } else { voicenote = ""; nametitle = name + " 关麦"; } if (adminmode_ret == 1) { nametitle += " 在线管理员"; } if (title != "") { nametitle += " " + title; } if (nametitle != "") nametitle = " title=\"" + nametitle + "\""; if (adminmode_ret == 1) { if (styletext == "") { styletext = "color:red;"; displayname += "<font color=red></font>"; } else { displayname += "*"; } } if (styletext == "0") styletext = ""; var ucolor = usercolor.FindObject(name); var xc = is_uservip(name); if (xc != null) { var v = xc.split(","); //displayname += "<img src=http://www.ABC.COM/user/xc2/" + v[5] + " border=0 hspace=1 vspace=1 align='absmiddle' /> "; //displayname = "<a target=d href=\"javascript:parent.cs('" + name + "')\"title=\"" + v[6] + "\">"; if (v[0] == '1') { displayname = "<img src=http://www.ABC.COM/user/xc1/" + v[1] + " border=0><font style=\"filter: glow(color=#9933FF,strength=4); Height:8pt; color:#FFFFFF; padding:1px;cursor:hand\">" + v[7] + "</font>" } else { displayname = "<font style=\"filter: glow(color=#" + v[2] + ",strength=4); Height:8pt; color:#" + v[3] + "; padding:1px;cursor:hand\">" + v[4] + "</font><font style=\"filter: glow(color=#9933FF,strength=4); Height:8pt; color:#FFFFFF; padding:1px;cursor:hand\">" + v[7] + "</font>"; } } else if (ucolor != null) { if (styletext) { displayname = "<span style='filter: glow(color=" + ucolor.outcolor + ",strength=4); PADDING-BOTTOM: 1px; padding-left: 1px; padding-right: 1px; height: 8pt; color: red; cursor: hand; padding-top: 1px;'>" + displayname + "</span>"; } else { displayname = "<span style='filter: glow(color=" + ucolor.outcolor + ",strength=4); PADDING-BOTTOM: 1px; padding-left: 1px; padding-right: 1px; height: 8pt; color: " + ucolor.incolor + "; cursor: hand; padding-top: 1px;'>" + displayname + "</span>"; } } else if (styletext) { displayname = "<span style='" + styletext + "'>" + displayname + "</span>"; } cellcontent += portrait + "&nbsp;<a class='name' target=d href=\"javascript:parent.cs('" + name + "')\" " + nametitle + ">" + displayname + "</a>"; cellcontent += voicenote; if (video == 1) { cellcontent += "<img src='" + portraiturl + "images/shipin.gif' border='0' width='20' height='20' align='absmiddle'>"; } var twgif=""; if ((level >= 13 && level <= 15) && video == 1) { cellcontent += "<span class='PrivateMike'><a href=\"javascript:parent.watch_name('" + name + "')\"><img src='" + portraiturl + "images/simai.gif' width='20' height='20' padding-left='10px;'></a></span>"; cellcontent += "<span class='PrivateMikeS'><a href='http://pay.ABC.COM' target='_blank' ><img src='" + portraiturl + "images/s.gif' width='20' height='20'></a></span>"; twgif = "<img src='"+portraiturl+"images/tw.gif' border='0' alt='' title=''/>"; } listcell.innerHTML = "<span class='ydt'></span>" + twgif + cellcontent; } function deluserfromlist(name) { if (this.r == null) return; if (this.r.document == null) return; if (list_parsed == 1) { //this.r.document.getElementById("usercount").innerHTML = Users.GetCount(); this.r.document.getElementById("AdminCount").innerHTML = Users.GetAdminCount(); this.r.document.getElementById("UserCount").innerHTML = Users.GetUserCount(); } var listtable; listtable = this.r.document.getElementById("listtable_adm"); if (dodeluserfromlist(listtable, name) > 0) return; listtable = this.r.document.getElementById("listtable_vip"); if (dodeluserfromlist(listtable, name) > 0) return; listtable = this.r.document.getElementById("listtable_reg"); if (dodeluserfromlist(listtable, name) > 0) return; listtable = this.r.document.getElementById("listtable_other"); if (dodeluserfromlist(listtable, name) > 0) return; return; } function removealluserfromlist() { if (this.r == null) return; if (this.r.document == null) return; if (list_parsed == 1) { //this.r.document.getElementById("usercount").innerHTML = Users.GetCount(); this.r.document.getElementById("AdminCount").innerHTML = Users.GetAdminCount(); this.r.document.getElementById("UserCount").innerHTML = Users.GetUserCount(); } var i; var listtable; var rown = 0; listtable = this.r.document.getElementById("listtable_adm"); rown = listtable.rows.length; for (i = rown - 1; i >= 0; i--) { listtable.deleteRow(i); } listtable = this.r.document.getElementById("listtable_vip"); rown = listtable.rows.length; for (i = rown - 1; i >= 0; i--) { listtable.deleteRow(i); } listtable = this.r.document.getElementById("listtable_reg"); rown = listtable.rows.length; for (i = rown - 1; i >= 0; i--) { listtable.deleteRow(i); } listtable = this.r.document.getElementById("listtable_other"); rown = listtable.rows.length; for (i = rown - 1; i >= 0; i--) { listtable.deleteRow(i); } } /* 由setInterval循环调用本函数初始用户数组list(按先后顺序)赋值至Users,利用list_parsing标识避免冲突 */ function dolistparse() { if (list_parsing) { return; } list_parsing = 1; list_i++; var i = list_i; if (i < list_length) { if (list[i] != null) { sublists = list[i].split("'-"); if (sublists.length == 4) { if (!sublists[1]) sublists[1] = ''; if (!sublists[2]) sublists[2] = ''; if (!sublists[3]) sublists[3] = ''; sex = sublists[1]; voice = sublists[2]; if (ppmode == 1) { voice = 1; } video = sublists[3]; } else { if (!sublists[1]) sublists[1] = ''; if (!sublists[2]) sublists[2] = ''; voice = sublists[1]; if (ppmode == 1) { voice = 1; } video = sublists[2]; sex = 0; } lists = sublists[0].split("-'"); if (!lists[1]) lists[1] = ''; if (!lists[2]) lists[2] = ''; if (!lists[3]) lists[3] = ''; if (!lists[4]) lists[4] = ''; if (!lists[5]) lists[5] = ''; if (!lists[6]) lists[6] = '0'; if (!lists[7]) lists[7] = ''; name = lists[0]; adminmode = lists[1]; usertype = lists[2]; extinfo = lists[3]; icon = lists[4]; id = lists[5]; exps = lists[6]; nickname = lists[7]; Users_Add1(name, adminmode, usertype, extinfo, icon, id, sex, voice, video, exps, nickname); } } else { clearInterval(list_timer); list_parsed = 1; //this.r.document.getElementById("usercount").innerHTML = Users.GetCount(); this.r.document.getElementById("AdminCount").innerHTML = Users.GetAdminCount(); this.r.document.getElementById("UserCount").innerHTML = Users.GetUserCount(); } list_parsing = 0; } function RefreshUsers() { if (listmode == 1) { list_parsed = 0; list_i = 0; list_length = 0; list_parsing = 0; list_length = list.length; Users.RemoveAll(); removealluserfromlist(); list_timer = setInterval("dolistparse()", 1); if ((this.r != null) && (this.r.document != null)) { //this.r.document.getElementById("usercount").innerHTML = this.usercount; this.r.document.getElementById("AdminCount").innerHTML = Users.GetAdminCount(); this.r.document.getElementById("UserCount").innerHTML = Users.GetUserCount(); } return; } Users.RemoveAll(); for (var i = 1; i < list.length; i++) if (list[i] != null) { sublists = list[i].split("'-"); if (sublists.length == 4) { if (!sublists[1]) sublists[1] = ''; if (!sublists[2]) sublists[2] = ''; if (!sublists[3]) sublists[3] = ''; sex = sublists[1]; voice = sublists[2]; video = sublists[3]; } else { if (!sublists[1]) sublists[1] = ''; if (!sublists[2]) sublists[2] = ''; voice = sublists[1]; video = sublists[2]; sex = 0; } lists = sublists[0].split("-'"); if (!lists[1]) lists[1] = ''; if (!lists[2]) lists[2] = ''; if (!lists[3]) lists[3] = ''; if (!lists[4]) lists[4] = ''; if (!lists[5]) lists[5] = ''; name = lists[0]; adminmode = lists[1]; usertype = lists[2]; extinfo = lists[3]; icon = lists[4]; id = lists[5]; Users_Add(name, adminmode, usertype, extinfo, icon, id, sex, voice, video); } refreshclick = true; writeuserlist(); } function writerframe() { if (listmode == 0) { return; } if (this.r == null) return; if (this.r.document == null) return; this.r.document.open(); this.r.document.writeln("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">"); this.r.document.writeln("<link rel='stylesheet' href='"+portraiturl+"css/right.css' type='text/css' />"); this.r.document.writeln("</head><body style='background-color: transparent;'>"); this.r.document.writeln(" <script type=\"text/javascript\">"); this.r.document.writeln(" function openShutManager(oSourceObj, oTargetObj, shutAble, oOpenTip, oShutTip) {"); this.r.document.writeln(" var sourceObj = typeof oSourceObj == \"string\" ? document.getElementById(oSourceObj) : oSourceObj;"); this.r.document.writeln(" var targetObj = typeof oTargetObj == \"string\" ? document.getElementById(oTargetObj) : oTargetObj;"); this.r.document.writeln(" var openTip = oOpenTip || \"\";"); this.r.document.writeln(" var shutTip = oShutTip || \"\";"); this.r.document.writeln(" if (targetObj.style.display != \"none\") {"); this.r.document.writeln(" if (shutAble) return;"); this.r.document.writeln(" targetObj.style.display = \"none\";"); this.r.document.writeln(" if (openTip && shutTip) {"); this.r.document.writeln(" sourceObj.innerHTML = shutTip;"); this.r.document.writeln(" }"); this.r.document.writeln(" } else {"); this.r.document.writeln(" targetObj.style.display = \"block\";"); this.r.document.writeln(" if (openTip && shutTip) {"); this.r.document.writeln(" sourceObj.innerHTML = openTip;"); this.r.document.writeln(" }"); this.r.document.writeln(" }"); this.r.document.writeln(" }"); this.r.document.writeln(" function setTab(name, cursel, n) {"); this.r.document.writeln(" for (i = 1; i <= n; i++) {"); this.r.document.writeln(" var menu = document.getElementById(name + i);"); this.r.document.writeln(" var con = document.getElementById(\"con_\" + name + \"_\" + i);"); this.r.document.writeln(" menu.className = i == cursel ? \"hover\" : \"\";"); this.r.document.writeln(" con.style.display = i == cursel ? \"block\" : \"none\";"); this.r.document.writeln(" }"); this.r.document.writeln(" }"); this.r.document.writeln(" <\/script>"); this.r.document.writeln(" <div class=\"Tab1\">"); this.r.document.writeln(" <div class=\"Menubox\">"); this.r.document.writeln(" <ul>"); this.r.document.writeln(" <li id=\"one1\" onmousemove=\"setTab(\'one\',1,2)\" class=\"hover\" style=\"margin-right: 1px;\">"); this.r.document.writeln(" 用户/<span id=\"UserCount\">0</span></li>"); this.r.document.writeln(" <li id=\"one2\" onmousemove=\"setTab(\'one\',2,2)\" class=\"\">管理/<span id=\"AdminCount\">0</span></li>"); this.r.document.writeln(" <li style=\"background: none; width: 10px; padding-left: 4px;\"><a href=\"#\" onclick=\"openShutManager(this,\'box\')\">"); this.r.document.writeln(" <img src=\"" + portraiturl + "images/rig04.gif\"></a></li>"); this.r.document.writeln(" <li style=\"background: none; width: 10px; padding-left: 4px;\">"); this.r.document.writeln(" <img src=\"" + portraiturl + "images/rig05.gif\"></li>"); this.r.document.writeln(" </ul>"); this.r.document.writeln(" </div>"); this.r.document.writeln(" <div id=\"box\" style=\"display: none\" class=\"rig01\">"); this.r.document.writeln(" <div style=\"float: left\">"); this.r.document.writeln(" <img src=\"" + portraiturl + "images/rig07.gif\"></div>"); this.r.document.writeln(" <div class=\"rig03\">"); this.r.document.writeln(" <input type=\"text\" style=\"color: #999999; background: transparent; border: none\""); this.r.document.writeln(" onfocus=\"if(value==defaultValue){value=\'\';this.style.color=\'#000\'}\" onblur=\"if(!value){value=defaultValue;this.style.color=\'#999\'}\""); this.r.document.writeln(" value=\"请输入房间名\" size=\"17\"></div>"); this.r.document.writeln(" <div style=\"float: left; padding-left: 3px; padding-top: 3px;\">"); this.r.document.writeln(" <a href=\"#\">邀请好友</a></div>"); this.r.document.writeln(" </div>"); this.r.document.writeln(" <div class=\"Contentbox\">"); this.r.document.writeln(" <div id=\"con_one_1\" style=\"display: block;\">"); this.r.document.writeln(" <table class=\'list\' width=\"100%\" border=\"0\" id=\"listtable_adm\" cellspacing=\"5\">"); this.r.document.writeln(" </table>"); this.r.document.writeln(" <table class=\'list\' width=\"100%\" border=\"0\" id=\"listtable_vip\" cellspacing=\"5\">"); this.r.document.writeln(" </table>"); this.r.document.writeln(" <table class=\'list\' width=\"100%\" border=\"0\" id=\"listtable_reg\" cellspacing=\"5\">"); this.r.document.writeln(" </table>"); this.r.document.writeln(" <table class=\'list\' width=\"100%\" border=\"0\" id=\"listtable_other\" cellspacing=\"5\">"); this.r.document.writeln(" </table>"); this.r.document.writeln(" </div>"); this.r.document.writeln(" <div id=\"con_one_2\" style=\"display: none;\">"); this.r.document.writeln(" <table class=\'list\' width=\"100%\" border=\"0\" id=\"listtable_adm\" cellspacing=\"5\">"); this.r.document.writeln(" </table>"); this.r.document.writeln(" </div>"); this.r.document.writeln(" </div>"); this.r.document.writeln(" </div>"); this.r.document.writeln("</body></html>"); this.r.document.writeln("<script type=\"text/javascript\">"); this.r.document.writeln(" setTimeout('parent.BindListMenu();',5000);"); this.r.document.writeln("<\/script>"); this.r.document.close(); } writerframe(); function writeuserlist() { if (listmode == 1) { return; } if (sendrefresh == false) { sendrefresh = true; } else { var count = Users.GetCount(); if ((count < autorefresh_threshold) || (autorefreshuserlist == true) || (refreshclick == true) && (listshow == 0)) { // for (var i = 0; i < list.length; i++) { // delete list[i]; // } list = new Array(); list[0] = ""; for (i = 0; i < count; i++) { //name-'adminmode-'usertype-'extinfo-'icon'-sex'-voice'-video obj = Users.GetObject(i); tmp = obj.name + "-'" + obj.adminmode + "-'" + obj.usertype + "-'" + obj.extinfo + "-'" + obj.icon + "'-" + obj.voice + "'-" + obj.video list[i + 1] = tmp; } //list.sort(); if (this.d.loaded == 1) write(); if (refreshclick == true) { refreshclick = false; } } } timerRunning = true; timerID = setTimeout("refreshstart()", nTimer * 1000); } function sortuser() { user_sorted = new Array(); for (var i = 1; i < list.length; i++) { if (list[i] != "") { var lists_split = list[i].split("'-"); if (!lists_split[1]) lists_split[1] = '0'; if (!lists_split[2]) lists_split[2] = '0'; var lists_split_2 = lists_split[0].split("-'"); if (lists_split_2[1] != '1') lists_split_2[1] = '2'; if (lists_split_2[0].substr(0, 1) == "*") { usertype = "0"; } else { usertype = "1"; } userinfo = ""; user_str = lists_split_2[1]; user_str += "&"; user_str += usertype; user_str += "&"; user_str += userinfo; user_str += "&"; user_str += lists_split_2[0]; user_str += "&"; user_str += lists_split[1]; user_str += "&"; user_str += lists_split[2]; user_str += "&"; user_str += lists_split_2[3]; user_sorted[user_sorted.length] = user_str; } } user_sorted.sort(); } function writerframes() { if (listmode == 1) { return; } sortuser(); count = user_sorted.length; if (this.r.document == null) return; this.r.document.open(); this.r.document.writeln("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">"); this.r.document.writeln("<style type=text/css>"); this.r.document.writeln("<!--"); this.r.document.writeln(".p9 { font-size: 9pt}"); this.r.document.writeln("body { font-size: 9pt; margin:0; padding:0; width:175px; overflow-x:hidden}"); this.r.document.writeln("td { font-size: 9pt}"); this.r.document.writeln("a { color: #0000FF; text-decoration: none}"); this.r.document.writeln("#bl_yh_lb{margin:0 0 0 3px; padding:0;width:175px;}"); this.r.document.writeln("#bl_yh_lb li{line-height:21px; height:21px; list-style-type:none; margin:0; padding:2px 0;}"); this.r.document.writeln("-->"); this.r.document.writeln("</style>"); this.r.document.writeln("<div id=\"Tips\" style=\"position:absolute; left:0; top:0; width:130; display=none; z-index:2\">"); this.r.document.writeln(" <p class=\"\">&nbsp;</p>"); this.r.document.writeln("</div>"); this.r.document.writeln("</head><body bgcolor=\"#F3FFE1\" leftMargin=0>"); this.r.document.writeln("<div align=center id=\"topbanner\"><image src=http://" + host + "/bl/$E/upload/tb.gif border=0><br><font color=#FF0000><marquee width=140 scrolldelay=200>您好!欢迎您光临《$$title》网址:http://$E.abc.com</marquee></font></div>"); this.r.document.writeln("<div id=\"chatbody\" class=\"p9\"><div style=\"margin:3px; border-bottom:1px dashed #666666; \"> <a style=\"float:right;\" accesskey=\"n\" href=\"javascript:\" onclick=\"parent.d.document.getElementById('REFRESHUSERLIST').click()\"><img src=\"" + portraiturl + "chattools/refresh.png\" alt=\"刷新在线列表\" border=0 align=\"absmiddle\"></a>"); this.r.document.writeln("<a style=\"float:right; margin:0 5px;\" accesskey=r href=\"javascript:parent.cs('所有人')\"><img src=\"" + portraiturl + "chattools/all.png\" alt=\"所有人\" border=0 align=\"absmiddle\"></a><img src=\"" + portraiturl + "chattools/online.png\" alt=\"在线人数\" align=\"absmiddle\"><font color=red>" + count + "</font></div>"); this.r.document.writeln("<ul id=\"bl_yh_lb\">"); //alist=new Array(); for (var i = 0; i < count; i++) { this.r.document.writeln("<li>"); var displayname; thislists = user_sorted[i].split("&"); thisadminmode = thislists[0]; thistype = thislists[1]; thisinfo = thislists[2]; thisname = thislists[3]; thisvoice = thislists[4]; thisvideo = thislists[5]; thisextinfo = thislists[6]; thisex = ""; if (thisadminmode != "1") thisadminmode = "0"; displayname = new String(thisname); myportrait = ""; myicon = ""; if (thisextinfo != 0) t = thisextinfo; else t = ""; var infolist = new Array(""); if (t != "" && displayname.substr(0, 1) == "*") { infolist = t.split(":"); if (!infolist[0]) { infolist[0] = "" }; if (!infolist[1]) { infolist[1] = "" }; if (!infolist[2]) { infolist[2] = "" }; myportrait = infolist[0]; myicon = infolist[1]; } userinfo0 = getptid(thisname, myportrait, thisadminmode) userinfo = userinfo0.split("\t"); styletext = "" title = ""; adminmode_ret = thisadminmode; if (userinfo.length >= 1) { ptid = userinfo[0]; if (userinfo.length >= 2) { styletext = userinfo[1]; if (userinfo.length >= 3) { title = userinfo[2]; if (userinfo.length >= 4) { adminmode_ret = userinfo[3]; if (userinfo.length == 5) { title = userinfo[4]; } } } } } else { ptid = userinfo0; } if (showicon == true) { portrait = "<image src=" + ptid + ".gif border=0 align=absmiddle>"; } else portrait = ""; if (thisvoice == 1) { voicenote = "<font face=\"Wingdings\" color=#009900>(</font>"; nametitle = thisname + " 开麦"; } else if (thisvoice == 2) { voicenote = "<font face=\"Wingdings\" color=black>(</font>"; nametitle = thisname + " 双工"; } else { voicenote = ""; nametitle = thisname + " 关麦"; } if (adminmode_ret == 1) { nametitle += " 在线管理员"; } if (title != "") { nametitle += " " + title; } if (nametitle != "") nametitle = " title=\"" + nametitle + "\""; if (adminmode_ret == 1) { //alist[alist.length]=thisname; if (styletext == "") { styletext = "color:red;"; displayname += "<font color=red>*</font>"; } else { displayname += "*"; } } if (styletext == "0") styletext = ""; if (styletext) { displayname = "<span style='" + styletext + "'>" + displayname + "</span>"; } this.r.document.writeln(portrait + "<a target=d href=\"javascript:parent.cs('" + thisname + "')\" " + nametitle + ">" + displayname + "</a>"); this.r.document.writeln(voicenote); if (thisvideo == 1) { this.r.document.writeln("<font face=\"Webdings\" color=000000>N</font>"); } this.r.document.writeln("</li>"); } this.r.document.writeln("</ul>"); this.r.document.writeln("</div><div align=center id='bottombanner' style='border:0px solid #000000;padding:0;POSITION: relative; Left: 0px; TOP: 0px; HEIGHT: 40px; WIDTH: 130px;'></div>"); this.r.document.writeln('</body></html>'); this.r.document.close(); } ////////////// function getptid(username, portrait, adminmode) { style = ""; return portraiturl + portrait + "\t" + style; } var ListTable = ["listtable_adm", "listtable_vip", "listtable_reg", "listtable_other"]; var ListUserCount = 0; var Order = false; window.setInterval(function () { var num = Users.GetCount(); if (num - ListUserCount < 30 && ListUserCount - num < 30 && !Order) { for (var s = 0; s < ListTable.length; s++) { var listtable = this.r.document.getElementById(ListTable[s]); var p_length = listtable.rows.length; for (var i = 0; i <= p_length - 2; i++) { for (var j = p_length - 1; j >= 1; j--) { if (listtable.rows[j].level < listtable.rows[j - 1].level) { Swap(listtable, j, j - 1); } } } } Order = true; } else if (ListUserCount != num) { Order = false; ListUserCount = num; } }, 3000); parent.refreshstop = refreshstop; parent.refreshstart = refreshstart; parent.Users_Add = Users_Add; parent.Users_Add1 = Users_Add1; parent.newlogin = newlogin; parent.Users_Del = Users_Del; parent.Users_GetID = Users_GetID; var Users = new UserList(); parent.dodeluserfromlist = dodeluserfromlist; parent.checkvipuser = checkvipuser; parent.getlist = getlist; parent.addusertolist = addusertolist; parent.deluserfromlist = deluserfromlist; parent.removealluserfromlist = removealluserfromlist; parent.dolistparse = dolistparse; parent.RefreshUsers = RefreshUsers; parent.writerframe = writerframe; parent.writeuserlist = writeuserlist; parent.sortuser = sortuser; parent.write = write; parent.getptid = getptid; function showElement(elementId) { document.getElementById(elementId).style.display = "block"; } function hideElement(elementId) { document.getElementById(elementId).style.display = "none"; }
Java ssm 框架 访问报错500
报错如下: ``` HTTP Status 500 – Internal Server Error Type Exception Report Message Servlet.init() for servlet SpringMVC threw exception Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception javax.servlet.ServletException: Servlet.init() for servlet SpringMVC threw exception org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745) Root Cause org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.context.annotation.internalAsyncAnnotationProcessor': Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.interceptor.AsyncExecutionInterceptor.<init>(Ljava/util/concurrent/Executor;Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;)V org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:220) org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:615) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:465) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745) Root Cause java.lang.NoSuchMethodError: org.springframework.aop.interceptor.AsyncExecutionInterceptor.<init>(Ljava/util/concurrent/Executor;Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;)V org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor.<init>(AnnotationAsyncExecutionInterceptor.java:60) org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.buildAdvice(AsyncAnnotationAdvisor.java:150) org.springframework.scheduling.annotation.AsyncAnnotationAdvisor.<init>(AsyncAnnotationAdvisor.java:99) org.springframework.scheduling.annotation.AsyncAnnotationBeanPostProcessor.setBeanFactory(AsyncAnnotationBeanPostProcessor.java:105) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1585) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:220) org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:615) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:465) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745) Note The full stack trace of the root cause is available in the server logs. Apache Tomcat/8.5.12 ``` 一搭到服务器上就出现这个错误,但是本地window没问题;卡了一天了,脑瓜子呼呼的,第一次用这个玩意,实在看不出来啥问题了,有没有大佬帮忙指点指点,给条明路呀!! 下面是几个基础配置: web.xml: ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mybatis.xml</param-value> </context-param> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>CORSFilter</filter-name> <filter-class>com.bls.mp.common.MyFilter</filter-class> <init-param> <param-name>excludedPages</param-name> <param-value>/UserAuthServlet</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORSFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> </web-app> ``` spring-mvc.xml: ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" > <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.bls.mp.controller"/> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- <bean id="thirdDataService" class="com.bls.mp.service.impl.ThirdDataServiceImpl"/>--> <bean class="com.bls.mp.common.SpringTool"/> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> JSON转换器 </list> </property> </bean>--> <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/WEB-INF/resources/jsp/" /> <property name="suffix" value=".jsp" /> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> </bean> <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean> <!-- 全局异常处理器 --> <bean class="com.bls.mp.common.exception.CustomExceptionResolver"></bean> <mvc:annotation-driven/> <!-- 拦截器配置 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/setadmin"/> <!--<mvc:mapping path="/user/userList"/> --> <mvc:mapping path="/Blocker"/> <mvc:mapping path="/goods/goods"/> <bean class="com.bls.mp.interceptor.AuthInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> <task:annotation-driven/> <!-- 配置访问静态文件 --> <mvc:default-servlet-handler/> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/> <mvc:resources location="/WEB-INF/resources/jsp/" mapping="/jsp/**"/> <mvc:resources location="/WEB-INF/resources/css/" mapping="/css/**"/> </beans> ``` spring-mybatis.xml: ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描 --> <context:component-scan base-package="com.bls.mp"/> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:com/bls/mp/mapping/*.xml"></property> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.bls.mp.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> </beans> ``` jdk版本: 1.8.0_222 tomcat 版本:8.0 有没有大佬来给看看呀0.0
请问如何使用JavaScript的blur()函数判断两次输入的密码是否一致
我的输入框是没有在form里面,只是input,如下: ``` <div class="form-group"> <label class="sr-only" for="dialogLoginInputPassword">密码</label> <input v-model="user.pass | passValidator" type="password" name="password" class="form-control flat" placeholder="密码"> </div> <div class="form-group"> <label class="sr-only" for="dialogLoginInputComfirm">密码</label> <input v-model="user.confirm | confirmValidator" type="password" name="confirm"class="form-control flat" placeholder="密码确认" onblur="equalcheck()"> </div> ``` 而且JavaScript是在同一个页面的下方,格式如下: ``` <javascript> module.experts(){ data:function(){ ###}, filter:{###}, computed:{###}, methods:{###} } </javascript> ``` 我的equalcheck()是 ``` function equalcheck(){ if(password.value != confirm.value){ alert("once again"); return false; } } ``` 请问我写的equalcheck方法有错误吗,就是判断两次输入的密码是否一致, 如果我写的不对请问该如何修改,如果写的对,请问该放在JavaScript的什么地方?JavaScript里面的那些data function、filter、computed,methods格式不能变。谢谢老师
前后端分离项目,前端用axios传递参数到后台,报如下异常,他说参数丢了。求大神帮忙
![图片说明](https://img-ask.csdn.net/upload/201907/18/1563414805_535743.png) > org.springframework.web.bind.MissingServletRequestParameterException: Required TEmployeeQuery parameter 'tempQuery' is not present at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:202) at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:113) at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:126) at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:166) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) 2019-07-18 09:46:28 |INFO |AsyncResolver-bootstrap-executor-0 |ConfigClusterResolver.java:43 |com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver |Resolving eureka endpoints via configuration 这是前端api ![图片说明](https://img-ask.csdn.net/upload/201907/18/1563414865_663965.png) 控制台 ![图片说明](https://img-ask.csdn.net/upload/201907/18/1563416753_945013.png) 在线等!
ssm 报错:org.springframework.context.annotation.internalAsyncAnnotationProcessor
# ssm 框架 在本地完美运行放到Linux服务器报错 以下内容 Error creating bean with name '**org.springframework.context.annotation.internalAsyncAnnotationProcessor'**: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.aop.interceptor.AsyncExecutionInterceptor.<init>(Ljava/util/concurrent/Executor;Lorg/springframework/aop/interceptor/AsyncUncaughtExceptionHandler;)V ## 之前是没有加 redis,没有发现问题,这次我加了redis然后就报错,大神们帮忙看看解决解决 这是spring-mvc配置: ``` ==============spring-mvc===================== <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" > <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <mvc:annotation-driven/> <context:component-scan base-package="com.bls.mp.*"/> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="com.bls.mp.common.SpringTool"/> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> JSON转换器 </list> </property> </bean>--> <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/WEB-INF/resources/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean> <!-- 全局异常处理器 --> <bean class="com.bls.mp.common.exception.CustomExceptionResolver"></bean> <mvc:annotation-driven/> <!-- 拦截器配置 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/setadmin"/> <!--<mvc:mapping path="/user/userList"/> --> <mvc:mapping path="/Blocker"/> <mvc:mapping path="/grouponteam/grouponRanking"/> <mvc:mapping path="/grouponteam/arriverTime"/> <mvc:mapping path="/grouponteam/paging"/> <mvc:mapping path="/grouponteam/conditionGrouponT"/> <mvc:mapping path="/hospital/hospitalInfo"/> <mvc:mapping path="/hospital/setting"/> <mvc:mapping path="/hospital/orderdetails"/> <mvc:mapping path="/grouponteam/grouponTeamCountAndMoney"/> <mvc:mapping path="/grouponteam/OrderRefundList"/> <mvc:mapping path="/grouponteam/orderdetails"/> <mvc:mapping path="/grouponteam/paging"/> <mvc:mapping path="/grouponteam/conditionGrouponT"/> <mvc:mapping path="/grouponteam/grouponRanking"/> <mvc:mapping path="/grouponteam/arriverTime"/> <mvc:mapping path="/grouponteam/grouponTeamCountAndMoney"/> <mvc:mapping path="/imguoload"/> <mvc:mapping path="/imguoloads"/> <mvc:mapping path="/uploadFile"/> <mvc:mapping path="/uploadCenter"/> <mvc:mapping path="/onTheShelves"/> <mvc:mapping path="/updateTheRecommended"/> <mvc:mapping path="/deleteByGoods"/> <mvc:mapping path="/restoreGoods"/> <mvc:mapping path="/goods/goodslist"/> <mvc:mapping path="/goods/hasBeenOn"/> <mvc:mapping path="/goods/NotOn"/> <mvc:mapping path="/goods/RecycleBin"/> <mvc:mapping path="/goods/searchName"/> <mvc:mapping path="/goods/goodsdiy"/> <mvc:mapping path="/upload/uploadFile"/> <mvc:mapping path="/CreateClassImg"/> <mvc:mapping path="/imglist"/> <mvc:mapping path="/up_img"/> <mvc:mapping path="/moveImg"/> <mvc:mapping path="/deleteImg"/> <mvc:mapping path="/template/templateURL"/> <mvc:mapping path="/template/templateParentAll"/> <mvc:mapping path="/template/templatAll"/> <mvc:mapping path="/template/changeT"/> <mvc:mapping path="/template/deleteT"/> <mvc:mapping path="/TemplateMsg/addTemplateMsg"/> <mvc:mapping path="/TemplateMsg/templateMsgList"/> <mvc:mapping path="/TemplateMsg/templateSendlist"/> <mvc:mapping path="/TemplateMsg/TemplateSendMsg"/> <mvc:mapping path="/TemplateMsg/updataPTID"/> <mvc:mapping path="/TemplateMsg/deleteMB"/> <mvc:mapping path="/ThirdData/getdata"/> <mvc:mapping path="/ThirdData/updata"/> <mvc:mapping path="/setMoney/setMoneyList"/> <mvc:mapping path="/setMoney/setArriveMoney"/> <mvc:mapping path="/setMoney/checkfileCert"/> <mvc:mapping path="/setMoney/SetMoneyType"/> <mvc:mapping path="/user/userlists"/> <mvc:mapping path="/user/uOpenId"/> <mvc:mapping path="/visitor/theAlmostMoon"/> <mvc:mapping path="/visitor/SixAlmostMoon"/> <mvc:mapping path="/visitor/tops"/> <mvc:mapping path="/weixin/REFUND"/> <bean class="com.bls.mp.interceptor.AuthInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> <task:annotation-driven/> <!-- 配置访问静态文件 --> <mvc:default-servlet-handler/> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/> <mvc:resources location="/WEB-INF/resources/jsp/" mapping="/jsp/**"/> <mvc:resources location="/WEB-INF/resources/css/" mapping="/css/**"/> </beans> ``` 这是 web.xml ``` ==============web.xml===================== <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mybatis.xml</param-value> <param-value>classpath:spring-redis.xml</param-value> </context-param> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>CORSFilter</filter-name> <filter-class>com.bls.mp.common.MyFilter</filter-class> <init-param> <param-name>excludedPages</param-name> <param-value>/UserAuthServlet</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORSFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> </web-app> ``` 这是spring-mybatis.xml 配置 ``` ==============spring-mybatis.xml===================== <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描 --> <context:component-scan base-package="com.bls.mp"/> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:com/bls/mp/mapping/*.xml"></property> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.bls.mp.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> </beans> ``` 这是spring-redis.xml配置 ``` ===================spring-redis.xml============== <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:property-placeholder location="classpath:*.properties"/> <!--设置数据池--> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}"></property> <property name="minIdle" value="${redis.minIdle}"></property> <property name="maxTotal" value="${redis.maxTotal}"></property> <property name="maxWaitMillis" value="${redis.maxWaitMillis}"></property> <property name="testOnBorrow" value="${redis.testOnBorrow}"></property> </bean> <!--链接redis--> <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${redis.host}"></property> <property name="port" value="${redis.port}"></property> <property name="password" value="${redis.password}"></property> <property name="timeout" value="${redis.timeout}"></property> <property name="poolConfig" ref="poolConfig"></property> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref="connectionFactory" > <!--以下针对各种数据进行序列化方式的选择--> <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <property name="hashKeySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property> <!--<property name="hashValueSerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> </property>--> </bean> </beans> ```
解決vue-element-admin mock 模擬數據不顯示問題(已經解決)
``` const List = [] const count = 100 for (let i = 0; i < count; i++) { List.push(Mock.mock({ id: '@id', title: '@sentence(10, 20)', 'status|1': ['published', 'draft', 'deleted'], author: 'name', category: 'MT-@integer(1,1000)', createdate: '@date', number: 'MT-@integer(10, 100)', opeater: 'simon@integer(500,800)', amount: '$@integer(500,5000)', type: 'MF-@sentence(10, 20)', name: 'MA-@sentence(1, 20)', qutodate: '@date' })) } export default [ { url: '/table/list', type: 'get', response: config => { const { importance, type, title, page = 1, limit = 20 ,sort} = config.query let mockList = List.filter(item => { if(importance && item.importance !== +importance) return false if(type && item.type !== type) return false if(title && item.title.indexOf(title) < 0) return false return true }) if (sort === '-id') { mockList = mockList.reverse() } const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page -1)) return { code: 20000, data: { total: mockList.length, items: pageList } } } }, ``` ``` <el-table v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%; margin-top: 20px" > <el-table-column align="center" label="ID" width="85" prop="id" :class-name="getSortClass('id')"> <template slot-scope="row"> {{ row.id }} </template> </el-table-column> <el-table-column align="center" label="類別" prop="category"> <template slot-scope="{row}"> {{ row.category }} </template> </el-table-column> </el-table> created() { this.fetchData() }, methods: { fetchData() { this.listLoading = true getList(this.listQuery).then(response => { this.list = response.data.items this.total = response.data.total console.log(this.list) setTimeout(() => { this.listLoading = false }, 1000) }) } } ``` 沒有數據顯示 請問各位大神知道什麼原因嘛
React使用antd的TabBar后onClick事件为什么无法绑定?
使用TabBar的地方: ```javascript return ( <div> <NavBar className='fixd-header' mode='dark'> {navList.find(v => v.path === pathname).title} </NavBar> <div style={{ marginTop: 45 }}> <Switch> {/* {navList.map(v => ( */} <Route path={'/me'} component={User}></Route> {/* ))} */} </Switch> </div> <button onClick={this.logout}>注销</button> <NavLinkBar data={navList}></NavLinkBar> </div> ) ``` NavLinkBar组件是自己封装的TabBar: ``` @withRouter class NavLinkBar extends Component { static propTypes = { data: PropTypes.array.isRequired } render() { const navList = this.props.data.filter(v => !v.hide); const { pathname } = this.props.location return ( <TabBar> {navList.map(v => ( <TabBar.Item key={v.path} title={v.text} icon={{ uri: require(`./imgs/${v.icon}.png`) }} selectedIcon={{ uri: require(`./imgs/${v.icon}-active.png`) }} selected={pathname === v.path} onPress={() => { this.props.history.push(v.path) }}></TabBar.Item> ))} </TabBar> ) } } ``` 第一个代码片段中的button的onClick无法触发 User组件中也无法触发 ``` class User extends Component { constructor(props) { super(props) this.login = this.login.bind(this); } login() { console.log('login') } logout = () => { console.log('logout') // browserCookie.erase('userID') } render() { console.log(this.props) return ( <div> <button onClick={this.login}>登录</button> <button onClick={this.logout}>注销</button> </div> ) } } ``` 将NavLinkBar注释后均可触发
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
只因接了一个电话,程序员被骗 30 万!
今天想给大家说一个刚刚发生在我身边的一起真实的诈骗经历,我的朋友因此被骗走30万。注:为了保护当事人隐私,部分情节进行了修改。1平安夜突来的电话开始以为就像普通的诈骗一样,想办法让你把钱...
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
立即提问