diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index a6de5f13..c61fe31c 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -34,6 +34,6 @@ You can submit your registers from the Monitor page on the web interface.
### Your Environment
-- Genereator Model: {Please write here}
+- Generator Model: {Please write here}
- Generator Registers: {Please write here}
- Genmon Version: {Please write here}
diff --git a/changelog.md b/changelog.md
index f7b26db6..f43bb578 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,28 @@
# Changelog
All notable changes to this project will be documented in this file. Major releases are documented [here](https://github.com/jgyates/genmon/releases)
+
+## V1.11.8 - 2018-10-16
+- Improvements for genmqtt.py to allow for integer and float values to be passed as JSON strings
+- Added option for Smart Transfer Switch. This will disable the weekly exercise and remote start in the UI since the transfer switch will handled this.
+
+## V1.11.7 - 2018-10-13
+- Add new remote command to reset the current alarm (see Maintenance page)
+- Fixed bug in power log for H-100, if you experience problems, reset the power log or delete the file kwlog.txt and restart.
+- Moved Update Software in the web interface to the About page
+- Moved Submit Registers in the web interface to the About page
+- Added Submit Log Files button on the About page
+- Added change log to the web interface About page
+
+## V1.11.6 - 2018-10-13
+- Changed loading method in genloader.py to work around I/O error with Flask library. As a result the output of the flask library is redirected to /dev/null so it will not be displayed on the console. If you started the software manually from the console and then exited the console and attempted to restart from the web UI (with a settings change) the Flask library used by genserv.py would cause an exception (I/O error). This works around this issue.
+- Added more error checking / logging in modbus protocol code. This makes serial over TCP more robust.
+- Fixed minor issue in genlog.py
+- Improved error logging in myclient.py
+
+## V1.11.5 - 2018-10-12
+- Removed restart on I/O error in genserv.
+
## V1.11.4 - 2018-10-11
- Corrected bug in type in genserv.py. Corrects problem with settings page not displaying.
diff --git a/conf/genmqtt.conf b/conf/genmqtt.conf
index c62d2dce..8f5a215a 100644
--- a/conf/genmqtt.conf
+++ b/conf/genmqtt.conf
@@ -39,6 +39,11 @@ flush_interval = 0
# to make the path be Home/generator.
root_topic =
+# Optional. This value, if true will return numeric values in the Status topic
+# as a JSON string which can be converted to an object with integer or float
+# values. This applies to items in on the Status page only.
+numeric_json = False
+
# Optional. By default the program will attempt to export all text data that is
# exported by genmon (see the web interface for details). The blacklist
# entry is a way to skip some values that are updated frequently that may not
@@ -46,4 +51,4 @@ root_topic =
# be suppressed from MQTT by adding "Packet Count" in the line below, or
# "Platform Stats" will exclude all data in the Platform Stats section.
# Multiple entries are separated by commas.
-blacklist = Log,System Uptime,Packet Count,Run Time,Monitor Time,Generator Time,External Data
+blacklist = Monitor,Log,System Uptime,Packet Count,Run Time,Monitor Time,Generator Time,External Data
diff --git a/genloader.py b/genloader.py
index c137a867..d254abd6 100644
--- a/genloader.py
+++ b/genloader.py
@@ -150,14 +150,6 @@ def InstallLibrary(self, libraryname):
self.LogInfo("Error installing module: " + libraryname + ": "+ str(e1), LogLine = True)
return False
#---------------------------------------------------------------------------
- def LogInfo(self, message, LogLine = False):
-
- if not LogLine:
- self.LogError(message)
- else:
- self.LogErrorLine(message)
- self.LogConsole(message)
- #---------------------------------------------------------------------------
def ValidateConfig(self):
ErrorOccured = False
@@ -339,7 +331,7 @@ def StartModules(self):
return False
return not ErrorOccured
#---------------------------------------------------------------------------
- def LoadModule(self, modulename, args = None):
+ def LoadModuleAlt(self, modulename, args = None):
try:
self.LogConsole("Starting " + modulename)
# to load as a background process we just use os.system since Popen
@@ -356,6 +348,34 @@ def LoadModule(self, modulename, args = None):
return False
#---------------------------------------------------------------------------
+ def LoadModule(self, modulename, args = None):
+ try:
+ self.LogConsole("Starting " + modulename)
+
+ try:
+ from subprocess import DEVNULL # py3k
+ except ImportError:
+ import os
+ DEVNULL = open(os.devnull, 'wb')
+
+ if not len(args):
+ args = None
+
+ if "genserv.py" in modulename:
+ OutputStream = DEVNULL
+ else:
+ OutputStream = subprocess.PIPE
+ if args == None:
+ # close_fds=True
+ pid = subprocess.Popen([sys.executable, modulename], stdout=OutputStream, stderr=OutputStream, stdin=OutputStream)
+ else:
+ pid = subprocess.Popen([sys.executable, modulename, args], stdout=OutputStream, stderr=OutputStream, stdin=OutputStream)
+ return True
+
+ except Exception as e1:
+ self.LogInfo("Error loading module: " + str(e1), LogLine = True)
+ return False
+ #---------------------------------------------------------------------------
def UnloadModule(self, modulename, HardStop = False):
try:
self.LogConsole("Stopping " + modulename)
diff --git a/genlog.py b/genlog.py
index 1a771003..d22eff50 100644
--- a/genlog.py
+++ b/genlog.py
@@ -69,6 +69,7 @@ def LogDataToFile(fileName, time, Event):
address = arg
elif opt in ("-f", "--filename"):
fileName = arg
+ fileName = fileName.strip()
console.error('Address is ' + address)
console.error('Output file is ' + fileName)
diff --git a/genmon.py b/genmon.py
index 5196fb68..3e1a9728 100644
--- a/genmon.py
+++ b/genmon.py
@@ -25,7 +25,7 @@
print("Error: " + str(e1))
sys.exit(2)
-GENMON_VERSION = "V1.11.4"
+GENMON_VERSION = "V1.11.8"
#------------ Monitor class ----------------------------------------------------
class Monitor(mysupport.MySupport):
@@ -437,6 +437,7 @@ def ProcessCommand(self, command, fromsocket = False):
"allregs_json" : [self.Controller.DisplayRegisters, (True, True), True], # display registers
"logs_json" : [self.Controller.DisplayLogs, (True, True), True],
"status_json" : [self.Controller.DisplayStatus, (True,), True],
+ "status_num_json" : [self.Controller.DisplayStatus, (True,True), True],
"maint_json" : [self.Controller.DisplayMaintenance, (True,), True],
"monitor_json" : [self.DisplayMonitor, (True,), True],
"weather_json" : [self.DisplayWeather, (True,), True],
@@ -783,8 +784,6 @@ def SocketWorkThread(self, conn):
try:
- conn.settimeout(2) # only blok on recv for a small amount of time
-
statusstr = ""
if self.Controller == None:
outstr = "WARNING: System Initializing"
@@ -804,12 +803,18 @@ def SocketWorkThread(self, conn):
while True:
try:
data = conn.recv(1024)
- if self.Controller == None:
- outstr = "Retry, System Initializing"
+ if len(data):
+ if self.Controller == None:
+ outstr = "Retry, System Initializing"
+ else:
+ outstr = self.ProcessCommand(data, True)
+ conn.sendall(outstr.encode())
else:
- outstr = self.ProcessCommand(data, True)
- conn.sendall(outstr.encode())
+ # socket closed remotely
+ break
except socket.timeout:
+ if self.IsStopping:
+ break
continue
except socket.error as msg:
try:
@@ -820,9 +825,14 @@ def SocketWorkThread(self, conn):
break
except socket.error as msg:
+ self.LogError("Error in SocketWorkThread: " + str(msg))
+ pass
+
+ try:
self.ConnectionList.remove(conn)
conn.close()
-
+ except:
+ pass
# end SocketWorkThread
#---------- interface for heartbeat server thread -------------------------
@@ -842,7 +852,7 @@ def InterfaceServerThread(self):
while True:
try:
conn, addr = self.ServerSocket.accept()
- #self.printToString( 'Connected with ' + addr[0] + ':' + str(addr[1]))
+ #self.LogError('Connected with ' + addr[0] + ':' + str(addr[1]))
conn.settimeout(0.5)
self.ConnectionList.append(conn)
SocketThread = threading.Thread(target=self.SocketWorkThread, args = (conn,), name = "SocketWorkThread")
diff --git a/genmonlib/controller.py b/genmonlib/controller.py
index 39616fc8..95593db4 100644
--- a/genmonlib/controller.py
+++ b/genmonlib/controller.py
@@ -953,6 +953,8 @@ def GetPowerHistory(self, CmdString, NoReduce = False):
Items = line.split(",")
if len(Items) != 2:
continue
+ # remove any kW labels that may be there
+ Items[1] = self.removeAlpha(Items[1])
if Minutes:
struct_time = time.strptime(Items[0], "%x %X")
diff --git a/genmonlib/generac_HPanel.py b/genmonlib/generac_HPanel.py
index 6913a7d1..b7ed530e 100644
--- a/genmonlib/generac_HPanel.py
+++ b/genmonlib/generac_HPanel.py
@@ -1011,7 +1011,7 @@ def GetStartInfo(self, NoTile = False):
StartInfo["RemoteCommands"] = False
StartInfo["RemoteButtons"] = False
StartInfo["PowerGraph"] = self.PowerMeterIsSupported()
- StartInfo["ExerciseControls"] = not self.SmartSwitch
+ StartInfo["ExerciseControls"] = False # self.SmartSwitch
if not NoTile:
StartInfo["pages"] = {
@@ -1153,7 +1153,7 @@ def DisplayMaintenance (self, DictOut = False):
return ""
#------------ HPanel::DisplayStatus ----------------------------------------
- def DisplayStatus(self, DictOut = False):
+ def DisplayStatus(self, DictOut = False, JSONNum = False):
try:
Status = collections.OrderedDict()
@@ -1170,33 +1170,33 @@ def DisplayStatus(self, DictOut = False):
Stat["Time"] = Time
- Battery["Battery Voltage"] = self.GetParameter(RegisterEnum.BATTERY_VOLTS, "V", 100.0)
- Battery["Battery Charger Current"] = self.GetParameter(RegisterEnum.BATTERY_CHARGE_CURRNT, "A", 10.0)
+ Battery["Battery Voltage"] = self.ValueOut(self.GetParameter(RegisterEnum.BATTERY_VOLTS, ReturnFloat = True, Divider = 100.0), "V", JSONNum)
+ Battery["Battery Charger Current"] = self.ValueOut(self.GetParameter(RegisterEnum.BATTERY_CHARGE_CURRNT, ReturnFloat = True, Divider = 10.0), "A", JSONNum)
Engine["Current Status"] = self.GetParameterString(RegisterEnum.STATUS_INFO_START, RegisterEnum.STATUS_INFO_END)
Engine["Previous Status"] = self.GetParameterString(RegisterEnum.STATUS_2_INFO_START, RegisterEnum.STATUS_2_INFO_END)
Engine["Switch State"] = self.GetSwitchState()
Engine["Engine State"] = self.GetEngineState()
- Engine["Output Power"] = self.GetPowerOutput()
- Engine["Output Power Factor"] = self.GetParameter(RegisterEnum.TOTAL_PF, Divider = 100.0)
- Engine["RPM"] = self.GetParameter(RegisterEnum.OUTPUT_RPM)
- Engine["Frequency"] = self.GetParameter(RegisterEnum.OUTPUT_FREQUENCY, "Hz", 10.0)
- Engine["Throttle Position"] = self.GetParameter(RegisterEnum.THROTTLE_POSITION, "Stp")
- Engine["Coolant Temp"] = self.GetParameter(RegisterEnum.COOLANT_TEMP, "F")
- Engine["Coolant Level"] = self.GetParameter(RegisterEnum.COOLANT_LEVEL, "Stp")
- Engine["Oil Pressure"] = self.GetParameter(RegisterEnum.OIL_PRESSURE, "psi")
- Engine["Oil Temp"] = self.GetParameter(RegisterEnum.OIL_TEMP, "F")
- Engine["Fuel Level"] = self.GetParameter(RegisterEnum.FUEL_LEVEL)
- Engine["Oxygen Sensor"] = self.GetParameter(RegisterEnum.O2_SENSOR)
- Engine["Current Phase A"] = self.GetParameter(RegisterEnum.CURRENT_PHASE_A,"A")
- Engine["Current Phase B"] = self.GetParameter(RegisterEnum.CURRENT_PHASE_B,"A")
- Engine["Current Phase C"] = self.GetParameter(RegisterEnum.CURRENT_PHASE_C,"A")
- Engine["Average Current"] = self.GetParameter(RegisterEnum.AVG_CURRENT,"A")
- Engine["Voltage A-B"] = self.GetParameter(RegisterEnum.VOLTS_PHASE_A_B,"V")
- Engine["Voltage B-C"] = self.GetParameter(RegisterEnum.VOLTS_PHASE_B_C,"V")
- Engine["Voltage C-A"] = self.GetParameter(RegisterEnum.VOLTS_PHASE_C_A,"V")
- Engine["Average Voltage"] = self.GetParameter(RegisterEnum.AVG_VOLTAGE,"V")
- Engine["Air Fuel Duty Cycle"] = self.GetParameter(RegisterEnum.A_F_DUTY_CYCLE, Divider = 10.0)
+ Engine["Output Power"] = self.ValueOut(self.GetPowerOutput(ReturnFloat = True), "kW", JSONNum)
+ Engine["Output Power Factor"] = self.ValueOut(self.GetParameter(RegisterEnum.TOTAL_PF, ReturnFloat = True, Divider = 100.0), "", JSONNum)
+ Engine["RPM"] = self.ValueOut(self.GetParameter(RegisterEnum.OUTPUT_RPM, ReturnInt = True), "", JSONNum)
+ Engine["Frequency"] = self.ValueOut(self.GetParameter(RegisterEnum.OUTPUT_FREQUENCY, ReturnFloat = True, Divider = 10.0), "Hz", JSONNum)
+ Engine["Throttle Position"] = self.ValueOut(self.GetParameter(RegisterEnum.THROTTLE_POSITION, ReturnInt = True), "Stp", JSONNum)
+ Engine["Coolant Temp"] = self.ValueOut(self.GetParameter(RegisterEnum.COOLANT_TEMP, ReturnInt = True), "F", JSONNum)
+ Engine["Coolant Level"] = self.ValueOut(self.GetParameter(RegisterEnum.COOLANT_LEVEL, ReturnInt = True), "Stp", JSONNum)
+ Engine["Oil Pressure"] = self.ValueOut(self.GetParameter(RegisterEnum.OIL_PRESSURE, ReturnInt = True), "psi", JSONNum)
+ Engine["Oil Temp"] = self.ValueOut(self.GetParameter(RegisterEnum.OIL_TEMP, ReturnInt = True), "F", JSONNum)
+ Engine["Fuel Level"] = self.ValueOut(self.GetParameter(RegisterEnum.FUEL_LEVEL, ReturnInt = True), "", JSONNum)
+ Engine["Oxygen Sensor"] = self.ValueOut(self.GetParameter(RegisterEnum.O2_SENSOR, ReturnInt = True), "", JSONNum)
+ Engine["Current Phase A"] = self.ValueOut(self.GetParameter(RegisterEnum.CURRENT_PHASE_A, ReturnInt = True), "A", JSONNum)
+ Engine["Current Phase B"] = self.ValueOut(self.GetParameter(RegisterEnum.CURRENT_PHASE_B,ReturnInt = True), "A", JSONNum)
+ Engine["Current Phase C"] = self.ValueOut(self.GetParameter(RegisterEnum.CURRENT_PHASE_C,ReturnInt = True), "A", JSONNum)
+ Engine["Average Current"] = self.ValueOut(self.GetParameter(RegisterEnum.AVG_CURRENT,ReturnInt = True), "A", JSONNum)
+ Engine["Voltage A-B"] = self.ValueOut(self.GetParameter(RegisterEnum.VOLTS_PHASE_A_B,ReturnInt = True), "V", JSONNum)
+ Engine["Voltage B-C"] = self.ValueOut(self.GetParameter(RegisterEnum.VOLTS_PHASE_B_C,ReturnInt = True), "V", JSONNum)
+ Engine["Voltage C-A"] = self.ValueOut(self.GetParameter(RegisterEnum.VOLTS_PHASE_C_A,ReturnInt = True), "V", JSONNum)
+ Engine["Average Voltage"] = self.ValueOut(self.GetParameter(RegisterEnum.AVG_VOLTAGE,ReturnInt = True), "V", JSONNum)
+ Engine["Air Fuel Duty Cycle"] = self.ValueOut(self.GetParameter(RegisterEnum.A_F_DUTY_CYCLE, ReturnFloat = True, Divider = 10.0), "", JSONNum)
if self.SystemInAlarm():
Engine["System In Alarm"] = self.GetAlarmList()
@@ -1371,7 +1371,10 @@ def PowerMeterIsSupported(self):
# return kW with units i.e. "2.45kW"
def GetPowerOutput(self, ReturnFloat = False):
- return self.GetParameter(RegisterEnum.TOTAL_POWER_KW, "kW", ReturnFloat = ReturnFloat)
+ if ReturnFloat:
+ return self.GetParameter(RegisterEnum.TOTAL_POWER_KW, ReturnFloat = True)
+ else:
+ return self.GetParameter(RegisterEnum.TOTAL_POWER_KW, "kW", ReturnFloat = False)
#---------- HPanel:GetCommStatus -----------------------------------------
# return Dict with communication stats
diff --git a/genmonlib/generac_evolution.py b/genmonlib/generac_evolution.py
index c7839e15..4234449b 100644
--- a/genmonlib/generac_evolution.py
+++ b/genmonlib/generac_evolution.py
@@ -2906,13 +2906,16 @@ def GetThresholdVoltage(self, ReturnInt = False):
return self.GetParameter("0011", ReturnInt = ReturnInt, Label = "V")
#------------ Evolution:GetSetOutputVoltage --------------------------------
- def GetSetOutputVoltage(self):
+ def GetSetOutputVoltage(self, ReturnInt = False):
# get set output voltage
if not self.EvolutionController or not self.LiquidCooled:
- return ""
+ if ReturnInt:
+ return 0
+ else:
+ return ""
- return self.GetParameter("0237", Label = "V")
+ return self.GetParameter("0237", Label = "V", ReturnInt = ReturnInt)
#------------ Evolution:GetStartupDelay ------------------------------------
def GetStartupDelay(self):
@@ -3255,8 +3258,8 @@ def DisplayOutage(self, DictOut = False):
if len(Value):
OutageData["Utility Voltage"] = Value
- OutageData["Utility Voltage Minimum"] = "%dV " % (self.UtilityVoltsMin)
- OutageData["Utility Voltage Maximum"] = "%dV " % (self.UtilityVoltsMax)
+ OutageData["Utility Voltage Minimum"] = "%d V " % (self.UtilityVoltsMin)
+ OutageData["Utility Voltage Maximum"] = "%d V " % (self.UtilityVoltsMax)
OutageData["Utility Threshold Voltage"] = self.GetThresholdVoltage()
@@ -3274,7 +3277,7 @@ def DisplayOutage(self, DictOut = False):
return Outage
#------------ Evolution:DisplayStatus --------------------------------------
- def DisplayStatus(self, DictOut = False, Reg0001Value = None):
+ def DisplayStatus(self, DictOut = False, JSONNum = False, Reg0001Value = None):
try:
Status = collections.OrderedDict()
@@ -3299,20 +3302,20 @@ def DisplayStatus(self, DictOut = False, Reg0001Value = None):
if self.SystemInAlarm():
Engine["System In Alarm"] = self.GetAlarmState()
- Engine["Battery Voltage"] = self.GetBatteryVoltage()
+ Engine["Battery Voltage"] = self.ValueOut(self.GetBatteryVoltage(ReturnFloat = True), "V", JSONNum)
if self.EvolutionController and self.LiquidCooled:
Engine["Battery Status"] = self.GetBatteryStatus()
- Engine["RPM"] = self.GetRPM()
+ Engine["RPM"] = self.ValueOut(self.GetRPM(ReturnInt = True), "", JSONNum)
- Engine["Frequency"] = self.GetFrequency()
- Engine["Output Voltage"] = self.GetVoltageOutput()
+ Engine["Frequency"] = self.ValueOut(self.GetFrequency(ReturnFloat = True), "Hz", JSONNum)
+ Engine["Output Voltage"] = self.ValueOut(self.GetVoltageOutput(ReturnInt = True), "V", JSONNum)
if self.PowerMeterIsSupported():
- Engine["Output Current"] = self.GetCurrentOutput()
- Engine["Output Power (Single Phase)"] = self.GetPowerOutput()
+ Engine["Output Current"] = self.ValueOut(self.GetCurrentOutput(ReturnFloat = True), "A", JSONNum)
+ Engine["Output Power (Single Phase)"] = self.ValueOut(self.GetPowerOutput(ReturnFloat = True), "kW", JSONNum)
- Engine["Active Rotor Poles (Calculated)"] = self.GetActiveRotorPoles()
+ Engine["Active Rotor Poles (Calculated)"] = self.ValueOut(self.GetActiveRotorPoles(ReturnInt = True), "", JSONNum)
if self.bDisplayUnknownSensors:
Engine["Unsupported Sensors"] = self.DisplayUnknownSensors()
@@ -3320,15 +3323,15 @@ def DisplayStatus(self, DictOut = False, Reg0001Value = None):
if self.EvolutionController and self.LiquidCooled:
Line["Transfer Switch State"] = self.GetTransferStatus()
- Line["Utility Voltage"] = self.GetUtilityVoltage()
+ Line["Utility Voltage"] = self.ValueOut(self.GetUtilityVoltage(ReturnInt = True), "V", JSONNum)
#
- Line["Utility Voltage Max"] = "%dV " % (self.UtilityVoltsMax)
- Line["Utility Voltage Min"] = "%dV " % (self.UtilityVoltsMin)
- Line["Utility Threshold Voltage"] = self.GetThresholdVoltage()
+ Line["Utility Voltage Max"] = self.ValueOut(self.UtilityVoltsMax, "V", JSONNum)
+ Line["Utility Voltage Min"] = self.ValueOut(self.UtilityVoltsMin, "V", JSONNum)
+ Line["Utility Threshold Voltage"] = self.ValueOut(self.GetThresholdVoltage(ReturnInt = True), "V", JSONNum)
if self.EvolutionController and self.LiquidCooled:
- Line["Utility Pickup Voltage"] = self.GetPickUpVoltage()
- Line["Set Output Voltage"] = self.GetSetOutputVoltage()
+ Line["Utility Pickup Voltage"] = self.ValueOut(self.GetPickUpVoltage(ReturnInt = True), "V", JSONNum)
+ Line["Set Output Voltage"] = self.ValueOut(self.GetSetOutputVoltage(ReturnInt = True), "V", JSONNum)
# Generator time
Time["Monitor Time"] = datetime.datetime.now().strftime("%A %B %-d, %Y %H:%M:%S")
diff --git a/genmonlib/modbusbase.py b/genmonlib/modbusbase.py
index 30f8bede..5609d67c 100644
--- a/genmonlib/modbusbase.py
+++ b/genmonlib/modbusbase.py
@@ -30,6 +30,7 @@ def __init__(self, updatecallback, address = 0x9d, name = "/dev/serial", rate=96
self.TotalElapsedPacketeTime = 0
self.SlaveException = 0
self.CrcError = 0
+ self.ComValidationError = 0
self.CommAccessLock = threading.RLock() # lock to synchronize access to the serial port comms
self.ModbusStartTime = datetime.datetime.now() # used for com metrics
@@ -66,6 +67,7 @@ def GetCommStats(self):
SerialStats["Packet Timeouts"] = "%d" % self.ComTimoutError
SerialStats["Packet Timeouts Percent Errors"] = ("%.2f" % (PercentTimeoutErrors * 100)) + "%"
SerialStats["Modbus Exceptions"] = self.SlaveException
+ SerialStats["Validation Errors"] = self.ComValidationError
# Add serial stats here
CurrentTime = datetime.datetime.now()
@@ -85,6 +87,7 @@ def ResetCommStats(self):
self.TxPacketCount = 0
self.CrcError = 0
self.ComTimoutError = 0
+ self.ComValidationError = 0
self.SlaveException = 0
self.TotalElapsedPacketeTime = 0
self.ModbusStartTime = datetime.datetime.now() # used for com metrics
diff --git a/genmonlib/myclient.py b/genmonlib/myclient.py
index fa8a3009..b1c1143f 100644
--- a/genmonlib/myclient.py
+++ b/genmonlib/myclient.py
@@ -48,7 +48,7 @@ def Connect(self):
except Exception as e1:
retries += 1
if retries >= 5:
- self.LogError("Error: Connect : " + str(e1))
+ self.LogErrorLine("Error: Connect : " + str(e1))
self.console.error("Genmon not loaded.")
sys.exit(1)
else:
@@ -62,7 +62,7 @@ def SendCommand(self, cmd):
try:
self.Socket.sendall(cmd.encode())
except Exception as e1:
- self.LogError( "Error: TX: " + str(e1))
+ self.LogErrorLine( "Error: TX: " + str(e1))
self.Close()
self.Connect()
@@ -93,7 +93,7 @@ def Receive(self, noeom = False):
self.Connect()
return False, data
except Exception as e1:
- self.LogError( "Error: RX:" + str(e1))
+ self.LogErrorLine( "Error: RX:" + str(e1))
self.Close()
self.Connect()
RetStatus = False
@@ -125,5 +125,5 @@ def ProcessMonitorCommand(self, cmd):
self.SendCommand(cmd)
RetStatus, data = self.Receive()
except Exception as e1:
- self.LogError("Error in ProcessMonitorCommand:" + str(e1))
+ self.LogErrorLine("Error in ProcessMonitorCommand:" + str(e1))
return data
diff --git a/genmonlib/mycommon.py b/genmonlib/mycommon.py
index 9ff6e8e6..3ff0f45e 100644
--- a/genmonlib/mycommon.py
+++ b/genmonlib/mycommon.py
@@ -77,6 +77,14 @@ def MergeDicts(self, x, y):
z.update(y)
return z
+ #---------------------------------------------------------------------------
+ def LogInfo(self, message, LogLine = False):
+
+ if not LogLine:
+ self.LogError(message)
+ else:
+ self.LogErrorLine(message)
+ self.LogConsole(message)
#---------------------MyCommon::LogConsole------------------------------------
def LogConsole(self, Message):
if not self.console == None:
diff --git a/genmonlib/mymodbus.py b/genmonlib/mymodbus.py
index 36e8d85a..f8368853 100644
--- a/genmonlib/mymodbus.py
+++ b/genmonlib/mymodbus.py
@@ -19,6 +19,10 @@
MBUS_ADDRESS_SIZE = 0x01
MBUS_COMMAND = 0x01
MBUS_COMMAND_SIZE = 0x01
+MBUS_REG_HI = 0x02
+MBUS_REG_LOW = 0x03
+MBUS_LENGTH_HI = 0x04
+MBUS_LENGTH_LOW = 0x05
MBUS_EXCEPTION = 0x02
MBUS_WR_REQ_BYTE_COUNT = 0x06
MBUS_CRC_SIZE = 0x02
@@ -263,6 +267,11 @@ def ProcessOneTransaction(self, MasterPacket, skiplog = False, ReturnValue = Fal
# update our cached register dict
ReturnRegValue = self.UpdateRegistersFromPacket(MasterPacket, SlavePacket, SkipUpdate = skiplog)
+ if ReturnRegValue == "Error":
+ self.LogError("Master: " + str(MasterPacket))
+ self.LogError("Slave: " + str(SlavePacket))
+ self.ComValidationError += 1
+ self.Flush()
if ReturnValue:
return ReturnRegValue
@@ -334,39 +343,54 @@ def UpdateRegistersFromPacket(self, MasterPacket, SlavePacket, SkipUpdate = Fals
try:
if len(MasterPacket) < MIN_PACKET_LENGTH_RES or len(SlavePacket) < MIN_PACKET_LENGTH_RES:
- return ""
+ self.LogError("Validation Error, length: Master" + str(len(MasterPacket)) + " Slave: " + str(len(SlavePacket)))
+ return "Error"
if MasterPacket[MBUS_ADDRESS] != self.Address:
- self.LogError("Validation Error:: Invalid address in UpdateRegistersFromPacket (Master)")
-
+ self.LogError("Validation Error: Invalid address in UpdateRegistersFromPacket (Master)")
+ return "Error"
if SlavePacket[MBUS_ADDRESS] != self.Address:
- self.LogError("Validation Error:: Invalid address in UpdateRegistersFromPacket (Slave)")
-
+ self.LogError("Validation Error: Invalid address in UpdateRegistersFromPacket (Slave)")
+ return "Error"
if not SlavePacket[MBUS_COMMAND] in [MBUS_CMD_READ_REGS, MBUS_CMD_WRITE_REGS]:
- self.LogError("UpdateRegistersFromPacket: Unknown Function slave %02x %02x" % (SlavePacket[0],SlavePacket[1]))
-
+ self.LogError("Validation Error: Unknown Function slave %02x %02x" % (SlavePacket[0],SlavePacket[1]))
+ return "Error"
if not MasterPacket[MBUS_COMMAND] in [MBUS_CMD_READ_REGS, MBUS_CMD_WRITE_REGS]:
- self.LogError("UpdateRegistersFromPacket: Unknown Function master %02x %02x" % (MasterPacket[0],MasterPacket[1]))
+ self.LogError("Validation Error: Unknown Function master %02x %02x" % (MasterPacket[0],MasterPacket[1]))
+ return "Error"
+
+ if MasterPacket[MBUS_COMMAND] != SlavePacket[MBUS_COMMAND]:
+ self.LogError("Validation Error: Command Mismatch :" + str(MasterPacket[MBUS_COMMAND]) + ":" + str(SlavePacket[MBUS_COMMAND]))
+ return "Error"
# get register from master packet
Register = "%02x%02x" % (MasterPacket[2],MasterPacket[3])
- # get value from slave packet
- length = SlavePacket[MBUS_RESPONSE_LEN]
- if (length + MBUS_RES_PAYLOAD_SIZE_MINUS_LENGTH) > len(SlavePacket):
- return ""
+ if MasterPacket[MBUS_COMMAND] == MBUS_CMD_WRITE_REGS:
+ # get register from slave packet
+ SlaveRegister = "%02x%02x" % (SlavePacket[2],SlavePacket[3])
+ if SlaveRegister != Register:
+ self.LogError("Validation Error: Master Slave Register Mismatch : " + Register + ":" + SlaveRegister)
+ return "Error"
RegisterValue = ""
- for i in range(3, length+3):
- RegisterValue += "%02x" % SlavePacket[i]
- # update register list
- if not SkipUpdate:
- if not self.UpdateRegisterList == None:
- self.UpdateRegisterList(Register, RegisterValue)
+ if MasterPacket[MBUS_COMMAND] == MBUS_CMD_READ_REGS:
+ # get value from slave packet
+ length = SlavePacket[MBUS_RESPONSE_LEN]
+ if (length + MBUS_RES_PAYLOAD_SIZE_MINUS_LENGTH) > len(SlavePacket):
+ self.LogError("Validation Error: Slave Lenght : " + length + ":" + len(SlavePacket))
+ return "Error"
+
+ for i in range(3, length+3):
+ RegisterValue += "%02x" % SlavePacket[i]
+ # update register list
+ if not SkipUpdate:
+ if not self.UpdateRegisterList == None:
+ self.UpdateRegisterList(Register, RegisterValue)
return RegisterValue
except Exception as e1:
self.LogErrorLine("Error in UpdateRegistersFromPacket: " + str(e1))
- return ""
+ return "Error"
#------------ModbusProtocol::CheckCrc--------------------------------------
def CheckCRC(self, Packet):
@@ -430,6 +454,7 @@ def GetCommStats(self):
SerialStats["Packet Timeouts"] = "%d" % self.ComTimoutError
SerialStats["Packet Timeouts Percent Errors"] = ("%.2f" % (PercentTimeoutErrors * 100)) + "%"
SerialStats["Modbus Exceptions"] = self.SlaveException
+ SerialStats["Validation Errors"] = self.ComValidationError
# add serial stats
SerialStats["Discarded Bytes"] = "%d" % self.Slave.DiscardedBytes
SerialStats["Comm Restarts"] = "%d" % self.Slave.Restarts
diff --git a/genmonlib/mysupport.py b/genmonlib/mysupport.py
index 9c60299d..de65acce 100644
--- a/genmonlib/mysupport.py
+++ b/genmonlib/mysupport.py
@@ -9,7 +9,7 @@
# MODIFICATIONS:
#-------------------------------------------------------------------------------
-import os, sys, time, collections, threading, socket
+import os, sys, time, collections, threading, socket, json
from genmonlib import mycommon, myplatform, myconfig
@@ -139,6 +139,38 @@ def WaitForExit(self, Name, timeout = None):
return Thread.Wait(timeout)
+ #------------ MySupport::ValueOut ------------------------------------------
+ def ValueOut(self, value, unit, NoString = False):
+ try:
+
+ if NoString:
+ ReturnDict = collections.OrderedDict()
+ ReturnDict["unit"] = unit
+ DefaultReturn = json.dumps({'value': 0}, sort_keys=False)
+ else:
+ DefaultReturn = ""
+ if isinstance(value, int):
+ if not NoString:
+ return "%d %s" % (int(value), str(unit))
+ else:
+ ReturnDict["type"] = 'int'
+ ReturnDict["value"] = value
+ return json.dumps(ReturnDict, sort_keys=False)
+ elif isinstance(value, float):
+ if not NoString:
+ return "%.2f %s" % (float(value), str(unit))
+ else:
+ ReturnDict = collections.OrderedDict()
+ ReturnDict["type"] = 'float'
+ ReturnDict["value"] = round(value, 2)
+ return json.dumps(ReturnDict, sort_keys=False)
+ else:
+ self.LogError("Unsupported type in ValueOut: " + str(type(value)))
+ return DefaultReturn
+ except Exception as e1:
+ self.LogErrorLine("Error in ValueOut: " + str(e1))
+ return DefaultReturn
+
#------------ MySupport::GetDispatchItem -----------------------------------
def GetDispatchItem(self, item):
@@ -153,7 +185,7 @@ def GetDispatchItem(self, item):
elif isinstance(item, float):
return str(item)
else:
- self.LogError("Unable to convert type %s in GetDispatchItem" % type(item))
+ self.LogError("Unable to convert type %s in GetDispatchItem" % str(type(item)))
self.LogError("Item: " + str(item))
return ""
@@ -179,11 +211,11 @@ def ProcessDispatch(self, node, InputBuffer, indent=0):
NewDict2 = collections.OrderedDict()
InputBuffer[key].append(self.ProcessDispatch(listitem, NewDict2))
else:
- self.LogError("Invalid type in ProcessDispatch %s " % type(node))
+ self.LogError("Invalid type in ProcessDispatch %s " % str(type(node)))
else:
InputBuffer[key] = self.GetDispatchItem(item)
else:
- self.LogError("Invalid type in ProcessDispatch %s " % type(node))
+ self.LogError("Invalid type in ProcessDispatch %s " % str(type(node)))
return InputBuffer
@@ -208,11 +240,11 @@ def ProcessDispatchToString(self, node, InputBuffer, indent = 0):
elif isinstance(listitem, str):
InputBuffer += ((" " * (indent +1)) + self.GetDispatchItem(listitem) + "\n")
else:
- self.LogError("Invalid type in ProcessDispatchToString %s %s (2)" % (key, type(listitem)))
+ self.LogError("Invalid type in ProcessDispatchToString %s %s (2)" % (key, str(type(listitem))))
else:
InputBuffer += ((" " * indent) + str(key) + " : " + self.GetDispatchItem(item) + "\n")
else:
- self.LogError("Invalid type in ProcessDispatchToString %s " % type(node))
+ self.LogError("Invalid type in ProcessDispatchToString %s " % str(type(node)))
return InputBuffer
#---------- Controller::GetNumBitsChanged----------------------------------
diff --git a/genmqtt.py b/genmqtt.py
index 91856ade..ac9443bc 100644
--- a/genmqtt.py
+++ b/genmqtt.py
@@ -38,11 +38,16 @@ def __init__(self,
callback = None,
polltime = None,
blacklist = None,
- flush_interval = float('inf')):
+ flush_interval = float('inf'),
+ use_numeric = False,
+ debug = False):
super(MyGenPush, self).__init__()
self.Callback = callback
+ self.UseNumeric = use_numeric
+ self.Debug = debug
+
if polltime == None:
self.PollTime = 3
else:
@@ -103,7 +108,10 @@ def MainPollingThread(self):
while True:
try:
- statusdata = self.SendCommand("generator: status_json")
+ if not self.UseNumeric:
+ statusdata = self.SendCommand("generator: status_json")
+ else:
+ statusdata = self.SendCommand("generator: status_num_json")
outagedata = self.SendCommand("generator: outage_json")
monitordata = self.SendCommand("generator: monitor_json")
maintdata = self.SendCommand("generator: maint_json")
@@ -132,7 +140,7 @@ def MainPollingThread(self):
#------------ MySupport::CheckDictForChanges -------------------------------
# This function is recursive, it will turn a nested dict into a flat dict keys
- # that have a directory structure with corrposonding values and deteermine if
+ # that have a directory structure with corrposonding values and determine if
# anyting changed. If it has then call our callback function
def CheckDictForChanges(self, node, PathPrefix):
@@ -155,12 +163,12 @@ def CheckDictForChanges(self, node, PathPrefix):
#todo list support
pass
else:
- self.LogError("Invalid type in CheckDictForChanges: %s %s (2)" % (key, type(listitem)))
+ self.LogError("Invalid type in CheckDictForChanges: %s %s (2)" % (key, str(type(listitem))))
else:
CurrentPath = PathPrefix + "/" + str(key)
- self.CheckForChanges(CurrentPath, str(item))
+ self.CheckForChanges(CurrentPath, item)
else:
- self.LogError("Invalid type in CheckDictForChanges %s " % type(node))
+ self.LogError("Invalid type in CheckDictForChanges %s " % str(type(node)))
# ---------- MyGenPush::CheckForChanges-------------------------------------
def CheckForChanges(self, Path, Value):
@@ -174,11 +182,11 @@ def CheckForChanges(self, Path, Value):
LastValue = self.LastValues.get(str(Path), None)
LastChange = self.LastChange.get(str(Path), 0)
- if LastValue == None or LastValue != str(Value) or (time.time() - LastChange) > self.FlushInterval:
- self.LastValues[str(Path)] = str(Value)
+ if LastValue == None or LastValue != Value or (time.time() - LastChange) > self.FlushInterval:
+ self.LastValues[str(Path)] = Value
self.LastChange[str(Path)] = time.time()
if self.Callback != None:
- self.Callback(str(Path), str(Value))
+ self.Callback(str(Path), Value)
except Exception as e1:
self.LogErrorLine("Error in mygenpush:CheckForChanges: " + str(e1))
@@ -217,6 +225,7 @@ def __init__(self, log = None):
self.Topic = "generator"
self.TopicRoot = None
self.BlackList = None
+ self.UseNumeric = False
self.PollTime = 2
self.FlushInterval = float('inf') # default to inifite flush interval (e.g., never)
self.Debug = False
@@ -243,14 +252,22 @@ def __init__(self, log = None):
self.PollTime = config.ReadValue('poll_interval', return_type = float, default = 2.0)
+ self.UseNumeric = config.ReadValue('numeric_json', return_type = bool, default = False)
+
self.TopicRoot = config.ReadValue('root_topic')
BlackList = config.ReadValue('blacklist')
+
if BlackList != None:
- self.BlackList = BlackList.strip().split(",")
+ if len(BlackList):
+ BList = BlackList.strip().split(",")
+ if len(BList):
+ self.BlackList = []
+ for Items in BList:
+ self.BlackList.append(Items.strip())
self.Debug = config.ReadValue('debug', return_type = bool, default = False)
-
+
if config.HasOption('flush_interval'):
self.FlushInterval = config.ReadValue('flush_interval', return_type = float, default = float('inf'))
if self.FlushInterval == 0:
@@ -272,7 +289,11 @@ def __init__(self, log = None):
self.MQTTclient.connect(self.MQTTAddress, self.Port, 60)
- self.Push = MyGenPush(host = self.MonitorAddress, log = self.log, callback = self.PublishCallback, polltime = self.PollTime , blacklist = self.BlackList, flush_interval = self.FlushInterval)
+ self.Push = MyGenPush(host = self.MonitorAddress,
+ log = self.log, callback = self.PublishCallback,
+ polltime = self.PollTime , blacklist = self.BlackList,
+ flush_interval = self.FlushInterval, use_numeric = self.UseNumeric,
+ debug = self.Debug)
atexit.register(self.Close)
signal.signal(signal.SIGTERM, self.Close)
@@ -294,11 +315,12 @@ def PublishCallback(self, name, value):
FullPath = str(name)
if self.Debug:
- self.console.info("Publish: " + FullPath + ": " + str(value))
+ self.console.info("Publish: " + FullPath + ": " + str(value) + ": " + str(type(value)))
- self.MQTTclient.publish(FullPath, str(value))
+ self.MQTTclient.publish(FullPath, value)
except Exception as e1:
self.LogErrorLine("Error in MyMQTT:PublishCallback: " + str(e1))
+
#------------ MyMQTT::on_connect--------------------------------------------
# The callback for when the client receives a CONNACK response from the server.
def on_connect(self, client, userdata, flags, rc):
diff --git a/genserv.py b/genserv.py
index 87af1587..d62a300e 100644
--- a/genserv.py
+++ b/genserv.py
@@ -466,6 +466,13 @@ def GetAddOns():
"(Optional) Time in seconds where even unchanged values will be published to their MQTT topic. Set to zero to disable flushing.",
bounds = 'number',
display_name = "Flush Interval")
+ AddOnCfg['genmqtt']['parameters']['numeric_json'] = CreateAddOnParam(
+ ConfigFiles[GENMQTT_CONFIG].ReadValue("numeric_json", return_type = bool, default = False),
+ 'boolean',
+ "If enabled will return numeric values in the Status topic as a JSON string which can be converted to an object with integer or float values.",
+ bounds = '',
+ display_name = "JSON for Numerics")
+
#GENSLACK
AddOnCfg['genslack'] = collections.OrderedDict()
@@ -817,6 +824,7 @@ def ReadSettingsFromFile():
else: #ControllerType == "generac_evo_nexus":
ConfigSettings["enhancedexercise"] = ['boolean', 'Enhanced Exercise Time', 105, False, "", "", GENMON_CONFIG, GENMON_SECTION, "enhancedexercise"]
+ ConfigSettings["smart_transfer_switch"] = ['boolean', 'Smart Transfer Switch', 110, False, "", "", GENMON_CONFIG, GENMON_SECTION, "smart_transfer_switch"]
ConfigSettings["displayunknown"] = ['boolean', 'Display Unknown Sensors', 111, False, "", "", GENMON_CONFIG, GENMON_SECTION, "displayunknown"]
# These do not appear to work on reload, some issue with Flask
@@ -1254,7 +1262,7 @@ def Close(NoExit = False):
except Exception as e1:
LogErrorLine("Error in app.run: " + str(e1))
#Errno 98
- if e1.errno != errno.EADDRINUSE and e1.errno != errno.EIO:
+ if e1.errno != errno.EADDRINUSE: # and e1.errno != errno.EIO:
sys.exit(1)
time.sleep(2)
if Closing:
diff --git a/static/genmon.css b/static/genmon.css
old mode 100755
new mode 100644
index 09ebecb7..db9769c7
--- a/static/genmon.css
+++ b/static/genmon.css
@@ -605,14 +605,28 @@ li a:hover:not(.active) {
}
.card {
- -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);
- box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);
- position: relative;
- margin: 0.5rem 0 1rem 0;
- background-color: #fff;
- -webkit-transition: -webkit-box-shadow .25s;
- transition: box-shadow .25s, -webkit-box-shadow .25s;
- border-radius: 6px; width: 360px;
+ -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);
+ box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);
+ position: relative;
+ margin: 0.5rem 0 1rem 0;
+ background-color: #fff;
+ -webkit-transition: -webkit-box-shadow .25s;
+ transition: box-shadow .25s, -webkit-box-shadow .25s;
+ border-radius: 6px;
+ width: 360px;
+}
+
+.aboutInfo {
+ -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);
+ box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);
+ position: relative;
+ margin: 0.5rem 0 1rem 0;
+ -webkit-transition: -webkit-box-shadow .25s;
+ transition: box-shadow .25s, -webkit-box-shadow .25s;
+ border-radius: 6px;
+ font-size: 16px;
+ width: 50%;
+ background-color: #f1f1f1;
}
#mydisplay {
diff --git a/static/genmon.js b/static/genmon.js
old mode 100755
new mode 100644
index 19e8fbfe..72922781
--- a/static/genmon.js
+++ b/static/genmon.js
@@ -1,4 +1,4 @@
-// Define header
+
// global base state
var baseState = "READY"; // updated on a time
var currentbaseState = "READY"; // menus change on this var
@@ -615,49 +615,56 @@ function DisplayMaintenance(){
outstr = '
' + json2html(result, "", "root") + '
';
if (myGenerator["write_access"] == true) {
- outstr += " Generator Exercise Time: ";
-
- //Create array of options to be added
- if (myGenerator['EnhancedExerciseEnabled'] == true) {
- outstr += ' ';
- outstr += 'Weekly ';
- outstr += 'Biweekly ';
- outstr += 'Monthly ';
- outstr += ' ';
- }
-
- //Create and append the options, days
- outstr += ' , ';
- //Create and append the options, hours
- outstr += '';
- for (var i = 0; i < 24; i++) {
- outstr += '' + i.pad() + ' ';
- }
- outstr += ' : ';
-
- //Create and append the options, minute
- outstr += '';
- for (var i = 0; i < 60; i++) {
- outstr += '' + i.pad() + ' ';
+ if (myGenerator['ExerciseControls'] == true) {
+
+ outstr += " Generator Exercise Time: ";
+
+ //Create array of options to be added
+ if (myGenerator['EnhancedExerciseEnabled'] == true) {
+ outstr += ' ';
+ outstr += 'Weekly ';
+ outstr += 'Biweekly ';
+ outstr += 'Monthly ';
+ outstr += ' ';
+ }
+
+ //Create and append the options, days
+ outstr += ' , ';
+ //Create and append the options, hours
+ outstr += '';
+ for (var i = 0; i < 24; i++) {
+ outstr += '' + i.pad() + ' ';
+ }
+ outstr += ' : ';
+
+ //Create and append the options, minute
+ outstr += '';
+ for (var i = 0; i < 60; i++) {
+ outstr += '' + i.pad() + ' ';
+ }
+ outstr += ' ';
+
+ //Create and append select list
+ outstr += ' ';
+ outstr += 'Quiet Mode On ';
+ outstr += 'Quiet Mode Off ';
+ outstr += ' ';
+
+ outstr += ' Set Exercise Time ';
}
- outstr += ' ';
-
- //Create and append select list
- outstr += ' ';
- outstr += 'Quiet Mode On ';
- outstr += 'Quiet Mode Off ';
- outstr += ' ';
-
- outstr += ' Set Exercise Time ';
outstr += ' Generator Time: ';
outstr += ' Set Generator Time ';
- outstr += ' Remote Commands: ';
+ if (myGenerator['RemoteCommands'] == true) {
+ outstr += ' Remote Commands: ';
+ outstr += ' Stop Generator ';
+ outstr += 'Start Generator ';
+ outstr += 'Start Generator and Transfer ';
- outstr += ' Stop Generator ';
- outstr += 'Start Generator ';
- outstr += 'Start Generator and Transfer ';
+ outstr += ' Reset Alarm Condition: ';
+ outstr += ' Reset Alarm Condition ';
+ }
if (myGenerator['RemoteButtons'] == true) {
outstr += ' Switch Position: ';
@@ -789,6 +796,28 @@ function SetTimeClick(){
});
}
+//*****************************************************************************
+// called when Reset Alarm Condition is clicked
+//*****************************************************************************
+function ResetAlarmClick(){
+
+ vex.dialog.confirm({
+ unsafeMessage: 'Are you sure you want to reset the alarm condition on your generator?',
+ overlayClosesOnClick: false,
+ callback: function (value) {
+ if (value == false) {
+ return;
+ } else {
+ // set exercise time
+ var url = baseurl.concat("resetalarm");
+ $.getJSON( url,
+ {settime: " "},
+ function(result){});
+ }
+ }
+ });
+}
+
//*****************************************************************************
// called when reset Power Log / Fuel Estimate clicked
//*****************************************************************************
@@ -1011,12 +1040,6 @@ function DisplayMonitor(){
var outstr = json2html(result, "", "root");
- if (myGenerator["write_access"] == true) {
- outstr += ' Update Generator Monitor Software:
';
- outstr += ' Upgrade to latest version ';
- outstr += ' Submit Registers to Developers: ';
- outstr += ' Submit Registers ';
- }
$("#mydisplay").html(outstr);
@@ -1055,124 +1078,9 @@ function DisplayMonitor(){
$("#Conditions").html(''+result["Monitor"]["Weather"]["Conditions"] + '
');
}
- if (myGenerator["write_access"] == true) {
- if (latestVersion == "") {
- // var url = "https://api.github.com/repos/jgyates/genmon/releases";
- var url = "https://raw.githubusercontent.com/jgyates/genmon/master/genmon.py";
- $.ajax({dataType: "html", url: url, timeout: 4000, error: function(result) {
- console.log("got an error when looking up latest version");
- latestVersion = "unknown";
- }, success: function(result) {
- latestVersion = replaceAll((jQuery.grep(result.split("\n"), function( a ) { return (a.indexOf("GENMON_VERSION") >= 0); }))[0].split(" ")[2], '"', '');
- if (latestVersion != myGenerator["version"]) {
- $('#updateNeeded').hide().html(" You are not running the latest version. Current Version: " + myGenerator["version"] +" New Version: " + latestVersion+" ").fadeIn(1000);
- }
- }});
- } else if ((latestVersion != "unknown") && (latestVersion != myGenerator["version"])) {
- $('#updateNeeded').html(" You are not running the latest version. Current Version: " + myGenerator["version"] +" New Version: " + latestVersion+" ");
- }
- }
}});
}
-function checkNewVersion(){
- var DisplayStr = 'Checking for latest version...
';
- $('.vex-dialog-buttons').html(DisplayStr);
- $('.progress-bar-fill').queue(function () {
- $(this).css('width', '100%')
- });
- var DisplayStrButtons = {
- NO: {
- text: 'Cancel',
- type: 'button',
- className: 'vex-dialog-button-secondary',
- click: function yesClick () { this.close() }
- },
- YES: {
- text: 'Upgrade',
- type: 'submit',
- className: 'vex-dialog-button-primary',
- click: function yesClick () { }
- }
- }
-
- var myDialog = vex.dialog.open({
- unsafeMessage: DisplayStr,
- overlayClosesOnClick: false,
- buttons: [
- DisplayStrButtons.NO,
- DisplayStrButtons.YES
- ],
- onSubmit: function(e) {
- e.preventDefault();
- updateSoftware();
- var DisplayStr1 = 'Downloading latest version...';
- var DisplayStr2 = '
';
- $('.vex-dialog-message').html(DisplayStr1);
- $('.vex-dialog-buttons').html(DisplayStr2);
- $('.progress-bar-fill').queue(function () {
- $(this).css('width', '100%')
- });
- }
- });
-
- if (latestVersion != myGenerator["version"]) {
- // $('.vex-dialog-message').html("A new version is available. Current Version: " + myGenerator["version"] + " New Version: " + latestVersion);
- $('.vex-dialog-message').html("Are you sure you want to update to the latest version?");
- } else {
- $('.vex-dialog-message').html("Are you sure you want to upgrade?");
- }
-}
-
-//*****************************************************************************
-// called when requesting upgrade
-//*****************************************************************************
-function updateSoftware(){
-
- // set remote command
- var url = baseurl.concat("updatesoftware");
- $.ajax({
- type: "GET",
- url: url,
- dataType: "json",
- timeout: 0,
- success: function(results){
- /// THIS IS NOT AN EXPECTED RESPONSE!!! genserv.py is expected to restart on it's own before returning a valid value;
- vex.closeAll();
- GenmonAlert("An unexepected outcome occured. Genmon might not have been updated. Please verify manually or try again!");
- },
- error: function(XMLHttpRequest, textStatus, errorThrown){
- var DisplayStr1 = 'Restarting...';
- var DisplayStr2 = '
';
- $('.vex-dialog-message').html(DisplayStr1);
- $('.vex-dialog-buttons').html(DisplayStr2);
- $('.progress-bar-fill').queue(function () {
- $(this).css('width', '100%')
- });
- // location.reload();
- setTimeout(function(){ vex.closeAll(); window.location.href = window.location.pathname+"?page=monitor"; }, 10000);
- }
-
-
- });
-}
-
-function submitRegisters(){
- vex.dialog.confirm({
- unsafeMessage: 'Send the contents of your generator registers to the developer for compatibility testing? ',
- overlayClosesOnClick: false,
- callback: function (value) {
- if (value == false) {
- return;
- } else {
- var url = baseurl.concat("sendregisters");
- $.getJSON( url,
- {},
- function(result){});
- }
- }
- });
-}
//*****************************************************************************
// Display the Notification Tab
@@ -1997,9 +1905,191 @@ function saveAddonJSON(addon) {
function DisplayAbout(){
var outstr = ' ';
- outstr += ' Genmon Version '+myGenerator["version"]+' Developed by @jgyates . Published under the GNU General Public License v2.0 . Source: Github Built using Python & Javascript. ';
+ outstr += '';
+
+ if (myGenerator["write_access"] == true) {
+ outstr += 'Update Generator Monitor Software:
';
+ outstr += ' Upgrade to latest version ';
+ outstr += ' Change Log ';
+ outstr += ' Submit Information to Developers: ';
+ outstr += ' Submit Registers ';
+ outstr += ' Submit Logs ';
+ }
$("#mydisplay").html(outstr);
+
+ if (myGenerator["write_access"] == true) {
+ if (latestVersion == "") {
+ // var url = "https://api.github.com/repos/jgyates/genmon/releases";
+ var url = "https://raw.githubusercontent.com/jgyates/genmon/master/genmon.py";
+ $.ajax({dataType: "html", url: url, timeout: 4000, error: function(result) {
+ console.log("got an error when looking up latest version");
+ latestVersion = "unknown";
+ }, success: function(result) {
+ latestVersion = replaceAll((jQuery.grep(result.split("\n"), function( a ) { return (a.indexOf("GENMON_VERSION") >= 0); }))[0].split(" ")[2], '"', '');
+ if (latestVersion != myGenerator["version"]) {
+ $('#updateNeeded').hide().html(" You are not running the latest version. Current Version: " + myGenerator["version"] +" New Version: " + latestVersion+" ").fadeIn(1000);
+ }
+ }});
+ } else if ((latestVersion != "unknown") && (latestVersion != myGenerator["version"])) {
+ $('#updateNeeded').html(" You are not running the latest version. Current Version: " + myGenerator["version"] +" New Version: " + latestVersion+" ");
+ }
+ }
+}
+
+function showChangeLog() {
+ var DisplayStr = 'Change Log Loading...
';
+ $('.vex-dialog-buttons').html(DisplayStr);
+ var DisplayStrButtons = {
+ CLOSE: {
+ text: 'Close',
+ type: 'button',
+ className: 'vex-dialog-button-primary',
+ click: function yesClick () { this.close() }
+ },
+ }
+
+ var myDialog = vex.dialog.open({
+ unsafeMessage: DisplayStr,
+ overlayClosesOnClick: true,
+ buttons: [
+ DisplayStrButtons.CLOSE
+ ],
+ });
+
+ var url = "https://raw.githubusercontent.com/jgyates/genmon/master/changelog.md";
+ $.ajax({dataType: "html", url: url, timeout: 4000, error: function(result) {
+ console.log("got an error when looking up latest version");
+ latestVersion = "unknown";
+ }, success: function(result) {
+ vpw = $(window).width();
+ vph = $(window).height();
+ changeLog = replaceAll(result, '\n', ' \n');
+ changeLog = changeLog.replace(/##(.*?) /g, "$1 ")
+ changeLog = changeLog.replace(/#(.*?) /g, "$1 ")
+ changeLog = changeLog.replace(/\n- (.*?) /g, "\n")
+ $('.vex-content').width(vpw-350).fadeIn(1000);
+ $('.vex-content').height(vph-350).fadeIn(1000);
+ $('#changeLogText').html(""+changeLog+"
").fadeIn(1000);
+ }});
+
+
+}
+
+function checkNewVersion(){
+ var DisplayStr = 'Checking for latest version...
';
+ $('.vex-dialog-buttons').html(DisplayStr);
+ $('.progress-bar-fill').queue(function () {
+ $(this).css('width', '100%')
+ });
+ var DisplayStrButtons = {
+ NO: {
+ text: 'Cancel',
+ type: 'button',
+ className: 'vex-dialog-button-secondary',
+ click: function yesClick () { this.close() }
+ },
+ YES: {
+ text: 'Upgrade',
+ type: 'submit',
+ className: 'vex-dialog-button-primary',
+ click: function yesClick () { }
+ }
+ }
+
+ var myDialog = vex.dialog.open({
+ unsafeMessage: DisplayStr,
+ overlayClosesOnClick: false,
+ buttons: [
+ DisplayStrButtons.NO,
+ DisplayStrButtons.YES
+ ],
+ onSubmit: function(e) {
+ e.preventDefault();
+ updateSoftware();
+ var DisplayStr1 = 'Downloading latest version...';
+ var DisplayStr2 = '
';
+ $('.vex-dialog-message').html(DisplayStr1);
+ $('.vex-dialog-buttons').html(DisplayStr2);
+ $('.progress-bar-fill').queue(function () {
+ $(this).css('width', '100%')
+ });
+ }
+ });
+
+ if (latestVersion != myGenerator["version"]) {
+ // $('.vex-dialog-message').html("A new version is available. Current Version: " + myGenerator["version"] + " New Version: " + latestVersion);
+ $('.vex-dialog-message').html("Are you sure you want to update to the latest version?");
+ } else {
+ $('.vex-dialog-message').html("Are you sure you want to upgrade?");
+ }
+}
+
+//*****************************************************************************
+// called when requesting upgrade
+//*****************************************************************************
+function updateSoftware(){
+
+ // set remote command
+ var url = baseurl.concat("updatesoftware");
+ $.ajax({
+ type: "GET",
+ url: url,
+ dataType: "json",
+ timeout: 0,
+ success: function(results){
+ /// THIS IS NOT AN EXPECTED RESPONSE!!! genserv.py is expected to restart on it's own before returning a valid value;
+ vex.closeAll();
+ GenmonAlert("An unexepected outcome occured. Genmon might not have been updated. Please verify manually or try again!");
+ },
+ error: function(XMLHttpRequest, textStatus, errorThrown){
+ var DisplayStr1 = 'Restarting...';
+ var DisplayStr2 = '
';
+ $('.vex-dialog-message').html(DisplayStr1);
+ $('.vex-dialog-buttons').html(DisplayStr2);
+ $('.progress-bar-fill').queue(function () {
+ $(this).css('width', '100%')
+ });
+ // location.reload();
+ setTimeout(function(){ vex.closeAll(); window.location.href = window.location.pathname+"?page=about"; }, 10000);
+ }
+
+
+ });
+}
+
+function submitRegisters(){
+ vex.dialog.confirm({
+ unsafeMessage: 'Send the contents of your generator registers to the developer for compatibility testing? ',
+ overlayClosesOnClick: false,
+ callback: function (value) {
+ if (value == false) {
+ return;
+ } else {
+ var url = baseurl.concat("sendregisters");
+ $.getJSON( url,
+ {},
+ function(result){});
+ }
+ }
+ });
+}
+
+function submitLogs(){
+ vex.dialog.confirm({
+ unsafeMessage: 'Send the contents of your log files to the developer? ',
+ overlayClosesOnClick: false,
+ callback: function (value) {
+ if (value == false) {
+ return;
+ } else {
+ var url = baseurl.concat("sendlogfiles");
+ $.getJSON( url,
+ {},
+ function(result){});
+ }
+ }
+ });
}
diff --git a/static/libraries.min.css b/static/libraries.min.css
old mode 100755
new mode 100644
index 0ebe4130..449e33b4
--- a/static/libraries.min.css
+++ b/static/libraries.min.css
@@ -1 +1 @@
-.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons,.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible;text-decoration:none}.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner{border:0;padding:0}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px .4em;margin:.5em 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:.4em 2.1em .4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("/images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("/images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("/images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("/images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("/images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("/images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url("/images/ui-icons_222222_256x240.png")}.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url("/images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("/images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon{background-image:url("/images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("/images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("/images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start,.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("/images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("/images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}html{margin:0;padding:0;border:0;font:inherit}body{padding:0;border:0;font:inherit}applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,td,tr,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}input,select{font:inherit;vertical-align:middle;margin:0;padding:.15em;border:1px solid #999;outline:0;border-radius:3.01px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}body{font-size:18px;font-weight:bold;font-family:Arial;background-color:white;margin:0;height:100%}html{height:100%}a{font-style:italic}h1{font-style:italic;font-size:20px}p{font-size:18px}button{font-weight:bold;font-size:16px;border-radius:3.01px;border:0;margin:0 0 0 .5em;font-family:inherit;line-height:1em;padding:.75em;background:#bbb;cursor:pointer}ul{list-style-type:none}li:hover img{-webkit-filter:invert(100%)!important}li a{display:block;color:#000;padding:8px;text-decoration:none;vertical-align:middle}li a.active{background-color:#4caf50;color:white}li a.activealarm{background-color:#de0f0f;color:white}li a.activeexercise{background-color:#415bda;color:white}li a.activeoff{background-color:#160101;color:white}li a.activemanual{background-color:#baadad;color:white}li a.activerun{background-color:#2e5d5a;color:white}li a.activerunmanual{background-color:#14423f;color:white}li a.activeservice{background-color:#d6b744;color:white}li a:hover:not(.active){background-color:#555;color:white}.alert_large,.alert_small,.log,.maintenance,.monitor,.notifications,.outage,.print10,.print24,.print60,.registers,.remove_bin,.settings,.status,.temp1,.temp2,.temp3,.temp4,.title-bg,.validation_ok,.validation_text,.wifi1,.wifi2,.wifi3,.wifi4,.fuel,.about,.addon{background:url(images/sprites.png) no-repeat}.alert_large{background-position:-317px -22px;width:64px;height:64px}.alert_small{background-position:-156px -163px;width:28px;height:28px}.log{background-position:-18px -115px;width:20px;height:20px}.maintenance{background-position:-263px -118px;width:20px;height:20px}.monitor{background-position:-165px -116px;width:20px;height:20px}.notifications{background-position:-214px -116px;width:20px;height:20px}.outage{background-position:-114px -113px;width:20px;height:20px}.print10{background-position:-107px -157px;width:36px;height:36px}.print24{background-position:-56px -156px;width:36px;height:36px}.print60{background-position:-9px -155px;width:36px;height:36px}.registers{background-position:-70px -112px;width:20px;height:20px}.remove_bin{background-position:-210px -164px;width:24px;height:24px}.settings{background-position:-266px -63px;width:20px;height:20px}.status{background-position:-216px -63px;width:20px;height:20px}.temp1{background-position:-160px -60px;width:28px;height:28px}.temp2{background-position:-111px -59px;width:28px;height:28px}.temp3{background-position:-60px -60px;width:28px;height:28px}.temp4{background-position:-12px -61px;width:28px;height:28px}.title-bg{background-position:-154px -124px;width:1px;height:28px}.validation_ok{background-position:-266px -19px;width:16px;height:16px}.validation_text{background-position:-218px -21px;width:16px;height:16px}.wifi1{background-position:-159px -12px;width:28px;height:28px}.wifi2{background-position:-108px -11px;width:28px;height:28px}.wifi3{background-position:-60px -11px;width:28px;height:28px}.wifi4{background-position:-12px -11px;width:28px;height:28px}.fuel{background-position:0 -206px;width:400px;height:189px}.about{background-position:-314px -166px;width:20px;height:20px}.addon{background-position:-264px -166px;width:20px;height:20px}.linux_small,.mqtt_small,.rpi_small,.slack_small,.twilio_small,.pushover_small,.linux,.mqtt,.pushover,.rpi,.slack,.twilio,.sms,.sms_small,.csv_small,.csv{background:url(images/addons.png) no-repeat}.linux_small{background-position:-263px -355px;width:50px;height:25px}.mqtt_small{background-position:-269px -333px;width:50px;height:12px}.rpi_small{background-position:-398px -362px;width:50px;height:15px}.slack_small{background-position:-461px -361px;width:50px;height:15px}.twilio_small{background-position:-463px -330px;width:50px;height:17px}.pushover_small{background-position:-334px -362px;width:50px;height:13px}.linux{background-position:-1px -173px;width:252px;height:125px}.mqtt{background-position:-258px -72px;width:252px;height:62px}.pushover{background-position:-255px 0;width:252px;height:63px}.rpi{background-position:0 -93px;width:252px;height:76px}.slack{background-position:-257px -146px;width:252px;height:77px}.twilio{background-position:-256px -231px;width:252px;height:83px}.sms{background-position:0 0;width:252px;height:84px}.sms_small{background-position:-332px -331px;width:50px;height:17px}.csv_small{background-position:-395px -330px;width:50px;height:18px}.csv{background-position:0 -305px;width:252px;height:93px}.greyscale{-webkit-filter:grayscale(1);filter:gray;filter:grayscale(1)}.regHistoryCanvas{height:280px;width:250px;overflow-x:hidden;overflow-y:hidden}.regHistoryCanvasTop{height:250px;width:250px;vertical-align:top}.regHistoryCanvasBottom{height:30px;width:250px;vertical-align:bottom}.regHistoryPlot{height:250px;width:250px;overflow-x:hidden;overflow-y:hidden}.regHistoryPlotCell{height:250px;width:330px;overflow-x:hidden;overflow-y:hidden}.regHistory{text-decoration:underline;display:inline;cursor:pointer}.regHistory.selection{text-decoration:none}.gaugeField{text-align:center;background-color:#e1e1e1;vertical-align:bottom;background-clip:padding-box;border-radius:20px;width:100%;height:100%}.gaugeCanvas{width:100%;height:65%}.gaugeDiv,.jsonVal{display:inline}.plotField{text-align:center;background-color:#e1e1e1;vertical-align:bottom;background-clip:padding-box;border-radius:20px;width:100%;height:100%}.kwPlotCanvas{height:70%;width:100%;overflow-x:hidden;overflow-y:hidden}.kwPlotText{font-size:10px}.kwPlotSelection{text-decoration:underline;display:inline;cursor:pointer}.kwPlotSelection.selection{text-decoration:none}.grid{margin:10px}.grid-sizer{width:180px}.grid-item{width:180px;float:left;height:200px;background:#fffff;border:0}.grid-item.is-dragging,.grid-item.ui-draggable-dragging,.grid-item.is-positioning-post-drag{background:#fff;z-index:2}.packery-drop-placeholder{outline:3px dashed #444;outline-offset:-6px;-webkit-transition:-webkit-transform .2s;transition:transform .2s}.registerTD{border:5px solid white;background-color:#aaa;vertical-align:bottom;padding:5px;background-clip:padding-box;border-radius:10px}.registerTD table{border:2px solid #aaa;height:100%}.registerTDtitle{border-bottom:1px solid #444;font-size:12px}.registerTDsubtitle{border-bottom:1px solid #444;font-size:11px}.registerTDvalMedium{font-size:14px}.registerTDvalSmall{font-size:11px}.confirmSmall{font-size:12px}.progress-bar{width:calc(100% - 6px);height:13px;background:#e0e0e0;padding:3px;border-radius:3px;box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}.progress-bar-fill{display:block;height:6px;background:#4caf50;border-radius:3px;transition:width 10s ease-in-out}.removeRow{cursor:pointer}.tripleButtonLeft{margin:0;border-radius:3px 0 0 3px}.tripleButtonCenter{margin:0;border-radius:0;border-right:1px solid #000;border-left:1px solid #000}.tripleButtonRight{margin:0;border-radius:0 3px 3px 0}.notificationEmail{width:300px;padding:8px}.printButton{cursor:pointer}.card{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);position:relative;margin:.5rem 0 1rem;background-color:#fff;-webkit-transition:-webkit-box-shadow .25s;transition:box-shadow .25s,-webkit-box-shadow .25s;border-radius:6px;width:360px}#mydisplay{padding:10px}#myDiv{margin:0;padding:0;width:100%;height:100%;overflow:auto}#navMenu{margin:0;padding:0;width:200px;background-color:#f1f1f1;height:100%;overflow:auto}#myheader,#footer{display:block;margin:0;padding:0;border:0;font:inherit;background-color:#f1f1f1;text-align:center;vertical-align:middle}#myheader{font-size:20px;height:30px}#footer{font-size:15px;height:30px}#footer.alert{background-color:#fcc}#myheader td,#footer td{vertical-align:middle}#allnotifications td,#allsettings td{padding:3px}.idealforms-field-width{width:619.3333333333334px}form.idealforms{zoom:1;line-height:1}form.idealforms:before{content:"";display:table}form.idealforms:after{content:"";display:table;clear:both}form.idealforms *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}form.idealforms .field{position:relative;float:left;clear:both;margin:.1em 0}form.idealforms label.main,form.idealforms .field>input,form.idealforms select,form.idealforms button,form.idealforms textarea,form.idealforms .field .group{float:left}form.idealforms label.main{width:120px;margin-top:.15em}form.idealforms input{margin:0;width:290px;padding:.15em;border:1px solid #999;outline:0;background:#fff;-webkit-border-radius:3.01px;border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}form.idealforms textarea{margin:0;padding:.15em;border:1px solid #999;outline:0;background:#fff;-webkit-border-radius:3.01px;border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}form.idealforms select{margin:0;width:290px;outline:0}form.idealforms .field .group{margin:0;width:290px;border:1px solid #999;outline:0;background:#fff;-webkit-border-radius:3.01px;border-radius:3.01px}form.idealforms input{-webkit-transition:background .3s ease-in-out;-moz-transition:background .3s ease-in-out;-o-transition:background .3s ease-in-out;-ms-transition:background .3s ease-in-out;transition:background .3s ease-in-out}form.idealforms textarea{width:435px}form.idealforms select{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;cursor:pointer}form.idealforms button{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;padding:.15em .5em;cursor:pointer}form.idealforms select:hover,form.idealforms button:hover{background:-webkit-linear-gradient(#fff,#eaeaea);background:-moz-linear-gradient(#fff,#eaeaea);background:-o-linear-gradient(#fff,#eaeaea);background:-ms-linear-gradient(#fff,#eaeaea);background:linear-gradient(#fff,#eaeaea)}form.idealforms select:active,form.idealforms button:active,form.idealforms select:active:focus,form.idealforms button:active:focus{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;background:#ddd}form.idealforms select:focus{outline:none;-webkit-box-shadow:0 0 1px #3f9dcc;box-shadow:0 0 1px #3f9dcc}form.idealforms button:focus{outline:none;border-color:#3f9dcc;-webkit-box-shadow:0 0 1px #3f9dcc;box-shadow:0 0 1px #3f9dcc}form.idealforms button{width:auto}form.idealforms select{padding:.15em}form.idealforms select:focus{border:1px solid #444}form.idealforms input[type="file"]{padding:0}form.idealforms .field .group{position:relative;padding:1.25em;-webkit-box-shadow:none;box-shadow:none}form.idealforms .field .group label{float:left;clear:both;padding:.15em 0}form.idealforms .field .group input,form.idealforms .field .group label{margin:0}form.idealforms .field .group input{width:auto;margin-right:.5em;-webkit-box-shadow:none;box-shadow:none}form.idealforms .field .group label{margin-right:1em}form.idealforms .field .group label:last-of-type{margin:0}form.idealforms .field.valid input{color:#18445a;background:#edf7fc;border-color:#3f9dcc}form.idealforms .field.valid select,form.idealforms .field.valid textarea,form.idealforms .field.valid .group{border-color:#3f9dcc}form.idealforms .field.invalid input{color:#430e08;background:#ffeded;border-color:#cc2a18}form.idealforms .field.invalid select,form.idealforms .field.invalid textarea,form.idealforms .field.invalid .group{border-color:#cc2a18}form.idealforms .field.valid .group,form.idealforms .field.invalid .group,form.idealforms .field.valid textarea,form.idealforms .field.invalid textarea{color:inherit;background:none}form.idealforms .field.valid select,form.idealforms .field.invalid select{color:inherit}form.idealforms .field.valid select,form.idealforms .field.invalid select{background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd)}form.idealforms .field .icon{position:absolute;width:16px;height:16px;top:50%;left:100%;margin-top:-8px;margin-left:8px;background:url("../images/sprites.png") no-repeat;cursor:pointer}form.idealforms .field.invalid .icon{background-position:-218px -21px;width:16px;height:16px}form.idealforms .field.valid .icon{background-position:-266px -19px;width:16px;height:16px;cursor:default}form.idealforms .field.invalid .group input,form.idealforms .field.valid .group input{border:0;outline:0;-webkit-box-shadow:none;box-shadow:none}form.idealforms .error{display:none;position:absolute;z-index:1;left:100%;top:50%;padding:1em .5em;width:193.33333333333334px;margin-left:40px;background:#faa;background:-webkit-linear-gradient(#ffaaaa,#ffcccc);background:-moz-linear-gradient(#ffaaaa,#ffcccc);background:-o-linear-gradient(#ffaaaa,#ffcccc);background:-ms-linear-gradient(#ffaaaa,#ffcccc);background:linear-gradient(#ffaaaa,#ffcccc);color:#333;font-size:70%;font-weight:bold;line-height:1;border:1px solid #faa;-webkit-border-radius:0 3.01px 3.01px 3.01px;border-radius:0 3.01px 3.01px 3.01px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.15);box-shadow:0 1px 1px rgba(0,0,0,0.15)}form.idealforms .error:after{content:"";position:absolute;z-index:-1;top:-1px;left:-.7em;border-width:.7em;border-style:solid;border-color:transparent;border-top-color:#faa}form.idealforms .tooltip{display:none;position:absolute;z-index:1;left:100%;top:50%;padding:1em .5em;width:253.33333333333334px;margin-left:40px;background:#aaa;background:-webkit-linear-gradient(#aaaaaa,#cccccc);background:-moz-linear-gradient(#aaaaaa,#cccccc);background:-o-linear-gradient(#aaaaaa,#cccccc);background:-ms-linear-gradient(#aaaaaa,#cccccc);background:linear-gradient(#aaaaaa,#cccccc);color:#333;font-size:70%;font-weight:bold;line-height:1;border:1px solid #aaa;-webkit-border-radius:0 3.01px 3.01px 3.01px;border-radius:0 3.01px 3.01px 3.01px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.15);box-shadow:0 1px 1px rgba(0,0,0,0.15)}form.idealforms .tooltip:after{content:"";position:absolute;z-index:-1;top:-1px;left:-.7em;border-width:.7em;border-style:solid;border-color:transparent;border-top-color:#aaa}form.idealforms .idealforms-field-checkbox .icon,form.idealforms .idealforms-field-radio .icon,form.idealforms .idealforms-field-textarea .icon{top:8px;margin-top:0}form.idealforms .idealforms-field-checkbox .error,form.idealforms .idealforms-field-radio .error,form.idealforms .idealforms-field-textarea .error{top:1.25em}.idealsteps-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.idealsteps-step{display:none;zoom:1}.idealsteps-step:before{content:"";display:table}.idealsteps-step:after{content:"";display:table;clear:both}form.idealforms .ideal-file-wrap{float:left}form.idealforms .ideal-file-filename{float:left;width:204px;height:100%;-webkit-border-radius:0;border-radius:0;-webkit-border-top-left-radius:3.01px;border-top-left-radius:3.01px;-webkit-border-bottom-left-radius:3.01px;border-bottom-left-radius:3.01px}form.idealforms .ideal-file-upload{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;padding:.15em .5em;cursor:pointer;overflow:visible;position:relative;float:right;left:-1px;width:87px;padding-left:0;padding-right:0;text-align:center;-webkit-border-radius:0;border-radius:0;-webkit-border-top-right-radius:3.01px;border-top-right-radius:3.01px;-webkit-border-bottom-right-radius:3.01px;border-bottom-right-radius:3.01px}form.idealforms .ideal-file-upload:hover{background:-webkit-linear-gradient(#fff,#eaeaea);background:-moz-linear-gradient(#fff,#eaeaea);background:-o-linear-gradient(#fff,#eaeaea);background:-ms-linear-gradient(#fff,#eaeaea);background:linear-gradient(#fff,#eaeaea)}form.idealforms .ideal-file-upload:active,form.idealforms .ideal-file-upload:active:focus{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;background:#ddd}form.idealforms .ideal-file-upload:focus{outline:none;border-color:#3f9dcc;-webkit-box-shadow:0 0 1px #3f9dcc;box-shadow:0 0 1px #3f9dcc}form.idealforms.adaptive .ideal-file-wrap{width:100%}form.idealforms.adaptive .ideal-file-filename{width:70%}form.idealforms.adaptive .ideal-file-upload{width:30%}.lcs_wrap{display:inline-block;direction:ltr;height:28px;vertical-align:middle}.lcs_wrap input{display:none}.lcs_switch{display:inline-block;position:relative;width:73px;height:28px;border-radius:30px;background:#ddd;overflow:hidden;cursor:pointer;-webkit-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.lcs_cursor{display:inline-block;position:absolute;top:3px;width:22px;height:22px;border-radius:100%;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,0.2),0 3px 4px 0 rgba(0,0,0,0.1);z-index:10;-webkit-transition:all .2s linear;-ms-transition:all .2s linear;transition:all .2s linear}.lcs_label{font-family:"Trebuchet MS",Helvetica,sans-serif;font-size:12px;letter-spacing:1px;line-height:18px;color:#fff;font-weight:bold;position:absolute;width:33px;top:5px;overflow:hidden;text-align:center;opacity:0;-webkit-transition:all .2s ease-in-out .1s;-ms-transition:all .2s ease-in-out .1s;transition:all .2s ease-in-out .1s}.lcs_label.lcs_label_on{left:-70px;z-index:6}.lcs_label.lcs_label_off{right:-70px;z-index:5}.lcs_switch.lcs_on{background:-webkit-linear-gradient(#439547,#4caf50);background:linear-gradient(#439547,#4caf50);text-shadow:0 0 8px rgba(0,0,0,0.5);border-radius:50px;box-shadow:inset 2px 2px 5px rgba(0,0,0,0.4)}.lcs_switch.lcs_on .lcs_cursor{left:48px}.lcs_switch.lcs_on .lcs_label_on{left:10px;opacity:1}.lcs_switch.lcs_off{background:#b2b2b2;box-shadow:0 0 2px #a4a4a4 inset;border-radius:50px}.lcs_switch.lcs_off .lcs_cursor{left:3px}.lcs_switch.lcs_off .lcs_label_off{right:10px;opacity:1}.lcs_switch.lcs_disabled{opacity:.65;filter:alpha(opacity=65);cursor:default}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,0.06)!important;border:1px solid #999;outline:0;border-radius:3.01px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:5px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:bold;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 0 0;border-left:1px solid #439646;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:#00578d}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:#aaa}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #999;outline:0;border-radius:3.01px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);padding:4px;display:inline-block;width:300px;margin-top:2px;height:27px;overflow:hidden;position:relative;z-index:1}.selectize-control.multi .selectize-input.has-items{padding:5px 8px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#4caf50;color:#fff;border:1px solid #439646}.selectize-control.multi .selectize-input>div.active{background:#444;color:#fff;border:1px solid #3a823c}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#fff;background:#d2d2d2;border:1px solid #aaa}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0 1px!important;text-indent:0!important;border:0 none!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #999;background:#fff;margin:-1px 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown [data-selectable],.selectize-dropdown .optgroup-header{padding:5px 8px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#ccc;color:#495c68}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;-webkit-overflow-scrolling:touch}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0;border-color:#808080 transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #808080}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}.selectize-control.multi .selectize-input.has-items{padding-left:5px;padding-right:5px}.selectize-control.multi .selectize-input.disabled [data-value]{color:#999;text-shadow:none;background:none;-webkit-box-shadow:none;box-shadow:none;border-color:#439646}.selectize-control.multi .selectize-input.disabled [data-value] .remove{border-color:#439646;background:none}.selectize-control.multi .selectize-input [data-value]{text-shadow:0 1px 0 rgba(0,51,83,0.3);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#439646;background-image:-moz-linear-gradient(top,#4caf50,#439646);background-image:-webkit-gradient(linear,0 0,0 100%,from(#4caf50),to(#439646));background-image:-webkit-linear-gradient(top,#4caf50,#439646);background-image:-o-linear-gradient(top,#4caf50,#439646);background-image:linear-gradient(to bottom,#4caf50,#439646);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4caf50',endColorstr='#ff439646',GradientType=0);-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03);box-shadow:0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03)}.selectize-control.multi .selectize-input [data-value].active{background-color:#3a823c;background-image:-moz-linear-gradient(top,#439646,#3a823c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#439646),to(#3a823c));background-image:-webkit-linear-gradient(top,#439646,#3a823c);background-image:-o-linear-gradient(top,#439646,#3a823c);background-image:linear-gradient(to bottom,#439646,#3a823c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff439646',endColorstr='#ff3a823c',GradientType=0)}.selectize-control.single .selectize-input{-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.05),inset 0 1px 0 rgba(255,255,255,0.8);box-shadow:0 1px 0 rgba(0,0,0,0.05),inset 0 1px 0 rgba(255,255,255,0.8);background-color:#f9f9f9;background-image:-moz-linear-gradient(top,#fefefe,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fefefe),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fefefe,#f2f2f2);background-image:-o-linear-gradient(top,#fefefe,#f2f2f2);background-image:linear-gradient(to bottom,#fefefe,#f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffefefe',endColorstr='#fff2f2f2',GradientType=0);border-color:#b8b8b8}.selectize-dropdown.single{border-color:#b8b8b8}.selectize-dropdown .optgroup-header{padding-top:7px;font-weight:bold;font-size:.85em}.selectize-dropdown .optgroup{border-top:1px solid #f0f0f0}.selectize-dropdown .optgroup:first-child{border-top:0 none}@-webkit-keyframes vex-fadein{0%{opacity:0}to{opacity:1}}@keyframes vex-fadein{0%{opacity:0}to{opacity:1}}@-webkit-keyframes vex-fadeout{0%{opacity:1}to{opacity:0}}@keyframes vex-fadeout{0%{opacity:1}to{opacity:0}}@-webkit-keyframes vex-rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vex-rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.vex,.vex *,.vex *:before,.vex *:after{-moz-box-sizing:border-box;box-sizing:border-box}.vex{position:fixed;overflow:auto;-webkit-overflow-scrolling:touch;z-index:1111;top:0;right:0;bottom:0;left:0}.vex-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.vex-overlay{-webkit-animation:vex-fadein .5s;animation:vex-fadein .5s;position:fixed;z-index:1111;background:rgba(0,0,0,0.4);top:0;right:0;bottom:0;left:0}.vex-overlay.vex-closing{-webkit-animation:vex-fadeout .5s forwards;animation:vex-fadeout .5s forwards}.vex-content{-webkit-animation:vex-fadein .5s;animation:vex-fadein .5s;background:#fff}.vex.vex-closing .vex-content{-webkit-animation:vex-fadeout .5s forwards;animation:vex-fadeout .5s forwards}.vex-close:before{font-family:Arial,sans-serif;content:"\0000d7"}.vex-dialog-form{margin:0}.vex-dialog-button{text-rendering:optimizeLegibility;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.vex-loading-spinner{-webkit-animation:vex-rotation .7s linear infinite;animation:vex-rotation .7s linear infinite;box-shadow:0 0 1em rgba(0,0,0,0.1);position:fixed;z-index:1112;margin:auto;top:0;right:0;bottom:0;left:0;height:2em;width:2em;background:#fff}body.vex-open{overflow:hidden}.ch{display:table!important;clear:both}.ch-month,.ch-week-labels{font-size:0;display:inline-block;white-space:normal;margin:0 4px}.ch-week{display:inline-block;width:11px;box-sizing:content-box}.ch-day-labels{display:inline-block;box-sizing:content-box;width:inherit}.ch-month-label{text-align:center;font-size:12px;margin-top:10px;margin-bottom:10px}.ch-day-label{text-align:center;font-size:10px;display:block;margin:0;line-height:11px;box-sizing:content-box}.ch-day{display:inline-block;width:9px;height:9px;border:1px solid #f3f6f8;background-color:#f1f1f1;margin:0;box-sizing:content-box}.ch-day.is-outside-month,.ch-lvl.is-outside-month,.ch-day.is-outside-month:hover,.ch-lvl.is-outside-month:hover{background-color:transparent;border-color:transparent}.ch-day.lvl-0,.ch-lvl.lvl-0{background-color:#c8d7e1}.ch-day.is-after-today,.ch-lvl.is-after-today{background-color:#d9e3ea}.ch-day.lvl-1,.ch-lvl.lvl-1{background-color:#a6c96a}.ch-day.lvl-2,.ch-lvl.lvl-2{background-color:#5cb85c}.ch-day.lvl-3,.ch-lvl.lvl-3{background-color:#009e47}.ch-day.lvl-4,.ch-lvl.lvl-4{background-color:#00753a}.ch-day:hover,.ch-lvl:hover{border-color:#89a6ba}.ch-legend{padding-top:10px;text-align:right}.ch-legend-left{text-align:left!important}.ch-legend-center{text-align:center!important}.ch-legend:after{content:".";display:block;height:0;width:0;clear:both;visibility:hidden}.ch-lvls{display:inline-block;margin:0;list-style-type:none;padding:2px 9px 0 5px}.ch-lvl{width:10px;height:10px;float:left;margin-left:3px}.blue-1{background-color:#ffc!important}.earth-1{background-color:#f4ec15!important}.electric-1{background-color:#f9d824!important}.viridis-1{background-color:#dde218!important}.picknick-1{background-color:#dd2a91!important}.green-1{background-color:#d1be5a!important}.teal-1{background-color:#becfb6!important}.red-1{background-color:#deb7af!important}.blue-2{background-color:#41b6c4!important}.earth-2{background-color:#86bf76!important}.electric-2{background-color:#f38647!important}.viridis-2{background-color:#42bd70!important}.picknick-2{background-color:#b14dec!important}.green-2{background-color:#5f900b!important}.teal-2{background-color:#7db28f!important}.red-2{background-color:#cf8371!important}.blue-3{background-color:#0868ac!important}.earth-3{background-color:#117bd7!important}.electric-3{background-color:#8e0ca3!important}.viridis-3{background-color:#355c8c!important}.picknick-3{background-color:#2e8ebf!important}.green-3{background-color:#39811b!important}.teal-3{background-color:#107d79!important}.red-3{background-color:#b63b25!important}.blue-4{background-color:#253494!important}.earth-4{background-color:#363299!important}.electric-4{background-color:#2e0495!important}.viridis-4{background-color:#471164!important}.picknick-4{background-color:#139863!important}.green-4{background-color:#0d562c!important}.teal-4{background-color:#1c475d!important}.red-4{background-color:#90131c!important}.genmon-1{background-color:#090!important}.genmon-2{background-color:#f90!important}.genmon-3{background-color:#c00!important}.genmon-4{background-color:#333!important}.jqplot-xaxis,.jqplot-xaxis-label{margin-top:10px}.jqplot-x2axis,.jqplot-x2axis-label{margin-bottom:10px}.jqplot-target{position:relative;color:#666;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:1em}.jqplot-axis{font-size:.75em}.jqplot-yaxis{margin-right:10px}.jqplot-y2axis,.jqplot-y3axis,.jqplot-y4axis,.jqplot-y5axis,.jqplot-y6axis,.jqplot-y7axis,.jqplot-y8axis,.jqplot-y9axis,.jqplot-yMidAxis{margin-left:10px;margin-right:10px}.jqplot-axis-tick,.jqplot-x2axis-tick,.jqplot-xaxis-tick,.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{position:absolute;white-space:pre}.jqplot-yMidAxis-tick{position:absolute}.jqplot-yaxis-tick{position:absolute;white-space:pre}.jqplot-xaxis-tick{top:0;left:15px;vertical-align:top}.jqplot-x2axis-tick{bottom:0;left:15px;vertical-align:bottom}.jqplot-yaxis-tick{right:0;top:15px;text-align:right}.jqplot-yaxis-tick.jqplot-breakTick{right:-20px;margin-right:0;padding:1px 5px;z-index:2;font-size:1.5em}.jqplot-x2axis-label,.jqplot-xaxis-label,.jqplot-yMidAxis-label,.jqplot-yaxis-label{font-size:11pt;position:absolute}.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{left:0;top:15px;text-align:left}.jqplot-yMidAxis-tick{text-align:center;white-space:nowrap}.jqplot-yaxis-label{margin-right:10px}.jqplot-y2axis-label,.jqplot-y3axis-label,.jqplot-y4axis-label,.jqplot-y5axis-label,.jqplot-y6axis-label,.jqplot-y7axis-label,.jqplot-y8axis-label,.jqplot-y9axis-label{font-size:11pt;margin-left:10px;position:absolute}.jqplot-meterGauge-tick{font-size:.75em;color:#999}.jqplot-meterGauge-label{font-size:1em;color:#999}table.jqplot-table-legend{margin:12px}table.jqplot-cursor-legend,table.jqplot-table-legend{background-color:rgba(255,255,255,.6);border:1px solid #ccc;position:absolute;font-size:.75em}td.jqplot-table-legend{vertical-align:middle}td.jqplot-seriesToggle:active,td.jqplot-seriesToggle:hover{cursor:pointer}.jqplot-table-legend .jqplot-series-hidden{text-decoration:line-through}div.jqplot-table-legend-swatch-outline{border:1px solid #ccc;padding:1px}div.jqplot-table-legend-swatch{width:0;height:0;border-width:5px 6px;border-style:solid}.jqplot-title{top:0;left:0;padding-bottom:.5em;font-size:1.2em}table.jqplot-cursor-tooltip{border:1px solid #ccc;font-size:.75em}.jqplot-canvasOverlay-tooltip,.jqplot-cursor-tooltip,.jqplot-highlighter-tooltip{border:1px solid #ccc;font-size:.75em;white-space:nowrap;background:rgba(208,208,208,.5);padding:1px}.jqplot-point-label{font-size:.75em;z-index:2}td.jqplot-cursor-legend-swatch{vertical-align:middle;text-align:center}div.jqplot-cursor-legend-swatch{width:1.2em;height:.7em}.jqplot-error{text-align:center}.jqplot-error-message{position:relative;top:46%;display:inline-block}div.jqplot-bubble-label{font-size:.8em;padding-left:2px;padding-right:2px;color:#333}div.jqplot-bubble-label.jqplot-bubble-label-highlight{background:rgba(90%,90%,90%,.7)}div.jqplot-noData-container{text-align:center;background-color:rgba(96%,96%,96%,.3)}.tooltipster-fall,.tooltipster-grow.tooltipster-show{-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto;font-size:12px}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-fall.tooltipster-initial{top:0!important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-slide.tooltipster-initial{left:-40px!important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}to{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading .4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}to{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating .6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}to{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling .6s}.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#565656;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#565656;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#565656;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#565656;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#000}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#000}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#000}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#000}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}@-webkit-keyframes vex-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes vex-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes vex-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes vex-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@-webkit-keyframes vex-pulse{0%{box-shadow:inset 0 0 0 300px transparent}70%{box-shadow:inset 0 0 0 300px rgba(255,255,255,0.25)}to{box-shadow:inset 0 0 0 300px transparent}}@keyframes vex-pulse{0%{box-shadow:inset 0 0 0 300px transparent}70%{box-shadow:inset 0 0 0 300px rgba(255,255,255,0.25)}to{box-shadow:inset 0 0 0 300px transparent}}.vex.vex-theme-os{padding-top:160px;padding-bottom:160px}.vex.vex-theme-os.vex-closing .vex-content{-webkit-animation:vex-flyout .5s forwards;animation:vex-flyout .5s forwards}.vex.vex-theme-os .vex-content{-webkit-animation:vex-flyin .5s;animation:vex-flyin .5s;border-radius:5px;box-shadow:inset 0 1px #a6a6a6,0 0 0 1px rgba(0,0,0,0.08);font-family:"Helvetica Neue",sans-serif;border-top:20px solid #bbb;background:#f0f0f0;color:#444;padding:1em;position:relative;margin:0 auto;max-width:100%;width:450px;font-size:1.1em;line-height:1.5em}.vex.vex-theme-os .vex-content h1,.vex.vex-theme-os .vex-content h2,.vex.vex-theme-os .vex-content h3,.vex.vex-theme-os .vex-content h4,.vex.vex-theme-os .vex-content h5,.vex.vex-theme-os .vex-content h6,.vex.vex-theme-os .vex-content p,.vex.vex-theme-os .vex-content ul,.vex.vex-theme-os .vex-content li{color:inherit}.vex.vex-theme-os .vex-close{border-radius:0 5px 0 0;position:absolute;top:0;right:0;cursor:pointer}.vex.vex-theme-os .vex-close:before{border-radius:3px;position:absolute;content:"\0000d7";font-size:26px;font-weight:normal;line-height:31px;height:30px;width:30px;text-align:center;top:3px;right:3px;color:#bbb;background:transparent}.vex.vex-theme-os .vex-close:hover:before,.vex.vex-theme-os .vex-close:active:before{color:#777;background:#e0e0e0}.vex.vex-theme-os .vex-dialog-form .vex-dialog-message{margin-bottom:.5em}.vex.vex-theme-os .vex-dialog-form .vex-dialog-input{margin-bottom:1em}.vex.vex-theme-os .vex-dialog-form .vex-dialog-input select,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"]{border-radius:3px;background:#fff;width:100%;padding:.25em .67em;border:0;font-family:inherit;font-weight:inherit;font-size:inherit;min-height:2.5em;margin:0 0 .25em}.vex.vex-theme-os .vex-dialog-form .vex-dialog-input select:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"]:focus{box-shadow:inset 0 0 0 1px #3288e6;outline:none}.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons{*zoom:1}.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons:after{content:"";display:table;clear:both}.vex.vex-theme-os .vex-dialog-button{border-radius:3px;border:0;float:right;margin:0 0 0 .5em;font-family:Arial;font-size:16px;line-height:1em;padding:.75em}.vex.vex-theme-os .vex-dialog-button.vex-last{margin-left:0}.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-primary{background:#4caf50;color:#fff}.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-secondary{background:#bbb;color:#444}.vex-loading-spinner.vex-theme-os{box-shadow:0 0 0 1px rgba(0,0,0,0.2),0 0 .5em rgba(0,0,0,0.2);border-radius:100%;background:rgba(255,255,255,0.2);width:0;height:0;border:1.2em solid #bbb;border-top-color:#f0f0f0;border-bottom-color:#f0f0f0}
\ No newline at end of file
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse;clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons,.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible;text-decoration:none}.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner{border:0;padding:0}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px .4em;margin:.5em 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:.4em 2.1em .4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("/images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("/images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("/images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("/images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("/images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("/images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url("/images/ui-icons_222222_256x240.png")}.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url("/images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("/images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon{background-image:url("/images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("/images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("/images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start,.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("/images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("/images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}html{margin:0;padding:0;border:0;font:inherit}body{padding:0;border:0;font:inherit}applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,td,tr,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}input,select{font:inherit;vertical-align:middle;margin:0;padding:.15em;border:1px solid #999;outline:0;border-radius:3.01px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}body{font-size:18px;font-weight:bold;font-family:Arial;background-color:white;margin:0;height:100%}html{height:100%}a{font-style:italic}h1{font-style:italic;font-size:20px}p{font-size:18px}button{font-weight:bold;font-size:16px;border-radius:3.01px;border:0;margin:0 0 0 .5em;font-family:inherit;line-height:1em;padding:.75em;background:#bbb;cursor:pointer}ul{list-style-type:none}li:hover img{-webkit-filter:invert(100%)!important}li a{display:block;color:#000;padding:8px;text-decoration:none;vertical-align:middle}li a.active{background-color:#4caf50;color:white}li a.activealarm{background-color:#de0f0f;color:white}li a.activeexercise{background-color:#415bda;color:white}li a.activeoff{background-color:#160101;color:white}li a.activemanual{background-color:#baadad;color:white}li a.activerun{background-color:#2e5d5a;color:white}li a.activerunmanual{background-color:#14423f;color:white}li a.activeservice{background-color:#d6b744;color:white}li a:hover:not(.active){background-color:#555;color:white}.alert_large,.alert_small,.log,.maintenance,.monitor,.notifications,.outage,.print10,.print24,.print60,.registers,.remove_bin,.settings,.status,.temp1,.temp2,.temp3,.temp4,.title-bg,.validation_ok,.validation_text,.wifi1,.wifi2,.wifi3,.wifi4,.fuel,.about,.addon{background:url(images/sprites.png) no-repeat}.alert_large{background-position:-317px -22px;width:64px;height:64px}.alert_small{background-position:-156px -163px;width:28px;height:28px}.log{background-position:-18px -115px;width:20px;height:20px}.maintenance{background-position:-263px -118px;width:20px;height:20px}.monitor{background-position:-165px -116px;width:20px;height:20px}.notifications{background-position:-214px -116px;width:20px;height:20px}.outage{background-position:-114px -113px;width:20px;height:20px}.print10{background-position:-107px -157px;width:36px;height:36px}.print24{background-position:-56px -156px;width:36px;height:36px}.print60{background-position:-9px -155px;width:36px;height:36px}.registers{background-position:-70px -112px;width:20px;height:20px}.remove_bin{background-position:-210px -164px;width:24px;height:24px}.settings{background-position:-266px -63px;width:20px;height:20px}.status{background-position:-216px -63px;width:20px;height:20px}.temp1{background-position:-160px -60px;width:28px;height:28px}.temp2{background-position:-111px -59px;width:28px;height:28px}.temp3{background-position:-60px -60px;width:28px;height:28px}.temp4{background-position:-12px -61px;width:28px;height:28px}.title-bg{background-position:-154px -124px;width:1px;height:28px}.validation_ok{background-position:-266px -19px;width:16px;height:16px}.validation_text{background-position:-218px -21px;width:16px;height:16px}.wifi1{background-position:-159px -12px;width:28px;height:28px}.wifi2{background-position:-108px -11px;width:28px;height:28px}.wifi3{background-position:-60px -11px;width:28px;height:28px}.wifi4{background-position:-12px -11px;width:28px;height:28px}.fuel{background-position:0 -206px;width:400px;height:189px}.about{background-position:-314px -166px;width:20px;height:20px}.addon{background-position:-264px -166px;width:20px;height:20px}.linux_small,.mqtt_small,.rpi_small,.slack_small,.twilio_small,.pushover_small,.linux,.mqtt,.pushover,.rpi,.slack,.twilio,.sms,.sms_small,.csv_small,.csv{background:url(images/addons.png) no-repeat}.linux_small{background-position:-263px -355px;width:50px;height:25px}.mqtt_small{background-position:-269px -333px;width:50px;height:12px}.rpi_small{background-position:-398px -362px;width:50px;height:15px}.slack_small{background-position:-461px -361px;width:50px;height:15px}.twilio_small{background-position:-463px -330px;width:50px;height:17px}.pushover_small{background-position:-334px -362px;width:50px;height:13px}.linux{background-position:-1px -173px;width:252px;height:125px}.mqtt{background-position:-258px -72px;width:252px;height:62px}.pushover{background-position:-255px 0;width:252px;height:63px}.rpi{background-position:0 -93px;width:252px;height:76px}.slack{background-position:-257px -146px;width:252px;height:77px}.twilio{background-position:-256px -231px;width:252px;height:83px}.sms{background-position:0 0;width:252px;height:84px}.sms_small{background-position:-332px -331px;width:50px;height:17px}.csv_small{background-position:-395px -330px;width:50px;height:18px}.csv{background-position:0 -305px;width:252px;height:93px}.greyscale{-webkit-filter:grayscale(1);filter:gray;filter:grayscale(1)}.regHistoryCanvas{height:280px;width:250px;overflow-x:hidden;overflow-y:hidden}.regHistoryCanvasTop{height:250px;width:250px;vertical-align:top}.regHistoryCanvasBottom{height:30px;width:250px;vertical-align:bottom}.regHistoryPlot{height:250px;width:250px;overflow-x:hidden;overflow-y:hidden}.regHistoryPlotCell{height:250px;width:330px;overflow-x:hidden;overflow-y:hidden}.regHistory{text-decoration:underline;display:inline;cursor:pointer}.regHistory.selection{text-decoration:none}.gaugeField{text-align:center;background-color:#e1e1e1;vertical-align:bottom;background-clip:padding-box;border-radius:20px;width:100%;height:100%}.gaugeCanvas{width:100%;height:65%}.gaugeDiv,.jsonVal{display:inline}.plotField{text-align:center;background-color:#e1e1e1;vertical-align:bottom;background-clip:padding-box;border-radius:20px;width:100%;height:100%}.kwPlotCanvas{height:70%;width:100%;overflow-x:hidden;overflow-y:hidden}.kwPlotText{font-size:10px}.kwPlotSelection{text-decoration:underline;display:inline;cursor:pointer}.kwPlotSelection.selection{text-decoration:none}.grid{margin:10px}.grid-sizer{width:180px}.grid-item{width:180px;float:left;height:200px;background:#fffff;border:0}.grid-item.is-dragging,.grid-item.ui-draggable-dragging,.grid-item.is-positioning-post-drag{background:#fff;z-index:2}.packery-drop-placeholder{outline:3px dashed #444;outline-offset:-6px;-webkit-transition:-webkit-transform .2s;transition:transform .2s}.registerTD{border:5px solid white;background-color:#aaa;vertical-align:bottom;padding:5px;background-clip:padding-box;border-radius:10px}.registerTD table{border:2px solid #aaa;height:100%}.registerTDtitle{border-bottom:1px solid #444;font-size:12px}.registerTDsubtitle{border-bottom:1px solid #444;font-size:11px}.registerTDvalMedium{font-size:14px}.registerTDvalSmall{font-size:11px}.confirmSmall{font-size:12px}.progress-bar{width:calc(100% - 6px);height:13px;background:#e0e0e0;padding:3px;border-radius:3px;box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}.progress-bar-fill{display:block;height:6px;background:#4caf50;border-radius:3px;transition:width 10s ease-in-out}.removeRow{cursor:pointer}.tripleButtonLeft{margin:0;border-radius:3px 0 0 3px}.tripleButtonCenter{margin:0;border-radius:0;border-right:1px solid #000;border-left:1px solid #000}.tripleButtonRight{margin:0;border-radius:0 3px 3px 0}.notificationEmail{width:300px;padding:8px}.printButton{cursor:pointer}.card{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);position:relative;margin:.5rem 0 1rem;background-color:#fff;-webkit-transition:-webkit-box-shadow .25s;transition:box-shadow .25s,-webkit-box-shadow .25s;border-radius:6px;width:360px}.aboutInfo{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);position:relative;margin:.5rem 0 1rem;-webkit-transition:-webkit-box-shadow .25s;transition:box-shadow .25s,-webkit-box-shadow .25s;border-radius:6px;font-size:16px;width:50%;background-color:#f1f1f1}#mydisplay{padding:10px}#myDiv{margin:0;padding:0;width:100%;height:100%;overflow:auto}#navMenu{margin:0;padding:0;width:200px;background-color:#f1f1f1;height:100%;overflow:auto}#myheader,#footer{display:block;margin:0;padding:0;border:0;font:inherit;background-color:#f1f1f1;text-align:center;vertical-align:middle}#myheader{font-size:20px;height:30px}#footer{font-size:15px;height:30px}#footer.alert{background-color:#fcc}#myheader td,#footer td{vertical-align:middle}#allnotifications td,#allsettings td{padding:3px}.idealforms-field-width{width:619.3333333333334px}form.idealforms{zoom:1;line-height:1}form.idealforms:before{content:"";display:table}form.idealforms:after{content:"";display:table;clear:both}form.idealforms *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}form.idealforms .field{position:relative;float:left;clear:both;margin:.1em 0}form.idealforms label.main,form.idealforms .field>input,form.idealforms select,form.idealforms button,form.idealforms textarea,form.idealforms .field .group{float:left}form.idealforms label.main{width:120px;margin-top:.15em}form.idealforms input{margin:0;width:290px;padding:.15em;border:1px solid #999;outline:0;background:#fff;-webkit-border-radius:3.01px;border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}form.idealforms textarea{margin:0;padding:.15em;border:1px solid #999;outline:0;background:#fff;-webkit-border-radius:3.01px;border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}form.idealforms select{margin:0;width:290px;outline:0}form.idealforms .field .group{margin:0;width:290px;border:1px solid #999;outline:0;background:#fff;-webkit-border-radius:3.01px;border-radius:3.01px}form.idealforms input{-webkit-transition:background .3s ease-in-out;-moz-transition:background .3s ease-in-out;-o-transition:background .3s ease-in-out;-ms-transition:background .3s ease-in-out;transition:background .3s ease-in-out}form.idealforms textarea{width:435px}form.idealforms select{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;cursor:pointer}form.idealforms button{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;padding:.15em .5em;cursor:pointer}form.idealforms select:hover,form.idealforms button:hover{background:-webkit-linear-gradient(#fff,#eaeaea);background:-moz-linear-gradient(#fff,#eaeaea);background:-o-linear-gradient(#fff,#eaeaea);background:-ms-linear-gradient(#fff,#eaeaea);background:linear-gradient(#fff,#eaeaea)}form.idealforms select:active,form.idealforms button:active,form.idealforms select:active:focus,form.idealforms button:active:focus{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;background:#ddd}form.idealforms select:focus{outline:none;-webkit-box-shadow:0 0 1px #3f9dcc;box-shadow:0 0 1px #3f9dcc}form.idealforms button:focus{outline:none;border-color:#3f9dcc;-webkit-box-shadow:0 0 1px #3f9dcc;box-shadow:0 0 1px #3f9dcc}form.idealforms button{width:auto}form.idealforms select{padding:.15em}form.idealforms select:focus{border:1px solid #444}form.idealforms input[type="file"]{padding:0}form.idealforms .field .group{position:relative;padding:1.25em;-webkit-box-shadow:none;box-shadow:none}form.idealforms .field .group label{float:left;clear:both;padding:.15em 0}form.idealforms .field .group input,form.idealforms .field .group label{margin:0}form.idealforms .field .group input{width:auto;margin-right:.5em;-webkit-box-shadow:none;box-shadow:none}form.idealforms .field .group label{margin-right:1em}form.idealforms .field .group label:last-of-type{margin:0}form.idealforms .field.valid input{color:#18445a;background:#edf7fc;border-color:#3f9dcc}form.idealforms .field.valid select,form.idealforms .field.valid textarea,form.idealforms .field.valid .group{border-color:#3f9dcc}form.idealforms .field.invalid input{color:#430e08;background:#ffeded;border-color:#cc2a18}form.idealforms .field.invalid select,form.idealforms .field.invalid textarea,form.idealforms .field.invalid .group{border-color:#cc2a18}form.idealforms .field.valid .group,form.idealforms .field.invalid .group,form.idealforms .field.valid textarea,form.idealforms .field.invalid textarea{color:inherit;background:none}form.idealforms .field.valid select,form.idealforms .field.invalid select{color:inherit}form.idealforms .field.valid select,form.idealforms .field.invalid select{background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd)}form.idealforms .field .icon{position:absolute;width:16px;height:16px;top:50%;left:100%;margin-top:-8px;margin-left:8px;background:url("../images/sprites.png") no-repeat;cursor:pointer}form.idealforms .field.invalid .icon{background-position:-218px -21px;width:16px;height:16px}form.idealforms .field.valid .icon{background-position:-266px -19px;width:16px;height:16px;cursor:default}form.idealforms .field.invalid .group input,form.idealforms .field.valid .group input{border:0;outline:0;-webkit-box-shadow:none;box-shadow:none}form.idealforms .error{display:none;position:absolute;z-index:1;left:100%;top:50%;padding:1em .5em;width:193.33333333333334px;margin-left:40px;background:#faa;background:-webkit-linear-gradient(#ffaaaa,#ffcccc);background:-moz-linear-gradient(#ffaaaa,#ffcccc);background:-o-linear-gradient(#ffaaaa,#ffcccc);background:-ms-linear-gradient(#ffaaaa,#ffcccc);background:linear-gradient(#ffaaaa,#ffcccc);color:#333;font-size:70%;font-weight:bold;line-height:1;border:1px solid #faa;-webkit-border-radius:0 3.01px 3.01px 3.01px;border-radius:0 3.01px 3.01px 3.01px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.15);box-shadow:0 1px 1px rgba(0,0,0,0.15)}form.idealforms .error:after{content:"";position:absolute;z-index:-1;top:-1px;left:-.7em;border-width:.7em;border-style:solid;border-color:transparent;border-top-color:#faa}form.idealforms .tooltip{display:none;position:absolute;z-index:1;left:100%;top:50%;padding:1em .5em;width:253.33333333333334px;margin-left:40px;background:#aaa;background:-webkit-linear-gradient(#aaaaaa,#cccccc);background:-moz-linear-gradient(#aaaaaa,#cccccc);background:-o-linear-gradient(#aaaaaa,#cccccc);background:-ms-linear-gradient(#aaaaaa,#cccccc);background:linear-gradient(#aaaaaa,#cccccc);color:#333;font-size:70%;font-weight:bold;line-height:1;border:1px solid #aaa;-webkit-border-radius:0 3.01px 3.01px 3.01px;border-radius:0 3.01px 3.01px 3.01px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.15);box-shadow:0 1px 1px rgba(0,0,0,0.15)}form.idealforms .tooltip:after{content:"";position:absolute;z-index:-1;top:-1px;left:-.7em;border-width:.7em;border-style:solid;border-color:transparent;border-top-color:#aaa}form.idealforms .idealforms-field-checkbox .icon,form.idealforms .idealforms-field-radio .icon,form.idealforms .idealforms-field-textarea .icon{top:8px;margin-top:0}form.idealforms .idealforms-field-checkbox .error,form.idealforms .idealforms-field-radio .error,form.idealforms .idealforms-field-textarea .error{top:1.25em}.idealsteps-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.idealsteps-step{display:none;zoom:1}.idealsteps-step:before{content:"";display:table}.idealsteps-step:after{content:"";display:table;clear:both}form.idealforms .ideal-file-wrap{float:left}form.idealforms .ideal-file-filename{float:left;width:204px;height:100%;-webkit-border-radius:0;border-radius:0;-webkit-border-top-left-radius:3.01px;border-top-left-radius:3.01px;-webkit-border-bottom-left-radius:3.01px;border-bottom-left-radius:3.01px}form.idealforms .ideal-file-upload{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;padding:.15em .5em;cursor:pointer;overflow:visible;position:relative;float:right;left:-1px;width:87px;padding-left:0;padding-right:0;text-align:center;-webkit-border-radius:0;border-radius:0;-webkit-border-top-right-radius:3.01px;border-top-right-radius:3.01px;-webkit-border-bottom-right-radius:3.01px;border-bottom-right-radius:3.01px}form.idealforms .ideal-file-upload:hover{background:-webkit-linear-gradient(#fff,#eaeaea);background:-moz-linear-gradient(#fff,#eaeaea);background:-o-linear-gradient(#fff,#eaeaea);background:-ms-linear-gradient(#fff,#eaeaea);background:linear-gradient(#fff,#eaeaea)}form.idealforms .ideal-file-upload:active,form.idealforms .ideal-file-upload:active:focus{color:#444;background:#eee;background:-webkit-linear-gradient(#fff,#ddd);background:-moz-linear-gradient(#fff,#ddd);background:-o-linear-gradient(#fff,#ddd);background:-ms-linear-gradient(#fff,#ddd);background:linear-gradient(#fff,#ddd);border:1px solid #aaa;border-bottom-color:#919191;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;border-radius:3.01px;background:#ddd}form.idealforms .ideal-file-upload:focus{outline:none;border-color:#3f9dcc;-webkit-box-shadow:0 0 1px #3f9dcc;box-shadow:0 0 1px #3f9dcc}form.idealforms.adaptive .ideal-file-wrap{width:100%}form.idealforms.adaptive .ideal-file-filename{width:70%}form.idealforms.adaptive .ideal-file-upload{width:30%}.lcs_wrap{display:inline-block;direction:ltr;height:28px;vertical-align:middle}.lcs_wrap input{display:none}.lcs_switch{display:inline-block;position:relative;width:73px;height:28px;border-radius:30px;background:#ddd;overflow:hidden;cursor:pointer;-webkit-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.lcs_cursor{display:inline-block;position:absolute;top:3px;width:22px;height:22px;border-radius:100%;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,0.2),0 3px 4px 0 rgba(0,0,0,0.1);z-index:10;-webkit-transition:all .2s linear;-ms-transition:all .2s linear;transition:all .2s linear}.lcs_label{font-family:"Trebuchet MS",Helvetica,sans-serif;font-size:12px;letter-spacing:1px;line-height:18px;color:#fff;font-weight:bold;position:absolute;width:33px;top:5px;overflow:hidden;text-align:center;opacity:0;-webkit-transition:all .2s ease-in-out .1s;-ms-transition:all .2s ease-in-out .1s;transition:all .2s ease-in-out .1s}.lcs_label.lcs_label_on{left:-70px;z-index:6}.lcs_label.lcs_label_off{right:-70px;z-index:5}.lcs_switch.lcs_on{background:-webkit-linear-gradient(#439547,#4caf50);background:linear-gradient(#439547,#4caf50);text-shadow:0 0 8px rgba(0,0,0,0.5);border-radius:50px;box-shadow:inset 2px 2px 5px rgba(0,0,0,0.4)}.lcs_switch.lcs_on .lcs_cursor{left:48px}.lcs_switch.lcs_on .lcs_label_on{left:10px;opacity:1}.lcs_switch.lcs_off{background:#b2b2b2;box-shadow:0 0 2px #a4a4a4 inset;border-radius:50px}.lcs_switch.lcs_off .lcs_cursor{left:3px}.lcs_switch.lcs_off .lcs_label_off{right:10px;opacity:1}.lcs_switch.lcs_disabled{opacity:.65;filter:alpha(opacity=65);cursor:default}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,0.06)!important;border:1px solid #999;outline:0;border-radius:3.01px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:5px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:bold;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 0 0;border-left:1px solid #439646;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:#00578d}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:#aaa}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #999;outline:0;border-radius:3.01px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);-webkit-border-radius:3.01px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);padding:4px;display:inline-block;width:300px;margin-top:2px;height:27px;overflow:hidden;position:relative;z-index:1}.selectize-control.multi .selectize-input.has-items{padding:5px 8px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#4caf50;color:#fff;border:1px solid #439646}.selectize-control.multi .selectize-input>div.active{background:#444;color:#fff;border:1px solid #3a823c}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#fff;background:#d2d2d2;border:1px solid #aaa}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0 1px!important;text-indent:0!important;border:0 none!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #999;background:#fff;margin:-1px 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown [data-selectable],.selectize-dropdown .optgroup-header{padding:5px 8px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#ccc;color:#495c68}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;-webkit-overflow-scrolling:touch}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0;border-color:#808080 transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #808080}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}.selectize-control.multi .selectize-input.has-items{padding-left:5px;padding-right:5px}.selectize-control.multi .selectize-input.disabled [data-value]{color:#999;text-shadow:none;background:none;-webkit-box-shadow:none;box-shadow:none;border-color:#439646}.selectize-control.multi .selectize-input.disabled [data-value] .remove{border-color:#439646;background:none}.selectize-control.multi .selectize-input [data-value]{text-shadow:0 1px 0 rgba(0,51,83,0.3);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#439646;background-image:-moz-linear-gradient(top,#4caf50,#439646);background-image:-webkit-gradient(linear,0 0,0 100%,from(#4caf50),to(#439646));background-image:-webkit-linear-gradient(top,#4caf50,#439646);background-image:-o-linear-gradient(top,#4caf50,#439646);background-image:linear-gradient(to bottom,#4caf50,#439646);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4caf50',endColorstr='#ff439646',GradientType=0);-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03);box-shadow:0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03)}.selectize-control.multi .selectize-input [data-value].active{background-color:#3a823c;background-image:-moz-linear-gradient(top,#439646,#3a823c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#439646),to(#3a823c));background-image:-webkit-linear-gradient(top,#439646,#3a823c);background-image:-o-linear-gradient(top,#439646,#3a823c);background-image:linear-gradient(to bottom,#439646,#3a823c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff439646',endColorstr='#ff3a823c',GradientType=0)}.selectize-control.single .selectize-input{-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.05),inset 0 1px 0 rgba(255,255,255,0.8);box-shadow:0 1px 0 rgba(0,0,0,0.05),inset 0 1px 0 rgba(255,255,255,0.8);background-color:#f9f9f9;background-image:-moz-linear-gradient(top,#fefefe,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fefefe),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fefefe,#f2f2f2);background-image:-o-linear-gradient(top,#fefefe,#f2f2f2);background-image:linear-gradient(to bottom,#fefefe,#f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffefefe',endColorstr='#fff2f2f2',GradientType=0);border-color:#b8b8b8}.selectize-dropdown.single{border-color:#b8b8b8}.selectize-dropdown .optgroup-header{padding-top:7px;font-weight:bold;font-size:.85em}.selectize-dropdown .optgroup{border-top:1px solid #f0f0f0}.selectize-dropdown .optgroup:first-child{border-top:0 none}@-webkit-keyframes vex-fadein{0%{opacity:0}to{opacity:1}}@keyframes vex-fadein{0%{opacity:0}to{opacity:1}}@-webkit-keyframes vex-fadeout{0%{opacity:1}to{opacity:0}}@keyframes vex-fadeout{0%{opacity:1}to{opacity:0}}@-webkit-keyframes vex-rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vex-rotation{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.vex,.vex *,.vex *:before,.vex *:after{-moz-box-sizing:border-box;box-sizing:border-box}.vex{position:fixed;overflow:auto;-webkit-overflow-scrolling:touch;z-index:1111;top:0;right:0;bottom:0;left:0}.vex-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.vex-overlay{-webkit-animation:vex-fadein .5s;animation:vex-fadein .5s;position:fixed;z-index:1111;background:rgba(0,0,0,0.4);top:0;right:0;bottom:0;left:0}.vex-overlay.vex-closing{-webkit-animation:vex-fadeout .5s forwards;animation:vex-fadeout .5s forwards}.vex-content{-webkit-animation:vex-fadein .5s;animation:vex-fadein .5s;background:#fff}.vex.vex-closing .vex-content{-webkit-animation:vex-fadeout .5s forwards;animation:vex-fadeout .5s forwards}.vex-close:before{font-family:Arial,sans-serif;content:"\0000d7"}.vex-dialog-form{margin:0}.vex-dialog-button{text-rendering:optimizeLegibility;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.vex-loading-spinner{-webkit-animation:vex-rotation .7s linear infinite;animation:vex-rotation .7s linear infinite;box-shadow:0 0 1em rgba(0,0,0,0.1);position:fixed;z-index:1112;margin:auto;top:0;right:0;bottom:0;left:0;height:2em;width:2em;background:#fff}body.vex-open{overflow:hidden}.ch{display:table!important;clear:both}.ch-month,.ch-week-labels{font-size:0;display:inline-block;white-space:normal;margin:0 4px}.ch-week{display:inline-block;width:11px;box-sizing:content-box}.ch-day-labels{display:inline-block;box-sizing:content-box;width:inherit}.ch-month-label{text-align:center;font-size:12px;margin-top:10px;margin-bottom:10px}.ch-day-label{text-align:center;font-size:10px;display:block;margin:0;line-height:11px;box-sizing:content-box}.ch-day{display:inline-block;width:9px;height:9px;border:1px solid #f3f6f8;background-color:#f1f1f1;margin:0;box-sizing:content-box}.ch-day.is-outside-month,.ch-lvl.is-outside-month,.ch-day.is-outside-month:hover,.ch-lvl.is-outside-month:hover{background-color:transparent;border-color:transparent}.ch-day.lvl-0,.ch-lvl.lvl-0{background-color:#c8d7e1}.ch-day.is-after-today,.ch-lvl.is-after-today{background-color:#d9e3ea}.ch-day.lvl-1,.ch-lvl.lvl-1{background-color:#a6c96a}.ch-day.lvl-2,.ch-lvl.lvl-2{background-color:#5cb85c}.ch-day.lvl-3,.ch-lvl.lvl-3{background-color:#009e47}.ch-day.lvl-4,.ch-lvl.lvl-4{background-color:#00753a}.ch-day:hover,.ch-lvl:hover{border-color:#89a6ba}.ch-legend{padding-top:10px;text-align:right}.ch-legend-left{text-align:left!important}.ch-legend-center{text-align:center!important}.ch-legend:after{content:".";display:block;height:0;width:0;clear:both;visibility:hidden}.ch-lvls{display:inline-block;margin:0;list-style-type:none;padding:2px 9px 0 5px}.ch-lvl{width:10px;height:10px;float:left;margin-left:3px}.blue-1{background-color:#ffc!important}.earth-1{background-color:#f4ec15!important}.electric-1{background-color:#f9d824!important}.viridis-1{background-color:#dde218!important}.picknick-1{background-color:#dd2a91!important}.green-1{background-color:#d1be5a!important}.teal-1{background-color:#becfb6!important}.red-1{background-color:#deb7af!important}.blue-2{background-color:#41b6c4!important}.earth-2{background-color:#86bf76!important}.electric-2{background-color:#f38647!important}.viridis-2{background-color:#42bd70!important}.picknick-2{background-color:#b14dec!important}.green-2{background-color:#5f900b!important}.teal-2{background-color:#7db28f!important}.red-2{background-color:#cf8371!important}.blue-3{background-color:#0868ac!important}.earth-3{background-color:#117bd7!important}.electric-3{background-color:#8e0ca3!important}.viridis-3{background-color:#355c8c!important}.picknick-3{background-color:#2e8ebf!important}.green-3{background-color:#39811b!important}.teal-3{background-color:#107d79!important}.red-3{background-color:#b63b25!important}.blue-4{background-color:#253494!important}.earth-4{background-color:#363299!important}.electric-4{background-color:#2e0495!important}.viridis-4{background-color:#471164!important}.picknick-4{background-color:#139863!important}.green-4{background-color:#0d562c!important}.teal-4{background-color:#1c475d!important}.red-4{background-color:#90131c!important}.genmon-1{background-color:#090!important}.genmon-2{background-color:#f90!important}.genmon-3{background-color:#c00!important}.genmon-4{background-color:#333!important}.jqplot-xaxis,.jqplot-xaxis-label{margin-top:10px}.jqplot-x2axis,.jqplot-x2axis-label{margin-bottom:10px}.jqplot-target{position:relative;color:#666;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:1em}.jqplot-axis{font-size:.75em}.jqplot-yaxis{margin-right:10px}.jqplot-y2axis,.jqplot-y3axis,.jqplot-y4axis,.jqplot-y5axis,.jqplot-y6axis,.jqplot-y7axis,.jqplot-y8axis,.jqplot-y9axis,.jqplot-yMidAxis{margin-left:10px;margin-right:10px}.jqplot-axis-tick,.jqplot-x2axis-tick,.jqplot-xaxis-tick,.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{position:absolute;white-space:pre}.jqplot-yMidAxis-tick{position:absolute}.jqplot-yaxis-tick{position:absolute;white-space:pre}.jqplot-xaxis-tick{top:0;left:15px;vertical-align:top}.jqplot-x2axis-tick{bottom:0;left:15px;vertical-align:bottom}.jqplot-yaxis-tick{right:0;top:15px;text-align:right}.jqplot-yaxis-tick.jqplot-breakTick{right:-20px;margin-right:0;padding:1px 5px;z-index:2;font-size:1.5em}.jqplot-x2axis-label,.jqplot-xaxis-label,.jqplot-yMidAxis-label,.jqplot-yaxis-label{font-size:11pt;position:absolute}.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{left:0;top:15px;text-align:left}.jqplot-yMidAxis-tick{text-align:center;white-space:nowrap}.jqplot-yaxis-label{margin-right:10px}.jqplot-y2axis-label,.jqplot-y3axis-label,.jqplot-y4axis-label,.jqplot-y5axis-label,.jqplot-y6axis-label,.jqplot-y7axis-label,.jqplot-y8axis-label,.jqplot-y9axis-label{font-size:11pt;margin-left:10px;position:absolute}.jqplot-meterGauge-tick{font-size:.75em;color:#999}.jqplot-meterGauge-label{font-size:1em;color:#999}table.jqplot-table-legend{margin:12px}table.jqplot-cursor-legend,table.jqplot-table-legend{background-color:rgba(255,255,255,.6);border:1px solid #ccc;position:absolute;font-size:.75em}td.jqplot-table-legend{vertical-align:middle}td.jqplot-seriesToggle:active,td.jqplot-seriesToggle:hover{cursor:pointer}.jqplot-table-legend .jqplot-series-hidden{text-decoration:line-through}div.jqplot-table-legend-swatch-outline{border:1px solid #ccc;padding:1px}div.jqplot-table-legend-swatch{width:0;height:0;border-width:5px 6px;border-style:solid}.jqplot-title{top:0;left:0;padding-bottom:.5em;font-size:1.2em}table.jqplot-cursor-tooltip{border:1px solid #ccc;font-size:.75em}.jqplot-canvasOverlay-tooltip,.jqplot-cursor-tooltip,.jqplot-highlighter-tooltip{border:1px solid #ccc;font-size:.75em;white-space:nowrap;background:rgba(208,208,208,.5);padding:1px}.jqplot-point-label{font-size:.75em;z-index:2}td.jqplot-cursor-legend-swatch{vertical-align:middle;text-align:center}div.jqplot-cursor-legend-swatch{width:1.2em;height:.7em}.jqplot-error{text-align:center}.jqplot-error-message{position:relative;top:46%;display:inline-block}div.jqplot-bubble-label{font-size:.8em;padding-left:2px;padding-right:2px;color:#333}div.jqplot-bubble-label.jqplot-bubble-label-highlight{background:rgba(90%,90%,90%,.7)}div.jqplot-noData-container{text-align:center;background-color:rgba(96%,96%,96%,.3)}.tooltipster-fall,.tooltipster-grow.tooltipster-show{-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{box-sizing:border-box;max-height:100%;max-width:100%;overflow:auto;font-size:12px}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0,0);-moz-transform:scale(0,0);-o-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-o-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,1);-webkit-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-moz-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-ms-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);-o-transition-timing-function:cubic-bezier(.23,.635,.495,2.4);transition-timing-function:cubic-bezier(.23,.635,.495,2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-fall.tooltipster-initial{top:0!important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0!important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1);-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-moz-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-ms-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);-o-transition-timing-function:cubic-bezier(.175,.885,.32,1.15);transition-timing-function:cubic-bezier(.175,.885,.32,1.15)}.tooltipster-slide.tooltipster-initial{left:-40px!important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0!important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}to{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading .4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}to{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating .6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}to{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling .6s}.tooltipster-sidetip .tooltipster-box{background:#565656;border:2px solid #000;border-radius:4px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{color:#fff;line-height:18px;padding:6px 14px}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#565656;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#565656;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#565656;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#565656;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#000}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#000}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#000}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#000}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}@-webkit-keyframes vex-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes vex-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes vex-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes vex-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@-webkit-keyframes vex-pulse{0%{box-shadow:inset 0 0 0 300px transparent}70%{box-shadow:inset 0 0 0 300px rgba(255,255,255,0.25)}to{box-shadow:inset 0 0 0 300px transparent}}@keyframes vex-pulse{0%{box-shadow:inset 0 0 0 300px transparent}70%{box-shadow:inset 0 0 0 300px rgba(255,255,255,0.25)}to{box-shadow:inset 0 0 0 300px transparent}}.vex.vex-theme-os{padding-top:160px;padding-bottom:160px}.vex.vex-theme-os.vex-closing .vex-content{-webkit-animation:vex-flyout .5s forwards;animation:vex-flyout .5s forwards}.vex.vex-theme-os .vex-content{-webkit-animation:vex-flyin .5s;animation:vex-flyin .5s;border-radius:5px;box-shadow:inset 0 1px #a6a6a6,0 0 0 1px rgba(0,0,0,0.08);font-family:"Helvetica Neue",sans-serif;border-top:20px solid #bbb;background:#f0f0f0;color:#444;padding:1em;position:relative;margin:0 auto;max-width:100%;width:450px;font-size:1.1em;line-height:1.5em}.vex.vex-theme-os .vex-content h1,.vex.vex-theme-os .vex-content h2,.vex.vex-theme-os .vex-content h3,.vex.vex-theme-os .vex-content h4,.vex.vex-theme-os .vex-content h5,.vex.vex-theme-os .vex-content h6,.vex.vex-theme-os .vex-content p,.vex.vex-theme-os .vex-content ul,.vex.vex-theme-os .vex-content li{color:inherit}.vex.vex-theme-os .vex-close{border-radius:0 5px 0 0;position:absolute;top:0;right:0;cursor:pointer}.vex.vex-theme-os .vex-close:before{border-radius:3px;position:absolute;content:"\0000d7";font-size:26px;font-weight:normal;line-height:31px;height:30px;width:30px;text-align:center;top:3px;right:3px;color:#bbb;background:transparent}.vex.vex-theme-os .vex-close:hover:before,.vex.vex-theme-os .vex-close:active:before{color:#777;background:#e0e0e0}.vex.vex-theme-os .vex-dialog-form .vex-dialog-message{margin-bottom:.5em}.vex.vex-theme-os .vex-dialog-form .vex-dialog-input{margin-bottom:1em}.vex.vex-theme-os .vex-dialog-form .vex-dialog-input select,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"],.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"]{border-radius:3px;background:#fff;width:100%;padding:.25em .67em;border:0;font-family:inherit;font-weight:inherit;font-size:inherit;min-height:2.5em;margin:0 0 .25em}.vex.vex-theme-os .vex-dialog-form .vex-dialog-input select:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"]:focus,.vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"]:focus{box-shadow:inset 0 0 0 1px #3288e6;outline:none}.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons{*zoom:1}.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons:after{content:"";display:table;clear:both}.vex.vex-theme-os .vex-dialog-button{border-radius:3px;border:0;float:right;margin:0 0 0 .5em;font-family:Arial;font-size:16px;line-height:1em;padding:.75em}.vex.vex-theme-os .vex-dialog-button.vex-last{margin-left:0}.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-primary{background:#4caf50;color:#fff}.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-secondary{background:#bbb;color:#444}.vex-loading-spinner.vex-theme-os{box-shadow:0 0 0 1px rgba(0,0,0,0.2),0 0 .5em rgba(0,0,0,0.2);border-radius:100%;background:rgba(255,255,255,0.2);width:0;height:0;border:1.2em solid #bbb;border-top-color:#f0f0f0;border-bottom-color:#f0f0f0}
\ No newline at end of file
diff --git a/static/libraries.min.js b/static/libraries.min.js
old mode 100755
new mode 100644
index eb7d1cb0..9e448ad9
--- a/static/libraries.min.js
+++ b/static/libraries.min.js
@@ -1,273 +1,273 @@
/*
jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
-var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(b,k,r){b instanceof String&&(b=String(b));for(var n=b.length,l=0;lr&&(r=Math.max(0,k+r));if(null==n||n>k)n=k;n=Number(n);0>n&&(n=Math.max(0,k+n));for(r=Number(r||0);r=(1-f)*(1-(f=E()/w||.5))&&(q=0),A/=f;A*=2;t.style(a,b,A+v);c=c||[]}return c&&(A=+A||+w||0,e=c[1]?A+(c[1]+1)*c[2]:+c[2],d&&(d.unit=v,d.start=A,d.end=e)),e}function v(a,b){for(var c,d,e=[],f=0,q=a.length;fq;q+=2)"margin"===c&&(w+=t.css(a,
-c+Pa[q],!0,e)),d?("content"===c&&(w-=t.css(a,"padding"+Pa[q],!0,e)),"margin"!==c&&(w-=t.css(a,"border"+Pa[q]+"Width",!0,e))):(w+=t.css(a,"padding"+Pa[q],!0,e),"padding"!==c?w+=t.css(a,"border"+Pa[q]+"Width",!0,e):E+=t.css(a,"border"+Pa[q]+"Width",!0,e));return!d&&0<=f&&(w+=Math.max(0,Math.ceil(a["offset"+b[0].toUpperCase()+b.slice(1)]-f-w-E-.5))),w}function la(a,b,c){var d=rb(a),e=I(a,b,d),f="border-box"===t.css(a,"boxSizing",!1,d),q=f;if(Xa.test(e)){if(!c)return e;e="auto"}return q=q&&(X.boxSizingReliable()||
-e===a.style[b]),("auto"===e||!parseFloat(e)&&"inline"===t.css(a,"display",!1,d))&&(e=a["offset"+b[0].toUpperCase()+b.slice(1)],q=!0),(e=parseFloat(e)||0)+da(a,b,c||(f?"border":"content"),q,d,e)+"px"}function fa(a,b,c,d,e){return new fa.prototype.init(a,b,c,d,e)}function ma(){ib&&(!1===L.hidden&&b.requestAnimationFrame?b.requestAnimationFrame(ma):b.setTimeout(ma,t.fx.interval),t.fx.tick())}function F(){return b.setTimeout(function(){Ta=void 0}),Ta=Date.now()}function ya(a,b){var c,d=0,e={height:a};
-for(b=b?1:0;4>d;d+=2-b)e["margin"+(c=Pa[d])]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function wa(a,b,c){for(var d,e=(T.tweeners[b]||[]).concat(T.tweeners["*"]),f=0,q=e.length;fc&&f?b:(f||q.notifyWith(a,[w,1,0]),q.resolveWith(a,[w]),!1)},w=q.promise({elem:a,props:t.extend({},b),opts:t.extend(!0,{specialEasing:{},easing:t.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ta||F(),duration:c.duration,tweens:[],createTween:function(b,
-c){b=t.Tween(a,w.opts,b,c,w.opts.specialEasing[b]||w.opts.easing);return w.tweens.push(b),b},stop:function(b){var c=0,e=b?w.tweens.length:0;if(d)return this;for(d=!0;ca?this[a+this.length]:this[a]},pushStack:function(a){a=t.merge(this.constructor(),a);return a.prevObject=this,a},each:function(a){return t.each(this,a)},map:function(a){return this.pushStack(t.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(qa.apply(this,arguments))},first:function(){return this.eq(0)},
-last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&aH.cacheLength&&
-delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[M]=!0,a}function e(a){var b=y.createElement("fieldset");try{return!!a(b)}catch(Rc){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function f(a,b){a=a.split("|");for(var c=a.length;c--;)H.attrHandle[a[c]]=b}function q(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function w(a){return function(b){return"input"===
-b.nodeName.toLowerCase()&&b.type===a}}function E(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function v(a){return function(b){return"form"in b?b.parentNode&&!1===b.disabled?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&Qa(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function A(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),q=f.length;q--;)c[e=
-f[q]]&&(c[e]=!(d[e]=c[e]))})})}function u(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function g(){}function C(a){for(var b=0,c=a.length,d="";bt&&(t=Math.max(0,k+t));if(null==r||r>k)r=k;r=Number(r);0>r&&(r=Math.max(0,k+r));for(t=Number(t||0);t=(1-f)*(1-(f=E()/x||.5))&&(q=0),A/=f;A*=2;u.style(a,b,A+w);c=c||[]}return c&&(A=+A||+x||0,e=c[1]?A+(c[1]+1)*c[2]:+c[2],d&&(d.unit=w,d.start=A,d.end=e)),e}function w(a,b){for(var c,d,e=[],f=0,q=a.length;fq;q+=2)"margin"===c&&(x+=u.css(a,
+c+Pa[q],!0,e)),d?("content"===c&&(x-=u.css(a,"padding"+Pa[q],!0,e)),"margin"!==c&&(x-=u.css(a,"border"+Pa[q]+"Width",!0,e))):(x+=u.css(a,"padding"+Pa[q],!0,e),"padding"!==c?x+=u.css(a,"border"+Pa[q]+"Width",!0,e):E+=u.css(a,"border"+Pa[q]+"Width",!0,e));return!d&&0<=f&&(x+=Math.max(0,Math.ceil(a["offset"+b[0].toUpperCase()+b.slice(1)]-f-x-E-.5))),x}function la(a,b,c){var d=rb(a),e=I(a,b,d),f="border-box"===u.css(a,"boxSizing",!1,d),q=f;if(Xa.test(e)){if(!c)return e;e="auto"}return q=q&&(X.boxSizingReliable()||
+e===a.style[b]),("auto"===e||!parseFloat(e)&&"inline"===u.css(a,"display",!1,d))&&(e=a["offset"+b[0].toUpperCase()+b.slice(1)],q=!0),(e=parseFloat(e)||0)+da(a,b,c||(f?"border":"content"),q,d,e)+"px"}function fa(a,b,c,d,e){return new fa.prototype.init(a,b,c,d,e)}function ma(){ib&&(!1===L.hidden&&b.requestAnimationFrame?b.requestAnimationFrame(ma):b.setTimeout(ma,u.fx.interval),u.fx.tick())}function F(){return b.setTimeout(function(){Ta=void 0}),Ta=Date.now()}function ya(a,b){var c,d=0,e={height:a};
+for(b=b?1:0;4>d;d+=2-b)e["margin"+(c=Pa[d])]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function wa(a,b,c){for(var d,e=(T.tweeners[b]||[]).concat(T.tweeners["*"]),f=0,q=e.length;fc&&f?b:(f||q.notifyWith(a,[x,1,0]),q.resolveWith(a,[x]),!1)},x=q.promise({elem:a,props:u.extend({},b),opts:u.extend(!0,{specialEasing:{},easing:u.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ta||F(),duration:c.duration,tweens:[],createTween:function(b,
+c){b=u.Tween(a,x.opts,b,c,x.opts.specialEasing[b]||x.opts.easing);return x.tweens.push(b),b},stop:function(b){var c=0,e=b?x.tweens.length:0;if(d)return this;for(d=!0;ca?this[a+this.length]:this[a]},pushStack:function(a){a=u.merge(this.constructor(),a);return a.prevObject=this,a},each:function(a){return u.each(this,a)},map:function(a){return this.pushStack(u.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(qa.apply(this,arguments))},first:function(){return this.eq(0)},
+last:function(){return this.eq(-1)},eq:function(a){var b=this.length;a=+a+(0>a?b:0);return this.pushStack(0<=a&&aG.cacheLength&&
+delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[M]=!0,a}function e(a){var b=z.createElement("fieldset");try{return!!a(b)}catch(Rc){return!1}finally{b.parentNode&&b.parentNode.removeChild(b)}}function f(a,b){a=a.split("|");for(var c=a.length;c--;)G.attrHandle[a[c]]=b}function q(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function x(a){return function(b){return"input"===
+b.nodeName.toLowerCase()&&b.type===a}}function E(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function w(a){return function(b){return"form"in b?b.parentNode&&!1===b.disabled?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&Qa(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function A(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),q=f.length;q--;)c[e=
+f[q]]&&(c[e]=!(d[e]=c[e]))})})}function v(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function g(){}function D(a){for(var b=0,c=a.length,d="";b+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,Q=/=[\x20\t\r\n\f]*([^\]'"]*?)[\x20\t\r\n\f]*\]/g,ca=/:((?:\\.|[\w-]|[^\x00-\xa0])+)(?:\((('((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)")|((?:\\.|[^\\()[\]]|\[[\x20\t\r\n\f]*((?:\\.|[\w-]|[^\x00-\xa0])+)(?:[\x20\t\r\n\f]*([*^$|!~]?=)[\x20\t\r\n\f]*(?:'((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)"|((?:\\.|[\w-]|[^\x00-\xa0])+))|)[\x20\t\r\n\f]*\])*)|.*)\)|)/,F=/^(?:\\.|[\w-]|[^\x00-\xa0])+$/,R={ID:/^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,
CLASS:/^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,TAG:/^((?:\\.|[\w-]|[^\x00-\xa0])+|[*])/,ATTR:/^\[[\x20\t\r\n\f]*((?:\\.|[\w-]|[^\x00-\xa0])+)(?:[\x20\t\r\n\f]*([*^$|!~]?=)[\x20\t\r\n\f]*(?:'((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)"|((?:\\.|[\w-]|[^\x00-\xa0])+))|)[\x20\t\r\n\f]*\]/,PSEUDO:/^:((?:\\.|[\w-]|[^\x00-\xa0])+)(?:\((('((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)")|((?:\\.|[^\\()[\]]|\[[\x20\t\r\n\f]*((?:\\.|[\w-]|[^\x00-\xa0])+)(?:[\x20\t\r\n\f]*([*^$|!~]?=)[\x20\t\r\n\f]*(?:'((?:\\.|[^\\'])*)'|"((?:\\.|[^\\"])*)"|((?:\\.|[\w-]|[^\x00-\xa0])+))|)[\x20\t\r\n\f]*\])*)|.*)\)|)/,
CHILD:/^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,bool:/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,needsContext:/^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i},da=/^(?:input|select|textarea|button)$/i,ja=/^h\d$/i,Ga=
/^[^{]+\{\s*\[native \w/,Sa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,kb=/[+~]/,X=/\\([\da-f]{1,6}[\x20\t\r\n\f]?|([\x20\t\r\n\f])|.)/ig,la=function(a,b,c){a="0x"+b-65536;return a!==a||c?b:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,1023&a|56320)},fa=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,jb=function(a,b){return b?"\x00"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},Na=function(){ma()},Qa=h(function(a){return!0===a.disabled&&("form"in
-a||"label"in a)},{dir:"parentNode",next:"legend"});try{xa.apply(U=K.call(B.childNodes),B.childNodes),U[B.childNodes.length].nodeType}catch(Qc){xa={apply:U.length?function(a,b){Aa.apply(a,K.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}var T=b.support={};var ya=b.isXML=function(a){a=a&&(a.ownerDocument||a).documentElement;return!!a&&"HTML"!==a.nodeName};var ma=b.setDocument=function(a){var b,c;a=a?a.ownerDocument||a:B;return a!==y&&9===a.nodeType&&a.documentElement?
-(y=a,r=y.documentElement,Z=!ya(y),B!==y&&(c=y.defaultView)&&c.top!==c&&(c.addEventListener?c.addEventListener("unload",Na,!1):c.attachEvent&&c.attachEvent("onunload",Na)),T.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),T.getElementsByTagName=e(function(a){return a.appendChild(y.createComment("")),!a.getElementsByTagName("*").length}),T.getElementsByClassName=Ga.test(y.getElementsByClassName),T.getById=e(function(a){return r.appendChild(a).id=M,!y.getElementsByName||
-!y.getElementsByName(M).length}),T.getById?(H.filter.ID=function(a){var b=a.replace(X,la);return function(a){return a.getAttribute("id")===b}},H.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&Z)return(a=b.getElementById(a))?[a]:[]}):(H.filter.ID=function(a){var b=a.replace(X,la);return function(a){return(a="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}},H.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&Z){var c,d=b.getElementById(a);
-if(d){if((c=d.getAttributeNode("id"))&&c.value===a)return[d];var e=b.getElementsByName(a);for(b=0;d=e[b++];)if((c=d.getAttributeNode("id"))&&c.value===a)return[d]}return[]}}),H.find.TAG=T.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):T.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c=[],d=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[d++];)1===a.nodeType&&c.push(a);return c}return b},H.find.CLASS=T.getElementsByClassName&&function(a,
-b){if("undefined"!=typeof b.getElementsByClassName&&Z)return b.getElementsByClassName(a)},x=[],N=[],(T.qsa=Ga.test(y.querySelectorAll))&&(e(function(a){r.appendChild(a).innerHTML=" ";a.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||N.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)");
-a.querySelectorAll("[id~="+M+"-]").length||N.push("~=");a.querySelectorAll(":checked").length||N.push(":checked");a.querySelectorAll("a#"+M+"+*").length||N.push(".#.+[+~]")}),e(function(a){a.innerHTML=" ";var b=y.createElement("input");b.setAttribute("type","hidden");a.appendChild(b).setAttribute("name","D");a.querySelectorAll("[name=d]").length&&N.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?=");2!==a.querySelectorAll(":enabled").length&&
-N.push(":enabled",":disabled");r.appendChild(a).disabled=!0;2!==a.querySelectorAll(":disabled").length&&N.push(":enabled",":disabled");a.querySelectorAll("*,:x");N.push(",.*:")})),(T.matchesSelector=Ga.test(ha=r.matches||r.webkitMatchesSelector||r.mozMatchesSelector||r.oMatchesSelector||r.msMatchesSelector))&&e(function(a){T.disconnectedMatch=ha.call(a,"*");ha.call(a,"[s!='']:x");x.push("!=",":((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)")}),
-N=N.length&&new RegExp(N.join("|")),x=x.length&&new RegExp(x.join("|")),b=Ga.test(r.compareDocumentPosition),Y=b||Ga.test(r.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a;b=b&&b.parentNode;return a===b||!(!b||1!==b.nodeType||!(c.contains?c.contains(b):a.compareDocumentPosition&&16&a.compareDocumentPosition(b)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},Zb=b?function(a,b){if(a===b)return n=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;
-return c||(1&(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1)||!T.sortDetached&&b.compareDocumentPosition(a)===c?a===y||a.ownerDocument===B&&Y(B,a)?-1:b===y||b.ownerDocument===B&&Y(B,b)?1:z?Ca(z,a)-Ca(z,b):0:4&c?-1:1)}:function(a,b){if(a===b)return n=!0,0;var c=0,d=a.parentNode,e=b.parentNode,f=[a],w=[b];if(!d||!e)return a===y?-1:b===y?1:d?-1:e?1:z?Ca(z,a)-Ca(z,b):0;if(d===e)return q(a,b);for(;a=a.parentNode;)f.unshift(a);for(a=b;a=a.parentNode;)w.unshift(a);for(;f[c]===
-w[c];)c++;return c?q(f[c],w[c]):f[c]===B?-1:w[c]===B?1:0},y):y};b.matches=function(a,c){return b(a,null,null,c)};b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==y&&ma(a),c=c.replace(Q,"='$1']"),!(!T.matchesSelector||!Z||na[c+" "]||x&&x.test(c)||N&&N.test(c)))try{var d=ha.call(a,c);if(d||T.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(Sc){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=
+a||"label"in a)},{dir:"parentNode",next:"legend"});try{xa.apply(U=K.call(B.childNodes),B.childNodes),U[B.childNodes.length].nodeType}catch(Qc){xa={apply:U.length?function(a,b){Aa.apply(a,K.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}var T=b.support={};var ya=b.isXML=function(a){a=a&&(a.ownerDocument||a).documentElement;return!!a&&"HTML"!==a.nodeName};var ma=b.setDocument=function(a){var b,c;a=a?a.ownerDocument||a:B;return a!==z&&9===a.nodeType&&a.documentElement?
+(z=a,t=z.documentElement,Z=!ya(z),B!==z&&(c=z.defaultView)&&c.top!==c&&(c.addEventListener?c.addEventListener("unload",Na,!1):c.attachEvent&&c.attachEvent("onunload",Na)),T.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),T.getElementsByTagName=e(function(a){return a.appendChild(z.createComment("")),!a.getElementsByTagName("*").length}),T.getElementsByClassName=Ga.test(z.getElementsByClassName),T.getById=e(function(a){return t.appendChild(a).id=M,!z.getElementsByName||
+!z.getElementsByName(M).length}),T.getById?(G.filter.ID=function(a){var b=a.replace(X,la);return function(a){return a.getAttribute("id")===b}},G.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&Z)return(a=b.getElementById(a))?[a]:[]}):(G.filter.ID=function(a){var b=a.replace(X,la);return function(a){return(a="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id"))&&a.value===b}},G.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&Z){var c,d=b.getElementById(a);
+if(d){if((c=d.getAttributeNode("id"))&&c.value===a)return[d];var e=b.getElementsByName(a);for(b=0;d=e[b++];)if((c=d.getAttributeNode("id"))&&c.value===a)return[d]}return[]}}),G.find.TAG=T.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):T.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c=[],d=0;b=b.getElementsByTagName(a);if("*"===a){for(;a=b[d++];)1===a.nodeType&&c.push(a);return c}return b},G.find.CLASS=T.getElementsByClassName&&function(a,
+b){if("undefined"!=typeof b.getElementsByClassName&&Z)return b.getElementsByClassName(a)},y=[],N=[],(T.qsa=Ga.test(z.querySelectorAll))&&(e(function(a){t.appendChild(a).innerHTML=" ";a.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")");a.querySelectorAll("[selected]").length||N.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)");
+a.querySelectorAll("[id~="+M+"-]").length||N.push("~=");a.querySelectorAll(":checked").length||N.push(":checked");a.querySelectorAll("a#"+M+"+*").length||N.push(".#.+[+~]")}),e(function(a){a.innerHTML=" ";var b=z.createElement("input");b.setAttribute("type","hidden");a.appendChild(b).setAttribute("name","D");a.querySelectorAll("[name=d]").length&&N.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?=");2!==a.querySelectorAll(":enabled").length&&
+N.push(":enabled",":disabled");t.appendChild(a).disabled=!0;2!==a.querySelectorAll(":disabled").length&&N.push(":enabled",":disabled");a.querySelectorAll("*,:x");N.push(",.*:")})),(T.matchesSelector=Ga.test(ha=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.msMatchesSelector))&&e(function(a){T.disconnectedMatch=ha.call(a,"*");ha.call(a,"[s!='']:x");y.push("!=",":((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|((?:\\\\.|[\\w-]|[^\x00-\\xa0])+))|)[\\x20\\t\\r\\n\\f]*\\])*)|.*)\\)|)")}),
+N=N.length&&new RegExp(N.join("|")),y=y.length&&new RegExp(y.join("|")),b=Ga.test(t.compareDocumentPosition),Y=b||Ga.test(t.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a;b=b&&b.parentNode;return a===b||!(!b||1!==b.nodeType||!(c.contains?c.contains(b):a.compareDocumentPosition&&16&a.compareDocumentPosition(b)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},Zb=b?function(a,b){if(a===b)return r=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;
+return c||(1&(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1)||!T.sortDetached&&b.compareDocumentPosition(a)===c?a===z||a.ownerDocument===B&&Y(B,a)?-1:b===z||b.ownerDocument===B&&Y(B,b)?1:p?Ca(p,a)-Ca(p,b):0:4&c?-1:1)}:function(a,b){if(a===b)return r=!0,0;var c=0,d=a.parentNode,e=b.parentNode,f=[a],x=[b];if(!d||!e)return a===z?-1:b===z?1:d?-1:e?1:p?Ca(p,a)-Ca(p,b):0;if(d===e)return q(a,b);for(;a=a.parentNode;)f.unshift(a);for(a=b;a=a.parentNode;)x.unshift(a);for(;f[c]===
+x[c];)c++;return c?q(f[c],x[c]):f[c]===B?-1:x[c]===B?1:0},z):z};b.matches=function(a,c){return b(a,null,null,c)};b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==z&&ma(a),c=c.replace(Q,"='$1']"),!(!T.matchesSelector||!Z||na[c+" "]||y&&y.test(c)||N&&N.test(c)))try{var d=ha.call(a,c);if(d||T.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(Sc){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=
a[1].replace(X,la),a[3]=(a[3]||a[4]||a[5]||"").replace(X,la),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return R.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&ca.test(c)&&(b=V(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,
b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(X,la).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=Oa[a+" "];return b||(b=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+a+"([\\x20\\t\\r\\n\\f]|$)"),Oa(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")}))},ATTR:function(a,c,d){return function(e){e=b.attr(e,
-a);return null==e?"!="===c:!c||(e+="","="===c?e===d:"!="===c?e!==d:"^="===c?d&&0===e.indexOf(d):"*="===c?d&&-1a.nodeType)return!1;return!0},parent:function(a){return!H.pseudos.empty(a)},header:function(a){return ja.test(a.nodeName)},input:function(a){return da.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},
+a),a=a.replace(X,la).toLowerCase(),function(b){var c;do if(c=Z?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return(c=c.toLowerCase())===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===t},focus:function(a){return a===z.activeElement&&(!z.hasFocus||z.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:w(!1),disabled:w(!0),checked:function(a){var b=
+a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,!0===a.selected},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(6>a.nodeType)return!1;return!0},parent:function(a){return!G.pseudos.empty(a)},header:function(a){return ja.test(a.nodeName)},input:function(a){return da.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},
text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:A(function(){return[0]}),last:A(function(a,b){return[b-1]}),eq:A(function(a,b,c){return[0>c?c+b:c]}),even:A(function(a,b){for(var c=0;cc?c+b:c;0<=--b;)a.push(b);return a}),gt:A(function(a,b,c){for(c=0>c?c+b:c;++c:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;t.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?t.find.matchesSelector(d,a)?[d]:[]:t.find.matches(a,t.grep(b,
-function(a){return 1===a.nodeType}))};t.fn.extend({find:function(a){var b,c=this.length,d=this;if("string"!=typeof a)return this.pushStack(t(a).filter(function(){for(b=0;b)[^>]*|#([\w-]+))$/;(t.fn.init=function(a,b,c){var d,e;if(!a)return this;if(c=c||$b,"string"==typeof a){if(!(d="<"===a[0]&&">"===a[a.length-1]&&3<=a.length?[null,a,null]:Pb.exec(a))||!d[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(d[1]){if(b=b instanceof t?b[0]:b,t.merge(this,t.parseHTML(d[1],b&&b.nodeType?b.ownerDocument||b:L,!0)),zb.test(d[1])&&t.isPlainObject(b))for(d in b)S(this[d])?this[d](b[d]):this.attr(d,b[d]);return this}return(e=L.getElementById(d[2]))&&
-(this[0]=e,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):S(a)?void 0!==c.ready?c.ready(a):a(t):t.makeArray(a,this)}).prototype=t.fn;var $b=t(L);var Ka=/^(?:parents|prev(?:Until|All))/,cb={children:!0,contents:!0,next:!0,prev:!0};t.fn.extend({has:function(a){var b=t(a,this),c=b.length;return this.filter(function(){for(var a=0;ac.nodeType&&(q?-1=q&&(d!==g&&(w=void 0,v=[ea]),c.rejectWith(w,v))}};a?E():(t.Deferred.getStackHook&&(E.stackTrace=t.Deferred.getStackHook()),b.setTimeout(E))}}var q=0;return t.Deferred(function(b){c[0][3].add(f(0,b,S(e)?e:m,b.notifyWith));c[1][3].add(f(0,b,S(a)?a:m));c[2][3].add(f(0,b,S(d)?d:g))}).promise()},promise:function(a){return null!=
-a?t.extend(a,e):e}},f={};return t.each(c,function(a,b){var q=b[2],w=b[5];e[b[1]]=q.add;w&&q.add(function(){d=w},c[3-a][2].disable,c[3-a][3].disable,c[0][2].lock,c[0][3].lock);q.add(b[3].fire);f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this};f[b[0]+"With"]=q.fireWith}),e.promise(f),a&&a.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=qa.call(arguments),f=t.Deferred(),q=function(a){return function(c){d[a]=this;e[a]=1=b&&(z(a,f.done(q(c)).resolve,f.reject,!b),"pending"===f.state()||S(e[c]&&e[c].then)))return f.then();for(;c--;)z(e[c],q(c),f.reject);return f.promise()}});var ac=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;t.Deferred.exceptionHook=function(a,c){b.console&&b.console.warn&&a&&ac.test(a.name)&&b.console.warn("jQuery.Deferred exception: "+a.message,a.stack,c)};t.readyException=function(a){b.setTimeout(function(){throw a;})};var Ab=t.Deferred();t.fn.ready=
-function(a){return Ab.then(a)["catch"](function(a){t.readyException(a)}),this};t.extend({isReady:!1,readyWait:1,ready:function(a){(!0===a?--t.readyWait:t.isReady)||(t.isReady=!0,!0!==a&&0<--t.readyWait||Ab.resolveWith(L,[t]))}});t.ready.then=Ab.then;"complete"===L.readyState||"loading"!==L.readyState&&!L.documentElement.doScroll?b.setTimeout(t.ready):(L.addEventListener("DOMContentLoaded",B),b.addEventListener("load",B));var La=function(a,b,c,d,e,f,q){var w=0,v=a.length,A=null==c;if("object"===n(c))for(w in e=
-!0,c)La(a,b,w,c[w],!0,f,q);else if(void 0!==d&&(e=!0,S(d)||(q=!0),A&&(q?(b.call(a,d),b=null):(A=b,b=function(a,b,c){return A.call(t(a),c)})),b))for(;w:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;u.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?u.find.matchesSelector(d,a)?[d]:[]:u.find.matches(a,u.grep(b,
+function(a){return 1===a.nodeType}))};u.fn.extend({find:function(a){var b,c=this.length,d=this;if("string"!=typeof a)return this.pushStack(u(a).filter(function(){for(b=0;b)[^>]*|#([\w-]+))$/;(u.fn.init=function(a,b,c){var d,e;if(!a)return this;if(c=c||$b,"string"==typeof a){if(!(d="<"===a[0]&&">"===a[a.length-1]&&3<=a.length?[null,a,null]:Pb.exec(a))||!d[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(d[1]){if(b=b instanceof u?b[0]:b,u.merge(this,u.parseHTML(d[1],b&&b.nodeType?b.ownerDocument||b:L,!0)),zb.test(d[1])&&u.isPlainObject(b))for(d in b)S(this[d])?this[d](b[d]):this.attr(d,b[d]);return this}return(e=L.getElementById(d[2]))&&
+(this[0]=e,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):S(a)?void 0!==c.ready?c.ready(a):a(u):u.makeArray(a,this)}).prototype=u.fn;var $b=u(L);var Ka=/^(?:parents|prev(?:Until|All))/,cb={children:!0,contents:!0,next:!0,prev:!0};u.fn.extend({has:function(a){var b=u(a,this),c=b.length;return this.filter(function(){for(var a=0;ac.nodeType&&(q?-1=q&&(d!==g&&(x=void 0,w=[ea]),c.rejectWith(x,w))}};a?E():(u.Deferred.getStackHook&&(E.stackTrace=u.Deferred.getStackHook()),b.setTimeout(E))}}var q=0;return u.Deferred(function(b){c[0][3].add(f(0,b,S(e)?e:l,b.notifyWith));c[1][3].add(f(0,b,S(a)?a:l));c[2][3].add(f(0,b,S(d)?d:g))}).promise()},promise:function(a){return null!=
+a?u.extend(a,e):e}},f={};return u.each(c,function(a,b){var q=b[2],x=b[5];e[b[1]]=q.add;x&&q.add(function(){d=x},c[3-a][2].disable,c[3-a][3].disable,c[0][2].lock,c[0][3].lock);q.add(b[3].fire);f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this};f[b[0]+"With"]=q.fireWith}),e.promise(f),a&&a.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=qa.call(arguments),f=u.Deferred(),q=function(a){return function(c){d[a]=this;e[a]=1=b&&(p(a,f.done(q(c)).resolve,f.reject,!b),"pending"===f.state()||S(e[c]&&e[c].then)))return f.then();for(;c--;)p(e[c],q(c),f.reject);return f.promise()}});var ac=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;u.Deferred.exceptionHook=function(a,c){b.console&&b.console.warn&&a&&ac.test(a.name)&&b.console.warn("jQuery.Deferred exception: "+a.message,a.stack,c)};u.readyException=function(a){b.setTimeout(function(){throw a;})};var Ab=u.Deferred();u.fn.ready=
+function(a){return Ab.then(a)["catch"](function(a){u.readyException(a)}),this};u.extend({isReady:!1,readyWait:1,ready:function(a){(!0===a?--u.readyWait:u.isReady)||(u.isReady=!0,!0!==a&&0<--u.readyWait||Ab.resolveWith(L,[u]))}});u.ready.then=Ab.then;"complete"===L.readyState||"loading"!==L.readyState&&!L.documentElement.doScroll?b.setTimeout(u.ready):(L.addEventListener("DOMContentLoaded",B),b.addEventListener("load",B));var La=function(a,b,c,d,e,f,q){var x=0,w=a.length,A=null==c;if("object"===r(c))for(x in e=
+!0,c)La(a,b,x,c[x],!0,f,q);else if(void 0!==d&&(e=!0,S(d)||(q=!0),A&&(q?(b.call(a,d),b=null):(A=b,b=function(a,b,c){return A.call(u(a),c)})),b))for(;x\x20\t\r\n\f]+)/i,Ib=/^$|^module$|\/(?:java|ecma)script/i,Ea={option:[1,
+b||u.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){a=a[this.expando];return void 0!==a&&!u.isEmptyObject(a)}};var P=new d,za=new d,Xb=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,vb=/[A-Z]/g;u.extend({hasData:function(a){return za.hasData(a)||P.hasData(a)},data:function(a,b,c){return za.access(a,b,c)},removeData:function(a,b){za.remove(a,b)},_data:function(a,b,c){return P.access(a,b,c)},_removeData:function(a,b){P.remove(a,b)}});u.fn.extend({data:function(a,
+b){var d,f,q,x=this[0],w=x&&x.attributes;if(void 0===a){if(this.length&&(q=za.get(x),1===x.nodeType&&!P.get(x,"hasDataAttrs"))){for(d=w.length;d--;)w[d]&&0===(f=w[d].name).indexOf("data-")&&(f=c(f.slice(5)),e(x,f,q[f]));P.set(x,"hasDataAttrs",!0)}return q}return"object"==typeof a?this.each(function(){za.set(this,a)}):La(this,function(b){var c;if(x&&void 0===b){if(void 0!==(c=za.get(x,a))||void 0!==(c=e(x,a)))return c}else this.each(function(){za.set(this,a,b)})},null,b,1\x20\t\r\n\f]+)/i,Ib=/^$|^module$|\/(?:java|ecma)script/i,Ea={option:[1,
""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};Ea.optgroup=Ea.option;Ea.tbody=Ea.tfoot=Ea.colgroup=Ea.caption=Ea.thead;Ea.th=Ea.td;var Hb=/<|?\w+;/;!function(){var a=L.createDocumentFragment().appendChild(L.createElement("div")),b=L.createElement("input");b.setAttribute("type","radio");b.setAttribute("checked",
-"checked");b.setAttribute("name","t");a.appendChild(b);X.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked;a.innerHTML="";X.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue}();var mb=L.documentElement,bc=/^key/,mc=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,nb=/^([^.]*)(?:\.(.+)|)/;t.event={global:{},add:function(a,b,c,d,e){var f,q,w,v,A,u,g,E,C;if(A=P.get(a))for(c.handler&&(c=(f=c).handler,e=f.selector),e&&t.find.matchesSelector(mb,e),c.guid||(c.guid=t.guid++),
-(v=A.events)||(v=A.events={}),(q=A.handle)||(q=A.handle=function(b){return"undefined"!=typeof t&&t.event.triggered!==b.type?t.event.dispatch.apply(a,arguments):void 0}),A=(b=(b||"").match(Ia)||[""]).length;A--;){var h=C=(w=nb.exec(b[A])||[])[1];w=(w[2]||"").split(".").sort();h&&(g=t.event.special[h]||{},h=(e?g.delegateType:g.bindType)||h,g=t.event.special[h]||{},u=t.extend({type:h,origType:C,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&t.expr.match.needsContext.test(e),namespace:w.join(".")},
-f),(E=v[h])||((E=v[h]=[]).delegateCount=0,g.setup&&!1!==g.setup.call(a,d,w,q)||a.addEventListener&&a.addEventListener(h,q)),g.add&&(g.add.call(a,u),u.handler.guid||(u.handler.guid=c.guid)),e?E.splice(E.delegateCount++,0,u):E.push(u),t.event.global[h]=!0)}},remove:function(a,b,c,d,e){var f,q,w,v,A,u,g,E,h=P.hasData(a)&&P.get(a);if(h&&(v=h.events)){for(A=(b=(b||"").match(Ia)||[""]).length;A--;)if(w=nb.exec(b[A])||[],u=E=w[1],g=(w[2]||"").split(".").sort(),u){var C=t.event.special[u]||{};var m=v[u=(d?
-C.delegateType:C.bindType)||u]||[];w=w[2]&&new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)");for(q=f=m.length;f--;){var W=m[f];!e&&E!==W.origType||c&&c.guid!==W.guid||w&&!w.test(W.namespace)||d&&d!==W.selector&&("**"!==d||!W.selector)||(m.splice(f,1),W.selector&&m.delegateCount--,C.remove&&C.remove.call(a,W))}q&&!m.length&&(C.teardown&&!1!==C.teardown.call(a,g,h.handle)||t.removeEvent(a,u,h.handle),delete v[u])}else for(u in v)t.event.remove(a,u+b[A],c,d,!0);t.isEmptyObject(v)&&P.remove(a,"handle events")}},
-dispatch:function(a){var b=t.event.fix(a),c,d,e,f,q=Array(arguments.length);var w=(P.get(this,"events")||{})[b.type]||[];var v=t.event.special[b.type]||{};q[0]=b;for(c=1;c\x20\t\r\n\f]*)[^>]*)\/>/gi,
-cc=/