VE Lua Documentation

Press F to search!

init

Definition


-- @/lua/vehicle/controller.lua:425

local function init()
  loadedControllers = {}
  sortedControllers = {}
  controllerJbeamData = {}

  M.mainController = nil

  --Here we create a bit of special magic to deal with fire and forget controller access
  --for example: controller.getController("abc").doSomething()
  --in this case an error is thrown if "abc" is not a valid controller.
  --Using controller.getControllerSafe() instead returns a magic table that
  --happily accepts all indexes and can be called without throwing errors (if no real controller is found)
  M.nilController = {}
  local mt = {
    __index = function(t, _)
      return t
    end, --return self when indexing
    __call = function(t, ...)
      return t
    end, --return self when being called
    __newindex = function(_, _, _)
    end, --prevent any write access
    __metatable = false --hide metatable to prevent any changes to it
  }
  setmetatable(M.nilController, mt)

  registerRelocatedControllers()

  local jbeamControllers = v.data.controller
  if not jbeamControllers then
    jbeamControllers = {{fileName = "dummy"}}
    log("D", "controller.init", "No controllers found, adding a dummy controller!")
  end

  blacklistLookup = {}
  for _, v in pairs(blacklist) do
    blacklistLookup[v] = true
  end

  local controllers = {}
  for _, v in pairs(jbeamControllers) do
    if v.fileName and not blacklistLookup[v.fileName] then
      local name = v.name or v.fileName
      if controllers[name] then
        log("E", "controller.init", string.format("Found duplicate controller of name %q, please make sure there are no name overlaps.", name))
        log("E", "controller.init", "By default controller names are the type, specify unique names if you use multiple controllers of the same type.")
      end
      if relocatedControllers[v.fileName] then
        log("D", "controller.init", string.format("Using relocated controller controller '%s' at '/%s.lua', original file path: '/%s.lua'", name, relocatedControllers[v.fileName], v.fileName))
        v.fileName = relocatedControllers[v.fileName]
      end
      controllers[name] = v
    end
  end

  controllers = adjustControllersPreInit(controllers)

  local directory = "controller/"
  for k, c in pairs(controllers) do
    local filePath = directory .. c.fileName
    local loadFunc = function()
      local controller = rerequire(filePath)
      if controller and type(controller) == "table" then
        local data = tableMergeRecursive(c, v.data[k] or {})
        c.name = c.name or k
        controllerJbeamData[c.name] = data
        controller.name = c.name
        controller.typeName = c.fileName
        controller.hasCustomName = c.fileName ~= c.name
        --log("I", "controller.init", string.format("Name: '%s', typeName: '%s', hasCustomName: '%s'", controller.name, controller.typeName, controller.hasCustomName))

        controller.init(data)
        controller.manualOrder = data.manualOrder
        loadedControllers[c.name] = controller

        if controller.type == "main" then
          if not M.mainController then
            M.mainController = controller
          else
            log("W", "controller.init", string.format("Found more than one main controller, 1: '%s', 2: '%s', unloading the first one...", M.mainController.name, controller.name))
            loadedControllers[M.mainController.name] = nil
            M.mainController = controller
          end
        end
      else
        error(string.format("Controller '%s' at '/%s.lua' is not a table, skipping...", k, filePath))
      end
    end
    local result, errorStr = pcall(loadFunc)
    if not result then
      log("E", "controller.init", string.format("Can't load controller '%s' at '/%s.lua', further info below:", c.fileName, filePath))
      log("E", "controller.init", errorStr)
      log("E", "controller.init", debug.traceback())
    end
  end

  if not M.mainController then
    log("D", "controller.init", "No main controller found, adding a dummy controller!")
    local dummyName = "dummy"
    local controller = require(directory .. dummyName)
    if controller then
      loadedControllers[dummyName] = controller
      controller.init()
      controller.name = dummyName
      controller.typeName = dummyName
      controller.hasCustomName = false
      M.mainController = controller
    end
  end

  for _, v in pairs(loadedControllers) do
    table.insert(sortedControllers, v)
  end

  local ranks = {}
  for k, v in ipairs(powertrain.getOrderedDevices()) do
    ranks[v.name] = k * 100
  end
  table.sort(
    sortedControllers,
    function(a, b)
      local ra, rb = ranks[a.relevantDevice or ""] or a.manualOrder or a.defaultOrder or 100000, ranks[b.relevantDevice or ""] or b.manualOrder or b.defaultOrder or 100000
      a.order = ra
      b.order = rb
      if ra == rb then
        return a.name < b.name
      else
        return ra < rb
      end
    end
  )

  --dumpz(sortedControllers, 2)

  --  for k,v in pairs(sortedControllers) do
  --    print(string.format("%s -> %d", v.name, v.order))
  --  end

  --backwards compatiblity for old scenario.lua:freeze(), we don't know if any mod ever used this, just here as a precaution
  scenario = {
    freeze = function(mode)
      log("W", "controller", "scenario.freeze(mode) is deprecated. Please switch to controller.setFreeze(mode)")
      setFreeze(mode)
    end
  }
end

Callers

@/lua/ge/extensions/core/cameraModes/topDown.lua

function C:init()
  self.disabledByDefault = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/onBigmapStateChange.lua

function C:init()
  self.flags = {}
@/lua/vehicle/controller/drivingDynamics/supervisors/slipProviders/virtualSpeedSlip.lua

local function init(jbeamData)
  M.isActive = true
@/lua/ge/extensions/flowgraph/nodes/states/transitionStack.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/ui/onBigmapPoiSelected.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/flowgraph/nodes/math/smoothers/spring.lua

function C:init()
  C.oldSet = 0
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/setupCrawl.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/vehicle/extensions/api.lua
        log('E', "default.init", "INIT WEBSERVER TO PORT "..port)
        httpJsonServer.init(bindHost, port, handleServerRequest)
        inited = true
@/lua/vehicle/controller/tech/GPS.lua
-- Initialises this GPS sensor instance.
local function init(data)
    sensorId = data.sensorId
@/lua/ge/extensions/flowgraph/nodes/util/loadProject.lua

function C:init(mgr, ...)
  self.data.destroyTargetOnStop = true
@/lua/ge/extensions/flowgraph/nodes/logic/and.lua

function C:init()
  self.count = 2
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleData.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/util/routePosition.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/editor/rallyEditor/measurementsTab.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/rallyEditor/pacenotes.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/axleLift.lua

local function init(jbeamData)
  velocityThresholdDisable = jbeamData.velocityThresholdDisable or 14
@/lua/vehicle/controller/sbrGauges.lua

local function init(jbeamData)
  log("E", "sbrGauges", "This controller is deprecated and shall not be used. It might be removed without further notice in the future! Please switch to the 'genericGauges' controller instead.")
@/gameplay/missionTypes/generatedTimeTrial/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/scene/storeStatics.lua

function C:init(mgr, ...)
  self.objects = {}
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceStart.lua

function C:init(mgr, ...)
  self.started = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/scriptAI/pathStored.lua

function C:init()
  self.aiPath = {}
@/lua/ge/extensions/flowgraph/nodes/career/onIntroPopupCareerClosed.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/flowgraph/nodes/ui/updatedUI/endScreenBegin.lua

function C:init()
  self.open = false
@/lua/vehicle/controller/tech/tyreBarrier.lua
-- Initialisation callback (called once when this controller is instantiated).
local function init(data)
  isPreamble = true
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceComplete.lua

function C:init(mgr, ...)
  self.complete = false
@/lua/ge/extensions/gameplay/drift/stuntZones/nearPole.lua

function C:init(data)
  self.data = data
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/generateDragOpponents.lua

function C:init()
  self.selectedOpponents = {}
@/lua/ge/extensions/flowgraph/nodes/environment/setScatterSky.lua

function C:init(mgr)
  self.data.restoreScatterSky = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/parkingspotByName.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/scene/rectMarker.lua

function C:init(mgr, ...)
  self.triggerName = nil
@/lua/ge/extensions/scenario/raceGoals.lua
  for _, goal in pairs(goals) do
    goal.init(scenario)
  end
@/lua/ge/extensions/flowgraph/nodes/scene/raycast.lua

function C:init()
  self.data.debug = false
@/lua/ge/extensions/flowgraph/nodes/gfx/dof.lua

function C:init(mgr, ...)
  self:reset()
@/lua/ge/extensions/core/cameraModes/manualzoom.lua

function C:init(fovDefault, fovMin, fovMax, uiTxt)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/events/customizedTriggerBox.lua

function C:init(mgr, ...)
  self.enterFlag = false
@/lua/ge/extensions/flowgraph/modules/trafficModule.lua

function C:init()
  self.trafficActive = false
@/lua/ge/extensions/editor/api/history.lua

function C:init()
  self.maxUndoLevels = defaultMaxUndoLevels
  C.__index = C
  o:init()
  return o
@/lua/ge/extensions/core/cameraModes/path.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/scenario/race_marker.lua

local function init()
  -- clear previous markers.
@/lua/ge/extensions/flowgraph/nodes/util/pushActionMap.lua

function C:init(mgr, ...)
  self:_executionStopped()
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/controller.lua

function C:init()
  self.count = 1
@/lua/vehicle/hydros.lua

local function init()
  if v.data.input and v.data.input.FFBcoef ~= nil then
@/lua/vehicle/controller/controllerTemplate.lua

local function init(jbeamData)
end
@/lua/ge/extensions/flowgraph/nodes/util/hsvColor.lua

function C:init()
@/lua/ge/extensions/flowgraph/modules/uiModule.lua

function C:init()
  self:clear()
@/lua/vehicle/controller/vehicleController/shiftLogic/cvtGearbox2.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/vehicle/controller/vehicleController/shiftLogic/sequentialGearbox.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/ge/extensions/core/cameraModes/external.lua

function C:init()
  self.disabledByDefault = true
  self.noise = noise()
  self.noise:init(0.14)
  self.smooth = smooth()
  self.smooth = smooth()
  self.smooth:init(20, 2.0)
  self.handheld = handheld()
    if self.isFanMode then
      self.autozoom:init(newTemporalSmoothing(15, 15))
      self.autozoom.steps = { {  0, z*70}, {1.5, z*60}, {  3, z*40}, {  6, z*30}, { 10, z*25}, { 40, z*15}, { 90, z*15}, {150, z*15} }
    else
      self.autozoom:init(newTemporalSpring(15, 10))
      self.autozoom.steps = { {  0, z*70}, {1.5, z*60}, {  3, z*60}, {  8, z*60}, { 20, z*40}, { 50, z*30}, {125, z* 20}, {200, z* 15} }
    if carStopped then
      self.handheld:init(20, 5, 2)
      self.noise:init(0.02)
      self.handheld:init(20, 5, 2)
      self.noise:init(0.02)
    else
    else
      self.handheld:init(40, 9, dzRandom(0.25, 0.7))
      self.noise:init(0.04)
      self.handheld:init(40, 9, dzRandom(0.25, 0.7))
      self.noise:init(0.04)
    end
  else
    self.handheld:init(80, 15, 0.05)
    self.predictor.future = dzRandom(0.05,0.35)
  end
  self.smooth:init(nil, nil, self.camPos)
  self:applyOffset(nx, ny, nz, findRandomAttachedNodePosition(veh), openxrSessionRunning) -- distance to current vehicle center
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/freeze.lua

function C:init()
@/lua/ge/extensions/scenario/distanceGoal.lua

local function init(scenario)
  M.instances = {}
@/gameplay/missionTypes/aiRace/customNodes/activateRaceNode.lua

function C:init(mgr, ...)
  self.started = false
@/gameplay/missionTypes/drift/customNodes/waitTriggerNode.lua

function C:init(mgr, ...)
  --self.data.duration = 3
@/lua/ge/extensions/flowgraph/nodes/math/quaternion/lookAt.lua

function C:init()
end
@/lua/vehicle/controller/gauges/customModules/tireData.lua

local function init(jbeamData)
end
@/ui/ui-vue/src/services/watchdog.js
    destroy()
    init()
  },

export function init() {
  if (isInitialized) {
@/lua/ge/extensions/flowgraph/nodes/vehicle/flipUpright.lua

function C:init()
  --self.data.useWheelCenter = false
@/lua/ge/ge_utils.lua

  -- GBitmap:init( uint width, uint heigt )
    -- create a RGBA image of widthXheight dimension
    -- create a RGBA image of widthXheight dimension
  bitmap:init(16, 16)
  -- test size
@/lua/ge/extensions/editor/missionEditor/startTrigger.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/buttons/getMultipleButtons.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/editor/tech/roadArchitect/terraform.lua
  local bmp = GBitmap()
  bmp:init(xSize, ySize)
  bmp:allocateBitmap(xSize, ySize, false, "GFXFormatR16")
@/lua/ge/extensions/flowgraph/modules/buttonModule.lua

function C:init()
  self.variables = require('/lua/ge/extensions/flowgraph/variableStorage')(self.mgr)
@/lua/vehicle/controller/braking/hydraulicPumpBrake.lua

local function init(jbeamData)
  local relevantEngineName = jbeamData.relevantEngineName or "mainEngine"
@/lua/ge/extensions/editor/vehicleEditor/staticEditor/veStaticRenderView.lua
-- Load renderviews data in memory (not actually creating renderviews)
local function init()
  local viewsSerialized = jsonReadFile(settingsPath)
local function onEditorInitialized()
  init()
@/lua/ge/extensions/flowgraph/nodes/scene/spawnPrefab.lua

function C:init(mgr, ...)
  self.objects = {}
@/lua/vehicle/controller/drivingDynamics/actuators/adaptiveTorsionBars.lua

local function init(jbeamData)
  local torsionBarNames = jbeamData.torsionBarNames or {}
@/lua/vehicle/powertrain/combustionEngineThermals.lua

local function init(engine, engineJbeamData)
  parentEngine = engine
@/lua/vehicle/controller/drivingDynamics/supervisors/yawControl.lua

local function init(jbeamData)
  controlParameters = {isEnabled = true}
@/lua/ge/extensions/flowgraph/nodes/scene/camera/cameraPath.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/groundDistance.lua

function C:init()
  self.data.drawDebug = false
@/lua/vehicle/controller/braking/brakedDifferentialSteering.lua

local function init(jbeamData)
  steeringPlay = jbeamData.steeringPlay or 0
@/lua/vehicle/controller/esc.lua

local function init(jbeamData)
  configData = jbeamData
@/lua/ge/extensions/gameplay/missions/missionTypes/baseMission.lua
-- This is called when a mission of this type is being created. Load files, initialize variables etc
function C:init()
  self.missionTypeLabel = "bigMap.missionLabels."..self.missionType
  C.__index = C
  o:init()
  for k, v in pairs(derivedClass) do
  end
  local init = o:init()
  return o, init
@/lua/ge/extensions/scenario/timeLimit.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/core/cameraModes/noise.lua

function C:init(factor)
  self.hidden = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/stopCrawl.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/flowgraph/nodes/scene/getPlayerVehicle.lua

function C:init()
end
@/lua/vehicle/controller/drivingDynamics/CMU.lua

local function init(jbeamData)
  isUDPConnected = false
@/lua/ge/extensions/editor/rallyEditor/recceTab.lua

function C:init(rallyEditor)
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/arrive/editor.lua

function C:init()
  self:addDecoHeader("Mandatory Mission Settings",'orange')
@/lua/ge/extensions/flowgraph/nodes/gameplay/multiseat.lua

function C:init(mgr, ...)
  self.activated = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVlua_string.lua

function C:init()
  self.data.func = self.pinIn.customLUAString.value
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleConfigProvider.lua

function C:init()
  self.models = {}
@/gameplay/missionTypes/rallyLoop/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/macro/foreach.lua

function C:init(mgr, ...)
  self.data.destroyTargetOnStop = true
@/lua/ge/extensions/flowgraph/modules/vehicleModule.lua
C.hooks = {'onCouplerAttached', 'onCouplerDetached','onBusUpdate', 'onVehicleResetted'}
function C:init()
  self.vehicles = {}
@/lua/ge/extensions/flowgraph/nodes/ui/rtMessage.lua

function C:init()
@/lua/vehicle/controller/tech/powertrainSensor.lua
-- Initialises this powertrain sensor instance.
local function init(data)
  sensorId = data.sensorId
@/lua/ge/extensions/flowgraph/nodes/vehicle/boost.lua

function C:init()
  self.loaded = false
@/lua/ge/extensions/flowgraph/modules/actionModule.lua

function C:init()
  self:clear()
@/lua/common/utils/heatmap.lua

local function init(_filename)
  filename = _filename
@/lua/ge/extensions/gameplay/rally/notebook/pacenoteWaypoint.lua

function C:init(pacenote, name, pos, forceId)
  self.pacenote = pacenote
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/mission/clearLightsDragRace.lua

function C:init()
  self.lights = {}
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/couple.lua

function C:init(mgr, ...)
  self.data.mode = "activate"
@/lua/ge/extensions/flowgraph/nodes/scene/spawnLight.lua

function C:init(mgr, ...)
  self.objects = {}
@/lua/ge/extensions/editor/rallyEditor/testTab.lua

function C:init(rallyEditor)
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficActivate.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/editor/missionEditor/dev.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/getCrawlResults.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/career/modules/painting.lua
    camData.orbit:setDefaultRotation(previousDefaultRotation)
    camData.orbit:init()
  end
@/gameplay/missionTypes/collection/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/math/increaser.lua

function C:init()
  self.data.currentValue = 0
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVehicleGetter.lua

function C:init()
  self.data.fun = functions[1].fun
@/lua/ge/extensions/flowgraph/nodes/debug/debugLine.lua

function C:init()
end
@/gameplay/missionTypes/evade/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/vehicle/controller.lua
      c.typeName = fileName
      c.init(data)
      c.manualOrder = data.manualOrder

        controller.init(data)
        controller.manualOrder = data.manualOrder
      loadedControllers[dummyName] = controller
      controller.init()
      controller.name = dummyName
    if not v.reset then
      v.init(controllerJbeamData[v.name])
    end
@/lua/ge/extensions/flowgraph/nodes/gameplay/missionDefaults.lua

function C:init()
  self.clearOutPinsOnStart = false
@/lua/ge/extensions/flowgraph/nodes/logic/sequencer.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleMapData.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraPosition.lua

function C:init()
  self.position = vec3(0,0,0)
@/gameplay/missions/automation_test_track/flowgraph/001-Dam/customNodes/getClosestStaticObjectNode.lua

function C:init()
  self.pos = vec3()
@/gameplay/missions/east_coast_usa/flowgraph/001-Gavril/constructor.lua

function C:init()
  self.defaultAggregateValues = {
return function()
  C:init()
  return C
@/lua/ge/extensions/flowgraph/nodes/mission/UpdateDisplayDragRace.lua

function C:init()
  self.pinOut.flow.value = false
@/lua/ge/extensions/flowgraph/nodes/ui/multiDescription.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/beamstate.lua

function C:init()
  self.functions = {
@/lua/vehicle/input.lua

local function init()
  --inRate (towards the center), outRate (away from the center), autoCenterRate, startingValue
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceHighscoresComplete.lua

function C:init()
  self.markers = nil
@/lua/ge/extensions/flowgraph/nodes/ui/customUiLayout.lua

function C:init()
@/lua/vehicle/controller/vehicleController/vehicleController.lua
  if controlLogicModule then
    controlLogicModule.init(jbeamData, sharedFunctions)
    controlLogicModule.gearboxHandling = gearboxHandling

local function init(jbeamData)
  M.throttle = 0

  controlLogicModule.init(jbeamData, sharedFunctions)
  controlLogicModule.gearboxHandling = gearboxHandling
  --drivingStrategy.core = require(drivingStrategyCoreModulePath)
  --drivingStrategy.core.init(M)
  --  drivingStrategy[v] = require(drivingStrategyModuleDirectory .. v)
  --  drivingStrategy[v].init(M)
  --end
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/pursuitParams.lua

function C:init()
  self.vars = {}
@/lua/vehicle/controller/beamNavigator.lua

local function init(jbeamData)
  screenMaterialName = jbeamData.screenMaterialName or "@screen_gps"
@/lua/vehicle/fire.lua

local function init()
  if fireBurnSoundObj then
@/lua/ge/extensions/flowgraph/nodes/ui/selectButtons.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceRestarted.lua

function C:init(mgr, ...)
  self.restart = false
@/lua/ge/main.lua
-- Also called on reload (Control-L)
function init(reason)
  settings.initSettings(reason)
  -- Init the physics plugin.
  PhysicsPlugin.init("")
@/lua/ge/extensions/flowgraph/nodes/career/customTowAction.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/locationsByTag.lua

function C:init(mgr, ...)
  self.count = 1
@/lua/vehicle/sounds.lua

local function init()
  if not v.data.nodes then
@/lua/vehicle/controller/braking/adaptiveBrakeLights.lua

local function init(jbeamData)
  electricsName = jbeamData.electricsName or "brakelights"
@/lua/vehicle/controller/gauges/customModules/navigationData.lua

local function init(jbeamData)
end
@/lua/ge/extensions/editor/rallyEditor/static.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/fileRace.lua

function C:init(mgr, ...)
  self.started = false
@/lua/ge/extensions/editor/raceEditor/timeTrials.lua

function C:init(raceEditor)
  self.pathEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/core/cameraModes/relative.lua

function C:init()
  self.resetCameraOnVehicleReset = false
  self.rot = slot.rot
  self.manualzoom:init(slot.fov)
  return true
function C:setFOV(fov)
  self.manualzoom:init(fov)
end
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/gameplay/rally/recce.lua

function C:init(missionDir)
  self.missionDir = missionDir
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/rally/loop/stagedCountdownTest.lua

function C:init()
  self.epoch = 0
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/sitesEditor/tags.lua

function C:init(sitesEditor, key)
  self.sitesEditor = sitesEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/mission/selectGarage2GarageZones.lua

function C:init()
  self.startSpot = nil
@/gameplay/missionTypes/cannon/customNodes/MarkersNode.lua
  self.markers = require('scenario/race_marker')
  self.markers.init()
  table.clear(wps)
@/lua/ge/extensions/scenario/raceMarkers/crawlMarker.lua

function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/pneumatics/lowAirPressureWarning.lua

local function init(jbeamData)
  lowAirWarningElectric = jbeamData.lowAirWarningElectric or "lowAirPressure"
@/lua/ge/extensions/core/cameraModes/bigMap.lua

function C:init()
  self.fovMin = 25 -- This will be overwritten in bigMapMode.lua based on map size
  self.manualzoom = manualzoom()
  self.manualzoom:init(self.fovMax, self.fovMin, self.fovMax)
  self:reset()
function C:setLevelProperties()
  self:init()
end
  self.firstUpdate = true
  self.manualzoom:init(self.fovMax, self.fovMin, self.fovMax)
end
function C:onDeserialized()
  self:init()
  if self.mapBoundaries then
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/vehicleAction.lua

function C:init()
  self.models = {}
@/gameplay/missionTypes/cannon/customNodes/cannonBallInfoNode.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/ui/flashMessage.lua

function C:init()
  self.helper = require('scenario/scenariohelper')
@/lua/ge/extensions/flowgraph/nodes/vehicle/setGearbox.lua

function C:init()
@/lua/ge/extensions/gameplay/rally/vehicleCapture.lua

function C:init(vehicle, missionDir) --, cornerAngles, selectedCornerAnglesName)
  log('I', logTag, 'initializing vehicleCapture for vehicle='..vehicle:getId())
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/pointOnDecalroad.lua
C.tags = {}
function C:init()
  self.point = vec3(0,0,0)
@/lua/ge/extensions/editor/flowgraph/overview.lua

function C:init()
  self.filter = im.ImGuiTextFilterPtr()
@/lua/ge/extensions/flowgraph/nodes/gameplay/playerMoves.lua

function C:init()
  self.initialPos = nil
@/lua/ge/extensions/gameplay/traffic/roles/police.lua

function C:init()
  self.class = 'emergency'
@/gameplay/missions/italy/arrive/012-Field/script.lua

function C:init(data)
  data = data or {}
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/events/controlsReset.lua

function C:init(mgr, ...)
  self.reset = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPos.lua

function C:init(mgr, ...)
  self.timer = 0
@/lua/ge/extensions/gameplay/rally/transcripts/entry.lua

function C:init(path, name, forceId)
  self.path = path
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/activity/requestAbandon.lua

function C:init(mgr, ...)
  self.reset = false
@/lua/ge/extensions/editor/toolUtilities/splineMaskExport.lua
  local bmp = GBitmap()
  bmp:init(xSize, ySize)
  bmp:allocateBitmap(xSize, ySize, false, "GFXFormatR16")
@/lua/ge/extensions/flowgraph/nodes/debug/displayFlow.lua
C.tags = {'util'}
function C:init()
  self.lastTime = 1
@/gameplay/missionTypes/evade/customNodes/getClosestTrafficNode.lua

function C:init()
  self.pos = vec3()
@/gameplay/missionTypes/delivery/editor.lua

function C:init()
  self:addString("Intro Message", "introMessage", "", 10000, {isTranslation = true})
@/lua/ge/extensions/flowgraph/nodes/util/roadSegment.lua

function C:init()
  self._n1, self._n2 = nil, nil
@/lua/ge/extensions/core/cameraModes/transition.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLicensePlate.lua

function C:init(mgr, ...)
  self.ready = true
@/lua/ge/extensions/gameplay/rally/tools/rallyToolbox.lua

function C:init()
  -- self.drivelineMode = RallyEnums.drivelineMode.route
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/basenode.lua

function C:init(mgr, graph, forceId)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/vehicle/controller/tech/screens.lua
local function reset(jbeamData)
  M.init(jbeamData)
end

local function init(jbeamData)
  if not jbeamData.screenDefinitions or type(jbeamData.screenDefinitions) ~= "table" or #jbeamData.screenDefinitions <= 0 then
@/lua/ge/extensions/flowgraph/nodes/environment/setFogDensity.lua

function C:init(mgr)
  self.data.restoreTod = true
@/lua/ge/extensions/flowgraph/nodes/mission/selectHeistMissionSpots.lua

function C:init()
  self.spots = {}
@/lua/ge/extensions/freeroam/dragRace.lua

local function init()
  started = false
    displayOverview(true, true)
    init()
  end
    if data.event == "enter" then
      init()
      opponentVehicle:queueLuaCommand('ai.setSpeed(5)')
local function selectOpponent(selection)
  init()
  resetDisplays()
@/lua/ge/extensions/flowgraph/nodes/gameplay/vehiclePool/createPool.lua

function C:init()
  self:onNodeReset()
@/lua/vehicle/controller/pneumatics/liftAxleControl.lua

local function init(jbeamData)
  maximumSupplyPressure = jbeamData.defaultMaximumSupplyPressure or 0
@/lua/ge/extensions/flowgraph/nodes/util/perlinNoise.lua

function C:init()
  self.graphData = {}
@/lua/ge/extensions/editor/util/vehicleSelectUtil.lua

function C:init(name, data)
  self.id = getNextUniqueIdentifier()
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/drift/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/vehicle/controller/drivingDynamics/actuators/activeDiffBias.lua

local function init(jbeamData)
  M.isActing = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleOOBB.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/career/careerVehicleSelect.lua

function C:init()
  self.open = false
@/gameplay/missionTypes/rallyLoop/editor.lua

function C:init()
  self:addDecoHeader("Mission Screen Text",'orange')
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalLine.lua

function C:init()
  self.data.snapToTerrain = false
@/lua/ge/extensions/flowgraph/nodes/career/menuClosed.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/gameplay/util/sortedList.lua
-- This creates objects.
function C:init(name, parent, objectConstructor)
  self.objectConstructor = objectConstructor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/jato.lua

local function init(jbeamData)
  fuel = jbeamData.fuel or 20
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/followWaypoints.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/ui/threeElementSelect.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/modules/missionModule.lua

function C:init()
  self:clear()
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficMoveGroup.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/gameplay/rally/vehicleTracker.lua

function C:init(damageThreshold)
  -- log('D', logTag, 'VehicleTracker init')
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/gauges/customModules/dynamicRedlineData.lua

local function init(jbeamData)
  minOutput = jbeamData.minOutput or 0
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/getCrawlData.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/core/cameraModes/unicycle.lua

function C:init()
  self.hidden = true
  self.manualzoom = manualzoom()
  self.manualzoom:init(55)
  self:onSettingsChanged()
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalPath.lua

function C:init()
end
@/lua/vehicle/controller/tech/roadsSensor.lua
-- Initialises this roads sensor instance.
local function init(data)
  sensorId = data.sensorId
@/lua/ge/extensions/editor/util/plotHelperUtil.lua
-- params.catmullromCurveLines = x or nil (x > 200 preferably)
function C:init(params)
  params = params or {
  idCounter = idCounter + 1
  o:init(...)
  return o
@/gameplay/missionTypes/drift/customNodes/wrongWayNode.lua

function C:init()
  self.lastDist = 0
@/lua/ge/extensions/flowgraph/nodes/gameplay/groundmarkers.lua

function C:init(mgr, ...)
  --self.data.step = 8
@/lua/ge/extensions/scenario/damageGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/core/settings/graphic.lua
    if graphicsOptions[k] and type(graphicsOptions[k].init) == 'function' then
      graphicsOptions[k].init(v)
    end
@/lua/ge/extensions/flowgraph/nodes/scene/collectionMarker.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/macro/io.lua

function C:init()
  self.savePins = true
@/lua/vehicle/powertrain/turbocharger.lua

local function init(device, jbeamData)
  turbo = deepcopy(jbeamData)
@/lua/ge/extensions/flowgraph/modules/aiRecordingModule.lua

function C:init()
  -- Initialize AI recording state
@/gameplay/missions/industrial/flowgraph/001-King/constructor.lua

function C:init()
  self.defaultAggregateValues = {
return function()
  C:init()
  return C
@/lua/ge/extensions/flowgraph/nodes/events/onUpdate.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/gameplay/rally/notebook/missionSettings.lua

function C:init(missionDir)
  self.missionDir = missionDir
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/markers/driftLineMarker.lua

function C:init()
  self.id = idCounter
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/activity/getProgress.lua
C.allowCustomOutPins = true
function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/types/transform.lua

function C:init()
  local cameraPosition = core_camera.getPosition()
@/lua/ge/extensions/flowgraph/nodes/scene/hide.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/macro/integrated.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/pathDefaultStartTransform.lua

function C:init(mgr, ...)
  self.path = nil
@/lua/vehicle/backwardsCompatibility.lua

local function init()
  checkOldESC() --convert hardcoded ESC to controller
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/pathEndTransform.lua

function C:init(mgr, ...)
  self.path = nil
@/lua/ge/extensions/flowgraph/nodes/vehicle/isPlayerUsable.lua
}
function C:init()
@/gameplay/missions/gridmap_v2/aiRace/001-grindergrandprix/script.lua
  if o.init then
    o:init(...)
  end
@/lua/ge/extensions/flowgraph/nodes/ui/monologue.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/debug/numberSlider.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/locationByName.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/parkingspot.lua

function C:init(mgr, ...)
  self.options = {"key"}
@/lua/vehicle/bdebugImpl.lua

local function init(savedState, newPartialState)
  log('D', 'bdebugImpl.init', 'init')
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/trackStageTime.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/states/transition.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/scenario/raceMarkers/ringMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/gen/exp_solidflex.lua
--        W.test()
        W.init()
    else
    else
        W.init()
    end
        aa = {0}
        W.init()
    elseif k == 'visc_in' then
    if true then
        W.init()
--[[
@/lua/ge/extensions/core/cameraModes/autopoint.lua

function C:init()
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/gameplay/missionTypes/aiRace/editor.lua

function C:init()
  ---- mandatory settings ----
@/lua/ge/extensions/editor/api/gui.lua
  if atlas then
    atlas:init(editor.atlasWidth, editor.atlasHeight, true)
    atlas:loadFile(atlasPath)
@/lua/ge/extensions/gameplay/delivery/delivery.lua

function C:init()
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/raceLineParking.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/vehicle/toShowroom.lua

function C:init() end
@/lua/ge/extensions/flowgraph/modules/missionReplayModule.lua

function C:init()
  self.replayRecording = false
@/lua/vehicle/controller/driveModes.lua

local function init(jbeamData)
  uiName = jbeamData.uiName
@/lua/vehicle/controller/braking/postCrashBrake.lua

local function init(jbeamData)
  --if the hazards are still active from before reset, deactivate them
@/gameplay/missionTypes/evade/customNodes/multiVehicleLuaNode.lua

function C:init()
  self.data.ignoreUndrivableVehicles = true
@/lua/vehicle/controller/pyrotechnicCharge.lua

local function init(jbeamData)
  hasTriggered = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/simpleFollowDecalroad.lua

function C:init()
  self.path = nil
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLights.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/countdownSynced.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/ge/extensions/gameplay/rally/notebook/structured/textCompositor.lua

function C:init(compositorName)
  if not compositorName then
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/traffic/vehicle.lua

function C:init(id, role)
  id = id or 0
  C.__index = C
  o:init(o.id)
  return o.model and o -- returns nil if invalid object
@/gameplay/missionTypes/targetjump/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/math/math.lua

function C:init()
  self.data.safeMode = true
@/lua/ge/extensions/flowgraph/nodes/types/setVariable.lua
C.hidden = true
function C:init()
  self.varName = nil
@/lua/ge/extensions/flowgraph/modules/timerModule.lua

function C:init()
  self.variables = require('/lua/ge/extensions/flowgraph/variableStorage')(self.mgr)
@/lua/vehicle/controller/gauges/customModules/accelerationData.lua

local function init(jbeamData)
end
@/ui/lib/int/utilities.js
          // otherwise we would never be able to apply new data that was available only after compilation
          function init () {
            if (scope.visibleItems.length === 0) {
            scope.allData = val || []
            init()
          })
          window.onresize = function () {
            init()
          }
@/lua/ge/extensions/gameplay/rally/loop/rallyLoopManager.lua

function C:init(missionId, missionDir)
  if gameplay_rallyLoop and gameplay_rallyLoop.getDebugLogging() then log('D', logTag, '<<<<< RallyLoopManager init >>>>>') end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/types/number.lua

function C:init()
  self.data.value = 0
@/lua/ge/extensions/flowgraph/nodes/activity/starsActive.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/logic/booleanExpression.lua

function C:init()
  self.data.safeMode = true
@/lua/ge/extensions/flowgraph/nodes/events/onBeamNGTrigger.lua

function C:init(mgr, ...)
  self.data.filterName = ""
@/lua/vehicle/controller/sound/AVAS.lua

local function init(jbeamData)
end
@/lua/ge/extensions/scenario/speedGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/flowgraph/modules/prefabModule.lua

function C:init()
  self.prefabs = {}
@/lua/vehicle/protocols/outgauge.lua
local hasShiftLights = false
local function init()
  local shiftLightControllers = controller.getControllersByType("shiftLights")
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imCheckbox.lua

function C:init()
  self.data.startState = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/location.lua

function C:init(mgr, ...)
  self.options = {"key"}
@/lua/vehicle/controller/powertrainControl/antiLag.lua

local function init(jbeamData)
  local engineName = jbeamData.controlledEngine or "mainEngine"
@/lua/ge/extensions/scenario/raceMarkers/sideColumnMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/math/accumulator.lua

function C:init()
  self.data.currentSum = 0
@/lua/ge/extensions/editor/flowgraph/history.lua

function C:init()
    editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/gameplay/missionTypes/garageToGarage/editor.lua

function C:init()
@/inspector/External/CodeMirror/codemirror.js

  input.init(d)
}
@/ui/lib/ext/angular-material-paging.js
    $scope.$watch('wmpTotal', function() {
      vm_paging.init();
    });
@/lua/ge/extensions/flowgraph/nodes/logic/rateLimit.lua

function C:init()
  self.time = 0
@/lua/ge/extensions/core/cameraModes/collision.lua

function C:init()
  lastDistance = nil
function C:onVehicleSwitched()
  self:init()
end
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/updatedUI/startScreenDial.lua

function C:init()
  self.panel = {
@/lua/vehicle/controller/powertrainControl/rimPullControl.lua

local function init(jbeamData)
  local torqueConverterName = jbeamData.torqueConverterName or "torqueConverter"
@/lua/ge/extensions/flowgraph/nodes/string/format.lua

function C:init()
  self.data.pattern = "%d"
@/lua/ge/extensions/flowgraph/baseModule.lua

function C:init(mgr)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/ge/extensions/flowgraph/nodes/debug/flowButton.lua

function C:init(mgr, ...)
  self.data.btnName = "Push"
@/lua/ge/extensions/flowgraph/nodes/debug/debugPrism.lua

function C:init()
end
@/lua/ge/extensions/editor/roadArchitect.lua
                local bmp = GBitmap()
                bmp:init(width, height)
                bmp:allocateBitmap(width, height, false, "GFXFormatR16")
@/gameplay/missionTypes/dragStripRace/editor.lua

function C:init()
@/gameplay/missionTypes/collection/constructor.lua

function C:init()
  self.latestVersion = version
@/ui/ui-vue/src/main.js
// initialise systemInfo service
SysInfo.init()
@/lua/vehicle/controller/trailerFeet.lua

local function init(jbeamData)
  electricsName = jbeamData.electricsName or "feet"
@/lua/ge/extensions/flowgraph/nodes/environment/setWind.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/gameplay/markers/gasStationMarker.lua
local tmpVec = vec3()
function C:init()
  self.visible = true
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/loop/rallyClock.lua

function C:init(mgr, ...)
  -- Cache for scheduled event time lookup
@/lua/ge/extensions/flowgraph/nodes/gameplay/countdown.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/ge/extensions/flowgraph/graph.lua

function C:init(mgr, name, forceId)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceNodeReached.lua
}
function C:init(mgr, ...)
  self.data.detailed = false
@/gameplay/missionTypes/dragStripRace/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/vehicle/material.lua

local function init()
  if not v.data._materials then
@/lua/ge/extensions/flowgraph/groupHelper.lua

function C:init(mgr)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/imRaceTimes.lua

function C:init(mgr, ...)
  self.data.detailed = false
@/lua/ge/extensions/core/vehicles.lua
      veh:createUITexture(textureTagPrefix, designData.data.generator, designData.data.size.x, designData.data.size.y, UI_TEXTURE_USAGE_AUTOMATIC, 1) --UI_TEXTURE_USAGE_MANUAL
      veh:queueJSUITexture(textureTagPrefix, 'init("diffuse","' .. txt .. '", '.. jsonEncode(designData) .. ');')
      veh:createUITexture(textureTagPrefix.."-normal", designData.data.generator, designData.data.size.x, designData.data.size.y, UI_TEXTURE_USAGE_AUTOMATIC, 1)
      veh:queueJSUITexture(textureTagPrefix.."-normal", 'init("bump","' .. txt .. '", '.. jsonEncode(designData) .. ');')
      veh:createUITexture(textureTagPrefix.."-specular", designData.data.generator, designData.data.size.x, designData.data.size.y, UI_TEXTURE_USAGE_AUTOMATIC, 1)
      veh:queueJSUITexture(textureTagPrefix.."-specular", 'init("specular","' .. txt .. '", '.. jsonEncode(designData) .. ');')
@/lua/ge/extensions/core/settings/settings.lua
local function finalizeInit()
  -- force application of all settings the first time, since init() has not correctly applied all of them
  -- we could make init() call load(), but that would fail because it's still too early, and some stuff is not initialized yet
  -- force application of all settings the first time, since init() has not correctly applied all of them
  -- we could make init() call load(), but that would fail because it's still too early, and some stuff is not initialized yet
  load(true)
@/lua/ge/extensions/core/cameraModes/smooth.lua

function C:init(spring, damp, pos)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/environment/simplePlanet.lua

function C:init()
  self.vehicle = nil
@/gameplay/missionTypes/delivery/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/vehicle/controller/drivingDynamics/supervisors/components/motorTorqueControl.lua

local function init(jbeamData)
  M.isActive = true
@/lua/ge/extensions/flowgraph/nodes/string/subString.lua

function C:init()
  self.data.from = 0
@/gameplay/missionTypes/simpleLapconfigScenario/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/vehicle/gForce.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/logic/switchcase.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/input/blacklistActionFilter.lua

function C:init()
  self.activeTemplates = {}
@/lua/ge/extensions/flowgraph/nodes/thread/receiveMessage.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/removeOtherVehicles.lua

function C:init()
  self.count = 1
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/startCrawl.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/flowgraph/modules/driftModule.lua

function C:init()
  self:resetModule()
@/lua/ge/extensions/flowgraph/nodes/audio/fade.lua

function C:init()
  self:reset()
@/lua/vehicle/thrusters.lua

local function init()
  -- update public interface
@/lua/ge/extensions/gameplay/race/segment.lua

function C:init(path, name, forceId)
  self.path = path
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/mission/stageLightsDragRace.lua

function C:init()
  self.lights = {}
@/lua/ge/extensions/editor/flowgraph/basewindow.lua

function C:init(fgEditor)
  self.fgEditor = fgEditor
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/ge/extensions/flowgraph/nodes/gameplay/crash/onCrashDetected.lua

function C:init()
  self:reset()
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/filePath.lua

function C:init(mgr, ...)
  self.path = nil
@/lua/vehicle/controller/lightbar.lua

local function init(jbeamData)
  -- Load the electric value name from jbeam data, default to "lightbar" for backwards compatibility
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraRotation.lua

function C:init()
  self.rotation = quat(0,0,0,0)
@/lua/ge/extensions/flowgraph/nodes/audio/fadeIn.lua

function C:init()
  self.timer = 0
@/lua/ge/extensions/editor/flowgraph/garbageDebug.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/gameplay/missionTypes/flowgraph/editor.lua

function C:init()
  self.currentConfig = nil
@/lua/ge/extensions/gameplay/sites/customFields.lua

function C:init()
  self.names = {}
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/util/hideLoadingScreen.lua

function C:init()
  self.clearOutPinsOnStart = false
@/lua/ge/extensions/util/terrainGenerator.lua

function C:init(data)
  data = data or {}
      local b = GBitmap()
      b:init(self.terrainWidth, self.terrainWidth)
      b:fillColor(ColorI(n, n, n, 255))
  C.__index = C
  o:init(data)
  return o
@/lua/vehicle/controller/braking/transbrake.lua

local function init(jbeamData)
  local gearboxName = jbeamData.gearboxName or "gearbox"
@/lua/ge/extensions/flowgraph/nodes/string/stringconcat.lua

function C:init()
  self.pinOut.value.value = ""
@/lua/ge/extensions/editor/flowgraph/execution.lua

function C:init()
  self.contextMenuElement = nil
@/lua/ge/extensions/flowgraph/nodes/recording/recordReplay.lua

function C:init()
  self.state = "none"
@/lua/vehicle/controller/vehicleController/shiftLogic/manualGearbox.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/gameplay/missionTypes/arrive/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/types/getVariable.lua
C.hidden = true
function C:init()
  self.varName = nil
@/lua/ge/extensions/editor/flowgraph/nodelibrary.lua
local sharedFrecency = nil
function C:init()
  self.searchText = im.ArrayChar(128)
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/stop.lua

function C:init()
  self.complete = false
@/lua/ge/extensions/editor/util/editorElementHelper.lua
  if o.init then
    o:init()
  end
@/lua/vehicle/controller/pneumatics/actuators.lua

local function init(jbeamData)
  local airTankName = jbeamData.airTankName or "mainAirTank"
@/lua/ge/extensions/core/cameraModes/observer.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/gameplay/route/raceRoute.lua

function C:init(removeFirst, useMapPathfinding, closeDistSquared, logTag)
  logTag = logTag or ''
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/rally/notebook/path.lua

function C:init(name)
  self._uid = 0
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/spawnTSStatic.lua

function C:init(mgr, ...)
  self.objects = {}
@/lua/ge/extensions/flowgraph/nodes/vehicle/alignForCoupling.lua

function C:init()
@/lua/ge/extensions/scenario/raceMarkers/noneMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init(id)
end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/scenario/nomoveGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/flowgraph/nodes/activity/missionAttemptStars.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/ui/endStats.lua

function C:init()
  self.count = 0
@/gameplay/missionTypes/rallyRoadSection/editor.lua

function C:init()
  -- self:addDecoHeader("Mission Screen Text",'orange')
@/gameplay/missionTypes/rallyStage/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalCircle.lua

function C:init()
  self.data.snapToTerrain = true
@/lua/vehicle/controller/tech/advancedIMU.lua
-- Initialises this sensor instance.
local function init(data)
  state.sensorId = data.sensorId -- The unique Id (integer) for this sensor instance.
@/lua/ge/extensions/flowgraph/nodes/career/garageComputerUtil.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallySuperCountdown.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/ge/extensions/editor/flowgraph/stateView.lua

function C:init()
  self.filter = im.ImGuiTextFilterPtr()
@/lua/common/luaProfiler.lua
-- constructor; title is only displayed in logs, can be used to differentiate between different profilers running at the same time
function C:init(title)
  self.title = title
  setmetatable(o, C)
  o:init(...)
  return o
@/lua/ge/extensions/editor/crawlEditor/waypoints.lua

function C:init(crawlEditorParam)
  self.crawlEditor = crawlEditorParam
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/sites/parkingSpot.lua

function C:init(sites, name, forceId)
  self.sites = sites
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/wendoverGauges.lua

local function init(jbeamData)
  log("E", "wendoverGauges", "This controller is deprecated and shall not be used. It might be removed without further notice in the future! Please switch to the 'genericGauges' controller instead.")
@/lua/ge/extensions/editor/sitesEditor/zones.lua

function C:init(sitesEditor, key)
  self.sitesEditor = sitesEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/modules/foreachModule.lua

function C:init()
  self:clear()
@/lua/ge/extensions/gameplay/race/path.lua
local prefabFields = {"prefabs","forwardPrefabs","reversePrefabs"}
function C:init(name)
  self._uid = 0
  local path = self
  path:init("New Race")
  local nodeToId = {}
  local path = self
  path:init("New Race")
  local nodeToId = {}
  local path = self
  path:init("New Race")
  path.hideMission = trackInfo.hideMission or false
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/moveTo.lua

function C:init()
  --self.data.useWheelCenter = false
@/lua/ge/extensions/flowgraph/nodes/career/completeLinearTutorialStep.lua

function C:init()
@/lua/vehicle/controller/advancedCouplerControl.lua

local function init(jbeamData)
  --print(M.name)
@/lua/ge/extensions/editor/missionEditor/prefabs.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/variableStorage.lua

function C:init(mgr)
  self.mgr = mgr
  end
  self.variables[name].mergeFuns.init(self.variables[name])
  return true
    self.variables[name].mergeFuns.finalize(self.variables[name])
    self.variables[name].mergeFuns.init(self.variables[name])
  end
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/pneumatics.lua

local function init(jbeamData)
  local pressureLevels = {minPressure = 0, maxPressure = 0}
@/lua/vehicle/controller/sound/airbrakes.lua

local function init(jbeamData)
  lastBrake = 0
@/ui/modules/apps/ForcedInductionDebug/app.js

      init()
@/lua/ge/extensions/core/hotlapping.lua
    markers = require('scenario/race_marker')
    markers.init()
    local wps = {}
@/lua/vehicle/controller/gauges/customModules/environmentData.lua

local function init(jbeamData)
end
@/lua/ge/extensions/editor/missionEditor/additionalAttributes.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/4wd.lua

local function init(jbeamData)
  shaft = powertrain.getDevice(jbeamData.shaftName)
@/lua/ge/extensions/editor/raceEditor/startPositions.lua

function C:init(raceEditor)
  self.raceEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/race/race.lua

function C:init()
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/tech/cosimulationCoupling.lua
-- Initialisation callback.
local function init(dataEncoded)
@/lua/ge/extensions/flowgraph/nodes/util/file/loadData.lua

function C:init(mgr)
  self.savePins = true
@/lua/ge/extensions/editor/crawlEditor/startingPositions.lua

function C:init()
  self.startingPosition = nil
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/sensors/vehicleData.lua

local function init(jbeamData)
end
@/lua/ge/extensions/gameplay/rally/driveline/drivelineMeasurement.lua

function C:init(driveline)
end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/rallyEditor/missionSettings.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/rally/cameraPathPlayer.lua

function C:init(snaproad)
  self.snaproad = snaproad
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/instanceByName.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/gameplay/traffic/baseRole.lua

function C:init(veh, name, data)
  data = data or {}
  C.__index = C
  o:init(o.veh, o.name)

  o:init()
  o:postInit()
@/lua/ge/extensions/gameplay/markers/parkingMarker.lua
local idCounter = 0
function C:init()
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/actuators/activeDiffLock.lua

local function init(jbeamData)
  M.isActing = false
@/lua/ge/extensions/gameplay/rally/notebook/pacenote.lua

function C:init(notebook, name, forceId)
  self.notebook = notebook
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/events/controlsAction.lua

function C:init(mgr, ...)
  self.reset = false
@/lua/ge/extensions/flowgraph/nodes/scene/camera/startCamPath.lua
C.icon = ui_flowgraph_editor.nodeIcons.camera
function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/getAIMode.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/environment/setTimeOfDay.lua

function C:init(mgr)
  self.data.restoreTod = true
@/lua/ge/extensions/flowgraph/nodes/mission/selectGarage2GarageVehicle.lua

function C:init()
  self.selectedModel = nil
@/lua/ge/extensions/flowgraph/nodes/vehicle/touchingStatic.lua

function C:init()
  self:reset()
@/lua/ge/extensions/core/settings/graphicsQualityGroup.lua

function C:init(qualitiyLevelsFilename, groupName)
  self.currentQualityLevel = ""
  setmetatable(o, C)
  o:init(qualitiyLevelsFilename, groupName)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/endScreen.lua

function C:init()
  self.open = false
@/lua/vehicle/electrics.lua

local function init()
  M.disabledState = {}
@/gameplay/missionTypes/aiRace/constructor.lua

function C:init()
  self.supportsReplay = true
@/lua/vehicle/controller/drivingDynamics/actuators/electronicSplitShaftLock.lua

local function init(jbeamData)
  M.isActing = false
@/lua/ge/extensions/gameplay/rally/cutCapture.lua

function C:init(vehicle, missionDir)
  log('I', logTag, 'initializing cutCapture for vehicle='..vehicle:getId())
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/flowgraph/references.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150, 300), nil, false)
@/ui/ui-vue/src/modules/liveryEditor/stores/layerSettingsStore.js

  function init() {
    if (!active.value) rootStore.toggleShowDecalSelector()
@/lua/ge/extensions/gameplay/rally/recceSettings.lua

function C:init()
  self.fname = rallyUtil.rallySettingsRoot..'/recce.json'
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/powertrainControl/combustionEngineGovenor.lua

local function init(jbeamData)
  local controlledEngineName = jbeamData.controlledEngineName or "mainEngine"
@/lua/ge/extensions/core/cameraModes/fallback.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/scene/camera/getCamPath.lua
C.icon = ui_flowgraph_editor.nodeIcons.camera
function C:init()
end
@/ui/lib/ext/angular-material/angular-material.min.js
A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff",contrastDefaultColor:"light",contrastDarkColors:"100 200 300 400 A100",contrastStrongLightColors:"500 600 700 A200 A400 A700"},"light-blue":{50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900 A700",contrastStrongLightColors:"500 600 700 800 A700"},cyan:{50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700 800"},teal:{50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},green:{50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},"light-green":{50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},lime:{50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00",contrastDefaultColor:"dark",contrastLightColors:"900",contrastStrongLightColors:"900"},yellow:{50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600",contrastDefaultColor:"dark"},amber:{50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00",contrastDefaultColor:"dark"},orange:{50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},"deep-orange":{50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100 A200",contrastStrongLightColors:"500 600 700 800 900 A400 A700"},brown:{50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037",contrastDefaultColor:"light",contrastDarkColors:"50 100 200",contrastStrongLightColors:"300 400"},grey:{50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",1000:"#000000",A100:"#ffffff",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900"},"blue-grey":{50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300",contrastStrongLightColors:"400 500"}})}(),function(){function e(e){function o(e,t){return t=t||{},m[e]=a(e,t),g}function r(e,n){return a(e,t.extend({},m[e]||{},n))}function a(e,t){var n=C.filter(function(e){return!t[e]});if(n.length)throw new Error("Missing colors %1 in palette %2!".replace("%1",n.join(", ")).replace("%2",e));return t}function d(e,n){if(s[e])return s[e];n=n||"default";var o="string"==typeof n?s[n]:n,r=new c(e);return o&&t.forEach(o.colors,function(e,n){r.colors[n]={name:e.name,hues:t.extend({},e.hues)}}),s[e]=r,r}function c(e){function n(e){if(e=0===arguments.length?!0:!!e,e!==o.isDark){o.isDark=e,o.foregroundPalette=o.isDark?f:p,o.foregroundShadow=o.isDark?h:b;var n=o.isDark?T:A,r=o.isDark?A:T;return t.forEach(n,function(e,t){var n=o.colors[t],i=r[t];if(n)for(var a in n.hues)n.hues[a]===i[a]&&(n.hues[a]=e[a])}),o}}var o=this;o.name=e,o.colors={},o.dark=n,n(!1),M.forEach(function(e){var n=(o.isDark?T:A)[e];o[e+"Palette"]=function(r,i){var a=o.colors[e]={name:r,hues:t.extend({},n,i)};return Object.keys(a.hues).forEach(function(e){if(!n[e])throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1",e).replace("%2",o.name).replace("%3",r).replace("%4",Object.keys(n).join(", ")))}),Object.keys(a.hues).map(function(e){return a.hues[e]}).forEach(function(t){if(-1==C.indexOf(t))throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1",t).replace("%2",o.name).replace("%3",e).replace("%4",r).replace("%5",C.join(", ")))}),o},o[e+"Color"]=function(){var t=Array.prototype.slice.call(arguments);return console.warn("$mdThemingProviderTheme."+e+"Color() has been deprecated. Use $mdThemingProviderTheme."+e+"Palette() instead."),o[e+"Palette"].apply(o,t)}})}function u(e,o){function r(e){return e===n||""===e?!0:i.THEMES[e]!==n}function i(t,o){o===n&&(o=t,t=n),t===n&&(t=e),i.inherit(o,o)}return i.inherit=function(n,i){function a(e){r(e)||o.warn("Attempted to use unregistered theme '"+e+"'. Register it with $mdThemingProvider.theme().");var t=n.data("$mdThemeName");t&&n.removeClass("md-"+t+"-theme"),n.addClass("md-"+e+"-theme"),n.data("$mdThemeName",e),d&&n.data("$mdThemeController",d)}var d=i.controller("mdTheme"),c=n.attr("md-theme-watch");if((v||t.isDefined(c))&&"false"!=c){var l=e.$watch(function(){return d&&d.$mdTheme||E},a);n.on("$destroy",l)}else{var m=d&&d.$mdTheme||E;a(m)}},i.THEMES=t.extend({},s),i.defaultTheme=function(){return E},i.registered=r,i}m={},s={};var g,E="default",v=!1;return t.extend(m,e),u.$inject=["$rootScope","$log"],g={definePalette:o,extendPalette:r,theme:d,setDefaultTheme:function(e){E=e},alwaysWatchTheme:function(e){v=e},$get:u,_LIGHT_DEFAULT_HUES:A,_DARK_DEFAULT_HUES:T,_PALETTES:m,_THEMES:s,_parseRules:i,_rgba:l}}function o(e,t,n){return{priority:100,link:{pre:function(o,r,i){var a={$setTheme:function(t){e.registered(t)||n.warn("attempted to use unregistered theme '"+t+"'"),a.$mdTheme=t}};r.data("$mdThemeController",a),a.$setTheme(t(i.mdTheme)(o)),i.$observe("mdTheme",a.$setTheme)}}}}function r(e){return e}function i(e,n,o){d(e,n),o=o.replace(/THEME_NAME/g,e.name);var r=[],i=e.colors[n],a=new RegExp(".md-"+e.name+"-theme","g"),c=new RegExp("('|\")?{{\\s*("+n+")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?","g"),s=/'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow)-?(\d\.?\d*)?\s*\}\}'?"?/g,u=m[i.name];return o=o.replace(s,function(t,n,o,r){return"foreground"===n?"shadow"==o?e.foregroundShadow:e.foregroundPalette[o]||e.foregroundPalette[1]:(0===o.indexOf("hue")&&(o=e.colors[n].hues[o]),l((m[e.colors[n].name][o]||"").value,r))}),t.forEach(i.hues,function(t,n){var i=o.replace(c,function(e,n,o,r,i){return l(u[t]["color"===r?"value":"contrast"],i)});"default"!==n&&(i=i.replace(a,".md-"+e.name+"-theme.md-"+n)),"default"==e.name&&(i=i.replace(/\.md-default-theme/g,"")),r.push(i)}),r}function a(e){function n(e){var n=e.contrastDefaultColor,o=e.contrastLightColors||[],r=e.contrastStrongLightColors||[],i=e.contrastDarkColors||[];"string"==typeof o&&(o=o.split(" ")),"string"==typeof r&&(r=r.split(" ")),"string"==typeof i&&(i=i.split(" ")),delete e.contrastDefaultColor,delete e.contrastLightColors,delete e.contrastStrongLightColors,delete e.contrastDarkColors,t.forEach(e,function(a,d){function l(){return"light"===n?i.indexOf(d)>-1?g:r.indexOf(d)>-1?v:E:o.indexOf(d)>-1?r.indexOf(d)>-1?v:E:g}if(!t.isObject(a)){var m=c(a);if(!m)throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1",a).replace("%2",e.name).replace("%3",d));e[d]={value:m,contrast:l()}}})}var o=document.getElementsByTagName("head")[0],r=o?o.firstElementChild:null,a=e.has("$MD_THEME_CSS")?e.get("$MD_THEME_CSS"):"";if(r&&0!==a.length){t.forEach(m,n);var d={},l=a.split(/\}(?!(\}|'|"|;))/).filter(function(e){return e&&e.length}).map(function(e){return e.trim()+"}"}),p=new RegExp("md-("+M.join("|")+")","g");M.forEach(function(e){d[e]=""}),l.forEach(function(e){for(var t,n=(e.match(p),0);t=M[n];n++)if(e.indexOf(".md-"+t)>-1)return d[t]+=e;for(n=0;t=M[n];n++)if(e.indexOf(t)>-1)return d[t]+=e;return d[$]+=e}),t.forEach(s,function(e){u[e.name]||(M.forEach(function(t){for(var n=i(e,t,d[t]);n.length;){var a=document.createElement("style");a.setAttribute("type","text/css"),a.appendChild(document.createTextNode(n.shift())),o.insertBefore(a,r)}}),e.colors.primary.name==e.colors.accent.name&&console.warn("$mdThemingProvider: Using the same palette for primary and accent. This violates the material design spec."),u[e.name]=!0)})}}function d(e,t){if(!m[(e.colors[t]||{}).name])throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1",e.name).replace("%2",t).replace("%3",Object.keys(m).join(", ")))}function c(e){if(t.isArray(e)&&3==e.length)return e;if(/^rgb/.test(e))return e.replace(/(^\s*rgba?\(|\)\s*$)/g,"").split(",").map(function(e,t){return 3==t?parseFloat(e,10):parseInt(e,10)});if("#"==e.charAt(0)&&(e=e.substring(1)),/^([a-fA-F0-9]{3}){1,2}$/g.test(e)){var n=e.length/3,o=e.substr(0,n),r=e.substr(n,n),i=e.substr(2*n);return 1===n&&(o+=o,r+=r,i+=i),[parseInt(o,16),parseInt(r,16),parseInt(i,16)]}}function l(e,n){return e?(4==e.length&&(e=t.copy(e),n?e.pop():n=e.pop()),n&&("number"==typeof n||"string"==typeof n&&n.length)?"rgba("+e.join(",")+","+n+")":"rgb("+e.join(",")+")"):"rgb('0,0,0')"}t.module("material.core.theming",["material.core.theming.palette"]).directive("mdTheme",o).directive("mdThemable",r).provider("$mdTheming",e).run(a);var m,s,u={},p={name:"dark",1:"rgba(0,0,0,0.87)",2:"rgba(0,0,0,0.54)",3:"rgba(0,0,0,0.26)",4:"rgba(0,0,0,0.12)"},f={name:"light",1:"rgba(255,255,255,1.0)",2:"rgba(255,255,255,0.7)",3:"rgba(255,255,255,0.3)",4:"rgba(255,255,255,0.12)"},h="1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",b="",g=c("rgba(0,0,0,0.87)"),E=c("rgba(255,255,255,0.87"),v=c("rgb(255,255,255)"),M=["primary","accent","warn","background"],$="primary",A={accent:{"default":"A200","hue-1":"A100","hue-2":"A400","hue-3":"A700"},background:{"default":"A100","hue-1":"300","hue-2":"800","hue-3":"900"}},T={background:{"default":"800","hue-1":"300","hue-2":"600","hue-3":"900"}};M.forEach(function(e){var t={"default":"500","hue-1":"300","hue-2":"800","hue-3":"A100"};A[e]||(A[e]=t),T[e]||(T[e]=t)});var C=["50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700"];e.$inject=["$mdColorPalette"],o.$inject=["$mdTheming","$interpolate","$log"],r.$inject=["$mdTheming"],a.$inject=["$injector"]}(),function(){t.module("material.components.autocomplete",["material.core","material.components.icon"])}(),function(){function e(){return{restrict:"E"}}function n(e){function n(e,n,i,a,d,c,l){function m(o,r,l){r=i.extractElementByName(r,"md-bottom-sheet"),p=i.createBackdrop(o,"md-bottom-sheet-backdrop md-opaque"),p.on("click",function(){i.nextTick(d.cancel,!0)}),a.inherit(p,l.parent),e.enter(p,l.parent,null);var m=new u(r,l.parent);return l.bottomSheet=m,l.targetEvent&&t.element(l.targetEvent.target).blur(),a.inherit(m.element,l.parent),l.disableParentScroll&&(l.lastOverflow=l.parent.css("overflow"),l.parent.css("overflow","hidden")),e.enter(m.element,l.parent).then(function(){var e=t.element(r[0].querySelector("button")||r[0].querySelector("a")||r[0].querySelector("[ng-click]"));e.focus(),l.escapeToClose&&(l.rootElementKeyupCallback=function(e){e.keyCode===n.KEY_CODE.ESCAPE&&i.nextTick(d.cancel,!0)},c.on("keyup",l.rootElementKeyupCallback))})}function s(n,o,r){var i=r.bottomSheet;return e.leave(p),e.leave(i.element).then(function(){r.disableParentScroll&&(r.parent.css("overflow",r.lastOverflow),delete r.lastOverflow),i.cleanup(),r.targetEvent&&t.element(r.targetEvent.target).focus()})}function u(e,t){function a(t){e.css(n.CSS.TRANSITION_DURATION,"0ms")}function c(t){var o=t.pointer.distanceY;5>o&&(o=Math.max(-r,o/2)),e.css(n.CSS.TRANSFORM,"translate3d(0,"+(r+o)+"px,0)")}function m(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>o)){var r=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(r/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),i.nextTick(d.cancel,!0)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var s=l.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",c).on("$md.dragend",m),{element:e,cleanup:function(){s(),t.off("$md.dragstart",a).off("$md.drag",c).off("$md.dragend",m)}}}var p;return{themable:!0,targetEvent:null,onShow:m,onRemove:s,escapeToClose:!0,disableParentScroll:!0}}var o=.5,r=80;return n.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture"],e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","targetEvent"],options:n})}t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",e).provider("$mdBottomSheet",n),n.$inject=["$$interimElementProvider"]}(),function(){t.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",["$mdTheming","$animate","$rootElement","$window","$log","$$rAF","$document",function(e,t,n,o,r,i,a){function d(d,l,m){var s=o.getComputedStyle(a[0].body);if("fixed"==s.position){var u=parseInt(s.height,10)+Math.abs(parseInt(s.top,10));l.css({height:u+"px"})}t.pin&&t.pin(l,n),i(function(){var t=l.parent()[0];if(t){var n=o.getComputedStyle(t);"static"==n.position&&r.warn(c)}e.inherit(l,l.parent())})}var c=" may not work properly in a scrolled, static-positioned parent container.";return{restrict:"E",link:d}}])}(),function(){function e(e){return{restrict:"E",link:function(t,n,o){e(n)}}}t.module("material.components.card",["material.core"]).directive("mdCard",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r,i,a,d){function c(n,c){return c.type="checkbox",c.tabindex=c.tabindex||"0",n.attr("role",c.type),function(n,c,m,s){function u(e,t,o){m[e]&&n.$watch(m[e],function(e){o[e]&&c.attr(t,o[e])})}function p(e){var t=e.which||e.keyCode;(t===r.KEY_CODE.SPACE||t===r.KEY_CODE.ENTER)&&(e.preventDefault(),c.hasClass("md-focused")||c.addClass("md-focused"),f(e))}function f(e){c[0].hasAttribute("disabled")||n.$apply(function(){var t=m.ngChecked?m.checked:!s.$viewValue;s.$setViewValue(t,e&&e.type),s.$render()})}function h(){s.$viewValue?c.addClass(l):c.removeClass(l)}s=s||a.fakeNgModel(),i(c),m.ngChecked&&n.$watch(n.$eval.bind(n,m.ngChecked),s.$setViewValue.bind(s)),u("ngDisabled","tabindex",{"true":"-1","false":m.tabindex}),o.expectWithText(c,"aria-label"),e.link.pre(n,{on:t.noop,0:{}},m,[s]),n.mouseActive=!1,c.on("click",f).on("keypress",p).on("mousedown",function(){n.mouseActive=!0,d(function(){n.mouseActive=!1},100)}).on("focus",function(){n.mouseActive===!1&&c.addClass("md-focused")}).on("blur",function(){c.removeClass("md-focused")}),s.$render=h}}e=e[0];var l="md-checked";return{restrict:"E",transclude:!0,require:"?ngModel",priority:210,template:'
',compile:c}}t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",e),e.$inject=["inputDirective","$mdInkRipple","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"]}(),function(){function e(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o,r){o[0];e(o),t.$broadcast("$mdContentLoaded",o),n(o[0])}}}function n(e){t.element(e).on("$md.pressdown",function(t){"t"===t.pointer.type&&(t.$materialScrollFixed||(t.$materialScrollFixed=!0,0===e.scrollTop?e.scrollTop=1:e.scrollHeight===e.scrollTop+e.offsetHeight&&(e.scrollTop-=1)))})}t.module("material.components.content",["material.core"]).directive("mdContent",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r){function i(e){return t.isDefined(e.href)||t.isDefined(e.ngHref)||t.isDefined(e.ngLink)||t.isDefined(e.uiSref)}function a(e,t){return i(t)?'':''}function d(a,d,c){var l=d[0];n(d),e.attach(a,d);var m=l.textContent.trim();m||o.expect(d,"aria-label"),i(c)&&t.isDefined(c.ngDisabled)&&a.$watch(c.ngDisabled,function(e){d.attr("tabindex",e?-1:0)}),d.on("click",function(e){c.disabled===!0&&(e.preventDefault(),e.stopImmediatePropagation())}),a.mouseActive=!1,d.on("mousedown",function(){a.mouseActive=!0,r(function(){a.mouseActive=!1},100)}).on("focus",function(){a.mouseActive===!1&&d.addClass("md-focused")}).on("blur",function(){d.removeClass("md-focused")})}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:d}}t.module("material.components.button",["material.core"]).directive("mdButton",e),e.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"]}(),function(){function e(e){return{restrict:"E",link:e}}t.module("material.components.divider",["material.core"]).directive("mdDivider",e),e.$inject=["$mdTheming"]}(),function(){t.module("material.components.chips",["material.core","material.components.autocomplete"])}(),function(){function e(e,n){return{restrict:"E",link:function(o,r,i){n(r),e(function(){function e(){r.toggleClass("md-content-overflow",o.scrollHeight>o.clientHeight)}var n,o=r[0].querySelector("md-dialog-content");o&&(n=o.getElementsByTagName("img"),e(),t.element(n).on("load",e))})}}}function n(e){function n(e,t){return{template:['',' ','

{{ dialog.title }}

',"

{{ dialog.content }}

","
",'
',' '," {{ dialog.cancel }}"," ",' '," {{ dialog.ok }}"," ","
","
"].join("").replace(/\s\s+/g,""),controller:function(){this.hide=function(){e.hide(!0)},this.abort=function(){e.cancel()}},controllerAs:"dialog",bindToController:!0,theme:t.defaultTheme()}}function o(e,n,o,r,i,a,d,c){function l(e,n,r){function i(){function e(){var e=n[0].querySelector(".dialog-close");if(!e){var o=n[0].querySelectorAll(".md-actions button");e=o[o.length-1]}return t.element(e)}if(r.focusOnOpen){var o="alert"===r.$type?n.find("md-dialog-content"):e();o.focus()}}return n=o.extractElementByName(n,"md-dialog"),t.element(a[0].body).addClass("md-dialog-is-showing"),s(n,r),f(n.find("md-dialog"),r),p(e,n,r),g(n,r).then(function(){u(n,r),h(n,r),i()})}function m(e,n,o){return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(),E(n,o)["finally"](function(){t.element(a[0].body).removeClass("md-dialog-is-showing"),n.remove(),o.origin.focus()})}function s(e,n){var r={element:null,bounds:null,focus:t.noop};n.origin=t.extend({},r,n.origin||{});var i=t.element((n.targetEvent||{}).target);i&&i.length&&(n.origin.element=i,n.origin.bounds=i[0].getBoundingClientRect(),n.origin.focus=function(){i.focus()}),n.parent=t.element(n.parent||c),n.disableParentScroll&&(n.restoreScroll=o.disableScrollAround(e,n.parent))}function u(t,n){var i=[],a=function(){var t="alert"==n.$type?e.hide:e.cancel;o.nextTick(t,!0)};if(n.escapeToClose){var d=n.parent,c=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),a())};t.on("keyup",c),d.on("keyup",c),i.push(function(){t.off("keyup",c),d.off("keyup",c)})}if(n.clickOutsideToClose){var d=t,l=function(e){e.target===d[0]&&(e.stopPropagation(),e.preventDefault(),a())};d.on("click",l),i.push(function(){d.off("click",l)})}n.deactivateListeners=function(){i.forEach(function(e){e()}),n.deactivateListeners=null}}function p(e,t,n){n.hasBackdrop&&(n.backdrop=o.createBackdrop(e,"md-dialog-backdrop md-opaque"),i.enter(n.backdrop,n.parent)),n.hideBackdrop=function(){n.backdrop&&i.leave(n.backdrop),n.disableParentScroll&&n.restoreScroll(),n.hideBackdrop=null}}function f(e,t){var r="alert"===t.$type?"alertdialog":"dialog",i=e.find("md-dialog-content"),a=e.attr("id")||"dialog_"+o.nextUid();e.attr({role:r,tabIndex:"-1"}),0===i.length&&(i=e),i.attr("id",a),e.attr("aria-describedby",a),t.ariaLabel?n.expect(e,"aria-label",t.ariaLabel):n.expectAsync(e,"aria-label",function(){var e=i.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")})}function h(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var t=e.parentNode.children,r=0;r'+e+"
"}}}return n.$inject=["$mdDialog","$mdTheming"],o.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","parent"],options:o}).addPreset("alert",{methods:["title","content","ariaLabel","ok","theme"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",n),e.$inject=["$$rAF","$mdTheming"],n.$inject=["$$interimElementProvider"]}(),function(){!function(){function e(){function e(e,t){t.prepend('
')}function t(e,t,n,o){function r(){d.direction=d.direction||"down",d.isOpen=d.isOpen||!1}function i(){t.on("mouseenter",d.mouseenter),t.on("mouseleave",d.mouseleave)}function a(){e.$watch("vm.direction",function(e,o){n.removeClass(t,"md-"+o),n.addClass(t,"md-"+e)}),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}var d=this;d.open=function(){e.$evalAsync("vm.isOpen = true")},d.close=function(){!d.moused&&e.$evalAsync("vm.isOpen = false")},d.mouseenter=function(){d.moused=!0,d.open()},d.mouseleave=function(){d.moused=!1,d.close()},r(),i(),a(),o.nextTick(function(){n.addClass(t,"md-noop")})}return t.$inject=["$scope","$element","$animate","$mdUtil"],{restrict:"E",scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:t,controllerAs:"vm",link:e}}function n(){function e(e){var n=e[0],o=e.controller("mdFabSpeedDial"),r=n.querySelectorAll(".md-fab-action-item"),i=n.querySelector(".md-css-variables"),a=i.style.zIndex;t.forEach(r,function(e,t){var n=e.style;n.transform=n.webkitTransform="",n.transitionDelay="",n.opacity=1,n.zIndex=r.length-t+a}),o.isOpen||t.forEach(r,function(e,t){var n,r,i=e.style;switch(o.direction){case"up":n=e.scrollHeight*(t+1),r="Y";break;case"down":n=-e.scrollHeight*(t+1),r="Y";break;case"left":n=e.scrollWidth*(t+1),r="X";break;case"right":n=-e.scrollWidth*(t+1),r="X"}var a="translate"+r+"("+n+"px)";i.transform=i.webkitTransform=a})}return{addClass:function(t,n,o){t.hasClass("md-fling")&&(e(t),o())},removeClass:function(t,n,o){e(t),o()}}}function o(){function e(e){var o=e[0],r=e.controller("mdFabSpeedDial"),i=o.querySelectorAll(".md-fab-action-item");t.forEach(i,function(e,t){var o=e.style,a=t*n;o.opacity=r.isOpen?1:0,o.transform=o.webkitTransform=r.isOpen?"scale(1)":"scale(0)",o.transitionDelay=(r.isOpen?a:i.length-a)+"ms"})}var n=65;return{addClass:function(t,n,o){e(t),o()},removeClass:function(t,n,o){e(t),o()}}}t.module("material.components.fabSpeedDial",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabSpeedDial",e).animation(".md-fling",n).animation(".md-scale",o).service("mdFabSpeedDialFlingAnimation",n).service("mdFabSpeedDialScaleAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(e,n){var o=e.children();return o.attr("ng-repeat")?o.addClass("md-fab-action-item"):o.wrap('
'),function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){e=t.element(e).children()[0],t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}}t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",e)}()}(),function(){!function(){function n(){function e(e,t,n){var o=this;o.isOpen=o.isOpen||!1,o.open=function(){o.isOpen=!0,e.$apply()},o.close=function(){o.isOpen=!1,e.$apply()},t.addClass("md-fab-toolbar"),t.on("mouseenter",o.open),t.on("mouseleave",o.close),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}function t(e,t,n){t.find("md-fab-trigger").find("button").attr("tabindex","-1"),t.find("md-fab-trigger").find("button").prepend('
')}return e.$inject=["$scope","$element","$animate"],{restrict:"E",transclude:!0,template:'
',scope:{isOpen:"=?mdOpen"},bindToController:!0,controller:e,controllerAs:"vm",link:t}}function o(){function n(n,o,r){var i=n[0],a=n.controller("mdFabToolbar"),d=i.querySelector(".md-fab-toolbar-background"),c=i.querySelector("md-fab-trigger button"),l=i.querySelector("md-fab-trigger button md-icon"),m=n.find("md-fab-actions").children();if(c&&d){var s=e.getComputedStyle(c).getPropertyValue("background-color"),u=i.offsetWidth,p=(i.offsetHeight,2*u);d.style.backgroundColor=s,d.style.borderRadius=u+"px",a.isOpen?(d.style.width=p+"px",d.style.height=p+"px",d.style.top=-(p/2)+"px",n.hasClass("md-left")&&(d.style.left=-(p/2)+"px",d.style.right=null),n.hasClass("md-right")&&(d.style.right=-(p/2)+"px",d.style.left=null),d.style.transitionDelay="0ms",l&&(l.style.transitionDelay=".3s"),t.forEach(m,function(e,t){e.style.transitionDelay=25*(m.length-t)+"ms"})):(d.style.width=c.offsetWidth+"px",d.style.height=c.offsetHeight+"px",d.style.top="0px",n.hasClass("md-left")&&(d.style.left="0px",d.style.right=null),n.hasClass("md-right")&&(d.style.right="0px",d.style.left=null),d.style.transitionDelay="200ms",l&&(l.style.transitionDelay="0ms"),t.forEach(m,function(e,t){e.style.transitionDelay=25*t+"ms"}))}}return{addClass:function(e,t,o){n(e,t,o),o()},removeClass:function(e,t,o){n(e,t,o),o()}}}t.module("material.components.fabToolbar",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabToolbar",n).animation(".md-fab-toolbar",o).service("mdFabToolbarAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],link:function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}t.module("material.components.fabTrigger",["material.core"]).directive("mdFabTrigger",e)}()}(),function(){function e(e,o,r,i){function a(n,a,d,c){function l(){for(var e in o.MEDIA)i(e),i.getQuery(o.MEDIA[e]).addListener(T);return i.watchResponsiveAttributes(["md-cols","md-row-height"],d,s)}function m(){c.layoutDelegate=t.noop,C();for(var e in o.MEDIA)i.getQuery(o.MEDIA[e]).removeListener(T)}function s(e){null==e?c.invalidateLayout():i(e)&&c.invalidateLayout()}function u(e){var o=b(),i={tileSpans:g(o),colCount:E(),rowMode:$(),rowHeight:M(),gutter:v()};if(e||!t.equals(i,y)){var d=r(i.colCount,i.tileSpans,o).map(function(e,n){return{grid:{element:a,style:h(i.colCount,n,i.gutter,i.rowMode,i.rowHeight)},tiles:e.map(function(e,n){return{element:t.element(o[n]),style:f(e.position,e.spans,i.colCount,i.rowCount,i.gutter,i.rowMode,i.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:d}}),y=i}}function p(e){return w+e+k}function f(e,t,n,o,r,i,a){var d=1/n*100,c=(n-1)/n,l=x({share:d,gutterShare:c,gutter:r}),m={left:N({unit:l,offset:e.col,gutter:r}),width:_({unit:l,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(i){case"fixed":m.top=N({unit:a,offset:e.row,gutter:r}),m.height=_({unit:a,span:t.row,gutter:r});break;case"ratio":var s=d/a,u=x({share:s,gutterShare:c,gutter:r});m.paddingTop=_({unit:u,span:t.row,gutter:r}),m.marginTop=N({unit:u,offset:e.row,gutter:r});break;case"fit":var p=(o-1)/o,s=1/o*100,u=x({share:s,gutterShare:p,gutter:r});m.top=N({unit:u,offset:e.row,gutter:r}),m.height=_({unit:u,span:t.row,gutter:r})}return m}function h(e,t,n,o,r){var i={height:"",paddingBottom:""};switch(o){case"fixed":i.height=_({unit:r,span:t,gutter:n});break;case"ratio":var a=1===e?0:(e-1)/e,d=1/e*100,c=d*(1/r),l=x({share:c,gutterShare:a,gutter:n});i.paddingBottom=_({unit:l,span:t,gutter:n});break;case"fit":}return i}function b(){return[].filter.call(a.children(),function(e){return"MD-GRID-TILE"==e.tagName})}function g(e){return[].map.call(e,function(e){var n=t.element(e).controller("mdGridTile");return{row:parseInt(i.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(i.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function E(){var e=parseInt(i.getResponsiveAttribute(d,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}function v(){return A(i.getResponsiveAttribute(d,"md-gutter")||1)}function M(){var e=i.getResponsiveAttribute(d,"md-row-height");switch($()){case"fixed":return A(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function $(){var e=i.getResponsiveAttribute(d,"md-row-height");return"fit"==e?"fit":-1!==e.indexOf(":")?"ratio":"fixed"}function A(e){return/\D$/.test(e)?e:e+"px"}a.attr("role","list"),c.layoutDelegate=u;var T=t.bind(c,c.invalidateLayout),C=l();n.$on("$destroy",m);var y,w=e.startSymbol(),k=e.endSymbol(),x=e(p("share")+"% - ("+p("gutter")+" * "+p("gutterShare")+")"),N=e("calc(("+p("unit")+" + "+p("gutter")+") * "+p("offset")+")"),_=e("calc(("+p("unit")+") * "+p("span")+" + ("+p("span")+" - 1) * "+p("gutter")+")")}return{restrict:"E",controller:n, scope:{mdOnLayout:"&"},link:a}}function n(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=t.noop}function o(e){function n(t,n){var o,a,d,c,l,m;return c=e.time(function(){a=r(t,n)}),o={layoutInfo:function(){return a},map:function(t){return l=e.time(function(){var e=o.layoutInfo();d=t(e.positioning,e.rowCount)}),o},reflow:function(t){return m=e.time(function(){var e=t||i;e(d.grid,d.tiles)}),o},performance:function(){return{tileCount:n.length,layoutTime:c,mapTime:l,reflowTime:m,totalTime:c+l+m}}}}function o(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}function r(e,t){function n(t,n){if(t.col>e)throw"md-grid-list: Tile at position "+n+" has a colspan ("+t.col+") that exceeds the column count ("+e+")";for(var a=0,m=0;m-a=e?o():(a=l.indexOf(0,d),-1!==a&&-1!==(m=i(a+1))?d=m+1:(a=m=0,o()));return r(a,t.col,t.row),d=a+t.col,{col:a,row:c}}function o(){d=0,c++,r(0,e,-1)}function r(e,t,n){for(var o=e;e+t>o;o++)l[o]=Math.max(l[o]+n,0)}function i(e){var t;for(t=e;tn;n++)t.push(0);return t}var d=0,c=0,l=a();return{positioning:t.map(function(e,t){return{spans:e,position:n(e,t)}}),rowCount:c+Math.max.apply(Math,l)}}var i=o;return n.animateWith=function(e){i=t.isFunction(e)?e:o},n}function r(e){function n(n,o,r,i){o.attr("role","listitem");var a=e.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,t.bind(i,i.invalidateLayout));i.invalidateTiles(),n.$on("$destroy",function(){a(),i.invalidateLayout()}),t.isDefined(n.$parent.$index)&&n.$watch(function(){return n.$parent.$index},function(e,t){e!==t&&i.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"
",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:n}}function i(){return{template:"
",transclude:!0}}t.module("material.components.gridList",["material.core"]).directive("mdGridList",e).directive("mdGridTile",r).directive("mdGridTileFooter",i).directive("mdGridTileHeader",i).factory("$mdGridLayout",o),e.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],n.$inject=["$mdUtil"],n.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(t.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}},o.$inject=["$mdUtil"],r.$inject=["$mdMedia"]}(),function(){function e(e,t,n){function o(o,r,i){function a(){var e=r.parent();return e.attr("aria-label")||e.text()?!0:e.parent().attr("aria-label")||e.parent().text()?!0:!1}function d(){function t(){return!o.fontIcon&&!o.fontSet&&!i.hasOwnProperty("class")}o.svgIcon||o.svgSrc||(o.fontIcon&&r.addClass("md-font "+o.fontIcon),o.fontSet&&r.addClass(e.fontSet(o.fontSet)),t()&&r.addClass(e.fontSet()))}t(r),d();var c=i.alt||o.fontIcon||o.svgIcon||r.text(),l=i.$normalize(i.$attr.mdSvgIcon||i.$attr.mdSvgSrc||"");i["aria-label"]||(""==c||a()?r.text()||n.expect(r,"aria-hidden","true"):(n.expect(r,"aria-label",c),n.expect(r,"role","img"))),l&&i.$observe(l,function(t){r.empty(),t&&e(t).then(function(e){r.append(e)})})}return{scope:{fontSet:"@mdFontSet",fontIcon:"@mdFontIcon",svgIcon:"@mdSvgIcon",svgSrc:"@mdSvgSrc"},restrict:"E",link:o}}t.module("material.components.icon",["material.core"]).directive("mdIcon",e),e.$inject=["$mdIcon","$mdTheming","$mdAria"]}(),function(){function e(){}function n(e,t){this.url=e,this.viewBoxSize=t||r.defaultViewBoxSize}function o(e,n,o,r,i){function a(e){return e=e||"",E[e]?o.when(E[e].clone()):v.test(e)?s(e).then(c(e)):(-1==e.indexOf(":")&&(e="$default:"+e),l(e)["catch"](m)["catch"](u)["catch"](p).then(c(e)))}function d(n){var o=t.isUndefined(n)||!(n&&n.length);if(o)return e.defaultFontSet;var r=n;return t.forEach(e.fontSets,function(e){e.alias==n&&(r=e.fontSet||r)}),r}function c(t){return function(n){return E[t]=f(n)?n:new h(n,e[t]),E[t].clone()}}function l(t){var n=e[t];return n?s(n.url).then(function(e){return new h(e,n)}):o.reject(t)}function m(t){function n(e){var n=t.slice(t.lastIndexOf(":")+1),r=e.querySelector("#"+n);return r?new h(r,i):o.reject(t)}var r=t.substring(0,t.lastIndexOf(":"))||"$default",i=e[r];return i?s(i.url).then(n):o.reject(t)}function s(e){return n.get(e,{cache:i}).then(function(e){return t.element("
").append(e.data).find("svg")[0]})}function u(e){var n;return t.isString(e)&&(n="icon "+e+" not found",r.warn(n)),o.reject(n||e)}function p(e){var n=t.isString(e)?e:e.message||e.data||e.statusText;return r.warn(n),o.reject(n)}function f(e){return t.isDefined(e.element)&&t.isDefined(e.config)}function h(e,n){"svg"!=e.tagName&&(e=t.element('').append(e)[0]),e.getAttribute("xmlns")||e.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=e,this.config=n,this.prepare()}function b(){var n=this.config?this.config.viewBoxSize:e.defaultViewBoxSize;t.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+n+" "+n},function(e,t){this.element.setAttribute(t,e)},this),t.forEach({"pointer-events":"none",display:"block"},function(e,t){this.element.style[t]=e},this)}function g(){return this.element.cloneNode(!0)}var E={},v=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i;return h.prototype={clone:g,prepare:b},a.fontSet=d,a}t.module("material.components.icon").provider("$mdIcon",e);var r={defaultViewBoxSize:24,defaultFontSet:"material-icons",fontSets:[]};e.prototype={icon:function(e,t,o){return-1==e.indexOf(":")&&(e="$default:"+e),r[e]=new n(t,o),this},iconSet:function(e,t,o){return r[e]=new n(t,o),this},defaultIconSet:function(e,t){var o="$default";return r[o]||(r[o]=new n(e,t)),r[o].viewBoxSize=t||r.defaultViewBoxSize,this},defaultViewBoxSize:function(e){return r.defaultViewBoxSize=e,this},fontSet:function(e,t){return r.fontSets.push({alias:e,fontSet:t||e}),this},defaultFontSet:function(e){return r.defaultFontSet=e?e:"",this},defaultIconSize:function(e){return r.defaultIconSize=e,this},preloadIcons:function(e){var t=this,n=[{id:"md-tabs-arrow",url:"md-tabs-arrow.svg",svg:''},{id:"md-close",url:"md-close.svg",svg:''},{id:"md-cancel",url:"md-cancel.svg",svg:''},{id:"md-menu",url:"md-menu.svg",svg:''},{id:"md-toggle-arrow",url:"md-toggle-arrow-svg",svg:''}];n.forEach(function(n){t.icon(n.id,n.url),e.put(n.url,n.svg)})},$get:["$http","$q","$log","$templateCache",function(e,t,n,i){return this.preloadIcons(i),o(r,e,t,n,i)}]}}(),function(){function e(e,t){function n(t,n,o){e(n)}function o(e,n,o){var r=this;r.isErrorGetter=o.mdIsError&&t(o.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setInvalid=function(e){n.toggleClass("md-input-invalid",!!e)},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}return o.$inject=["$scope","$element","$attrs"],{restrict:"E",link:n,controller:o}}function n(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,o){o&&!n.mdNoFloat&&(o.label=t,e.$on("$destroy",function(){o.label=null}))}}}function o(e,n,o){function r(r,i,a,d){function c(e){return s.setHasValue(!u.$isEmpty(e)),e}function l(){s.setHasValue(i.val().length>0||(i[0].validity||{}).badInput)}function m(){function o(e){return h(),e}function a(){if(m.style.height=m.offsetHeight+"px",i.addClass("md-no-flex"),isNaN(p)){l.style.height="auto",l.scrollTop=0;var e=d();e&&(l.style.height=e+"px")}else{l.setAttribute("rows",1),f||(l.style.minHeight="0",f=i.prop("clientHeight"),l.style.minHeight=null);var t=Math.max(p,Math.round(l.scrollHeight/f));l.setAttribute("rows",t)}i.removeClass("md-no-flex"),m.style.height="auto"}function d(){var e=l.scrollHeight-l.offsetHeight;return l.offsetHeight+(e>0?e:0)}function c(e){l.scrollTop=0;var t=l.scrollHeight-l.offsetHeight,n=l.offsetHeight+t;l.style.height=n+"px"}if(!t.isDefined(i.attr("md-no-autogrow"))){var l=i[0],m=s.element[0],p=0/0,f=null;l.hasAttribute("rows")&&(p=parseInt(l.getAttribute("rows")));var h=e.debounce(a,1);u?(u.$formatters.push(o),u.$viewChangeListeners.push(o)):h(),i.on("keydown input",h),isNaN(p)&&(i.attr("rows","1"),i.on("scroll",c)),t.element(n).on("resize",h),r.$on("$destroy",function(){t.element(n).off("resize",h)})}}var s=d[0],u=d[1]||e.fakeNgModel(),p=t.isDefined(a.readonly);if(s){if(s.input)throw new Error(" can only have *one*
');r.$set("ngTrim","false"),l.element.append(m),c.$formatters.push(a),c.$viewChangeListeners.push(a),o.on("input keydown",function(){a()}),n.$watch(r.mdMaxlength,function(n){d=n,t.isNumber(n)&&n>0?(m.parent().length||e.enter(m,l.element,t.element(l.element[0].lastElementChild)),a()):e.leave(m)}),c.$validators["md-maxlength"]=function(e,n){return!t.isNumber(d)||0>d?!0:(e||o.val()||n||"").length<=d}}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:n}}function i(e){function n(n,o,r,i){if(i&&!t.isDefined(i.element.attr("md-no-float"))){var a=r.placeholder;if(o.removeAttr("placeholder"),0==i.element.find("label").length){if(i.input&&"MD-SELECT"!=i.input[0].nodeName){var d='";i.element.addClass("md-icon-float"),i.element.prepend(d)}}else"MD-SELECT"!=o[0].nodeName&&e.warn("The placeholder='"+a+"' will be ignored since this md-input-container has a child label element.")}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:n}}t.module("material.components.input",["material.core"]).directive("mdInputContainer",e).directive("label",n).directive("input",o).directive("textarea",o).directive("mdMaxlength",r).directive("placeholder",i),e.$inject=["$mdTheming","$parse"],o.$inject=["$mdUtil","$window","$mdAria"],r.$inject=["$animate"],i.$inject=["$log"]}(),function(){function e(e){return{restrict:"E",compile:function(t){return t[0].setAttribute("role","list"),e}}}function n(e,n,o){var r=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(i,a){function d(){for(var e,t,n=["md-switch","md-checkbox"],o=0;t=n[o];++o)if((e=i.find(t)[0])&&!e.hasAttribute("aria-label")){var r=i.find("p")[0];if(!r)return;e.setAttribute("aria-label","Toggle "+r.textContent)}}function c(n){var o;if("div"==n)o=t.element('
'),o.append(i.contents()),i.addClass("md-proxy-focus");else{o=t.element('
');var r=["ng-click","aria-label","ng-disabled"];t.forEach(r,function(e){i[0].hasAttribute(e)&&(o[0].setAttribute(e,i[0].getAttribute(e)),i[0].removeAttribute(e))}),o.children().eq(0).append(i.contents())}if(i[0].setAttribute("tabindex","-1"),i.append(o),p&&p.hasAttribute("ng-click")){e.expect(p,"aria-label");var d=t.element('');d.attr("ng-click",p.getAttribute("ng-click")),p.removeAttribute("ng-click"),p.setAttribute("tabindex","-1"),p.classList.remove("md-secondary"),d.append(p),p=d[0]}p&&(p.hasAttribute("ng-click")||a.ngClick&&l(p))&&(i.addClass("md-with-secondary"),i.append(p))}function l(e){return-1!=r.indexOf(e.nodeName.toLowerCase())}function m(e,i,a,d){function c(){var e=i.children();e.length&&!e[0].hasAttribute("ng-click")&&t.forEach(r,function(e){t.forEach(s.querySelectorAll(e),function(e){m.push(e)})})}function l(){(m.length||u)&&(i.addClass("md-clickable"),d.attachRipple(e,t.element(i[0].querySelector(".md-no-style"))))}var m=[],s=i[0].firstElementChild,u=s&&s.hasAttribute("ng-click");c(),l(),i.hasClass("md-proxy-focus")&&m.length&&t.forEach(m,function(n){n=t.element(n),e.mouseActive=!1,n.on("mousedown",function(){e.mouseActive=!0,o(function(){e.mouseActive=!1},100)}).on("focus",function(){e.mouseActive===!1&&i.addClass("md-focused"),n.on("blur",function t(){i.removeClass("md-focused"),n.off("blur",t)})})}),u||m.length||s&&s.addEventListener("keypress",function(e){if("INPUT"!=e.target.nodeName&&"TEXTAREA"!=e.target.nodeName){var t=e.which||e.keyCode;t==n.KEY_CODE.SPACE&&s&&(s.click(),e.preventDefault(),e.stopPropagation())}}),i.off("click"),i.off("keypress"),m.length&&s&&i.children().eq(0).on("click",function(e){s.contains(e.target)&&t.forEach(m,function(n){e.target===n||n.contains(e.target)||t.element(n).triggerHandler("click")})})}var s,u,p=i[0].querySelector(".md-secondary");if(i[0].setAttribute("role","listitem"),a.ngClick)c("button");else{for(var f,h=0;f=r[h];++h)if(u=i[0].querySelector(f)){s=!0;break}s?c("div"):i[0].querySelector("md-button")||i.addClass("md-no-proxy")}return d(),m}}}function o(e,t,n){function o(e,t){var o={};n.attach(e,t,o)}var r=this;r.attachRipple=o}t.module("material.components.list",["material.core"]).controller("MdListController",o).directive("mdList",e).directive("mdListItem",n),e.$inject=["$mdTheming"],n.$inject=["$mdAria","$mdConstant","$timeout"],o.$inject=["$scope","$element","$mdListInkRipple"]}(),function(){function e(e){function n(e){e.addClass("md-menu");var t=e.children()[0];if(t.hasAttribute("ng-click")||(t=t.querySelector("[ng-click]")),t&&t.setAttribute("aria-haspopup","true"),2!=e.children().length)throw Error("Invalid HTML for md-menu. Expected two children elements.");return o}function o(e,n,o,r){var i=t.element('
'),a=n.children()[1];i.append(a),r.init(i),e.$on("$destroy",function(){i.remove(),r.close()})}return{restrict:"E",require:"mdMenu",controller:"mdMenuCtrl",scope:!0,compile:n}}function n(e,t,n,o){var r,i,a=this;this.init=function(e){r=e,i=n[0].querySelector("[ng-click]")},this.open=function(t){t&&t.stopPropagation(),a.isOpen=!0,i.setAttribute("aria-expanded","true"),e.show({scope:o,mdMenuCtrl:a,element:r,target:n[0]})},o.$mdOpenMenu=this.open,this.close=function(t){a.isOpen&&(a.isOpen=!1,i.setAttribute("aria-expanded","false"),e.hide(),t||n.children()[0].focus())},this.positionMode=function(){var e=(t.mdPositionMode||"target").split(" ");return 1==e.length&&e.push(e[0]),{left:e[0],top:e[1]}},this.offsets=function(){var e=(t.mdOffset||"0 0").split(" ").map(parseFloat);if(2==e.length)return{left:e[0],top:e[1]};if(1==e.length)return{top:e[0],left:e[0]};throw Error("Invalid offsets specified. Please follow format or ")}}t.module("material.components.menu",["material.core","material.components.backdrop"]).directive("mdMenu",e).controller("mdMenuCtrl",n),e.$inject=["$mdMenu"],n.$inject=["$mdMenu","$attrs","$element","$scope"]}(),function(){function o(o){function r(o,r,a,d,c,l){function m(e,n,i){function l(){if(!i.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");t.extend(i,{alreadyOpen:!1,isRemoved:!1,target:t.element(i.target),parent:t.element(i.parent),menuContentEl:t.element(n[0].querySelector("md-menu-content")),backdrop:i.hasBackdrop&&a.createBackdrop(e,"md-menu-backdrop md-click-catcher")})}function m(){i.resizeFn=function(){f(n,i)},t.element(r).on("resize",i.resizeFn),t.element(r).on("orientationchange",i.resizeFn)}function u(){i.parent.append(n),n.removeClass("md-leave"),o(function(){o(function(){f(n,i),o(function(){n.addClass("md-active"),i.alreadyOpen=!0,n[0].style[c.CSS.TRANSFORM]=""})})})}function p(){n.addClass("md-clickable"),i.backdrop&&i.backdrop.on("click",function(t){t.preventDefault(),t.stopPropagation(),e.$apply(function(){i.mdMenuCtrl.close(!0)})}),i.menuContentEl.on("keydown",function(t){e.$apply(function(){switch(t.keyCode){case c.KEY_CODE.ESCAPE:i.mdMenuCtrl.close();break;case c.KEY_CODE.UP_ARROW:s(t,i.menuContentEl,i,-1);break;case c.KEY_CODE.DOWN_ARROW:s(t,i.menuContentEl,i,1)}})});var t=function(t){function n(){e.$apply(function(){i.mdMenuCtrl.close()})}function o(e,t){if(!e)return!1;for(var n,o=0;n=t[o];++o)for(var r,i=[n,"data-"+n,"x-"+n],a=0;r=i[a];++a)if(e.hasAttribute(r))return!0;return!1}var r=t.target;do{if(r==i.menuContentEl[0])return;if(o(r,["ng-click","ng-href","ui-sref"])){r.hasAttribute("disabled")||n();break}}while(r=r.parentNode)};i.menuContentEl[0].addEventListener("click",t,!0);var o=i.menuContentEl[0].querySelector("[md-menu-focus-target]");return o||(o=i.menuContentEl[0].firstElementChild.firstElementChild),o.focus(),function(){n.removeClass("md-clickable"),i.backdrop.off("click"),i.menuContentEl.off("keydown"),i.menuContentEl[0].removeEventListener("click",t,!0)}}return l(i),d.inherit(i.menuContentEl,i.target),m(),i.disableParentScroll&&(i.restoreScroll=a.disableScrollAround(i.element)),i.backdrop&&(d.inherit(i.backdrop,i.parent),i.parent.append(i.backdrop)),u(),h.waitTransitionEnd(n,{timeout:370})["finally"](function(e){return i.cleanupInteraction=p(),e})}function s(e,t,n,o){for(var r=a.getClosest(e.target,"MD-MENU-ITEM"),i=a.nodesToArray(t[0].children),d=i.indexOf(r),c=d+o;c>=0&&c
',compile:n}}t.module("material.components.progressCircular",["material.core"]).directive("mdProgressCircular",e),e.$inject=["$mdConstant","$mdTheming"]}(),function(){function e(e,o,r){function i(e,t,n){return e.attr("aria-valuemin",0),e.attr("aria-valuemax",100),e.attr("role","progressbar"),a}function a(i,a,c){r(a);var l=a[0].querySelector(".md-bar1").style,m=a[0].querySelector(".md-bar2").style,s=t.element(a[0].querySelector(".md-container"));c.$observe("value",function(e){if("query"!=c.mdMode){var t=d(e);a.attr("aria-valuenow",t),m[o.CSS.TRANSFORM]=n[t]}}),c.$observe("mdBufferValue",function(e){l[o.CSS.TRANSFORM]=n[d(e)]}),e(function(){s.addClass("md-ready")})}function d(e){return e>100?100:0>e?0:Math.ceil(e||0)}return{restrict:"E",template:'
',compile:i}}t.module("material.components.progressLinear",["material.core"]).directive("mdProgressLinear",e),e.$inject=["$$rAF","$mdConstant","$mdTheming"];var n=function(){function e(e){var t=e/100,n=(e-100)/2;return"translateX("+n.toString()+"%) scale("+t.toString()+", 1)"}for(var t=new Array(101),n=0;101>n;n++)t[n]=e(n);return t}()}(),function(){function e(e,n,o,r){function i(i,a,d,c){function l(){a.hasClass("md-focused")||a.addClass("md-focused")}function m(o){var r=o.which||o.keyCode;switch(r){case n.KEY_CODE.LEFT_ARROW:case n.KEY_CODE.UP_ARROW:o.preventDefault(),s.selectPrevious(),l();break;case n.KEY_CODE.RIGHT_ARROW:case n.KEY_CODE.DOWN_ARROW:o.preventDefault(),s.selectNext(),l();break;case n.KEY_CODE.ENTER:var i=t.element(e.getClosest(a[0],"form"));i.length>0&&i.triggerHandler("submit")}}o(a);var s=c[0],u=c[1]||e.fakeNgModel();s.init(u),i.mouseActive=!1,a.attr({role:"radiogroup",tabIndex:a.attr("tabindex")||"0"}).on("keydown",m).on("mousedown",function(e){i.mouseActive=!0,r(function(){i.mouseActive=!1},100)}).on("focus",function(){i.mouseActive===!1&&s.$element.addClass("md-focused")}).on("blur",function(){s.$element.removeClass("md-focused")})}function a(e){this._radioButtonRenderFns=[],this.$element=e}function d(){return{init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=t.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectNext:function(){return c(this.$element,1)},selectPrevious:function(){return c(this.$element,-1)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)}}}function c(n,o){var r=e.iterator(n[0].querySelectorAll("md-radio-button"),!0);if(r.count()){var i=function(e){return!t.element(e).attr("disabled")},a=n[0].querySelector("md-radio-button.md-checked"),d=r[0>o?"previous":"next"](a,i)||r.first();t.element(d).triggerHandler("click")}}return a.prototype=d(),{restrict:"E",controller:["$element",a],require:["mdRadioGroup","?ngModel"],link:{pre:i}}}function n(e,t,n){function o(o,i,a,d){function c(e){i[0].hasAttribute("disabled")||o.$apply(function(){d.setViewValue(a.value,e&&e.type)})}function l(){var e=d.getViewValue()==a.value;e!==s&&(s=e,i.attr("aria-checked",e),e?(i.addClass(r),d.setActiveDescendant(i.attr("id"))):i.removeClass(r))}function m(n,o){function r(){return a.id||"radio_"+t.nextUid()}o.ariaId=r(),n.attr({id:o.ariaId,role:"radio","aria-checked":"false"}),e.expectWithText(n,"aria-label")}var s;n(i),m(i,o),d.add(l),a.$observe("value",l),i.on("click",c).on("$destroy",function(){d.remove(l)})}var r="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'
',link:o}}t.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",e).directive("mdRadioButton",n),e.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],n.$inject=["$mdAria","$mdUtil","$mdTheming"]}(),function(){function e(e,o,r,i,a,d,c){function l(a,l){var m=t.element("");if(m.append(''),m.addClass("md-select-value"),m[0].hasAttribute("id")||m.attr("id","select_value_label_"+o.nextUid()),a.find("md-content").length||a.append(t.element("").append(a.contents())),l.mdOnOpen&&a.find("md-content").prepend(t.element("").attr("md-mode","indeterminate").attr("ng-hide","$$loadingAsyncDone").wrap("
").parent()),l.name){var s=t.element(',