-- @/=[C]:-1
function match(...)
-- parse the string then
local h, m, s = string.match(inp, "([0-9]*):?([0-9]*):?([0-9]*)")
inp = {
if type(objPos) == 'string' then
local x, y, z = string.match(objPos, "([0-9]*)%s*([0-9]*)%s*([0-9]*)%s*")
objPos = vec3(tonumber(x), tonumber(y), tonumber(z))
if type(objRotation) == 'string' then
local x, y, z, w = string.match(objRotation, "([0-9]*)%s*([0-9]*)%s*([0-9]*)%s*([0-9]*)")
objRotation = QuatF(x,y,z,w)
if type(objScale) == 'string' then
local x, y, z = string.match(objScale, "([0-9]*)%s*([0-9]*)%s*([0-9]*)%s*")
objScale = vec3(tonumber(x), tonumber(y), tonumber(z))
local bc = v.baseColor
if bc[1] == c[1] and bc[2] == c[2] and bc[3] == c[3] then -- exact match (ends the loop early)
bestPaintName = k
if string.endswith(opt.config, '.pc') then
local configName = string.match(opt.config, "([^./]*).pc")
if model.configs[configName] then
-- because for some reason there are files inside the result if recursive level is >0
if not resMap[value] and not string.match(value, '^.*/.*%..*$') then
res[residx] = value
local pattern = "(%d+)-(%d+)-(%d+)T(%d+):(%d+):(%d+).(%d+)Z"
local year, month, day, hour, min, sec, ms = isoString:match(pattern)
return os.time({year=year, month=month, day=day, hour=hour, min=min, sec=sec})
else
if k:match("^[a-zA-Z_][_%w]*$") then
res[#res + 1] = str_format("%s=%s", k, value_tostring(v))
var locationRegEx = /(.+?)(?::(\d+)(?::(\d+))?)?$/;
var matched = locationString.match(locationRegEx);
local materialFilename = material:getFilename()
local folderPath = string.match(materialFilename, "(.*/)")
actualFilenameWithPath = folderPath .. fileName
for (const line of relevantLines) {
let match = line.match(STACK_TRACE_REGEX_FULL)
let functionName, filePath, lineNum, column
} else {
match = line.match(STACK_TRACE_REGEX)
if (match) {
local dir = string.match(self.PRESETS_FILE, "^(.*)/[^/]*$")
if dir then
local levelName = string.match(job.args[1].path, "/levels/([%w_]+)")
local artFilepath = string.match(job.args[1].path, "/art/(.+)")
local levelName = string.match(job.args[1].path, "/levels/([%w_]+)")
local artFilepath = string.match(job.args[1].path, "/art/(.+)")
local assetsFilepath = string.match(job.args[1].path, "/assets/(.+)")
local artFilepath = string.match(job.args[1].path, "/art/(.+)")
local assetsFilepath = string.match(job.args[1].path, "/assets/(.+)")
local levelName = string.match(asset.path, "/levels/([%w_]+)")
local artFilepath = string.match(asset.path, "/art/(.+)")
local levelName = string.match(asset.path, "/levels/([%w_]+)")
local artFilepath = string.match(asset.path, "/art/(.+)")
local assetsFilepath = string.match(job.args[1].path, "/assets/(.+)")
local artFilepath = string.match(asset.path, "/art/(.+)")
local assetsFilepath = string.match(job.args[1].path, "/assets/(.+)")
if file.fullFileName == "main.level.json" and getMissionFilename() ~= "" then
local levelName = string.match(getMissionFilename(), "/levels/([%w_]+)")
local newSceneTreeEntry = '/levels/' .. levelName .. '/main/'
var.dragDropMesh:registerObject('')
local x,y,z,w = string.match(var.dragDropMesh:getField('rotation', '0'), "(%d+) (%d+) (%d+) (.+)")
var.dragDropRotation = w
if stat.filetype == "dir" then
local name = string.match(path, "[^/]*$") -- name of the folder
if var.options.skipMainFolder == true and name == 'main' then
if stat.filetype == "dir" then
local name = string.match(path, "[^/]*$") -- name of the folder
if var.options.skipMainFolder == true and name == 'main' then
elseif stat.filetype == "file" then
local fileType = string.match(path, "[.].+") or ""
local simpleFileType = string.lower(string.match(path, "[^.]*$"))
local fileType = string.match(path, "[.].+") or ""
local simpleFileType = string.lower(string.match(path, "[^.]*$"))
local fileName = string.match(path, "[^/]*$")
local simpleFileType = string.lower(string.match(path, "[^.]*$"))
local fileName = string.match(path, "[^/]*$")
-- TODO: check if filetype is present
if stat.filetype == "file" then
local fileType = string.match(path, "[.].+") or ""
local simpleFileType = string.lower(string.match(path, "[^.]*$"))
local fileType = string.match(path, "[.].+") or ""
local simpleFileType = string.lower(string.match(path, "[^.]*$"))
local fileName = string.match(path, "[^/]*$")
local simpleFileType = string.lower(string.match(path, "[^.]*$"))
local fileName = string.match(path, "[^/]*$")
-- TODO: check if filetype is present
local function selectFileByPath(path)
local rootFolder = string.match(path, "[%w_]+")
local root = (rootFolder == "levels" and var.root or (rootFolder == "art" and var.commonArt or (rootFolder == "vehicles" and var.vehicles or nil)))
local rootPath = string.gsub(root.path, "//", "/")
local filepath = string.match(string.lower(path), string.lower(rootPath) .."(.+)")
local filename = string.match(filepath, "[^/]*$")
local filepath = string.match(string.lower(path), string.lower(rootPath) .."(.+)")
local filename = string.match(filepath, "[^/]*$")
local fileDir = string.sub(filepath, 1, #filepath - #filename)
local function openDirByPath(path)
local rootFolder = string.match(path, "[%w_]+")
local root = (rootFolder == "levels" and var.root or (rootFolder == "art" and var.commonArt or (rootFolder == "vehicles" and var.vehicles or nil)))
-- Not interested in adding imposters/cache files to asset browser.
if string.match(filetype, "imposter") or string.match(filetype, "dae.png") or string.match(filetype, "cdae") then
return
-- Not interested in adding imposters/cache files to asset browser.
if string.match(filetype, "imposter") or string.match(filetype, "dae.png") or string.match(filetype, "cdae") then
return
-- Not interested in adding imposters/cache files to asset browser.
if string.match(filetype, "imposter") or string.match(filetype, "dae.png") or string.match(filetype, "cdae") then
return
-- Create a new file.
local simpleFileType = string.lower(string.match(filename, "[^.]*$"))
local fileNameNoExt = string.sub(filename, 1, #filename - (#filetype+1))
-- Get levelname or commonArt subfolder.
local levelName, levelFilepath = string.match(path, "^/levels/([%w_]+)(.+)")
local artFilepath = string.match(path, "^/art/(.+)")
local levelName, levelFilepath = string.match(path, "^/levels/([%w_]+)(.+)")
local artFilepath = string.match(path, "^/art/(.+)")
if levelName or artFilepath then
if levelName or artFilepath then
local filename = string.match(path, "[^/]*$")
local filetype = string.match(filename, "[.](.+)")
local filename = string.match(path, "[^/]*$")
local filetype = string.match(filename, "[.](.+)")
local dir = nil
end
local model = v.vehicleDirectory:match("/vehicles/([^/]+)")
-- log("E","stat","m="..dumps(model).."\t"..dumps(relativeOdometer-submitedStatOdo))
return 1;
chunka = a.match(chunk)[0];
chunkb = b.match(chunk)[0];
chunka = a.match(chunk)[0];
chunkb = b.match(chunk)[0];
anum = !isNaN(chunka);
-- figure out name
l.levelName = d:match('levels/([^/]+)')
local function getLevelName(path)
return string.match(path, '^/*levels/(.-)/.*')
end
function trim(s)
return s:match("^%s*(.-)%s*$")
end
function string.stripcharsFrontBack(str, chrs)
str = str:match( "^["..chrs.."]*(.-)["..chrs.."]*$" )
return str
path.split = function(path, compositeExtension)
local dir, filename, ext = string.match(path, "^(.*/)([^/]-([^/%.]*))$")
if dir == nil then -- a single filename only
if dir == nil then -- a single filename only
filename, ext = string.match(path, "^([^/]-([^/%.]*))$")
end
elseif compositeExtension then
ext = string.match(filename, "%.(.*)$")
end
path.levelFromPath = function(filepath)
return string.match(filepath, "levels/([%w_]+)(.*)")
end
if firstChar ~= '#' and firstChar ~= ';' and firstChar ~= '/' then
local key, value = line:match("^([^%s=]+)%s-=%s-(.+)$")
if key and value then
_unflattenTable_rec(v, tableRegister, newPath)
elseif type(v) == 'string' and v:match("%>%#%>(.*)") then
if not tableRegister[v] then
if (stream.eat("[")) {
if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
else return null;
else return null;
} else if (stream.match("--")) {
return chain(inBlock("comment", "-->"));
return chain(inBlock("comment", "-->"));
} else if (stream.match("DOCTYPE", true, true)) {
stream.eatWhile(/[\w\._\-]/);
} else {
stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/);
return "word";
while (!stream.eol()) {
if (stream.match(terminator)) {
state.tokenize = inText;
if (state.tokenize != inTag && state.tokenize != inText)
return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
// Indent the starts of attribute names.
let rangeValues = range.match(/bytes=(\d+)-(\d+)/);
if (!rangeValues)
let requestDataContentType = this.requestDataContentType;
return requestDataContentType && requestDataContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i);
}
if (this.requestDataContentType && this.requestMethod !== "GET" && this.requestData) {
if (this.requestDataContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i))
command.push("--data " + escapeStringPosix(this.requestData));
local function isBlacklisted(path)
local ext = path:lower():match("^.+(%.[^/%.]+)$")
return ext and extBlacklist[ext] or false
if mode == 1 then
return (path:match("([^/]+)$") or path):lower()
else
job.yield()
currentLevelRoot = p:match("^(/levels/[^/]+/)")
break
// instead it was tacked onto the end of the description, like "Array[#]".
var match = payload.description.match(/\[(\d+)\]$/);
if (match) {
var matches = this._description.match(/\[([0-9]+)\]/);
if (!matches)
while ch ~= 34 do -- "
ch = s:match('^[^"\\]*', i)
i = i + (ch and ch:len() or 0)
function getType(ctor) {
const match = ctor && ctor.toString().match(/^\s*function (\w+)/);
return match ? match[1] : '';
if (!name && Component.__file) {
const match = Component.__file.match(/([^/\\]+)\.\w+$/);
if (match) {
// and does not fire microtasks in between event propagation, so safe to exclude.
const ffMatch = navigator.userAgent.match(/firefox\/(\d+)/i);
skipTimestampCheck = !!(ffMatch && Number(ffMatch[1]) <= 53);
let m;
while ((m = name.match(optionsModifierRE))) {
name = name.slice(0, name.length - m[0].length);
function createTransformContext(root, { filename = '', prefixIdentifiers = false, hoistStatic = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError }) {
const nameMatch = filename.replace(/\?.*$/, '').match(/([^/\\]+)\.\w+$/);
const context = {
.replace(stripStringRE, '')
.match(prohibitedKeywordRE);
if (keywordMatch) {
const exp = input.content;
const inMatch = exp.match(forAliasRE);
if (!inMatch)
const trimmedOffset = LHS.indexOf(valueContent);
const iteratorMatch = valueContent.match(forIteratorRE);
if (iteratorMatch) {
local function isFilenameInvalid(filename)
return filename:match("[^a-z0-9_./]") ~= nil
end
for k,v in pairs( L ) do
if string.match( k, "^%u%w*$" ) then
env_index[ k ] = v
function epnf.parse( g, name, input, ... )
return L.match( L.P( g ), input, 1, name, ... ), name, input
end
-- lower case matching
if debug and (string.match(string.lower(type.name), token)
or string.match(string.lower(type.displayName), token)) then
if debug and (string.match(string.lower(type.name), token)
or string.match(string.lower(type.displayName), token)) then
return true
return true
elseif not debug and string.match(string.lower(type), token) then
return true
for _, layoutPath in ipairs(editor_layoutManager.getWindowLayouts()) do
if imgui.MenuItem1(string.match(layoutPath, ".+/(.+)"), nil, imgui_false, imgui_true) then
editor_layoutManager.loadWindowLayout(layoutPath)
for _, layoutPath in ipairs(editor_layoutManager.getWindowLayouts()) do
if imgui.MenuItem1(string.match(layoutPath, ".+/(.+)"), nil, imgui_false, imgui_true) then
editor_layoutManager.deleteWindowLayout(layoutPath)
local deviceList = be:sfxGetAvailableDevices()
local entries = string.match( deviceList, '(.*)\n')
if entries ~= nil then
--print(line)
local match = line:match("^%s*function%s+(%w+)")
if match then
end
match = line:match("^%s*local%s+function%s+(%w+)")
if match then
end
match = line:match("^%s*local%s+(%w+)%s+=%s+function")
if match then
end
match = line:match("%s*function%s*%(") -- this is an anonymous function
if match then
function match()
{
let matched = match();
if (matched)
local internal = not shipping_build or not string.match(beamng_windowtitle, "RELEASE")
for _, map in ipairs(FS:findFiles(self.userDir, '*_layerMap_*.png', -1, false, true)) do
local matName = string.match(map, 'layerMap_%d*_(.*)%.(%w*)$')
if self.materialsToTextureMaps[matName] == false then
local filename = getMissionPath() .. 'terrains/main.materials.json'
local name = string.match(getMissionPath(), "/(.[^/]+)/$") .. "TerrainMaterialTextureSet"
if (components[0].length === 1 && !WI.Color.fromString(components[0][0])) {
let match = components[0][0].match(/([-\d\.]+)(\w+)/);
if (!match || !Object.values(WI.LinearGradient.AngleUnits).includes(match[2]))
end
meshConstructor = jsonDecode(data:match("^//JSON:([%w%g]+)"))
end
local path,filename,ext = path.split(meshFile)
local filenameNoExt = filename:match( "(.+)."..ext.."*$" )
filename = filename:gsub(ext,"cs")
jbeamIO.onFileChanged(filename, type)
local path = string.match(filename, "^(/vehicles/[^/]*/)[^%.]*%.materials%.json$")
if path then
let match = property.text.match(/[^;\s](\s*)$/);
if (match)
-- Load the info.json file
local infoPath = "levels/"..getCurrentLevelIdentifier().."/driftSpots/"..tempSpot.id:match("([^/]+)$").."/info.json"
tempSpot.info = jsonReadFile(infoPath) or {
tempSpot.info = jsonReadFile(infoPath) or {
name = tempSpot.id:match("([^/]+)$"),
objectives = {
-- Extract name from spotId (gets everything after the last '/')
local name = spotId:match("([^/]+)$")
for lineName, lineData in pairs(spotData.spatialInfo.lines) do
return stringToMatch:match(searchPattern) ~= nil
end
end
elseif sectionName:match('^scale') and type(section) == "number" then
modsScalers[sectionName:sub(6, #sectionName)] = {modVal = section, partPath = partName}
bulkChange.name, bulkChange.map, bulkChange.ext = string.match(data.filepath, regexRule)
for k,v in ipairs(filePaths) do
local name, map, ext = string.match(v, regexRule)
local asset = {file = v, name = name, map = map, ext = ext}
false,
string.match(val, "(.+/).+$") or "/",
true
local filename = getMissionPath() .. terrainMaterialTextureSetPath
local name = string.match(getMissionPath(), "/(.[^/]+)/$") .. "TerrainMaterialTextureSet"
end
local missionId = value:match("%((.+)%)$")
return missionId
-- Extract number from label for grouping (e.g., "TC1" -> "1")
local numberMatch = string.match(event.label or "", "%d+$")
if numberMatch then
for _, l in pairs(locales) do
local key = string.match(l, 'locales/(.*).json')
if key ~= "not-shipping.internal" then
-- hide voice by naming the folder with leading underscore or _raw prefix
if basenameVoice and not basenameVoice:match("_raw$") and not basenameVoice:match("^_") then
local key = basenameCmp..'/'..basenameVoice
-- hide voice by naming the folder with leading underscore or _raw prefix
if basenameVoice and not basenameVoice:match("_raw$") and not basenameVoice:match("^_") then
local key = basenameCmp..'/'..basenameVoice
for i, displayName in ipairs(self.missionDropdownItems) do
local missionId = displayName:match("%((.+)%)$")
if missionId == savedMissionId then
local selected = self.missionDropdownItems[luaIndex]
local missionId = selected:match("%((.+)%)$")
return missionId
if posFieldSuccess and posField and posField ~= "" then
local x, y, z = posField:match("([%d%.%-]+)%s+([%d%.%-]+)%s+([%d%.%-]+)")
if x and y and z then
local shouldRecurse = false
local isPrefabUnpacked = string.match(objName, "Prefab.*_unpacked")
local shapeName = signboard.shapeName or ""
local shortName = shapeName:match("s_rally_signboard_(.+)%.dae") or signboard.name
-- local displayText = shortName .. ": " .. signboard.flagValue
-- deal with non-standard locales
local radixmark = match(tostring(0.5), '[^0-9]')
local fixedtonumber = tonumber
local function f_zro(mns)
local num, c = match(json, '^(%.?[0-9]*)([-+.A-Za-z]?)', pos) -- skipping 0
if c == 'e' or c == 'E' then
num, c = match(json, '^([^eE]*[eE][-+]?[0-9]+)([-+.A-Za-z]?)', pos)
if c == '' then
if c == 'e' or c == 'E' then
num, c = match(json, '^([^eE]*[eE][-+]?[0-9]+)([-+.A-Za-z]?)', pos)
end
pos = pos-1
local num, c = match(json, '^([0-9]+%.?[0-9]*)([-+.A-Za-z]?)', pos)
if byte(num, -1) == 0x2E then -- error if ended with period
end
num, c = match(json, '^([^eE]*[eE][-+]?[0-9]+)([-+.A-Za-z]?)', pos)
if not num or c ~= '' then
pos = match(json, '^[ \n\r\t]*()', pos)
ary[i] = f()
newpos = match(json, '^[ \n\r\t]*,[ \n\r\t]*()', pos) -- check comma
until not newpos
newpos = match(json, '^[ \n\r\t]*%]()', pos) -- check closing bracket
if not newpos then
pos = match(json, '^[ \n\r\t]*()', pos)
if byte(json, pos) == 0x7D then -- check closing bracket '}' which means the object empty
if f == f_err then -- read a colon and arbitrary number of spaces
newpos = match(json, '^[ \n\r\t]*:[ \n\r\t]*()', pos)
if not newpos then
obj[key] = f() -- parse value
newpos = match(json, '^[ \n\r\t]*,[ \n\r\t]*()', pos)
until not newpos
newpos = match(json, '^[ \n\r\t]*}()', pos)
if not newpos then
pos = match(json, '^[ \n\r\t]*()', pos)
if not action.direction then return end
return action.direction:match("^(%S+)")
end
else
local modifierNumber = actionName:match("customModifier(%d+)")
if modifierNumber then
action.direction = parseActionDirection(action)
bindingsByAction[binding.action] = {{device = deviceName, control = binding.control:match("([^ ]+)$")}} -- remove the modifiers from the controls in this case
action.bindings = bindingsByAction[binding.action]
-- IPv6?
parsed.host = string.match(authority, "^%[(.+)%]$") or authority
end
for name, func in pairs(tests) do
if type(func) == "function" and name:match("^test") then
table.insert(testNames, name)
local expectedToFail = name:match("_shouldFail$") ~= nil
local testPassed = (status ~= expectedToFail)
-- Ignore keys starting with "__"
if not key:match("^__") then
local info = debug.getinfo(value, "S")
if global_value.___type then
local class_name = global_value.___type:match("class<(.+)>") or global_value.___type:match("static_class<(.+)>")
if class_name then
if global_value.___type then
local class_name = global_value.___type:match("class<(.+)>") or global_value.___type:match("static_class<(.+)>")
if class_name then
if class_name then
local is_static = global_value.___type:match("static_class<") ~= nil
gather_from_table(global_value, class_name, is_static)
if mt.___type then
local class_name = mt.___type:match("class<(.+)>") or mt.___type:match("static_class<(.+)>")
if class_name then
if mt.___type then
local class_name = mt.___type:match("class<(.+)>") or mt.___type:match("static_class<(.+)>")
if class_name then
if class_name then
local is_static = mt.___type:match("static_class<") ~= nil
gather_from_table(mt, class_name, is_static)
if #parts == 2 then
if string.match(parts[1], '%[.*%]') == nil then
-- its a link
local sectioname
groupname, sectioname = string.match(cellKey, '%[(.*)%]:(.*)')
if groupname then
end
return string.match(vidpid, '^[A-Fa-f0-9]+$')
end
data.responseData = r.responseData
data.modID = string.match(uri, '%w+')
for k,v in pairs(progressQueue) do
if v.state == "done" then
table.insert( updmods, {id = v.id, ver = v.ver, dlspeed = r.dlspeed, dltotal = r.dltotal, time = r.time, effectiveURL=r.effectiveURL:match("https?://([%w.:@]+)")} )
end
!function(a,b){"function"==typeof define&&define.amd?define("Chartist",[],function(){return a.Chartist=b()}):"object"==typeof module&&module.exports?module.exports=b():a.Chartist=b()}(this,function(){var a={version:"0.11.0"};return function(a,b,c){"use strict";c.namespaces={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns/",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",ct:"http://gionkunz.github.com/chartist-js/ct"},c.noop=function(a){return a},c.alphaNumerate=function(a){return String.fromCharCode(97+a%26)},c.extend=function(a){var b,d,e;for(a=a||{},b=1;b":">",'"':""","'":"'"},c.serialize=function(a){return null===a||void 0===a?a:("number"==typeof a?a=""+a:"object"==typeof a&&(a=JSON.stringify({data:a})),Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,b,c.escapingMap[b])},a))},c.deserialize=function(a){if("string"!=typeof a)return a;a=Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,c.escapingMap[b],b)},a);try{a=JSON.parse(a),a=void 0!==a.data?a.data:a}catch(b){}return a},c.createSvg=function(a,b,d,e){var f;return b=b||"100%",d=d||"100%",Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function(a){return a.getAttributeNS(c.namespaces.xmlns,"ct")}).forEach(function(b){a.removeChild(b)}),f=new c.Svg("svg").attr({width:b,height:d}).addClass(e),f._node.style.width=b,f._node.style.height=d,a.appendChild(f._node),f},c.normalizeData=function(a,b,d){var e,f={raw:a,normalized:{}};return f.normalized.series=c.getDataArray({series:a.series||[]},b,d),e=f.normalized.series.every(function(a){return a instanceof Array})?Math.max.apply(null,f.normalized.series.map(function(a){return a.length})):f.normalized.series.length,f.normalized.labels=(a.labels||[]).slice(),Array.prototype.push.apply(f.normalized.labels,c.times(Math.max(0,e-f.normalized.labels.length)).map(function(){return""})),b&&c.reverseData(f.normalized),f},c.safeHasProperty=function(a,b){return null!==a&&"object"==typeof a&&a.hasOwnProperty(b)},c.isDataHoleValue=function(a){return null===a||void 0===a||"number"==typeof a&&isNaN(a)},c.reverseData=function(a){a.labels.reverse(),a.series.reverse();for(var b=0;bf.high&&(f.high=c),h&&c0?f.low=0:(f.high=1,f.low=0)),f},c.isNumeric=function(a){return null!==a&&isFinite(a)},c.isFalseyButZero=function(a){return!a&&0!==a},c.getNumberOrUndefined=function(a){return c.isNumeric(a)?+a:void 0},c.isMultiValue=function(a){return"object"==typeof a&&("x"in a||"y"in a)},c.getMultiValue=function(a,b){return c.isMultiValue(a)?c.getNumberOrUndefined(a[b||"y"]):c.getNumberOrUndefined(a)},c.rho=function(a){function b(a,c){return a%c===0?c:b(c,a%c)}function c(a){return a*a+1}if(1===a)return a;var d,e=2,f=2;if(a%2===0)return 2;do e=c(e)%a,f=c(c(f))%a,d=b(Math.abs(e-f),a);while(1===d);return d},c.getBounds=function(a,b,d,e){function f(a,b){return a===(a+=b)&&(a*=1+(b>0?o:-o)),a}var g,h,i,j=0,k={high:b.high,low:b.low};k.valueRange=k.high-k.low,k.oom=c.orderOfMagnitude(k.valueRange),k.step=Math.pow(10,k.oom),k.min=Math.floor(k.low/k.step)*k.step,k.max=Math.ceil(k.high/k.step)*k.step,k.range=k.max-k.min,k.numberOfSteps=Math.round(k.range/k.step);var l=c.projectLength(a,k.step,k),m=l=d)k.step=1;else if(e&&n=d)k.step=n;else for(;;){if(m&&c.projectLength(a,k.step,k)<=d)k.step*=2;else{if(m||!(c.projectLength(a,k.step/2,k)>=d))break;if(k.step/=2,e&&k.step%1!==0){k.step*=2;break}}if(j++>1e3)throw new Error("Exceeded maximum number of iterations while optimizing scale step!")}var o=2.221e-16;for(k.step=Math.max(k.step,o),h=k.min,i=k.max;h+k.step<=k.low;)h=f(h,k.step);for(;i-k.step>=k.high;)i=f(i,-k.step);k.min=h,k.max=i,k.range=k.max-k.min;var p=[];for(g=k.min;g<=k.max;g=f(g,k.step)){var q=c.roundWithPrecision(g);q!==p[p.length-1]&&p.push(q)}return k.values=p,k},c.polarToCartesian=function(a,b,c,d){var e=(d-90)*Math.PI/180;return{x:a+c*Math.cos(e),y:b+c*Math.sin(e)}},c.createChartRect=function(a,b,d){var e=!(!b.axisX&&!b.axisY),f=e?b.axisY.offset:0,g=e?b.axisX.offset:0,h=a.width()||c.quantity(b.width).value||0,i=a.height()||c.quantity(b.height).value||0,j=c.normalizePadding(b.chartPadding,d);h=Math.max(h,f+j.left+j.right),i=Math.max(i,g+j.top+j.bottom);var k={padding:j,width:function(){return this.x2-this.x1},height:function(){return this.y1-this.y2}};return e?("start"===b.axisX.position?(k.y2=j.top+g,k.y1=Math.max(i-j.bottom,k.y2+1)):(k.y2=j.top,k.y1=Math.max(i-j.bottom-g,k.y2+1)),"start"===b.axisY.position?(k.x1=j.left+f,k.x2=Math.max(h-j.right,k.x1+1)):(k.x1=j.left,k.x2=Math.max(h-j.right-f,k.x1+1))):(k.x1=j.left,k.x2=Math.max(h-j.right,k.x1+1),k.y2=j.top,k.y1=Math.max(i-j.bottom,k.y2+1)),k},c.createGrid=function(a,b,d,e,f,g,h,i){var j={};j[d.units.pos+"1"]=a,j[d.units.pos+"2"]=a,j[d.counterUnits.pos+"1"]=e,j[d.counterUnits.pos+"2"]=e+f;var k=g.elem("line",j,h.join(" "));i.emit("draw",c.extend({type:"grid",axis:d,index:b,group:g,element:k},j))},c.createGridBackground=function(a,b,c,d){var e=a.elem("rect",{x:b.x1,y:b.y2,width:b.width(),height:b.height()},c,!0);d.emit("draw",{type:"gridBackground",group:a,element:e})},c.createLabel=function(a,d,e,f,g,h,i,j,k,l,m){var n,o={};if(o[g.units.pos]=a+i[g.units.pos],o[g.counterUnits.pos]=i[g.counterUnits.pos],o[g.units.len]=d,o[g.counterUnits.len]=Math.max(0,h-10),l){var p=b.createElement("span");p.className=k.join(" "),p.setAttribute("xmlns",c.namespaces.xhtml),p.innerText=f[e],p.style[g.units.len]=Math.round(o[g.units.len])+"px",p.style[g.counterUnits.len]=Math.round(o[g.counterUnits.len])+"px",n=j.foreignObject(p,c.extend({style:"overflow: visible;"},o))}else n=j.elem("text",o,k.join(" ")).text(f[e]);m.emit("draw",c.extend({type:"label",axis:g,index:e,group:j,element:n,text:f[e]},o))},c.getSeriesOption=function(a,b,c){if(a.name&&b.series&&b.series[a.name]){var d=b.series[a.name];return d.hasOwnProperty(c)?d[c]:b[c]}return b[c]},c.optionsProvider=function(b,d,e){function f(b){var f=h;if(h=c.extend({},j),d)for(i=0;i=2&&a[h]<=a[h-2]&&(g=!0),g&&(f.push({pathCoordinates:[],valueData:[]}),g=!1),f[f.length-1].pathCoordinates.push(a[h],a[h+1]),f[f.length-1].valueData.push(b[h/2]));return f}}(window,document,a),function(a,b,c){"use strict";c.Interpolation={},c.Interpolation.none=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function(b,d){for(var e=new c.Svg.Path,f=!0,g=0;g1){var i=[];return h.forEach(function(a){i.push(f(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(i)}if(b=h[0].pathCoordinates,g=h[0].valueData,b.length<=4)return c.Interpolation.none()(b,g);for(var j,k=(new c.Svg.Path).move(b[0],b[1],!1,g[0]),l=0,m=b.length;m-2*!j>l;l+=2){var n=[{x:+b[l-2],y:+b[l-1]},{x:+b[l],y:+b[l+1]},{x:+b[l+2],y:+b[l+3]},{x:+b[l+4],y:+b[l+5]}];j?l?m-4===l?n[3]={x:+b[0],y:+b[1]}:m-2===l&&(n[2]={x:+b[0],y:+b[1]},n[3]={x:+b[2],y:+b[3]}):n[0]={x:+b[m-2],y:+b[m-1]}:m-4===l?n[3]=n[2]:l||(n[0]={x:+b[l],y:+b[l+1]}),k.curve(d*(-n[0].x+6*n[1].x+n[2].x)/6+e*n[2].x,d*(-n[0].y+6*n[1].y+n[2].y)/6+e*n[2].y,d*(n[1].x+6*n[2].x-n[3].x)/6+e*n[2].x,d*(n[1].y+6*n[2].y-n[3].y)/6+e*n[2].y,n[2].x,n[2].y,!1,g[(l+2)/2])}return k}return c.Interpolation.none()([])}},c.Interpolation.monotoneCubic=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function d(b,e){var f=c.splitIntoSegments(b,e,{fillHoles:a.fillHoles,increasingX:!0});if(f.length){if(f.length>1){var g=[];return f.forEach(function(a){g.push(d(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(g)}if(b=f[0].pathCoordinates,e=f[0].valueData,b.length<=4)return c.Interpolation.none()(b,e);var h,i,j=[],k=[],l=b.length/2,m=[],n=[],o=[],p=[];for(h=0;h0!=n[h]>0?m[h]=0:(m[h]=3*(p[h-1]+p[h])/((2*p[h]+p[h-1])/n[h-1]+(p[h]+2*p[h-1])/n[h]),isFinite(m[h])||(m[h]=0));for(i=(new c.Svg.Path).move(j[0],k[0],!1,e[0]),h=0;h1}).map(function(a){var b=a.pathElements[0],c=a.pathElements[a.pathElements.length-1];return a.clone(!0).position(0).remove(1).move(b.x,r).line(b.x,b.y).position(a.pathElements.length+1).line(c.x,r)}).forEach(function(c){var h=i.elem("path",{d:c.stringify()},a.classNames.area,!0);this.eventEmitter.emit("draw",{type:"area",values:b.normalized.series[g],path:c.clone(),series:f,seriesIndex:g,axisX:d,axisY:e,chartRect:j,index:g,group:i,element:h})}.bind(this))}}.bind(this)),this.eventEmitter.emit("created",{bounds:e.bounds,chartRect:j,axisX:d,axisY:e,svg:this.svg,options:a})}function e(a,b,d,e){c.Line["super"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,showLine:!0,showPoint:!0,showArea:!1,areaBase:0,lineSmooth:!0,showGridBackground:!1,low:void 0,high:void 0,chartPadding:{top:15,right:15,bottom:5,left:10},fullWidth:!1,reverseData:!1,classNames:{chart:"ct-chart-line",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",line:"ct-line",point:"ct-point",area:"ct-area",grid:"ct-grid",gridGroup:"ct-grids",gridBackground:"ct-grid-background",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}};c.Line=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){"use strict";function d(a){var b,d;a.distributeSeries?(b=c.normalizeData(this.data,a.reverseData,a.horizontalBars?"x":"y"),b.normalized.series=b.normalized.series.map(function(a){return[a]})):b=c.normalizeData(this.data,a.reverseData,a.horizontalBars?"x":"y"),this.svg=c.createSvg(this.container,a.width,a.height,a.classNames.chart+(a.horizontalBars?" "+a.classNames.horizontalBars:""));var e=this.svg.elem("g").addClass(a.classNames.gridGroup),g=this.svg.elem("g"),h=this.svg.elem("g").addClass(a.classNames.labelGroup);if(a.stackBars&&0!==b.normalized.series.length){var i=c.serialMap(b.normalized.series,function(){
return Array.prototype.slice.call(arguments).map(function(a){return a}).reduce(function(a,b){return{x:a.x+(b&&b.x)||0,y:a.y+(b&&b.y)||0}},{x:0,y:0})});d=c.getHighLow([i],a,a.horizontalBars?"x":"y")}else d=c.getHighLow(b.normalized.series,a,a.horizontalBars?"x":"y");d.high=+a.high||(0===a.high?0:d.high),d.low=+a.low||(0===a.low?0:d.low);var j,k,l,m,n,o=c.createChartRect(this.svg,a,f.padding);k=a.distributeSeries&&a.stackBars?b.normalized.labels.slice(0,1):b.normalized.labels,a.horizontalBars?(j=m=void 0===a.axisX.type?new c.AutoScaleAxis(c.Axis.units.x,b.normalized.series,o,c.extend({},a.axisX,{highLow:d,referenceValue:0})):a.axisX.type.call(c,c.Axis.units.x,b.normalized.series,o,c.extend({},a.axisX,{highLow:d,referenceValue:0})),l=n=void 0===a.axisY.type?new c.StepAxis(c.Axis.units.y,b.normalized.series,o,{ticks:k}):a.axisY.type.call(c,c.Axis.units.y,b.normalized.series,o,a.axisY)):(l=m=void 0===a.axisX.type?new c.StepAxis(c.Axis.units.x,b.normalized.series,o,{ticks:k}):a.axisX.type.call(c,c.Axis.units.x,b.normalized.series,o,a.axisX),j=n=void 0===a.axisY.type?new c.AutoScaleAxis(c.Axis.units.y,b.normalized.series,o,c.extend({},a.axisY,{highLow:d,referenceValue:0})):a.axisY.type.call(c,c.Axis.units.y,b.normalized.series,o,c.extend({},a.axisY,{highLow:d,referenceValue:0})));var p=a.horizontalBars?o.x1+j.projectValue(0):o.y1-j.projectValue(0),q=[];l.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),j.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),a.showGridBackground&&c.createGridBackground(e,o,a.classNames.gridBackground,this.eventEmitter),b.raw.series.forEach(function(d,e){var f,h,i=e-(b.raw.series.length-1)/2;f=a.distributeSeries&&!a.stackBars?l.axisLength/b.normalized.series.length/2:a.distributeSeries&&a.stackBars?l.axisLength/2:l.axisLength/b.normalized.series[e].length/2,h=g.elem("g"),h.attr({"ct:series-name":d.name,"ct:meta":c.serialize(d.meta)}),h.addClass([a.classNames.series,d.className||a.classNames.series+"-"+c.alphaNumerate(e)].join(" ")),b.normalized.series[e].forEach(function(g,k){var r,s,t,u;if(u=a.distributeSeries&&!a.stackBars?e:a.distributeSeries&&a.stackBars?0:k,r=a.horizontalBars?{x:o.x1+j.projectValue(g&&g.x?g.x:0,k,b.normalized.series[e]),y:o.y1-l.projectValue(g&&g.y?g.y:0,u,b.normalized.series[e])}:{x:o.x1+l.projectValue(g&&g.x?g.x:0,u,b.normalized.series[e]),y:o.y1-j.projectValue(g&&g.y?g.y:0,k,b.normalized.series[e])},l instanceof c.StepAxis&&(l.options.stretch||(r[l.units.pos]+=f*(a.horizontalBars?-1:1)),r[l.units.pos]+=a.stackBars||a.distributeSeries?0:i*a.seriesBarDistance*(a.horizontalBars?-1:1)),t=q[k]||p,q[k]=t-(p-r[l.counterUnits.pos]),void 0!==g){var v={};v[l.units.pos+"1"]=r[l.units.pos],v[l.units.pos+"2"]=r[l.units.pos],!a.stackBars||"accumulate"!==a.stackMode&&a.stackMode?(v[l.counterUnits.pos+"1"]=p,v[l.counterUnits.pos+"2"]=r[l.counterUnits.pos]):(v[l.counterUnits.pos+"1"]=t,v[l.counterUnits.pos+"2"]=q[k]),v.x1=Math.min(Math.max(v.x1,o.x1),o.x2),v.x2=Math.min(Math.max(v.x2,o.x1),o.x2),v.y1=Math.min(Math.max(v.y1,o.y2),o.y1),v.y2=Math.min(Math.max(v.y2,o.y2),o.y1);var w=c.getMetaData(d,k);s=h.elem("line",v,a.classNames.bar).attr({"ct:value":[g.x,g.y].filter(c.isNumeric).join(","),"ct:meta":c.serialize(w)}),this.eventEmitter.emit("draw",c.extend({type:"bar",value:g,index:k,meta:w,series:d,seriesIndex:e,axisX:m,axisY:n,chartRect:o,group:h,element:s},v))}}.bind(this))}.bind(this)),this.eventEmitter.emit("created",{bounds:j.bounds,chartRect:o,axisX:m,axisY:n,svg:this.svg,options:a})}function e(a,b,d,e){c.Bar["super"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:30,onlyInteger:!1},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,high:void 0,low:void 0,referenceValue:0,chartPadding:{top:15,right:15,bottom:5,left:10},seriesBarDistance:15,stackBars:!1,stackMode:"accumulate",horizontalBars:!1,distributeSeries:!1,reverseData:!1,showGridBackground:!1,classNames:{chart:"ct-chart-bar",horizontalBars:"ct-horizontal-bars",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",bar:"ct-bar",grid:"ct-grid",gridGroup:"ct-grids",gridBackground:"ct-grid-background",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}};c.Bar=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){"use strict";function d(a,b,c){var d=b.x>a.x;return d&&"explode"===c||!d&&"implode"===c?"start":d&&"implode"===c||!d&&"explode"===c?"end":"middle"}function e(a){var b,e,f,h,i,j=c.normalizeData(this.data),k=[],l=a.startAngle;this.svg=c.createSvg(this.container,a.width,a.height,a.donut?a.classNames.chartDonut:a.classNames.chartPie),e=c.createChartRect(this.svg,a,g.padding),f=Math.min(e.width()/2,e.height()/2),i=a.total||j.normalized.series.reduce(function(a,b){return a+b},0);var m=c.quantity(a.donutWidth);"%"===m.unit&&(m.value*=f/100),f-=a.donut&&!a.donutSolid?m.value/2:0,h="outside"===a.labelPosition||a.donut&&!a.donutSolid?f:"center"===a.labelPosition?0:a.donutSolid?f-m.value/2:f/2,h+=a.labelOffset;var n={x:e.x1+e.width()/2,y:e.y2+e.height()/2},o=1===j.raw.series.filter(function(a){return a.hasOwnProperty("value")?0!==a.value:0!==a}).length;j.raw.series.forEach(function(a,b){k[b]=this.svg.elem("g",null,null)}.bind(this)),a.showLabel&&(b=this.svg.elem("g",null,null)),j.raw.series.forEach(function(e,g){if(0!==j.normalized.series[g]||!a.ignoreEmptyValues){k[g].attr({"ct:series-name":e.name}),k[g].addClass([a.classNames.series,e.className||a.classNames.series+"-"+c.alphaNumerate(g)].join(" "));var p=i>0?l+j.normalized.series[g]/i*360:0,q=Math.max(0,l-(0===g||o?0:.2));p-q>=359.99&&(p=q+359.99);var r,s,t,u=c.polarToCartesian(n.x,n.y,f,q),v=c.polarToCartesian(n.x,n.y,f,p),w=new c.Svg.Path(!a.donut||a.donutSolid).move(v.x,v.y).arc(f,f,0,p-l>180,0,u.x,u.y);a.donut?a.donutSolid&&(t=f-m.value,r=c.polarToCartesian(n.x,n.y,t,l-(0===g||o?0:.2)),s=c.polarToCartesian(n.x,n.y,t,p),w.line(r.x,r.y),w.arc(t,t,0,p-l>180,1,s.x,s.y)):w.line(n.x,n.y);var x=a.classNames.slicePie;a.donut&&(x=a.classNames.sliceDonut,a.donutSolid&&(x=a.classNames.sliceDonutSolid));var y=k[g].elem("path",{d:w.stringify()},x);if(y.attr({"ct:value":j.normalized.series[g],"ct:meta":c.serialize(e.meta)}),a.donut&&!a.donutSolid&&(y._node.style.strokeWidth=m.value+"px"),this.eventEmitter.emit("draw",{type:"slice",value:j.normalized.series[g],totalDataSum:i,index:g,meta:e.meta,series:e,group:k[g],element:y,path:w.clone(),center:n,radius:f,startAngle:l,endAngle:p}),a.showLabel){var z;z=1===j.raw.series.length?{x:n.x,y:n.y}:c.polarToCartesian(n.x,n.y,h,l+(p-l)/2);var A;A=j.normalized.labels&&!c.isFalseyButZero(j.normalized.labels[g])?j.normalized.labels[g]:j.normalized.series[g];var B=a.labelInterpolationFnc(A,g);if(B||0===B){var C=b.elem("text",{dx:z.x,dy:z.y,"text-anchor":d(n,z,a.labelDirection)},a.classNames.label).text(""+B);this.eventEmitter.emit("draw",{type:"label",index:g,group:b,element:C,text:""+B,x:z.x,y:z.y})}}l=p}}.bind(this)),this.eventEmitter.emit("created",{chartRect:e,svg:this.svg,options:a})}function f(a,b,d,e){c.Pie["super"].constructor.call(this,a,b,g,c.extend({},g,d),e)}var g={width:void 0,height:void 0,chartPadding:5,classNames:{chartPie:"ct-chart-pie",chartDonut:"ct-chart-donut",series:"ct-series",slicePie:"ct-slice-pie",sliceDonut:"ct-slice-donut",sliceDonutSolid:"ct-slice-donut-solid",label:"ct-label"},startAngle:0,total:void 0,donut:!1,donutSolid:!1,donutWidth:60,showLabel:!0,labelOffset:0,labelPosition:"inside",labelInterpolationFnc:c.noop,labelDirection:"neutral",reverseData:!1,ignoreEmptyValues:!1};c.Pie=c.Base.extend({constructor:f,createChart:e,determineAnchorPosition:d})}(window,document,a),a});
*/
!function(e,n){"use strict";var r=["ng","oc.lazyLoad"],o={},t=[],i=[],a=[],s=[],u=e.noop,c={},l=[],d=e.module("oc.lazyLoad",["ng"]);d.provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(d,f,p,m,v,y){function L(n,o,t){if(o){var i,s,d,f=[];for(i=o.length-1;i>=0;i--)if(s=o[i],e.isString(s)||(s=E(s)),s&&-1===l.indexOf(s)&&(!_[s]||-1!==a.indexOf(s))){var h=-1===r.indexOf(s);if(d=g(s),h&&(r.push(s),L(n,d.requires,t)),d._runBlocks.length>0)for(c[s]=[];d._runBlocks.length>0;)c[s].push(d._runBlocks.shift());e.isDefined(c[s])&&(h||t.rerun)&&(f=f.concat(c[s])),j(n,d._invokeQueue,s,t.reconfig),j(n,d._configBlocks,s,t.reconfig),u(h?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",s),o.pop(),l.push(s)}var p=n.getInstanceInjector();e.forEach(f,function(e){p.invoke(e)})}}function $(n,r){function t(n,r){var o,t=!0;return r.length&&(o=i(n),e.forEach(r,function(e){t=t&&i(e)!==o})),t}function i(n){return e.isArray(n)?M(n.toString()):e.isObject(n)?M(D(n)):e.isDefined(n)&&null!==n?M(n.toString()):n}var a=n[2][0],s=n[1],c=!1;e.isUndefined(o[r])&&(o[r]={}),e.isUndefined(o[r][s])&&(o[r][s]={});var l=function(e,n){o[r][s].hasOwnProperty(e)||(o[r][s][e]=[]),t(n,o[r][s][e])&&(c=!0,o[r][s][e].push(n),u("ocLazyLoad.componentLoaded",[r,s,e]))};if(e.isString(a))l(a,n[2][1]);else{if(!e.isObject(a))return!1;e.forEach(a,function(n,r){e.isString(n)?l(n,a[1]):l(r,n)})}return c}function j(n,r,o,i){if(r){var a,s,u,c;for(a=0,s=r.length;s>a;a++)if(u=r[a],e.isArray(u)){if(null!==n){if(!n.hasOwnProperty(u[0]))throw new Error("unsupported provider "+u[0]);c=n[u[0]]}var l=$(u,o);if("invoke"!==u[1])l&&e.isDefined(c)&&c[u[1]].apply(c,u[2]);else{var d=function(n){var r=t.indexOf(o+"-"+n);(-1===r||i)&&(-1===r&&t.push(o+"-"+n),e.isDefined(c)&&c[u[1]].apply(c,u[2]))};if(e.isFunction(u[2][0]))d(u[2][0]);else if(e.isArray(u[2][0]))for(var f=0,h=u[2][0].length;h>f;f++)e.isFunction(u[2][0][f])&&d(u[2][0][f])}}}}function E(n){var r=null;return e.isString(n)?r=n:e.isObject(n)&&n.hasOwnProperty("name")&&e.isString(n.name)&&(r=n.name),r}function w(n){if(!e.isString(n))return!1;try{return g(n)}catch(r){if(/No module/.test(r)||r.message.indexOf("$injector:nomod")>-1)return!1}}var _={},O={$controllerProvider:d,$compileProvider:p,$filterProvider:m,$provide:f,$injector:v,$animateProvider:y},x=!1,b=!1,z=[],S={};z.push=function(e){-1===this.indexOf(e)&&Array.prototype.push.apply(this,arguments)},this.config=function(n){e.isDefined(n.modules)&&(e.isArray(n.modules)?e.forEach(n.modules,function(e){_[e.name]=e}):_[n.modules.name]=n.modules),e.isDefined(n.debug)&&(x=n.debug),e.isDefined(n.events)&&(b=n.events)},this._init=function(o){if(0===i.length){var t=[o],a=["ng:app","ng-app","x-ng-app","data-ng-app"],u=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,c=function(e){return e&&t.push(e)};e.forEach(a,function(n){a[n]=!0,c(document.getElementById(n)),n=n.replace(":","\\:"),"undefined"!=typeof o[0]&&o[0].querySelectorAll&&(e.forEach(o[0].querySelectorAll("."+n),c),e.forEach(o[0].querySelectorAll("."+n+"\\:"),c),e.forEach(o[0].querySelectorAll("["+n+"]"),c))}),e.forEach(t,function(n){if(0===i.length){var r=" "+o.className+" ",t=u.exec(r);t?i.push((t[2]||"").replace(/\s+/g,",")):e.forEach(n.attributes,function(e){0===i.length&&a[e.name]&&i.push(e.value)})}})}0!==i.length||(n.jasmine||n.mocha)&&e.isDefined(e.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad.");var l=function d(n){if(-1===r.indexOf(n)){r.push(n);var o=e.module(n);j(null,o._invokeQueue,n),j(null,o._configBlocks,n),e.forEach(o.requires,d)}};e.forEach(i,function(e){l(e)}),i=[],s.pop()};var D=function(n){try{return JSON.stringify(n)}catch(r){var o=[];return JSON.stringify(n,function(n,r){if(e.isObject(r)&&null!==r){if(-1!==o.indexOf(r))return;o.push(r)}return r})}},M=function(e){var n,r,o,t=0;if(0==e.length)return t;for(n=0,o=e.length;o>n;n++)r=e.charCodeAt(n),t=(t<<5)-t+r,t|=0;return t};this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(n,o,t,a,c){function d(e){var r=c.defer();return n.error(e.message),r.reject(e),r.promise}var f,p=a("ocLazyLoad");return x||(n={},n.error=e.noop,n.warn=e.noop,n.info=e.noop),O.getInstanceInjector=function(){return f?f:f=o.data("$injector")||e.injector()},u=function(e,r){b&&t.$broadcast(e,r),x&&n.info(e,r)},{_broadcast:u,_$log:n,_getFilesCache:function(){return p},toggleWatch:function(e){e?s.push(!0):s.pop()},getModuleConfig:function(n){if(!e.isString(n))throw new Error("You need to give the name of the module to get");return _[n]?e.copy(_[n]):null},setModuleConfig:function(n){if(!e.isObject(n))throw new Error("You need to give the module config object to set");return _[n.name]=n,n},getModules:function(){return r},isLoaded:function(n){var o=function(e){var n=r.indexOf(e)>-1;return n||(n=!!w(e)),n};if(e.isString(n)&&(n=[n]),e.isArray(n)){var t,i;for(t=0,i=n.length;i>t;t++)if(!o(n[t]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:E,_getModule:function(e){try{return g(e)}catch(n){throw(/No module/.test(n)||n.message.indexOf("$injector:nomod")>-1)&&(n.message='The module "'+D(e)+'" that you are trying to load does not exist. '+n.message),n}},moduleExists:w,_loadDependencies:function(n,r){var o,t,i,a=[],s=this;if(n=s._getModuleName(n),null===n)return c.when();try{o=s._getModule(n)}catch(u){return d(u)}return t=s.getRequires(o),e.forEach(t,function(o){if(e.isString(o)){var t=s.getModuleConfig(o);if(null===t)return void z.push(o);o=t,t.name=void 0}if(s.moduleExists(o.name))return i=o.files.filter(function(e){return s.getModuleConfig(o.name).files.indexOf(e)<0}),0!==i.length&&s._$log.warn('Module "',n,'" attempted to redefine configuration for dependency. "',o.name,'"\n Additional Files Loaded:',i),e.isDefined(s.filesLoader)?void a.push(s.filesLoader(o,r).then(function(){return s._loadDependencies(o)})):d(new Error("Error: New dependencies need to be loaded from external files ("+o.files+"), but no loader has been defined."));if(e.isArray(o)){var u=[];e.forEach(o,function(e){var n=s.getModuleConfig(e);null===n?u.push(e):n.files&&(u=u.concat(n.files))}),u.length>0&&(o={files:u})}else e.isObject(o)&&o.hasOwnProperty("name")&&o.name&&(s.setModuleConfig(o),z.push(o.name));if(e.isDefined(o.files)&&0!==o.files.length){if(!e.isDefined(s.filesLoader))return d(new Error('Error: the module "'+o.name+'" is defined in external files ('+o.files+"), but no loader has been defined."));a.push(s.filesLoader(o,r).then(function(){return s._loadDependencies(o)}))}}),c.all(a)},inject:function(n){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],t=this,a=c.defer();if(e.isDefined(n)&&null!==n){if(e.isArray(n)){var s=[];return e.forEach(n,function(e){s.push(t.inject(e,r,o))}),c.all(s)}t._addToLoadList(t._getModuleName(n),!0,o)}if(i.length>0){var u=i.slice(),d=function f(e){z.push(e),S[e]=a.promise,t._loadDependencies(e,r).then(function(){try{l=[],L(O,z,r)}catch(e){return t._$log.error(e.message),void a.reject(e)}i.length>0?f(i.shift()):a.resolve(u)},function(e){a.reject(e)})};d(i.shift())}else{if(r&&r.name&&S[r.name])return S[r.name];a.resolve()}return a.promise},getRequires:function(n){var o=[];return e.forEach(n.requires,function(e){-1===r.indexOf(e)&&o.push(e)}),o},_invokeQueue:j,_registerInvokeList:$,_register:L,_addToLoadList:h}}],this._init(e.element(n.document))}]);var f=e.bootstrap;e.bootstrap=function(n,r,o){return e.forEach(r.slice(),function(e){h(e,!0,!0)}),f(n,r,o)};var h=function(n,r,o){(s.length>0||r)&&e.isString(n)&&-1===i.indexOf(n)&&(i.push(n),o&&a.push(n))},g=e.module;e.module=function(e,n,r){return h(e,!1,!0),g(e,n,r)},"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(e){"use strict";e.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(n,r,o,t,i){return{restrict:"A",terminal:!0,priority:1e3,compile:function(i,a){var s=i[0].innerHTML;return i.html(""),function(i,a,u){var c=t(u.ocLazyLoad);i.$watch(function(){return c(i)||u.ocLazyLoad},function(t){e.isDefined(t)&&n.load(t).then(function(){o.enter(s,a),r(a.contents())(i)})},!0)}}}}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(n,r,o,t){var i=!1,a=!1,s=o.document.getElementsByTagName("head")[0]||o.document.getElementsByTagName("body")[0];return n.buildElement=function(u,c,l){var d,f,h=r.defer(),g=n._getFilesCache(),p=function(e){var n=(new Date).getTime();return e.indexOf("?")>=0?"&"===e.substring(0,e.length-1)?e+"_dc="+n:e+"&_dc="+n:e+"?_dc="+n};switch(e.isUndefined(g.get(c))&&g.put(c,h.promise),u){case"css":d=o.document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=l.cache===!1?p(c):c;break;case"js":d=o.document.createElement("script"),d.src=l.cache===!1?p(c):c;break;default:g.remove(c),h.reject(new Error('Requested type "'+u+'" is not known. Could not inject "'+c+'"'))}d.onload=d.onreadystatechange=function(e){d.readyState&&!/^c|loade/.test(d.readyState)||f||(d.onload=d.onreadystatechange=null,f=1,n._broadcast("ocLazyLoad.fileLoaded",c),h.resolve())},d.onerror=function(){g.remove(c),h.reject(new Error("Unable to load "+c))},d.async=l.serie?0:1;var m=s.lastChild;if(l.insertBefore){var v=e.element(e.isDefined(window.jQuery)?l.insertBefore:document.querySelector(l.insertBefore));v&&v.length>0&&(m=v[0])}if(m.parentNode.insertBefore(d,m),"css"==u){if(!i){var y=o.navigator.userAgent.toLowerCase();if(/iP(hone|od|ad)/.test(o.navigator.platform)){var L=o.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),$=parseFloat([parseInt(L[1],10),parseInt(L[2],10),parseInt(L[3]||0,10)].join("."));a=6>$}else if(y.indexOf("android")>-1){var j=parseFloat(y.slice(y.indexOf("android")+8));a=4.4>j}else if(y.indexOf("safari")>-1){var E=y.match(/version\/([\.\d]+)/i);a=E&&E[1]&&parseFloat(E[1])<6}}if(a)var w=1e3,_=t(function(){try{d.sheet.cssRules,t.cancel(_),d.onload()}catch(e){--w<=0&&d.onerror()}},20)}return h.promise},n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q",function(n,r){return n.filesLoader=function(o){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=[],a=[],s=[],u=[],c=null,l=n._getFilesCache();n.toggleWatch(!0),e.extend(t,o);var d=function(r){var o,d=null;if(e.isObject(r)&&(d=r.type,r=r.path),c=l.get(r),e.isUndefined(c)||t.cache===!1){if(null!==(o=/^(css|less|html|htm|js)?(?=!)/.exec(r))&&(d=o[1],r=r.substr(o[1].length+1,r.length)),!d)if(null!==(o=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(r)))d=o[1];else{if(n.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!n.jsLoader.hasOwnProperty("requirejs"))return void n._$log.error("File type could not be determined. "+r);d="js"}"css"!==d&&"less"!==d||-1!==i.indexOf(r)?"html"!==d&&"htm"!==d||-1!==a.indexOf(r)?"js"===d||-1===s.indexOf(r)?s.push(r):n._$log.error("File type is not valid. "+r):a.push(r):i.push(r)}else c&&u.push(c)};if(t.serie?d(t.files.shift()):e.forEach(t.files,function(e){d(e)}),i.length>0){var f=r.defer();n.cssLoader(i,function(r){e.isDefined(r)&&n.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(n._$log.error(r),f.reject(r)):f.resolve()},t),u.push(f.promise)}if(a.length>0){var h=r.defer();n.templatesLoader(a,function(r){e.isDefined(r)&&n.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(n._$log.error(r),h.reject(r)):h.resolve()},t),u.push(h.promise)}if(s.length>0){var g=r.defer();n.jsLoader(s,function(r){e.isDefined(r)&&(n.jsLoader.hasOwnProperty("ocLazyLoadLoader")||n.jsLoader.hasOwnProperty("requirejs"))?(n._$log.error(r),g.reject(r)):g.resolve()},t),u.push(g.promise)}if(0===u.length){var p=r.defer(),m="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.";return n._$log.error(m),p.reject(m),p.promise}return t.serie&&t.files.length>0?r.all(u).then(function(){return n.filesLoader(o,t)}):r.all(u)["finally"](function(e){return n.toggleWatch(!1),e})},n.load=function(o){var t,i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],a=this,s=null,u=[],c=r.defer(),l=e.copy(o),d=e.copy(i);if(e.isArray(l))return e.forEach(l,function(e){u.push(a.load(e,d))}),r.all(u).then(function(e){c.resolve(e)},function(e){c.reject(e)}),c.promise;if(e.isString(l)?(s=a.getModuleConfig(l),s||(s={files:[l]})):e.isObject(l)&&(s=e.isDefined(l.path)&&e.isDefined(l.type)?{files:[l]}:a.setModuleConfig(l)),null===s){var f=a._getModuleName(l);return t='Module "'+(f||"unknown")+'" is not configured, cannot load.',n._$log.error(t),c.reject(new Error(t)),c.promise}e.isDefined(s.template)&&(e.isUndefined(s.files)&&(s.files=[]),e.isString(s.template)?s.files.push(s.template):e.isArray(s.template)&&s.files.concat(s.template));var h=e.extend({},d,s);return e.isUndefined(s.files)&&e.isDefined(s.name)&&n.moduleExists(s.name)?n.inject(s.name,h,!0):(n.filesLoader(s,h).then(function(){n.inject(null,h).then(function(e){c.resolve(e)},function(e){c.reject(e)})},function(e){c.reject(e)}),c.promise)},n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q",function(n,r){return n.cssLoader=function(o,t,i){var a=[];e.forEach(o,function(e){a.push(n.buildElement("css",e,i))}),r.all(a).then(function(){t()},function(e){t(e)})},n.cssLoader.ocLazyLoadLoader=!0,n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q",function(n,r){return n.jsLoader=function(o,t,i){var a=[];e.forEach(o,function(e){a.push(n.buildElement("js",e,i))}),r.all(a).then(function(){t()},function(e){t(e)})},n.jsLoader.ocLazyLoadLoader=!0,n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(n,r,o,t){return n.templatesLoader=function(i,a,s){var u=[],c=n._getFilesCache();return e.forEach(i,function(n){var i=o.defer();u.push(i.promise),t.get(n,s).success(function(o){e.isString(o)&&o.length>0&&e.forEach(e.element(o),function(e){"SCRIPT"===e.nodeName&&"text/ng-template"===e.type&&r.put(e.id,e.innerHTML)}),e.isUndefined(c.get(n))&&c.put(n,!0),i.resolve()}).error(function(e){i.reject(new Error('Unable to load template file "'+n+'": '+e))})}),o.all(u).then(function(){a()},function(e){a(e)})},n.templatesLoader.ocLazyLoadLoader=!0,n}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,n){var r;if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),t=o.length>>>0;if(0===t)return-1;var i=+n||0;if(Math.abs(i)===1/0&&(i=0),i>=t)return-1;for(r=Math.max(i>=0?i:t-Math.abs(i),0);t>r;){if(r in o&&o[r]===e)return r;r++}return-1});
*/
!function(e,n){"use strict";var r=["ng","oc.lazyLoad"],o={},t=[],i=[],a=[],s=[],u=e.noop,c={},l=[],d=e.module("oc.lazyLoad",["ng"]);d.provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(d,f,p,m,v,y){function L(n,o,t){if(o){var i,s,d,f=[];for(i=o.length-1;i>=0;i--)if(s=o[i],e.isString(s)||(s=E(s)),s&&-1===l.indexOf(s)&&(!_[s]||-1!==a.indexOf(s))){var h=-1===r.indexOf(s);if(d=g(s),h&&(r.push(s),L(n,d.requires,t)),d._runBlocks.length>0)for(c[s]=[];d._runBlocks.length>0;)c[s].push(d._runBlocks.shift());e.isDefined(c[s])&&(h||t.rerun)&&(f=f.concat(c[s])),j(n,d._invokeQueue,s,t.reconfig),j(n,d._configBlocks,s,t.reconfig),u(h?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",s),o.pop(),l.push(s)}var p=n.getInstanceInjector();e.forEach(f,function(e){p.invoke(e)})}}function $(n,r){function t(n,r){var o,t=!0;return r.length&&(o=i(n),e.forEach(r,function(e){t=t&&i(e)!==o})),t}function i(n){return e.isArray(n)?M(n.toString()):e.isObject(n)?M(D(n)):e.isDefined(n)&&null!==n?M(n.toString()):n}var a=n[2][0],s=n[1],c=!1;e.isUndefined(o[r])&&(o[r]={}),e.isUndefined(o[r][s])&&(o[r][s]={});var l=function(e,n){o[r][s].hasOwnProperty(e)||(o[r][s][e]=[]),t(n,o[r][s][e])&&(c=!0,o[r][s][e].push(n),u("ocLazyLoad.componentLoaded",[r,s,e]))};if(e.isString(a))l(a,n[2][1]);else{if(!e.isObject(a))return!1;e.forEach(a,function(n,r){e.isString(n)?l(n,a[1]):l(r,n)})}return c}function j(n,r,o,i){if(r){var a,s,u,c;for(a=0,s=r.length;s>a;a++)if(u=r[a],e.isArray(u)){if(null!==n){if(!n.hasOwnProperty(u[0]))throw new Error("unsupported provider "+u[0]);c=n[u[0]]}var l=$(u,o);if("invoke"!==u[1])l&&e.isDefined(c)&&c[u[1]].apply(c,u[2]);else{var d=function(n){var r=t.indexOf(o+"-"+n);(-1===r||i)&&(-1===r&&t.push(o+"-"+n),e.isDefined(c)&&c[u[1]].apply(c,u[2]))};if(e.isFunction(u[2][0]))d(u[2][0]);else if(e.isArray(u[2][0]))for(var f=0,h=u[2][0].length;h>f;f++)e.isFunction(u[2][0][f])&&d(u[2][0][f])}}}}function E(n){var r=null;return e.isString(n)?r=n:e.isObject(n)&&n.hasOwnProperty("name")&&e.isString(n.name)&&(r=n.name),r}function w(n){if(!e.isString(n))return!1;try{return g(n)}catch(r){if(/No module/.test(r)||r.message.indexOf("$injector:nomod")>-1)return!1}}var _={},O={$controllerProvider:d,$compileProvider:p,$filterProvider:m,$provide:f,$injector:v,$animateProvider:y},x=!1,b=!1,z=[],S={};z.push=function(e){-1===this.indexOf(e)&&Array.prototype.push.apply(this,arguments)},this.config=function(n){e.isDefined(n.modules)&&(e.isArray(n.modules)?e.forEach(n.modules,function(e){_[e.name]=e}):_[n.modules.name]=n.modules),e.isDefined(n.debug)&&(x=n.debug),e.isDefined(n.events)&&(b=n.events)},this._init=function(o){if(0===i.length){var t=[o],a=["ng:app","ng-app","x-ng-app","data-ng-app"],u=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,c=function(e){return e&&t.push(e)};e.forEach(a,function(n){a[n]=!0,c(document.getElementById(n)),n=n.replace(":","\\:"),"undefined"!=typeof o[0]&&o[0].querySelectorAll&&(e.forEach(o[0].querySelectorAll("."+n),c),e.forEach(o[0].querySelectorAll("."+n+"\\:"),c),e.forEach(o[0].querySelectorAll("["+n+"]"),c))}),e.forEach(t,function(n){if(0===i.length){var r=" "+o.className+" ",t=u.exec(r);t?i.push((t[2]||"").replace(/\s+/g,",")):e.forEach(n.attributes,function(e){0===i.length&&a[e.name]&&i.push(e.value)})}})}0!==i.length||(n.jasmine||n.mocha)&&e.isDefined(e.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad.");var l=function d(n){if(-1===r.indexOf(n)){r.push(n);var o=e.module(n);j(null,o._invokeQueue,n),j(null,o._configBlocks,n),e.forEach(o.requires,d)}};e.forEach(i,function(e){l(e)}),i=[],s.pop()};var D=function(n){try{return JSON.stringify(n)}catch(r){var o=[];return JSON.stringify(n,function(n,r){if(e.isObject(r)&&null!==r){if(-1!==o.indexOf(r))return;o.push(r)}return r})}},M=function(e){var n,r,o,t=0;if(0==e.length)return t;for(n=0,o=e.length;o>n;n++)r=e.charCodeAt(n),t=(t<<5)-t+r,t|=0;return t};this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(n,o,t,a,c){function d(e){var r=c.defer();return n.error(e.message),r.reject(e),r.promise}var f,p=a("ocLazyLoad");return x||(n={},n.error=e.noop,n.warn=e.noop,n.info=e.noop),O.getInstanceInjector=function(){return f?f:f=o.data("$injector")||e.injector()},u=function(e,r){b&&t.$broadcast(e,r),x&&n.info(e,r)},{_broadcast:u,_$log:n,_getFilesCache:function(){return p},toggleWatch:function(e){e?s.push(!0):s.pop()},getModuleConfig:function(n){if(!e.isString(n))throw new Error("You need to give the name of the module to get");return _[n]?e.copy(_[n]):null},setModuleConfig:function(n){if(!e.isObject(n))throw new Error("You need to give the module config object to set");return _[n.name]=n,n},getModules:function(){return r},isLoaded:function(n){var o=function(e){var n=r.indexOf(e)>-1;return n||(n=!!w(e)),n};if(e.isString(n)&&(n=[n]),e.isArray(n)){var t,i;for(t=0,i=n.length;i>t;t++)if(!o(n[t]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:E,_getModule:function(e){try{return g(e)}catch(n){throw(/No module/.test(n)||n.message.indexOf("$injector:nomod")>-1)&&(n.message='The module "'+D(e)+'" that you are trying to load does not exist. '+n.message),n}},moduleExists:w,_loadDependencies:function(n,r){var o,t,i,a=[],s=this;if(n=s._getModuleName(n),null===n)return c.when();try{o=s._getModule(n)}catch(u){return d(u)}return t=s.getRequires(o),e.forEach(t,function(o){if(e.isString(o)){var t=s.getModuleConfig(o);if(null===t)return void z.push(o);o=t,t.name=void 0}if(s.moduleExists(o.name))return i=o.files.filter(function(e){return s.getModuleConfig(o.name).files.indexOf(e)<0}),0!==i.length&&s._$log.warn('Module "',n,'" attempted to redefine configuration for dependency. "',o.name,'"\n Additional Files Loaded:',i),e.isDefined(s.filesLoader)?void a.push(s.filesLoader(o,r).then(function(){return s._loadDependencies(o)})):d(new Error("Error: New dependencies need to be loaded from external files ("+o.files+"), but no loader has been defined."));if(e.isArray(o)){var u=[];e.forEach(o,function(e){var n=s.getModuleConfig(e);null===n?u.push(e):n.files&&(u=u.concat(n.files))}),u.length>0&&(o={files:u})}else e.isObject(o)&&o.hasOwnProperty("name")&&o.name&&(s.setModuleConfig(o),z.push(o.name));if(e.isDefined(o.files)&&0!==o.files.length){if(!e.isDefined(s.filesLoader))return d(new Error('Error: the module "'+o.name+'" is defined in external files ('+o.files+"), but no loader has been defined."));a.push(s.filesLoader(o,r).then(function(){return s._loadDependencies(o)}))}}),c.all(a)},inject:function(n){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],t=this,a=c.defer();if(e.isDefined(n)&&null!==n){if(e.isArray(n)){var s=[];return e.forEach(n,function(e){s.push(t.inject(e,r,o))}),c.all(s)}t._addToLoadList(t._getModuleName(n),!0,o)}if(i.length>0){var u=i.slice(),d=function f(e){z.push(e),S[e]=a.promise,t._loadDependencies(e,r).then(function(){try{l=[],L(O,z,r)}catch(e){return t._$log.error(e.message),void a.reject(e)}i.length>0?f(i.shift()):a.resolve(u)},function(e){a.reject(e)})};d(i.shift())}else{if(r&&r.name&&S[r.name])return S[r.name];a.resolve()}return a.promise},getRequires:function(n){var o=[];return e.forEach(n.requires,function(e){-1===r.indexOf(e)&&o.push(e)}),o},_invokeQueue:j,_registerInvokeList:$,_register:L,_addToLoadList:h}}],this._init(e.element(n.document))}]);var f=e.bootstrap;e.bootstrap=function(n,r,o){return e.forEach(r.slice(),function(e){h(e,!0,!0)}),f(n,r,o)};var h=function(n,r,o){(s.length>0||r)&&e.isString(n)&&-1===i.indexOf(n)&&(i.push(n),o&&a.push(n))},g=e.module;e.module=function(e,n,r){return h(e,!1,!0),g(e,n,r)},"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(e){"use strict";e.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(n,r,o,t,i){return{restrict:"A",terminal:!0,priority:1e3,compile:function(i,a){var s=i[0].innerHTML;return i.html(""),function(i,a,u){var c=t(u.ocLazyLoad);i.$watch(function(){return c(i)||u.ocLazyLoad},function(t){e.isDefined(t)&&n.load(t).then(function(){o.enter(s,a),r(a.contents())(i)})},!0)}}}}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(n,r,o,t){var i=!1,a=!1,s=o.document.getElementsByTagName("head")[0]||o.document.getElementsByTagName("body")[0];return n.buildElement=function(u,c,l){var d,f,h=r.defer(),g=n._getFilesCache(),p=function(e){var n=(new Date).getTime();return e.indexOf("?")>=0?"&"===e.substring(0,e.length-1)?e+"_dc="+n:e+"&_dc="+n:e+"?_dc="+n};switch(e.isUndefined(g.get(c))&&g.put(c,h.promise),u){case"css":d=o.document.createElement("link"),d.type="text/css",d.rel="stylesheet",d.href=l.cache===!1?p(c):c;break;case"js":d=o.document.createElement("script"),d.src=l.cache===!1?p(c):c;break;default:g.remove(c),h.reject(new Error('Requested type "'+u+'" is not known. Could not inject "'+c+'"'))}d.onload=d.onreadystatechange=function(e){d.readyState&&!/^c|loade/.test(d.readyState)||f||(d.onload=d.onreadystatechange=null,f=1,n._broadcast("ocLazyLoad.fileLoaded",c),h.resolve())},d.onerror=function(){g.remove(c),h.reject(new Error("Unable to load "+c))},d.async=l.serie?0:1;var m=s.lastChild;if(l.insertBefore){var v=e.element(e.isDefined(window.jQuery)?l.insertBefore:document.querySelector(l.insertBefore));v&&v.length>0&&(m=v[0])}if(m.parentNode.insertBefore(d,m),"css"==u){if(!i){var y=o.navigator.userAgent.toLowerCase();if(/iP(hone|od|ad)/.test(o.navigator.platform)){var L=o.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),$=parseFloat([parseInt(L[1],10),parseInt(L[2],10),parseInt(L[3]||0,10)].join("."));a=6>$}else if(y.indexOf("android")>-1){var j=parseFloat(y.slice(y.indexOf("android")+8));a=4.4>j}else if(y.indexOf("safari")>-1){var E=y.match(/version\/([\.\d]+)/i);a=E&&E[1]&&parseFloat(E[1])<6}}if(a)var w=1e3,_=t(function(){try{d.sheet.cssRules,t.cancel(_),d.onload()}catch(e){--w<=0&&d.onerror()}},20)}return h.promise},n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q",function(n,r){return n.filesLoader=function(o){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=[],a=[],s=[],u=[],c=null,l=n._getFilesCache();n.toggleWatch(!0),e.extend(t,o);var d=function(r){var o,d=null;if(e.isObject(r)&&(d=r.type,r=r.path),c=l.get(r),e.isUndefined(c)||t.cache===!1){if(null!==(o=/^(css|less|html|htm|js)?(?=!)/.exec(r))&&(d=o[1],r=r.substr(o[1].length+1,r.length)),!d)if(null!==(o=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(r)))d=o[1];else{if(n.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!n.jsLoader.hasOwnProperty("requirejs"))return void n._$log.error("File type could not be determined. "+r);d="js"}"css"!==d&&"less"!==d||-1!==i.indexOf(r)?"html"!==d&&"htm"!==d||-1!==a.indexOf(r)?"js"===d||-1===s.indexOf(r)?s.push(r):n._$log.error("File type is not valid. "+r):a.push(r):i.push(r)}else c&&u.push(c)};if(t.serie?d(t.files.shift()):e.forEach(t.files,function(e){d(e)}),i.length>0){var f=r.defer();n.cssLoader(i,function(r){e.isDefined(r)&&n.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(n._$log.error(r),f.reject(r)):f.resolve()},t),u.push(f.promise)}if(a.length>0){var h=r.defer();n.templatesLoader(a,function(r){e.isDefined(r)&&n.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(n._$log.error(r),h.reject(r)):h.resolve()},t),u.push(h.promise)}if(s.length>0){var g=r.defer();n.jsLoader(s,function(r){e.isDefined(r)&&(n.jsLoader.hasOwnProperty("ocLazyLoadLoader")||n.jsLoader.hasOwnProperty("requirejs"))?(n._$log.error(r),g.reject(r)):g.resolve()},t),u.push(g.promise)}if(0===u.length){var p=r.defer(),m="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.";return n._$log.error(m),p.reject(m),p.promise}return t.serie&&t.files.length>0?r.all(u).then(function(){return n.filesLoader(o,t)}):r.all(u)["finally"](function(e){return n.toggleWatch(!1),e})},n.load=function(o){var t,i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],a=this,s=null,u=[],c=r.defer(),l=e.copy(o),d=e.copy(i);if(e.isArray(l))return e.forEach(l,function(e){u.push(a.load(e,d))}),r.all(u).then(function(e){c.resolve(e)},function(e){c.reject(e)}),c.promise;if(e.isString(l)?(s=a.getModuleConfig(l),s||(s={files:[l]})):e.isObject(l)&&(s=e.isDefined(l.path)&&e.isDefined(l.type)?{files:[l]}:a.setModuleConfig(l)),null===s){var f=a._getModuleName(l);return t='Module "'+(f||"unknown")+'" is not configured, cannot load.',n._$log.error(t),c.reject(new Error(t)),c.promise}e.isDefined(s.template)&&(e.isUndefined(s.files)&&(s.files=[]),e.isString(s.template)?s.files.push(s.template):e.isArray(s.template)&&s.files.concat(s.template));var h=e.extend({},d,s);return e.isUndefined(s.files)&&e.isDefined(s.name)&&n.moduleExists(s.name)?n.inject(s.name,h,!0):(n.filesLoader(s,h).then(function(){n.inject(null,h).then(function(e){c.resolve(e)},function(e){c.reject(e)})},function(e){c.reject(e)}),c.promise)},n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q",function(n,r){return n.cssLoader=function(o,t,i){var a=[];e.forEach(o,function(e){a.push(n.buildElement("css",e,i))}),r.all(a).then(function(){t()},function(e){t(e)})},n.cssLoader.ocLazyLoadLoader=!0,n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$q",function(n,r){return n.jsLoader=function(o,t,i){var a=[];e.forEach(o,function(e){a.push(n.buildElement("js",e,i))}),r.all(a).then(function(){t()},function(e){t(e)})},n.jsLoader.ocLazyLoadLoader=!0,n}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(n){n.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(n,r,o,t){return n.templatesLoader=function(i,a,s){var u=[],c=n._getFilesCache();return e.forEach(i,function(n){var i=o.defer();u.push(i.promise),t.get(n,s).success(function(o){e.isString(o)&&o.length>0&&e.forEach(e.element(o),function(e){"SCRIPT"===e.nodeName&&"text/ng-template"===e.type&&r.put(e.id,e.innerHTML)}),e.isUndefined(c.get(n))&&c.put(n,!0),i.resolve()}).error(function(e){i.reject(new Error('Unable to load template file "'+n+'": '+e))})}),o.all(u).then(function(){a()},function(e){a(e)})},n.templatesLoader.ocLazyLoadLoader=!0,n}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,n){var r;if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),t=o.length>>>0;if(0===t)return-1;var i=+n||0;if(Math.abs(i)===1/0&&(i=0),i>=t)return-1;for(r=Math.max(i>=0?i:t-Math.abs(i),0);t>r;){if(r in o&&o[r]===e)return r;r++}return-1});
var i;
while ((match = raw.match(LINKY_URL_REGEXP))) {
// We can not end in these as they are sometimes found at the end of the sentence
local shapePath = editor.getFieldValue(id, "shapeName")
local shapeName = string.match(shapePath, ".+/(.*%.dae)")
if not shapeName then shapeName = "No Shape" end
loadJsonMaterialsFile(filename)
elseif string.match(filename, "/%a+Data%.json$") then
table.insert(jsonFilesToLoad, filename)
if (requestDataContentType && requestDataContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i)) {
// Simple form data that should be parsable like a query string.
for name, func in pairs(tests) do
if type(func) == "function" and name:match("^test") then
table.insert(testNames, name)
log('E', '', 'Unknown test function: ' .. tostring(name))
if not name:match("^test") then
log('E', '', 'Function name must begin with \'test\', rename the function to \'test' .. tostring(name) .. '\'.')
local expectedToFail = name:match("_shouldFail$") ~= nil
local testPassed = (status ~= expectedToFail)
for (let pair of pairs) {
let match = pair.match(/^(?[^\s=]+)[ \t]*=[ \t]*(?.*)$/);
if (!match) {
// Parse name/value.
let nameValueMatch = header.match(/^(?[^\s=]+)[ \t]*=[ \t]*(?[^;]*)/);
if (!nameValueMatch) {
let match = attribute.match(/^(?[^\s=]+)(?:=(?.*))?$/);
if (!match) {
for i, pn in ipairs(newPath.pathnodes.sorted) do
if string.match(pn.name, "^Pathnode ") then
pn.name = string.format("Pathnode %d", i)
for i, seg in ipairs(newPath.segments.sorted) do
if string.match(seg.name, "^Segment ") then
local pn1 = newPath.pathnodes.objects[seg.from]
if pn1 and pn2 then
local pn1ShortName = string.match(pn1.name, "(%d+)$")
local pn2ShortName = string.match(pn2.name, "(%d+)$")
local pn1ShortName = string.match(pn1.name, "(%d+)$")
local pn2ShortName = string.match(pn2.name, "(%d+)$")
seg.name = string.format("Segment %s->%s", pn1ShortName or pn1.name, pn2ShortName or pn2.name)
function consumeEscapeSequence(stream) {
if (stream.match(/[bBdDwWsStrnvf0]/))
return "regex-special";
if (stream.eat("x")) {
if (stream.match(/[0-9a-fA-F]{2}/))
return "regex-escape";
if (stream.eat("u")) {
if (stream.match(/[0-9a-fA-F]{4}/))
return "regex-escape-2";
if (stream.eat("c")) {
if (stream.match(/[A-Z]/))
return "regex-escape-3";
if (stream.match(/[1-9]/))
return "regex-backreference";
let style;
if (stream.match(/\?[=!]/))
style = "regex-lookahead";
else {
stream.match(/\?:/);
style = "regex-group";
if (ch === "{") {
if (stream.match(/\d+}/))
return "regex-quantifier";
let matches = stream.match(/(\d+),(\d+)?}/);
if (!matches)
local function extractLevelFromPath(filepath)
local levelName = string.match(filepath, "/levels/([^/]+)/")
if levelName then
local function getTypeFromPath(filePath)
if string.match(filePath, "%.trail%.json$") then
return "trail"
return "trail"
elseif string.match(filePath, "%.boundary%.json$") then
return "boundary"
return "boundary"
elseif string.match(filePath, "%.path%.json$") then
return "path"
return "path"
elseif string.match(filePath, "%.startingPosition%.json$") then
return "startingPosition"
local dir = string.match(filePath, "^(.*)/[^/]*$")
if dir then
local dir = string.match(filePath, "^(.*)/[^/]*$")
if dir then
local dir = string.match(filePath, "^(.*)/[^/]*$")
if dir then
local dir = string.match(filePath, "^(.*)/[^/]*$")
if dir then
local config = obj and tostring(obj.partConfig)
config = string.match(config, "vehicles/".. model .."/(.*).pc")
if not obj or not config then
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
var isIos = userAgent.match(/ipad|iphone|ipod/i);
var isAndroid = userAgent.match(/android/i);
var isIos = userAgent.match(/ipad|iphone|ipod/i);
var isAndroid = userAgent.match(/android/i);
var hasJQuery = (typeof window.jQuery !== 'undefined') && (angular.element === window.jQuery);
rules.forEach(function(rule) {
var match = rule.match(ruleMatchRegex);
// First: test that if the rule has '.md-accent', it goes into the accent set of rules
var expression = $attrs.mdVirtualRepeat;
var match = expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)\s*$/);
var repeatName = match[1];
$scope.disableModsAfterUpdate = false
$scope.versionStr = beamng.versionshort.match(/^(\d+.\d+)/)[1];
$scope.productStr = window.beamng.product
-- Extract basename from path (e.g., "/path/to/file.ogg" -> "file.ogg")
local basename = pacenote.audioFname:match("([^/\\]+)$")
if not basename then
var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/)
if (presto_version) { presto_version = Number(presto_version[1]) }
}
if (order[0].level == 1 && (m = str.match(/^\s+/))) {
order[0].from = m[0].length
}
if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
lst(order).to -= m[0].length
if (typeof match == "string") { ok = ch == match }
else { ok = ch && (match.test ? match.test(ch) : match(ch)) }
if (ok) {++this.pos; return ch}
} else {
var match = this.string.slice(this.pos).match(pattern)
if (match && match.index > 0) { return null }
if (type) { for (;;) {
var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/)
if (!lineClass) { break }
newChanges.push({from: change.from, to: change.to, text: change.text})
if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) {
if (indexOf(newGroup, Number(m[1])) > -1) {
else {
var found = cur.match(classTest(cls))
if (!found) { return false }
if (line.stateAfter) { line.stateAfter = null }
var curSpaceString = line.text.match(/^\s*/)[0], indentation
if (!aggressive && !/\S/.test(line.text)) {
local name = ffi.string(newMissionData.name)
name = name:match("(.-) ") or name
name = name:gsub('%W','') or name
local missionType = mission.missionType
local level = mission.id:match("^([^/]+)")
local gamemode = instance.careerSetup.showInCareer and "Career" or "Freeroam"
if type(entry.rot) == "string" then
local x, y, z, w = string.match(entry.rot, "([%-%d%.eE]+)%s+([%-%d%.eE]+)%s+([%-%d%.eE]+)%s+([%-%d%.eE]+)")
if x and y and z and w then
else
local fallbackName = (entry.shapeName:match("([^/]+)%.dae$") or entry.shapeName:match("([^/]+)$")) or "RestoredTSStatic"
obj:registerObject(fallbackName)
else
local fallbackName = (entry.shapeName:match("([^/]+)%.dae$") or entry.shapeName:match("([^/]+)$")) or "RestoredTSStatic"
obj:registerObject(fallbackName)
local comp = components[i]
local fileName = comp.meshName:match("^.+/(.+)$") or comp.meshName:match("^(.+)$")
if comp.meshName == baseMeshPath then
local comp = components[i]
local fileName = comp.meshName:match("^.+/(.+)$") or comp.meshName:match("^(.+)$")
if comp.meshName == baseMeshPath then
elseif fileName:lower():find("var") then -- Check if this is a variation of the base mesh.
local baseFileName = baseMeshPath:match("^.+/(.+)$") or baseMeshPath:match("^(.+)$")
local baseName = fileName:match("(.+)_var") .. ".dae"
elseif fileName:lower():find("var") then -- Check if this is a variation of the base mesh.
local baseFileName = baseMeshPath:match("^.+/(.+)$") or baseMeshPath:match("^(.+)$")
local baseName = fileName:match("(.+)_var") .. ".dae"
local baseFileName = baseMeshPath:match("^.+/(.+)$") or baseMeshPath:match("^(.+)$")
local baseName = fileName:match("(.+)_var") .. ".dae"
if baseName == baseFileName then
local meshPath = uniqueMeshPaths[i]
local fileName = meshPath:match("^.+/(.+)$") or meshPath:match("^(.+)$")
local meshPath = uniqueMeshPaths[i]
local fileName = meshPath:match("^.+/(.+)$") or meshPath:match("^(.+)$")
spline.meshKit = assemblyKit
spline.kitFolderPath = rootMeshPath and rootMeshPath:match("^(.+)/[^/]+$") or nil
spline.moleculeDescription = mol.buildMolecule(assemblyKit, spline) -- Build molecule from the reconstructed kit.
local comp = components[i]
local fileName = comp.meshName:match("^.+/(.+)$") or comp.meshName:match("^(.+)$")
if comp.meshName == rootMeshPath then
local comp = components[i]
local fileName = comp.meshName:match("^.+/(.+)$") or comp.meshName:match("^(.+)$")
if comp.meshName == rootMeshPath then
elseif fileName:lower():find("var") then -- Check if this is a variation of the root mesh.
local rootFileName = rootMeshPath:match("^.+/(.+)$") or rootMeshPath:match("^(.+)$")
local baseName = fileName:match("(.+)_var") .. ".dae"
elseif fileName:lower():find("var") then -- Check if this is a variation of the root mesh.
local rootFileName = rootMeshPath:match("^.+/(.+)$") or rootMeshPath:match("^(.+)$")
local baseName = fileName:match("(.+)_var") .. ".dae"
local rootFileName = rootMeshPath:match("^.+/(.+)$") or rootMeshPath:match("^(.+)$")
local baseName = fileName:match("(.+)_var") .. ".dae"
if baseName == rootFileName then
end
local missionId = value:match("%((.+)%)$")
return missionId
spline.startCapMeshPath = startCapPath
spline.startCapMeshName = startCapPath:match("([^/]+)$")
end
spline.endCapMeshPath = endCapPath
spline.endCapMeshName = endCapPath:match("([^/]+)$")
end
spline.centerMeshPath = meshes[1]
spline.centerMeshName = meshes[1]:match("([^/]+)$")
spline.alias1MeshPath = meshes[2]
spline.alias1MeshName = meshes[2]:match("([^/]+)$")
end
spline.alias2MeshPath = meshes[3]
spline.alias2MeshName = meshes[3]:match("([^/]+)$")
end
spline.alias3MeshPath = meshes[4]
spline.alias3MeshName = meshes[4]:match("([^/]+)$")
end
spline.centerMeshPath = meshInfo -- This will just be a single path string in this case.
spline.centerMeshName = meshInfo:match("([^/]+)$")
spline.centerMeshPath = sortedMeshes[1].path
spline.centerMeshName = sortedMeshes[1].path:match("([^/]+)$")
spline.mainRandomWeight = sortedMeshes[1].freq
spline.alias1MeshPath = sortedMeshes[2].path
spline.alias1MeshName = sortedMeshes[2].path:match("([^/]+)$")
spline.alias1RandomWeight = sortedMeshes[2].freq
spline.alias2MeshPath = sortedMeshes[3].path
spline.alias2MeshName = sortedMeshes[3].path:match("([^/]+)$")
spline.alias2RandomWeight = sortedMeshes[3].freq
spline.alias3MeshPath = sortedMeshes[4].path
spline.alias3MeshName = sortedMeshes[4].path:match("([^/]+)$")
spline.alias3RandomWeight = sortedMeshes[4].freq
if type(entry.rot) == "string" then
local x, y, z, w = string.match(entry.rot, "([%-%d%.eE]+)%s+([%-%d%.eE]+)%s+([%-%d%.eE]+)%s+([%-%d%.eE]+)")
if x and y and z and w then
else
local fallbackName = (entry.shapeName:match("([^/]+)%.dae$") or entry.shapeName:match("([^/]+)$")) or "RestoredTSStatic"
obj:registerObject(fallbackName)
else
local fallbackName = (entry.shapeName:match("([^/]+)%.dae$") or entry.shapeName:match("([^/]+)$")) or "RestoredTSStatic"
obj:registerObject(fallbackName)
var requestDataContentType = resource.requestDataContentType || "";
if (requestDataContentType && requestDataContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i)) {
// Simple form data that should be parsable like a query string.
-- Split on period and handle each part
local firstPart, secondPart = inputString:match("(%d+)%.(%d+)")
if firstPart and secondPart then
if (support.hexNumber &&
((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/))
|| (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/))) {
((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/))
|| (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/))) {
// hex
} else if (support.binaryNumber &&
(((ch == "b" || ch == "B") && stream.match(/^'[01]+'/))
|| (ch == "0" && stream.match(/^b[01]+/)))) {
(((ch == "b" || ch == "B") && stream.match(/^'[01]+'/))
|| (ch == "0" && stream.match(/^b[01]+/)))) {
// bitstring
// ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html
stream.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/);
support.decimallessFloat && stream.eat('.');
} else if ((((support.nCharCast && (ch == "n" || ch == "N"))
|| (support.charsetCast && ch == "_" && stream.match(/[a-z][a-z0-9]*/i)))
&& (stream.peek() == "'" || stream.peek() == '"'))) {
// .1 for 0.1
if (support.zerolessFloat && stream.match(/^(?:\d+(?:e[+-]?\d+)?)/i)) {
return "number";
// // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html
if (support.ODBCdotTable && stream.match(/^[a-zA-Z_]+/)) {
return "variable-2";
} else if (ch == '{' &&
(stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) {
// dates (weird ODBC syntax)
} else if (ch == '{' &&
(stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) {
// dates (weird ODBC syntax)
// ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/)))
return "number";
// ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/)))
return "number";
if (stream.eat("@")) {
stream.match(/^session\./);
stream.match(/^local\./);
stream.match(/^session\./);
stream.match(/^local\./);
stream.match(/^global\./);
stream.match(/^local\./);
stream.match(/^global\./);
}
if (stream.eat("'")) {
stream.match(/^.*'/);
return "variable-2";
} else if (stream.eat('"')) {
stream.match(/^.*"/);
return "variable-2";
} else if (stream.eat("`")) {
stream.match(/^.*`/);
return "variable-2";
return "variable-2";
} else if (stream.match(/^[0-9a-zA-Z$\.\_]+/)) {
return "variable-2";
// ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html
return stream.match(/^[a-zA-Z.#!?]/) ? "variable-2" : null;
}
// Comment
if (stream.match("/*")) {
state.tokenizer = comment(stream.indentation(), true);
}
if (stream.match("//")) {
state.tokenizer = comment(stream.indentation(), false);
// Interpolation
if (stream.match("#{")) {
state.tokenizer = buildInterpolationTokenizer(tokenBase);
stream.next();
if (stream.match(/^[\w-]+/)) {
indent(state);
// ID selectors
if (stream.match(/^[\w-]+/)) {
indent(state);
// Numbers
if (stream.match(/^-?[0-9\.]+/))
return "number";
// Units
if (stream.match(/^(px|em|in)\b/))
return "unit";
if (stream.match(keywordsRegexp))
return "keyword";
if (stream.match(/^url/) && stream.peek() === "(") {
state.tokenizer = urlTokens;
// Match shortcut mixin definition
if (stream.match(/^=[\w-]+/)) {
indent(state);
// Match shortcut mixin definition
if (stream.match(/^\+[\w-]+/)){
return "variable-3";
if(ch === "@"){
if(stream.match(/@extend/)){
if(!stream.match(/\s*[\w]/))
if(stream.match(/@extend/)){
if(!stream.match(/\s*[\w]/))
dedent(state);
// Indent Directives
if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {
indent(state);
if (stream.eatWhile(/[\w-]/)){
if(stream.match(/ *: *[\w-\+\$#!\("']/,false)){
return "property";
}
else if(stream.match(/ *:/,false)){
indent(state);
}
else if(stream.match(/ *,/,false)){
return "atom";
if(ch === ":"){
if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element
return "keyword";
// Hex numbers
if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){
if(!stream.peek()){
// Numbers
if (stream.match(/^-?[0-9\.]+/)){
if(!stream.peek()){
// Units
if (stream.match(/^(px|em|in)\b/)){
if(!stream.peek()){
if (stream.match(keywordsRegexp)){
if(!stream.peek()){
if (stream.match(/^url/) && stream.peek() === "(") {
state.tokenizer = urlTokens;
}
return stream.match(/^[\w]+/) ? "keyword": "operator";
}
if (stream.match(opRegexp)){
if(!stream.peek()){
if (stream.match(opRegexp))
return "operator";
local res = {}
res.file = string.match(path, "^.+/(.+)$")
res.path = path
local ctype = getmetatable(data).___type
ctype = string.match(ctype, "class<([^>]*)>")
if ctype == 'float3' then
if (!functionName && this._eventListener.handlerBody) {
let match = this._eventListener.handlerBody.match(/function ([^\(]+?)\(/);
if (match)
set = function ( value )
o.GraphicDisplayResolutions.width, o.GraphicDisplayResolutions.height = value:match(' *(%d*) +(%d*)')
o.GraphicDisplayResolutions.width = tonumber(o.GraphicDisplayResolutions.width) or 1280
init = function ( value )
o.GraphicDisplayResolutions.width, o.GraphicDisplayResolutions.height = value:match(' *(%d*) +(%d*)')
o.GraphicDisplayResolutions.width = tonumber(o.GraphicDisplayResolutions.width) or 1280
local model = core_vehicles.getModel(config.model_key).model
if checkVehiclePermission(model, vehiclePermissionRules) and not string.match(config.key, 'simple_traffic') then
eligibleCount = eligibleCount + 1
if filename and filename:match('.*%.bank$') then
filename = string.lower(filename)
meshPath = path, -- Path to the mesh file.
fileName = path:match("^.+/(.+)$"), -- File name of the mesh file.
isRandom = false, -- Whether to use random distribution (false = round robin, true = random).
if mesh.fileName:lower():find(variationFilenameStr) then
local baseName = mesh.fileName:match("(.+)_var") .. ".dae" -- Find the base mesh by taking everything before '_var' and adding '.dae'.
baseToVariations[baseName] = baseToVariations[baseName] or {}
local function newForestItemData(data)
local name = Sim.getUniqueName(data.filename:match("(.+)%."))
local objId = editor.createDataBlock(name, "ForestItemData", nil, editor.levelPath .. "art/forest/managedItemData.json")
if data["Commercial Class"] then
conditionData.commercialClass = tonumber(string.match(data["Commercial Class"], "%d+"))
end
if data.vehicleInfo and data.vehicleInfo["Commercial Class"] then
conditionData.commercialClass = tonumber(string.match(data.vehicleInfo["Commercial Class"], "%d+"))
end
local config = vehData.config
data.model = config.model or string.match(config.partConfigFilename, 'vehicles/([%w|_|%-|%s]+)') -- model might be nil for some reason
if data.model then
data.config = string.match(config.partConfigFilename, '/*([%w_%-]+).pc')
data.paint, data.paint2, data.paint3 = config.paints[1], config.paints[2], config.paints[3]
for i,filepath in ipairs(foundFiles) do
local ext = string.match(filepath, "(%.%w+)")
if ext == '.json' then
function LuaVec3:fromString(s)
local x, y, z = s:match('([%d.+eE-]+)[,%s]+([%d.+eE-]+)[,%s]+([%d.+eE-]+)')
self.x, self.y, self.z = tonumber(x) or 0, tonumber(y) or 0, tonumber(z) or 0
var r = nr[i$];
if (r.regex && stream.match(r.regex)) {
state.next = r.next || state.next;
}
if (stream.match(r = Rules[next_rule])) {
if (r.regex && stream.match(r.regex)) {
if (stream.match(r = Rules[next_rule])) {
if (r.regex && stream.match(r.regex)) {
state.next = r.next;
var indentation = state.lastToken.indent;
if (state.lastToken.content.match(indenter)) {
indentation += 2;
emitter:reload()
selectParticle(scenetree.findObject(string.match(emitter:getField("particles", ""), '(%S+)')))
end
if lastFrameEmitterID ~= currentEmitter:getID() then
currentParticle = scenetree.findObject(string.match(currentEmitter:getField("particles", ""), '(%S+)'))
lastFrameEmitterID = currentEmitter:getID()
deleteParticle(currentParticle)
selectParticle(scenetree.findObject(string.match(currentEmitter:getField("particles", ""), '(%S+)')))
confirmationWindowOpen = true
-- Get the parent path by removing everything after the second-to-last "/"
local parentPath = part.containingSlot:match("(.+)/[^/]+/$") or "/"
local parentNode = getNodeFromSlotPath(previewVehicle.config.partsTree, parentPath)
local prefab = Prefab()
local prefabFilename = string.match(newPrefabFilename, "[^/]*$")
local dir, prefabName, ext = path.splitWithoutExt(prefabFilename, ".prefab.json")
var matches = trimmedText.match(/^cubic-bezier\(([-\d.]+),([-\d.]+),([-\d.]+),([-\d.]+)\)$/);
if (!matches)
let matches = trimmedText.match(/^spring\(([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([-\d.]+)\)$/);
if (!matches)
info.authentication, info.encryption, info.mac =
string.match(str,
"^(%S+)%s+(%S+)%s+Kx=(%S+)%s+Au=(%S+)%s+Enc=(%S+)%s+Mac=(%S+)")
"^(%S+)%s+(%S+)%s+Kx=(%S+)%s+Au=(%S+)%s+Enc=(%S+)%s+Mac=(%S+)")
info.export = (string.match(str, "%sexport%s*$") ~= nil)
end
local radixmark = match(tostring(0.5), '[^0-9]')
local delimmark = match(tostring(12345.12345), '[^0-9' .. radixmark .. ']')
local radixmark = match(tostring(0.5), '[^0-9]')
local delimmark = match(tostring(12345.12345), '[^0-9' .. radixmark .. ']')
if radixmark == '.' then
local function startsWithDoubleSlash(line)
return line:match("^//") ~= nil
end
local function _parse_number(ctx, delimiter)
local num_str = ctx.str:match('^[+-]?%d+%.?%d*[eE]?[+-]?%d*', ctx.pos)
local num = tonumber(num_str)
_addNode(ctx, {'string_single', _parse_string(ctx, '\'')})
elseif chr == '-' or chr == '+' or chr:match('%d') then
_parse_number(ctx)
} else if (ch == "!") {
stream.match(/^\s*\w*/);
return ret("keyword", "important");
return ret("number", "unit");
} else if (stream.match(/^-[\w\\\-]+/)) {
stream.eatWhile(/[\w\\\-]/);
stream.eatWhile(/[\w\\\-]/);
if (stream.match(/^\s*:/, false))
return ret("variable-2", "variable-definition");
return ret("variable-2", "variable");
} else if (stream.match(/^\w+-/)) {
return ret("meta", "meta");
return ret(null, "select-op");
} else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {
return ret("qualifier", "qualifier");
return ret(null, ch);
} else if ((ch == "u" && stream.match(/rl(-prefix)?\(/)) ||
(ch == "d" && stream.match("omain(")) ||
} else if ((ch == "u" && stream.match(/rl(-prefix)?\(/)) ||
(ch == "d" && stream.match("omain(")) ||
(ch == "r" && stream.match("egexp("))) {
(ch == "d" && stream.match("omain(")) ||
(ch == "r" && stream.match("egexp("))) {
stream.backUp(1);
stream.next(); // Must be '('
if (!stream.match(/\s*[\"\')]/, false))
state.tokenize = tokenString(")");
} else if (allowNested) {
override = stream.match(/^\s*:(?:\s|$)/, false) ? "property" : "tag";
return "block";
":": function(stream) {
if (stream.match(/\s*\{/))
return [null, "{"];
"$": function(stream) {
stream.match(/^[\w-]+/);
if (stream.match(/^\s*:/, false))
stream.match(/^[\w-]+/);
if (stream.match(/^\s*:/, false))
return ["variable-2", "variable-definition"];
if (stream.eat("{")) return [null, "interpolation"];
if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/, false)) return false;
stream.eatWhile(/[\w\\\-]/);
stream.eatWhile(/[\w\\\-]/);
if (stream.match(/^\s*:/, false))
return ["variable-2", "variable-definition"];
if not fileData.meta.annotation then
local lastFolder = dir:match(".-([^/]+)/$")
if lastFolder then
if lastFolder then
local lvl, annotationFilename = string.match(dir,".-([^/]+)/([^/]+)/$")
dump(lvl, annotationFilename)
if prof_split == 2 then
local k1, k2 = key_stack:match("(.-) [<>] (.*)")
if k2 then key_stack, key_stack2 = k1, k2 end
if pct >= prof_min then
local file, line = k:match("^(.*):(%d+)$")
if not file then file = k; line = 0 end
local function getLongitudinalLateralPrefix(wheelName)
local long, side = string.match(wheelName, "^([FR][FR0-9_]*)([RL][RL0-9]*)")
long = long or string.match(wheelName, "^([FR]+)")
local long, side = string.match(wheelName, "^([FR][FR0-9_]*)([RL][RL0-9]*)")
long = long or string.match(wheelName, "^([FR]+)")
--print(string.format("/ Splitting '%10s' into long: '%5s', side: '%5s' .", wheelName, long, side))
if v ~= '/vehicles/common' then
table.insert(vehicles, string.match(v, '/vehicles/(.*)'))
end
--if args.triggerName
local triggerName = string.match(args.triggerName, "(%a*)(%d+)")
local triggerNum = string.match(args.triggerName, "(%d+)")
local triggerName = string.match(args.triggerName, "(%a*)(%d+)")
local triggerNum = string.match(args.triggerName, "(%d+)")
-- support common and per-vehicle bindings
local namespace, inputActionName = string.match(lnk.inputAction, "^(%a+):(.*)")
if namespace == nil then
if (trimmedQuery.match(/^create /i) || trimmedQuery.match(/^drop table /i))
this.dispatchEventToListeners(WI.DatabaseContentView.Event.SchemaUpdated, this.database);
if (trimmedQuery.match(/^create /i) || trimmedQuery.match(/^drop table /i))
this.dispatchEventToListeners(WI.DatabaseContentView.Event.SchemaUpdated, this.database);
if (cx.depth == 2) { // Inside a JS /* */ comment
if (stream.match(/^.*?\*\//)) cx.depth = 1
else stream.skipToEnd()
// If JS starts on same line as tag
if (xmlContext && stream.match(/^[^>]*>\s*$/, false)) {
while (xmlContext.prev && !xmlContext.startOfLine)
return null
} else if (stream.match("//")) {
stream.skipToEnd()
return "comment"
} else if (stream.match("/*")) {
cx.depth = 2
local pattern = "/missions/(.+)$"
local segment = missionDir:match(pattern)
return segment
local function extractTrailingNumber(str)
local num = string.match(str, "%d+%.?%d*$")
return num and tonumber(num) or nil
-- Extract the alphanumeric identifier from pacenote names that match "Import_X"
local identifier = string.match(pacenote.name, "^Import_([%w]+)")
if identifier then
-- Pattern to match a name ending with a number: capture the non-numeric part and the numeric part
local baseName, number = string.match(v.name, "(.-)%s*([%d%.]+)$")
-- if string.find(name, "_") then
-- prefix, id = string.match(name, "^([^_]+)_([^_]*)$")
-- else
local mode
if string.match(str,"^[0-9]+$") then
return 1
return 1
elseif string.match(str,"^[0-9A-Z $%%*./:+-]+$") then
return 2
for field in line:gmatch("([^,|]*)") do
field = field:match("^%s*(.-)%s*$")
if field ~= "" then
local function stringToVersion(s)
local a, b = s:match("^(%d+)%.(%d+)")
return tonumber(a), tonumber(b)
*/
!function(e,t,n){"use strict";!function(){t.module("ngMaterial",["ng","ngAnimate","ngAria","material.core","material.core.gestures","material.core.theming.palette","material.core.theming","material.components.autocomplete","material.components.bottomSheet","material.components.backdrop","material.components.card","material.components.checkbox","material.components.content","material.components.button","material.components.divider","material.components.chips","material.components.dialog","material.components.fabSpeedDial","material.components.fabActions","material.components.fabToolbar","material.components.fabTrigger","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.select","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.swipe","material.components.switch","material.components.tabs","material.components.toast","material.components.toolbar","material.components.tooltip","material.components.virtualRepeat","material.components.whiteframe"])}(),function(){function e(e,t){e.decorator("$$rAF",["$delegate",n]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("red").backgroundPalette("grey")}function n(e){return e.throttle=function(t){var n,o,r,i;return function(){n=arguments,i=this,r=t,o||(o=!0,e(function(){r.apply(i,Array.prototype.slice.call(n)),o=!1}))}},e}t.module("material.core",["material.core.gestures","material.core.theming"]).config(e),e.$inject=["$provide","$mdThemingProvider"]}(),function(){function e(e,n,o,r,i){var a;return a={translate3d:function(e,t,o,r){function i(n){return e.removeClass(r.transitionInClass).addClass(r.transitionOutClass).css(n||t),a.waitTransitionEnd(e)}return e.css(t),n(function(){e.css(o).addClass(r.transitionInClass)}),a.waitTransitionEnd(e).then(function(){return i})},waitTransitionEnd:function(e,t){var n=3e3;return o(function(o,a){function d(t){t&&t.target!==e[0]||(t&&r.cancel(c),e.off(i.CSS.TRANSITIONEND,d),o())}t=t||{};var c=r(d,t.timeout||n);e.on(i.CSS.TRANSITIONEND,d)})},calculateZoomToOrigin:function(n,o){var r=o.element,i="translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )",d=t.bind(null,e.supplant,i),c=d({centerX:0,centerY:0,scaleX:.5,scaleY:.5});if(r){var l=a.clientRect(r)||a.copyRect(o.bounds),m=a.copyRect(n[0].getBoundingClientRect()),s=a.centerPointFor(m),u=a.centerPointFor(l);c=d({centerX:u.x-s.x,centerY:u.y-s.y,scaleX:Math.min(.5,l.width/m.width),scaleY:Math.min(.5,l.height/m.height)})}return c},toTransformCss:function(e,n){var o={};return t.forEach(i.CSS.TRANSFORM.split(" "),function(t){o[t]=e}),n&&(o.transition="all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important"),o},copyRect:function(e,n){return e?(n=n||{},t.forEach("left top right bottom width height".split(" "),function(t){n[t]=Math.round(e[t])}),n.width=n.width||n.right-n.left,n.height=n.height||n.bottom-n.top,n):null},clientRect:function(e){var n=t.element(e)[0].getBoundingClientRect(),o=function(e){return e&&e.width>0&&e.height>0};return o(n)?a.copyRect(n):null},centerPointFor:function(e){return{x:Math.round(e.left+e.width/2),y:Math.round(e.top+e.height/2)}}}}t.module("material.core").factory("$$mdAnimate",["$$rAF","$q","$timeout","$mdConstant",function(t,n,o,r){return function(i){return e(i,t,n,o,r)}}])}(),function(){function e(e){function t(e){return n?"webkit"+e.charAt(0).toUpperCase()+e.substring(1):e}var n=/webkit/i.test(e.vendorPrefix);return{KEY_CODE:{ENTER:13,ESCAPE:27,SPACE:32,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,TAB:9,BACKSPACE:8,DELETE:46},CSS:{TRANSITIONEND:"transitionend"+(n?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(n?" webkitAnimationEnd":""),TRANSFORM:t("transform"),TRANSFORM_ORIGIN:t("transformOrigin"),TRANSITION:t("transition"),TRANSITION_DURATION:t("transitionDuration"),ANIMATION_PLAY_STATE:t("animationPlayState"),ANIMATION_DURATION:t("animationDuration"),ANIMATION_NAME:t("animationName"),ANIMATION_TIMING:t("animationTimingFunction"),ANIMATION_DIRECTION:t("animationDirection")},MEDIA:{sm:"(max-width: 599px)","gt-sm":"(min-width: 600px)",md:"(min-width: 600px) and (max-width: 959px)","gt-md":"(min-width: 960px)",lg:"(min-width: 960px) and (max-width: 1199px)","gt-lg":"(min-width: 1200px)"},MEDIA_PRIORITY:["gt-lg","lg","gt-md","md","gt-sm","sm"]}}t.module("material.core").factory("$mdConstant",e),e.$inject=["$sniffer"]}(),function(){function e(e,n){function o(){return[].concat(E)}function r(){return E.length}function i(e){return E.length&&e>-1&&e-1}function f(){return E.length?E[0]:null}function h(){return E.length?E[E.length-1]:null}function b(e,o,r,a){r=r||g;for(var d=u(o);;){if(!i(d))return null;var c=d+(e?-1:1),l=null;if(i(c)?l=E[c]:n&&(l=e?h():f(),c=u(l)),null===l||c===a)return null;if(r(l))return l;t.isUndefined(a)&&(a=c),d=c}}var g=function(){return!0};e&&!t.isArray(e)&&(e=Array.prototype.slice.call(e)),n=!!n;var E=e||[];return{items:o,count:r,inRange:i,contains:p,indexOf:u,itemAt:c,findBy:l,add:m,remove:s,first:f,last:h,next:t.bind(null,b,!1),previous:t.bind(null,b,!0),hasPrevious:d,hasNext:a}}t.module("material.core").config(["$provide",function(t){t.decorator("$mdUtil",["$delegate",function(t){return t.iterator=e,t}])}])}(),function(){function e(e,n,o){function r(e){var n=u[e];t.isUndefined(n)&&(n=u[e]=i(e));var o=f[n];return t.isUndefined(o)&&(o=a(n)),o}function i(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function a(e){var t=p[e]=o.matchMedia(e);return t.addListener(d),f[t.media]=!!t.matches}function d(e){n.$evalAsync(function(){f[e.media]=!!e.matches})}function c(e){return p[e]}function l(t,n){for(var o=0;o {{ dialog.content }}
"," */
!function(e,t,n){"use strict";!function(){t.module("ngMaterial",["ng","ngAnimate","ngAria","material.core","material.core.gestures","material.core.theming.palette","material.core.theming","material.components.autocomplete","material.components.bottomSheet","material.components.backdrop","material.components.card","material.components.checkbox","material.components.content","material.components.button","material.components.divider","material.components.chips","material.components.dialog","material.components.fabSpeedDial","material.components.fabActions","material.components.fabToolbar","material.components.fabTrigger","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.select","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.swipe","material.components.switch","material.components.tabs","material.components.toast","material.components.toolbar","material.components.tooltip","material.components.virtualRepeat","material.components.whiteframe"])}(),function(){function e(e,t){e.decorator("$$rAF",["$delegate",n]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("red").backgroundPalette("grey")}function n(e){return e.throttle=function(t){var n,o,r,i;return function(){n=arguments,i=this,r=t,o||(o=!0,e(function(){r.apply(i,Array.prototype.slice.call(n)),o=!1}))}},e}t.module("material.core",["material.core.gestures","material.core.theming"]).config(e),e.$inject=["$provide","$mdThemingProvider"]}(),function(){function e(e,n,o,r,i){var a;return a={translate3d:function(e,t,o,r){function i(n){return e.removeClass(r.transitionInClass).addClass(r.transitionOutClass).css(n||t),a.waitTransitionEnd(e)}return e.css(t),n(function(){e.css(o).addClass(r.transitionInClass)}),a.waitTransitionEnd(e).then(function(){return i})},waitTransitionEnd:function(e,t){var n=3e3;return o(function(o,a){function d(t){t&&t.target!==e[0]||(t&&r.cancel(c),e.off(i.CSS.TRANSITIONEND,d),o())}t=t||{};var c=r(d,t.timeout||n);e.on(i.CSS.TRANSITIONEND,d)})},calculateZoomToOrigin:function(n,o){var r=o.element,i="translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )",d=t.bind(null,e.supplant,i),c=d({centerX:0,centerY:0,scaleX:.5,scaleY:.5});if(r){var l=a.clientRect(r)||a.copyRect(o.bounds),m=a.copyRect(n[0].getBoundingClientRect()),s=a.centerPointFor(m),u=a.centerPointFor(l);c=d({centerX:u.x-s.x,centerY:u.y-s.y,scaleX:Math.min(.5,l.width/m.width),scaleY:Math.min(.5,l.height/m.height)})}return c},toTransformCss:function(e,n){var o={};return t.forEach(i.CSS.TRANSFORM.split(" "),function(t){o[t]=e}),n&&(o.transition="all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important"),o},copyRect:function(e,n){return e?(n=n||{},t.forEach("left top right bottom width height".split(" "),function(t){n[t]=Math.round(e[t])}),n.width=n.width||n.right-n.left,n.height=n.height||n.bottom-n.top,n):null},clientRect:function(e){var n=t.element(e)[0].getBoundingClientRect(),o=function(e){return e&&e.width>0&&e.height>0};return o(n)?a.copyRect(n):null},centerPointFor:function(e){return{x:Math.round(e.left+e.width/2),y:Math.round(e.top+e.height/2)}}}}t.module("material.core").factory("$$mdAnimate",["$$rAF","$q","$timeout","$mdConstant",function(t,n,o,r){return function(i){return e(i,t,n,o,r)}}])}(),function(){function e(e){function t(e){return n?"webkit"+e.charAt(0).toUpperCase()+e.substring(1):e}var n=/webkit/i.test(e.vendorPrefix);return{KEY_CODE:{ENTER:13,ESCAPE:27,SPACE:32,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,TAB:9,BACKSPACE:8,DELETE:46},CSS:{TRANSITIONEND:"transitionend"+(n?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(n?" webkitAnimationEnd":""),TRANSFORM:t("transform"),TRANSFORM_ORIGIN:t("transformOrigin"),TRANSITION:t("transition"),TRANSITION_DURATION:t("transitionDuration"),ANIMATION_PLAY_STATE:t("animationPlayState"),ANIMATION_DURATION:t("animationDuration"),ANIMATION_NAME:t("animationName"),ANIMATION_TIMING:t("animationTimingFunction"),ANIMATION_DIRECTION:t("animationDirection")},MEDIA:{sm:"(max-width: 599px)","gt-sm":"(min-width: 600px)",md:"(min-width: 600px) and (max-width: 959px)","gt-md":"(min-width: 960px)",lg:"(min-width: 960px) and (max-width: 1199px)","gt-lg":"(min-width: 1200px)"},MEDIA_PRIORITY:["gt-lg","lg","gt-md","md","gt-sm","sm"]}}t.module("material.core").factory("$mdConstant",e),e.$inject=["$sniffer"]}(),function(){function e(e,n){function o(){return[].concat(E)}function r(){return E.length}function i(e){return E.length&&e>-1&&e-1}function f(){return E.length?E[0]:null}function h(){return E.length?E[E.length-1]:null}function b(e,o,r,a){r=r||g;for(var d=u(o);;){if(!i(d))return null;var c=d+(e?-1:1),l=null;if(i(c)?l=E[c]:n&&(l=e?h():f(),c=u(l)),null===l||c===a)return null;if(r(l))return l;t.isUndefined(a)&&(a=c),d=c}}var g=function(){return!0};e&&!t.isArray(e)&&(e=Array.prototype.slice.call(e)),n=!!n;var E=e||[];return{items:o,count:r,inRange:i,contains:p,indexOf:u,itemAt:c,findBy:l,add:m,remove:s,first:f,last:h,next:t.bind(null,b,!1),previous:t.bind(null,b,!0),hasPrevious:d,hasNext:a}}t.module("material.core").config(["$provide",function(t){t.decorator("$mdUtil",["$delegate",function(t){return t.iterator=e,t}])}])}(),function(){function e(e,n,o){function r(e){var n=u[e];t.isUndefined(n)&&(n=u[e]=i(e));var o=f[n];return t.isUndefined(o)&&(o=a(n)),o}function i(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function a(e){var t=p[e]=o.matchMedia(e);return t.addListener(d),f[t.media]=!!t.matches}function d(e){n.$evalAsync(function(){f[e.media]=!!e.matches})}function c(e){return p[e]}function l(t,n){for(var o=0;o {{ dialog.content }}
","!function(e,t,n){"use strict";!function(){t.module("ngMaterial",["ng","ngAnimate","ngAria","material.core","material.core.gestures","material.core.theming.palette","material.core.theming","material.components.autocomplete","material.components.bottomSheet","material.components.backdrop","material.components.card","material.components.checkbox","material.components.content","material.components.button","material.components.divider","material.components.chips","material.components.dialog","material.components.fabSpeedDial","material.components.fabActions","material.components.fabToolbar","material.components.fabTrigger","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.select","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.swipe","material.components.switch","material.components.tabs","material.components.toast","material.components.toolbar","material.components.tooltip","material.components.virtualRepeat","material.components.whiteframe"])}(),function(){function e(e,t){e.decorator("$$rAF",["$delegate",n]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("red").backgroundPalette("grey")}function n(e){return e.throttle=function(t){var n,o,r,i;return function(){n=arguments,i=this,r=t,o||(o=!0,e(function(){r.apply(i,Array.prototype.slice.call(n)),o=!1}))}},e}t.module("material.core",["material.core.gestures","material.core.theming"]).config(e),e.$inject=["$provide","$mdThemingProvider"]}(),function(){function e(e,n,o,r,i){var a;return a={translate3d:function(e,t,o,r){function i(n){return e.removeClass(r.transitionInClass).addClass(r.transitionOutClass).css(n||t),a.waitTransitionEnd(e)}return e.css(t),n(function(){e.css(o).addClass(r.transitionInClass)}),a.waitTransitionEnd(e).then(function(){return i})},waitTransitionEnd:function(e,t){var n=3e3;return o(function(o,a){function d(t){t&&t.target!==e[0]||(t&&r.cancel(c),e.off(i.CSS.TRANSITIONEND,d),o())}t=t||{};var c=r(d,t.timeout||n);e.on(i.CSS.TRANSITIONEND,d)})},calculateZoomToOrigin:function(n,o){var r=o.element,i="translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )",d=t.bind(null,e.supplant,i),c=d({centerX:0,centerY:0,scaleX:.5,scaleY:.5});if(r){var l=a.clientRect(r)||a.copyRect(o.bounds),m=a.copyRect(n[0].getBoundingClientRect()),s=a.centerPointFor(m),u=a.centerPointFor(l);c=d({centerX:u.x-s.x,centerY:u.y-s.y,scaleX:Math.min(.5,l.width/m.width),scaleY:Math.min(.5,l.height/m.height)})}return c},toTransformCss:function(e,n){var o={};return t.forEach(i.CSS.TRANSFORM.split(" "),function(t){o[t]=e}),n&&(o.transition="all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important"),o},copyRect:function(e,n){return e?(n=n||{},t.forEach("left top right bottom width height".split(" "),function(t){n[t]=Math.round(e[t])}),n.width=n.width||n.right-n.left,n.height=n.height||n.bottom-n.top,n):null},clientRect:function(e){var n=t.element(e)[0].getBoundingClientRect(),o=function(e){return e&&e.width>0&&e.height>0};return o(n)?a.copyRect(n):null},centerPointFor:function(e){return{x:Math.round(e.left+e.width/2),y:Math.round(e.top+e.height/2)}}}}t.module("material.core").factory("$$mdAnimate",["$$rAF","$q","$timeout","$mdConstant",function(t,n,o,r){return function(i){return e(i,t,n,o,r)}}])}(),function(){function e(e){function t(e){return n?"webkit"+e.charAt(0).toUpperCase()+e.substring(1):e}var n=/webkit/i.test(e.vendorPrefix);return{KEY_CODE:{ENTER:13,ESCAPE:27,SPACE:32,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,TAB:9,BACKSPACE:8,DELETE:46},CSS:{TRANSITIONEND:"transitionend"+(n?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(n?" webkitAnimationEnd":""),TRANSFORM:t("transform"),TRANSFORM_ORIGIN:t("transformOrigin"),TRANSITION:t("transition"),TRANSITION_DURATION:t("transitionDuration"),ANIMATION_PLAY_STATE:t("animationPlayState"),ANIMATION_DURATION:t("animationDuration"),ANIMATION_NAME:t("animationName"),ANIMATION_TIMING:t("animationTimingFunction"),ANIMATION_DIRECTION:t("animationDirection")},MEDIA:{sm:"(max-width: 599px)","gt-sm":"(min-width: 600px)",md:"(min-width: 600px) and (max-width: 959px)","gt-md":"(min-width: 960px)",lg:"(min-width: 960px) and (max-width: 1199px)","gt-lg":"(min-width: 1200px)"},MEDIA_PRIORITY:["gt-lg","lg","gt-md","md","gt-sm","sm"]}}t.module("material.core").factory("$mdConstant",e),e.$inject=["$sniffer"]}(),function(){function e(e,n){function o(){return[].concat(E)}function r(){return E.length}function i(e){return E.length&&e>-1&&e-1}function f(){return E.length?E[0]:null}function h(){return E.length?E[E.length-1]:null}function b(e,o,r,a){r=r||g;for(var d=u(o);;){if(!i(d))return null;var c=d+(e?-1:1),l=null;if(i(c)?l=E[c]:n&&(l=e?h():f(),c=u(l)),null===l||c===a)return null;if(r(l))return l;t.isUndefined(a)&&(a=c),d=c}}var g=function(){return!0};e&&!t.isArray(e)&&(e=Array.prototype.slice.call(e)),n=!!n;var E=e||[];return{items:o,count:r,inRange:i,contains:p,indexOf:u,itemAt:c,findBy:l,add:m,remove:s,first:f,last:h,next:t.bind(null,b,!1),previous:t.bind(null,b,!0),hasPrevious:d,hasNext:a}}t.module("material.core").config(["$provide",function(t){t.decorator("$mdUtil",["$delegate",function(t){return t.iterator=e,t}])}])}(),function(){function e(e,n,o){function r(e){var n=u[e];t.isUndefined(n)&&(n=u[e]=i(e));var o=f[n];return t.isUndefined(o)&&(o=a(n)),o}function i(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function a(e){var t=p[e]=o.matchMedia(e);return t.addListener(d),f[t.media]=!!t.matches}function d(e){n.$evalAsync(function(){f[e.media]=!!e.matches})}function c(e){return p[e]}function l(t,n){for(var o=0;o {{ dialog.content }}
","