diff --git a/gui b/gui index 4537e53e..bb089a95 160000 --- a/gui +++ b/gui @@ -1 +1 @@ -Subproject commit 4537e53e765df07657e28e106e8a47c022dc01eb +Subproject commit bb089a95d336ee369337a0dd8a4ee05ad35eca90 diff --git a/src/web_static/web_server.home.html.h b/src/web_static/web_server.home.html.h index effd30c6..c0b592f3 100644 --- a/src/web_static/web_server.home.html.h +++ b/src/web_static/web_server.home.html.h @@ -1,5 +1,5 @@ -static const char CONTENT_HOME_HTML[] PROGMEM = - "
Mode:
IP Address:
Successful packets: of
OpenEVSE
RAPI packets: of
Connect to network:
SSID:
Passkey:
Connect
Connecting to WIFI Network...
Username: 15 characters max
Password: Show password 15 characters max Web interface HTTP authentication. Save
Version:
Restart Factory Reset
Hostname: 31 characters max
NTP Server:
Save
Enable Emoncms
Port*:
Username: blank - no authentication
Password: blank - no authentication Show password
Base-topic*: e.g 'openevse'
Voltage topic: Voltage MQTT topic to improve power calculations
Save Connected:
Enable OhmConnect Click Here to Join
OhmConnect monitors real-time conditions on the electricity grid. When dirty and unsustainable power plants turn on, our users receive a notification to save energy.
Ohm Hour:
Ohm key:
USA - California only
Ohm Key can be obtained by logging in to OhmConnect, enter Settings and locate the link in \"Open Source Projects\" Example: https://login.ohmconnect.com/verify-ohm-hour/OpnEoVse Key: OpnEoVse
Enable Solar PV Divert
Solar: Grid Import/Export: W - | Charge rate: A
Divert smoothing attack: The amount of the new feed value to add to the divert available power rolling average
Divert smoothing decay: The amount of the new feed value to remove to the divert available power rolling average
Minimum charge time: The minimum amount of time (seconds) to charge the car once enabled via the Solar PV divert. This can help minimise wear and tare on the EVSE.
Minimum charge time: The minimum amount of time (seconds) to charge the car once enabled via the Solar PV divert. This can help minimise wear and tear on the EVSE.
Time: No RTC detected
Time:
Time zone:
Service Level:
Service Level: \"+e.ret),t.cmd(e.cmd)},\"json\").always(function(){t.rapiSend(!1)})}}function TimeViewModel(n){var o=this;function r(e){return(e<10?\"0\":\"\")+e}o.evseTimedate=ko.observable(new Date),o.localTimedate=ko.observable(new Date),o.nowTimedate=ko.observable(null),o.hasRTC=ko.observable(!0),o.elapsedNow=ko.observable(new Date(0)),o.elapsedLocal=ko.observable(new Date),o.divertUpdateNow=ko.observable(new Date(0)),o.divertUpdateLocal=ko.observable(new Date),o.date=ko.pureComputed({read:function(){if(null===o.nowTimedate())return\"\";var e=o.nowTimedate();return e.getFullYear()+\"-\"+r(e.getMonth()+1)+\"-\"+r(e.getDate())},write:function(e){var t=o.evseTimedate();e+=\" \"+r(t.getHours())+\":\"+r(t.getMinutes())+\":\"+r(t.getSeconds()),o.evseTimedate(new Date(e)),o.localTimedate(new Date)}}),o.time=ko.pureComputed({read:function(){if(null===o.nowTimedate())return\"--:--:--\";var e=o.nowTimedate();return r(e.getHours())+\":\"+r(e.getMinutes())+\":\"+r(e.getSeconds())},write:function(e){var t=e.split(\":\"),n=o.evseTimedate();n.setHours(parseInt(t[0])),n.setMinutes(parseInt(t[1])),o.evseTimedate(n),o.localTimedate(new Date)}}),o.elapsed=ko.pureComputed(function(){if(null===o.nowTimedate())return\"0:00:00\";var e=o.elapsedNow().getTime(),t=(e=Math.floor(e/1e3))%60,n=(e=Math.floor(e/60))%60;return Math.floor(e/60)+\":\"+r(n)+\":\"+r(t)}),n.status.elapsed.subscribe(function(e){o.elapsedNow(new Date(1e3*e)),o.elapsedLocal(new Date)}),o.divert_update=ko.pureComputed(function(){if(null===o.nowTimedate())return!1;var e=o.divertUpdateNow().getTime();return Math.floor(e/1e3)}),n.status.divert_update.subscribe(function(e){o.divertUpdateNow(new Date(1e3*e)),o.divertUpdateLocal(new Date)});var a=null;o.automaticTime=ko.observable(!0),o.timeUpdate=function(e){var t=!(1=e){r.timeLimit(n.value);break}}},r.selectChargeLimit=function(e){if(r.chargeLimit()!==e)for(var t=0;t=e){r.chargeLimit(n.value);break}}};var o=[function(){return!1===r.status.time()?r.openevse.time(r.time.timeUpdate):new DummyRequest},function(){return r.openevse.service_level(function(e,t){r.serviceLevel(e),r.actualServiceLevel(t)})},function(){return r.updateCurrentCapacity()},function(){return r.openevse.current_capacity(function(e){r.currentCapacity(e)})},function(){return r.openevse.time_limit(function(e){r.selectTimeLimit(e)})},function(){return r.openevse.charge_limit(function(e){r.selectChargeLimit(e)})},function(){return r.openevse.gfi_self_test(function(e){r.gfiSelfTestEnabled(e)})},function(){return r.openevse.ground_check(function(e){r.groundCheckEnabled(e)})},function(){return r.openevse.stuck_relay_check(function(e){r.stuckRelayEnabled(e)})},function(){return r.openevse.temp_check(function(e){r.tempCheckEnabled(e)})},function(){return r.openevse.diode_check(function(e){r.diodeCheckEnabled(e)})},function(){return r.openevse.vent_required(function(e){r.ventRequiredEnabled(e)})},function(){return r.openevse.temp_check(function(){r.tempCheckSupported(!0)},r.tempCheckEnabled()).error(function(){r.tempCheckSupported(!1)})},function(){return r.openevse.timer(function(e,t,n){r.delayTimerEnabled(e),r.delayTimerStart(t),r.delayTimerStop(n)})}];r.updateCount=ko.observable(0),r.updateTotal=ko.observable(o.length),r.updateCurrentCapacity=function(){return r.openevse.current_capacity_range(function(e,t){r.minCurrentLevel(e),r.maxCurrentLevel(t);var n=r.currentCapacity();r.currentLevels.removeAll();for(var o=r.minCurrentLevel();o<=r.maxCurrentLevel();o++)r.currentLevels.push({name:o+\" A\",value:o});r.currentCapacity(n)})},r.updatingServiceLevel=ko.observable(!1),r.savedServiceLevel=ko.observable(!1),r.updatingCurrentCapacity=ko.observable(!1),r.savedCurrentCapacity=ko.observable(!1),r.updatingTimeLimit=ko.observable(!1),r.savedTimeLimit=ko.observable(!1),r.updatingChargeLimit=ko.observable(!1),r.savedChargeLimit=ko.observable(!1),r.updatingDelayTimer=ko.observable(!1),r.savedDelayTimer=ko.observable(!1),r.updatingStatus=ko.observable(!1),r.savedStatus=ko.observable(!1),r.updatingGfiSelfTestEnabled=ko.observable(!1),r.savedGfiSelfTestEnabled=ko.observable(!1),r.updatingGroundCheckEnabled=ko.observable(!1),r.savedGroundCheckEnabled=ko.observable(!1),r.updatingStuckRelayEnabled=ko.observable(!1),r.savedStuckRelayEnabled=ko.observable(!1),r.updatingTempCheckEnabled=ko.observable(!1),r.savedTempCheckEnabled=ko.observable(!1),r.updatingDiodeCheckEnabled=ko.observable(!1),r.savedDiodeCheckEnabled=ko.observable(!1),r.updatingVentRequiredEnabled=ko.observable(!1),r.savedVentRequiredEnabled=ko.observable(!1);var a=!(r.setForTime=function(e,t){e(!0),setTimeout(function(){e(!1)},t)});function i(e){return/([01]\\d|2[0-3]):([0-5]\\d)/.test(e)}r.subscribe=function(){a||(r.serviceLevel.subscribe(function(e){r.updatingServiceLevel(!0),r.openevse.service_level(function(e,t){r.setForTime(r.savedServiceLevel,2e3),r.actualServiceLevel(t),r.updateCurrentCapacity().always(function(){})},e).always(function(){r.updatingServiceLevel(!1)})}),r.currentCapacity.subscribe(function(t){!0!==r.updatingServiceLevel()&&(r.updatingCurrentCapacity(!0),r.openevse.current_capacity(function(e){r.setForTime(r.savedCurrentCapacity,2e3),t!==e&&r.currentCapacity(e)},t).always(function(){r.updatingCurrentCapacity(!1)}))}),r.timeLimit.subscribe(function(t){r.updatingTimeLimit(!0),r.openevse.time_limit(function(e){r.setForTime(r.savedTimeLimit,2e3),t!==e&&r.selectTimeLimit(e)},t).always(function(){r.updatingTimeLimit(!1)})}),r.chargeLimit.subscribe(function(t){r.updatingChargeLimit(!0),r.openevse.charge_limit(function(e){r.setForTime(r.savedChargeLimit,2e3),t!==e&&r.selectChargeLimit(e)},t).always(function(){r.updatingChargeLimit(!1)})}),r.gfiSelfTestEnabled.subscribe(function(t){r.updatingGfiSelfTestEnabled(!0),r.openevse.gfi_self_test(function(e){r.setForTime(r.savedGfiSelfTestEnabled,2e3),t!==e&&r.gfiSelfTestEnabled(e)},t).always(function(){r.updatingGfiSelfTestEnabled(!1)})}),r.groundCheckEnabled.subscribe(function(t){r.updatingGroundCheckEnabled(!0),r.openevse.ground_check(function(e){r.setForTime(r.savedGroundCheckEnabled,2e3),t!==e&&r.groundCheckEnabled(e)},t).always(function(){r.updatingGroundCheckEnabled(!1)})}),r.stuckRelayEnabled.subscribe(function(t){r.updatingStuckRelayEnabled(!0),r.savedStuckRelayEnabled(!1),r.openevse.stuck_relay_check(function(e){r.savedStuckRelayEnabled(!0),setTimeout(function(){r.savedStuckRelayEnabled(!1)},2e3),t!==e&&r.stuckRelayEnabled(e)},t).always(function(){r.updatingStuckRelayEnabled(!1)})}),r.tempCheckEnabled.subscribe(function(t){r.updatingTempCheckEnabled(!0),r.openevse.temp_check(function(e){r.setForTime(r.savedTempCheckEnabled,2e3),t!==e&&r.tempCheckEnabled(e)},t).always(function(){r.updatingTempCheckEnabled(!1)})}),r.diodeCheckEnabled.subscribe(function(t){r.updatingDiodeCheckEnabled(!0),r.openevse.diode_check(function(e){r.setForTime(r.savedDiodeCheckEnabled,2e3),t!==e&&r.diodeCheckEnabled(e)},t).always(function(){r.updatingDiodeCheckEnabled(!1)})}),r.ventRequiredEnabled.subscribe(function(t){r.updatingVentRequiredEnabled(!0),r.openevse.vent_required(function(e){r.setForTime(r.savedVentRequiredEnabled,2e3),t!==e&&r.ventRequiredEnabled(e)},t).always(function(){r.updatingVentRequiredEnabled(!1)})}),a=!0)},r.update=function(){var e=0\"+e.ret),t.cmd(e.cmd)},\"json\").always(function(){t.rapiSend(!1)})}}function TimeViewModel(n){var o=this;function r(e){return(e<10?\"0\":\"\")+e}o.evseTimedate=ko.observable(new Date),o.localTimedate=ko.observable(new Date),o.nowTimedate=ko.observable(null),o.hasRTC=ko.observable(!0),o.elapsedNow=ko.observable(new Date(0)),o.elapsedLocal=ko.observable(new Date),o.divertUpdateNow=ko.observable(new Date(0)),o.divertUpdateLocal=ko.observable(new Date),o.date=ko.pureComputed({read:function(){if(null===o.nowTimedate())return\"\";var e=o.nowTimedate();return e.getFullYear()+\"-\"+r(e.getMonth()+1)+\"-\"+r(e.getDate())},write:function(e){var t=o.evseTimedate();e+=\" \"+r(t.getHours())+\":\"+r(t.getMinutes())+\":\"+r(t.getSeconds()),o.evseTimedate(new Date(e)),o.localTimedate(new Date)}}),o.time=ko.pureComputed({read:function(){if(null===o.nowTimedate())return\"--:--:--\";var e=o.nowTimedate();return r(e.getHours())+\":\"+r(e.getMinutes())+\":\"+r(e.getSeconds())},write:function(e){var t=e.split(\":\"),n=o.evseTimedate();n.setHours(parseInt(t[0])),n.setMinutes(parseInt(t[1])),o.evseTimedate(n),o.localTimedate(new Date)}}),o.elapsed=ko.pureComputed(function(){if(null===o.nowTimedate())return\"0:00:00\";var e=o.elapsedNow().getTime(),t=(e=Math.floor(e/1e3))%60,n=(e=Math.floor(e/60))%60;return Math.floor(e/60)+\":\"+r(n)+\":\"+r(t)}),n.status.elapsed.subscribe(function(e){o.elapsedNow(new Date(1e3*e)),o.elapsedLocal(new Date)}),o.divert_update=ko.pureComputed(function(){if(null===o.nowTimedate())return!1;var e=o.divertUpdateNow().getTime();return Math.floor(e/1e3)}),n.status.divert_update.subscribe(function(e){o.divertUpdateNow(new Date(1e3*e)),o.divertUpdateLocal(new Date)});var a=null;o.automaticTime=ko.observable(!0),o.timeUpdate=function(e){var t=!(1=e){r.timeLimit(n.value);break}}},r.selectChargeLimit=function(e){if(r.chargeLimit()!==e)for(var t=0;t=e){r.chargeLimit(n.value);break}}};var o=[function(){return!1===r.status.time()?r.openevse.time(r.time.timeUpdate):new DummyRequest},function(){return r.openevse.service_level(function(e,t){r.serviceLevel(e),r.actualServiceLevel(t)})},function(){return r.updateCurrentCapacity()},function(){return r.openevse.current_capacity(function(e){r.currentCapacity(e)})},function(){return r.openevse.time_limit(function(e){r.selectTimeLimit(e)})},function(){return r.openevse.charge_limit(function(e){r.selectChargeLimit(e)})},function(){return r.openevse.gfi_self_test(function(e){r.gfiSelfTestEnabled(e)})},function(){return r.openevse.ground_check(function(e){r.groundCheckEnabled(e)})},function(){return r.openevse.stuck_relay_check(function(e){r.stuckRelayEnabled(e)})},function(){return r.openevse.temp_check(function(e){r.tempCheckEnabled(e)})},function(){return r.openevse.diode_check(function(e){r.diodeCheckEnabled(e)})},function(){return r.openevse.vent_required(function(e){r.ventRequiredEnabled(e)})},function(){return r.openevse.temp_check(function(){r.tempCheckSupported(!0)},r.tempCheckEnabled()).error(function(){r.tempCheckSupported(!1)})},function(){return r.openevse.timer(function(e,t,n){r.delayTimerEnabled(e),r.delayTimerStart(t),r.delayTimerStop(n)})}];r.updateCount=ko.observable(0),r.updateTotal=ko.observable(o.length),r.updateCurrentCapacity=function(){return r.openevse.current_capacity_range(function(e,t){r.minCurrentLevel(e),r.maxCurrentLevel(t);var n=r.currentCapacity();r.currentLevels.removeAll();for(var o=r.minCurrentLevel();o<=r.maxCurrentLevel();o++)r.currentLevels.push({name:o+\" A\",value:o});r.currentCapacity(n)})},r.updatingServiceLevel=ko.observable(!1),r.savedServiceLevel=ko.observable(!1),r.updatingCurrentCapacity=ko.observable(!1),r.savedCurrentCapacity=ko.observable(!1),r.updatingTimeLimit=ko.observable(!1),r.savedTimeLimit=ko.observable(!1),r.updatingChargeLimit=ko.observable(!1),r.savedChargeLimit=ko.observable(!1),r.updatingDelayTimer=ko.observable(!1),r.savedDelayTimer=ko.observable(!1),r.updatingStatus=ko.observable(!1),r.savedStatus=ko.observable(!1),r.updatingGfiSelfTestEnabled=ko.observable(!1),r.savedGfiSelfTestEnabled=ko.observable(!1),r.updatingGroundCheckEnabled=ko.observable(!1),r.savedGroundCheckEnabled=ko.observable(!1),r.updatingStuckRelayEnabled=ko.observable(!1),r.savedStuckRelayEnabled=ko.observable(!1),r.updatingTempCheckEnabled=ko.observable(!1),r.savedTempCheckEnabled=ko.observable(!1),r.updatingDiodeCheckEnabled=ko.observable(!1),r.savedDiodeCheckEnabled=ko.observable(!1),r.updatingVentRequiredEnabled=ko.observable(!1),r.savedVentRequiredEnabled=ko.observable(!1);var a=!(r.setForTime=function(e,t){e(!0),setTimeout(function(){e(!1)},t)});function i(e){return/([01]\\d|2[0-3]):([0-5]\\d)/.test(e)}r.subscribe=function(){a||(r.serviceLevel.subscribe(function(e){r.updatingServiceLevel(!0),r.openevse.service_level(function(e,t){r.setForTime(r.savedServiceLevel,2e3),r.actualServiceLevel(t),r.updateCurrentCapacity().always(function(){})},e).always(function(){r.updatingServiceLevel(!1)})}),r.currentCapacity.subscribe(function(t){!0!==r.updatingServiceLevel()&&(r.updatingCurrentCapacity(!0),r.openevse.current_capacity(function(e){r.setForTime(r.savedCurrentCapacity,2e3),t!==e&&r.currentCapacity(e)},t).always(function(){r.updatingCurrentCapacity(!1)}))}),r.timeLimit.subscribe(function(t){r.updatingTimeLimit(!0),r.openevse.time_limit(function(e){r.setForTime(r.savedTimeLimit,2e3),t!==e&&r.selectTimeLimit(e)},t).always(function(){r.updatingTimeLimit(!1)})}),r.chargeLimit.subscribe(function(t){r.updatingChargeLimit(!0),r.openevse.charge_limit(function(e){r.setForTime(r.savedChargeLimit,2e3),t!==e&&r.selectChargeLimit(e)},t).always(function(){r.updatingChargeLimit(!1)})}),r.gfiSelfTestEnabled.subscribe(function(t){r.updatingGfiSelfTestEnabled(!0),r.openevse.gfi_self_test(function(e){r.setForTime(r.savedGfiSelfTestEnabled,2e3),t!==e&&r.gfiSelfTestEnabled(e)},t).always(function(){r.updatingGfiSelfTestEnabled(!1)})}),r.groundCheckEnabled.subscribe(function(t){r.updatingGroundCheckEnabled(!0),r.openevse.ground_check(function(e){r.setForTime(r.savedGroundCheckEnabled,2e3),t!==e&&r.groundCheckEnabled(e)},t).always(function(){r.updatingGroundCheckEnabled(!1)})}),r.stuckRelayEnabled.subscribe(function(t){r.updatingStuckRelayEnabled(!0),r.savedStuckRelayEnabled(!1),r.openevse.stuck_relay_check(function(e){r.savedStuckRelayEnabled(!0),setTimeout(function(){r.savedStuckRelayEnabled(!1)},2e3),t!==e&&r.stuckRelayEnabled(e)},t).always(function(){r.updatingStuckRelayEnabled(!1)})}),r.tempCheckEnabled.subscribe(function(t){r.updatingTempCheckEnabled(!0),r.openevse.temp_check(function(e){r.setForTime(r.savedTempCheckEnabled,2e3),t!==e&&r.tempCheckEnabled(e)},t).always(function(){r.updatingTempCheckEnabled(!1)})}),r.diodeCheckEnabled.subscribe(function(t){r.updatingDiodeCheckEnabled(!0),r.openevse.diode_check(function(e){r.setForTime(r.savedDiodeCheckEnabled,2e3),t!==e&&r.diodeCheckEnabled(e)},t).always(function(){r.updatingDiodeCheckEnabled(!1)})}),r.ventRequiredEnabled.subscribe(function(t){r.updatingVentRequiredEnabled(!0),r.openevse.vent_required(function(e){r.setForTime(r.savedVentRequiredEnabled,2e3),t!==e&&r.ventRequiredEnabled(e)},t).always(function(){r.updatingVentRequiredEnabled(!1)})}),a=!0)},r.update=function(){var e=0>10|55296,1023&r|56320)}function i(){C()}var e,p,w,o,a,h,d,v,x,u,c,C,T,s,k,g,l,m,b,E=\"sizzle\"+ +new Date,y=n.document,S=0,r=0,N=ue(),_=ue(),D=ue(),A=ue(),O=function(e,t){return e===t&&(c=!0),0},j={}.hasOwnProperty,t=[],M=t.pop,q=t.push,L=t.push,P=t.slice,R=function(e,t){for(var n=0,r=e.length;n+~]|\"+B+\")\"+B+\"*\"),z=new RegExp(B+\"|>\"),G=new RegExp($),X=new RegExp(\"^\"+H+\"$\"),Y={ID:new RegExp(\"^#(\"+H+\")\"),CLASS:new RegExp(\"^\\\\.(\"+H+\")\"),TAG:new RegExp(\"^(\"+H+\"|[*])\"),ATTR:new RegExp(\"^\"+F),PSEUDO:new RegExp(\"^\"+$),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+B+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+B+\"*(?:([+-]|)\"+B+\"*(\\\\d+)|))\"+B+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+I+\")$\",\"i\"),needsContext:new RegExp(\"^\"+B+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+B+\"*((?:-\\\\d)?\\\\d*)\"+B+\"*\\\\)|)(?=[^-]|$)\",\"i\")},K=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,ee=/^[^{]+\\{\\s*\\[native \\w/,te=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ne=/[+~]/,re=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+B+\"?|(\"+B+\")|.)\",\"ig\"),ie=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,oe=function(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},ae=we(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{L.apply(t=P.call(y.childNodes),y.childNodes),t[y.childNodes.length].nodeType}catch(e){L={apply:t.length?function(e,t){q.apply(e,P.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,c,l,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&((e?e.ownerDocument||e:y)!==T&&C(e),e=e||T,k)){if(11!==d&&(u=te.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&b(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return L.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return L.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!A[t+\" \"]&&(!g||!g.test(t))&&(1!==d||\"object\"!==e.nodeName.toLowerCase())){if(l=t,f=e,1===d&&z.test(t)){for((s=e.getAttribute(\"id\"))?s=s.replace(ie,oe):e.setAttribute(\"id\",s=E),o=(c=h(t)).length;o--;)c[o]=\"#\"+s+\" \"+ye(c[o]);l=c.join(\",\"),f=ne.test(t)&&me(e.parentNode)||e}try{return L.apply(n,f.querySelectorAll(l)),n}catch(e){A(t,!0)}finally{s===E&&e.removeAttribute(\"id\")}}}return v(t.replace(V,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>w.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function ce(e){return e[E]=!0,e}function le(e){var t=T.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split(\"|\"),r=n.length;r--;)w.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ve(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ge(a){return ce(function(o){return o=+o,ce(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!K.test(t||n&&n.nodeName||\"HTML\")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:y;return r!==T&&9===r.nodeType&&r.documentElement&&(s=(T=r).documentElement,k=!a(T),y!==T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",i,!1):n.attachEvent&&n.attachEvent(\"onunload\",i)),p.attributes=le(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),p.getElementsByTagName=le(function(e){return e.appendChild(T.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),p.getElementsByClassName=ee.test(T.getElementsByClassName),p.getById=le(function(e){return s.appendChild(e).id=E,!T.getElementsByName||!T.getElementsByName(E).length}),p.getById?(w.filter.ID=function(e){var t=e.replace(re,f);return function(e){return e.getAttribute(\"id\")===t}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&k){var n=t.getElementById(e);return n?[n]:[]}}):(w.filter.ID=function(e){var n=e.replace(re,f);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},w.find.ID=function(e,t){if(void 0!==t.getElementById&&k){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),w.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},w.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&k)return t.getElementsByClassName(e)},l=[],g=[],(p.qsa=ee.test(T.querySelectorAll))&&(le(function(e){s.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&g.push(\"[*^$]=\"+B+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||g.push(\"\\\\[\"+B+\"*(?:value|\"+I+\")\"),e.querySelectorAll(\"[id~=\"+E+\"-]\").length||g.push(\"~=\"),e.querySelectorAll(\":checked\").length||g.push(\":checked\"),e.querySelectorAll(\"a#\"+E+\"+*\").length||g.push(\".#.+[+~]\")}),le(function(e){e.innerHTML=\"\";var t=T.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&g.push(\"name\"+B+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&g.push(\":enabled\",\":disabled\"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&g.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),g.push(\",.*:\")})),(p.matchesSelector=ee.test(m=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&le(function(e){p.disconnectedMatch=m.call(e,\"*\"),m.call(e,\"[s!='']:x\"),l.push(\"!=\",$)}),g=g.length&&new RegExp(g.join(\"|\")),l=l.length&&new RegExp(l.join(\"|\")),t=ee.test(s.compareDocumentPosition),b=t||ee.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},O=t?function(e,t){if(e===t)return c=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===y&&b(y,e)?-1:t===T||t.ownerDocument===y&&b(y,t)?1:u?R(u,e)-R(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return c=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===T?-1:t===T?1:i?-1:o?1:u?R(u,e)-R(u,t):0;if(i===o)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]===y?-1:s[r]===y?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&C(e),p.matchesSelector&&k&&!A[t+\" \"]&&(!l||!l.test(t))&&(!g||!g.test(t)))try{var n=m.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,f),e[3]=(e[3]||e[4]||e[5]||\"\").replace(re,f),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&G.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,f).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+\" \"];return t||(t=new RegExp(\"(^|\"+B+\")\"+e+\"(\"+B+\"|$)\"))&&N(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),p.attributes&&le(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),le(function(e){return null==e.getAttribute(\"disabled\")})||fe(I,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(T);E.find=h,E.expr=h.selectors,E.expr[\":\"]=E.expr.pseudos,E.uniqueSort=E.unique=h.uniqueSort,E.text=h.getText,E.isXMLDoc=h.isXML,E.contains=h.contains,E.escapeSelector=h.escape;function C(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r}function S(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}var N=E.expr.match.needsContext;function _(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function A(e,n,r){return y(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||O,\"string\"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this);if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:j.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:k,!0)),D.test(r[1])&&E.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=k.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=E.fn,O=E(k);var M=/^(?:parents|prev(?:Until|All))/,q={children:!0,contents:!0,next:!0,prev:!0};function L(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i,ve={option:[1,\"\",\"\"],thead:[1,\"\",\"\"],col:[2,\"\",\"\"],tr:[2,\"\",\"\"],td:[3,\"\",\"\"],_default:[0,\"\",\"\"]};function ge(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&_(e,t)?E.merge([e],n):n}function me(e,t){for(var n=0,r=e.length;nx\",b.noCloneChecked=!!be.cloneNode(!0).lastChild.defaultValue;var Ce=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ke=/^([^.]*)(?:\\.(.+)|)/;function Ee(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return k.activeElement}catch(e){}}()==(\"focus\"===t)}function _e(e,t,n,r,i,o){var a,s;if(\"object\"===_typeof(t)){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)_e(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Y.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&E.event.add(e,i,Ee)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,c,l,f,d,p,h,v,g=Y.get(t);if(g)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(ie,i),n.guid||(n.guid=E.guid++),(u=g.events)||(u=g.events={}),(a=g.handle)||(a=g.handle=function(e){return void 0!==E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),c=(e=(e||\"\").match(P)||[\"\"]).length;c--;)p=v=(s=ke.exec(e[c])||[])[1],h=(s[2]||\"\").split(\".\").sort(),p&&(f=E.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=E.event.special[p]||{},l=E.extend({type:p,origType:v,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,l),l.handler.guid||(l.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,l):d.push(l),E.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,c,l,f,d,p,h,v,g=Y.hasData(e)&&Y.get(e);if(g&&(u=g.events)){for(c=(t=(t||\"\").match(P)||[\"\"]).length;c--;)if(p=v=(s=ke.exec(t[c])||[])[1],h=(s[2]||\"\").split(\".\").sort(),p){for(f=E.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=d.length;o--;)l=d[o],!i&&v!==l.origType||n&&n.guid!==l.guid||s&&!s.test(l.namespace)||r&&r!==l.selector&&(\"**\"!==r||!l.selector)||(d.splice(o,1),l.selector&&d.delegateCount--,f.remove&&f.remove.call(e,l));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,g.handle)||E.removeEvent(e,p,g.handle),delete u[p])}else for(p in u)E.event.remove(e,p+t[c],n,r,!0);E.isEmptyObject(u)&&Y.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=E.event.fix(e),u=new Array(arguments.length),c=(Y.get(this,\"events\")||{})[s.type]||[],l=E.event.special[s.type]||{};for(u[0]=s,t=1;t\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,Oe=/