From de2dd6cb9e5be64a60f2c108a2382d699bf59052 Mon Sep 17 00:00:00 2001
From: Kevin Ngo
Date: Wed, 12 Oct 2016 14:18:16 -0700
Subject: [PATCH] v0.3.2
---
dist/aframe-v0.3.0.min.js.map | 1 -
dist/{aframe-v0.3.0.js => aframe-v0.3.2.js} | 998 ++++++++----------
...ame-v0.3.0.js.map => aframe-v0.3.2.js.map} | 8 +-
...ame-v0.3.0.min.js => aframe-v0.3.2.min.js} | 8 +-
dist/aframe-v0.3.2.min.js.map | 1 +
dist/aframe.js | 992 ++++++++---------
dist/aframe.js.map | 8 +-
dist/aframe.min.js | 6 +-
dist/aframe.min.js.map | 2 +-
package.json | 6 +-
10 files changed, 943 insertions(+), 1087 deletions(-)
delete mode 100644 dist/aframe-v0.3.0.min.js.map
rename dist/{aframe-v0.3.0.js => aframe-v0.3.2.js} (96%)
rename dist/{aframe-v0.3.0.js.map => aframe-v0.3.2.js.map} (99%)
rename dist/{aframe-v0.3.0.min.js => aframe-v0.3.2.min.js} (99%)
create mode 100644 dist/aframe-v0.3.2.min.js.map
diff --git a/dist/aframe-v0.3.0.min.js.map b/dist/aframe-v0.3.0.min.js.map
deleted file mode 100644
index 4dc5dad2b1b..00000000000
--- a/dist/aframe-v0.3.0.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","package.json","src/style/aframe.css","src/style/rStats.css","src/index.js","node_modules/promise-polyfill/Promise.js","node_modules/present/lib/present-browser.js","node_modules/tween.js/src/Tween.js","src/core/geometry.js","src/core/component.js","src/core/shader.js","src/core/system.js","src/lib/three.js","src/components/index.js","src/geometries/index.js","src/shaders/index.js","src/systems/index.js","src/core/a-entity.js","src/core/a-node.js","src/core/a-animation.js","src/core/a-assets.js","src/core/a-cubemap.js","src/core/a-mixin.js","src/core/a-register-element.js","src/core/schema.js","node_modules/webvr-polyfill/build/webvr-polyfill.js","src/utils/index.js","src/core/scene/a-scene.js","src/extras/primitives/primitives.js","src/extras/primitives/getMeshMixin.js","src/extras/components/index.js","src/extras/declarative-events/index.js","src/extras/primitives/index.js","vendor/VRControls.js","vendor/VREffect.js","src/geometries/box.js","src/geometries/cone.js","src/geometries/circle.js","src/geometries/cylinder.js","src/geometries/dodecahedron.js","src/geometries/icosahedron.js","src/geometries/octahedron.js","src/geometries/plane.js","src/geometries/ring.js","src/geometries/sphere.js","src/geometries/tetrahedron.js","src/geometries/torus.js","src/geometries/torusKnot.js","src/components/blend-character-model.js","src/components/camera.js","src/components/collada-model.js","src/components/cursor.js","src/components/geometry.js","src/components/hand-controls.js","src/components/light.js","src/components/look-controls.js","src/components/look-at.js","src/components/material.js","src/components/obj-model.js","src/components/position.js","src/components/raycaster.js","src/components/rotation.js","src/components/scale.js","src/components/sound.js","src/components/tracked-controls.js","src/components/visible.js","src/components/vive-controls.js","src/components/wasd-controls.js","src/shaders/flat.js","src/shaders/standard.js","src/systems/camera.js","src/systems/geometry.js","src/systems/light.js","src/systems/material.js","src/systems/tracked-controls.js","src/constants/animation.js","src/utils/debug.js","src/core/propertyTypes.js","src/utils/coordinates.js","src/utils/checkHeadsetConnected.js","src/utils/entity.js","src/utils/forceCanvasResizeSafariMobile.js","src/utils/material.js","src/utils/styleParser.js","src/utils/src-loader.js","node_modules/browserify-css/browser.js","src/components/scene/canvas.js","src/components/scene/debug.js","src/components/scene/embedded.js","src/components/scene/inspector.js","src/components/scene/fog.js","src/components/scene/keyboard-shortcuts.js","src/components/scene/stats.js","src/components/scene/vr-mode-ui.js","node_modules/document-register-element/build/document-register-element.js","node_modules/deep-assign/index.js","node_modules/object-assign/index.js","src/core/scene/metaTags.js","src/core/scene/wakelock.js","src/core/scene/postMessage.js","src/extras/components/pivot.js","node_modules/browserify/node_modules/process/browser.js","node_modules/three/three.js","src/extras/primitives/primitives/a-camera.js","src/extras/primitives/primitives/a-collada-model.js","src/extras/primitives/primitives/a-cursor.js","src/extras/primitives/primitives/a-curvedimage.js","src/extras/primitives/primitives/a-image.js","src/extras/primitives/primitives/a-light.js","src/extras/primitives/primitives/a-obj-model.js","src/extras/primitives/primitives/a-sky.js","src/extras/primitives/primitives/a-sound.js","src/extras/primitives/primitives/a-video.js","src/extras/primitives/primitives/a-videosphere.js","src/extras/primitives/primitives/meshPrimitives.js","vendor/rStats.js","vendor/rStats.extras.js","node_modules/deep-assign/node_modules/is-obj/index.js","src/constants/index.js","node_modules/debug/browser.js","node_modules/three/examples/js/BlendCharacter.js","src/lib/rStatsAframe.js","node_modules/style-attr/index.js","vendor/wakelock/wakelock.js","node_modules/three/examples/js/loaders/OBJLoader.js","node_modules/three/examples/js/loaders/MTLLoader.js","node_modules/three/examples/js/loaders/ColladaLoader.js","node_modules/debug/debug.js","node_modules/debug/node_modules/ms/index.js","vendor/wakelock/util.js"],"names":["window","Promise","require","hasNativeWebVRImplementation","navigator","getVRDisplays","getVRDevices","WebVRConfig","BUFFER_SCALE","CARDBOARD_UI_DISABLED","ROTATE_INSTRUCTIONS_DISABLED","TOUCH_PANNER_DISABLED","MOUSE_KEYBOARD_CONTROLS_DISABLED","test","userAgent","devicePixelRatio","AScene","components","registerComponent","registerGeometry","registerPrimitive","registerShader","registerSystem","shaders","systems","THREE","TWEEN","pkg","utils","ANode","AEntity","console","log","version","dependencies","module","exports","AFRAME","geometries","registerElement","primitives","getMeshMixin","schema","root","bind","fn","thisArg","apply","arguments","this","TypeError","_state","_value","_deferreds","doResolve","resolve","reject","handle","deferred","me","push","asap","cb","onFulfilled","onRejected","ret","e","newValue","then","finale","call","i","len","length","Handler","done","value","reason","ex","setTimeoutFunc","setTimeout","setImmediate","isArray","Array","Object","prototype","toString","all","args","slice","res","val","remaining","constructor","race","values","_setImmediateFn","performance","global","present","names","name","shift","dateNow","Date","now","getTime","navigationStart","timing","performanceNow","noConflict","conflict","offset","_tweens","REVISION","getAll","removeAll","add","tween","remove","indexOf","splice","update","time","undefined","Tween","object","_object","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_repeat","_yoyo","_isPlaying","_reversed","_delayTime","_startTime","_easingFunction","Easing","Linear","None","_interpolationFunction","Interpolation","_chainedTweens","_onStartCallback","_onStartCallbackFired","_onUpdateCallback","_onCompleteCallback","_onStopCallback","field","parseFloat","to","properties","duration","start","property","concat","stop","stopChainedTweens","numChainedTweens","delay","amount","repeat","times","yoyo","easing","interpolation","chain","onStart","callback","onUpdate","onComplete","onStop","elapsed","end","isFinite","tmp","k","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Math","cos","PI","sin","Exponential","pow","Circular","sqrt","Elastic","s","a","p","asin","Back","Bounce","v","m","f","floor","Utils","Bezier","b","n","pw","bn","Bernstein","CatmullRom","p0","p1","t","fc","Factorial","p2","p3","v0","v1","t2","t3","define","amd","processSchema","process","geometryNames","Geometry","init","data","geometry","definition","NewGeometry","proto","keys","forEach","key","writable","Error","create","buildData","el","elData","silent","handleMixinUpdate","mixinEl","mixinData","getAttribute","extendProperties","isSinglePropSchema","componentDefined","isSingleProp","mixinEls","default","parseProperty","parseProperties","dest","source","extend","wrapPause","pauseMethod","sceneEl","isPlaying","tick","removeBehavior","wrapPlay","playMethod","shouldPlay","initialized","addBehavior","isSingleProperty","stringifyProperties","stringifyProperty","styleParser","Component","attr","id","attrName","updateCachedAttrValue","prevData","updateSchema","play","pause","parse","stringify","getData","attrValue","parseAttrValueForCache","parsedValue","flushToDOM","HTMLElement","setAttribute","updateProperties","oldData","deepEqual","emit","newData","extendSchema","schemaAddon","extendedSchema","component","NewComponent","hasLoaded","system","multiple","type","shaderNames","propertyToThreeMapping","number","vec4","vec3","vec2","color","Shader","vertexShader","fragmentShader","attributes","initVariables","uniforms","material","ShaderMaterial","is","varType","varValue","variables","self","parseValue","schemaKeys","updateVariables","processData","needsUpdate","dataKeys","Vector2","x","y","Vector3","z","Vector4","w","Color","r","g","NewShader","System","rawData","NewSystem","scenes","findAllScenes","document","initSystem","TextureLoader","crossOrigin","ImageLoader","Cache","enabled","ColladaLoader","MTLLoader","OBJLoader","checkComponentDefined","defaultComponents","isComponentMixedIn","getMixedInComponents","entityEl","addComponent","componentCache","inMixin","hasAttribute","debug","MULTIPLE_COMPONENT_DELIMITER","position","rotation","scale","visible","createdCallback","isEntity","object3D","Group","object3DMap","parentEl","states","attributeChangedCallback","oldVal","newVal","justInitialized","setEntityAttribute","attachedCallback","assetsEl","addToParent","isScene","querySelector","addEventListener","load","detachedCallback","removeComponent","updateComponent","updateComponents","mapStateMixins","state","op","mixinIds","mixins","split","mixinId","updateStateMixins","newMixins","oldMixins","newMixinsIds","oldMixinsIds","diff","filter","stateMixinsEls","querySelectorAll","unregisterMixin","registerMixin","getObject3D","setObject3D","obj","oldObj","Object3D","children","traverse","child","removeObject3D","getOrCreateObject3D","Constructor","parentNode","attachedToParent","entityLoadCallback","getChildEntities","childEntities","initComponent","isDependency","componentInfo","componentId","componentName","isComponentDefined","initComponentDependencies","isDefault","isMixedIn","elComponents","updateComponentProperty","propertyValue","componentObj","removeAttribute","componentKeys","entity","mixinUpdate","componentPropValue","isDebugMode","recursive","updateDOMAtrribute","getComputedAttribute","addState","removeState","stateIndex","isNode","mixinObservers","closestScene","updateMixins","element","parentElement","closest","selector","matches","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","childFilter","childrenLoaded","getChildren","map","attachMixinListener","removeMixinListener","observer","disconnect","currentObserver","MutationObserver","mutations","attributeName","config","observe","detail","bubbles","eventName","fireEvent","emitter","cloneValue","getAnimationValues","attribute","dataFrom","dataTo","currentValue","isColor","attributeSplit","propertyName","getForComponentAttribute","componentPropName","from","getComponentProperty","partialSetAttribute","getForCoordinateComponent","coordinates","getForBoolean","strToBool","boolToNum","getForColorComponent","rgbVectorToHex","getForNumber","isCoordinate","isNaN","str","bool","componentToHex","hex","convertToIntegerColor","min","abs","prop","join","animationConstants","DEFAULTS","defaults","DIRECTIONS","directions","EASING_FUNCTIONS","easingFunctions","FILLS","fills","REPEATS","repeats","AAnimation","bindMethods","isRunning","getTween","animationValues","toTemp","parseInt","direction","getDirection","fill","indefinite","Infinity","initialValue","count","forwards","alternate","alternateReverse","reverse","backwards","both","dur","onCompleted","warn","begin","evt","removeEventListeners","addEventListeners","none","prevDirection","normal","onStateAdded","onStateRemoved","evts","splitString","removeEventListener","getElData","mediaElementLoaded","checkProgress","secondsBuffered","buffered","readyState","error","setCrossOrigin","mediaEl","newMediaEl","src","extractDomain","location","host","cloneNode","appendChild","removeChild","url","domain","xhrLoader","XHRLoader","isAssets","mediaEls","imgEl","imgEls","timeout","loaded","onload","onerror","isAssetItem","textResponse","files","srcs","validate","elements","cacheAttribute","cacheAttributes","updateEntities","entities","addTagName","tagName","knownTags","toLowerCase","wrapANodeMethods","newObj","ANodeMethods","wrapMethods","copyProperties","wrapAEntityMethods","AEntityMethods","targetObj","methodList","derivedObj","baseObj","methodName","wrapMethod","derivedMethod","baseMethod","destination","props","getOwnPropertyNames","desc","getOwnPropertyDescriptor","node","getPrototypeOf","isANode","isAEntity","processPropertyDefinition","propDefinition","propType","defaultVal","typeName","propertyTypes","JSON","propName","propData","getPartialData","propNames","propValue","stringifiedData","o","u","code","l","1","_dereq_","lib$es6$promise$utils$$objectOrFunction","lib$es6$promise$utils$$isFunction","lib$es6$promise$asap$$setScheduler","scheduleFn","lib$es6$promise$asap$$customSchedulerFn","lib$es6$promise$asap$$setAsap","asapFn","lib$es6$promise$asap$$asap","lib$es6$promise$asap$$useNextTick","nextTick","lib$es6$promise$asap$$flush","lib$es6$promise$asap$$useVertxTimer","lib$es6$promise$asap$$vertxNext","lib$es6$promise$asap$$useMutationObserver","iterations","lib$es6$promise$asap$$BrowserMutationObserver","createTextNode","characterData","lib$es6$promise$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$es6$promise$asap$$useSetTimeout","lib$es6$promise$asap$$len","lib$es6$promise$asap$$queue","arg","lib$es6$promise$asap$$attemptVertx","vertx","runOnLoop","runOnContext","lib$es6$promise$then$$then","onFulfillment","onRejection","parent","lib$es6$promise$$internal$$FULFILLED","lib$es6$promise$$internal$$REJECTED","lib$es6$promise$$internal$$noop","result","_result","lib$es6$promise$$internal$$invokeCallback","lib$es6$promise$$internal$$subscribe","lib$es6$promise$promise$resolve$$resolve","promise","lib$es6$promise$$internal$$resolve","lib$es6$promise$$internal$$selfFulfillment","lib$es6$promise$$internal$$cannotReturnOwn","lib$es6$promise$$internal$$getThen","lib$es6$promise$$internal$$GET_THEN_ERROR","lib$es6$promise$$internal$$tryThen","fulfillmentHandler","rejectionHandler","lib$es6$promise$$internal$$handleForeignThenable","thenable","sealed","lib$es6$promise$$internal$$fulfill","lib$es6$promise$$internal$$reject","_label","lib$es6$promise$$internal$$handleOwnThenable","lib$es6$promise$$internal$$handleMaybeThenable","maybeThenable","lib$es6$promise$then$$default","lib$es6$promise$promise$resolve$$default","lib$es6$promise$$internal$$publishRejection","_onerror","lib$es6$promise$$internal$$publish","lib$es6$promise$$internal$$PENDING","_subscribers","subscribers","settled","lib$es6$promise$$internal$$ErrorObject","lib$es6$promise$$internal$$tryCatch","lib$es6$promise$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$es6$promise$$internal$$initializePromise","resolver","lib$es6$promise$promise$all$$all","entries","lib$es6$promise$enumerator$$default","lib$es6$promise$promise$race$$race","lib$es6$promise$utils$$isArray","lib$es6$promise$promise$reject$$reject","lib$es6$promise$promise$$needsResolver","lib$es6$promise$promise$$needsNew","lib$es6$promise$promise$$Promise","_id","lib$es6$promise$promise$$counter","lib$es6$promise$enumerator$$Enumerator","input","_instanceConstructor","_input","_remaining","_enumerate","_validationError","lib$es6$promise$polyfill$$polyfill","local","Function","P","cast","lib$es6$promise$promise$$default","lib$es6$promise$utils$$_isArray","lib$es6$promise$asap$$scheduleFlush","lib$es6$promise$asap$$browserWindow","lib$es6$promise$asap$$browserGlobal","WebKitMutationObserver","lib$es6$promise$asap$$isNode","lib$es6$promise$asap$$isWorker","Uint8ClampedArray","importScripts","lib$es6$promise$promise$all$$default","lib$es6$promise$promise$race$$default","lib$es6$promise$promise$reject$$default","_setScheduler","_setAsap","_asap","catch","_eachEntry","entry","c","_settledAt","_willSettleAt","enumerator","lib$es6$promise$polyfill$$default","lib$es6$promise$umd$$ES6Promise","polyfill","_process","2","toObject","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","target","symbols","getOwnPropertySymbols","3","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","clearTimeout","Item","fun","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","binding","cwd","chdir","dir","umask","4","VRDisplay","isPolyfilled","displayId","nextDisplayId","displayName","isConnected","isPresenting","capabilities","hasPosition","hasOrientation","hasExternalDisplay","canPresent","maxLayers","stageParameters","waitingForPresent_","layer_","fullscreenElement_","fullscreenWrapper_","fullscreenElementCachedStyle_","fullscreenEventTarget_","fullscreenChangeHandler_","fullscreenErrorHandler_","wakelock_","WakeLock","VRDevice","hardwareUnitId","deviceId","deviceName","HMDVRDevice","PositionSensorVRDevice","Util","hasShowDeprecationWarning","getPose","getImmediatePose","requestAnimationFrame","cancelAnimationFrame","wrapForFullscreen","applyFullscreenElementStyle","cssProperties","max","screen","width","height","isIOS","createElement","classList","removeFullscreenWrapper","insertBefore","firstChild","requestPresent","layers","onFullscreenChange","actualFullscreenElement","getFullscreenElement","fullscreenElement","orientation","lock","beginPresent_","unlock","release","endPresent_","removeFullscreenListeners_","fireVRDisplayPresentChange_","onFullscreenError","addFullscreenListeners_","requestFullscreen","request","exitFullscreen","exitPresent","wasPresenting","getLayers","event","CustomEvent","vrdisplay","dispatchEvent","changeHandler","errorHandler","submitFrame","pose","getEyeParameters","whichEye","./util.js","./wakelock.js","5","CardboardDistorter","gl","ctxAttribs","getContextAttributes","meshWidth","meshHeight","bufferScale","bufferWidth","drawingBufferWidth","bufferHeight","drawingBufferHeight","realBindFramebuffer","bindFramebuffer","realEnable","enable","realDisable","disable","realColorMask","colorMask","realClearColor","clearColor","realViewport","viewport","realCanvasWidth","canvas","__proto__","realCanvasHeight","isPatched","lastBoundFramebuffer","cullFace","depthTest","blend","scissorTest","stencilTest","attribs","texCoord","program","linkProgram","distortionVS","distortionFS","getProgramUniforms","viewportOffsetScale","Float32Array","setTextureBounds","vertexBuffer","createBuffer","indexBuffer","indexCount","renderTarget","createTexture","framebuffer","createFramebuffer","depthStencilBuffer","depthBuffer","stencilBuffer","depth","stencil","createRenderbuffer","patch","onResize","cardboardUI","CardboardUI","WGLUPreserveGLState","destroy","unpatch","deleteProgram","deleteBuffer","deleteTexture","deleteFramebuffer","deleteRenderbuffer","glState","RENDERBUFFER_BINDING","TEXTURE_BINDING_2D","TEXTURE0","FRAMEBUFFER","SCISSOR_TEST","clear","COLOR_BUFFER_BIT","bindTexture","TEXTURE_2D","texImage2D","alpha","RGBA","RGB","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","framebufferTexture2D","COLOR_ATTACHMENT0","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","DEPTH_STENCIL","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","DEPTH_COMPONENT16","DEPTH_ATTACHMENT","STENCIL_INDEX8","STENCIL_ATTACHMENT","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","getScreenWidth","getScreenHeight","defineProperty","configurable","enumerable","get","set","getParameter","FRAMEBUFFER_BINDING","CULL_FACE","DEPTH_TEST","BLEND","STENCIL_TEST","pname","COLOR_WRITEMASK","COLOR_CLEAR_VALUE","VIEWPORT","h","safariCssSizeWorkaround","leftBounds","rightBounds","DIRTY_SUBMIT_FRAME_BINDINGS","CURRENT_PROGRAM","ARRAY_BUFFER_BINDING","ELEMENT_ARRAY_BUFFER_BINDING","useProgram","bindBuffer","ELEMENT_ARRAY_BUFFER","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","activeTexture","uniform1i","diffuse","uniform4fv","drawElements","TRIANGLES","UNSIGNED_SHORT","renderNoState","preserveDrawingBuffer","updateDeviceInfo","deviceInfo","vertices","computeMeshVertices_","bufferData","STATIC_DRAW","indices","computeMeshIndices_","lensFrustum","getLeftEyeVisibleTanAngles","noLensFrustum","getLeftEyeNoLensTanAngles","getLeftEyeVisibleScreenRect","vidx","j","lerp","d","distortion","distortInverse","q","device","widthMeters","heightMeters","Uint16Array","halfwidth","halfheight","iidx","getOwnPropertyDescriptor_","descriptor","./cardboard-ui.js","./deps/wglu-preserve-state.js","6","uiVS","uiFS","gearOffset","gearVertexCount","arrowOffset","arrowVertexCount","projMat","listener","DEG2RAD","kAnglePerGearSection","kOuterRimEndAngle","kInnerRimBeginAngle","kOuterRadius","kMiddleRadius","kInnerRadius","kCenterLineThicknessDp","kButtonWidthDp","kTouchSlopFactor","listen","optionsCallback","backCallback","midline","clientWidth","buttonSize","clientX","clientY","clientHeight","addGearSegment","theta","angle","buttonScale","addArrowVertex","buttonBorder","dps","lineWidth","segmentTheta","angledLineWidth","render","uniform4f","orthoMatrix","uniformMatrix4fv","projectionMat","drawArrays","TRIANGLE_STRIP","7","CardboardVRDisplay","bufferScale_","poseSensor_","FusionPoseSensor","distorter_","cardboardUI_","dpdb_","Dpdb","onDeviceParamsUpdated_","deviceInfo_","DeviceInfo","getDeviceParams","viewerSelector_","ViewerSelector","onViewerChanged_","setViewer","getCurrentViewer","rotateInstructions_","RotateInstructions","onResize_","Eye","LEFT","RIGHT","getPosition","getOrientation","linearVelocity","linearAcceleration","angularVelocity","angularAcceleration","resetPose","fieldOfView","viewer","interLensDistance","getFieldOfViewLeftEye","getFieldOfViewRightEye","renderWidth","renderHeight","newParams","updateDeviceParams","distorter","getContext","predistorted","show","stopPropagation","preventDefault","isLandscapeMode","isMobile","showTemporarily","orientationHandler","onOrientationChange_","fireVRDisplayDeviceParamsChange_","hide","lastWidth","lastHeight","./base.js","./cardboard-distorter.js","./device-info.js","./dpdb/dpdb.js","./rotate-instructions.js","./sensor-fusion/fusion-pose-sensor.js","./viewer-selector.js","8","bindings","boundValues","TEXTURE_BINDING_CUBE_MAP","textureUnit","TEXTURE31","ACTIVE_TEXTURE","boundValue","TEXTURE_CUBE_MAP","9","Device","params","bevelMeters","deviceParams","Viewers","CardboardV2","Distortion","distortionCoefficients","CardboardViewer","label","fov","baselineLensDistance","screenLensDistance","inverseCoefficients","MathUtil","DEFAULT_ANDROID","DEFAULT_IOS","CardboardV1","determineDevice_","getDevice","METERS_PER_INCH","metersPerPixelX","xdpi","metersPerPixelY","ydpi","bevelMm","getDistortedFieldOfViewLeftEye","eyeToScreenDistance","outerDist","innerDist","bottomDist","topDist","outerAngle","radToDeg","atan","distort","innerAngle","bottomAngle","topAngle","leftDegrees","rightDegrees","downDegrees","upDegrees","fovLeft","tan","degToRad","fovTop","fovRight","fovBottom","halfWidth","halfHeight","verticalLensOffset","centerX","centerY","centerZ","screenLeft","screenTop","screenRight","screenBottom","undistortedFrustum","dist","eyeX","eyeY","left","top","right","bottom","opt_isUndistorted","getUndistortedFieldOfViewLeftEye","getUndistortedParams_","getUndistortedViewportLeftEye","screenWidth","screenHeight","xPxPerTanAngle","yPxPerTanAngle","round","eyePosX","eyePosY","halfLensDistance","maxFov","viewerMax","./distortion/distortion.js","./math-util.js","10","VRDisplayHMDDevice","display","VRDisplayPositionSensorDevice","eyeParameters","currentFieldOfView","maximumFieldOfView","minimumFieldOfView","recommendedFieldOfView","eyeTranslation","renderRect","setFieldOfView","opt_fovLeft","opt_fovRight","opt_zNear","opt_zFar","getState","resetState","positionDevice","11","coefficients","radius","r0","r1","dr0","dr1","r2","solveLinear_","solveLeastSquares_","matA","vecY","sum","numSamples","numCoefficients","Length","matATA","vecATY","approximateInverse","maxRadius","rp","12","DPDB_CACHE","format","last_updated","devices","rules","mdmh","ua","dpi","bw","ac","13","fetchOnline","onDeviceParamsUpdated","dpdb","recalculateDeviceParams_","xhr","XMLHttpRequest","open","ONLINE_DPDB_URL","loading","status","response","send","DeviceParams","newDeviceParams","calcDeviceParams_","db","vendor","opera","matched","rule","matchRule_","resX","resY","../util.js","./dpdb-cache.js","14","Emitter","callbacks","15","WebVRPolyfill","FORCE_ENABLE_VR","K_FILTER","PREDICTION_TIME_S","YAW_ONLY","DEFER_INITIALIZATION","ENABLE_DEPRECATED_API","InitializeWebVRPolyfill","./webvr-polyfill.js","16","copy","subVectors","normalize","scalar","invScalar","multiplyScalar","applyQuaternion","qx","qy","qz","qw","ix","iy","iz","iw","dot","crossVectors","ax","ay","az","bx","by","bz","Quaternion","quaternion","setFromEulerXYZ","c1","c2","c3","s1","s2","s3","setFromEulerYXZ","setFromAxisAngle","axis","halfAngle","multiply","multiplyQuaternions","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","inverse","slerp","qb","cosHalfTheta","halfTheta","acos","sinHalfTheta","ratioA","ratioB","setFromUnitVectors","EPS","vFrom","vTo","17","MouseKeyboardVRDisplay","onKeyDown_","onMouseMove_","onMouseDown_","onMouseUp_","phi_","theta_","targetAngle_","angleAnimation_","orientation_","rotateStart_","rotateEnd_","rotateDelta_","isDragging_","orientationOut_","KEY_SPEED","KEY_ANIMATION_DURATION","MOUSE_SPEED_X","MOUSE_SPEED_Y","keyCode","animatePhi_","animateTheta_","targetAngle","animateKeyTransitions_","clamp","angleName","startAngle","startTime","animate","percent","isPointerLocked_","movementX","mozMovementX","movementY","mozMovementY","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","18","loadIcon_","overlay","style","backgroundColor","fontFamily","zIndex","img","icon","marginLeft","marginTop","text","textAlign","fontSize","lineHeight","margin","innerHTML","snackbar","padding","boxSizing","snackbarText","float","snackbarButton","href","fontWeight","textTransform","borderLeft","paddingLeft","textDecoration","body","ms","timer","disableShowTemporarily","base64","19","ComplementaryFilter","kFilter","currentAccelMeasurement","SensorSample","currentGyroMeasurement","previousGyroMeasurement","filterQ","previousFilterQ","accelQ","isOrientationInitialized","estimatedGravity","measuredGravity","gyroIntegralQ","DEBUG","addAccelMeasurement","vector","timestampS","addGyroMeasurement","deltaT","isTimestampDeltaValid","run_","accelToQuaternion_","sample","gyroDeltaQ","gyroToQuaternionDelta_","invFilterQ","deltaQ","getQuaternionAngle","toFixed","targetQ","accel","normAccel","quat","gyro","dt","../math-util.js","./sensor-sample.js","20","accelerometer","gyroscope","onDeviceMotionChange_","onScreenOrientationChange_","posePredictor","PosePredictor","touchPanner","TouchPanner","filterToWorldQ","inverseWorldToScreenQ","worldToScreenQ","originalPoseAdjustQ","setScreenTransform_","resetQ","isFirefoxAndroid","predictedQ","getPrediction","previousTimestampS","out","resetSensor","deviceMotion","accGravity","accelerationIncludingGravity","rotRate","rotationRate","timeStamp","deltaS","MIN_TIMESTEP","MAX_TIMESTEP","beta","gamma","screenOrientation","../touch-panner.js","./complementary-filter.js","./pose-predictor.js","21","predictionTimeS","previousQ","outQ","currentQ","angularSpeed","predictAngle","22","sensorSample","23","onTouchStart_","onTouchMove_","onTouchEnd_","isTouching","rotateStart","rotateEnd","rotateDelta","ROTATE_SPEED","touches","pageX","pageY","24","objectAssign","mimeType","platform","isSafari","timestampDeltaS","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","vertexSource","fragmentSource","attribLocationMap","createShader","VERTEX_SHADER","shaderSource","compileShader","FRAGMENT_SHADER","createProgram","attachShader","attribName","bindAttribLocation","deleteShader","uniformCount","getProgramParameter","ACTIVE_UNIFORMS","uniformName","uniformInfo","getActiveUniform","replace","getUniformLocation","near","far","lr","bt","nf","check","substr","object-assign","25","selectedKey","localStorage","getItem","VIEWER_KEY","DEFAULT_VIEWER","dialog","createDialog_","CLASS_NAME","selected","checked","contains","getSelectedKey_","onSave_","setItem","options","container","background","overflow","boxShadow","createH1_","createChoice_","createButton_","h1","marginBottom","div","onclick","button","letterSpacing","border","./emitter.js","26","AndroidWakeLock","video","paused","iOSWakeLock","setInterval","clearInterval","getWakeLock","match","27","displays","devicesPopulated","nativeWebVRAvailable","isWebVRAvailable","nativeLegacyWebVRAvailable","isDeprecatedWebVRAvailable","enablePolyfill","enableDeprecatedPolyfill","populateDevices","vrDisplay","isCardboardCompatible","getVRDDevices","mozGetVRDevices","./cardboard-vr-display.js","./display-wrappers.js","./mouse-keyboard-vr-display.js","es6-promise","keysA","keysB","deepAssign","checkHeadsetConnected","forceCanvasResizeSafariMobile","extendDeep","bKey","aVal","bVal","isComparingObjects","isGearVR","isLandscape","shouldCaptureKeyEvent","shiftKey","metaKey","altKey","ctrlKey","activeElement","delimiter","regex","RegExp","copyAttribute","getUrlParameter","results","exec","search","decodeURIComponent","isIframed","matchingElements","allElements","getElementsByTagName","srcLoader","getCanvasSize","canvasEl","embedded","offsetHeight","offsetWidth","innerHeight","innerWidth","requestFullScreen","webkitRequestFullScreen","initMetaTags","inject","initWakelock","re","initPostMessageAPI","inspector","keyboard-shortcuts","vr-mode-ui","Scene","behaviors","originalHTML","setupRenderer","resize","addFullScreenStyles","htmlEl","documentElement","removeFullScreenStyles","initSystems","animationFrameID","behavior","enterVR","enterVRSuccess","enterVRFailure","err","message","effect","exitVR","exitVRSuccess","exitVRFailure","index","size","camera","aspect","updateProjectionMatrix","renderer","setSize","antialias","WebGLRenderer","setPixelRatio","sortObjects","VREffect","renderStarted","startRender","mark","reload","doPause","timeDelta","setComponentProperty","defaultAttributes","primitive","defaultComponentsFromPrimitive","deprecated","deprecatedMappings","mappings","transforms","componentData","applyDefaultComponents","syncAttributeToComponent","defaultData","attrValues","getTransformedValue","metalness","opacity","roughness","shader","side","transparent","isAEvent","targetEls","targetSelector","attachEventListener","attributeValue","targetEl","VRControls","onError","gotVRDevices","vrInput","scope","standingMatrix","Matrix4","standing","userHeight","fromArray","updateMatrix","sittingToStandingTransform","applyMatrix","setY","zeroSensor","dispose","gotVRDisplays","vrDisplays","isWebVR1","eyeWidth","eyeHeight","eyeParamsL","rendererPixelRatio","getPixelRatio","rendererSize","getSize","fovToNDCScaleOffset","pxscale","leftTan","rightTan","pxoffset","pyscale","upTan","downTan","pyoffset","fovPortToProjection","rightHanded","zNear","zFar","handednessScale","mobj","scaleAndOffset","transpose","fovToProjection","fovPort","renderRectL","renderRectR","eyeFOVL","eyeFOVR","eyeTranslationL","eyeTranslationR","getVRDisplay","domElement","setFullScreen","boolean","autoSubmitFrame","cameraL","PerspectiveCamera","cameraR","scene","forceClear","autoUpdate","updateMatrixWorld","eyeParamsR","setRenderTarget","setScissorTest","autoClear","projectionMatrix","matrixWorld","decompose","translateOnAxis","scissor","setViewport","setScissor","segmentsHeight","segmentsWidth","segmentsDepth","BoxGeometry","openEnded","radiusBottom","radiusTop","segmentsRadial","thetaLength","thetaStart","CylinderGeometry","segments","CircleGeometry","DodecahedronGeometry","IcosahedronGeometry","OctahedronGeometry","PlaneGeometry","radiusInner","radiusOuter","segmentsPhi","segmentsTheta","RingGeometry","phiLength","phiStart","SphereGeometry","TetrahedronGeometry","arc","radiusTubular","segmentsTubular","TorusGeometry","TorusKnotGeometry","model","BlendCharacter","castShadow","receiveShadow","shading","FlatShading","computeBoundingBox","active","zoom","savedPose","onEnterVR","onExitVR","addHeightOffset","activeCameraEl","setActiveCamera","disableActiveCamera","saveCameraPose","removeHeightOffset","restoreCameraPose","oldOffset","currentPosition","userHeightOffset","headsetConnected","loader","convertUpAxis","colladaModel","EVENTS","CLICK","MOUSEENTER","MOUSEDOWN","MOUSELEAVE","MOUSEUP","STATES","FUSING","HOVERING","HOVERED","fuse","fuseTimeout","cursorEl","mouseDownEl","intersectedEl","onMouseDown","onMouseUp","onIntersection","onIntersectionCleared","twoWayEmit","els","evtName","dummyGeometry","buffer","mergeTo","oneOf","skipCache","previousData","mesh","Mesh","unuseGeometry","getOrCreateGeometry","toEl","toMesh","merge","mergeTarget","newGeometryType","currentGeometryType","LEFT_HAND_MODEL_URL","RIGHT_HAND_MODEL_URL","onGripDown","handleButton","onGripUp","onTrackpadDown","onTrackpadUp","onTriggerDown","onTriggerUp","modelUrl","hand","isPressed","trackpadPressed","playAnimation","triggerPressed","gripPressed","animation","animationActive","timeScale","mixer","clipAction","loop","clampWhenFinished","if","groundColor","decay","distance","intensity","penumbra","light","defaultTarget","registerLight","diffData","setLight","onSetTarget","newLight","getLight","translateY","getHex","AmbientLight","DirectionalLight","HemisphereLight","PointLight","SpotLight","isNullVector","PI_2","hmdEnabled","enableGrabCursor","previousHMDPosition","setupMouseControls","setupHMDControls","pitchObject","yawObject","controls","updateOrientation","updatePosition","onMouseMove","releaseMouse","onTouchStart","onTouchMove","onTouchEnd","mouseDown","dolly","euler","Euler","hmdEuler","currentRotation","deltaRotation","hmdQuaternion","calculateHMDQuaternion","setFromQuaternion","calculateDeltaRotation","previousRotationX","previousRotationY","currentRotationX","currentRotationY","deltaHMDPosition","currentHMDPosition","calculateHMDPosition","sub","setFromMatrixPosition","matrix","previousMouseEvent","screenX","screenY","touchStart","touchStarted","deltaY","target3D","lookAt","beginTracking","parseSide","BackSide","DoubleSide","FrontSide","disposeMaterial","unregisterMaterial","flatShading","updateShader","updateMaterial","newShader","currentShader","updateBehavior","tickProperties","delta","shaderName","shaderInstance","setMaterial","SmoothShading","defaultMaterial","MeshBasicMaterial","registerMaterial","mtl","objLoader","mtlLoader","manager","loadObj","objUrl","mtlUrl","setBaseUrl","lastIndexOf","materials","preload","setMaterials","objModel","scaleDummy","interval","objects","intersectedEls","prevCheckTime","raycaster","Raycaster","updateOriginDirection","refreshObjects","objectEls","intersections","prevIntersectedEls","intersectObjects","intersection","directionHelper","originVec3","order","zeroScale","autoplay","volume","audioLoader","AudioLoader","sound","playSound","srcChanged","setupSound","setLoop","setVolume","updateEventListener","setBuffer","oldEvt","stopSound","audioListener","AudioListener","cameraEl","PositionalAudio","onended","onEnded","controller","buttonStates","axisState","hasId","controllers","updatePose","updateButtons","controllerEuler","controllerPosition","controllerQuaternion","setFromRotationMatrix","buttonState","buttons","handleAxes","axes","controllerAxes","previousAxis","changed","handlePress","handleTouch","handleValue","previousButtonState","pressed","touched","VIVE_CONTROLLER_MODEL_OBJ_URL","VIVE_CONTROLLER_MODEL_OBJ_MTL","buttonColor","buttonHighlightColor","mapping","axis0","axis1","button0","button1","button2","button3","button4","onButtonChanged","onButtonDown","onButtonEvent","onButtonUp","onModelLoaded","buttonMeshes","trigger","controllerObject3D","grip","getObjectByName","menu","trackpad","buttonName","updateModel","MAX_DELTA","acceleration","fly","wsAxis","adAxis","wsInverted","wsEnabled","adInverted","adEnabled","velocity","onBlur","onFocus","onVisibilityChange","onKeyDown","onKeyUp","attachVisibilityEventListeners","movementVector","prevTime","adSign","wsSign","getMovementVector","translateX","translateZ","attachKeyEventListeners","removeKeyEventListeners","removeVisibilityEventListeners","hidden","elRotation","applyEuler","getMaterialData","fog","textureSrc","updateMap","CubeLoader","CubeTextureLoader","texturePromises","envMap","MeshStandardMaterial","updateEnvMap","isLoadingEnvMap","cube","validateCubemapSrc","urls","removeDefaultCamera","defaultCamera","DEFAULT_CAMERA_ATTR","constants","DEFAULT_USER_HEIGHT","setupDefaultCamera","defaultCameraEl","AFRAME_INJECTED","removeDefaultOffset","addDefaultOffset","cameraEls","newActiveCameraEl","newCameraEl","newCamera","previousCamera","defaultCameraWrapper","createGeometry","geometryType","GeometryClass","geometryInstance","toBufferGeometry","decrementCacheCount","cacheCount","hash","incrementCacheCount","doBuffer","bufferGeometry","BufferGeometry","fromGeometry","metadata","parameters","cache","clearCache","cachedGeometry","DEFAULT_LIGHT_ATTR","defaultLights","userDefinedLights","setupDefaultLights","removeDefaultLights","ambientLight","directionalLight","calculateVideoCacheHash","videoEl","videoAttributes","sort","loadImageTexture","doLoadImageTexture","resolveTexture","texture","setTextureProperties","isEl","Texture","statusText","repeatXY","wrapS","RepeatWrapping","wrapT","createVideoEl","fixVideoAttributes","textureCache","clearTextureCache","loadTexture","loadImageCb","loadImage","loadVideoCb","loadVideo","loadCanvasCb","loadCanvas","validateSrc","handleImageTextureLoaded","HAVE_CURRENT_DATA","handleVideoTextureLoaded","videoTextureResult","hashVideo","VideoTexture","minFilter","LinearFilter","uuid","updateMaterials","gamepad","gamepads","getGamepads","linear","ease","ease-in","ease-out","ease-in-out","ease-cubic","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-quad","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-quart","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-quint","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-sine","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-expo","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-circ","ease-in-circ","ease-out-circ","ease-in-out-circ","ease-elastic","ease-in-elastic","ease-out-elastic","ease-in-out-elastic","ease-back","ease-in-back","ease-out-back","ease-in-out-back","ease-bounce","ease-in-bounce","ease-out-bounce","ease-in-out-bounce","getDebugNamespaceType","namespace","chunks","getDebugNamespaceColor","settings","colors","storage","debugLib","info","ls","logs","registerPropertyType","defaultValue","defaultParse","defaultStringify","arrayParse","trim","arrayStringify","boolParse","intParse","numberParse","selectorParse","selectorAllParse","selectorStringify","selectorAllStringify","srcParse","parsedUrl","vecParse","defaultVec","coordinate","vec","vecParseFloat","toVector3","dummyDolly","_x","_y","_z","splitName","handleTextureEvents","image","setMap","toCamelCase","camelCase","toUpperCase","transformKeysToCamelCase","camelCaseObj","camelCaseKey","parsedData","isImageCb","isVideoCb","isCanvasCb","textureEl","isImage","isVideo","isCanvas","parseUrl","validateImageUrl","validateAndGetQuerySelector","validatedUrls","aCubemap","cubemapSrcRegex","parsedSrc","onResult","onLoad","tester","Image","createLink","head","link","rel","createStyle","cssText","sheet","styleSheet","register","addFullscreenClass","removeFullscreenClass","onFullScreenChange","fullscreenEl","blur","focus","dataset","aframeCanvas","enterVREl","INSPECTOR_URL","homepage","onKeydown","shortcutPressed","injectInspector","script","INSPECTOR","inspectorInjected","getFog","FogExp2","density","Fog","enterVREnabled","resetSensorEnabled","createStats","threeStats","ThreeStats","aframeStats","AFrameStats","plugins","RStats","css","fps","caption","below","groups","HIDDEN_CLASS","stats","statsEl","hideBound","showBound","frame","createEnterVRButton","enterVRHandler","vrButton","wrapper","ENTER_VR_CLASS","className","ENTER_VR_BTN_CLASS","createOrientationModal","exitVRHandler","modal","ORIENTATION_MODAL_CLASS","exit","insideLoader","orientationModalEl","updateEnterVRInterface","toggleOrientationModalIfNeeded","uiElement","toggleEnterVRButtonIfNeeded","st","gt","ot","it","at","ut","F","E","R","nodeName","ft","lt","currentTarget","attrChange","Y","prevValue","ct","$","ht","G","vt","pt","U","Z","nt","X","Q","tt","created","I","S","mt","rt","et","random","T","N","C","isPrototypeOf","L","A","O","M","setPrototypeOf","_","D","yt","H","B","Element","Node","nodeType","W","attributeOldValue","V","J","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","K","addedNodes","removedNodes","oldValue","childList","subtree","innerHTMLHelper","assignKey","isObj","Meta","attrs","exists","Link","createTag","tagObj","meta","MOBILE_HEAD_TAGS","content","MOBILE_IOS_HEAD_TAGS","createAndInjectTag","tag","headScriptEl","headEl","headTags","Wakelock","wakelock","postMessageAPIHandler","originalPosition","originalRotation","originalParent","originalGroup","outerGroup","runTimeout","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","Number","EPSILON","sign","nextSource","keysArray","nextIndex","nextKey","MOUSE","MIDDLE","CullFaceNone","CullFaceBack","CullFaceFront","CullFaceFrontBack","FrontFaceDirectionCW","FrontFaceDirectionCCW","BasicShadowMap","PCFShadowMap","PCFSoftShadowMap","NoColors","FaceColors","VertexColors","NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","CustomBlending","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","ZeroFactor","OneFactor","SrcColorFactor","OneMinusSrcColorFactor","SrcAlphaFactor","OneMinusSrcAlphaFactor","DstAlphaFactor","OneMinusDstAlphaFactor","DstColorFactor","OneMinusDstColorFactor","SrcAlphaSaturateFactor","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","Uncharted2ToneMapping","CineonToneMapping","UVMapping","CubeReflectionMapping","CubeRefractionMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","SphericalReflectionMapping","CubeUVReflectionMapping","CubeUVRefractionMapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipMapNearestFilter","NearestMipMapLinearFilter","LinearMipMapNearestFilter","LinearMipMapLinearFilter","UnsignedByteType","ByteType","ShortType","UnsignedShortType","IntType","UnsignedIntType","FloatType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedShort565Type","AlphaFormat","RGBFormat","RGBAFormat","LuminanceFormat","LuminanceAlphaFormat","RGBEFormat","DepthFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_4BPPV1_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_ETC1_Format","LoopOnce","LoopRepeat","LoopPingPong","InterpolateDiscrete","InterpolateLinear","InterpolateSmooth","ZeroCurvatureEnding","ZeroSlopeEnding","WrapAroundEnding","TrianglesDrawMode","TriangleStripDrawMode","TriangleFanDrawMode","LinearEncoding","sRGBEncoding","GammaEncoding","RGBEEncoding","LogLuvEncoding","RGBM7Encoding","RGBM16Encoding","RGBDEncoding","BasicDepthPacking","RGBADepthPacking","setHex","setStyle","setScalar","setRGB","setHSL","hue2rgb","euclideanModulo","handleAlpha","string","charAt","ColorKeywords","clone","copyGammaToLinear","gammaFactor","copyLinearToGamma","safeInverse","convertGammaToLinear","convertLinearToGamma","getHexString","getHSL","optionalTarget","hue","saturation","hsl","lightness","getStyle","offsetHSL","addColors","color1","color2","addScalar","equals","toArray","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","_w","onChangeCallback","setFromEuler","te","m11","m12","m13","m21","m22","m23","m31","m32","m33","trace","conjugate","lengthSq","atan2","onChange","qa","qm","slerpFlat","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","sqrSin","tDir","setX","setComponent","getComponent","addVectors","addScaledVector","subScalar","divide","divideScalar","clampScalar","minVal","maxVal","clampLength","ceil","roundToZero","negate","lengthManhattan","distanceTo","distanceToSquared","dx","dy","setLength","lerpVectors","v2","fromAttribute","itemSize","rotateAround","center","setZ","multiplyVectors","applyAxisAngle","applyMatrix3","applyMatrix4","applyProjection","project","multiplyMatrices","getInverse","unproject","transformDirection","cross","projectOnVector","projectOnPlane","planeNormal","reflect","angleTo","dz","setFromSpherical","sinPhiRadius","phi","setFromMatrixColumn","setFromMatrixScale","sx","sy","sz","setW","setAxisAngleFromQuaternion","setAxisAngleFromRotationMatrix","epsilon","epsilon2","xx","yy","zz","xy","xz","yz","_order","DefaultOrder","RotationOrders","makeRotationFromQuaternion","setFromVector3","reorder","newOrder","optionalResult","Line3","line","distanceSq","closestPointToPointParameter","startP","startEnd","point","clampToLine","startEnd2","startEnd_startP","closestPointToPoint","Box2","setFromPoints","points","makeEmpty","il","expandByPoint","setFromCenterAndSize","halfSize","box","isEmpty","expandByVector","expandByScalar","containsPoint","containsBox","intersectsBox","clampPoint","distanceToPoint","clampedPoint","intersect","union","translate","Box3","setFromArray","minX","minY","minZ","maxX","maxY","maxZ","setFromObject","positions","intersectsSphere","closestPoint","sphere","intersectsPlane","plane","constant","getBoundingSphere","Sphere","Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","identity","setFromMatrix4","applyToVector3Array","applyToBuffer","getX","getY","getZ","setXYZ","determinant","throwOnDegenerate","t11","t12","t13","det","msg","flattenToArrayOffset","getNormalMatrix","matrix4","transposeIntoArray","n14","n24","n34","n41","n42","n43","n44","copyPosition","extractBasis","xAxis","yAxis","zAxis","makeBasis","extractRotation","scaleX","scaleY","scaleZ","makeRotationFromEuler","ae","af","be","bf","ce","cf","de","df","ad","bc","bd","x2","y2","z2","wx","wy","wz","eye","up","premultiply","a11","a12","a13","a14","a21","a22","a23","a24","a31","a32","a33","a34","a41","a42","a43","a44","b11","b12","b13","b14","b21","b22","b23","b24","b31","b32","b33","b34","b41","b42","b43","b44","multiplyToArray","setPosition","t14","getMaxScaleOnAxis","scaleXSq","scaleYSq","scaleZSq","makeTranslation","makeRotationX","makeRotationY","makeRotationZ","makeRotationAxis","tx","ty","makeScale","compose","invSX","invSY","invSZ","makeFrustum","makePerspective","ymax","ymin","xmin","xmax","makeOrthographic","Ray","origin","ray","recast","directionDistance","distanceSqToPoint","distanceSqToSegment","segCenter","segDir","optionalPointOnRay","optionalPointOnSegment","s0","sqrDist","extDet","segExtent","a01","b0","b1","invDet","intersectSphere","tca","d2","radius2","thc","t0","t1","distanceToPlane","denominator","intersectPlane","distToPoint","intersectBox","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","intersectTriangle","edge1","edge2","backfaceCulling","DdN","DdQxE2","DdE1xQ","QdN","optionalCenter","maxRadiusSq","empty","radiusSum","deltaLengthSq","getBoundingBox","Frustum","p4","p5","planes","Plane","frustum","setFromMatrix","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","setComponents","intersectsObject","boundingSphere","computeBoundingSphere","negRadius","d1","setFromNormalAndCoplanarPoint","setFromCoplanarPoints","inverseNormalLength","distanceToSphere","projectPoint","orthoPoint","perpendicularMagnitude","intersectLine","intersectsLine","startSign","endSign","coplanarPoint","m1","optionalNormalMatrix","referencePoint","normalMatrix","Spherical","other","makeSafe","RAD2DEG","generateUUID","chars","rnd","mapLinear","a1","a2","b2","smoothstep","smootherstep","random16","randInt","low","high","randFloat","randFloatSpread","range","degrees","radians","isPowerOfTwo","nearestPowerOfTwo","LN2","nextPowerOfTwo","Spline","interpolate","intPoint","weight","w2","w3","pa","pb","pc","pd","v3","initFromArray","getPoint","getControlPointsArray","coords","getLength","nSubDivisions","nSamples","oldIntPoint","oldPosition","tmpVec","chunkLengths","totalLength","total","reparametrizeByArcLength","samplingCoef","indexCurrent","indexNext","realDistance","sampling","newpoints","sl","Triangle","resultLengthSq","barycoordFromPoint","dot00","dot01","dot02","dot11","dot12","denom","invDenom","setFromPointsAndIndices","i0","i1","i2","triangle","area","midpoint","edgeList","projectedPoint","minDistance","Interpolant","parameterPositions","sampleValues","sampleSize","resultBuffer","_cachedIndex","valueSize","evaluate","pp","validate_interval","seek","linear_scan","forward_scan","giveUpAt","afterEnd_","t1global","beforeStart_","mid","intervalChanged_","interpolate_","DefaultSettings_","getSettings_","copySampleValue_","stride","CubicInterpolant","_weightPrev","_offsetPrev","_weightNext","_offsetNext","endingStart","endingEnd","iPrev","iNext","tPrev","tNext","halfDt","o1","o0","oP","oN","wP","wN","ppp","sP","sN","DiscreteInterpolant","LinearInterpolant","offset1","offset0","weight1","weight0","QuaternionLinearInterpolant","Clock","autoStart","oldTime","elapsedTime","running","getElapsedTime","getDelta","newTime","EventDispatcher","hasEventListener","_listeners","listeners","listenerArray","Layers","mask","toggle","ascSort","intersectObject","intersects","raycast","Line","LOD","Points","threshold","Sprite","defineProperties","PointCloud","linePrecision","setFromCamera","OrthographicCamera","onRotationChange","onQuaternionChange","Object3DIdCount","DefaultUp","modelViewMatrix","rotationAutoUpdate","matrixAutoUpdate","DefaultMatrixAutoUpdate","matrixWorldNeedsUpdate","frustumCulled","renderOrder","userData","setRotationFromAxisAngle","setRotationFromEuler","setRotationFromMatrix","setRotationFromQuaternion","rotateOnAxis","q1","rotateX","rotateY","rotateZ","localToWorld","worldToLocal","getObjectById","getObjectByProperty","getWorldPosition","getWorldQuaternion","getWorldRotation","getWorldScale","getWorldDirection","traverseVisible","traverseAncestors","force","toJSON","extractFromCache","isRootObject","output","textures","images","generator","Face3","materialIndex","vertexNormals","vertexColors","BufferAttribute","normalized","dynamic","updateRange","setDynamic","copyAt","index1","index2","copyArray","copyColorsArray","copyIndicesArray","copyVector2sArray","vectors","copyVector3sArray","copyVector4sArray","getW","setXY","setXYZW","Int8Attribute","Int8Array","Uint8Attribute","Uint8Array","Uint8ClampedAttribute","Int16Attribute","Int16Array","Uint16Attribute","Int32Attribute","Int32Array","Uint32Attribute","Uint32Array","Float32Attribute","Float64Attribute","Float64Array","DynamicBufferAttribute","InstancedBufferAttribute","meshPerAttribute","InterleavedBuffer","InstancedInterleavedBuffer","InterleavedBufferAttribute","interleavedBuffer","GeometryIdCount","faces","faceVertexUvs","morphTargets","morphNormals","skinWeights","skinIndices","lineDistances","boundingBox","verticesNeedUpdate","elementsNeedUpdate","uvsNeedUpdate","normalsNeedUpdate","colorsNeedUpdate","lineDistancesNeedUpdate","groupsNeedUpdate","vertex","face","jl","fromBufferGeometry","addFace","normals","tempNormals","uvs","tempUVs","uvs2","tempUVs2","uv","uv2","group","computeFaceNormals","ab","fl","vA","vB","vC","computeVertexNormals","areaWeighted","vl","computeMorphNormals","__originalFaceNormal","__originalVertexNormals","tmpGeo","faceNormals","faceNormal","dstNormalsFace","dstNormalsVertex","computeTangents","computeLineDistances","materialIndexOffset","vertexOffset","vertices1","vertices2","faces1","faces2","uvs1","vertexCopy","faceCopy","faceVertexNormals","faceVertexColors","uvCopy","mergeMesh","mergeVertices","verticesMap","unique","changes","precisionPoints","precision","faceIndicesToRemove","dupIndex","idx","sortFacesByMaterialIndex","materialIndexSort","newUvs1","newUvs2","setBit","getNormalIndex","normalsHash","getColorIndex","colorsHash","getUvIndex","uvsHash","hasMaterial","hasFaceUv","hasFaceVertexUv","hasFaceNormal","hasFaceVertexNormal","hasFaceColor","hasFaceVertexColor","faceType","uvsCopy","kl","DirectGeometry","computeGroups","morphTargetsPosition","hasFaceVertexUv2","morphTargetsLength","morphTargetsNormal","morphNormalsLength","hasSkinIndices","hasSkinWeights","vertexUvs","morphTarget","morphNormal","morphAttributes","drawRange","getIndex","setIndex","addAttribute","addGroup","clearGroups","setDrawRange","updateFromObject","direct","__directGeometry","lineDistance","fromDirectGeometry","TypeArray","pA","pB","pC","normalizeNormals","attribute1","attributeArray1","attribute2","attributeArray2","attributeSize","toNonIndexed","geometry2","array2","MaxIndex","InstancedBufferGeometry","maxInstancedCount","instances","Uniform","onUpdateCallback","AnimationClip","tracks","resetDuration","optimize","track","json","jsonTracks","frameTime","KeyframeTrack","clip","clipTracks","CreateFromMorphTargetSequence","morphTargetSequence","noLoop","numMorphTargets","AnimationUtils","getKeyframeOrder","sortedArray","NumberKeyframeTrack","findByName","clipArray","CreateClipsFromMorphTargetSequences","animationToMorphTargets","pattern","parts","animationMorphTargets","clips","parseAnimation","bones","addNonemptyTrack","trackType","trackName","animationKeys","destTracks","flattenJSON","clipName","hierarchyTracks","hierarchy","morphTargetNames","morphTargetName","animationKey","boneName","VectorKeyframeTrack","QuaternionKeyframeTrack","AnimationMixer","_root","_initMemoryManager","_accuIndex","optionalRoot","prototypeAction","rootUuid","clipObject","actionsForClip","_actionsByClip","existingAction","actionByRoot","knownActions","_clip","newAction","_Action","_bindAction","_addInactiveAction","stopAllAction","actions","_actions","nActions","_nActiveActions","_bindings","nBindings","_nActiveBindings","reset","useCount","deltaTime","timeDirection","accuIndex","action","_update","getRoot","uncacheClip","actionsByClip","actionsToRemove","_deactivateAction","cacheIndex","_cacheIndex","lastInactiveAction","_byClipCacheIndex","pop","_removeInactiveBindingsForAction","uncacheRoot","_removeInactiveAction","bindingsByRoot","_bindingsByRootAndName","bindingByName","restoreOriginalState","_removeInactiveBinding","uncacheAction","localRoot","_mixer","_localRoot","nTracks","interpolants","interpolantSettings","interpolant","createInterpolant","_interpolantSettings","_interpolants","_propertyBindings","_timeScaleInterpolant","_weightInterpolant","_loopCount","_effectiveTimeScale","_effectiveWeight","repetitions","zeroSlopeAtStart","zeroSlopeAtEnd","_activateAction","stopFading","stopWarping","_isActiveAction","isScheduled","startAt","mode","setEffectiveWeight","getEffectiveWeight","fadeIn","_scheduleFading","fadeOut","crossFadeFrom","fadeOutAction","warp","fadeInDuration","fadeOutDuration","startEndRatio","endStartRatio","crossFadeTo","fadeInAction","weightInterpolant","_takeBackControlInterpolant","setEffectiveTimeScale","getEffectiveTimeScale","setDuration","syncWith","halt","_currentTimeScale","startTimeScale","endTimeScale","_lendControlInterpolant","timeScaleInterpolant","getMixer","getClip","timeRunning","_updateTimeScale","clipTime","_updateTime","_updateWeight","propertyMixers","accumulate","interpolantValue","loopCount","pingPong","_setEndings","loopDelta","pending","atStart","atEnd","weightNow","weightThen","bindingsByName","referenceCount","_addInactiveBinding","path","parsedPath","PropertyMixer","PropertyBinding","ValueTypeName","getValueSize","_lendBinding","saveOriginalState","_lendAction","_takeBackBinding","_takeBackAction","_controlInterpolants","_nActiveControlInterpolants","inUse","controlInterpolants","knownActionsForClip","lastKnownAction","byClipCacheIndex","prevIndex","lastActiveIndex","firstInactiveAction","firstInactiveIndex","lastActiveAction","propBinding","rootNode","lastInactiveBinding","remove_empty_map","firstInactiveBinding","lastActiveBinding","_controlInterpolantsResultBuffer","__cacheIndex","lastActiveInterpolant","AnimationObjectGroup","var_args","_objects","nCachedObjects_","_indicesByUUID","_paths","_parsedPaths","_bindingsIndicesByPath","bindingsPerObject","nObjects","nCachedObjects","indicesByUUID","paths","parsedPaths","knownObject","firstActiveIndex","lastCachedObject","bindingsForPath","lastCached","lastCachedIndex","firstActiveObject","firstActive","uncache","lastIndex","lastObject","last","subscribe_","indicesByPath","unsubscribe_","lastBindingsIndex","lastBindings","lastBindingsPath","arraySlice","isTypedArray","subarray","convertArray","forceClone","BYTES_PER_ELEMENT","ArrayBuffer","isView","DataView","compareTime","nValues","srcOffset","jsonKeys","valuePropertyName","TimeBufferType","ValueBufferType","setInterpolation","DefaultInterpolation","InterpolantFactoryMethodDiscrete","InterpolantFactoryMethodLinear","InterpolantFactoryMethodSmooth","factoryMethod","getInterpolation","timeOffset","endTime","nKeys","valid","currTime","writeIndex","keep","timeNext","offsetP","offsetN","readOffset","writeOffset","_getTrackTypeForValueTypeName","ColorKeyframeTrack","BooleanKeyframeTrack","StringKeyframeTrack","parseTrackName","findNode","getValue","targetArray","setValue","sourceArray","targetObject","objectName","propertyIndex","_getValue_unavailable","_setValue_unavailable","objectIndex","skeleton","nodeProperty","versioning","Versioning","NeedsUpdate","MatrixWorldNeedsUpdate","bindingType","BindingType","Direct","ArrayElement","resolvedProperty","HasFromToArray","EntireArray","GetterByBindingType","SetterByBindingTypeAndVersioning","unbind","_getValue_unbound","_setValue_unbound","Composite","targetGroup","optionalParsedPath","_targetGroup","firstValidIndex","searchSkeleton","bone","searchNodeSubtree","childNode","subTreeNode","mixFunction","bufferType","_slerp","_select","_lerp","_mixBufferRegion","cumulativeWeight","currentWeight","mix","originalValueOffset","Audio","context","createBufferSource","gain","createGain","connect","getInput","playbackRate","hasPlaybackControl","sourceType","getOutput","setNodeSource","audioNode","audioBuffer","currentTime","getFilter","setFilter","setPlaybackRate","getPlaybackRate","getLoop","getVolume","AudioAnalyser","audio","fftSize","analyser","createAnalyser","frequencyBinCount","getByteFrequencyData","AudioContext","webkitAudioContext","panner","createPanner","setRefDistance","refDistance","getRefDistance","setRolloffFactor","rolloffFactor","getRolloffFactor","setDistanceModel","distanceModel","getDistanceModel","setMaxDistance","maxDistance","getMaxDistance","removeFilter","setMasterVolume","getMasterVolume","setOrientation","Camera","matrixWorldInverse","CubeCamera","cubeResolution","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","magFilter","WebGLRenderTargetCube","updateCubeMap","generateMipmaps","activeCubeFace","cx","cy","view","filmGauge","filmOffset","setLens","focalLength","setFocalLength","vExtentSlope","getFilmHeight","getFocalLength","getEffectiveFOV","getFilmWidth","setViewOffset","fullWidth","fullHeight","offsetX","offsetY","skew","StereoCamera","eyeRight","eyeLeft","eyeSep","eyeSepOnProjection","Light","LightShadow","bias","mapSize","shadow","DirectionalLightShadow","skyColor","power","SpotLightShadow","DefaultLoadingManager","onProgress","setResponseType","decodeAudioData","file","Loader","onLoadStart","onLoadProgress","onLoadComplete","extractUrlBase","initMaterials","texturePath","createMaterial","textureLoader","materialLoader","wrap","anisotropy","fullPath","Handlers","MaterialLoader","blending","specular","emissive","shininess","mapDiffuseRepeat","mapDiffuseOffset","mapDiffuseWrap","mapDiffuseAnisotropy","lightMap","mapLightRepeat","mapLightOffset","mapLightWrap","mapLightAnisotropy","aoMap","mapAORepeat","mapAOOffset","mapAOWrap","mapAOAnisotropy","bumpMap","mapBumpRepeat","mapBumpOffset","mapBumpWrap","mapBumpAnisotropy","bumpScale","normalMap","mapNormalRepeat","mapNormalOffset","mapNormalWrap","mapNormalAnisotropy","normalScale","specularMap","mapSpecularRepeat","mapSpecularOffset","mapSpecularWrap","mapSpecularAnisotropy","alphaMap","mapAlphaRepeat","mapAlphaOffset","mapAlphaWrap","mapAlphaAnisotropy","setTextures","handlers","cached","overrideMimeType","itemEnd","itemError","responseType","withCredentials","itemStart","setPath","setWithCredentials","FontLoader","Font","substring","JSONLoader","statusDomElement","_statusDomElement","setTexturePath","parseModel","isBitSet","fi","zLength","colorIndex","normalIndex","uvIndex","isQuad","faceA","faceB","uvLayer","nUvLayers","parseSkin","influencesPerVertex","parseMorphing","dstVertices","srcVertices","morphColors","parseAnimations","outputAnimations","animations","morphAnimationClips","LoadingManager","isLoading","itemsLoaded","itemsTotal","BufferGeometryLoader","TYPED_ARRAYS","typedArray","drawcalls","offsets","getTexture","alphaTest","depthWrite","colorWrite","wireframe","wireframeLinewidth","sizeAttenuation","displacementMap","displacementScale","displacementBias","roughnessMap","metalnessMap","emissiveMap","emissiveIntensity","combine","reflectivity","lightMapIntensity","aoMapIntensity","ObjectLoader","parseGeometries","parseImages","parseTextures","parseMaterials","parseObject","geometryLoader","bufferGeometryLoader","widthSegments","heightSegments","depthSegments","radialSegments","innerRadius","outerRadius","thetaSegments","phiSegments","tube","tubularSegments","parseConstant","getGeometry","getMaterial","SkinnedMesh","levels","level","addLevel","CubeTexture","DataTextureLoader","BinaryTextureLoader","_parser","DataTexture","texData","mipmaps","mipmapCount","CompressedTextureLoader","texDatas","CompressedTexture","isCubemap","Material","MaterialIdCount","blendSrc","blendDst","blendEquation","blendSrcAlpha","blendDstAlpha","blendEquationAlpha","depthFunc","clippingPlanes","clipShadows","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","premultipliedAlpha","overdraw","_needsUpdate","setValues","isRoot","srcPlanes","dstPlanes","LineBasicMaterial","linewidth","linecap","linejoin","LineDashedMaterial","dashSize","gapSize","refractionRatio","wireframeLinecap","wireframeLinejoin","skinning","MeshDepthMaterial","depthPacking","MeshLambertMaterial","MeshNormalMaterial","MeshPhongMaterial","defines","STANDARD","envMapIntensity","MeshPhysicalMaterial","PHYSICAL","MultiMaterial","PointsMaterial","lights","clipping","extensions","derivatives","fragDepth","drawBuffers","shaderTextureLOD","defaultAttributeValues","index0AttributeName","UniformsUtils","RawShaderMaterial","SpriteMaterial","encoding","TextureIdCount","sourceFile","DEFAULT_IMAGE","DEFAULT_MAPPING","premultiplyAlpha","flipY","unpackAlignment","getDataURL","toDataURL","drawImage","transformUv","DepthTexture","CanvasTexture","inverseMatrix","testPoint","rayPointDistanceSq","localThresholdSq","intersectPoint","distanceToRay","localThreshold","LineSegments","precisionSq","vStart","vEnd","interSegment","interRay","step","distSq","faceIndex","nbVertices","LineStrip","LinePieces","drawMode","updateMorphTargets","setDrawMode","morphTargetBase","morphTargetInfluences","morphTargetDictionary","ml","getMorphTargetIndexByName","uvIntersection","uv1","uv3","barycoord","checkIntersection","intersectionPointWorld","checkBufferGeometryIntersection","intersectionPoint","uvA","uvB","uvC","tempA","tempB","tempC","fvA","fvB","fvC","isFaceMaterial","faceMaterial","morphInfluences","tl","influence","targets","uvs_f","Bone","skin","Skeleton","boneInverses","useVertexTexture","identityMatrix","boneTextureWidth","boneTextureHeight","boneMatrices","boneTexture","calculateInverses","bl","offsetMatrix","bindMode","bindMatrix","bindMatrixInverse","gbone","pos","rotq","scl","normalizeSkinWeights","sw","skinWeight","getObjectForDistance","matrixPosition","guessSizeSq","Particle","LensFlare","lensFlares","positionScreen","customUpdateCallback","updateLensFlares","flare","vecX","wantedRotation","overrideMaterial","ShaderChunk","merged","uniforms_src","uniforms_dst","parameter_src","UniformsLib","common","offsetRepeat","flipEnvMap","aomap","lightmap","emissivemap","bumpmap","normalmap","displacementmap","roughnessmap","metalnessmap","fogDensity","fogNear","fogFar","fogColor","ambientLightColor","directionalLights","shadowBias","shadowRadius","shadowMapSize","directionalShadowMap","directionalShadowMatrix","spotLights","coneCos","penumbraCos","spotShadowMap","spotShadowMatrix","pointLights","pointShadowMap","pointShadowMatrix","hemisphereLights","ShaderLib","basic","lambert","phong","standard","dashed","totalSize","tCube","tFlip","equirect","tEquirect","distanceRGBA","lightPos","getTargetPixelRatio","_currentRenderTarget","_pixelRatio","glClearColor","_premultipliedAlpha","setDefaultGLState","_currentScissor","_scissor","_currentViewport","_viewport","_clearColor","_clearAlpha","resetGLState","_currentProgram","_currentCamera","_currentGeometryProgram","_currentMaterialId","onContextLost","onTextureDispose","deallocateTexture","_infoMemory","onRenderTargetDispose","deallocateRenderTarget","onMaterialDispose","deallocateMaterial","textureProperties","__image__webglTextureCube","_gl","__webglInit","__webglTexture","delete","renderTargetProperties","depthTexture","__webglFramebuffer","__webglDepthbuffer","releaseMaterialProgramReference","programInfo","programCache","releaseProgram","setupVertexAttributes","startIndex","extension","initAttributes","geometryAttributes","programAttributes","getAttributes","materialDefaultAttributeValues","programAttribute","geometryAttribute","SHORT","UNSIGNED_INT","INT","BYTE","getAttributeBuffer","enableAttributeAndDivisor","enableAttribute","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttrib1fv","disableUnusedAttributes","absNumericalSort","painterSortStable","reversePainterSortStable","pushRenderItem","transparentObjects","transparentObjectsLastIndex","opaqueObjects","opaqueObjectsLastIndex","renderItem","_vector3","isObjectViewable","_sphere","_frustum","_numClippingPlanes","_this","negRad","projectObject","sprites","ImmediateRenderObject","_projScreenMatrix","groupMaterial","renderObjects","renderList","setProgram","renderBufferImmediate","renderBufferDirect","initMaterial","materialProperties","getParameters","_lights","getProgramCode","programChange","shaderID","__webglShader","acquireProgram","numSupportedMorphTargets","maxMorphTargets","numSupportedMorphNormals","maxMorphNormals","numClippingPlanes","_clippingPlanesUniform","lightsHash","ambient","directional","spot","hemi","progUniforms","getUniforms","uniformsList","WebGLUniforms","seqWithValue","seq","dynamicUniforms","splitDynamic","setMaterialFaces","setBlending","setDepthFunc","setDepthTest","setDepthWrite","setColorWrite","setPolygonOffset","setFlipSided","_usedTextureUnits","_clippingEnabled","_localClippingEnabled","useCache","setClippingState","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","logarithmicDepthBuffer","uCamPos","cameraPosition","setOptional","floatVertexTextures","markUniformsLightsNeedsUpdate","refreshUniformsFog","refreshUniformsCommon","refreshUniformsLine","refreshUniformsDash","refreshUniformsPoints","refreshUniformsLambert","refreshUniformsPhong","refreshUniformsPhysical","refreshUniformsStandard","upload","dynUniforms","evalDynamic","uvScaleMap","WebGLRenderTarget","_canvas","setupShadows","lightShadowsLength","shadows","setupLights","ll","viewMatrix","directionalLength","pointLength","spotLength","hemiLength","lightCache","setupGlobalClippingPlanes","localClippingEnabled","_numGlobalClippingPlanes","_globalClippingState","setupClippingPlanes","skipTransform","nPlanes","dstArray","flatSize","viewNormalMatrix","_matrix3","i4","_plane","resetGlobalClippingState","fromCache","_clipRenderingShadows","nGlobal","lGlobal","clippingState","allocTextureUnit","maxTextures","setTextureParameters","textureType","isPowerOfTwoImage","paramThreeToGL","filterFallback","__currentAnisotropy","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","getMaxAnisotropy","uploadTexture","slot","pixelStorei","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ALIGNMENT","clampToMaxSize","maxTextureSize","textureNeedsPowerOfTwo","makePowerOfTwo","glFormat","glType","mipmap","internalFormat","DEPTH_COMPONENT","_isWebGL2","DEPTH_COMPONENT32F","getCompressedTextureFormats","compressedTexImage2D","generateMipmap","__version","setTexture2D","complete","maxSize","HTMLImageElement","HTMLCanvasElement","setCubeTexture","isCompressed","isDataTexture","cubeImage","autoScaleCubemaps","maxCubemapSize","TEXTURE_CUBE_MAP_POSITIVE_X","setCubeTextureDynamic","setupFrameBufferTexture","attachment","textureTarget","setupRenderBufferStorage","renderbuffer","RGBA4","setupDepthTexture","isCube","setTexture","webglDepthTexture","setupDepthRenderbuffer","setupRenderTarget","isTargetPowerOfTwo","updateRenderTargetMipmap","NEAREST","REPEAT","MIRRORED_REPEAT","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","HALF_FLOAT_OES","ALPHA","LUMINANCE","LUMINANCE_ALPHA","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","ZERO","ONE","SRC_COLOR","ONE_MINUS_SRC_COLOR","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","DST_ALPHA","ONE_MINUS_DST_ALPHA","DST_COLOR","ONE_MINUS_DST_COLOR","SRC_ALPHA_SATURATE","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","MIN_EXT","MAX_EXT","_context","_alpha","_depth","_stencil","_antialias","_preserveDrawingBuffer","autoClearColor","autoClearDepth","autoClearStencil","gammaInput","gammaOutput","physicallyCorrectLights","toneMapping","toneMappingExposure","toneMappingWhitePoint","_currentFramebuffer","_currentScissorTest","_width","_height","_scissorTest","_infoRender","calls","memory","programs","getShaderPrecisionFormat","rangeMin","rangeMax","WebGL2RenderingContext","WebGLExtensions","WebGLCapabilities","WebGLState","WebGLProperties","WebGLObjects","WebGLPrograms","WebGLLights","bufferRenderer","WebGLBufferRenderer","indexedBufferRenderer","WebGLIndexedBufferRenderer","shadowMap","WebGLShadowMap","spritePlugin","SpritePlugin","lensFlarePlugin","LensFlarePlugin","forceContextLoss","loseContext","MAX_TEXTURE_MAX_ANISOTROPY_EXT","getPrecision","updateStyle","getClearColor","setClearColor","getClearAlpha","setClearAlpha","bits","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","clearDepth","clearStencil","clearTarget","buffers","hasPositions","hasNormals","hasUvs","hasColors","positionArray","DYNAMIC_DRAW","normalArray","nx","ny","nz","uvArray","colorArray","updateBuffers","geometryProgram","activeInfluences","getWireframeAttribute","dataStart","dataCount","rangeStart","rangeCount","groupStart","groupCount","drawStart","drawEnd","drawCount","setLineWidth","setMode","LINES","TRIANGLE_FAN","LINE_STRIP","POINTS","renderInstances","setFaceCulling","frontFaceDirection","frontFace","CW","CCW","BACK","FRONT","FRONT_AND_BACK","setTextureWarned","setTextureCube","getCurrentRenderTarget","activeMipMapLevel","readRenderTargetPixels","restore","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","readPixels","drawArraysInstancedANGLE","drawElementsInstancedANGLE","getExtension","getMaxPrecision","HIGH_FLOAT","MEDIUM_FLOAT","MAX_TEXTURE_IMAGE_UNITS","maxVertexTextures","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","MAX_CUBE_MAP_TEXTURE_SIZE","maxAttributes","MAX_VERTEX_ATTRIBS","maxVertexUniforms","MAX_VERTEX_UNIFORM_VECTORS","maxVaryings","MAX_VARYING_VECTORS","maxFragmentUniforms","MAX_FRAGMENT_UNIFORM_VECTORS","vertexTextures","floatFragmentTextures","_maxPrecision","WebGLGeometries","onGeometryDispose","buffergeometry","_bufferGeometry","deleteAttribute","deleteAttributes","bufferproperty","__webglBuffer","removeAttributeBuffer","updateAttribute","attributeProperties","updateBuffer","usage","bufferSubData","edges","checkEdge","list","WebGLProgram","getEncodingComponents","getTexelDecodingFunction","functionName","getTexelEncodingFunction","getToneMappingFunction","toneMappingName","generateExtensions","rendererExtensions","envMapCubeUV","filterEmptyLine","generateDefines","fetchAttributeLocations","identifiers","ACTIVE_ATTRIBUTES","getActiveAttrib","getAttribLocation","replaceLightNums","numDirLights","numSpotLights","numPointLights","numHemiLights","parseIncludes","include","unrollLoops","snippet","unroll","programIdCount","shadowMapTypeDefine","shadowMapType","envMapTypeDefine","envMapModeDefine","envMapBlendingDefine","prefixVertex","prefixFragment","gammaFactorDefine","customExtensions","customDefines","supportsVertexTextures","maxBones","doubleSided","flipSided","shadowMapEnabled","useFog","fogExp","outputEncoding","mapEncoding","envMapEncoding","emissiveMapEncoding","vertexGlsl","fragmentGlsl","glVertexShader","WebGLShader","glFragmentShader","programLog","getProgramInfoLog","vertexLog","getShaderInfoLog","fragmentLog","runnable","haveDiagnostics","LINK_STATUS","getError","VALIDATE_STATUS","diagnostics","prefix","cachedUniforms","cachedAttributes","usedTimes","allocateBones","nVertexUniforms","nVertexMatrices","getTextureEncodingFromMap","gammaOverrideLinear","shaderIDs","parameterNames","nClipPlanes","envMapMode","pl","addLineNumbers","lines","getShaderParameter","COMPILE_STATUS","_renderer","getDepthMaterial","isPointLight","lightPositionWorld","materialVariants","_depthMaterials","customMaterial","customDepthMaterial","_distanceMaterials","customDistanceMaterial","useMorphing","useSkinning","variantIndex","_MorphingFlag","_SkinningFlag","keyA","keyB","materialsForVariant","_materialCache","cachedMaterial","shadowCamera","_renderList","_lightShadows","_shadowMapSize","_lookTarget","_lightPositionWorld","_NumberOfMaterialVariants","cubeDirections","cubeUps","cube2DViewPorts","depthMaterialTemplate","distanceShader","distanceUniforms","depthMaterial","distanceMaterial","USE_SHADOWMAP","faceCount","vpWidth","vpHeight","pars","shadowMatrix","vpDimensions","clearAlpha","maxVertexAttributes","newAttributes","enabledAttributes","attributeDivisors","compressedTextureFormats","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentPremultipledAlpha","currentDepthFunc","currentDepthWrite","currentColorWrite","currentStencilWrite","currentStencilFunc","currentStencilRef","currentStencilMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentFlipSided","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","currentScissorTest","currentTextureSlot","currentBoundTextures","currentClearColor","currentClearDepth","currentClearStencil","currentScissor","currentViewport","LEQUAL","blendFunc","vertexAttribDivisorANGLE","disableVertexAttribArray","formats","COMPRESSED_TEXTURE_FORMATS","blendEquationSeparate","blendFuncSeparate","NEVER","ALWAYS","LESS","EQUAL","GEQUAL","GREATER","NOTEQUAL","depthMask","setStencilFunc","stencilFunc","stencilRef","stencilMask","setStencilOp","stencilFail","stencilZFail","stencilZPass","stencilOp","setStencilTest","setStencilWrite","stencilWrite","factor","units","POLYGON_OFFSET_FILL","getScissorTest","webglSlot","webglType","webglTexture","boundTexture","UniformContainer","arrayCacheF32","arrayCacheI32","flatten","nBlocks","blockSize","firstElem","allocTexUnits","setValue1f","uniform1f","addr","setValue1i","setValue2fv","uniform2fv","uniform2f","setValue3fv","uniform3f","uniform3fv","setValue4fv","setValue2fm","uniformMatrix2fv","setValue3fm","uniformMatrix3fv","setValue4fm","setValueT1","unit","setValueT6","setValue2iv","uniform2iv","setValue3iv","uniform3iv","setValue4iv","uniform4iv","getSingularSetter","setValue1fv","uniform1fv","setValue1iv","uniform1iv","setValueV2a","setValueV3a","setValueV4a","setValueM2a","setValueM3a","setValueM4a","setValueT1a","tex","setValueT6a","getPureArraySetter","SingleUniform","activeInfo","PureArrayUniform","StructuredUniform","RePathPart","addUniform","uniformObject","parseUniform","pathLength","matchEnd","idIsIndex","subscript","next","flares","elementBuffer","tempTexture","occlusionTexture","renderType","occlusionMap","screenPosition","tempPosition","invAspect","halfViewportWidth","halfViewportHeight","screenPositionPixels","validArea","TEXTURE1","copyTexImage2D","sprite","uvOffset","uvScale","fogType","fillStyle","fillRect","spritePosition","spriteRotation","spriteScale","oldFogType","sceneFogType","isIntersectionBox","isIntersectionSphere","multiplyVector3","multiplyVector3Array","extractPosition","multiplyVector4","rotateAxis","crossVector","rotateByAxis","isIntersectionLine","isIntersectionPlane","setEulerFromRotationMatrix","setEulerFromQuaternion","getPositionFromMatrix","getScaleFromMatrix","getColumnFromMatrix","Face4","Vertex","eulerOrder","getChildByName","renderDepth","useQuaternion","ParticleSystem","onlyShadow","shadowCameraFov","shadowCameraLeft","shadowCameraRight","shadowCameraTop","shadowCameraBottom","shadowCameraNear","shadowCameraFar","shadowCameraVisible","shadowDarkness","shadowMapWidth","shadowMapHeight","addIndex","addDrawCall","indexOffset","clearDrawCalls","computeOffsets","wrapAround","wrapRGB","PointCloudMaterial","ParticleBasicMaterial","ParticleSystemMaterial","metal","supportsFloatTextures","supportsHalfFloatTextures","supportsStandardDerivatives","supportsCompressedTextureS3TC","supportsCompressedTexturePVRTC","supportsBlendMinMax","supportsInstancedArrays","enableScissorTest","addPrePlugin","addPostPlugin","updateShadowMap","shadowMapCullFace","GeometryUtils","geometry1","ImageUtils","loadTextureCube","loadCompressedTexture","loadCompressedTextureCube","Projector","projectVector","unprojectVector","pickingRay","CanvasRenderer","MeshFaceMaterial","CurveUtils","tangentQuadraticBezier","tangentCubicBezier","tangentSpline","h00","h10","h01","h11","SceneUtils","createMultiMaterialObject","detach","attach","ShapeUtils","contour","triangulate","snip","verts","px","py","aX","aY","bX","bY","cX","cY","apx","apy","bpx","bpy","cpx","cpy","cCROSSap","bCROSScp","aCROSSbp","vertIndices","nv","triangulateShape","holes","point_in_segment_2D_colin","inSegPt1","inSegPt2","inOtherPt","intersect_segments_2D","inSeg1Pt1","inSeg1Pt2","inSeg2Pt1","inSeg2Pt2","inExcludeAdjacentSegs","seg1dx","seg1dy","seg2dx","seg2dy","seg1seg2dx","seg1seg2dy","limit","perpSeg1","perpSeg2","factorSeg1","seg1Pt","seg2Pt","seg1min","seg1max","seg1minVal","seg1maxVal","seg2min","seg2max","seg2minVal","seg2maxVal","isPointInsideAngle","inVertex","inLegFromPt","inLegToPt","legFromPtX","legFromPtY","legToPtX","legToPtY","otherPtX","otherPtY","from2toAngle","from2otherAngle","other2toAngle","removeHoles","isCutLineInsideAngles","inShapeIdx","inHoleIdx","lastShapeIdx","shape","prevShapeIdx","nextShapeIdx","insideAngle","hole","lastHoleIdx","prevHoleIdx","nextHoleIdx","intersectsShapeEdge","inShapePt","inHolePt","sIdx","nextIdx","intersectsHoleEdge","ihIdx","chkHole","hIdx","indepHoles","holeIndex","shapeIndex","shapePt","holePt","holeIdx","cutKey","tmpShape1","tmpShape2","tmpHole1","tmpHole2","failedCuts","hl","minShapeIndex","counter","h2","allPointsMap","allpoints","shapeWithoutHoles","triangles","isClockWise","pts","b2p0","b2p1","b2p2","b3","b3p0","b3p1","b3p2","b3p3","Curve","getPointAt","getUtoTmapping","getPoints","divisions","getSpacedPoints","lengths","getLengths","cacheArcLengths","current","updateArcLengths","targetArcLength","arcLengths","comparison","lengthBefore","lengthAfter","segmentLength","segmentFraction","getTangent","pt1","pt2","getTangentAt","getPointFunc","CurvePath","curves","autoClose","curve","closePath","startPoint","endPoint","LineCurve","curveLengths","getCurveLengths","lens","cacheLengths","sums","createPointsGeometry","createSpacedPointsGeometry","generateShapes","createPaths","String","resolution","createPath","glyph","glyphs","cpx0","cpy0","cpx1","cpy1","cpx2","cpy2","laste","Path","outline","_cachedOutline","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","ha","shapes","toShapes","fromPoints","lastargs","aCPx","aCPy","QuadraticBezierCurve","aCP1x","aCP1y","aCP2x","aCP2y","CubicBezierCurve","splineThru","npts","SplineCurve","aRadius","aStartAngle","aEndAngle","aClockwise","absarc","absellipse","ellipse","xRadius","yRadius","aRotation","EllipseCurve","lastPoint","item","spts","spline","deltaAngle","tdivisions","isCCW","noHoles","extractSubpaths","inActions","subPaths","lastPath","toShapesNoHoles","inSubpaths","tmpPath","tmpShape","Shape","isPointInsidePolygon","inPt","inPolygon","polyLen","inside","edgeLowPt","edgeHighPt","edgeDx","edgeDy","perpEdge","solid","holesFirst","tmpPoints","betterShapeHoles","newShapes","newShapeHoles","mainIdx","ambiguous","toChange","sLen","sho","ho","hole_unassigned","s2Idx","froms","tos","tmpHoles","extrude","ExtrudeGeometry","makeGeometry","ShapeGeometry","getPointsHoles","holesPts","extractAllPoints","extractPoints","tangent","point0","point1","point2","point3","ArcCurve","LineCurve3","QuadraticBezierCurve3","CubicBezierCurve3","SplineCurve3","CatmullRomCurve3","CubicPoly","pz","c0","initNonuniformCatmullRom","x3","dt0","dt1","dt2","initCatmullRom","tension","calc","closed","ClosedSplineCurve3","BoxBufferGeometry","CubeGeometry","calculateVertexCount","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","vertexBufferOffset","uvBufferOffset","numberOfVertices","indexBufferOffset","vertexCount","CircleBufferGeometry","ii","segment","CylinderBufferGeometry","calculateIndexCount","generateTorso","tanTheta","indexRow","indexArray","i3","generateCap","centerIndexStart","centerIndexEnd","EdgesGeometry","thresholdAngle","sortFunction","thresholdDot","edge","vert1","vert2","face1","face2","addShapeList","addShape","scalePt2","getBevelVec","inPrev","inNext","v_trans_x","v_trans_y","shrink_by","v_prev_x","v_prev_y","v_next_x","v_next_y","v_prev_lensq","collinear0","v_prev_len","v_next_len","ptPrevShift_x","ptPrevShift_y","ptNextShift_x","ptNextShift_y","sf","v_trans_lensq","direction_eq","buildLidFaces","bevelEnabled","layer","vlen","flen","f3","steps","bevelSegments","buildSideFaces","layeroffset","sidewalls","ahole","slen1","slen2","f4","shapesOffset","uvgen","generateTopUV","wallContour","stepIndex","stepsLength","contourIndex1","contourIndex2","generateSideWallUV","extrudePts","splineTube","binormal","position2","bevelThickness","bevelSize","curveSegments","extrudePath","extrudeByPath","UVGenerator","WorldUVGenerator","frames","TubeGeometry","FrenetFrames","shapePoints","bs","vert","contourMovements","oneHoleMovements","holesMovements","verticesMovements","binormals","indexA","indexB","indexC","indexD","LatheBufferGeometry","base","inverseSegments","n1","n2","LatheGeometry","PlaneBufferGeometry","width_half","height_half","segment_width","segment_height","offset2","RingBufferGeometry","radiusStep","thetaSegmentLevel","SphereBufferGeometry","thetaEnd","verticesRow","v4","TextGeometry","font","TorusBufferGeometry","TorusKnotBufferGeometry","calculatePositionOnCurve","cu","su","quOverP","cs","P1","P2","heightScale","taper","NoTaper","ip","jp","uva","uvb","uvc","uvd","grid","numpoints","pos2","tangents","SinusoidalTaper","initialNormal3","smallest","MAX_VALUE","tz","mat","PolyhedronGeometry","prepare","that","azimuth","inclination","make","centroid","azi","correctUV","subdivide","cols","aj","bj","rows","ParametricGeometry","func","slices","stacks","sliceCount","WireframeGeometry","numEdges","ol","numTris","AxisHelper","ArrowHelper","lineGeometry","coneGeometry","headLength","headWidth","cone","setDirection","setColor","BoxHelper","BoundingBoxHelper","CameraHelper","addLine","addPoint","pointMap","hexFrustum","hexCone","hexUp","hexTarget","hexCross","setPoint","DirectionalLightHelper","lightPlane","targetLine","EdgesHelper","FaceNormalsHelper","nNormals","objGeometry","GridHelper","setColors","colorCenterLine","colorGrid","HemisphereLightHelper","sphereSize","lightSphere","PointLightHelper","SkeletonHelper","getBoneList","boneList","matrixWorldInv","boneMatrix","SpotLightHelper","vector2","coneLength","coneWidth","VertexNormalsHelper","objPos","objNorm","WireframeHelper","renderCallback","MorphBlendMesh","animationsMap","animationsList","numFrames","startFrame","endFrame","createAnimation","setAnimationWeight","lastFrame","currentFrame","directionBackwards","mirroredLoop","autoCreateAnimations","firstAnimation","frameRanges","morph","setAnimationDirectionForward","setAnimationDirectionBackward","setAnimationFPS","setAnimationDuration","setAnimationTime","getAnimationTime","getAnimationDuration","stopAnimation","keyframe","look-controls","wasd-controls","look-controls-enabled","wasd-controls-enabled","user-height","cursor-color","cursor-maxdistance","cursor-offset","cursor-opacity","cursor-scale","cursor-visible","cursor","fuse-timeout","open-ended","theta-length","theta-start","ground-color","meshMixin","segments-width","segments-height","unCamelCase","meshPrimitives","geometryName","geometryHyphened","nowOffset","measure","rStats","iterateKeys","importCSS","Graph","_dom","_defArg","_init","_elWidth","_elHeight","_ctx","_draw","alarm","_current","_max","_alarmCanvas","_dotCanvas","_def","_dotCtx","globalAlpha","_alarmCtx","draw","StackGraph","_num","th","_colours","PerfCounter","_average","average","_accumValue","_accumSamples","_accumStart","avgMs","_averageValue","_start","_time","_settings","userTimingAPI","_started","_end","_tick","_spanValueText","nodeValue","over","_graph","_frame","_total","_set","_spanId","_spanValue","textContent","_div","_perf","idArg","_perfCounters","fractions","_base","legend","graph","colours","_cssFont","_cssRStats","CSSPath","_css","uri","glStats","_h","_rS","_totalDrawArraysCalls","_totalDrawElementsCalls","_totalBindTexures","_totalUseProgramCalls","_totalFaces","_totalVertices","_totalPoints","_attach","WebGLRenderingContext","_values","allcalls","drawelements","drawarrays","_groups","_fractions","renderer.info.memory.geometries","renderer.info.memory.textures","renderer.info.programs","renderer.info.render.calls","renderer.info.render.faces","renderer.info.render.points","renderer.info.render.vertices","BrowserStats","_size","log1024","_usedJSHeapSize","usedJSHeapSize","_totalJSHeapSize","totalJSHeapSize","useColors","firebug","exception","table","$1","formatArgs","humanize","lastC","save","namespaces","removeItem","localstorage","chrome","formatters","weightSchedule","warpSchedule","loadedObject","skinnedMesh","animName","crossfade","fromAnimName","toAnimName","fromAction","toAction","applyWeight","getWeight","pauseAll","unPauseAll","stopAll","showModel","getForward","forward","getEntityCount","getEntriesByName","_scene","raw","getKeyValueChunks","Boolean","nextSplit","sep","hasUnclosedUrl","chunk","regexp","vertex_pattern","normal_pattern","uv_pattern","face_vertex","face_vertex_uv","face_vertex_uv_normal","face_vertex_normal","object_pattern","smoothing_pattern","material_library_pattern","material_use_pattern","_createParserState","materialLibraries","startObject","fromDeclaration","smooth","parseVertexIndex","parseNormalIndex","parseUVIndex","addVertex","addVertexLine","addNormal","addUV","addUVLine","ub","uc","ud","na","nb","nc","nd","vLen","ia","ib","ic","uvLen","nLen","addLineGeometry","vi","uvi","lineFirstChar","lineSecondChar","lineLength","trimLeft","lineParts","lineVertices","lineUVs","li","llen","isLine","materialLine","timeEnd","baseUrl","setMaterialOptions","materialOptions","delimiter_pattern","materialsInfo","ss","materialCreator","MaterialCreator","setManager","materialsArray","nameLookup","convert","converted","mn","covmat","lprop","normalizeRGB","ignoreZeroRGBs","materialName","getAsArray","createMaterial_","readyCallback","progressCallback","failCallback","implementation","createDocument","onreadystatechange","readyCallbackFunc","getResponseHeader","responseText","alert","callBack","COLLADA","DOMParser","parseFromString","parseAsset","setUpConversion","parseLib","_Image","effects","Effect","cameras","Controller","Animation","visualScenes","VisualScene","kinematicsModels","KinematicsModel","morphs","skins","visualScene","parseScene","nodes","createSceneGraph","colladaUnit","createAnimations","kinematicsModel","parseKinematicsModel","createKinematics","animData","kinematics","dae","setPreferredShading","preferredShading","childNodes","meter","colladaUp","classSpec","lib","elementsLength","daeElement","sceneElement","kinematicsModelElement","recurseHierarchy","getChildById","colladaId","sids","calcAnimationBounds","ID","sampler","createMorph","ctrl","morphCtrl","InstanceController","target_id","daeGeometry","setupSkeleton","world","localworld","channels","setupSkinningMatrices","found","joints","sid","inv","invBindMatrices","invBindMatrix","skinningMatrix","animatrix","weights","joint","flattenSkeleton","walk","parentid","skinToBindPose","skinController","skinned","applySkin","instanceCtrl","animationBounds","getChildBySid","bonelist","sortedbones","bindShapeMatrix","indicies","animationdata","rot","jointMap","_addToMap","jointIndex","parentVisualElement","parentVisualElementId","colladaNode","zeroPosition","getJointValue","jointData","setJointValue","limits","static","threejsNode","transform","elementsFloat32Arr","elementsRowMajor","visualTarget","visualTargetElement","morphController","inst_geom","InstanceGeometry","instance_material","second","double_sided_materials","first_material","instance_geometry","instance_materials","used_materials","used_materials_array","num_materials","effect_id","instance_effect","material3js","symbol","_copied_material","geom","geometry3js","daeMaterial","isLineStrip","instance_camera","cparams","cam","yfov","aspect_ratio","znear","zfar","instance_light","lparams","technique","falloff_angle","centerGeometry","getLibraryNode","attObj","getNamedItem","getChannelsForNode","bakeAnimations","member","fullSid","getTransformBySid","arrIndices","getConvertedIndex","getConvertedMember","findKey","Key","timeNdx","findTimeNdx","addTarget","hasTarget","interpolateKeys","retVal","ndx","prevKey","getPrevKeyWith","getNextKeyWith","prevTarget","getTarget","nextData","init_from","Morph","method","Skin","Transform","InstanceMaterial","Polygons","inputs","vcount","Polylist","LineStrips","Triangles","Accessor","Vertices","Input","semantic","Source","ColorOrTexture","texcoord","texOpts","Surface","Sampler2D","wrap_s","wrap_t","minfilter","magfilter","mipfilter","surface","InstanceEffect","Channel","dotSyntax","arrSyntax","Sampler","strideOut","InstanceCamera","InstanceLight","links","Joint","middlePosition","attachments","Attachment","_source","sources","_bools","_strings","_floats","_ints","_trimString","_attr_as_int","loadTextureImage","extractDoubleSided","upAxis","upConversion","fixCoords","getConvertedTranslation","getConvertedVec3","arr","getConvertedMat4","members","subdivideFaces","defaultEnvMap","parseInputs","read","parseJoints","parseWeights","numBones","vertex_weights","getChannelForTransform","transformSid","iNode","instance","vertexData","setVertices","handlePrimitive","calcNormals","idx32","numParams","pList","vcIndex","maxOffset","texture_sets","pCount","vs","ns","ts","accessor","NORMAL","TEXCOORD","COLOR","uvArr","clr","param","isTexture","opaque","rgba","offsetU","offsetV","repeatU","repeatV","wrapU","wrapV","parseTexture","bumpType","transparencyLevel","transparency","emission","bump","cot","samplerId","surfaceId","parseTechnique","parseProfileCOMMON","parseNewparam","_image","parseExtra","parseExtraTechnique","anim","opt_sid","nextTarget","parseOptics","perspective","xfov","orthographic","xmag","ymag","parseCommon","profile","axisElement","_axis","jointTypes","jointElement","selectColor","prevColor","disabled","curr","prev","coerce","formatter","logFn","skips","stack","short","long","plural","isIFrame","appendQueryParameter","getQueryParameter"],"mappings":"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","file":"bundle.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o dist/aframe.js\",\"dist:min\":\"npm run browserify -s -- --debug -p [minifyify --map aframe.min.js.map --output dist/aframe.min.js.map] -o dist/aframe.min.js\",\"dist:release\":\"npm run dist:release:min && npm run dist:release:max\",\"dist:release:max\":\"npm run browserify -s -- --debug | exorcist dist/aframe-v0.3.0.js.map > dist/aframe-v0.3.0.js\",\"dist:release:min\":\"npm run browserify -s -- --debug -p [minifyify --map aframe-v0.3.0.min.js.map --output dist/aframe-v0.3.0.min.js.map] -o dist/aframe-v0.3.0.min.js\",\"gh-pages\":\"npm run ghpages\",\"ghpages\":\"node ./scripts/gh-pages\",\"lint\":\"semistandard -v | snazzy\",\"precommit\":\"npm run lint\",\"preghpages\":\"npm run dist && rimraf gh-pages && mkdirp gh-pages && cp -r {.nojekyll,dist,lib,examples,index.html,style} gh-pages/. 2>/dev/null || : && git checkout dist/ && replace 'build/aframe.js' 'dist/aframe.min.js' gh-pages/ -r --silent\",\"release:bump\":\"npm run dist && git commit -am 'bump dist' && npm version patch --preminor\",\"release:push\":\"npm login && npm publish && git push --follow-tags\",\"start\":\"npm run dev\",\"test\":\"karma start ./tests/karma.conf.js\",\"test:firefox\":\"karma start ./tests/karma.conf.js --browsers Firefox\",\"test:chrome\":\"karma start ./tests/karma.conf.js --browsers Chrome\",\"test:ci\":\"TEST_ENV=ci karma start ./tests/karma.conf.js --single-run --browsers Firefox\",\"version\":\"npm run dist\"},\"repository\":\"aframevr/aframe\",\"license\":\"MIT\",\"dependencies\":{\"debug\":\"^2.2.0\",\"deep-assign\":\"^2.0.0\",\"document-register-element\":\"dmarcos/document-register-element#8ccc532b7\",\"promise-polyfill\":\"^3.1.0\",\"object-assign\":\"^4.0.1\",\"present\":\"0.0.6\",\"style-attr\":\"^1.0.2\",\"three\":\"^0.76.1\",\"tween.js\":\"^15.0.0\",\"webvr-polyfill\":\"0.9.15\"},\"devDependencies\":{\"browserify\":\"^13.1.0\",\"browserify-css\":\"^0.8.2\",\"browserify-derequire\":\"^0.9.4\",\"browserify-istanbul\":\"^2.0.0\",\"budo\":\"^8.1.0\",\"chai\":\"^3.5.0\",\"chai-shallow-deep-equal\":\"^1.3.0\",\"codecov\":\"^1.0.1\",\"exorcist\":\"^0.4.0\",\"gh-pages\":\"^0.6.0\",\"husky\":\"^0.10.1\",\"istanbul\":\"^0.4.4\",\"karma\":\"^1.2.0\",\"karma-browserify\":\"^5.1.0\",\"karma-chai-shallow-deep-equal\":\"0.0.4\",\"karma-chrome-launcher\":\"^1.0.1\",\"karma-coverage\":\"^1.1.1\",\"karma-env-preprocessor\":\"^0.1.1\",\"karma-firefox-launcher\":\"^1.0.0\",\"karma-mocha\":\"^1.1.1\",\"karma-mocha-reporter\":\"^2.1.0\",\"karma-sinon-chai\":\"^1.2.3\",\"lolex\":\"^1.5.1\",\"minifyify\":\"^7.3.3\",\"mkdirp\":\"0.5.1\",\"mocha\":\"^3.0.2\",\"mozilla-download\":\"^1.0.5\",\"open\":\"0.0.5\",\"replace\":\"^0.3.0\",\"rimraf\":\"2.5.0\",\"semistandard\":\"^7.0.2\",\"sinon\":\"^1.17.5\",\"sinon-chai\":\"^2.8.0\",\"snazzy\":\"^3.0.0\",\"uglifyjs\":\"^2.4.10\"},\"link\":true,\"browserify\":{\"transform\":[\"browserify-css\"]},\"semistandard\":{\"ignore\":[\"build/**\",\"dist/**\",\"examples/**/shaders/*.js\",\"**/vendor/**\"]},\"keywords\":[\"3d\",\"aframe\",\"cardboard\",\"components\",\"oculus\",\"three\",\"three.js\",\"rift\",\"vive\",\"vr\",\"web-components\",\"webvr\"],\"browserify-css\":{\"minify\":true},\"engines\":{\"node\":\">= 0.12.7\",\"npm\":\"^2.12.1\"}}","var css = \".a-html{bottom:0;left:0;position:fixed;right:0;top:0}.a-body{height:100%;margin:0;overflow:hidden;padding:0;width:100%}:-webkit-full-screen{background-color:transparent}.a-hidden{display:none!important}.a-canvas{height:100%;left:0;position:absolute;top:0;width:100%}.a-canvas.a-grab-cursor:hover{cursor:grab;cursor:-moz-grabbing;cursor:-webkit-grab}.a-canvas.a-grab-cursor:active,.a-grabbing{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}// Class is removed when doing . .a-canvas.fullscreen{width:100%!important;height:100%!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:999999!important;position:fixed!important}a-scene{display:block;position:relative;height:100%;width:100%}a-assets,a-scene audio,a-scene img,a-scene video{display:none}.a-enter-vr-modal,.a-orientation-modal{font-family:Consolas,Andale Mono,Courier New,monospace}.a-enter-vr-modal a{border-bottom:1px solid #fff;padding:2px 0;text-decoration:none;transition:.1s color ease-in}.a-enter-vr-modal a:hover{background-color:#fff;color:#111;padding:2px 4px;position:relative;left:-4px}.a-enter-vr{font-family:sans-serif,monospace;font-size:13px;width:100%;font-weight:200;line-height:16px;height:10%;position:absolute;right:20px;bottom:20px}.a-enter-vr.embedded{right:5px;bottom:5px}.a-enter-vr-button,.a-enter-vr-modal,.a-enter-vr-modal a{color:#fff}.a-enter-vr-button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20245.82%20141.73%22%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill%3A%23fff%3Bfill-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Ctitle%3Emask%3C%2Ftitle%3E%3Cpath%20class%3D%22a%22%20d%3D%22M175.56%2C111.37c-22.52%2C0-40.77-18.84-40.77-42.07S153%2C27.24%2C175.56%2C27.24s40.77%2C18.84%2C40.77%2C42.07S198.08%2C111.37%2C175.56%2C111.37ZM26.84%2C69.31c0-23.23%2C18.25-42.07%2C40.77-42.07s40.77%2C18.84%2C40.77%2C42.07-18.26%2C42.07-40.77%2C42.07S26.84%2C92.54%2C26.84%2C69.31ZM27.27%2C0C11.54%2C0%2C0%2C12.34%2C0%2C28.58V110.9c0%2C16.24%2C11.54%2C30.83%2C27.27%2C30.83H99.57c2.17%2C0%2C4.19-1.83%2C5.4-3.7L116.47%2C118a8%2C8%2C0%2C0%2C1%2C12.52-.18l11.51%2C20.34c1.2%2C1.86%2C3.22%2C3.61%2C5.39%2C3.61h72.29c15.74%2C0%2C27.63-14.6%2C27.63-30.83V28.58C245.82%2C12.34%2C233.93%2C0%2C218.19%2C0H27.27Z%22%2F%3E%3C%2Fsvg%3E) 50% 50%/70% 70% no-repeat rgba(0,0,0,.35);border:0;bottom:0;cursor:pointer;min-width:50px;min-height:30px;padding-right:5%;padding-top:4%;position:absolute;right:0;transition:background-color .05s ease;-webkit-transition:background-color .05s ease;z-index:9999}.a-enter-vr-button:active,.a-enter-vr-button:hover{background-color:#666}[data-a-enter-vr-no-webvr] .a-enter-vr-button{border-color:#666;opacity:.65}[data-a-enter-vr-no-webvr] .a-enter-vr-button:active,[data-a-enter-vr-no-webvr] .a-enter-vr-button:hover{background-color:rgba(0,0,0,.35);cursor:not-allowed}.a-enter-vr-modal{background-color:#666;border-radius:0;display:none;min-height:32px;margin-right:70px;padding:9px;width:280px;right:2%;position:absolute}.a-enter-vr-modal:after{border-bottom:10px solid transparent;border-left:10px solid #666;border-top:10px solid transparent;display:inline-block;content:'';position:absolute;right:-5px;top:5px;width:0;height:0}.a-enter-vr-modal a,.a-enter-vr-modal p{display:inline}.a-enter-vr-modal p{margin:0}.a-enter-vr-modal p:after{content:' '}[data-a-enter-vr-no-headset].a-enter-vr:hover .a-enter-vr-modal,[data-a-enter-vr-no-webvr].a-enter-vr:hover .a-enter-vr-modal{display:block}.a-orientation-modal{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2090%2090%22%20enable-background%3D%22new%200%200%2090%2090%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%220%2C0%200%2C0%200%2C0%20%22%3E%3C/polygon%3E%3Cg%3E%3Cpath%20d%3D%22M71.545%2C48.145h-31.98V20.743c0-2.627-2.138-4.765-4.765-4.765H18.456c-2.628%2C0-4.767%2C2.138-4.767%2C4.765v42.789%20%20%20c0%2C2.628%2C2.138%2C4.766%2C4.767%2C4.766h5.535v0.959c0%2C2.628%2C2.138%2C4.765%2C4.766%2C4.765h42.788c2.628%2C0%2C4.766-2.137%2C4.766-4.765V52.914%20%20%20C76.311%2C50.284%2C74.173%2C48.145%2C71.545%2C48.145z%20M18.455%2C16.935h16.344c2.1%2C0%2C3.808%2C1.708%2C3.808%2C3.808v27.401H37.25V22.636%20%20%20c0-0.264-0.215-0.478-0.479-0.478H16.482c-0.264%2C0-0.479%2C0.214-0.479%2C0.478v36.585c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h7.507v7.644%20%20%20h-5.534c-2.101%2C0-3.81-1.709-3.81-3.81V20.743C14.645%2C18.643%2C16.354%2C16.935%2C18.455%2C16.935z%20M16.96%2C23.116h19.331v25.031h-7.535%20%20%20c-2.628%2C0-4.766%2C2.139-4.766%2C4.768v5.828h-7.03V23.116z%20M71.545%2C73.064H28.757c-2.101%2C0-3.81-1.708-3.81-3.808V52.914%20%20%20c0-2.102%2C1.709-3.812%2C3.81-3.812h42.788c2.1%2C0%2C3.809%2C1.71%2C3.809%2C3.812v16.343C75.354%2C71.356%2C73.645%2C73.064%2C71.545%2C73.064z%22%3E%3C/path%3E%3Cpath%20d%3D%22M28.919%2C58.424c-1.466%2C0-2.659%2C1.193-2.659%2C2.66c0%2C1.466%2C1.193%2C2.658%2C2.659%2C2.658c1.468%2C0%2C2.662-1.192%2C2.662-2.658%20%20%20C31.581%2C59.617%2C30.387%2C58.424%2C28.919%2C58.424z%20M28.919%2C62.786c-0.939%2C0-1.703-0.764-1.703-1.702c0-0.939%2C0.764-1.704%2C1.703-1.704%20%20%20c0.94%2C0%2C1.705%2C0.765%2C1.705%2C1.704C30.623%2C62.022%2C29.858%2C62.786%2C28.919%2C62.786z%22%3E%3C/path%3E%3Cpath%20d%3D%22M69.654%2C50.461H33.069c-0.264%2C0-0.479%2C0.215-0.479%2C0.479v20.288c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h36.585%20%20%20c0.263%2C0%2C0.477-0.214%2C0.477-0.478V50.939C70.131%2C50.676%2C69.917%2C50.461%2C69.654%2C50.461z%20M69.174%2C51.417V70.75H33.548V51.417H69.174z%22%3E%3C/path%3E%3Cpath%20d%3D%22M45.201%2C30.296c6.651%2C0%2C12.233%2C5.351%2C12.551%2C11.977l-3.033-2.638c-0.193-0.165-0.507-0.142-0.675%2C0.048%20%20%20c-0.174%2C0.198-0.153%2C0.501%2C0.045%2C0.676l3.883%2C3.375c0.09%2C0.075%2C0.198%2C0.115%2C0.312%2C0.115c0.141%2C0%2C0.273-0.061%2C0.362-0.166%20%20%20l3.371-3.877c0.173-0.2%2C0.151-0.502-0.047-0.675c-0.194-0.166-0.508-0.144-0.676%2C0.048l-2.592%2C2.979%20%20%20c-0.18-3.417-1.629-6.605-4.099-9.001c-2.538-2.461-5.877-3.817-9.404-3.817c-0.264%2C0-0.479%2C0.215-0.479%2C0.479%20%20%20C44.72%2C30.083%2C44.936%2C30.296%2C45.201%2C30.296z%22%3E%3C/path%3E%3C/g%3E%3C/svg%3E) center/50% 50% no-repeat rgba(244,244,244,1);bottom:0;font-size:14px;font-weight:600;left:0;line-height:20px;right:0;position:fixed;top:0;z-index:9999999}.a-orientation-modal:after{color:#666;content:\\\"Insert phone into Cardboard holder.\\\";display:block;position:absolute;text-align:center;top:70%;transform:translateY(-70%);width:100%}.a-orientation-modal button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20100%20100%22%20enable-background%3D%22new%200%200%20100%20100%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23000000%22%20d%3D%22M55.209%2C50l17.803-17.803c1.416-1.416%2C1.416-3.713%2C0-5.129c-1.416-1.417-3.713-1.417-5.129%2C0L50.08%2C44.872%20%20L32.278%2C27.069c-1.416-1.417-3.714-1.417-5.129%2C0c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129L44.951%2C50L27.149%2C67.803%20%20c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129c0.708%2C0.708%2C1.636%2C1.062%2C2.564%2C1.062c0.928%2C0%2C1.856-0.354%2C2.564-1.062L50.08%2C55.13l17.803%2C17.802%20%20c0.708%2C0.708%2C1.637%2C1.062%2C2.564%2C1.062s1.856-0.354%2C2.564-1.062c1.416-1.416%2C1.416-3.713%2C0-5.129L55.209%2C50z%22%3E%3C/path%3E%3C/svg%3E) no-repeat;border:none;height:50px;text-indent:-9999px;width:50px}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"src/style/aframe.css\"})); module.exports = css;","var css = \".rs-base{background-color:#333;border-radius:0;font:10px monospace;left:5px;line-height:1em;opacity:.85;overflow:hidden;padding:10px;position:fixed;top:5px;width:300px;z-index:10000}.rs-base div.hidden{display:none}.rs-base h1{color:#fff;cursor:pointer;font-size:1.4em;font-weight:300;margin:0 0 5px;padding:0}.rs-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:5px}.rs-group:last-child{margin-bottom:0}.rs-counter-base{align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;height:10px;-webkit-justify-content:space-between;justify-content:space-between;margin:2px 0}.rs-counter-id{font-weight:300;-webkit-box-ordinal-group:0;-webkit-order:0;order:0;width:54px}.rs-counter-value{font-weight:300;-webkit-box-ordinal-group:1;-webkit-order:1;order:1;text-align:right;width:35px}.rs-canvas{-webkit-box-ordinal-group:2;-webkit-order:2;order:2}@media (min-width:480px){.rs-base{left:20px;top:20px}}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"src/style/rStats.css\"})); module.exports = css;","// Polyfill `Promise`.\nwindow.Promise = window.Promise || require('promise-polyfill');\n\n// Check before the polyfill runs\nwindow.hasNativeWebVRImplementation = !!navigator.getVRDisplays || !!navigator.getVRDevices;\n\nwindow.WebVRConfig = window.WebVRConfig || {\n BUFFER_SCALE: 1,\n CARDBOARD_UI_DISABLED: true,\n ROTATE_INSTRUCTIONS_DISABLED: true,\n TOUCH_PANNER_DISABLED: true,\n MOUSE_KEYBOARD_CONTROLS_DISABLED: true\n};\n\n// Workaround for iOS Safari canvas sizing issues in stereo (webvr-polyfill/issues/102).\n// Should be fixed in iOS 10.\nif (/(iphone|ipod|ipad).*os.*(7|8|9)/i.test(navigator.userAgent)) {\n window.WebVRConfig.BUFFER_SCALE = 1 / window.devicePixelRatio;\n}\n\n// WebVR polyfill\nrequire('webvr-polyfill');\n\nrequire('present'); // Polyfill `performance.now()`.\n// CSS.\nrequire('./style/aframe.css');\nrequire('./style/rStats.css');\n\n// Required before `AEntity` so that all components are registered.\nvar AScene = require('./core/scene/a-scene');\nvar components = require('./core/component').components;\nvar registerComponent = require('./core/component').registerComponent;\nvar registerGeometry = require('./core/geometry').registerGeometry;\nvar registerPrimitive = require('./extras/primitives/primitives').registerPrimitive;\nvar registerShader = require('./core/shader').registerShader;\nvar registerSystem = require('./core/system').registerSystem;\nvar shaders = require('./core/shader').shaders;\nvar systems = require('./core/system').systems;\n// Exports THREE to window so three.js can be used without alteration.\nvar THREE = window.THREE = require('./lib/three');\nvar TWEEN = window.TWEEN = require('tween.js');\n\nvar pkg = require('../package');\nvar utils = require('./utils/');\n\nrequire('./components/index'); // Register standard components.\nrequire('./geometries/index'); // Register standard geometries.\nrequire('./shaders/index'); // Register standard shaders.\nrequire('./systems/index'); // Register standard systems.\nvar ANode = require('./core/a-node');\nvar AEntity = require('./core/a-entity'); // Depends on ANode and core components.\n\nrequire('./core/a-animation');\nrequire('./core/a-assets');\nrequire('./core/a-cubemap');\nrequire('./core/a-mixin');\n\n// Extras.\nrequire('./extras/components/');\nrequire('./extras/declarative-events/');\nrequire('./extras/primitives/');\n\nconsole.log('A-Frame Version:', pkg.version);\nconsole.log('three Version:', pkg.dependencies['three']);\nconsole.log('WebVR Polyfill Version:', pkg.dependencies['webvr-polyfill']);\n\nmodule.exports = window.AFRAME = {\n AEntity: AEntity,\n ANode: ANode,\n AScene: AScene,\n components: components,\n geometries: require('./core/geometry').geometries,\n registerComponent: registerComponent,\n registerElement: require('./core/a-register-element').registerElement,\n registerGeometry: registerGeometry,\n registerPrimitive: registerPrimitive,\n registerShader: registerShader,\n registerSystem: registerSystem,\n primitives: {\n getMeshMixin: require('./extras/primitives/getMeshMixin'),\n primitives: require('./extras/primitives/primitives').primitives\n },\n schema: require('./core/schema'),\n shaders: shaders,\n systems: systems,\n THREE: THREE,\n TWEEN: TWEEN,\n utils: utils,\n version: pkg.version\n};\n","(function(root) {\n\n\t// Store setTimeout reference so promise-polyfill will be unaffected by\n\t// other code modifying setTimeout (like sinon.useFakeTimers())\n\tvar setTimeoutFunc = setTimeout;\n\n\t// Use polyfill for setImmediate for performance gains\n\tvar asap = (typeof setImmediate === 'function' && setImmediate) ||\n\t\tfunction(fn) { setTimeoutFunc(fn, 1); };\n\n\t// Polyfill for Function.prototype.bind\n\tfunction bind(fn, thisArg) {\n\t\treturn function() {\n\t\t\tfn.apply(thisArg, arguments);\n\t\t}\n\t}\n\n\tvar isArray = Array.isArray || function(value) { return Object.prototype.toString.call(value) === \"[object Array]\" };\n\n\tfunction Promise(fn) {\n\t\tif (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n\t\tif (typeof fn !== 'function') throw new TypeError('not a function');\n\t\tthis._state = null;\n\t\tthis._value = null;\n\t\tthis._deferreds = []\n\n\t\tdoResolve(fn, bind(resolve, this), bind(reject, this))\n\t}\n\n\tfunction handle(deferred) {\n\t\tvar me = this;\n\t\tif (this._state === null) {\n\t\t\tthis._deferreds.push(deferred);\n\t\t\treturn\n\t\t}\n\t\tasap(function() {\n\t\t\tvar cb = me._state ? deferred.onFulfilled : deferred.onRejected\n\t\t\tif (cb === null) {\n\t\t\t\t(me._state ? deferred.resolve : deferred.reject)(me._value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ret;\n\t\t\ttry {\n\t\t\t\tret = cb(me._value);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdeferred.resolve(ret);\n\t\t})\n\t}\n\n\tfunction resolve(newValue) {\n\t\ttry { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n\t\t\tif (newValue === this) throw new TypeError('A promise cannot be resolved with itself.');\n\t\t\tif (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n\t\t\t\tvar then = newValue.then;\n\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\tdoResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._state = true;\n\t\t\tthis._value = newValue;\n\t\t\tfinale.call(this);\n\t\t} catch (e) { reject.call(this, e); }\n\t}\n\n\tfunction reject(newValue) {\n\t\tthis._state = false;\n\t\tthis._value = newValue;\n\t\tfinale.call(this);\n\t}\n\n\tfunction finale() {\n\t\tfor (var i = 0, len = this._deferreds.length; i < len; i++) {\n\t\t\thandle.call(this, this._deferreds[i]);\n\t\t}\n\t\tthis._deferreds = null;\n\t}\n\n\tfunction Handler(onFulfilled, onRejected, resolve, reject){\n\t\tthis.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n\t\tthis.onRejected = typeof onRejected === 'function' ? onRejected : null;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t}\n\n\t/**\n\t * Take a potentially misbehaving resolver function and make sure\n\t * onFulfilled and onRejected are only called once.\n\t *\n\t * Makes no guarantees about asynchrony.\n\t */\n\tfunction doResolve(fn, onFulfilled, onRejected) {\n\t\tvar done = false;\n\t\ttry {\n\t\t\tfn(function (value) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonFulfilled(value);\n\t\t\t}, function (reason) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonRejected(reason);\n\t\t\t})\n\t\t} catch (ex) {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\tonRejected(ex);\n\t\t}\n\t}\n\n\tPromise.prototype['catch'] = function (onRejected) {\n\t\treturn this.then(null, onRejected);\n\t};\n\n\tPromise.prototype.then = function(onFulfilled, onRejected) {\n\t\tvar me = this;\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\thandle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n\t\t})\n\t};\n\n\tPromise.all = function () {\n\t\tvar args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tif (args.length === 0) return resolve([]);\n\t\t\tvar remaining = args.length;\n\t\t\tfunction res(i, val) {\n\t\t\t\ttry {\n\t\t\t\t\tif (val && (typeof val === 'object' || typeof val === 'function')) {\n\t\t\t\t\t\tvar then = val.then;\n\t\t\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\t\t\tthen.call(val, function (val) { res(i, val) }, reject);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\targs[i] = val;\n\t\t\t\t\tif (--remaining === 0) {\n\t\t\t\t\t\tresolve(args);\n\t\t\t\t\t}\n\t\t\t\t} catch (ex) {\n\t\t\t\t\treject(ex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i = 0; i < args.length; i++) {\n\t\t\t\tres(i, args[i]);\n\t\t\t}\n\t\t});\n\t};\n\n\tPromise.resolve = function (value) {\n\t\tif (value && typeof value === 'object' && value.constructor === Promise) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn new Promise(function (resolve) {\n\t\t\tresolve(value);\n\t\t});\n\t};\n\n\tPromise.reject = function (value) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(value);\n\t\t});\n\t};\n\n\tPromise.race = function (values) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tfor(var i = 0, len = values.length; i < len; i++) {\n\t\t\t\tvalues[i].then(resolve, reject);\n\t\t\t}\n\t\t});\n\t};\n\n\t/**\n\t * Set the immediate function to execute callbacks\n\t * @param fn {function} Function to execute\n\t * @private\n\t */\n\tPromise._setImmediateFn = function _setImmediateFn(fn) {\n\t\tasap = fn;\n\t};\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = Promise;\n\t} else if (!root.Promise) {\n\t\troot.Promise = Promise;\n\t}\n\n})(this);\n","var performance = global.performance || {};\n\nvar present = (function () {\n var names = ['now', 'webkitNow', 'msNow', 'mozNow', 'oNow'];\n while (names.length) {\n var name = names.shift();\n if (name in performance) {\n return performance[name].bind(performance);\n }\n }\n\n var dateNow = Date.now || function () { return new Date().getTime(); };\n var navigationStart = (performance.timing || {}).navigationStart || dateNow();\n return function () {\n return dateNow() - navigationStart;\n };\n}());\n\npresent.performanceNow = performance.now;\npresent.noConflict = function () {\n performance.now = present.performanceNow;\n};\npresent.conflict = function () {\n performance.now = present;\n};\npresent.conflict();\n\nmodule.exports = present;\n","/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/sole/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/sole/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\n\n// performance.now polyfill\n( function ( root ) {\n\n\tif ( 'performance' in root === false ) {\n\t\troot.performance = {};\n\t}\n\n\t// IE 8\n\tDate.now = ( Date.now || function () {\n\t\treturn new Date().getTime();\n\t} );\n\n\tif ( 'now' in root.performance === false ) {\n\t\tvar offset = root.performance.timing && root.performance.timing.navigationStart ? performance.timing.navigationStart\n\t\t : Date.now();\n\n\t\troot.performance.now = function () {\n\t\t\treturn Date.now() - offset;\n\t\t};\n\t}\n\n} )( this );\n\nvar TWEEN = TWEEN || ( function () {\n\n\tvar _tweens = [];\n\n\treturn {\n\n\t\tREVISION: '14',\n\n\t\tgetAll: function () {\n\n\t\t\treturn _tweens;\n\n\t\t},\n\n\t\tremoveAll: function () {\n\n\t\t\t_tweens = [];\n\n\t\t},\n\n\t\tadd: function ( tween ) {\n\n\t\t\t_tweens.push( tween );\n\n\t\t},\n\n\t\tremove: function ( tween ) {\n\n\t\t\tvar i = _tweens.indexOf( tween );\n\n\t\t\tif ( i !== -1 ) {\n\n\t\t\t\t_tweens.splice( i, 1 );\n\n\t\t\t}\n\n\t\t},\n\n\t\tupdate: function ( time ) {\n\n\t\t\tif ( _tweens.length === 0 ) return false;\n\n\t\t\tvar i = 0;\n\n\t\t\ttime = time !== undefined ? time : window.performance.now();\n\n\t\t\twhile ( i < _tweens.length ) {\n\n\t\t\t\tif ( _tweens[ i ].update( time ) ) {\n\n\t\t\t\t\ti++;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_tweens.splice( i, 1 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\t};\n\n} )();\n\nTWEEN.Tween = function ( object ) {\n\n\tvar _object = object;\n\tvar _valuesStart = {};\n\tvar _valuesEnd = {};\n\tvar _valuesStartRepeat = {};\n\tvar _duration = 1000;\n\tvar _repeat = 0;\n\tvar _yoyo = false;\n\tvar _isPlaying = false;\n\tvar _reversed = false;\n\tvar _delayTime = 0;\n\tvar _startTime = null;\n\tvar _easingFunction = TWEEN.Easing.Linear.None;\n\tvar _interpolationFunction = TWEEN.Interpolation.Linear;\n\tvar _chainedTweens = [];\n\tvar _onStartCallback = null;\n\tvar _onStartCallbackFired = false;\n\tvar _onUpdateCallback = null;\n\tvar _onCompleteCallback = null;\n\tvar _onStopCallback = null;\n\n\t// Set all starting values present on the target object\n\tfor ( var field in object ) {\n\n\t\t_valuesStart[ field ] = parseFloat(object[field], 10);\n\n\t}\n\n\tthis.to = function ( properties, duration ) {\n\n\t\tif ( duration !== undefined ) {\n\n\t\t\t_duration = duration;\n\n\t\t}\n\n\t\t_valuesEnd = properties;\n\n\t\treturn this;\n\n\t};\n\n\tthis.start = function ( time ) {\n\n\t\tTWEEN.add( this );\n\n\t\t_isPlaying = true;\n\n\t\t_onStartCallbackFired = false;\n\n\t\t_startTime = time !== undefined ? time : window.performance.now();\n\t\t_startTime += _delayTime;\n\n\t\tfor ( var property in _valuesEnd ) {\n\n\t\t\t// check if an Array was provided as property value\n\t\t\tif ( _valuesEnd[ property ] instanceof Array ) {\n\n\t\t\t\tif ( _valuesEnd[ property ].length === 0 ) {\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\t// create a local copy of the Array with the start value at the front\n\t\t\t\t_valuesEnd[ property ] = [ _object[ property ] ].concat( _valuesEnd[ property ] );\n\n\t\t\t}\n\n\t\t\t_valuesStart[ property ] = _object[ property ];\n\n\t\t\tif( ( _valuesStart[ property ] instanceof Array ) === false ) {\n\t\t\t\t_valuesStart[ property ] *= 1.0; // Ensures we're using numbers, not strings\n\t\t\t}\n\n\t\t\t_valuesStartRepeat[ property ] = _valuesStart[ property ] || 0;\n\n\t\t}\n\n\t\treturn this;\n\n\t};\n\n\tthis.stop = function () {\n\n\t\tif ( !_isPlaying ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tTWEEN.remove( this );\n\t\t_isPlaying = false;\n\n\t\tif ( _onStopCallback !== null ) {\n\n\t\t\t_onStopCallback.call( _object );\n\n\t\t}\n\n\t\tthis.stopChainedTweens();\n\t\treturn this;\n\n\t};\n\n\tthis.stopChainedTweens = function () {\n\n\t\tfor ( var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++ ) {\n\n\t\t\t_chainedTweens[ i ].stop();\n\n\t\t}\n\n\t};\n\n\tthis.delay = function ( amount ) {\n\n\t\t_delayTime = amount;\n\t\treturn this;\n\n\t};\n\n\tthis.repeat = function ( times ) {\n\n\t\t_repeat = times;\n\t\treturn this;\n\n\t};\n\n\tthis.yoyo = function( yoyo ) {\n\n\t\t_yoyo = yoyo;\n\t\treturn this;\n\n\t};\n\n\n\tthis.easing = function ( easing ) {\n\n\t\t_easingFunction = easing;\n\t\treturn this;\n\n\t};\n\n\tthis.interpolation = function ( interpolation ) {\n\n\t\t_interpolationFunction = interpolation;\n\t\treturn this;\n\n\t};\n\n\tthis.chain = function () {\n\n\t\t_chainedTweens = arguments;\n\t\treturn this;\n\n\t};\n\n\tthis.onStart = function ( callback ) {\n\n\t\t_onStartCallback = callback;\n\t\treturn this;\n\n\t};\n\n\tthis.onUpdate = function ( callback ) {\n\n\t\t_onUpdateCallback = callback;\n\t\treturn this;\n\n\t};\n\n\tthis.onComplete = function ( callback ) {\n\n\t\t_onCompleteCallback = callback;\n\t\treturn this;\n\n\t};\n\n\tthis.onStop = function ( callback ) {\n\n\t\t_onStopCallback = callback;\n\t\treturn this;\n\n\t};\n\n\tthis.update = function ( time ) {\n\n\t\tvar property;\n\n\t\tif ( time < _startTime ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tif ( _onStartCallbackFired === false ) {\n\n\t\t\tif ( _onStartCallback !== null ) {\n\n\t\t\t\t_onStartCallback.call( _object );\n\n\t\t\t}\n\n\t\t\t_onStartCallbackFired = true;\n\n\t\t}\n\n\t\tvar elapsed = ( time - _startTime ) / _duration;\n\t\telapsed = elapsed > 1 ? 1 : elapsed;\n\n\t\tvar value = _easingFunction( elapsed );\n\n\t\tfor ( property in _valuesEnd ) {\n\n\t\t\tvar start = _valuesStart[ property ] || 0;\n\t\t\tvar end = _valuesEnd[ property ];\n\n\t\t\tif ( end instanceof Array ) {\n\n\t\t\t\t_object[ property ] = _interpolationFunction( end, value );\n\n\t\t\t} else {\n\n\t\t\t\t// Parses relative end values with start as base (e.g.: +10, -3)\n\t\t\t\tif ( typeof(end) === \"string\" ) {\n\t\t\t\t\tend = start + parseFloat(end, 10);\n\t\t\t\t}\n\n\t\t\t\t// protect against non numeric properties.\n\t\t\t\tif ( typeof(end) === \"number\" ) {\n\t\t\t\t\t_object[ property ] = start + ( end - start ) * value;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( _onUpdateCallback !== null ) {\n\n\t\t\t_onUpdateCallback.call( _object, value );\n\n\t\t}\n\n\t\tif ( elapsed == 1 ) {\n\n\t\t\tif ( _repeat > 0 ) {\n\n\t\t\t\tif( isFinite( _repeat ) ) {\n\t\t\t\t\t_repeat--;\n\t\t\t\t}\n\n\t\t\t\t// reassign starting values, restart by making startTime = now\n\t\t\t\tfor( property in _valuesStartRepeat ) {\n\n\t\t\t\t\tif ( typeof( _valuesEnd[ property ] ) === \"string\" ) {\n\t\t\t\t\t\t_valuesStartRepeat[ property ] = _valuesStartRepeat[ property ] + parseFloat(_valuesEnd[ property ], 10);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_yoyo) {\n\t\t\t\t\t\tvar tmp = _valuesStartRepeat[ property ];\n\t\t\t\t\t\t_valuesStartRepeat[ property ] = _valuesEnd[ property ];\n\t\t\t\t\t\t_valuesEnd[ property ] = tmp;\n\t\t\t\t\t}\n\n\t\t\t\t\t_valuesStart[ property ] = _valuesStartRepeat[ property ];\n\n\t\t\t\t}\n\n\t\t\t\tif (_yoyo) {\n\t\t\t\t\t_reversed = !_reversed;\n\t\t\t\t}\n\n\t\t\t\t_startTime = time + _delayTime;\n\n\t\t\t\treturn true;\n\n\t\t\t} else {\n\n\t\t\t\tif ( _onCompleteCallback !== null ) {\n\n\t\t\t\t\t_onCompleteCallback.call( _object );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++ ) {\n\n\t\t\t\t\t_chainedTweens[ i ].start( time );\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t};\n\n};\n\n\nTWEEN.Easing = {\n\n\tLinear: {\n\n\t\tNone: function ( k ) {\n\n\t\t\treturn k;\n\n\t\t}\n\n\t},\n\n\tQuadratic: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn k * k;\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\treturn k * ( 2 - k );\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tif ( ( k *= 2 ) < 1 ) return 0.5 * k * k;\n\t\t\treturn - 0.5 * ( --k * ( k - 2 ) - 1 );\n\n\t\t}\n\n\t},\n\n\tCubic: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn k * k * k;\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\treturn --k * k * k + 1;\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tif ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k;\n\t\t\treturn 0.5 * ( ( k -= 2 ) * k * k + 2 );\n\n\t\t}\n\n\t},\n\n\tQuartic: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn k * k * k * k;\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\treturn 1 - ( --k * k * k * k );\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tif ( ( k *= 2 ) < 1) return 0.5 * k * k * k * k;\n\t\t\treturn - 0.5 * ( ( k -= 2 ) * k * k * k - 2 );\n\n\t\t}\n\n\t},\n\n\tQuintic: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn k * k * k * k * k;\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\treturn --k * k * k * k * k + 1;\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tif ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k * k * k;\n\t\t\treturn 0.5 * ( ( k -= 2 ) * k * k * k * k + 2 );\n\n\t\t}\n\n\t},\n\n\tSinusoidal: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn 1 - Math.cos( k * Math.PI / 2 );\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\treturn Math.sin( k * Math.PI / 2 );\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\treturn 0.5 * ( 1 - Math.cos( Math.PI * k ) );\n\n\t\t}\n\n\t},\n\n\tExponential: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn k === 0 ? 0 : Math.pow( 1024, k - 1 );\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\treturn k === 1 ? 1 : 1 - Math.pow( 2, - 10 * k );\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tif ( k === 0 ) return 0;\n\t\t\tif ( k === 1 ) return 1;\n\t\t\tif ( ( k *= 2 ) < 1 ) return 0.5 * Math.pow( 1024, k - 1 );\n\t\t\treturn 0.5 * ( - Math.pow( 2, - 10 * ( k - 1 ) ) + 2 );\n\n\t\t}\n\n\t},\n\n\tCircular: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn 1 - Math.sqrt( 1 - k * k );\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\treturn Math.sqrt( 1 - ( --k * k ) );\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tif ( ( k *= 2 ) < 1) return - 0.5 * ( Math.sqrt( 1 - k * k) - 1);\n\t\t\treturn 0.5 * ( Math.sqrt( 1 - ( k -= 2) * k) + 1);\n\n\t\t}\n\n\t},\n\n\tElastic: {\n\n\t\tIn: function ( k ) {\n\n\t\t\tvar s, a = 0.1, p = 0.4;\n\t\t\tif ( k === 0 ) return 0;\n\t\t\tif ( k === 1 ) return 1;\n\t\t\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\t\t\telse s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n\t\t\treturn - ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\tvar s, a = 0.1, p = 0.4;\n\t\t\tif ( k === 0 ) return 0;\n\t\t\tif ( k === 1 ) return 1;\n\t\t\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\t\t\telse s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n\t\t\treturn ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tvar s, a = 0.1, p = 0.4;\n\t\t\tif ( k === 0 ) return 0;\n\t\t\tif ( k === 1 ) return 1;\n\t\t\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\t\t\telse s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );\n\t\t\tif ( ( k *= 2 ) < 1 ) return - 0.5 * ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );\n\t\t\treturn a * Math.pow( 2, -10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) * 0.5 + 1;\n\n\t\t}\n\n\t},\n\n\tBack: {\n\n\t\tIn: function ( k ) {\n\n\t\t\tvar s = 1.70158;\n\t\t\treturn k * k * ( ( s + 1 ) * k - s );\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\tvar s = 1.70158;\n\t\t\treturn --k * k * ( ( s + 1 ) * k + s ) + 1;\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tvar s = 1.70158 * 1.525;\n\t\t\tif ( ( k *= 2 ) < 1 ) return 0.5 * ( k * k * ( ( s + 1 ) * k - s ) );\n\t\t\treturn 0.5 * ( ( k -= 2 ) * k * ( ( s + 1 ) * k + s ) + 2 );\n\n\t\t}\n\n\t},\n\n\tBounce: {\n\n\t\tIn: function ( k ) {\n\n\t\t\treturn 1 - TWEEN.Easing.Bounce.Out( 1 - k );\n\n\t\t},\n\n\t\tOut: function ( k ) {\n\n\t\t\tif ( k < ( 1 / 2.75 ) ) {\n\n\t\t\t\treturn 7.5625 * k * k;\n\n\t\t\t} else if ( k < ( 2 / 2.75 ) ) {\n\n\t\t\t\treturn 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;\n\n\t\t\t} else if ( k < ( 2.5 / 2.75 ) ) {\n\n\t\t\t\treturn 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;\n\n\t\t\t} else {\n\n\t\t\t\treturn 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;\n\n\t\t\t}\n\n\t\t},\n\n\t\tInOut: function ( k ) {\n\n\t\t\tif ( k < 0.5 ) return TWEEN.Easing.Bounce.In( k * 2 ) * 0.5;\n\t\t\treturn TWEEN.Easing.Bounce.Out( k * 2 - 1 ) * 0.5 + 0.5;\n\n\t\t}\n\n\t}\n\n};\n\nTWEEN.Interpolation = {\n\n\tLinear: function ( v, k ) {\n\n\t\tvar m = v.length - 1, f = m * k, i = Math.floor( f ), fn = TWEEN.Interpolation.Utils.Linear;\n\n\t\tif ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f );\n\t\tif ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f );\n\n\t\treturn fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i );\n\n\t},\n\n\tBezier: function ( v, k ) {\n\n\t\tvar b = 0, n = v.length - 1, pw = Math.pow, bn = TWEEN.Interpolation.Utils.Bernstein, i;\n\n\t\tfor ( i = 0; i <= n; i++ ) {\n\t\t\tb += pw( 1 - k, n - i ) * pw( k, i ) * v[ i ] * bn( n, i );\n\t\t}\n\n\t\treturn b;\n\n\t},\n\n\tCatmullRom: function ( v, k ) {\n\n\t\tvar m = v.length - 1, f = m * k, i = Math.floor( f ), fn = TWEEN.Interpolation.Utils.CatmullRom;\n\n\t\tif ( v[ 0 ] === v[ m ] ) {\n\n\t\t\tif ( k < 0 ) i = Math.floor( f = m * ( 1 + k ) );\n\n\t\t\treturn fn( v[ ( i - 1 + m ) % m ], v[ i ], v[ ( i + 1 ) % m ], v[ ( i + 2 ) % m ], f - i );\n\n\t\t} else {\n\n\t\t\tif ( k < 0 ) return v[ 0 ] - ( fn( v[ 0 ], v[ 0 ], v[ 1 ], v[ 1 ], -f ) - v[ 0 ] );\n\t\t\tif ( k > 1 ) return v[ m ] - ( fn( v[ m ], v[ m ], v[ m - 1 ], v[ m - 1 ], f - m ) - v[ m ] );\n\n\t\t\treturn fn( v[ i ? i - 1 : 0 ], v[ i ], v[ m < i + 1 ? m : i + 1 ], v[ m < i + 2 ? m : i + 2 ], f - i );\n\n\t\t}\n\n\t},\n\n\tUtils: {\n\n\t\tLinear: function ( p0, p1, t ) {\n\n\t\t\treturn ( p1 - p0 ) * t + p0;\n\n\t\t},\n\n\t\tBernstein: function ( n , i ) {\n\n\t\t\tvar fc = TWEEN.Interpolation.Utils.Factorial;\n\t\t\treturn fc( n ) / fc( i ) / fc( n - i );\n\n\t\t},\n\n\t\tFactorial: ( function () {\n\n\t\t\tvar a = [ 1 ];\n\n\t\t\treturn function ( n ) {\n\n\t\t\t\tvar s = 1, i;\n\t\t\t\tif ( a[ n ] ) return a[ n ];\n\t\t\t\tfor ( i = n; i > 1; i-- ) s *= i;\n\t\t\t\treturn a[ n ] = s;\n\n\t\t\t};\n\n\t\t} )(),\n\n\t\tCatmullRom: function ( p0, p1, p2, p3, t ) {\n\n\t\t\tvar v0 = ( p2 - p0 ) * 0.5, v1 = ( p3 - p1 ) * 0.5, t2 = t * t, t3 = t * t2;\n\t\t\treturn ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;\n\n\t\t}\n\n\t}\n\n};\n\n// UMD (Universal Module Definition)\n( function ( root ) {\n\n\tif ( typeof define === 'function' && define.amd ) {\n\n\t\t// AMD\n\t\tdefine( [], function () {\n\t\t\treturn TWEEN;\n\t\t} );\n\n\t} else if ( typeof exports === 'object' ) {\n\n\t\t// Node.js\n\t\tmodule.exports = TWEEN;\n\n\t} else {\n\n\t\t// Global variable\n\t\troot.TWEEN = TWEEN;\n\n\t}\n\n} )( this );\n","var schema = require('./schema');\n\nvar processSchema = schema.process;\nvar geometries = module.exports.geometries = {}; // Registered geometries.\nvar geometryNames = module.exports.geometryNames = []; // Names of registered geometries.\nvar THREE = require('../lib/three');\n\n/**\n * Geometry class definition.\n *\n * Geometries extend the geometry component API to create and register geometry types.\n */\nvar Geometry = module.exports.Geometry = function () {};\n\nGeometry.prototype = {\n /**\n * Contains the type schema and defaults for the data values.\n * Data is coerced into the types of the values of the defaults.\n */\n schema: {},\n\n /**\n * Init handler. Similar to attachedCallback.\n * Called during shader initialization and is only run once.\n */\n init: function (data) {\n this.geometry = new THREE.Geometry();\n return this.geometry;\n },\n\n /**\n * Update handler. Similar to attributeChangedCallback.\n * Called whenever the associated geometry data changes.\n *\n * @param {object} data - New geometry data.\n */\n update: function (data) { /* no-op */ }\n};\n\n/**\n * Registers a geometry to A-Frame.\n *\n * @param {string} name - Geometry name.\n * @param {object} definition - Geometry property and methods.\n * @returns {object} Geometry.\n */\nmodule.exports.registerGeometry = function (name, definition) {\n var NewGeometry;\n var proto = {};\n\n // Format definition object to prototype object.\n Object.keys(definition).forEach(function expandDefinition (key) {\n proto[key] = {\n value: definition[key],\n writable: true\n };\n });\n\n if (geometries[name]) {\n throw new Error('The geometry `' + name + '` has been already registered');\n }\n NewGeometry = function () { Geometry.call(this); };\n NewGeometry.prototype = Object.create(Geometry.prototype, proto);\n NewGeometry.prototype.name = name;\n NewGeometry.prototype.constructor = NewGeometry;\n geometries[name] = {\n Geometry: NewGeometry,\n schema: processSchema(NewGeometry.prototype.schema)\n };\n geometryNames.push(name);\n return NewGeometry;\n};\n","/* global HTMLElement */\nvar schema = require('./schema');\nvar systems = require('./system');\nvar utils = require('../utils/');\n\nvar components = module.exports.components = {}; // Keep track of registered components.\nvar parseProperties = schema.parseProperties;\nvar parseProperty = schema.parseProperty;\nvar processSchema = schema.process;\nvar isSingleProp = schema.isSingleProperty;\nvar stringifyProperties = schema.stringifyProperties;\nvar stringifyProperty = schema.stringifyProperty;\nvar styleParser = utils.styleParser;\n\n/**\n * Component class definition.\n *\n * Components configure appearance, modify behavior, or add functionality to\n * entities. The behavior and appearance of an entity can be changed at runtime\n * by adding, removing, or updating components. Entities do not share instances\n * of components.\n *\n * @member {object} el - Reference to the entity element.\n * @member {string} attr - Component name exposed as an HTML attribute.\n * @member {object} data - Component data populated by parsing the\n * mapped attribute of the component plus applying defaults and mixins.\n */\nvar Component = module.exports.Component = function (el, attr, id) {\n this.el = el;\n this.id = id;\n this.attrName = this.name + (id ? '__' + id : '');\n this.updateCachedAttrValue(attr);\n};\n\nComponent.prototype = {\n /**\n * Contains the type schema and defaults for the data values.\n * Data is coerced into the types of the values of the defaults.\n */\n schema: { },\n\n /**\n * Init handler. Similar to attachedCallback.\n * Called during component initialization and is only run once.\n * Components can use this to set initial state.\n */\n init: function () { /* no-op */ },\n\n /**\n * Update handler. Similar to attributeChangedCallback.\n * Called whenever component's data changes.\n * Also called on component initialization when the component receives initial data.\n *\n * @param {object} prevData - Previous attributes of the component.\n */\n update: function (prevData) { /* no-op */ },\n\n updateSchema: undefined,\n\n /**\n * Tick handler.\n * Called on each tick of the scene render loop.\n * Affected by play and pause.\n *\n * @param {number} time - Scene tick time.\n * @param {number} timeDelta - Difference in current render time and previous render time.\n */\n tick: undefined,\n\n /**\n * Called to start any dynamic behavior (e.g., animation, AI, events, physics).\n */\n play: function () { /* no-op */ },\n\n /**\n * Called to stop any dynamic behavior (e.g., animation, AI, events, physics).\n */\n pause: function () { /* no-op */ },\n\n /**\n * Remove handler. Similar to detachedCallback.\n * Called whenever component is removed from the entity (i.e., removeAttribute).\n * Components can use this to reset behavior on the entity.\n */\n remove: function () { /* no-op */ },\n\n /**\n * Parses each property based on property type.\n * If component is single-property, then parses the single property value.\n *\n * @param {string} value - HTML attribute value.\n * @param {boolean} silent - Suppress warning messages.\n * @returns {object} Component data.\n */\n parse: function (value, silent) {\n var schema = this.schema;\n if (isSingleProp(schema)) { return parseProperty(value, schema); }\n return parseProperties(styleParser.parse(value), schema, true, this.name, silent);\n },\n\n /**\n * Stringify properties if necessary.\n *\n * Only called from `Entity.setAttribute` for properties whose parsers accept a non-string\n * value (e.g., selector, vec3 property types).\n *\n * @param {object} data - Complete component data.\n * @returns {string}\n */\n stringify: function (data) {\n var schema = this.schema;\n if (typeof data === 'string') { return data; }\n if (isSingleProp(schema)) { return stringifyProperty(data, schema); }\n data = stringifyProperties(data, schema);\n return styleParser.stringify(data);\n },\n\n /**\n * Returns a copy of data such that we don't expose the private this.data.\n *\n * @returns {object} data\n */\n getData: function () {\n var data = this.data;\n if (typeof data !== 'object') { return data; }\n return utils.extend({}, data);\n },\n\n /**\n * Update the cache of the pre-parsed attribute value.\n *\n * @param {string} value - HTML attribute value.\n */\n updateCachedAttrValue: function (value) {\n var isSinglePropSchema = isSingleProp(this.schema);\n var attrValue = this.parseAttrValueForCache(value);\n this.attrValue = extendProperties({}, attrValue, isSinglePropSchema);\n },\n\n /**\n * Given an HTML attribute value parses the string\n * based on the component schema. To avoid double parsings of\n * strings into strings we store the original instead\n * of the parsed one\n *\n * @param {string} value - HTML attribute value\n */\n parseAttrValueForCache: function (value) {\n var parsedValue;\n if (typeof value !== 'string') { return value; }\n if (isSingleProp(this.schema)) {\n parsedValue = this.schema.parse(value);\n // To avoid bogus double parsings. The cached values will\n // be parsed when building the component data.\n // For instance when parsing a src id to it's url.\n // We want to cache the original string and not the parsed\n // one (#monster -> models/monster.dae) so when building\n // data we parse the expected value.\n if (typeof parsedValue === 'string') { parsedValue = value; }\n } else {\n // We just parse using the style parser to avoid double parsing\n // of individual properties.\n parsedValue = styleParser.parse(value);\n }\n return parsedValue;\n },\n\n /**\n * Writes cached attribute data to the entity DOM element.\n */\n flushToDOM: function () {\n var attrValue = this.attrValue;\n if (!attrValue) { return; }\n HTMLElement.prototype.setAttribute.call(this.el, this.attrName, this.stringify(attrValue));\n },\n\n /**\n * Apply new component data if data has changed.\n *\n * @param {string} value - HTML attribute value.\n * If undefined, use the cached attribute value and continue updating properties.\n */\n updateProperties: function (value) {\n var el = this.el;\n var isSinglePropSchema = isSingleProp(this.schema);\n var oldData = extendProperties({}, this.data, isSinglePropSchema);\n\n if (value !== undefined) { this.updateCachedAttrValue(value); }\n\n if (this.updateSchema) {\n this.updateSchema(buildData(el, this.name, this.schema, this.attrValue, true));\n }\n this.data = buildData(el, this.name, this.schema, this.attrValue);\n\n // Don't update if properties haven't changed\n if (!isSinglePropSchema && utils.deepEqual(oldData, this.data)) { return; }\n\n if (!this.initialized) {\n this.init();\n this.initialized = true;\n // Play the component if the entity is playing.\n this.update(oldData);\n if (el.isPlaying) { this.play(); }\n } else {\n this.update(oldData);\n }\n\n el.emit('componentchanged', {\n id: this.id,\n name: this.name,\n newData: this.getData(),\n oldData: oldData\n }, false);\n },\n\n /**\n * Extend schema of component given a partial schema.\n *\n * Some components might want to mutate their schema based on certain properties.\n * e.g., Material component changes its schema based on `shader` to account for different\n * uniforms\n *\n * @param {object} schemaAddon - Schema chunk that extend base schema.\n */\n extendSchema: function (schemaAddon) {\n // Clone base schema.\n var extendedSchema = utils.extend({}, components[this.name].schema);\n // Extend base schema with new schema chunk.\n utils.extend(extendedSchema, schemaAddon);\n this.schema = processSchema(extendedSchema);\n this.el.emit('schemachanged', { component: this.name });\n }\n};\n\n/**\n * Registers a component to A-Frame.\n *\n * @param {string} name - Component name.\n * @param {object} definition - Component schema and lifecycle method handlers.\n * @returns {object} Component.\n */\nmodule.exports.registerComponent = function (name, definition) {\n var NewComponent;\n var proto = {};\n\n if (name.indexOf('__') !== -1) {\n throw new Error('The component name `' + name + '` is not allowed. ' +\n 'The sequence __ (double underscore) is reserved to specify an id' +\n ' for multiple components of the same type');\n }\n\n // Format definition object to prototype object.\n Object.keys(definition).forEach(function (key) {\n proto[key] = {\n value: definition[key],\n writable: true\n };\n });\n\n if (components[name]) {\n throw new Error('The component `' + name + '` has been already registered. ' +\n 'Check that you are not loading two versions of the same component ' +\n 'or two different components of the same name.');\n }\n NewComponent = function (el, attr, id) {\n Component.call(this, el, attr, id);\n if (!el.hasLoaded) { return; }\n this.updateProperties(this.attrValue);\n };\n\n NewComponent.prototype = Object.create(Component.prototype, proto);\n NewComponent.prototype.name = name;\n NewComponent.prototype.constructor = NewComponent;\n NewComponent.prototype.system = systems && systems.systems[name];\n NewComponent.prototype.play = wrapPlay(NewComponent.prototype.play);\n NewComponent.prototype.pause = wrapPause(NewComponent.prototype.pause);\n\n components[name] = {\n Component: NewComponent,\n dependencies: NewComponent.prototype.dependencies,\n multiple: NewComponent.prototype.multiple,\n parse: NewComponent.prototype.parse,\n parseAttrValueForCache: NewComponent.prototype.parseAttrValueForCache,\n schema: utils.extend(processSchema(NewComponent.prototype.schema)),\n stringify: NewComponent.prototype.stringify,\n type: NewComponent.prototype.type\n };\n return NewComponent;\n};\n\n/**\n * Builds component data from the current state of the entity, ultimately\n * updating this.data.\n *\n * If the component was detached completely, set data to null.\n *\n * Precedence:\n * 1. Defaults data\n * 2. Mixin data.\n * 3. Attribute data.\n *\n * Finally coerce the data to the types of the defaults.\n *\n * @param {object} el - Element to build data from.\n * @param {object} name - Component name.\n * @param {object} schema - Component schema.\n * @param {object} elData - Element current data.\n * @param {boolean} silent - Suppress warning messages.\n * @return {object} The component data\n */\nfunction buildData (el, name, schema, elData, silent) {\n var componentDefined = elData !== undefined && elData !== null;\n var data;\n var isSinglePropSchema = isSingleProp(schema);\n var mixinEls = el.mixinEls;\n\n // 1. Default values (lowest precendence).\n if (isSinglePropSchema) {\n data = schema.default;\n } else {\n data = {};\n Object.keys(schema).forEach(function applyDefault (key) {\n data[key] = schema[key].default;\n });\n }\n\n // 2. Mixin values.\n mixinEls.forEach(handleMixinUpdate);\n function handleMixinUpdate (mixinEl) {\n var mixinData = mixinEl.getAttribute(name);\n if (mixinData) {\n data = extendProperties(data, mixinData, isSinglePropSchema);\n }\n }\n\n // 3. Attribute values (highest precendence).\n if (componentDefined) {\n if (isSinglePropSchema) { return parseProperty(elData, schema); }\n data = extendProperties(data, elData, isSinglePropSchema);\n return parseProperties(data, schema, undefined, name, silent);\n } else {\n // Parse and coerce using the schema.\n if (isSinglePropSchema) { return parseProperty(data, schema); }\n return parseProperties(data, schema, undefined, name, silent);\n }\n}\nmodule.exports.buildData = buildData;\n\n/**\n* Object extending with checking for single-property schema.\n*\n* @param dest - Destination object or value.\n* @param source - Source object or value\n* @param {boolean} isSinglePropSchema - Whether or not schema is only a single property.\n* @returns Overridden object or value.\n*/\nfunction extendProperties (dest, source, isSinglePropSchema) {\n if (isSinglePropSchema) { return source; }\n return utils.extend(dest, source);\n}\n\n/**\n * Wrapper for user defined pause method\n * Pause component by removing tick behavior and calling user's pause method.\n *\n * @param pauseMethod {function} - user defined pause method\n */\nfunction wrapPause (pauseMethod) {\n return function pause () {\n var sceneEl = this.el.sceneEl;\n if (!this.isPlaying) { return; }\n pauseMethod.call(this);\n this.isPlaying = false;\n // Remove tick behavior.\n if (!this.tick) { return; }\n sceneEl.removeBehavior(this);\n };\n}\n\n/**\n * Wrapper for user defined play method\n * Play component by adding tick behavior and calling user's play method.\n *\n * @param playMethod {function} - user defined play method\n *\n */\nfunction wrapPlay (playMethod) {\n return function play () {\n var sceneEl = this.el.sceneEl;\n var shouldPlay = this.el.isPlaying && !this.isPlaying;\n if (!this.initialized || !shouldPlay) { return; }\n playMethod.call(this);\n this.isPlaying = true;\n // Add tick behavior.\n if (!this.tick) { return; }\n sceneEl.addBehavior(this);\n };\n}\n","var schema = require('./schema');\n\nvar processSchema = schema.process;\nvar shaders = module.exports.shaders = {}; // Keep track of registered shaders.\nvar shaderNames = module.exports.shaderNames = []; // Keep track of the names of registered shaders.\nvar THREE = require('../lib/three');\n\nvar propertyToThreeMapping = {\n number: 'f',\n time: 'f',\n vec4: 'v4',\n vec3: 'v3',\n vec2: 'v2',\n color: 'v3'\n};\n\n/**\n * Shader class definition.\n *\n * Shaders extend the material component API so you can create your own library\n * of customized materials\n *\n */\nvar Shader = module.exports.Shader = function () {};\n\nShader.prototype = {\n /**\n * Contains the type schema and defaults for the data values.\n * Data is coerced into the types of the values of the defaults.\n */\n schema: { },\n\n vertexShader:\n 'void main() {' +\n 'gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);' +\n '}',\n\n fragmentShader:\n 'void main() {' +\n 'gl_FragColor = vec4(1.0,0.0,1.0,1.0);' +\n '}',\n\n /**\n * Init handler. Similar to attachedCallback.\n * Called during shader initialization and is only run once.\n */\n init: function (data) {\n this.attributes = this.initVariables(data, 'attribute');\n this.uniforms = this.initVariables(data, 'uniform');\n this.material = new THREE.ShaderMaterial({\n // attributes: this.attributes,\n uniforms: this.uniforms,\n vertexShader: this.vertexShader,\n fragmentShader: this.fragmentShader\n });\n return this.material;\n },\n\n initVariables: function (data, type) {\n var self = this;\n var variables = {};\n var schema = this.schema;\n var schemaKeys = Object.keys(schema);\n schemaKeys.forEach(processSchema);\n function processSchema (key) {\n if (schema[key].is !== type) { return; }\n var varType = propertyToThreeMapping[schema[key].type];\n var varValue = schema[key].parse(data[key] || schema[key].default);\n variables[key] = {\n type: varType,\n value: self.parseValue(schema[key].type, varValue)\n };\n }\n return variables;\n },\n\n /**\n * Update handler. Similar to attributeChangedCallback.\n * Called whenever the associated material data changes.\n *\n * @param {object} data - New material data.\n */\n update: function (data) {\n this.updateVariables(data, 'attribute');\n this.updateVariables(data, 'uniform');\n },\n\n updateVariables: function (data, type) {\n var self = this;\n var variables = type === 'uniform' ? this.uniforms : this.attributes;\n var dataKeys = Object.keys(data);\n var schema = this.schema;\n dataKeys.forEach(processData);\n function processData (key) {\n if (!schema[key] || schema[key].is !== type) { return; }\n if (variables[key].value === data[key]) { return; }\n variables[key].value = self.parseValue(schema[key].type, data[key]);\n variables[key].needsUpdate = true;\n }\n },\n\n parseValue: function (type, value) {\n var color;\n switch (type) {\n case 'vec2': {\n return new THREE.Vector2(value.x, value.y);\n }\n case 'vec3': {\n return new THREE.Vector3(value.x, value.y, value.z);\n }\n case 'vec4': {\n return new THREE.Vector4(value.x, value.y, value.z, value.w);\n }\n case 'color': {\n color = new THREE.Color(value);\n return new THREE.Vector3(color.r, color.g, color.b);\n }\n default: {\n return value;\n }\n }\n }\n};\n\n/**\n * Registers a shader to A-Frame.\n *\n * @param {string} name - shader name.\n * @param {object} definition - shader property and methods.\n * @returns {object} Shader.\n */\nmodule.exports.registerShader = function (name, definition) {\n var NewShader;\n var proto = {};\n\n // Format definition object to prototype object.\n Object.keys(definition).forEach(function (key) {\n proto[key] = {\n value: definition[key],\n writable: true\n };\n });\n\n if (shaders[name]) {\n throw new Error('The shader ' + name + ' has been already registered');\n }\n NewShader = function () { Shader.call(this); };\n NewShader.prototype = Object.create(Shader.prototype, proto);\n NewShader.prototype.name = name;\n NewShader.prototype.constructor = NewShader;\n shaders[name] = {\n Shader: NewShader,\n schema: processSchema(NewShader.prototype.schema)\n };\n shaderNames.push(name);\n return NewShader;\n};\n","/* global HTMLElement */\r\nvar components = require('./component');\r\nvar schema = require('./schema');\r\nvar utils = require('../utils/');\r\n\r\nvar parseProperties = schema.parseProperties;\r\nvar parseProperty = schema.parseProperty;\r\nvar processSchema = schema.process;\r\nvar isSingleProp = schema.isSingleProperty;\r\nvar styleParser = utils.styleParser;\r\n\r\nvar systems = module.exports.systems = {}; // Keep track of registered systems.\r\n\r\n/**\r\n * System class definition.\r\n *\r\n * Systems provide global scope and services to a group of instantiated components of the\r\n * same class. They can also help abstract logic away from components such that components\r\n * only have to worry about data.\r\n * For example, a physics component that creates a physics world that oversees\r\n * all entities with a physics or rigid body component.\r\n *\r\n * @member {string} name - Name that system is registered under.\r\n * @member {Element} sceneEl - Handle to the scene element where system applies to.\r\n */\r\nvar System = module.exports.System = function (sceneEl) {\r\n var component = components && components.components[this.name];\r\n var schema = this.schema;\r\n var rawData;\r\n\r\n // Set reference to scene.\r\n this.sceneEl = sceneEl;\r\n\r\n // Set reference to matching component (if exists).\r\n if (component) { component.Component.prototype.system = this; }\r\n\r\n // Process system configuration.\r\n if (!Object.keys(schema).length) { return; }\r\n rawData = HTMLElement.prototype.getAttribute.call(sceneEl, this.name);\r\n if (isSingleProp(schema)) {\r\n this.data = parseProperty(rawData, schema);\r\n return;\r\n }\r\n this.data = parseProperties(styleParser.parse(rawData) || {}, schema, false, this.name);\r\n};\r\n\r\nSystem.prototype = {\r\n /**\r\n * Schema to configure system.\r\n */\r\n schema: {},\r\n\r\n /**\r\n * Init handler. Called during scene initialization and is only run once.\r\n * Systems can use this to set initial state.\r\n */\r\n init: function () { /* no-op */ },\r\n\r\n /**\r\n * Tick handler.\r\n * Called on each tick of the scene render loop.\r\n * Affected by play and pause.\r\n *\r\n * @param {number} time - Scene tick time.\r\n * @param {number} timeDelta - Difference in current render time and previous render time.\r\n */\r\n tick: undefined,\r\n\r\n /**\r\n * Called to start any dynamic behavior (e.g., animation, AI, events, physics).\r\n */\r\n play: function () { /* no-op */ },\r\n\r\n /**\r\n * Called to stop any dynamic behavior (e.g., animation, AI, events, physics).\r\n */\r\n pause: function () { /* no-op */ }\r\n};\r\n\r\n/**\r\n * Registers a system to A-Frame.\r\n *\r\n * @param {string} name - Component name.\r\n * @param {object} definition - Component property and methods.\r\n * @returns {object} Component.\r\n */\r\nmodule.exports.registerSystem = function (name, definition) {\r\n var i;\r\n var NewSystem;\r\n var proto = {};\r\n var scenes = utils.findAllScenes(document);\r\n\r\n // Format definition object to prototype object.\r\n Object.keys(definition).forEach(function (key) {\r\n proto[key] = {\r\n value: definition[key],\r\n writable: true\r\n };\r\n });\r\n\r\n if (systems[name]) {\r\n throw new Error('The system `' + name + '` has been already registered. ' +\r\n 'Check that you are not loading two versions of the same system ' +\r\n 'or two different systems of the same name.');\r\n }\r\n NewSystem = function (sceneEl) { System.call(this, sceneEl); };\r\n NewSystem.prototype = Object.create(System.prototype, proto);\r\n NewSystem.prototype.name = name;\r\n NewSystem.prototype.constructor = NewSystem;\r\n NewSystem.prototype.schema = utils.extend(processSchema(NewSystem.prototype.schema));\r\n systems[name] = NewSystem;\r\n\r\n // Initialize systems for existing scenes\r\n for (i = 0; i < scenes.length; i++) { scenes[i].initSystem(name); }\r\n};\r\n","var THREE = global.THREE = require('three');\n\n// Allow cross-origin images to be loaded.\n\n// This should not be on `THREE.Loader` nor `THREE.ImageUtils`.\n// Must be on `THREE.TextureLoader`.\nif (THREE.TextureLoader) {\n THREE.TextureLoader.prototype.crossOrigin = 'anonymous';\n}\n\n// This is for images loaded from the model loaders.\nif (THREE.ImageLoader) {\n THREE.ImageLoader.prototype.crossOrigin = 'anonymous';\n}\n\n// In-memory caching for XHRs (for images, audio files, textures, etc.).\nif (THREE.Cache) {\n THREE.Cache.enabled = true;\n}\n\n// TODO: Eventually include these only if they are needed by a component.\nrequire('three/examples/js/loaders/OBJLoader'); // THREE.OBJLoader\nrequire('three/examples/js/loaders/MTLLoader'); // THREE.MTLLoader\nrequire('three/examples/js/BlendCharacter'); // THREE.BlendCharacter\nrequire('three/examples/js/loaders/ColladaLoader'); // THREE.ColladaLoader\nrequire('../../vendor/VRControls'); // THREE.VRControls\nrequire('../../vendor/VREffect'); // THREE.VREffect\n\nTHREE.ColladaLoader.prototype.crossOrigin = 'anonymous';\nTHREE.MTLLoader.prototype.crossOrigin = 'anonymous';\nTHREE.OBJLoader.prototype.crossOrigin = 'anonymous';\n\nmodule.exports = THREE;\n","require('./blend-character-model');\nrequire('./camera');\nrequire('./collada-model');\nrequire('./cursor');\nrequire('./geometry');\nrequire('./hand-controls');\nrequire('./light');\nrequire('./look-at');\nrequire('./look-controls');\nrequire('./material');\nrequire('./obj-model');\nrequire('./position');\nrequire('./raycaster');\nrequire('./rotation');\nrequire('./scale');\nrequire('./sound');\nrequire('./tracked-controls');\nrequire('./visible');\nrequire('./vive-controls');\nrequire('./wasd-controls');\n\nrequire('./scene/canvas');\nrequire('./scene/debug');\nrequire('./scene/embedded');\nrequire('./scene/inspector');\nrequire('./scene/fog');\nrequire('./scene/keyboard-shortcuts');\nrequire('./scene/stats');\nrequire('./scene/vr-mode-ui');\n","require('./box.js');\nrequire('./circle.js');\nrequire('./cone.js');\nrequire('./cylinder.js');\nrequire('./dodecahedron.js');\nrequire('./icosahedron.js');\nrequire('./octahedron.js');\nrequire('./plane.js');\nrequire('./ring.js');\nrequire('./sphere.js');\nrequire('./tetrahedron.js');\nrequire('./torus.js');\nrequire('./torusKnot.js');\n","require('./flat');\nrequire('./standard');\n","require('./camera');\nrequire('./geometry');\nrequire('./light');\nrequire('./material');\nrequire('./tracked-controls');\n\n","/* global HTMLElement */\nvar ANode = require('./a-node');\nvar components = require('./component').components;\nvar registerElement = require('./a-register-element').registerElement;\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\n\nvar AEntity;\nvar debug = utils.debug('core:a-entity:debug');\n\nvar MULTIPLE_COMPONENT_DELIMITER = '__';\n\n/**\n * Entity is a container object that components are plugged into to comprise everything in\n * the scene. In A-Frame, they inherently have position, rotation, and scale.\n *\n * To be able to take components, the scene element inherits from the entity definition.\n *\n * @member {object} components - entity's currently initialized components.\n * @member {object} object3D - three.js object.\n * @member {array} states\n * @member {boolean} isPlaying - false if dynamic behavior of the entity is paused.\n */\nvar proto = Object.create(ANode.prototype, {\n defaultComponents: {\n value: {\n position: '',\n rotation: '',\n scale: '',\n visible: ''\n }\n },\n\n createdCallback: {\n value: function () {\n this.components = {};\n this.isEntity = true;\n this.isPlaying = false;\n this.object3D = new THREE.Group();\n this.object3D.el = this;\n this.object3DMap = {};\n this.parentEl = null;\n this.states = [];\n }\n },\n\n /**\n * Handle changes coming from the browser DOM inspector.\n */\n attributeChangedCallback: {\n value: function (attr, oldVal, newVal) {\n var component = this.components[attr];\n // If the empty string is passed by the component initialization\n // logic we ignore the component update.\n if (component && component.justInitialized && newVal === '') {\n delete component.justInitialized;\n return;\n }\n // When a component is removed after calling el.removeAttribute('material')\n if (!component && newVal === null) { return; }\n this.setEntityAttribute(attr, oldVal, newVal);\n }\n },\n\n /**\n * Add to parent, load, play.\n */\n attachedCallback: {\n value: function () {\n var assetsEl; // Asset management system element.\n var sceneEl = this.sceneEl;\n var self = this; // Component.\n\n this.addToParent();\n\n // Don't .load() scene on attachedCallback.\n if (this.isScene) { return; }\n\n // Gracefully not error when outside of (e.g., tests).\n if (!sceneEl) {\n this.load();\n return;\n }\n\n // Wait for asset management system to finish before loading.\n assetsEl = sceneEl.querySelector('a-assets');\n if (assetsEl && !assetsEl.hasLoaded) {\n assetsEl.addEventListener('loaded', function () { self.load(); });\n return;\n }\n this.load();\n }\n },\n\n /**\n * Tell parent to remove this element's object3D from its object3D.\n * Do not call on scene element because that will cause a call to document.body.remove().\n */\n detachedCallback: {\n value: function () {\n if (!this.parentEl || this.isScene) { return; }\n // Remove components.\n Object.keys(this.components).forEach(this.removeComponent.bind(this));\n this.parentEl.remove(this);\n }\n },\n\n /**\n * Apply mixin to component.\n */\n handleMixinUpdate: {\n value: function (attrName) {\n if (!attrName) {\n this.updateComponents();\n return;\n }\n this.updateComponent(attrName, this.getAttribute(attrName));\n }\n },\n\n mapStateMixins: {\n value: function (state, op) {\n var mixins = this.getAttribute('mixin');\n var mixinIds;\n if (!mixins) { return; }\n mixinIds = mixins.split(' ');\n mixinIds.forEach(function (id) {\n var mixinId = id + '-' + state;\n op(mixinId);\n });\n this.updateComponents();\n }\n },\n\n updateStateMixins: {\n value: function (newMixins, oldMixins) {\n var self = this;\n oldMixins = oldMixins || '';\n var newMixinsIds = newMixins.split(' ');\n var oldMixinsIds = oldMixins ? oldMixins.split(' ') : [];\n // The list of mixins that might have been removed on update\n var diff = oldMixinsIds.filter(function (i) { return newMixinsIds.indexOf(i) < 0; });\n // Remove the mixins that are gone on update\n diff.forEach(function (mixinId) {\n var forEach = Array.prototype.forEach;\n // State Mixins\n var stateMixinsEls = document.querySelectorAll('[id^=' + mixinId + '-]');\n forEach.call(stateMixinsEls, function (el) {\n self.unregisterMixin(el.id);\n });\n });\n this.states.forEach(function (state) {\n newMixinsIds.forEach(function (id) {\n var mixinId = id + '-' + state;\n self.registerMixin(mixinId);\n });\n });\n }\n },\n\n getObject3D: {\n value: function (type) {\n return this.object3DMap[type];\n }\n },\n\n setObject3D: {\n value: function (type, obj) {\n var self = this;\n var oldObj = this.object3DMap[type];\n if (oldObj) { this.object3D.remove(oldObj); }\n if (obj instanceof THREE.Object3D) {\n obj.el = self;\n this.object3D.add(obj);\n if (obj.children.length) {\n obj.traverse(function bindEl (child) {\n child.el = self;\n });\n }\n }\n this.object3DMap[type] = obj;\n }\n },\n\n removeObject3D: {\n value: function (type) {\n this.setObject3D(type, null);\n }\n },\n\n /**\n * Gets or creates an object3D of a given type.\n\n * @param {string} type - Type of the object3D.\n * @param {string} Constructor - Constructor to use if need to create the object3D.\n * @type {Object}\n */\n getOrCreateObject3D: {\n value: function (type, Constructor) {\n var object3D = this.getObject3D(type);\n if (!object3D && Constructor) {\n object3D = new Constructor();\n this.setObject3D(type, object3D);\n }\n return object3D;\n }\n },\n /**\n * Add child entity.\n *\n * @param {Element} el - Child entity.\n */\n add: {\n value: function (el) {\n if (!el.object3D) {\n throw new Error(\"Trying to add an element that doesn't have an `object3D`\");\n }\n this.object3D.add(el.object3D);\n this.emit('child-attached', { el: el });\n }\n },\n\n /**\n * Tell parentNode to add this entity to itself.\n */\n addToParent: {\n value: function () {\n var parentNode = this.parentEl = this.parentNode;\n\n // `!parentNode` check primarily for unit tests.\n if (!parentNode || !parentNode.add || this.attachedToParent) { return; }\n\n parentNode.add(this);\n this.attachedToParent = true; // To prevent multiple attachments to same parent.\n }\n },\n\n load: {\n value: function () {\n var self = this;\n\n if (this.hasLoaded) { return; }\n\n ANode.prototype.load.call(this, entityLoadCallback);\n // Entity load.\n function entityLoadCallback () {\n self.updateComponents();\n if (self.isScene || self.parentEl.isPlaying) { self.play(); }\n }\n },\n writable: window.debug\n },\n\n /**\n * Remove child entity.\n *\n * @param {Element} el - Child entity.\n */\n remove: {\n value: function (el) {\n this.object3D.remove(el.object3D);\n }\n },\n\n /**\n * @returns {array} Direct children that are entities.\n */\n getChildEntities: {\n value: function () {\n var children = this.children;\n var childEntities = [];\n\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child instanceof AEntity) {\n childEntities.push(child);\n }\n }\n\n return childEntities;\n }\n },\n\n /**\n * Initialize component.\n *\n * @param {string} attrName - Attribute name asociated to the component.\n * @param {object} data - Component data\n * @param {boolean} isDependency - True if the component is a dependency.\n */\n initComponent: {\n value: function (attrName, data, isDependency) {\n var component;\n var componentInfo = attrName.split(MULTIPLE_COMPONENT_DELIMITER);\n var componentId = componentInfo[1];\n var componentName = componentInfo[0];\n var isComponentDefined = checkComponentDefined(this, attrName) || data !== undefined;\n // Check if component is registered and whether component should be initialized.\n if (!components[componentName] ||\n (!isComponentDefined && !isDependency) ||\n // If component already initialized.\n (attrName in this.components)) {\n return;\n }\n\n // Initialize dependencies first\n this.initComponentDependencies(componentName);\n\n // If component name has an id we check component type multiplic\n if (componentId && !components[componentName].multiple) {\n throw new Error('Trying to initialize multiple ' +\n 'components of type `' + componentName +\n '`. There can only be one component of this type per entity.');\n }\n component = this.components[attrName] = new components[componentName].Component(\n this, data, componentId);\n if (this.isPlaying) { component.play(); }\n\n // Components are reflected in the DOM as attributes but the state is not shown\n // hence we set the attribute to empty string.\n // The flag justInitialized is for attributeChangedCallback to not overwrite\n // the component with the empty string.\n if (!this.hasAttribute(attrName)) {\n component.justInitialized = true;\n HTMLElement.prototype.setAttribute.call(this, attrName, '');\n }\n\n debug('Component initialized: %s', attrName);\n },\n writable: window.debug\n },\n\n initComponentDependencies: {\n value: function (name) {\n var self = this;\n var component = components[name];\n var dependencies;\n if (!component) { return; }\n dependencies = components[name].dependencies;\n if (!dependencies) { return; }\n dependencies.forEach(function (component) {\n self.initComponent(component, undefined, true);\n });\n }\n },\n\n removeComponent: {\n value: function (name) {\n var component = this.components[name];\n var isDefault = name in this.defaultComponents;\n var isMixedIn = isComponentMixedIn(name, this.mixinEls);\n // Don't remove default or mixed in components\n if (isDefault || isMixedIn) { return; }\n component.pause();\n component.remove();\n delete this.components[name];\n this.emit('componentremoved', { name: name });\n }\n },\n\n /**\n * Update all components.\n * Build data using defined attributes, mixins, and defaults.\n * Update default components before the rest.\n */\n updateComponents: {\n value: function () {\n var elComponents = {};\n var self = this;\n var i;\n if (!this.hasLoaded) { return; }\n\n // Gather entity-defined components.\n var attributes = this.attributes;\n for (i = 0; i < attributes.length; ++i) {\n addComponent(attributes[i].name);\n }\n\n // Gather mixin-defined components.\n getMixedInComponents(this).forEach(addComponent);\n\n // Set default components.\n Object.keys(this.defaultComponents).forEach(updateComponent);\n\n // Set rest of components.\n Object.keys(elComponents).forEach(updateComponent);\n\n /**\n * Add component to the list.\n */\n function addComponent (key) {\n var name = key.split(MULTIPLE_COMPONENT_DELIMITER)[0];\n if (!components[name]) { return; }\n elComponents[key] = true;\n }\n\n /**\n * Update component with given name.\n */\n function updateComponent (name) {\n var attrValue = self.getAttribute(name);\n delete elComponents[name];\n self.updateComponent(name, attrValue);\n }\n }\n },\n\n /**\n * Initialize, update, or remove a single component.\n *\n * When initializing, we set the component on `this.components`.\n *\n * @param {string} attr - Component name.\n * @param {object} attrValue - The value of the DOM attribute.\n */\n updateComponent: {\n value: function (attr, attrValue) {\n var component = this.components[attr];\n var isDefault = attr in this.defaultComponents;\n if (component) {\n if (attrValue === null && !isDefault) {\n this.removeComponent(attr);\n return;\n }\n // Component already initialized. Update component.\n component.updateProperties(attrValue);\n return;\n }\n // Component not yet initialized. Initialize component.\n this.initComponent(attr, attrValue, false);\n }\n },\n\n /**\n * Updates one property of the component\n *\n * @param {string} name - Component name\n * @param {string} property - Component property name\n * @param {any} propertyValue - New property value\n */\n updateComponentProperty: {\n value: function (name, property, propertyValue) {\n var component = this.components[name];\n // Cached attribute value\n var attrValue = component && component.attrValue;\n // Copy cached value\n var componentObj = attrValue ? utils.extend({}, attrValue) : {};\n componentObj[property] = propertyValue;\n this.updateComponent(name, componentObj);\n }\n },\n\n /**\n * If `attr` is a component name, removeAttribute detaches the component from the\n * entity.\n *\n * @param {string} attr - Attribute name, which could also be a component name.\n */\n removeAttribute: {\n value: function (attr) {\n var component = this.components[attr];\n if (component) {\n this.setEntityAttribute(attr, undefined, null);\n // The component might not be removed if it's a default one\n if (this.components[attr]) { return; }\n }\n HTMLElement.prototype.removeAttribute.call(this, attr);\n }\n },\n\n /**\n * Start dynamic behavior associated with entity such as dynamic components and animations.\n * Tell all children entities to also play.\n */\n play: {\n value: function () {\n var components = this.components;\n var componentKeys = Object.keys(components);\n\n // Already playing.\n if (this.isPlaying || !this.hasLoaded) { return; }\n this.isPlaying = true;\n\n // Wake up all components.\n componentKeys.forEach(function playComponent (key) {\n components[key].play();\n });\n\n // Tell all child entities to play.\n this.getChildEntities().forEach(function play (entity) {\n entity.play();\n });\n\n this.emit('play');\n },\n writable: true\n },\n\n /**\n * Pause dynamic behavior associated with entity such as dynamic components and animations.\n * Tell all children entities to also pause.\n */\n pause: {\n value: function () {\n var components = this.components;\n var componentKeys = Object.keys(components);\n\n if (!this.isPlaying) { return; }\n this.isPlaying = false;\n\n // Sleep all components.\n componentKeys.forEach(function pauseComponent (key) {\n components[key].pause();\n });\n\n // Tell all child entities to pause.\n this.getChildEntities().forEach(function pause (obj) {\n obj.pause();\n });\n\n this.emit('pause');\n },\n writable: true\n },\n\n /**\n * Deals with updates on entity-specific attributes (i.e., components and mixins).\n *\n * @param {string} attr\n * @param {string} oldVal\n * @param {string|object} newVal\n */\n setEntityAttribute: {\n value: function (attr, oldVal, newVal) {\n if (components[attr] || this.components[attr]) {\n this.updateComponent(attr, newVal);\n return;\n }\n if (attr === 'mixin') {\n this.mixinUpdate(newVal, oldVal);\n return;\n }\n }\n },\n\n mixinUpdate: {\n value: function (newMixins, oldMixins) {\n oldMixins = oldMixins || this.getAttribute('mixin');\n this.updateStateMixins(newMixins, oldMixins);\n this.updateComponents();\n }\n },\n\n /**\n * If attribute is a component, setAttribute will apply the value to the\n * existing component data, not replace it. Examples:\n *\n * Examples:\n *\n * setAttribute('id', 'my-element');\n * setAttribute('material', { color: 'crimson' });\n * setAttribute('material', 'color', 'crimson');\n *\n * @param {string} attr - Attribute name. setAttribute will initialize or update\n * a component if the name corresponds to a registered component.\n * @param {string|object} value - If a string, setAttribute will update the attribute or.\n * component. If an object, the value will be mixed into the component.\n * @param {string} componentPropValue - If defined, `value` will act as the property\n * name and setAttribute will only set a single component property.\n */\n setAttribute: {\n value: function (attr, value, componentPropValue) {\n var isDebugMode = this.sceneEl && this.sceneEl.getAttribute('debug');\n var componentName = attr.split(MULTIPLE_COMPONENT_DELIMITER)[0];\n if (components[componentName]) {\n // Just update one of the component properties\n if (typeof value === 'string' && componentPropValue !== undefined) {\n this.updateComponentProperty(attr, value, componentPropValue);\n } else {\n this.updateComponent(attr, value);\n }\n // On debug mode we write the component state to the DOM attributes\n if (isDebugMode) { this.components[attr].flushToDOM(); }\n return;\n }\n\n ANode.prototype.setAttribute.call(this, attr, value);\n if (attr === 'mixin') { this.mixinUpdate(value); }\n },\n writable: window.debug\n },\n\n /**\n * To make the DOM attributes reflect the state of the components.\n *\n * @param {bool} recursive - Call updateDOM on the children\n **/\n flushToDOM: {\n value: function (recursive) {\n var components = this.components;\n var children = this.children;\n var child;\n var i;\n Object.keys(components).forEach(updateDOMAtrribute);\n if (!recursive) { return; }\n for (i = 0; i < children.length; ++i) {\n child = children[i];\n if (!child.flushToDOM) { continue; }\n child.flushToDOM(recursive);\n }\n function updateDOMAtrribute (name) { components[name].flushToDOM(); }\n }\n },\n\n /**\n * If `attr` is a component, returns JUST the component data defined on the entity.\n * Like a partial version of `getComputedAttribute` as returned component data\n * does not include applied mixins or defaults.\n *\n * If `attr` is not a component, fall back to HTML getAttribute.\n *\n * @param {string} attr\n * @returns {object|string} Object if component, else string.\n */\n getAttribute: {\n value: function (attr) {\n // If cached value exists, return partial component data.\n var component = this.components[attr];\n if (component) { return component.attrValue; }\n return HTMLElement.prototype.getAttribute.call(this, attr);\n },\n writable: window.debug\n },\n\n /**\n * If `attr` is a component, returns ALL component data including applied mixins and\n * defaults.\n *\n * If `attr` is not a component, fall back to HTML getAttribute.\n *\n * @param {string} attr\n * @returns {object|string} Object if component, else string.\n */\n getComputedAttribute: {\n value: function (attr) {\n // If component, return component data.\n var component = this.components[attr];\n if (component) { return component.getData(); }\n return HTMLElement.prototype.getAttribute.call(this, attr);\n }\n },\n\n addState: {\n value: function (state) {\n if (this.is(state)) { return; }\n this.states.push(state);\n this.mapStateMixins(state, this.registerMixin.bind(this));\n this.emit('stateadded', {state: state});\n }\n },\n\n removeState: {\n value: function (state) {\n var stateIndex = this.states.indexOf(state);\n if (stateIndex === -1) { return; }\n this.states.splice(stateIndex, 1);\n this.mapStateMixins(state, this.unregisterMixin.bind(this));\n this.emit('stateremoved', {state: state});\n }\n },\n\n /**\n * Checks if the element is in a given state. e.g. el.is('alive');\n * @type {string} state - Name of the state we want to check\n */\n is: {\n value: function (state) {\n return this.states.indexOf(state) !== -1;\n }\n }\n});\n\n/**\n * Check if a component is *defined* for an entity, including defaults and mixins.\n * Does not check whether the component has been *initialized* for an entity.\n *\n * @param {string} el - Entity.\n * @param {string} name - Component name.\n * @returns {boolean}\n */\nfunction checkComponentDefined (el, name) {\n // Check if default components contain the component.\n if (el.defaultComponents[name] !== undefined) { return true; }\n\n // Check if element contains the component.\n if (el.components[name] && el.components[name].attrValue) { return true; }\n\n return isComponentMixedIn(name, el.mixinEls);\n}\n\nfunction getMixedInComponents (entityEl) {\n var components = [];\n entityEl.mixinEls.forEach(function getMixedComponents (mixinEl) {\n Object.keys(mixinEl.componentCache).forEach(addComponent);\n function addComponent (key) {\n components.push(key);\n }\n });\n return components;\n}\n\n/**\n * Check if any mixins contains a component.\n *\n * @param {string} name - Component name.\n * @param {array} mixinEls - Array of s.\n */\nfunction isComponentMixedIn (name, mixinEls) {\n var i;\n var inMixin = false;\n for (i = 0; i < mixinEls.length; ++i) {\n inMixin = mixinEls[i].hasAttribute(name);\n if (inMixin) { break; }\n }\n return inMixin;\n}\n\nAEntity = registerElement('a-entity', {\n prototype: proto\n});\nmodule.exports = AEntity;\n","/* global HTMLElement, MutationObserver */\nvar registerElement = require('./a-register-element').registerElement;\nvar utils = require('../utils/');\n\n/**\n * Base class for A-Frame that manages loading of objects.\n *\n * Nodes can be modified using mixins.\n * Nodes emit a `loaded` event when they and their children have initialized.\n */\nmodule.exports = registerElement('a-node', {\n prototype: Object.create(HTMLElement.prototype, {\n createdCallback: {\n value: function () {\n this.hasLoaded = false;\n this.isNode = true;\n this.mixinEls = [];\n this.mixinObservers = {};\n },\n writable: window.debug\n },\n\n attachedCallback: {\n value: function () {\n var mixins = this.getAttribute('mixin');\n this.sceneEl = this.closestScene();\n this.emit('nodeready', {}, false);\n if (mixins) { this.updateMixins(mixins); }\n },\n writable: window.debug\n },\n\n attributeChangedCallback: {\n value: function (attr, oldVal, newVal) {\n if (attr === 'mixin') { this.updateMixins(newVal, oldVal); }\n }\n },\n\n /**\n * Returns the first scene by traversing up the tree starting from and\n * including receiver element.\n */\n closestScene: {\n value: function closest () {\n var element = this;\n while (element) {\n if (element.isScene) { break; }\n element = element.parentElement;\n }\n return element;\n }\n },\n\n /**\n * Returns first element matching a selector by traversing up the tree starting\n * from and including receiver element.\n *\n * @param {string} selector - Selector of element to find.\n */\n closest: {\n value: function closest (selector) {\n var matches = this.matches || this.mozMatchesSelector ||\n this.msMatchesSelector || this.oMatchesSelector || this.webkitMatchesSelector;\n var element = this;\n while (element) {\n if (matches.call(element, selector)) { break; }\n element = element.parentElement;\n }\n return element;\n }\n },\n\n detachedCallback: {\n value: function () { /* no-op */ }\n },\n\n /**\n * Wait for children to load, if any.\n * Then emit `loaded` event and set `hasLoaded`.\n */\n load: {\n value: function (cb, childFilter) {\n var children;\n var childrenLoaded;\n var self = this;\n\n if (this.hasLoaded) { return; }\n\n // Default to waiting for all nodes.\n childFilter = childFilter || function (el) { return el.isNode; };\n\n // Wait for children to load (if any), then load.\n children = this.getChildren();\n childrenLoaded = children.filter(childFilter).map(function (child) {\n return new Promise(function waitForLoaded (resolve) {\n if (child.hasLoaded) { return resolve(); }\n child.addEventListener('loaded', resolve);\n });\n });\n\n Promise.all(childrenLoaded).then(function emitLoaded () {\n self.hasLoaded = true;\n if (cb) { cb(); }\n self.emit('loaded', {}, false);\n });\n },\n writable: true\n },\n\n getChildren: {\n value: function () {\n return Array.prototype.slice.call(this.children, 0);\n }\n },\n\n updateMixins: {\n value: function (newMixins, oldMixins) {\n var newMixinsIds = newMixins.split(' ');\n var oldMixinsIds = oldMixins ? oldMixins.split(' ') : [];\n // To determine what listeners will be removed\n var diff = oldMixinsIds.filter(function (i) { return newMixinsIds.indexOf(i) < 0; });\n this.mixinEls = [];\n diff.forEach(this.unregisterMixin.bind(this));\n newMixinsIds.forEach(this.registerMixin.bind(this));\n }\n },\n\n registerMixin: {\n value: function (mixinId) {\n if (!this.sceneEl) { return; }\n var mixinEl = this.sceneEl.querySelector('a-mixin#' + mixinId);\n if (!mixinEl) { return; }\n this.attachMixinListener(mixinEl);\n this.mixinEls.push(mixinEl);\n }\n },\n\n setAttribute: {\n value: function (attr, newValue) {\n if (attr === 'mixin') { this.updateMixins(newValue); }\n HTMLElement.prototype.setAttribute.call(this, attr, newValue);\n }\n },\n\n unregisterMixin: {\n value: function (mixinId) {\n var mixinEls = this.mixinEls;\n var mixinEl;\n var i;\n for (i = 0; i < mixinEls.length; ++i) {\n mixinEl = mixinEls[i];\n if (mixinId === mixinEl.id) {\n mixinEls.splice(i, 1);\n break;\n }\n }\n this.removeMixinListener(mixinId);\n }\n },\n\n removeMixinListener: {\n value: function (mixinId) {\n var observer = this.mixinObservers[mixinId];\n if (!observer) { return; }\n observer.disconnect();\n this.mixinObservers[mixinId] = null;\n }\n },\n\n attachMixinListener: {\n value: function (mixinEl) {\n var self = this;\n var mixinId = mixinEl.id;\n var currentObserver = this.mixinObservers[mixinId];\n if (!mixinEl) { return; }\n if (currentObserver) { return; }\n var observer = new MutationObserver(function (mutations) {\n var attr = mutations[0].attributeName;\n self.handleMixinUpdate(attr);\n });\n var config = { attributes: true };\n observer.observe(mixinEl, config);\n this.mixinObservers[mixinId] = observer;\n }\n },\n\n handleMixinUpdate: {\n value: function () { /* no-op */ }\n },\n\n /**\n * Emits a DOM event.\n *\n * @param {String} name\n * Name of event (use a space-delimited string for multiple events).\n * @param {Object=} [detail={}]\n * Custom data to pass as `detail` to the event.\n * @param {Boolean=} [bubbles=true]\n * Whether the event should bubble.\n */\n emit: {\n value: function (name, detail, bubbles) {\n var self = this;\n detail = detail || {};\n if (bubbles === undefined) { bubbles = true; }\n var data = { bubbles: !!bubbles, detail: detail };\n return name.split(' ').map(function (eventName) {\n return utils.fireEvent(self, eventName, data);\n });\n }\n },\n\n /**\n * Returns a closure that emits a DOM event.\n *\n * @param {String} name\n * Name of event (use a space-delimited string for multiple events).\n * @param {Object} detail\n * Custom data (optional) to pass as `detail` if the event is to\n * be a `CustomEvent`.\n * @param {Boolean} bubbles\n * Whether the event should be bubble.\n */\n emitter: {\n value: function (name, detail, bubbles) {\n var self = this;\n return function () {\n self.emit(name, detail, bubbles);\n };\n }\n }\n })\n});\n","var ANode = require('./a-node');\nvar animationConstants = require('../constants/animation');\nvar coordinates = require('../utils/').coordinates;\nvar parseProperty = require('./schema').parseProperty;\nvar registerElement = require('./a-register-element').registerElement;\nvar TWEEN = require('tween.js');\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\n\nvar getComponentProperty = utils.entity.getComponentProperty;\nvar DEFAULTS = animationConstants.defaults;\nvar DIRECTIONS = animationConstants.directions;\nvar EASING_FUNCTIONS = animationConstants.easingFunctions;\nvar FILLS = animationConstants.fills;\nvar REPEATS = animationConstants.repeats;\nvar isCoordinate = coordinates.isCoordinate;\n\n/**\n * Animation element that applies Tween animation to parent element (entity).\n * Takes after the Web Animations spec.\n *\n * @member {number} count - Decrementing counter for how many cycles of animations left to\n * run.\n * @member {Element} el - Entity which the animation is modifying.\n * @member initialValue - Value before animation started. Used to restore state.\n * @member {bool} isRunning - Whether animation is currently running.\n * @member {function} partialSetAttribute -\n * setAttribute function that is agnostic to whether we are setting an attribute value\n * or a component property value. The el and the attribute names are bundled with\n * the function.\n * @member {object} tween - tween.js object.\n */\nmodule.exports.AAnimation = registerElement('a-animation', {\n prototype: Object.create(ANode.prototype, {\n createdCallback: {\n value: function () {\n this.bindMethods();\n this.isRunning = false;\n this.partialSetAttribute = function () { /* no-op */ };\n this.tween = null;\n }\n },\n\n attachedCallback: {\n value: function () {\n this.el = this.parentNode;\n this.handleMixinUpdate();\n this.update();\n this.load();\n }\n },\n\n attributeChangedCallback: {\n value: function (attr, oldVal, newVal) {\n if (!this.hasLoaded || !this.isRunning) { return; }\n this.stop();\n this.handleMixinUpdate();\n this.update();\n }\n },\n\n detachedCallback: {\n value: function () {\n if (!this.isRunning) { return; }\n this.stop();\n }\n },\n\n /**\n * Builds a Tween object to handle animations.\n * Uses tween.js's from, to, delay, easing, repeat, onUpdate, and onComplete.\n * Note: tween.js takes objects for its `from` and `to` values.\n *\n * @returns {object}\n */\n getTween: {\n value: function () {\n var self = this;\n var data = self.data;\n var el = self.el;\n var animationValues;\n var attribute = data.attribute;\n var delay = parseInt(data.delay, 10);\n var currentValue = getComponentProperty(el, attribute);\n var direction = self.getDirection(data.direction);\n var easing = EASING_FUNCTIONS[data.easing];\n var fill = data.fill;\n var from;\n var repeat = data.repeat === REPEATS.indefinite ? Infinity : 0;\n var to;\n var toTemp;\n var yoyo = false;\n\n animationValues = getAnimationValues(el, attribute, data.from || self.initialValue, data.to, currentValue);\n from = animationValues.from;\n to = animationValues.to;\n self.partialSetAttribute = animationValues.partialSetAttribute;\n\n if (self.count === undefined) {\n self.count = repeat === Infinity ? 0 : parseInt(data.repeat, 10);\n }\n\n if (isNaN(delay)) { delay = 0; }\n\n // Store initial state.\n self.initialValue = self.initialValue || cloneValue(currentValue);\n\n // Handle indefinite + forwards + alternate yoyo edge-case (#405).\n if (repeat === Infinity && fill === FILLS.forwards &&\n [DIRECTIONS.alternate,\n DIRECTIONS.alternateReverse].indexOf(data.direction) !== -1) {\n yoyo = true;\n }\n\n // If reversing, swap from and to.\n if (direction === DIRECTIONS.reverse) {\n toTemp = to;\n to = cloneValue(from);\n from = cloneValue(toTemp);\n }\n\n // If fill is backwards or both, start animation at the specified from.\n if ([FILLS.backwards, FILLS.both].indexOf(fill) !== -1) {\n self.partialSetAttribute(from);\n }\n\n // Create Tween.\n return new TWEEN.Tween(cloneValue(from))\n .to(to, data.dur)\n .delay(delay)\n .easing(easing)\n .repeat(repeat)\n .yoyo(yoyo)\n .onUpdate(function () {\n self.partialSetAttribute(this);\n })\n .onComplete(self.onCompleted.bind(self));\n }\n },\n\n /**\n * Animation parameters changed. Stop current animation, get a new one, and start it.\n */\n update: {\n value: function () {\n var data = this.data;\n // Terminology warning if infinite used instead of indefinite\n if (data.repeat === 'infinite') {\n console.warn(\"Using 'infinite' as 'repeat' value is invalid. Use 'indefinite' instead.\");\n }\n // Deprecation warning for begin when used as a delay.\n if (data.begin !== '' && !isNaN(data.begin)) {\n console.warn(\"Using 'begin' to specify a delay is deprecated. Use 'delay' instead.\");\n data.delay = data.begin;\n data.begin = '';\n }\n var begin = data.begin;\n var end = data.end;\n // Cancel previous event listeners\n if (this.evt) { this.removeEventListeners(this.evt); }\n // Store new event name.\n this.evt = { begin: begin, end: end };\n // Add new event listeners\n this.addEventListeners(this.evt);\n // If `begin` is not defined, start the animation right away.\n if (begin === '') {\n this.stop();\n this.start();\n }\n },\n writable: window.debug\n },\n\n /**\n * Callback for when a cycle of an animation is complete. Handles when to completely\n * finish the animation.\n *\n * If `repeat` is set to a value, this method is called after each repeat. Repeats are\n * handled by ending the current animation and creating a new one with `count` updated.\n * Note that this method is *not* called if repeat is set to `indefinite`.\n */\n onCompleted: {\n value: function () {\n var data = this.data;\n this.isRunning = false;\n if ([FILLS.backwards, FILLS.none].indexOf(data.fill) !== -1) {\n this.partialSetAttribute(this.initialValue);\n }\n if (this.count === 0) {\n this.count = undefined;\n this.emit('animationend');\n return;\n }\n this.isRunning = false;\n this.count--;\n this.start();\n }\n },\n\n start: {\n value: function () {\n var self = this;\n // Postpone animation start until the entity has loaded\n if (!this.el.hasLoaded) {\n this.el.addEventListener('loaded', function () { self.start(); });\n return;\n }\n if (this.isRunning || !this.el.isPlaying) { return; }\n this.tween = this.getTween();\n this.isRunning = true;\n this.tween.start();\n this.emit('animationstart');\n },\n writable: true\n },\n\n stop: {\n value: function () {\n var tween = this.tween;\n if (!tween) { return; }\n tween.stop();\n this.isRunning = false;\n if ([FILLS.backwards, FILLS.none].indexOf(this.data.fill) !== -1) {\n this.partialSetAttribute(this.initialValue);\n }\n this.emit('animationstop');\n },\n writable: true\n },\n\n /**\n * Handle alternating directions. Given the current direction, calculate the next one,\n * and store the current one.\n *\n * @param {string} direction\n * @returns {string} Direction that the next individual cycle of the animation will go\n * towards.\n */\n getDirection: {\n value: function (direction) {\n if (direction === DIRECTIONS.alternate) {\n this.prevDirection =\n this.prevDirection === DIRECTIONS.normal ? DIRECTIONS.reverse : DIRECTIONS.normal;\n return this.prevDirection;\n }\n if (direction === DIRECTIONS.alternateReverse) {\n this.prevDirection =\n this.prevDirection === DIRECTIONS.reverse ? DIRECTIONS.normal : DIRECTIONS.reverse;\n return this.prevDirection;\n }\n return direction;\n }\n },\n\n /**\n * Preemptive binding to attach/detach event listeners (see `update`).\n */\n bindMethods: {\n value: function () {\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.onStateAdded = this.onStateAdded.bind(this);\n this.onStateRemoved = this.onStateRemoved.bind(this);\n }\n },\n\n addEventListeners: {\n value: function (evts) {\n var el = this.el;\n var self = this;\n utils.splitString(evts.begin).forEach(function (evt) {\n el.addEventListener(evt, self.start);\n });\n utils.splitString(evts.end).forEach(function (evt) {\n el.addEventListener(evt, self.stop);\n });\n // If \"begin\" is an event name, wait. If it is not defined, start.\n if (evts.begin === '') { el.addEventListener('play', this.start); }\n el.addEventListener('pause', this.stop);\n el.addEventListener('stateadded', this.onStateAdded);\n el.addEventListener('stateremoved', this.onStateRemoved);\n }\n },\n\n removeEventListeners: {\n value: function (evts) {\n var el = this.el;\n var start = this.start;\n var stop = this.stop;\n utils.splitString(evts.begin).forEach(function (evt) {\n el.removeEventListener(evt, start);\n });\n utils.splitString(evts.end).forEach(function (evt) {\n el.removeEventListener(evt, stop);\n });\n el.removeEventListener('stateadded', this.onStateAdded);\n el.removeEventListener('stateremoved', this.onStateRemoved);\n }\n },\n\n onStateAdded: {\n value: function (evt) {\n if (evt.detail.state === this.data.begin) { this.start(); }\n },\n writable: true\n },\n\n onStateRemoved: {\n value: function (evt) {\n if (evt.detail.state === this.data.begin) { this.stop(); }\n },\n writable: true\n },\n\n /**\n * Applies animation data from a mixin element.\n * Works the same as component mixins but reimplemented because animations\n * aren't components.\n */\n handleMixinUpdate: {\n value: function () {\n var data = {};\n var elData;\n var mixinData;\n var mixinEl;\n\n // Get mixin data.\n mixinEl = document.querySelector('#' + this.getAttribute('mixin'));\n mixinData = mixinEl ? utils.getElData(mixinEl, DEFAULTS) : {};\n\n elData = utils.getElData(this, DEFAULTS);\n utils.extend(data, DEFAULTS, mixinData, elData);\n this.data = data;\n }\n }\n })\n});\n\nfunction cloneValue (val) {\n return utils.extend({}, val);\n}\n\n/**\n * Deduces different animation values based on whether we are:\n * - animating an inner attribute of a component.\n * - animating a coordinate component.\n * - animating a boolean.\n * - animating a number.\n *\n * @param {Element} el\n * @param {string} attribute - Tells what to animate based on whether it is dot-separated.\n * @param {string} dataFrom - Data `from` value.\n * @param {string} dataTo - Data `to` value.\n * @param currentValue\n * @returns {object}\n * Object with keys [from, to, partialSetAttribute].\n * `from` and `to`\n * Objects where key is attribute being animated and value is value.\n * `partialSetAttribute`\n * Closured-function that tells tween how to update the component.\n */\nfunction getAnimationValues (el, attribute, dataFrom, dataTo, currentValue) {\n var attributeSplit = attribute.split('.');\n var schema;\n var component;\n var componentPropName;\n var componentName;\n var from = {};\n var partialSetAttribute;\n var to = {};\n if (attributeSplit.length === 2) {\n if (isColor()) {\n getForColorComponent();\n } else {\n getForComponentAttribute();\n }\n } else if (dataTo && isCoordinate(dataTo)) {\n getForCoordinateComponent();\n } else if (['true', 'false'].indexOf(dataTo) !== -1) {\n getForBoolean();\n } else if (isNaN(dataTo)) {\n getForColorComponent();\n } else {\n getForNumber();\n }\n return {\n from: from,\n partialSetAttribute: partialSetAttribute,\n to: to\n };\n\n /**\n * Match the schema type to color\n * @return {bool} if the schema is of type color\n */\n function isColor () {\n var componentName = attributeSplit[0];\n var propertyName = attributeSplit[1];\n var component = el.components[componentName];\n var schema = component && component.schema;\n return schema && schema[propertyName] && schema[propertyName].type === 'color';\n }\n\n /**\n * Animating a component that has multiple attributes (e.g., geometry.width).\n */\n function getForComponentAttribute () {\n componentName = attributeSplit[0];\n componentPropName = attributeSplit[1];\n component = el.components[componentName];\n if (!component) {\n el.setAttribute(componentName, '');\n component = el.components[componentName];\n }\n schema = component.schema;\n if (dataFrom === undefined) { // dataFrom can be 0.\n from[attribute] = getComponentProperty(el, attribute);\n } else {\n from[attribute] = dataFrom;\n }\n from[attribute] = parseProperty(from[attribute], schema[componentPropName]);\n to[attribute] = parseProperty(dataTo, schema[componentPropName]);\n partialSetAttribute = function (value) {\n if (!(attribute in value)) { return; }\n el.setAttribute(componentName, componentPropName, value[attribute]);\n };\n }\n\n /**\n * Animating a component that is an XYZ coordinate (e.g., position).\n * Will be tweening {x, y, z} all at once.\n */\n function getForCoordinateComponent () {\n from = dataFrom ? coordinates.parse(dataFrom) : currentValue;\n to = coordinates.parse(dataTo);\n partialSetAttribute = function (value) {\n el.setAttribute(attribute, value);\n };\n }\n\n /**\n * Animation a boolean (e.g., visible).\n * Have to convert from boolean to an integer (0 is false, > 0 is true) for tween.\n */\n function getForBoolean () {\n if (dataFrom === undefined) {\n from[attribute] = false;\n } else {\n from[attribute] = strToBool(dataFrom);\n }\n from[attribute] = boolToNum(from[attribute]);\n to[attribute] = boolToNum(strToBool(dataTo));\n partialSetAttribute = function (value) {\n el.setAttribute(attribute, !!value[attribute]);\n };\n }\n\n /**\n * Animating a color component\n * Will convert a hex value to a THREE.Color\n * Then converts to hex for the setAttribute\n */\n function getForColorComponent () {\n from = new THREE.Color(dataFrom);\n to = new THREE.Color(dataTo);\n partialSetAttribute = function (value) {\n if (attributeSplit.length > 1) {\n el.setAttribute(attributeSplit[0], attributeSplit[1], rgbVectorToHex(value));\n }\n el.setAttribute(attribute, rgbVectorToHex(value));\n };\n }\n\n /**\n * Animating a numbered attribute (e.g., opacity).\n */\n function getForNumber () {\n if (dataFrom === undefined) { // dataFrom can be 0.\n from[attribute] = parseFloat(el.getAttribute(attribute));\n } else {\n from[attribute] = parseFloat(dataFrom);\n }\n to[attribute] = parseFloat(dataTo);\n partialSetAttribute = function (value) {\n el.setAttribute(attribute, value[attribute]);\n };\n }\n}\nmodule.exports.getAnimationValues = getAnimationValues;\n\n/**\n * Converts string to bool.\n *\n * @param {string} str - `true` or `false`.\n * @returns {bool}\n */\nfunction strToBool (str) {\n if (str === 'true') { return true; }\n return false;\n}\n\n/**\n * Converts boolean to number.\n *\n * @param {bool}\n * @returns {number}\n */\nfunction boolToNum (bool) {\n return bool ? 1 : 0;\n}\n\n/**\n * Converts a number 0-255 to hex\n * @param {number} color number 0 - 255\n * @returns {string} hex value of number bassed\n */\nfunction componentToHex (color) {\n var hex = color.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n}\n\n/**\n * Clamps a number to 0-1\n * Then converts that number to 0-255\n * @param {number} color number 0 - 1\n * @returns {number} color number 0 - 255\n */\nfunction convertToIntegerColor (color) {\n return Math.floor(Math.min(Math.abs(color), 1) * 255);\n}\n\n/**\n * Converts a rgb object into a hex string\n * @param {object} color { r: 1, g: 1, b: 1 }\n * @returns {string} hex value #ffffff\n */\nfunction rgbVectorToHex (color) {\n return '#' + ['r', 'g', 'b'].map(function (prop) {\n return componentToHex(convertToIntegerColor(color[prop]));\n }).join('');\n}\n","var ANode = require('./a-node');\nvar debug = require('../utils/debug');\nvar registerElement = require('./a-register-element').registerElement;\nvar THREE = require('../lib/three');\n\nvar xhrLoader = new THREE.XHRLoader();\nvar warn = debug('core:a-assets:warn');\n\n/**\n * Asset management system. Handles blocking on asset loading.\n */\nmodule.exports = registerElement('a-assets', {\n prototype: Object.create(ANode.prototype, {\n createdCallback: {\n value: function () {\n this.isAssets = true;\n }\n },\n\n attachedCallback: {\n value: function () {\n var self = this;\n var i;\n var loaded = [];\n var mediaEl;\n var mediaEls;\n var imgEl;\n var imgEls;\n var timeout;\n\n if (!this.parentNode.isScene) {\n throw new Error(' must be a child of a .');\n }\n\n // Wait for s.\n imgEls = this.querySelectorAll('img');\n for (i = 0; i < imgEls.length; i++) {\n imgEl = setCrossOrigin(imgEls[i]);\n loaded.push(new Promise(function (resolve, reject) {\n imgEl.onload = resolve;\n imgEl.onerror = reject;\n }));\n }\n\n // Wait for
\n * Allows to compute the original undistorted radius from a distorted one.\n * See also getApproximateInverseDistortion() for a faster but potentially\n * less accurate method.\n *\n * @param {Number} radius Distorted radius from the lens center in tan-angle units.\n * @return {Number} The undistorted radius in tan-angle units.\n */\nDistortion.prototype.distortInverse = function(radius) {\n // Secant method.\n var r0 = 0;\n var r1 = 1;\n var dr0 = radius - this.distort(r0);\n while (Math.abs(r1 - r0) > 0.0001 /** 0.1mm */) {\n var dr1 = radius - this.distort(r1);\n var r2 = r1 - dr1 * ((r1 - r0) / (dr1 - dr0));\n r0 = r1;\n r1 = r2;\n dr0 = dr1;\n }\n return r1;\n};\n\n/**\n * Distorts a radius by its distortion factor from the center of the lenses.\n *\n * @param {Number} radius Radius from the lens center in tan-angle units.\n * @return {Number} The distorted radius in tan-angle units.\n */\nDistortion.prototype.distort = function(radius) {\n var r2 = radius * radius;\n var ret = 0;\n for (var i = 0; i < this.coefficients.length; i++) {\n ret = r2 * (ret + this.coefficients[i]);\n }\n return (ret + 1) * radius;\n};\n\n// Functions below roughly ported from\n// https://github.com/googlesamples/cardboard-unity/blob/master/Cardboard/Scripts/CardboardProfile.cs#L412\n\n// Solves a small linear equation via destructive gaussian\n// elimination and back substitution. This isn't generic numeric\n// code, it's just a quick hack to work with the generally\n// well-behaved symmetric matrices for least-squares fitting.\n// Not intended for reuse.\n//\n// @param a Input positive definite symmetrical matrix. Destroyed\n// during calculation.\n// @param y Input right-hand-side values. Destroyed during calculation.\n// @return Resulting x value vector.\n//\nDistortion.prototype.solveLinear_ = function(a, y) {\n var n = a.length;\n\n // Gaussian elimination (no row exchange) to triangular matrix.\n // The input matrix is a A^T A product which should be a positive\n // definite symmetrical matrix, and if I remember my linear\n // algebra right this implies that the pivots will be nonzero and\n // calculations sufficiently accurate without needing row\n // exchange.\n for (var j = 0; j < n - 1; ++j) {\n for (var k = j + 1; k < n; ++k) {\n var p = a[j][k] / a[j][j];\n for (var i = j + 1; i < n; ++i) {\n a[i][k] -= p * a[i][j];\n }\n y[k] -= p * y[j];\n }\n }\n // From this point on, only the matrix elements a[j][i] with i>=j are\n // valid. The elimination doesn't fill in eliminated 0 values.\n\n var x = new Array(n);\n\n // Back substitution.\n for (var j = n - 1; j >= 0; --j) {\n var v = y[j];\n for (var i = j + 1; i < n; ++i) {\n v -= a[i][j] * x[i];\n }\n x[j] = v / a[j][j];\n }\n\n return x;\n};\n\n// Solves a least-squares matrix equation. Given the equation A * x = y, calculate the\n// least-square fit x = inverse(A * transpose(A)) * transpose(A) * y. The way this works\n// is that, while A is typically not a square matrix (and hence not invertible), A * transpose(A)\n// is always square. That is:\n// A * x = y\n// transpose(A) * (A * x) = transpose(A) * y <- multiply both sides by transpose(A)\n// (transpose(A) * A) * x = transpose(A) * y <- associativity\n// x = inverse(transpose(A) * A) * transpose(A) * y <- solve for x\n// Matrix A's row count (first index) must match y's value count. A's column count (second index)\n// determines the length of the result vector x.\nDistortion.prototype.solveLeastSquares_ = function(matA, vecY) {\n var i, j, k, sum;\n var numSamples = matA.length;\n var numCoefficients = matA[0].length;\n if (numSamples != vecY.Length) {\n throw new Error(\"Matrix / vector dimension mismatch\");\n }\n\n // Calculate transpose(A) * A\n var matATA = new Array(numCoefficients);\n for (k = 0; k < numCoefficients; ++k) {\n matATA[k] = new Array(numCoefficients);\n for (j = 0; j < numCoefficients; ++j) {\n sum = 0;\n for (i = 0; i < numSamples; ++i) {\n sum += matA[j][i] * matA[k][i];\n }\n matATA[k][j] = sum;\n }\n }\n\n // Calculate transpose(A) * y\n var vecATY = new Array(numCoefficients);\n for (j = 0; j < numCoefficients; ++j) {\n sum = 0;\n for (i = 0; i < numSamples; ++i) {\n sum += matA[j][i] * vecY[i];\n }\n vecATY[j] = sum;\n }\n\n // Now solve (A * transpose(A)) * x = transpose(A) * y.\n return this.solveLinear_(matATA, vecATY);\n};\n\n/// Calculates an approximate inverse to the given radial distortion parameters.\nDistortion.prototype.approximateInverse = function(maxRadius, numSamples) {\n maxRadius = maxRadius || 1;\n numSamples = numSamples || 100;\n var numCoefficients = 6;\n var i, j;\n\n // R + K1*R^3 + K2*R^5 = r, with R = rp = distort(r)\n // Repeating for numSamples:\n // [ R0^3, R0^5 ] * [ K1 ] = [ r0 - R0 ]\n // [ R1^3, R1^5 ] [ K2 ] [ r1 - R1 ]\n // [ R2^3, R2^5 ] [ r2 - R2 ]\n // [ etc... ] [ etc... ]\n // That is:\n // matA * [K1, K2] = y\n // Solve:\n // [K1, K2] = inverse(transpose(matA) * matA) * transpose(matA) * y\n var matA = new Array(numCoefficients);\n for (j = 0; j < numCoefficients; ++j) {\n matA[j] = new Array(numSamples);\n }\n var vecY = new Array(numSamples);\n\n for (i = 0; i < numSamples; ++i) {\n var r = maxRadius * (i + 1) / numSamples;\n var rp = this.distort(r);\n var v = rp;\n for (j = 0; j < numCoefficients; ++j) {\n v *= rp * rp;\n matA[j][i] = v;\n }\n vecY[i] = r - rp;\n }\n\n var inverseCoefficients = this.solveLeastSquares_(matA, vecY);\n\n return new Distortion(inverseCoefficients);\n};\n\nmodule.exports = Distortion;\n\n},{}],12:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * DPDB cache.\n */\nvar DPDB_CACHE = {\n \"format\": 1,\n \"last_updated\": \"2016-01-20T00:18:35Z\",\n \"devices\": [\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"asus/*/Nexus 7/*\" },\n { \"ua\": \"Nexus 7\" }\n ],\n \"dpi\": [ 320.8, 323.0 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"asus/*/ASUS_Z00AD/*\" },\n { \"ua\": \"ASUS_Z00AD\" }\n ],\n \"dpi\": [ 403.0, 404.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"HTC/*/HTC6435LVW/*\" },\n { \"ua\": \"HTC6435LVW\" }\n ],\n \"dpi\": [ 449.7, 443.3 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"HTC/*/HTC One XL/*\" },\n { \"ua\": \"HTC One XL\" }\n ],\n \"dpi\": [ 315.3, 314.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"htc/*/Nexus 9/*\" },\n { \"ua\": \"Nexus 9\" }\n ],\n \"dpi\": 289.0,\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"HTC/*/HTC One M9/*\" },\n { \"ua\": \"HTC One M9\" }\n ],\n \"dpi\": [ 442.5, 443.3 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"HTC/*/HTC One_M8/*\" },\n { \"ua\": \"HTC One_M8\" }\n ],\n \"dpi\": [ 449.7, 447.4 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"HTC/*/HTC One/*\" },\n { \"ua\": \"HTC One\" }\n ],\n \"dpi\": 472.8,\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Huawei/*/Nexus 6P/*\" },\n { \"ua\": \"Nexus 6P\" }\n ],\n \"dpi\": [ 515.1, 518.0 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/Nexus 5X/*\" },\n { \"ua\": \"Nexus 5X\" }\n ],\n \"dpi\": [ 422.0, 419.9 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/LGMS345/*\" },\n { \"ua\": \"LGMS345\" }\n ],\n \"dpi\": [ 221.7, 219.1 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/LG-D800/*\" },\n { \"ua\": \"LG-D800\" }\n ],\n \"dpi\": [ 422.0, 424.1 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/LG-D850/*\" },\n { \"ua\": \"LG-D850\" }\n ],\n \"dpi\": [ 537.9, 541.9 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/VS985 4G/*\" },\n { \"ua\": \"VS985 4G\" }\n ],\n \"dpi\": [ 537.9, 535.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/Nexus 5/*\" },\n { \"ua\": \"Nexus 5 \" }\n ],\n \"dpi\": [ 442.4, 444.8 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/Nexus 4/*\" },\n { \"ua\": \"Nexus 4\" }\n ],\n \"dpi\": [ 319.8, 318.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/LG-P769/*\" },\n { \"ua\": \"LG-P769\" }\n ],\n \"dpi\": [ 240.6, 247.5 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/LGMS323/*\" },\n { \"ua\": \"LGMS323\" }\n ],\n \"dpi\": [ 206.6, 204.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"LGE/*/LGLS996/*\" },\n { \"ua\": \"LGLS996\" }\n ],\n \"dpi\": [ 403.4, 401.5 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Micromax/*/4560MMX/*\" },\n { \"ua\": \"4560MMX\" }\n ],\n \"dpi\": [ 240.0, 219.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Micromax/*/A250/*\" },\n { \"ua\": \"Micromax A250\" }\n ],\n \"dpi\": [ 480.0, 446.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Micromax/*/Micromax AQ4501/*\" },\n { \"ua\": \"Micromax AQ4501\" }\n ],\n \"dpi\": 240.0,\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/DROID RAZR/*\" },\n { \"ua\": \"DROID RAZR\" }\n ],\n \"dpi\": [ 368.1, 256.7 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT830C/*\" },\n { \"ua\": \"XT830C\" }\n ],\n \"dpi\": [ 254.0, 255.9 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1021/*\" },\n { \"ua\": \"XT1021\" }\n ],\n \"dpi\": [ 254.0, 256.7 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1023/*\" },\n { \"ua\": \"XT1023\" }\n ],\n \"dpi\": [ 254.0, 256.7 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1028/*\" },\n { \"ua\": \"XT1028\" }\n ],\n \"dpi\": [ 326.6, 327.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1034/*\" },\n { \"ua\": \"XT1034\" }\n ],\n \"dpi\": [ 326.6, 328.4 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1053/*\" },\n { \"ua\": \"XT1053\" }\n ],\n \"dpi\": [ 315.3, 316.1 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1562/*\" },\n { \"ua\": \"XT1562\" }\n ],\n \"dpi\": [ 403.4, 402.7 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/Nexus 6/*\" },\n { \"ua\": \"Nexus 6 \" }\n ],\n \"dpi\": [ 494.3, 489.7 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1063/*\" },\n { \"ua\": \"XT1063\" }\n ],\n \"dpi\": [ 295.0, 296.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1064/*\" },\n { \"ua\": \"XT1064\" }\n ],\n \"dpi\": [ 295.0, 295.6 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1092/*\" },\n { \"ua\": \"XT1092\" }\n ],\n \"dpi\": [ 422.0, 424.1 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"motorola/*/XT1095/*\" },\n { \"ua\": \"XT1095\" }\n ],\n \"dpi\": [ 422.0, 423.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"OnePlus/*/A0001/*\" },\n { \"ua\": \"A0001\" }\n ],\n \"dpi\": [ 403.4, 401.0 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"OnePlus/*/ONE E1005/*\" },\n { \"ua\": \"ONE E1005\" }\n ],\n \"dpi\": [ 442.4, 441.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"OnePlus/*/ONE A2005/*\" },\n { \"ua\": \"ONE A2005\" }\n ],\n \"dpi\": [ 391.9, 405.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"OPPO/*/X909/*\" },\n { \"ua\": \"X909\" }\n ],\n \"dpi\": [ 442.4, 444.1 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-I9082/*\" },\n { \"ua\": \"GT-I9082\" }\n ],\n \"dpi\": [ 184.7, 185.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G360P/*\" },\n { \"ua\": \"SM-G360P\" }\n ],\n \"dpi\": [ 196.7, 205.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/Nexus S/*\" },\n { \"ua\": \"Nexus S\" }\n ],\n \"dpi\": [ 234.5, 229.8 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-I9300/*\" },\n { \"ua\": \"GT-I9300\" }\n ],\n \"dpi\": [ 304.8, 303.9 ],\n \"bw\": 5,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-T230NU/*\" },\n { \"ua\": \"SM-T230NU\" }\n ],\n \"dpi\": 216.0,\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SGH-T399/*\" },\n { \"ua\": \"SGH-T399\" }\n ],\n \"dpi\": [ 217.7, 231.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-N9005/*\" },\n { \"ua\": \"SM-N9005\" }\n ],\n \"dpi\": [ 386.4, 387.0 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SAMSUNG-SM-N900A/*\" },\n { \"ua\": \"SAMSUNG-SM-N900A\" }\n ],\n \"dpi\": [ 386.4, 387.7 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-I9500/*\" },\n { \"ua\": \"GT-I9500\" }\n ],\n \"dpi\": [ 442.5, 443.3 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-I9505/*\" },\n { \"ua\": \"GT-I9505\" }\n ],\n \"dpi\": 439.4,\n \"bw\": 4,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G900F/*\" },\n { \"ua\": \"SM-G900F\" }\n ],\n \"dpi\": [ 415.6, 431.6 ],\n \"bw\": 5,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G900M/*\" },\n { \"ua\": \"SM-G900M\" }\n ],\n \"dpi\": [ 415.6, 431.6 ],\n \"bw\": 5,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G800F/*\" },\n { \"ua\": \"SM-G800F\" }\n ],\n \"dpi\": 326.8,\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G906S/*\" },\n { \"ua\": \"SM-G906S\" }\n ],\n \"dpi\": [ 562.7, 572.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-I9300/*\" },\n { \"ua\": \"GT-I9300\" }\n ],\n \"dpi\": [ 306.7, 304.8 ],\n \"bw\": 5,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-T535/*\" },\n { \"ua\": \"SM-T535\" }\n ],\n \"dpi\": [ 142.6, 136.4 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-N920C/*\" },\n { \"ua\": \"SM-N920C\" }\n ],\n \"dpi\": [ 515.1, 518.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-I9300I/*\" },\n { \"ua\": \"GT-I9300I\" }\n ],\n \"dpi\": [ 304.8, 305.8 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-I9195/*\" },\n { \"ua\": \"GT-I9195\" }\n ],\n \"dpi\": [ 249.4, 256.7 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SPH-L520/*\" },\n { \"ua\": \"SPH-L520\" }\n ],\n \"dpi\": [ 249.4, 255.9 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SAMSUNG-SGH-I717/*\" },\n { \"ua\": \"SAMSUNG-SGH-I717\" }\n ],\n \"dpi\": 285.8,\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SPH-D710/*\" },\n { \"ua\": \"SPH-D710\" }\n ],\n \"dpi\": [ 217.7, 204.2 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/GT-N7100/*\" },\n { \"ua\": \"GT-N7100\" }\n ],\n \"dpi\": 265.1,\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SCH-I605/*\" },\n { \"ua\": \"SCH-I605\" }\n ],\n \"dpi\": 265.1,\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/Galaxy Nexus/*\" },\n { \"ua\": \"Galaxy Nexus\" }\n ],\n \"dpi\": [ 315.3, 314.2 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-N910H/*\" },\n { \"ua\": \"SM-N910H\" }\n ],\n \"dpi\": [ 515.1, 518.0 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-N910C/*\" },\n { \"ua\": \"SM-N910C\" }\n ],\n \"dpi\": [ 515.2, 520.2 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G130M/*\" },\n { \"ua\": \"SM-G130M\" }\n ],\n \"dpi\": [ 165.9, 164.8 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G928I/*\" },\n { \"ua\": \"SM-G928I\" }\n ],\n \"dpi\": [ 515.1, 518.4 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G920F/*\" },\n { \"ua\": \"SM-G920F\" }\n ],\n \"dpi\": 580.6,\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G920P/*\" },\n { \"ua\": \"SM-G920P\" }\n ],\n \"dpi\": [ 522.5, 577.0 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G925F/*\" },\n { \"ua\": \"SM-G925F\" }\n ],\n \"dpi\": 580.6,\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"samsung/*/SM-G925V/*\" },\n { \"ua\": \"SM-G925V\" }\n ],\n \"dpi\": [ 522.5, 576.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Sony/*/C6903/*\" },\n { \"ua\": \"C6903\" }\n ],\n \"dpi\": [ 442.5, 443.3 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Sony/*/D6653/*\" },\n { \"ua\": \"D6653\" }\n ],\n \"dpi\": [ 428.6, 427.6 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Sony/*/E6653/*\" },\n { \"ua\": \"E6653\" }\n ],\n \"dpi\": [ 428.6, 425.7 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Sony/*/E6853/*\" },\n { \"ua\": \"E6853\" }\n ],\n \"dpi\": [ 403.4, 401.9 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"Sony/*/SGP321/*\" },\n { \"ua\": \"SGP321\" }\n ],\n \"dpi\": [ 224.7, 224.1 ],\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"TCT/*/ALCATEL ONE TOUCH Fierce/*\" },\n { \"ua\": \"ALCATEL ONE TOUCH Fierce\" }\n ],\n \"dpi\": [ 240.0, 247.5 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"THL/*/thl 5000/*\" },\n { \"ua\": \"thl 5000\" }\n ],\n \"dpi\": [ 480.0, 443.3 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"android\",\n \"rules\": [\n { \"mdmh\": \"ZTE/*/ZTE Blade L2/*\" },\n { \"ua\": \"ZTE Blade L2\" }\n ],\n \"dpi\": 240.0,\n \"bw\": 3,\n \"ac\": 500\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 640, 960 ] } ],\n \"dpi\": [ 325.1, 328.4 ],\n \"bw\": 4,\n \"ac\": 1000\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 640, 960 ] } ],\n \"dpi\": [ 325.1, 328.4 ],\n \"bw\": 4,\n \"ac\": 1000\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 640, 1136 ] } ],\n \"dpi\": [ 317.1, 320.2 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 640, 1136 ] } ],\n \"dpi\": [ 317.1, 320.2 ],\n \"bw\": 3,\n \"ac\": 1000\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 750, 1334 ] } ],\n \"dpi\": 326.4,\n \"bw\": 4,\n \"ac\": 1000\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 750, 1334 ] } ],\n \"dpi\": 326.4,\n \"bw\": 4,\n \"ac\": 1000\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 1242, 2208 ] } ],\n \"dpi\": [ 453.6, 458.4 ],\n \"bw\": 4,\n \"ac\": 1000\n },\n\n {\n \"type\": \"ios\",\n \"rules\": [ { \"res\": [ 1242, 2208 ] } ],\n \"dpi\": [ 453.6, 458.4 ],\n \"bw\": 4,\n \"ac\": 1000\n }\n]};\n\nmodule.exports = DPDB_CACHE;\n\n},{}],13:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Offline cache of the DPDB, to be used until we load the online one (and\n// as a fallback in case we can't load the online one).\nvar DPDB_CACHE = _dereq_('./dpdb-cache.js');\nvar Util = _dereq_('../util.js');\n\n// Online DPDB URL.\nvar ONLINE_DPDB_URL = 'https://storage.googleapis.com/cardboard-dpdb/dpdb.json';\n\n/**\n * Calculates device parameters based on the DPDB (Device Parameter Database).\n * Initially, uses the cached DPDB values.\n *\n * If fetchOnline == true, then this object tries to fetch the online version\n * of the DPDB and updates the device info if a better match is found.\n * Calls the onDeviceParamsUpdated callback when there is an update to the\n * device information.\n */\nfunction Dpdb(fetchOnline, onDeviceParamsUpdated) {\n // Start with the offline DPDB cache while we are loading the real one.\n this.dpdb = DPDB_CACHE;\n\n // Calculate device params based on the offline version of the DPDB.\n this.recalculateDeviceParams_();\n\n // XHR to fetch online DPDB file, if requested.\n if (fetchOnline) {\n // Set the callback.\n this.onDeviceParamsUpdated = onDeviceParamsUpdated;\n\n console.log('Fetching DPDB...');\n var xhr = new XMLHttpRequest();\n var obj = this;\n xhr.open('GET', ONLINE_DPDB_URL, true);\n xhr.addEventListener('load', function() {\n obj.loading = false;\n if (xhr.status >= 200 && xhr.status <= 299) {\n // Success.\n console.log('Successfully loaded online DPDB.');\n obj.dpdb = JSON.parse(xhr.response);\n obj.recalculateDeviceParams_();\n } else {\n // Error loading the DPDB.\n console.error('Error loading online DPDB!');\n }\n });\n xhr.send();\n }\n}\n\n// Returns the current device parameters.\nDpdb.prototype.getDeviceParams = function() {\n return this.deviceParams;\n};\n\n// Recalculates this device's parameters based on the DPDB.\nDpdb.prototype.recalculateDeviceParams_ = function() {\n console.log('Recalculating device params.');\n var newDeviceParams = this.calcDeviceParams_();\n console.log('New device parameters:');\n console.log(newDeviceParams);\n if (newDeviceParams) {\n this.deviceParams = newDeviceParams;\n // Invoke callback, if it is set.\n if (this.onDeviceParamsUpdated) {\n this.onDeviceParamsUpdated(this.deviceParams);\n }\n } else {\n console.error('Failed to recalculate device parameters.');\n }\n};\n\n// Returns a DeviceParams object that represents the best guess as to this\n// device's parameters. Can return null if the device does not match any\n// known devices.\nDpdb.prototype.calcDeviceParams_ = function() {\n var db = this.dpdb; // shorthand\n if (!db) {\n console.error('DPDB not available.');\n return null;\n }\n if (db.format != 1) {\n console.error('DPDB has unexpected format version.');\n return null;\n }\n if (!db.devices || !db.devices.length) {\n console.error('DPDB does not have a devices section.');\n return null;\n }\n\n // Get the actual user agent and screen dimensions in pixels.\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\n var width = Util.getScreenWidth();\n var height = Util.getScreenHeight();\n console.log('User agent: ' + userAgent);\n console.log('Pixel width: ' + width);\n console.log('Pixel height: ' + height);\n\n if (!db.devices) {\n console.error('DPDB has no devices section.');\n return null;\n }\n\n for (var i = 0; i < db.devices.length; i++) {\n var device = db.devices[i];\n if (!device.rules) {\n console.warn('Device[' + i + '] has no rules section.');\n continue;\n }\n\n if (device.type != 'ios' && device.type != 'android') {\n console.warn('Device[' + i + '] has invalid type.');\n continue;\n }\n\n // See if this device is of the appropriate type.\n if (Util.isIOS() != (device.type == 'ios')) continue;\n\n // See if this device matches any of the rules:\n var matched = false;\n for (var j = 0; j < device.rules.length; j++) {\n var rule = device.rules[j];\n if (this.matchRule_(rule, userAgent, width, height)) {\n console.log('Rule matched:');\n console.log(rule);\n matched = true;\n break;\n }\n }\n if (!matched) continue;\n\n // device.dpi might be an array of [ xdpi, ydpi] or just a scalar.\n var xdpi = device.dpi[0] || device.dpi;\n var ydpi = device.dpi[1] || device.dpi;\n\n return new DeviceParams({ xdpi: xdpi, ydpi: ydpi, bevelMm: device.bw });\n }\n\n console.warn('No DPDB device match.');\n return null;\n};\n\nDpdb.prototype.matchRule_ = function(rule, ua, screenWidth, screenHeight) {\n // We can only match 'ua' and 'res' rules, not other types like 'mdmh'\n // (which are meant for native platforms).\n if (!rule.ua && !rule.res) return false;\n\n // If our user agent string doesn't contain the indicated user agent string,\n // the match fails.\n if (rule.ua && ua.indexOf(rule.ua) < 0) return false;\n\n // If the rule specifies screen dimensions that don't correspond to ours,\n // the match fails.\n if (rule.res) {\n if (!rule.res[0] || !rule.res[1]) return false;\n var resX = rule.res[0];\n var resY = rule.res[1];\n // Compare min and max so as to make the order not matter, i.e., it should\n // be true that 640x480 == 480x640.\n if (Math.min(screenWidth, screenHeight) != Math.min(resX, resY) ||\n (Math.max(screenWidth, screenHeight) != Math.max(resX, resY))) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction DeviceParams(params) {\n this.xdpi = params.xdpi;\n this.ydpi = params.ydpi;\n this.bevelMm = params.bevelMm;\n}\n\nmodule.exports = Dpdb;\n},{\"../util.js\":24,\"./dpdb-cache.js\":12}],14:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nfunction Emitter() {\n this.callbacks = {};\n}\n\nEmitter.prototype.emit = function(eventName) {\n var callbacks = this.callbacks[eventName];\n if (!callbacks) {\n //console.log('No valid callback specified.');\n return;\n }\n var args = [].slice.call(arguments);\n // Eliminate the first param (the callback).\n args.shift();\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].apply(this, args);\n }\n};\n\nEmitter.prototype.on = function(eventName, callback) {\n if (eventName in this.callbacks) {\n this.callbacks[eventName].push(callback);\n } else {\n this.callbacks[eventName] = [callback];\n }\n};\n\nmodule.exports = Emitter;\n\n},{}],15:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Util = _dereq_('./util.js');\nvar WebVRPolyfill = _dereq_('./webvr-polyfill.js');\n\n// Initialize a WebVRConfig just in case.\nwindow.WebVRConfig = Util.extend({\n // Forces availability of VR mode, even for non-mobile devices.\n FORCE_ENABLE_VR: false,\n\n // Complementary filter coefficient. 0 for accelerometer, 1 for gyro.\n K_FILTER: 0.98,\n\n // How far into the future to predict during fast motion (in seconds).\n PREDICTION_TIME_S: 0.040,\n\n // Flag to disable touch panner. In case you have your own touch controls.\n TOUCH_PANNER_DISABLED: false,\n\n // Flag to disabled the UI in VR Mode.\n CARDBOARD_UI_DISABLED: false, // Default: false\n\n // Flag to disable the instructions to rotate your device.\n ROTATE_INSTRUCTIONS_DISABLED: false, // Default: false.\n\n // Enable yaw panning only, disabling roll and pitch. This can be useful\n // for panoramas with nothing interesting above or below.\n YAW_ONLY: false,\n\n // To disable keyboard and mouse controls, if you want to use your own\n // implementation.\n MOUSE_KEYBOARD_CONTROLS_DISABLED: false,\n\n // Prevent the polyfill from initializing immediately. Requires the app\n // to call InitializeWebVRPolyfill() before it can be used.\n DEFER_INITIALIZATION: false,\n\n // Enable the deprecated version of the API (navigator.getVRDevices).\n ENABLE_DEPRECATED_API: false,\n\n // Scales the recommended buffer size reported by WebVR, which can improve\n // performance.\n // UPDATE(2016-05-03): Setting this to 0.5 by default since 1.0 does not\n // perform well on many mobile devices.\n BUFFER_SCALE: 0.5,\n\n // Allow VRDisplay.submitFrame to change gl bindings, which is more\n // efficient if the application code will re-bind its resources on the\n // next frame anyway. This has been seen to cause rendering glitches with\n // THREE.js.\n // Dirty bindings include: gl.FRAMEBUFFER_BINDING, gl.CURRENT_PROGRAM,\n // gl.ARRAY_BUFFER_BINDING, gl.ELEMENT_ARRAY_BUFFER_BINDING,\n // and gl.TEXTURE_BINDING_2D for texture unit 0.\n DIRTY_SUBMIT_FRAME_BINDINGS: false\n}, window.WebVRConfig);\n\nif (!window.WebVRConfig.DEFER_INITIALIZATION) {\n new WebVRPolyfill();\n} else {\n window.InitializeWebVRPolyfill = function() {\n new WebVRPolyfill();\n }\n}\n\n},{\"./util.js\":24,\"./webvr-polyfill.js\":27}],16:[function(_dereq_,module,exports){\n/*\n * Copyright 2016 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar MathUtil = window.MathUtil || {};\n\nMathUtil.degToRad = Math.PI / 180;\nMathUtil.radToDeg = 180 / Math.PI;\n\n// Some minimal math functionality borrowed from THREE.Math and stripped down\n// for the purposes of this library.\n\n\nMathUtil.Vector2 = function ( x, y ) {\n this.x = x || 0;\n this.y = y || 0;\n};\n\nMathUtil.Vector2.prototype = {\n constructor: MathUtil.Vector2,\n\n set: function ( x, y ) {\n this.x = x;\n this.y = y;\n\n return this;\n },\n\n copy: function ( v ) {\n this.x = v.x;\n this.y = v.y;\n\n return this;\n },\n\n subVectors: function ( a, b ) {\n this.x = a.x - b.x;\n this.y = a.y - b.y;\n\n return this;\n },\n};\n\nMathUtil.Vector3 = function ( x, y, z ) {\n this.x = x || 0;\n this.y = y || 0;\n this.z = z || 0;\n};\n\nMathUtil.Vector3.prototype = {\n constructor: MathUtil.Vector3,\n\n set: function ( x, y, z ) {\n this.x = x;\n this.y = y;\n this.z = z;\n\n return this;\n },\n\n copy: function ( v ) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n\n return this;\n },\n\n length: function () {\n return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n },\n\n normalize: function () {\n var scalar = this.length();\n\n if ( scalar !== 0 ) {\n var invScalar = 1 / scalar;\n\n this.multiplyScalar(invScalar);\n } else {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n }\n\n return this;\n },\n\n multiplyScalar: function ( scalar ) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n },\n\n applyQuaternion: function ( q ) {\n var x = this.x;\n var y = this.y;\n var z = this.z;\n\n var qx = q.x;\n var qy = q.y;\n var qz = q.z;\n var qw = q.w;\n\n // calculate quat * vector\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = - qx * x - qy * y - qz * z;\n\n // calculate result * inverse quat\n this.x = ix * qw + iw * - qx + iy * - qz - iz * - qy;\n this.y = iy * qw + iw * - qy + iz * - qx - ix * - qz;\n this.z = iz * qw + iw * - qz + ix * - qy - iy * - qx;\n\n return this;\n },\n\n dot: function ( v ) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n },\n\n crossVectors: function ( a, b ) {\n var ax = a.x, ay = a.y, az = a.z;\n var bx = b.x, by = b.y, bz = b.z;\n\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n\n return this;\n },\n};\n\nMathUtil.Quaternion = function ( x, y, z, w ) {\n this.x = x || 0;\n this.y = y || 0;\n this.z = z || 0;\n this.w = ( w !== undefined ) ? w : 1;\n};\n\nMathUtil.Quaternion.prototype = {\n constructor: MathUtil.Quaternion,\n\n set: function ( x, y, z, w ) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n\n return this;\n },\n\n copy: function ( quaternion ) {\n this.x = quaternion.x;\n this.y = quaternion.y;\n this.z = quaternion.z;\n this.w = quaternion.w;\n\n return this;\n },\n\n setFromEulerXYZ: function( x, y, z ) {\n var c1 = Math.cos( x / 2 );\n var c2 = Math.cos( y / 2 );\n var c3 = Math.cos( z / 2 );\n var s1 = Math.sin( x / 2 );\n var s2 = Math.sin( y / 2 );\n var s3 = Math.sin( z / 2 );\n\n this.x = s1 * c2 * c3 + c1 * s2 * s3;\n this.y = c1 * s2 * c3 - s1 * c2 * s3;\n this.z = c1 * c2 * s3 + s1 * s2 * c3;\n this.w = c1 * c2 * c3 - s1 * s2 * s3;\n\n return this;\n },\n\n setFromEulerYXZ: function( x, y, z ) {\n var c1 = Math.cos( x / 2 );\n var c2 = Math.cos( y / 2 );\n var c3 = Math.cos( z / 2 );\n var s1 = Math.sin( x / 2 );\n var s2 = Math.sin( y / 2 );\n var s3 = Math.sin( z / 2 );\n\n this.x = s1 * c2 * c3 + c1 * s2 * s3;\n this.y = c1 * s2 * c3 - s1 * c2 * s3;\n this.z = c1 * c2 * s3 - s1 * s2 * c3;\n this.w = c1 * c2 * c3 + s1 * s2 * s3;\n\n return this;\n },\n\n setFromAxisAngle: function ( axis, angle ) {\n // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n // assumes axis is normalized\n\n var halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n this.x = axis.x * s;\n this.y = axis.y * s;\n this.z = axis.z * s;\n this.w = Math.cos( halfAngle );\n\n return this;\n },\n\n multiply: function ( q ) {\n return this.multiplyQuaternions( this, q );\n },\n\n multiplyQuaternions: function ( a, b ) {\n // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n var qax = a.x, qay = a.y, qaz = a.z, qaw = a.w;\n var qbx = b.x, qby = b.y, qbz = b.z, qbw = b.w;\n\n this.x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this.y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this.z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this.w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n return this;\n },\n\n inverse: function () {\n this.x *= -1;\n this.y *= -1;\n this.z *= -1;\n\n this.normalize();\n\n return this;\n },\n\n normalize: function () {\n var l = Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n if ( l === 0 ) {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 1;\n } else {\n l = 1 / l;\n\n this.x = this.x * l;\n this.y = this.y * l;\n this.z = this.z * l;\n this.w = this.w * l;\n }\n\n return this;\n },\n\n slerp: function ( qb, t ) {\n if ( t === 0 ) return this;\n if ( t === 1 ) return this.copy( qb );\n\n var x = this.x, y = this.y, z = this.z, w = this.w;\n\n // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n var cosHalfTheta = w * qb.w + x * qb.x + y * qb.y + z * qb.z;\n\n if ( cosHalfTheta < 0 ) {\n this.w = - qb.w;\n this.x = - qb.x;\n this.y = - qb.y;\n this.z = - qb.z;\n\n cosHalfTheta = - cosHalfTheta;\n } else {\n this.copy( qb );\n }\n\n if ( cosHalfTheta >= 1.0 ) {\n this.w = w;\n this.x = x;\n this.y = y;\n this.z = z;\n\n return this;\n }\n\n var halfTheta = Math.acos( cosHalfTheta );\n var sinHalfTheta = Math.sqrt( 1.0 - cosHalfTheta * cosHalfTheta );\n\n if ( Math.abs( sinHalfTheta ) < 0.001 ) {\n this.w = 0.5 * ( w + this.w );\n this.x = 0.5 * ( x + this.x );\n this.y = 0.5 * ( y + this.y );\n this.z = 0.5 * ( z + this.z );\n\n return this;\n }\n\n var ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n ratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n this.w = ( w * ratioA + this.w * ratioB );\n this.x = ( x * ratioA + this.x * ratioB );\n this.y = ( y * ratioA + this.y * ratioB );\n this.z = ( z * ratioA + this.z * ratioB );\n\n return this;\n },\n\n setFromUnitVectors: function () {\n // http://lolengine.net/blog/2014/02/24/quaternion-from-two-vectors-final\n // assumes direction vectors vFrom and vTo are normalized\n\n var v1, r;\n var EPS = 0.000001;\n\n return function ( vFrom, vTo ) {\n if ( v1 === undefined ) v1 = new MathUtil.Vector3();\n\n r = vFrom.dot( vTo ) + 1;\n\n if ( r < EPS ) {\n r = 0;\n\n if ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n v1.set( - vFrom.y, vFrom.x, 0 );\n } else {\n v1.set( 0, - vFrom.z, vFrom.y );\n }\n } else {\n v1.crossVectors( vFrom, vTo );\n }\n\n this.x = v1.x;\n this.y = v1.y;\n this.z = v1.z;\n this.w = r;\n\n this.normalize();\n\n return this;\n }\n }(),\n};\n\nmodule.exports = MathUtil;\n\n},{}],17:[function(_dereq_,module,exports){\n/*\n * Copyright 2016 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar VRDisplay = _dereq_('./base.js').VRDisplay;\nvar MathUtil = _dereq_('./math-util.js');\nvar Util = _dereq_('./util.js');\n\n// How much to rotate per key stroke.\nvar KEY_SPEED = 0.15;\nvar KEY_ANIMATION_DURATION = 80;\n\n// How much to rotate for mouse events.\nvar MOUSE_SPEED_X = 0.5;\nvar MOUSE_SPEED_Y = 0.3;\n\n/**\n * VRDisplay based on mouse and keyboard input. Designed for desktops/laptops\n * where orientation events aren't supported. Cannot present.\n */\nfunction MouseKeyboardVRDisplay() {\n this.displayName = 'Mouse and Keyboard VRDisplay (webvr-polyfill)';\n\n this.capabilities.hasOrientation = true;\n\n // Attach to mouse and keyboard events.\n window.addEventListener('keydown', this.onKeyDown_.bind(this));\n window.addEventListener('mousemove', this.onMouseMove_.bind(this));\n window.addEventListener('mousedown', this.onMouseDown_.bind(this));\n window.addEventListener('mouseup', this.onMouseUp_.bind(this));\n\n // \"Private\" members.\n this.phi_ = 0;\n this.theta_ = 0;\n\n // Variables for keyboard-based rotation animation.\n this.targetAngle_ = null;\n this.angleAnimation_ = null;\n\n // State variables for calculations.\n this.orientation_ = new MathUtil.Quaternion();\n\n // Variables for mouse-based rotation.\n this.rotateStart_ = new MathUtil.Vector2();\n this.rotateEnd_ = new MathUtil.Vector2();\n this.rotateDelta_ = new MathUtil.Vector2();\n this.isDragging_ = false;\n\n this.orientationOut_ = new Float32Array(4);\n}\nMouseKeyboardVRDisplay.prototype = new VRDisplay();\n\nMouseKeyboardVRDisplay.prototype.getImmediatePose = function() {\n this.orientation_.setFromEulerYXZ(this.phi_, this.theta_, 0);\n\n this.orientationOut_[0] = this.orientation_.x;\n this.orientationOut_[1] = this.orientation_.y;\n this.orientationOut_[2] = this.orientation_.z;\n this.orientationOut_[3] = this.orientation_.w;\n\n return {\n position: null,\n orientation: this.orientationOut_,\n linearVelocity: null,\n linearAcceleration: null,\n angularVelocity: null,\n angularAcceleration: null\n };\n};\n\nMouseKeyboardVRDisplay.prototype.onKeyDown_ = function(e) {\n // Track WASD and arrow keys.\n if (e.keyCode == 38) { // Up key.\n this.animatePhi_(this.phi_ + KEY_SPEED);\n } else if (e.keyCode == 39) { // Right key.\n this.animateTheta_(this.theta_ - KEY_SPEED);\n } else if (e.keyCode == 40) { // Down key.\n this.animatePhi_(this.phi_ - KEY_SPEED);\n } else if (e.keyCode == 37) { // Left key.\n this.animateTheta_(this.theta_ + KEY_SPEED);\n }\n};\n\nMouseKeyboardVRDisplay.prototype.animateTheta_ = function(targetAngle) {\n this.animateKeyTransitions_('theta_', targetAngle);\n};\n\nMouseKeyboardVRDisplay.prototype.animatePhi_ = function(targetAngle) {\n // Prevent looking too far up or down.\n targetAngle = Util.clamp(targetAngle, -Math.PI/2, Math.PI/2);\n this.animateKeyTransitions_('phi_', targetAngle);\n};\n\n/**\n * Start an animation to transition an angle from one value to another.\n */\nMouseKeyboardVRDisplay.prototype.animateKeyTransitions_ = function(angleName, targetAngle) {\n // If an animation is currently running, cancel it.\n if (this.angleAnimation_) {\n cancelAnimationFrame(this.angleAnimation_);\n }\n var startAngle = this[angleName];\n var startTime = new Date();\n // Set up an interval timer to perform the animation.\n this.angleAnimation_ = requestAnimationFrame(function animate() {\n // Once we're finished the animation, we're done.\n var elapsed = new Date() - startTime;\n if (elapsed >= KEY_ANIMATION_DURATION) {\n this[angleName] = targetAngle;\n cancelAnimationFrame(this.angleAnimation_);\n return;\n }\n // loop with requestAnimationFrame\n this.angleAnimation_ = requestAnimationFrame(animate.bind(this))\n // Linearly interpolate the angle some amount.\n var percent = elapsed / KEY_ANIMATION_DURATION;\n this[angleName] = startAngle + (targetAngle - startAngle) * percent;\n }.bind(this));\n};\n\nMouseKeyboardVRDisplay.prototype.onMouseDown_ = function(e) {\n this.rotateStart_.set(e.clientX, e.clientY);\n this.isDragging_ = true;\n};\n\n// Very similar to https://gist.github.com/mrflix/8351020\nMouseKeyboardVRDisplay.prototype.onMouseMove_ = function(e) {\n if (!this.isDragging_ && !this.isPointerLocked_()) {\n return;\n }\n // Support pointer lock API.\n if (this.isPointerLocked_()) {\n var movementX = e.movementX || e.mozMovementX || 0;\n var movementY = e.movementY || e.mozMovementY || 0;\n this.rotateEnd_.set(this.rotateStart_.x - movementX, this.rotateStart_.y - movementY);\n } else {\n this.rotateEnd_.set(e.clientX, e.clientY);\n }\n // Calculate how much we moved in mouse space.\n this.rotateDelta_.subVectors(this.rotateEnd_, this.rotateStart_);\n this.rotateStart_.copy(this.rotateEnd_);\n\n // Keep track of the cumulative euler angles.\n this.phi_ += 2 * Math.PI * this.rotateDelta_.y / screen.height * MOUSE_SPEED_Y;\n this.theta_ += 2 * Math.PI * this.rotateDelta_.x / screen.width * MOUSE_SPEED_X;\n\n // Prevent looking too far up or down.\n this.phi_ = Util.clamp(this.phi_, -Math.PI/2, Math.PI/2);\n};\n\nMouseKeyboardVRDisplay.prototype.onMouseUp_ = function(e) {\n this.isDragging_ = false;\n};\n\nMouseKeyboardVRDisplay.prototype.isPointerLocked_ = function() {\n var el = document.pointerLockElement || document.mozPointerLockElement ||\n document.webkitPointerLockElement;\n return el !== undefined;\n};\n\nMouseKeyboardVRDisplay.prototype.resetPose = function() {\n this.phi_ = 0;\n this.theta_ = 0;\n};\n\nmodule.exports = MouseKeyboardVRDisplay;\n\n},{\"./base.js\":4,\"./math-util.js\":16,\"./util.js\":24}],18:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Util = _dereq_('./util.js');\n\nfunction RotateInstructions() {\n this.loadIcon_();\n\n var overlay = document.createElement('div');\n var s = overlay.style;\n s.position = 'fixed';\n s.top = 0;\n s.right = 0;\n s.bottom = 0;\n s.left = 0;\n s.backgroundColor = 'gray';\n s.fontFamily = 'sans-serif';\n // Force this to be above the fullscreen canvas, which is at zIndex: 999999.\n s.zIndex = 1000000;\n\n var img = document.createElement('img');\n img.src = this.icon;\n var s = img.style;\n s.marginLeft = '25%';\n s.marginTop = '25%';\n s.width = '50%';\n overlay.appendChild(img);\n\n var text = document.createElement('div');\n var s = text.style;\n s.textAlign = 'center';\n s.fontSize = '16px';\n s.lineHeight = '24px';\n s.margin = '24px 25%';\n s.width = '50%';\n text.innerHTML = 'Place your phone into your Cardboard viewer.';\n overlay.appendChild(text);\n\n var snackbar = document.createElement('div');\n var s = snackbar.style;\n s.backgroundColor = '#CFD8DC';\n s.position = 'fixed';\n s.bottom = 0;\n s.width = '100%';\n s.height = '48px';\n s.padding = '14px 24px';\n s.boxSizing = 'border-box';\n s.color = '#656A6B';\n overlay.appendChild(snackbar);\n\n var snackbarText = document.createElement('div');\n snackbarText.style.float = 'left';\n snackbarText.innerHTML = 'No Cardboard viewer?';\n\n var snackbarButton = document.createElement('a');\n snackbarButton.href = 'https://www.google.com/get/cardboard/get-cardboard/';\n snackbarButton.innerHTML = 'get one';\n snackbarButton.target = '_blank';\n var s = snackbarButton.style;\n s.float = 'right';\n s.fontWeight = 600;\n s.textTransform = 'uppercase';\n s.borderLeft = '1px solid gray';\n s.paddingLeft = '24px';\n s.textDecoration = 'none';\n s.color = '#656A6B';\n\n snackbar.appendChild(snackbarText);\n snackbar.appendChild(snackbarButton);\n\n this.overlay = overlay;\n this.text = text;\n\n this.hide();\n}\n\nRotateInstructions.prototype.show = function(parent) {\n if (!parent && !this.overlay.parentElement) {\n document.body.appendChild(this.overlay);\n } else if (parent) {\n if (this.overlay.parentElement && this.overlay.parentElement != parent)\n this.overlay.parentElement.removeChild(this.overlay);\n\n parent.appendChild(this.overlay);\n }\n\n this.overlay.style.display = 'block';\n\n var img = this.overlay.querySelector('img');\n var s = img.style;\n\n if (Util.isLandscapeMode()) {\n s.width = '20%';\n s.marginLeft = '40%';\n s.marginTop = '3%';\n } else {\n s.width = '50%';\n s.marginLeft = '25%';\n s.marginTop = '25%';\n }\n};\n\nRotateInstructions.prototype.hide = function() {\n this.overlay.style.display = 'none';\n};\n\nRotateInstructions.prototype.showTemporarily = function(ms, parent) {\n this.show(parent);\n this.timer = setTimeout(this.hide.bind(this), ms);\n};\n\nRotateInstructions.prototype.disableShowTemporarily = function() {\n clearTimeout(this.timer);\n};\n\nRotateInstructions.prototype.update = function() {\n this.disableShowTemporarily();\n // In portrait VR mode, tell the user to rotate to landscape. Otherwise, hide\n // the instructions.\n if (!Util.isLandscapeMode() && Util.isMobile()) {\n this.show();\n } else {\n this.hide();\n }\n};\n\nRotateInstructions.prototype.loadIcon_ = function() {\n // Encoded asset_src/rotate-instructions.svg\n this.icon = Util.base64('image/svg+xml', 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE5OHB4IiBoZWlnaHQ9IjI0MHB4IiB2aWV3Qm94PSIwIDAgMTk4IDI0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDMuMy4zICgxMjA4MSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+dHJhbnNpdGlvbjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPgogICAgICAgIDxnIGlkPSJ0cmFuc2l0aW9uIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIj4KICAgICAgICAgICAgPGcgaWQ9IkltcG9ydGVkLUxheWVycy1Db3B5LTQtKy1JbXBvcnRlZC1MYXllcnMtQ29weS0rLUltcG9ydGVkLUxheWVycy1Db3B5LTItQ29weSIgc2tldGNoOnR5cGU9Ik1TTGF5ZXJHcm91cCI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iSW1wb3J0ZWQtTGF5ZXJzLUNvcHktNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDEwNy4wMDAwMDApIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQ5LjYyNSwyLjUyNyBDMTQ5LjYyNSwyLjUyNyAxNTUuODA1LDYuMDk2IDE1Ni4zNjIsNi40MTggTDE1Ni4zNjIsNy4zMDQgQzE1Ni4zNjIsNy40ODEgMTU2LjM3NSw3LjY2NCAxNTYuNCw3Ljg1MyBDMTU2LjQxLDcuOTM0IDE1Ni40Miw4LjAxNSAxNTYuNDI3LDguMDk1IEMxNTYuNTY3LDkuNTEgMTU3LjQwMSwxMS4wOTMgMTU4LjUzMiwxMi4wOTQgTDE2NC4yNTIsMTcuMTU2IEwxNjQuMzMzLDE3LjA2NiBDMTY0LjMzMywxNy4wNjYgMTY4LjcxNSwxNC41MzYgMTY5LjU2OCwxNC4wNDIgQzE3MS4wMjUsMTQuODgzIDE5NS41MzgsMjkuMDM1IDE5NS41MzgsMjkuMDM1IEwxOTUuNTM4LDgzLjAzNiBDMTk1LjUzOCw4My44MDcgMTk1LjE1Miw4NC4yNTMgMTk0LjU5LDg0LjI1MyBDMTk0LjM1Nyw4NC4yNTMgMTk0LjA5NSw4NC4xNzcgMTkzLjgxOCw4NC4wMTcgTDE2OS44NTEsNzAuMTc5IEwxNjkuODM3LDcwLjIwMyBMMTQyLjUxNSw4NS45NzggTDE0MS42NjUsODQuNjU1IEMxMzYuOTM0LDgzLjEyNiAxMzEuOTE3LDgxLjkxNSAxMjYuNzE0LDgxLjA0NSBDMTI2LjcwOSw4MS4wNiAxMjYuNzA3LDgxLjA2OSAxMjYuNzA3LDgxLjA2OSBMMTIxLjY0LDk4LjAzIEwxMTMuNzQ5LDEwMi41ODYgTDExMy43MTIsMTAyLjUyMyBMMTEzLjcxMiwxMzAuMTEzIEMxMTMuNzEyLDEzMC44ODUgMTEzLjMyNiwxMzEuMzMgMTEyLjc2NCwxMzEuMzMgQzExMi41MzIsMTMxLjMzIDExMi4yNjksMTMxLjI1NCAxMTEuOTkyLDEzMS4wOTQgTDY5LjUxOSwxMDYuNTcyIEM2OC41NjksMTA2LjAyMyA2Ny43OTksMTA0LjY5NSA2Ny43OTksMTAzLjYwNSBMNjcuNzk5LDEwMi41NyBMNjcuNzc4LDEwMi42MTcgQzY3LjI3LDEwMi4zOTMgNjYuNjQ4LDEwMi4yNDkgNjUuOTYyLDEwMi4yMTggQzY1Ljg3NSwxMDIuMjE0IDY1Ljc4OCwxMDIuMjEyIDY1LjcwMSwxMDIuMjEyIEM2NS42MDYsMTAyLjIxMiA2NS41MTEsMTAyLjIxNSA2NS40MTYsMTAyLjIxOSBDNjUuMTk1LDEwMi4yMjkgNjQuOTc0LDEwMi4yMzUgNjQuNzU0LDEwMi4yMzUgQzY0LjMzMSwxMDIuMjM1IDYzLjkxMSwxMDIuMjE2IDYzLjQ5OCwxMDIuMTc4IEM2MS44NDMsMTAyLjAyNSA2MC4yOTgsMTAxLjU3OCA1OS4wOTQsMTAwLjg4MiBMMTIuNTE4LDczLjk5MiBMMTIuNTIzLDc0LjAwNCBMMi4yNDUsNTUuMjU0IEMxLjI0NCw1My40MjcgMi4wMDQsNTEuMDM4IDMuOTQzLDQ5LjkxOCBMNTkuOTU0LDE3LjU3MyBDNjAuNjI2LDE3LjE4NSA2MS4zNSwxNy4wMDEgNjIuMDUzLDE3LjAwMSBDNjMuMzc5LDE3LjAwMSA2NC42MjUsMTcuNjYgNjUuMjgsMTguODU0IEw2NS4yODUsMTguODUxIEw2NS41MTIsMTkuMjY0IEw2NS41MDYsMTkuMjY4IEM2NS45MDksMjAuMDAzIDY2LjQwNSwyMC42OCA2Ni45ODMsMjEuMjg2IEw2Ny4yNiwyMS41NTYgQzY5LjE3NCwyMy40MDYgNzEuNzI4LDI0LjM1NyA3NC4zNzMsMjQuMzU3IEM3Ni4zMjIsMjQuMzU3IDc4LjMyMSwyMy44NCA4MC4xNDgsMjIuNzg1IEM4MC4xNjEsMjIuNzg1IDg3LjQ2NywxOC41NjYgODcuNDY3LDE4LjU2NiBDODguMTM5LDE4LjE3OCA4OC44NjMsMTcuOTk0IDg5LjU2NiwxNy45OTQgQzkwLjg5MiwxNy45OTQgOTIuMTM4LDE4LjY1MiA5Mi43OTIsMTkuODQ3IEw5Ni4wNDIsMjUuNzc1IEw5Ni4wNjQsMjUuNzU3IEwxMDIuODQ5LDI5LjY3NCBMMTAyLjc0NCwyOS40OTIgTDE0OS42MjUsMi41MjcgTTE0OS42MjUsMC44OTIgQzE0OS4zNDMsMC44OTIgMTQ5LjA2MiwwLjk2NSAxNDguODEsMS4xMSBMMTAyLjY0MSwyNy42NjYgTDk3LjIzMSwyNC41NDIgTDk0LjIyNiwxOS4wNjEgQzkzLjMxMywxNy4zOTQgOTEuNTI3LDE2LjM1OSA4OS41NjYsMTYuMzU4IEM4OC41NTUsMTYuMzU4IDg3LjU0NiwxNi42MzIgODYuNjQ5LDE3LjE1IEM4My44NzgsMTguNzUgNzkuNjg3LDIxLjE2OSA3OS4zNzQsMjEuMzQ1IEM3OS4zNTksMjEuMzUzIDc5LjM0NSwyMS4zNjEgNzkuMzMsMjEuMzY5IEM3Ny43OTgsMjIuMjU0IDc2LjA4NCwyMi43MjIgNzQuMzczLDIyLjcyMiBDNzIuMDgxLDIyLjcyMiA2OS45NTksMjEuODkgNjguMzk3LDIwLjM4IEw2OC4xNDUsMjAuMTM1IEM2Ny43MDYsMTkuNjcyIDY3LjMyMywxOS4xNTYgNjcuMDA2LDE4LjYwMSBDNjYuOTg4LDE4LjU1OSA2Ni45NjgsMTguNTE5IDY2Ljk0NiwxOC40NzkgTDY2LjcxOSwxOC4wNjUgQzY2LjY5LDE4LjAxMiA2Ni42NTgsMTcuOTYgNjYuNjI0LDE3LjkxMSBDNjUuNjg2LDE2LjMzNyA2My45NTEsMTUuMzY2IDYyLjA1MywxNS4zNjYgQzYxLjA0MiwxNS4zNjYgNjAuMDMzLDE1LjY0IDU5LjEzNiwxNi4xNTggTDMuMTI1LDQ4LjUwMiBDMC40MjYsNTAuMDYxIC0wLjYxMyw1My40NDIgMC44MTEsNTYuMDQgTDExLjA4OSw3NC43OSBDMTEuMjY2LDc1LjExMyAxMS41MzcsNzUuMzUzIDExLjg1LDc1LjQ5NCBMNTguMjc2LDEwMi4yOTggQzU5LjY3OSwxMDMuMTA4IDYxLjQzMywxMDMuNjMgNjMuMzQ4LDEwMy44MDYgQzYzLjgxMiwxMDMuODQ4IDY0LjI4NSwxMDMuODcgNjQuNzU0LDEwMy44NyBDNjUsMTAzLjg3IDY1LjI0OSwxMDMuODY0IDY1LjQ5NCwxMDMuODUyIEM2NS41NjMsMTAzLjg0OSA2NS42MzIsMTAzLjg0NyA2NS43MDEsMTAzLjg0NyBDNjUuNzY0LDEwMy44NDcgNjUuODI4LDEwMy44NDkgNjUuODksMTAzLjg1MiBDNjUuOTg2LDEwMy44NTYgNjYuMDgsMTAzLjg2MyA2Ni4xNzMsMTAzLjg3NCBDNjYuMjgyLDEwNS40NjcgNjcuMzMyLDEwNy4xOTcgNjguNzAyLDEwNy45ODggTDExMS4xNzQsMTMyLjUxIEMxMTEuNjk4LDEzMi44MTIgMTEyLjIzMiwxMzIuOTY1IDExMi43NjQsMTMyLjk2NSBDMTE0LjI2MSwxMzIuOTY1IDExNS4zNDcsMTMxLjc2NSAxMTUuMzQ3LDEzMC4xMTMgTDExNS4zNDcsMTAzLjU1MSBMMTIyLjQ1OCw5OS40NDYgQzEyMi44MTksOTkuMjM3IDEyMy4wODcsOTguODk4IDEyMy4yMDcsOTguNDk4IEwxMjcuODY1LDgyLjkwNSBDMTMyLjI3OSw4My43MDIgMTM2LjU1Nyw4NC43NTMgMTQwLjYwNyw4Ni4wMzMgTDE0MS4xNCw4Ni44NjIgQzE0MS40NTEsODcuMzQ2IDE0MS45NzcsODcuNjEzIDE0Mi41MTYsODcuNjEzIEMxNDIuNzk0LDg3LjYxMyAxNDMuMDc2LDg3LjU0MiAxNDMuMzMzLDg3LjM5MyBMMTY5Ljg2NSw3Mi4wNzYgTDE5Myw4NS40MzMgQzE5My41MjMsODUuNzM1IDE5NC4wNTgsODUuODg4IDE5NC41OSw4NS44ODggQzE5Ni4wODcsODUuODg4IDE5Ny4xNzMsODQuNjg5IDE5Ny4xNzMsODMuMDM2IEwxOTcuMTczLDI5LjAzNSBDMTk3LjE3MywyOC40NTEgMTk2Ljg2MSwyNy45MTEgMTk2LjM1NSwyNy42MTkgQzE5Ni4zNTUsMjcuNjE5IDE3MS44NDMsMTMuNDY3IDE3MC4zODUsMTIuNjI2IEMxNzAuMTMyLDEyLjQ4IDE2OS44NSwxMi40MDcgMTY5LjU2OCwxMi40MDcgQzE2OS4yODUsMTIuNDA3IDE2OS4wMDIsMTIuNDgxIDE2OC43NDksMTIuNjI3IEMxNjguMTQzLDEyLjk3OCAxNjUuNzU2LDE0LjM1NyAxNjQuNDI0LDE1LjEyNSBMMTU5LjYxNSwxMC44NyBDMTU4Ljc5NiwxMC4xNDUgMTU4LjE1NCw4LjkzNyAxNTguMDU0LDcuOTM0IEMxNTguMDQ1LDcuODM3IDE1OC4wMzQsNy43MzkgMTU4LjAyMSw3LjY0IEMxNTguMDA1LDcuNTIzIDE1Ny45OTgsNy40MSAxNTcuOTk4LDcuMzA0IEwxNTcuOTk4LDYuNDE4IEMxNTcuOTk4LDUuODM0IDE1Ny42ODYsNS4yOTUgMTU3LjE4MSw1LjAwMiBDMTU2LjYyNCw0LjY4IDE1MC40NDIsMS4xMTEgMTUwLjQ0MiwxLjExMSBDMTUwLjE4OSwwLjk2NSAxNDkuOTA3LDAuODkyIDE0OS42MjUsMC44OTIiIGlkPSJGaWxsLTEiIGZpbGw9IiM0NTVBNjQiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOTYuMDI3LDI1LjYzNiBMMTQyLjYwMyw1Mi41MjcgQzE0My44MDcsNTMuMjIyIDE0NC41ODIsNTQuMTE0IDE0NC44NDUsNTUuMDY4IEwxNDQuODM1LDU1LjA3NSBMNjMuNDYxLDEwMi4wNTcgTDYzLjQ2LDEwMi4wNTcgQzYxLjgwNiwxMDEuOTA1IDYwLjI2MSwxMDEuNDU3IDU5LjA1NywxMDAuNzYyIEwxMi40ODEsNzMuODcxIEw5Ni4wMjcsMjUuNjM2IiBpZD0iRmlsbC0yIiBmaWxsPSIjRkFGQUZBIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTYzLjQ2MSwxMDIuMTc0IEM2My40NTMsMTAyLjE3NCA2My40NDYsMTAyLjE3NCA2My40MzksMTAyLjE3MiBDNjEuNzQ2LDEwMi4wMTYgNjAuMjExLDEwMS41NjMgNTguOTk4LDEwMC44NjMgTDEyLjQyMiw3My45NzMgQzEyLjM4Niw3My45NTIgMTIuMzY0LDczLjkxNCAxMi4zNjQsNzMuODcxIEMxMi4zNjQsNzMuODMgMTIuMzg2LDczLjc5MSAxMi40MjIsNzMuNzcgTDk1Ljk2OCwyNS41MzUgQzk2LjAwNCwyNS41MTQgOTYuMDQ5LDI1LjUxNCA5Ni4wODUsMjUuNTM1IEwxNDIuNjYxLDUyLjQyNiBDMTQzLjg4OCw1My4xMzQgMTQ0LjY4Miw1NC4wMzggMTQ0Ljk1Nyw1NS4wMzcgQzE0NC45Nyw1NS4wODMgMTQ0Ljk1Myw1NS4xMzMgMTQ0LjkxNSw1NS4xNjEgQzE0NC45MTEsNTUuMTY1IDE0NC44OTgsNTUuMTc0IDE0NC44OTQsNTUuMTc3IEw2My41MTksMTAyLjE1OCBDNjMuNTAxLDEwMi4xNjkgNjMuNDgxLDEwMi4xNzQgNjMuNDYxLDEwMi4xNzQgTDYzLjQ2MSwxMDIuMTc0IFogTTEyLjcxNCw3My44NzEgTDU5LjExNSwxMDAuNjYxIEM2MC4yOTMsMTAxLjM0MSA2MS43ODYsMTAxLjc4MiA2My40MzUsMTAxLjkzNyBMMTQ0LjcwNyw1NS4wMTUgQzE0NC40MjgsNTQuMTA4IDE0My42ODIsNTMuMjg1IDE0Mi41NDQsNTIuNjI4IEw5Ni4wMjcsMjUuNzcxIEwxMi43MTQsNzMuODcxIEwxMi43MTQsNzMuODcxIFoiIGlkPSJGaWxsLTMiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQ4LjMyNyw1OC40NzEgQzE0OC4xNDUsNTguNDggMTQ3Ljk2Miw1OC40OCAxNDcuNzgxLDU4LjQ3MiBDMTQ1Ljg4Nyw1OC4zODkgMTQ0LjQ3OSw1Ny40MzQgMTQ0LjYzNiw1Ni4zNCBDMTQ0LjY4OSw1NS45NjcgMTQ0LjY2NCw1NS41OTcgMTQ0LjU2NCw1NS4yMzUgTDYzLjQ2MSwxMDIuMDU3IEM2NC4wODksMTAyLjExNSA2NC43MzMsMTAyLjEzIDY1LjM3OSwxMDIuMDk5IEM2NS41NjEsMTAyLjA5IDY1Ljc0MywxMDIuMDkgNjUuOTI1LDEwMi4wOTggQzY3LjgxOSwxMDIuMTgxIDY5LjIyNywxMDMuMTM2IDY5LjA3LDEwNC4yMyBMMTQ4LjMyNyw1OC40NzEiIGlkPSJGaWxsLTQiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjkuMDcsMTA0LjM0NyBDNjkuMDQ4LDEwNC4zNDcgNjkuMDI1LDEwNC4zNCA2OS4wMDUsMTA0LjMyNyBDNjguOTY4LDEwNC4zMDEgNjguOTQ4LDEwNC4yNTcgNjguOTU1LDEwNC4yMTMgQzY5LDEwMy44OTYgNjguODk4LDEwMy41NzYgNjguNjU4LDEwMy4yODggQzY4LjE1MywxMDIuNjc4IDY3LjEwMywxMDIuMjY2IDY1LjkyLDEwMi4yMTQgQzY1Ljc0MiwxMDIuMjA2IDY1LjU2MywxMDIuMjA3IDY1LjM4NSwxMDIuMjE1IEM2NC43NDIsMTAyLjI0NiA2NC4wODcsMTAyLjIzMiA2My40NSwxMDIuMTc0IEM2My4zOTksMTAyLjE2OSA2My4zNTgsMTAyLjEzMiA2My4zNDcsMTAyLjA4MiBDNjMuMzM2LDEwMi4wMzMgNjMuMzU4LDEwMS45ODEgNjMuNDAyLDEwMS45NTYgTDE0NC41MDYsNTUuMTM0IEMxNDQuNTM3LDU1LjExNiAxNDQuNTc1LDU1LjExMyAxNDQuNjA5LDU1LjEyNyBDMTQ0LjY0Miw1NS4xNDEgMTQ0LjY2OCw1NS4xNyAxNDQuNjc3LDU1LjIwNCBDMTQ0Ljc4MSw1NS41ODUgMTQ0LjgwNiw1NS45NzIgMTQ0Ljc1MSw1Ni4zNTcgQzE0NC43MDYsNTYuNjczIDE0NC44MDgsNTYuOTk0IDE0NS4wNDcsNTcuMjgyIEMxNDUuNTUzLDU3Ljg5MiAxNDYuNjAyLDU4LjMwMyAxNDcuNzg2LDU4LjM1NSBDMTQ3Ljk2NCw1OC4zNjMgMTQ4LjE0Myw1OC4zNjMgMTQ4LjMyMSw1OC4zNTQgQzE0OC4zNzcsNTguMzUyIDE0OC40MjQsNTguMzg3IDE0OC40MzksNTguNDM4IEMxNDguNDU0LDU4LjQ5IDE0OC40MzIsNTguNTQ1IDE0OC4zODUsNTguNTcyIEw2OS4xMjksMTA0LjMzMSBDNjkuMTExLDEwNC4zNDIgNjkuMDksMTA0LjM0NyA2OS4wNywxMDQuMzQ3IEw2OS4wNywxMDQuMzQ3IFogTTY1LjY2NSwxMDEuOTc1IEM2NS43NTQsMTAxLjk3NSA2NS44NDIsMTAxLjk3NyA2NS45MywxMDEuOTgxIEM2Ny4xOTYsMTAyLjAzNyA2OC4yODMsMTAyLjQ2OSA2OC44MzgsMTAzLjEzOSBDNjkuMDY1LDEwMy40MTMgNjkuMTg4LDEwMy43MTQgNjkuMTk4LDEwNC4wMjEgTDE0Ny44ODMsNTguNTkyIEMxNDcuODQ3LDU4LjU5MiAxNDcuODExLDU4LjU5MSAxNDcuNzc2LDU4LjU4OSBDMTQ2LjUwOSw1OC41MzMgMTQ1LjQyMiw1OC4xIDE0NC44NjcsNTcuNDMxIEMxNDQuNTg1LDU3LjA5MSAxNDQuNDY1LDU2LjcwNyAxNDQuNTIsNTYuMzI0IEMxNDQuNTYzLDU2LjAyMSAxNDQuNTUyLDU1LjcxNiAxNDQuNDg4LDU1LjQxNCBMNjMuODQ2LDEwMS45NyBDNjQuMzUzLDEwMi4wMDIgNjQuODY3LDEwMi4wMDYgNjUuMzc0LDEwMS45ODIgQzY1LjQ3MSwxMDEuOTc3IDY1LjU2OCwxMDEuOTc1IDY1LjY2NSwxMDEuOTc1IEw2NS42NjUsMTAxLjk3NSBaIiBpZD0iRmlsbC01IiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIuMjA4LDU1LjEzNCBDMS4yMDcsNTMuMzA3IDEuOTY3LDUwLjkxNyAzLjkwNiw0OS43OTcgTDU5LjkxNywxNy40NTMgQzYxLjg1NiwxNi4zMzMgNjQuMjQxLDE2LjkwNyA2NS4yNDMsMTguNzM0IEw2NS40NzUsMTkuMTQ0IEM2NS44NzIsMTkuODgyIDY2LjM2OCwyMC41NiA2Ni45NDUsMjEuMTY1IEw2Ny4yMjMsMjEuNDM1IEM3MC41NDgsMjQuNjQ5IDc1LjgwNiwyNS4xNTEgODAuMTExLDIyLjY2NSBMODcuNDMsMTguNDQ1IEM4OS4zNywxNy4zMjYgOTEuNzU0LDE3Ljg5OSA5Mi43NTUsMTkuNzI3IEw5Ni4wMDUsMjUuNjU1IEwxMi40ODYsNzMuODg0IEwyLjIwOCw1NS4xMzQgWiIgaWQ9IkZpbGwtNiIgZmlsbD0iI0ZBRkFGQSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi40ODYsNzQuMDAxIEMxMi40NzYsNzQuMDAxIDEyLjQ2NSw3My45OTkgMTIuNDU1LDczLjk5NiBDMTIuNDI0LDczLjk4OCAxMi4zOTksNzMuOTY3IDEyLjM4NCw3My45NCBMMi4xMDYsNTUuMTkgQzEuMDc1LDUzLjMxIDEuODU3LDUwLjg0NSAzLjg0OCw0OS42OTYgTDU5Ljg1OCwxNy4zNTIgQzYwLjUyNSwxNi45NjcgNjEuMjcxLDE2Ljc2NCA2Mi4wMTYsMTYuNzY0IEM2My40MzEsMTYuNzY0IDY0LjY2NiwxNy40NjYgNjUuMzI3LDE4LjY0NiBDNjUuMzM3LDE4LjY1NCA2NS4zNDUsMTguNjYzIDY1LjM1MSwxOC42NzQgTDY1LjU3OCwxOS4wODggQzY1LjU4NCwxOS4xIDY1LjU4OSwxOS4xMTIgNjUuNTkxLDE5LjEyNiBDNjUuOTg1LDE5LjgzOCA2Ni40NjksMjAuNDk3IDY3LjAzLDIxLjA4NSBMNjcuMzA1LDIxLjM1MSBDNjkuMTUxLDIzLjEzNyA3MS42NDksMjQuMTIgNzQuMzM2LDI0LjEyIEM3Ni4zMTMsMjQuMTIgNzguMjksMjMuNTgyIDgwLjA1MywyMi41NjMgQzgwLjA2NCwyMi41NTcgODAuMDc2LDIyLjU1MyA4MC4wODgsMjIuNTUgTDg3LjM3MiwxOC4zNDQgQzg4LjAzOCwxNy45NTkgODguNzg0LDE3Ljc1NiA4OS41MjksMTcuNzU2IEM5MC45NTYsMTcuNzU2IDkyLjIwMSwxOC40NzIgOTIuODU4LDE5LjY3IEw5Ni4xMDcsMjUuNTk5IEM5Ni4xMzgsMjUuNjU0IDk2LjExOCwyNS43MjQgOTYuMDYzLDI1Ljc1NiBMMTIuNTQ1LDczLjk4NSBDMTIuNTI2LDczLjk5NiAxMi41MDYsNzQuMDAxIDEyLjQ4Niw3NC4wMDEgTDEyLjQ4Niw3NC4wMDEgWiBNNjIuMDE2LDE2Ljk5NyBDNjEuMzEyLDE2Ljk5NyA2MC42MDYsMTcuMTkgNTkuOTc1LDE3LjU1NCBMMy45NjUsNDkuODk5IEMyLjA4Myw1MC45ODUgMS4zNDEsNTMuMzA4IDIuMzEsNTUuMDc4IEwxMi41MzEsNzMuNzIzIEw5NS44NDgsMjUuNjExIEw5Mi42NTMsMTkuNzgyIEM5Mi4wMzgsMTguNjYgOTAuODcsMTcuOTkgODkuNTI5LDE3Ljk5IEM4OC44MjUsMTcuOTkgODguMTE5LDE4LjE4MiA4Ny40ODksMTguNTQ3IEw4MC4xNzIsMjIuNzcyIEM4MC4xNjEsMjIuNzc4IDgwLjE0OSwyMi43ODIgODAuMTM3LDIyLjc4NSBDNzguMzQ2LDIzLjgxMSA3Ni4zNDEsMjQuMzU0IDc0LjMzNiwyNC4zNTQgQzcxLjU4OCwyNC4zNTQgNjkuMDMzLDIzLjM0NyA2Ny4xNDIsMjEuNTE5IEw2Ni44NjQsMjEuMjQ5IEM2Ni4yNzcsMjAuNjM0IDY1Ljc3NCwxOS45NDcgNjUuMzY3LDE5LjIwMyBDNjUuMzYsMTkuMTkyIDY1LjM1NiwxOS4xNzkgNjUuMzU0LDE5LjE2NiBMNjUuMTYzLDE4LjgxOSBDNjUuMTU0LDE4LjgxMSA2NS4xNDYsMTguODAxIDY1LjE0LDE4Ljc5IEM2NC41MjUsMTcuNjY3IDYzLjM1NywxNi45OTcgNjIuMDE2LDE2Ljk5NyBMNjIuMDE2LDE2Ljk5NyBaIiBpZD0iRmlsbC03IiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQyLjQzNCw0OC44MDggTDQyLjQzNCw0OC44MDggQzM5LjkyNCw0OC44MDcgMzcuNzM3LDQ3LjU1IDM2LjU4Miw0NS40NDMgQzM0Ljc3MSw0Mi4xMzkgMzYuMTQ0LDM3LjgwOSAzOS42NDEsMzUuNzg5IEw1MS45MzIsMjguNjkxIEM1My4xMDMsMjguMDE1IDU0LjQxMywyNy42NTggNTUuNzIxLDI3LjY1OCBDNTguMjMxLDI3LjY1OCA2MC40MTgsMjguOTE2IDYxLjU3MywzMS4wMjMgQzYzLjM4NCwzNC4zMjcgNjIuMDEyLDM4LjY1NyA1OC41MTQsNDAuNjc3IEw0Ni4yMjMsNDcuNzc1IEM0NS4wNTMsNDguNDUgNDMuNzQyLDQ4LjgwOCA0Mi40MzQsNDguODA4IEw0Mi40MzQsNDguODA4IFogTTU1LjcyMSwyOC4xMjUgQzU0LjQ5NSwyOC4xMjUgNTMuMjY1LDI4LjQ2MSA1Mi4xNjYsMjkuMDk2IEwzOS44NzUsMzYuMTk0IEMzNi41OTYsMzguMDg3IDM1LjMwMiw0Mi4xMzYgMzYuOTkyLDQ1LjIxOCBDMzguMDYzLDQ3LjE3MyA0MC4wOTgsNDguMzQgNDIuNDM0LDQ4LjM0IEM0My42NjEsNDguMzQgNDQuODksNDguMDA1IDQ1Ljk5LDQ3LjM3IEw1OC4yODEsNDAuMjcyIEM2MS41NiwzOC4zNzkgNjIuODUzLDM0LjMzIDYxLjE2NCwzMS4yNDggQzYwLjA5MiwyOS4yOTMgNTguMDU4LDI4LjEyNSA1NS43MjEsMjguMTI1IEw1NS43MjEsMjguMTI1IFoiIGlkPSJGaWxsLTgiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQ5LjU4OCwyLjQwNyBDMTQ5LjU4OCwyLjQwNyAxNTUuNzY4LDUuOTc1IDE1Ni4zMjUsNi4yOTcgTDE1Ni4zMjUsNy4xODQgQzE1Ni4zMjUsNy4zNiAxNTYuMzM4LDcuNTQ0IDE1Ni4zNjIsNy43MzMgQzE1Ni4zNzMsNy44MTQgMTU2LjM4Miw3Ljg5NCAxNTYuMzksNy45NzUgQzE1Ni41Myw5LjM5IDE1Ny4zNjMsMTAuOTczIDE1OC40OTUsMTEuOTc0IEwxNjUuODkxLDE4LjUxOSBDMTY2LjA2OCwxOC42NzUgMTY2LjI0OSwxOC44MTQgMTY2LjQzMiwxOC45MzQgQzE2OC4wMTEsMTkuOTc0IDE2OS4zODIsMTkuNCAxNjkuNDk0LDE3LjY1MiBDMTY5LjU0MywxNi44NjggMTY5LjU1MSwxNi4wNTcgMTY5LjUxNywxNS4yMjMgTDE2OS41MTQsMTUuMDYzIEwxNjkuNTE0LDEzLjkxMiBDMTcwLjc4LDE0LjY0MiAxOTUuNTAxLDI4LjkxNSAxOTUuNTAxLDI4LjkxNSBMMTk1LjUwMSw4Mi45MTUgQzE5NS41MDEsODQuMDA1IDE5NC43MzEsODQuNDQ1IDE5My43ODEsODMuODk3IEwxNTEuMzA4LDU5LjM3NCBDMTUwLjM1OCw1OC44MjYgMTQ5LjU4OCw1Ny40OTcgMTQ5LjU4OCw1Ni40MDggTDE0OS41ODgsMjIuMzc1IiBpZD0iRmlsbC05IiBmaWxsPSIjRkFGQUZBIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5NC41NTMsODQuMjUgQzE5NC4yOTYsODQuMjUgMTk0LjAxMyw4NC4xNjUgMTkzLjcyMiw4My45OTcgTDE1MS4yNSw1OS40NzYgQzE1MC4yNjksNTguOTA5IDE0OS40NzEsNTcuNTMzIDE0OS40NzEsNTYuNDA4IEwxNDkuNDcxLDIyLjM3NSBMMTQ5LjcwNSwyMi4zNzUgTDE0OS43MDUsNTYuNDA4IEMxNDkuNzA1LDU3LjQ1OSAxNTAuNDUsNTguNzQ0IDE1MS4zNjYsNTkuMjc0IEwxOTMuODM5LDgzLjc5NSBDMTk0LjI2Myw4NC4wNCAxOTQuNjU1LDg0LjA4MyAxOTQuOTQyLDgzLjkxNyBDMTk1LjIyNyw4My43NTMgMTk1LjM4NCw4My4zOTcgMTk1LjM4NCw4Mi45MTUgTDE5NS4zODQsMjguOTgyIEMxOTQuMTAyLDI4LjI0MiAxNzIuMTA0LDE1LjU0MiAxNjkuNjMxLDE0LjExNCBMMTY5LjYzNCwxNS4yMiBDMTY5LjY2OCwxNi4wNTIgMTY5LjY2LDE2Ljg3NCAxNjkuNjEsMTcuNjU5IEMxNjkuNTU2LDE4LjUwMyAxNjkuMjE0LDE5LjEyMyAxNjguNjQ3LDE5LjQwNSBDMTY4LjAyOCwxOS43MTQgMTY3LjE5NywxOS41NzggMTY2LjM2NywxOS4wMzIgQzE2Ni4xODEsMTguOTA5IDE2NS45OTUsMTguNzY2IDE2NS44MTQsMTguNjA2IEwxNTguNDE3LDEyLjA2MiBDMTU3LjI1OSwxMS4wMzYgMTU2LjQxOCw5LjQzNyAxNTYuMjc0LDcuOTg2IEMxNTYuMjY2LDcuOTA3IDE1Ni4yNTcsNy44MjcgMTU2LjI0Nyw3Ljc0OCBDMTU2LjIyMSw3LjU1NSAxNTYuMjA5LDcuMzY1IDE1Ni4yMDksNy4xODQgTDE1Ni4yMDksNi4zNjQgQzE1NS4zNzUsNS44ODMgMTQ5LjUyOSwyLjUwOCAxNDkuNTI5LDIuNTA4IEwxNDkuNjQ2LDIuMzA2IEMxNDkuNjQ2LDIuMzA2IDE1NS44MjcsNS44NzQgMTU2LjM4NCw2LjE5NiBMMTU2LjQ0Miw2LjIzIEwxNTYuNDQyLDcuMTg0IEMxNTYuNDQyLDcuMzU1IDE1Ni40NTQsNy41MzUgMTU2LjQ3OCw3LjcxNyBDMTU2LjQ4OSw3LjggMTU2LjQ5OSw3Ljg4MiAxNTYuNTA3LDcuOTYzIEMxNTYuNjQ1LDkuMzU4IDE1Ny40NTUsMTAuODk4IDE1OC41NzIsMTEuODg2IEwxNjUuOTY5LDE4LjQzMSBDMTY2LjE0MiwxOC41ODQgMTY2LjMxOSwxOC43MiAxNjYuNDk2LDE4LjgzNyBDMTY3LjI1NCwxOS4zMzYgMTY4LDE5LjQ2NyAxNjguNTQzLDE5LjE5NiBDMTY5LjAzMywxOC45NTMgMTY5LjMyOSwxOC40MDEgMTY5LjM3NywxNy42NDUgQzE2OS40MjcsMTYuODY3IDE2OS40MzQsMTYuMDU0IDE2OS40MDEsMTUuMjI4IEwxNjkuMzk3LDE1LjA2NSBMMTY5LjM5NywxMy43MSBMMTY5LjU3MiwxMy44MSBDMTcwLjgzOSwxNC41NDEgMTk1LjU1OSwyOC44MTQgMTk1LjU1OSwyOC44MTQgTDE5NS42MTgsMjguODQ3IEwxOTUuNjE4LDgyLjkxNSBDMTk1LjYxOCw4My40ODQgMTk1LjQyLDgzLjkxMSAxOTUuMDU5LDg0LjExOSBDMTk0LjkwOCw4NC4yMDYgMTk0LjczNyw4NC4yNSAxOTQuNTUzLDg0LjI1IiBpZD0iRmlsbC0xMCIgZmlsbD0iIzYwN0Q4QiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNDUuNjg1LDU2LjE2MSBMMTY5LjgsNzAuMDgzIEwxNDMuODIyLDg1LjA4MSBMMTQyLjM2LDg0Ljc3NCBDMTM1LjgyNiw4Mi42MDQgMTI4LjczMiw4MS4wNDYgMTIxLjM0MSw4MC4xNTggQzExNi45NzYsNzkuNjM0IDExMi42NzgsODEuMjU0IDExMS43NDMsODMuNzc4IEMxMTEuNTA2LDg0LjQxNCAxMTEuNTAzLDg1LjA3MSAxMTEuNzMyLDg1LjcwNiBDMTEzLjI3LDg5Ljk3MyAxMTUuOTY4LDk0LjA2OSAxMTkuNzI3LDk3Ljg0MSBMMTIwLjI1OSw5OC42ODYgQzEyMC4yNiw5OC42ODUgOTQuMjgyLDExMy42ODMgOTQuMjgyLDExMy42ODMgTDcwLjE2Nyw5OS43NjEgTDE0NS42ODUsNTYuMTYxIiBpZD0iRmlsbC0xMSIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05NC4yODIsMTEzLjgxOCBMOTQuMjIzLDExMy43ODUgTDY5LjkzMyw5OS43NjEgTDcwLjEwOCw5OS42NiBMMTQ1LjY4NSw1Ni4wMjYgTDE0NS43NDMsNTYuMDU5IEwxNzAuMDMzLDcwLjA4MyBMMTQzLjg0Miw4NS4yMDUgTDE0My43OTcsODUuMTk1IEMxNDMuNzcyLDg1LjE5IDE0Mi4zMzYsODQuODg4IDE0Mi4zMzYsODQuODg4IEMxMzUuNzg3LDgyLjcxNCAxMjguNzIzLDgxLjE2MyAxMjEuMzI3LDgwLjI3NCBDMTIwLjc4OCw4MC4yMDkgMTIwLjIzNiw4MC4xNzcgMTE5LjY4OSw4MC4xNzcgQzExNS45MzEsODAuMTc3IDExMi42MzUsODEuNzA4IDExMS44NTIsODMuODE5IEMxMTEuNjI0LDg0LjQzMiAxMTEuNjIxLDg1LjA1MyAxMTEuODQyLDg1LjY2NyBDMTEzLjM3Nyw4OS45MjUgMTE2LjA1OCw5My45OTMgMTE5LjgxLDk3Ljc1OCBMMTE5LjgyNiw5Ny43NzkgTDEyMC4zNTIsOTguNjE0IEMxMjAuMzU0LDk4LjYxNyAxMjAuMzU2LDk4LjYyIDEyMC4zNTgsOTguNjI0IEwxMjAuNDIyLDk4LjcyNiBMMTIwLjMxNyw5OC43ODcgQzEyMC4yNjQsOTguODE4IDk0LjU5OSwxMTMuNjM1IDk0LjM0LDExMy43ODUgTDk0LjI4MiwxMTMuODE4IEw5NC4yODIsMTEzLjgxOCBaIE03MC40MDEsOTkuNzYxIEw5NC4yODIsMTEzLjU0OSBMMTE5LjA4NCw5OS4yMjkgQzExOS42Myw5OC45MTQgMTE5LjkzLDk4Ljc0IDEyMC4xMDEsOTguNjU0IEwxMTkuNjM1LDk3LjkxNCBDMTE1Ljg2NCw5NC4xMjcgMTEzLjE2OCw5MC4wMzMgMTExLjYyMiw4NS43NDYgQzExMS4zODIsODUuMDc5IDExMS4zODYsODQuNDA0IDExMS42MzMsODMuNzM4IEMxMTIuNDQ4LDgxLjUzOSAxMTUuODM2LDc5Ljk0MyAxMTkuNjg5LDc5Ljk0MyBDMTIwLjI0Niw3OS45NDMgMTIwLjgwNiw3OS45NzYgMTIxLjM1NSw4MC4wNDIgQzEyOC43NjcsODAuOTMzIDEzNS44NDYsODIuNDg3IDE0Mi4zOTYsODQuNjYzIEMxNDMuMjMyLDg0LjgzOCAxNDMuNjExLDg0LjkxNyAxNDMuNzg2LDg0Ljk2NyBMMTY5LjU2Niw3MC4wODMgTDE0NS42ODUsNTYuMjk1IEw3MC40MDEsOTkuNzYxIEw3MC40MDEsOTkuNzYxIFoiIGlkPSJGaWxsLTEyIiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2Ny4yMywxOC45NzkgTDE2Ny4yMyw2OS44NSBMMTM5LjkwOSw4NS42MjMgTDEzMy40NDgsNzEuNDU2IEMxMzIuNTM4LDY5LjQ2IDEzMC4wMiw2OS43MTggMTI3LjgyNCw3Mi4wMyBDMTI2Ljc2OSw3My4xNCAxMjUuOTMxLDc0LjU4NSAxMjUuNDk0LDc2LjA0OCBMMTE5LjAzNCw5Ny42NzYgTDkxLjcxMiwxMTMuNDUgTDkxLjcxMiw2Mi41NzkgTDE2Ny4yMywxOC45NzkiIGlkPSJGaWxsLTEzIiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTkxLjcxMiwxMTMuNTY3IEM5MS42OTIsMTEzLjU2NyA5MS42NzIsMTEzLjU2MSA5MS42NTMsMTEzLjU1MSBDOTEuNjE4LDExMy41MyA5MS41OTUsMTEzLjQ5MiA5MS41OTUsMTEzLjQ1IEw5MS41OTUsNjIuNTc5IEM5MS41OTUsNjIuNTM3IDkxLjYxOCw2Mi40OTkgOTEuNjUzLDYyLjQ3OCBMMTY3LjE3MiwxOC44NzggQzE2Ny4yMDgsMTguODU3IDE2Ny4yNTIsMTguODU3IDE2Ny4yODgsMTguODc4IEMxNjcuMzI0LDE4Ljg5OSAxNjcuMzQ3LDE4LjkzNyAxNjcuMzQ3LDE4Ljk3OSBMMTY3LjM0Nyw2OS44NSBDMTY3LjM0Nyw2OS44OTEgMTY3LjMyNCw2OS45MyAxNjcuMjg4LDY5Ljk1IEwxMzkuOTY3LDg1LjcyNSBDMTM5LjkzOSw4NS43NDEgMTM5LjkwNSw4NS43NDUgMTM5Ljg3Myw4NS43MzUgQzEzOS44NDIsODUuNzI1IDEzOS44MTYsODUuNzAyIDEzOS44MDIsODUuNjcyIEwxMzMuMzQyLDcxLjUwNCBDMTMyLjk2Nyw3MC42ODIgMTMyLjI4LDcwLjIyOSAxMzEuNDA4LDcwLjIyOSBDMTMwLjMxOSw3MC4yMjkgMTI5LjA0NCw3MC45MTUgMTI3LjkwOCw3Mi4xMSBDMTI2Ljg3NCw3My4yIDEyNi4wMzQsNzQuNjQ3IDEyNS42MDYsNzYuMDgyIEwxMTkuMTQ2LDk3LjcwOSBDMTE5LjEzNyw5Ny43MzggMTE5LjExOCw5Ny43NjIgMTE5LjA5Miw5Ny43NzcgTDkxLjc3LDExMy41NTEgQzkxLjc1MiwxMTMuNTYxIDkxLjczMiwxMTMuNTY3IDkxLjcxMiwxMTMuNTY3IEw5MS43MTIsMTEzLjU2NyBaIE05MS44MjksNjIuNjQ3IEw5MS44MjksMTEzLjI0OCBMMTE4LjkzNSw5Ny41OTggTDEyNS4zODIsNzYuMDE1IEMxMjUuODI3LDc0LjUyNSAxMjYuNjY0LDczLjA4MSAxMjcuNzM5LDcxLjk1IEMxMjguOTE5LDcwLjcwOCAxMzAuMjU2LDY5Ljk5NiAxMzEuNDA4LDY5Ljk5NiBDMTMyLjM3Nyw2OS45OTYgMTMzLjEzOSw3MC40OTcgMTMzLjU1NCw3MS40MDcgTDEzOS45NjEsODUuNDU4IEwxNjcuMTEzLDY5Ljc4MiBMMTY3LjExMywxOS4xODEgTDkxLjgyOSw2Mi42NDcgTDkxLjgyOSw2Mi42NDcgWiIgaWQ9IkZpbGwtMTQiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTY4LjU0MywxOS4yMTMgTDE2OC41NDMsNzAuMDgzIEwxNDEuMjIxLDg1Ljg1NyBMMTM0Ljc2MSw3MS42ODkgQzEzMy44NTEsNjkuNjk0IDEzMS4zMzMsNjkuOTUxIDEyOS4xMzcsNzIuMjYzIEMxMjguMDgyLDczLjM3NCAxMjcuMjQ0LDc0LjgxOSAxMjYuODA3LDc2LjI4MiBMMTIwLjM0Niw5Ny45MDkgTDkzLjAyNSwxMTMuNjgzIEw5My4wMjUsNjIuODEzIEwxNjguNTQzLDE5LjIxMyIgaWQ9IkZpbGwtMTUiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOTMuMDI1LDExMy44IEM5My4wMDUsMTEzLjggOTIuOTg0LDExMy43OTUgOTIuOTY2LDExMy43ODUgQzkyLjkzMSwxMTMuNzY0IDkyLjkwOCwxMTMuNzI1IDkyLjkwOCwxMTMuNjg0IEw5Mi45MDgsNjIuODEzIEM5Mi45MDgsNjIuNzcxIDkyLjkzMSw2Mi43MzMgOTIuOTY2LDYyLjcxMiBMMTY4LjQ4NCwxOS4xMTIgQzE2OC41MiwxOS4wOSAxNjguNTY1LDE5LjA5IDE2OC42MDEsMTkuMTEyIEMxNjguNjM3LDE5LjEzMiAxNjguNjYsMTkuMTcxIDE2OC42NiwxOS4yMTIgTDE2OC42Niw3MC4wODMgQzE2OC42Niw3MC4xMjUgMTY4LjYzNyw3MC4xNjQgMTY4LjYwMSw3MC4xODQgTDE0MS4yOCw4NS45NTggQzE0MS4yNTEsODUuOTc1IDE0MS4yMTcsODUuOTc5IDE0MS4xODYsODUuOTY4IEMxNDEuMTU0LDg1Ljk1OCAxNDEuMTI5LDg1LjkzNiAxNDEuMTE1LDg1LjkwNiBMMTM0LjY1NSw3MS43MzggQzEzNC4yOCw3MC45MTUgMTMzLjU5Myw3MC40NjMgMTMyLjcyLDcwLjQ2MyBDMTMxLjYzMiw3MC40NjMgMTMwLjM1Nyw3MS4xNDggMTI5LjIyMSw3Mi4zNDQgQzEyOC4xODYsNzMuNDMzIDEyNy4zNDcsNzQuODgxIDEyNi45MTksNzYuMzE1IEwxMjAuNDU4LDk3Ljk0MyBDMTIwLjQ1LDk3Ljk3MiAxMjAuNDMxLDk3Ljk5NiAxMjAuNDA1LDk4LjAxIEw5My4wODMsMTEzLjc4NSBDOTMuMDY1LDExMy43OTUgOTMuMDQ1LDExMy44IDkzLjAyNSwxMTMuOCBMOTMuMDI1LDExMy44IFogTTkzLjE0Miw2Mi44ODEgTDkzLjE0MiwxMTMuNDgxIEwxMjAuMjQ4LDk3LjgzMiBMMTI2LjY5NSw3Ni4yNDggQzEyNy4xNCw3NC43NTggMTI3Ljk3Nyw3My4zMTUgMTI5LjA1Miw3Mi4xODMgQzEzMC4yMzEsNzAuOTQyIDEzMS41NjgsNzAuMjI5IDEzMi43Miw3MC4yMjkgQzEzMy42ODksNzAuMjI5IDEzNC40NTIsNzAuNzMxIDEzNC44NjcsNzEuNjQxIEwxNDEuMjc0LDg1LjY5MiBMMTY4LjQyNiw3MC4wMTYgTDE2OC40MjYsMTkuNDE1IEw5My4xNDIsNjIuODgxIEw5My4xNDIsNjIuODgxIFoiIGlkPSJGaWxsLTE2IiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2OS44LDcwLjA4MyBMMTQyLjQ3OCw4NS44NTcgTDEzNi4wMTgsNzEuNjg5IEMxMzUuMTA4LDY5LjY5NCAxMzIuNTksNjkuOTUxIDEzMC4zOTMsNzIuMjYzIEMxMjkuMzM5LDczLjM3NCAxMjguNSw3NC44MTkgMTI4LjA2NCw3Ni4yODIgTDEyMS42MDMsOTcuOTA5IEw5NC4yODIsMTEzLjY4MyBMOTQuMjgyLDYyLjgxMyBMMTY5LjgsMTkuMjEzIEwxNjkuOCw3MC4wODMgWiIgaWQ9IkZpbGwtMTciIGZpbGw9IiNGQUZBRkEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOTQuMjgyLDExMy45MTcgQzk0LjI0MSwxMTMuOTE3IDk0LjIwMSwxMTMuOTA3IDk0LjE2NSwxMTMuODg2IEM5NC4wOTMsMTEzLjg0NSA5NC4wNDgsMTEzLjc2NyA5NC4wNDgsMTEzLjY4NCBMOTQuMDQ4LDYyLjgxMyBDOTQuMDQ4LDYyLjczIDk0LjA5Myw2Mi42NTIgOTQuMTY1LDYyLjYxMSBMMTY5LjY4MywxOS4wMSBDMTY5Ljc1NSwxOC45NjkgMTY5Ljg0NCwxOC45NjkgMTY5LjkxNywxOS4wMSBDMTY5Ljk4OSwxOS4wNTIgMTcwLjAzMywxOS4xMjkgMTcwLjAzMywxOS4yMTIgTDE3MC4wMzMsNzAuMDgzIEMxNzAuMDMzLDcwLjE2NiAxNjkuOTg5LDcwLjI0NCAxNjkuOTE3LDcwLjI4NSBMMTQyLjU5NSw4Ni4wNiBDMTQyLjUzOCw4Ni4wOTIgMTQyLjQ2OSw4Ni4xIDE0Mi40MDcsODYuMDggQzE0Mi4zNDQsODYuMDYgMTQyLjI5Myw4Ni4wMTQgMTQyLjI2Niw4NS45NTQgTDEzNS44MDUsNzEuNzg2IEMxMzUuNDQ1LDcwLjk5NyAxMzQuODEzLDcwLjU4IDEzMy45NzcsNzAuNTggQzEzMi45MjEsNzAuNTggMTMxLjY3Niw3MS4yNTIgMTMwLjU2Miw3Mi40MjQgQzEyOS41NCw3My41MDEgMTI4LjcxMSw3NC45MzEgMTI4LjI4Nyw3Ni4zNDggTDEyMS44MjcsOTcuOTc2IEMxMjEuODEsOTguMDM0IDEyMS43NzEsOTguMDgyIDEyMS43Miw5OC4xMTIgTDk0LjM5OCwxMTMuODg2IEM5NC4zNjIsMTEzLjkwNyA5NC4zMjIsMTEzLjkxNyA5NC4yODIsMTEzLjkxNyBMOTQuMjgyLDExMy45MTcgWiBNOTQuNTE1LDYyLjk0OCBMOTQuNTE1LDExMy4yNzkgTDEyMS40MDYsOTcuNzU0IEwxMjcuODQsNzYuMjE1IEMxMjguMjksNzQuNzA4IDEyOS4xMzcsNzMuMjQ3IDEzMC4yMjQsNzIuMTAzIEMxMzEuNDI1LDcwLjgzOCAxMzIuNzkzLDcwLjExMiAxMzMuOTc3LDcwLjExMiBDMTM0Ljk5NSw3MC4xMTIgMTM1Ljc5NSw3MC42MzggMTM2LjIzLDcxLjU5MiBMMTQyLjU4NCw4NS41MjYgTDE2OS41NjYsNjkuOTQ4IEwxNjkuNTY2LDE5LjYxNyBMOTQuNTE1LDYyLjk0OCBMOTQuNTE1LDYyLjk0OCBaIiBpZD0iRmlsbC0xOCIgZmlsbD0iIzYwN0Q4QiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMDkuODk0LDkyLjk0MyBMMTA5Ljg5NCw5Mi45NDMgQzEwOC4xMiw5Mi45NDMgMTA2LjY1Myw5Mi4yMTggMTA1LjY1LDkwLjgyMyBDMTA1LjU4Myw5MC43MzEgMTA1LjU5Myw5MC42MSAxMDUuNjczLDkwLjUyOSBDMTA1Ljc1Myw5MC40NDggMTA1Ljg4LDkwLjQ0IDEwNS45NzQsOTAuNTA2IEMxMDYuNzU0LDkxLjA1MyAxMDcuNjc5LDkxLjMzMyAxMDguNzI0LDkxLjMzMyBDMTEwLjA0Nyw5MS4zMzMgMTExLjQ3OCw5MC44OTQgMTEyLjk4LDkwLjAyNyBDMTE4LjI5MSw4Ni45NiAxMjIuNjExLDc5LjUwOSAxMjIuNjExLDczLjQxNiBDMTIyLjYxMSw3MS40ODkgMTIyLjE2OSw2OS44NTYgMTIxLjMzMyw2OC42OTIgQzEyMS4yNjYsNjguNiAxMjEuMjc2LDY4LjQ3MyAxMjEuMzU2LDY4LjM5MiBDMTIxLjQzNiw2OC4zMTEgMTIxLjU2Myw2OC4yOTkgMTIxLjY1Niw2OC4zNjUgQzEyMy4zMjcsNjkuNTM3IDEyNC4yNDcsNzEuNzQ2IDEyNC4yNDcsNzQuNTg0IEMxMjQuMjQ3LDgwLjgyNiAxMTkuODIxLDg4LjQ0NyAxMTQuMzgyLDkxLjU4NyBDMTEyLjgwOCw5Mi40OTUgMTExLjI5OCw5Mi45NDMgMTA5Ljg5NCw5Mi45NDMgTDEwOS44OTQsOTIuOTQzIFogTTEwNi45MjUsOTEuNDAxIEMxMDcuNzM4LDkyLjA1MiAxMDguNzQ1LDkyLjI3OCAxMDkuODkzLDkyLjI3OCBMMTA5Ljg5NCw5Mi4yNzggQzExMS4yMTUsOTIuMjc4IDExMi42NDcsOTEuOTUxIDExNC4xNDgsOTEuMDg0IEMxMTkuNDU5LDg4LjAxNyAxMjMuNzgsODAuNjIxIDEyMy43OCw3NC41MjggQzEyMy43OCw3Mi41NDkgMTIzLjMxNyw3MC45MjkgMTIyLjQ1NCw2OS43NjcgQzEyMi44NjUsNzAuODAyIDEyMy4wNzksNzIuMDQyIDEyMy4wNzksNzMuNDAyIEMxMjMuMDc5LDc5LjY0NSAxMTguNjUzLDg3LjI4NSAxMTMuMjE0LDkwLjQyNSBDMTExLjY0LDkxLjMzNCAxMTAuMTMsOTEuNzQyIDEwOC43MjQsOTEuNzQyIEMxMDguMDgzLDkxLjc0MiAxMDcuNDgxLDkxLjU5MyAxMDYuOTI1LDkxLjQwMSBMMTA2LjkyNSw5MS40MDEgWiIgaWQ9IkZpbGwtMTkiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTEzLjA5Nyw5MC4yMyBDMTE4LjQ4MSw4Ny4xMjIgMTIyLjg0NSw3OS41OTQgMTIyLjg0NSw3My40MTYgQzEyMi44NDUsNzEuMzY1IDEyMi4zNjIsNjkuNzI0IDEyMS41MjIsNjguNTU2IEMxMTkuNzM4LDY3LjMwNCAxMTcuMTQ4LDY3LjM2MiAxMTQuMjY1LDY5LjAyNiBDMTA4Ljg4MSw3Mi4xMzQgMTA0LjUxNyw3OS42NjIgMTA0LjUxNyw4NS44NCBDMTA0LjUxNyw4Ny44OTEgMTA1LDg5LjUzMiAxMDUuODQsOTAuNyBDMTA3LjYyNCw5MS45NTIgMTEwLjIxNCw5MS44OTQgMTEzLjA5Nyw5MC4yMyIgaWQ9IkZpbGwtMjAiIGZpbGw9IiNGQUZBRkEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTA4LjcyNCw5MS42MTQgTDEwOC43MjQsOTEuNjE0IEMxMDcuNTgyLDkxLjYxNCAxMDYuNTY2LDkxLjQwMSAxMDUuNzA1LDkwLjc5NyBDMTA1LjY4NCw5MC43ODMgMTA1LjY2NSw5MC44MTEgMTA1LjY1LDkwLjc5IEMxMDQuNzU2LDg5LjU0NiAxMDQuMjgzLDg3Ljg0MiAxMDQuMjgzLDg1LjgxNyBDMTA0LjI4Myw3OS41NzUgMTA4LjcwOSw3MS45NTMgMTE0LjE0OCw2OC44MTIgQzExNS43MjIsNjcuOTA0IDExNy4yMzIsNjcuNDQ5IDExOC42MzgsNjcuNDQ5IEMxMTkuNzgsNjcuNDQ5IDEyMC43OTYsNjcuNzU4IDEyMS42NTYsNjguMzYyIEMxMjEuNjc4LDY4LjM3NyAxMjEuNjk3LDY4LjM5NyAxMjEuNzEyLDY4LjQxOCBDMTIyLjYwNiw2OS42NjIgMTIzLjA3OSw3MS4zOSAxMjMuMDc5LDczLjQxNSBDMTIzLjA3OSw3OS42NTggMTE4LjY1Myw4Ny4xOTggMTEzLjIxNCw5MC4zMzggQzExMS42NCw5MS4yNDcgMTEwLjEzLDkxLjYxNCAxMDguNzI0LDkxLjYxNCBMMTA4LjcyNCw5MS42MTQgWiBNMTA2LjAwNiw5MC41MDUgQzEwNi43OCw5MS4wMzcgMTA3LjY5NCw5MS4yODEgMTA4LjcyNCw5MS4yODEgQzExMC4wNDcsOTEuMjgxIDExMS40NzgsOTAuODY4IDExMi45OCw5MC4wMDEgQzExOC4yOTEsODYuOTM1IDEyMi42MTEsNzkuNDk2IDEyMi42MTEsNzMuNDAzIEMxMjIuNjExLDcxLjQ5NCAxMjIuMTc3LDY5Ljg4IDEyMS4zNTYsNjguNzE4IEMxMjAuNTgyLDY4LjE4NSAxMTkuNjY4LDY3LjkxOSAxMTguNjM4LDY3LjkxOSBDMTE3LjMxNSw2Ny45MTkgMTE1Ljg4Myw2OC4zNiAxMTQuMzgyLDY5LjIyNyBDMTA5LjA3MSw3Mi4yOTMgMTA0Ljc1MSw3OS43MzMgMTA0Ljc1MSw4NS44MjYgQzEwNC43NTEsODcuNzM1IDEwNS4xODUsODkuMzQzIDEwNi4wMDYsOTAuNTA1IEwxMDYuMDA2LDkwLjUwNSBaIiBpZD0iRmlsbC0yMSIgZmlsbD0iIzYwN0Q4QiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNDkuMzE4LDcuMjYyIEwxMzkuMzM0LDE2LjE0IEwxNTUuMjI3LDI3LjE3MSBMMTYwLjgxNiwyMS4wNTkgTDE0OS4zMTgsNy4yNjIiIGlkPSJGaWxsLTIyIiBmaWxsPSIjRkFGQUZBIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE2OS42NzYsMTMuODQgTDE1OS45MjgsMTkuNDY3IEMxNTYuMjg2LDIxLjU3IDE1MC40LDIxLjU4IDE0Ni43ODEsMTkuNDkxIEMxNDMuMTYxLDE3LjQwMiAxNDMuMTgsMTQuMDAzIDE0Ni44MjIsMTEuOSBMMTU2LjMxNyw2LjI5MiBMMTQ5LjU4OCwyLjQwNyBMNjcuNzUyLDQ5LjQ3OCBMMTEzLjY3NSw3NS45OTIgTDExNi43NTYsNzQuMjEzIEMxMTcuMzg3LDczLjg0OCAxMTcuNjI1LDczLjMxNSAxMTcuMzc0LDcyLjgyMyBDMTE1LjAxNyw2OC4xOTEgMTE0Ljc4MSw2My4yNzcgMTE2LjY5MSw1OC41NjEgQzEyMi4zMjksNDQuNjQxIDE0MS4yLDMzLjc0NiAxNjUuMzA5LDMwLjQ5MSBDMTczLjQ3OCwyOS4zODggMTgxLjk4OSwyOS41MjQgMTkwLjAxMywzMC44ODUgQzE5MC44NjUsMzEuMDMgMTkxLjc4OSwzMC44OTMgMTkyLjQyLDMwLjUyOCBMMTk1LjUwMSwyOC43NSBMMTY5LjY3NiwxMy44NCIgaWQ9IkZpbGwtMjMiIGZpbGw9IiNGQUZBRkEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTEzLjY3NSw3Ni40NTkgQzExMy41OTQsNzYuNDU5IDExMy41MTQsNzYuNDM4IDExMy40NDIsNzYuMzk3IEw2Ny41MTgsNDkuODgyIEM2Ny4zNzQsNDkuNzk5IDY3LjI4NCw0OS42NDUgNjcuMjg1LDQ5LjQ3OCBDNjcuMjg1LDQ5LjMxMSA2Ny4zNzQsNDkuMTU3IDY3LjUxOSw0OS4wNzMgTDE0OS4zNTUsMi4wMDIgQzE0OS40OTksMS45MTkgMTQ5LjY3NywxLjkxOSAxNDkuODIxLDIuMDAyIEwxNTYuNTUsNS44ODcgQzE1Ni43NzQsNi4wMTcgMTU2Ljg1LDYuMzAyIDE1Ni43MjIsNi41MjYgQzE1Ni41OTIsNi43NDkgMTU2LjMwNyw2LjgyNiAxNTYuMDgzLDYuNjk2IEwxNDkuNTg3LDIuOTQ2IEw2OC42ODcsNDkuNDc5IEwxMTMuNjc1LDc1LjQ1MiBMMTE2LjUyMyw3My44MDggQzExNi43MTUsNzMuNjk3IDExNy4xNDMsNzMuMzk5IDExNi45NTgsNzMuMDM1IEMxMTQuNTQyLDY4LjI4NyAxMTQuMyw2My4yMjEgMTE2LjI1OCw1OC4zODUgQzExOS4wNjQsNTEuNDU4IDEyNS4xNDMsNDUuMTQzIDEzMy44NCw0MC4xMjIgQzE0Mi40OTcsMzUuMTI0IDE1My4zNTgsMzEuNjMzIDE2NS4yNDcsMzAuMDI4IEMxNzMuNDQ1LDI4LjkyMSAxODIuMDM3LDI5LjA1OCAxOTAuMDkxLDMwLjQyNSBDMTkwLjgzLDMwLjU1IDE5MS42NTIsMzAuNDMyIDE5Mi4xODYsMzAuMTI0IEwxOTQuNTY3LDI4Ljc1IEwxNjkuNDQyLDE0LjI0NCBDMTY5LjIxOSwxNC4xMTUgMTY5LjE0MiwxMy44MjkgMTY5LjI3MSwxMy42MDYgQzE2OS40LDEzLjM4MiAxNjkuNjg1LDEzLjMwNiAxNjkuOTA5LDEzLjQzNSBMMTk1LjczNCwyOC4zNDUgQzE5NS44NzksMjguNDI4IDE5NS45NjgsMjguNTgzIDE5NS45NjgsMjguNzUgQzE5NS45NjgsMjguOTE2IDE5NS44NzksMjkuMDcxIDE5NS43MzQsMjkuMTU0IEwxOTIuNjUzLDMwLjkzMyBDMTkxLjkzMiwzMS4zNSAxOTAuODksMzEuNTA4IDE4OS45MzUsMzEuMzQ2IEMxODEuOTcyLDI5Ljk5NSAxNzMuNDc4LDI5Ljg2IDE2NS4zNzIsMzAuOTU0IEMxNTMuNjAyLDMyLjU0MyAxNDIuODYsMzUuOTkzIDEzNC4zMDcsNDAuOTMxIEMxMjUuNzkzLDQ1Ljg0NyAxMTkuODUxLDUyLjAwNCAxMTcuMTI0LDU4LjczNiBDMTE1LjI3LDYzLjMxNCAxMTUuNTAxLDY4LjExMiAxMTcuNzksNzIuNjExIEMxMTguMTYsNzMuMzM2IDExNy44NDUsNzQuMTI0IDExNi45OSw3NC42MTcgTDExMy45MDksNzYuMzk3IEMxMTMuODM2LDc2LjQzOCAxMTMuNzU2LDc2LjQ1OSAxMTMuNjc1LDc2LjQ1OSIgaWQ9IkZpbGwtMjQiIGZpbGw9IiM0NTVBNjQiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTUzLjMxNiwyMS4yNzkgQzE1MC45MDMsMjEuMjc5IDE0OC40OTUsMjAuNzUxIDE0Ni42NjQsMTkuNjkzIEMxNDQuODQ2LDE4LjY0NCAxNDMuODQ0LDE3LjIzMiAxNDMuODQ0LDE1LjcxOCBDMTQzLjg0NCwxNC4xOTEgMTQ0Ljg2LDEyLjc2MyAxNDYuNzA1LDExLjY5OCBMMTU2LjE5OCw2LjA5MSBDMTU2LjMwOSw2LjAyNSAxNTYuNDUyLDYuMDYyIDE1Ni41MTgsNi4xNzMgQzE1Ni41ODMsNi4yODQgMTU2LjU0Nyw2LjQyNyAxNTYuNDM2LDYuNDkzIEwxNDYuOTQsMTIuMTAyIEMxNDUuMjQ0LDEzLjA4MSAxNDQuMzEyLDE0LjM2NSAxNDQuMzEyLDE1LjcxOCBDMTQ0LjMxMiwxNy4wNTggMTQ1LjIzLDE4LjMyNiAxNDYuODk3LDE5LjI4OSBDMTUwLjQ0NiwyMS4zMzggMTU2LjI0LDIxLjMyNyAxNTkuODExLDE5LjI2NSBMMTY5LjU1OSwxMy42MzcgQzE2OS42NywxMy41NzMgMTY5LjgxMywxMy42MTEgMTY5Ljg3OCwxMy43MjMgQzE2OS45NDMsMTMuODM0IDE2OS45MDQsMTMuOTc3IDE2OS43OTMsMTQuMDQyIEwxNjAuMDQ1LDE5LjY3IEMxNTguMTg3LDIwLjc0MiAxNTUuNzQ5LDIxLjI3OSAxNTMuMzE2LDIxLjI3OSIgaWQ9IkZpbGwtMjUiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTEzLjY3NSw3NS45OTIgTDY3Ljc2Miw0OS40ODQiIGlkPSJGaWxsLTI2IiBmaWxsPSIjNDU1QTY0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTExMy42NzUsNzYuMzQyIEMxMTMuNjE1LDc2LjM0MiAxMTMuNTU1LDc2LjMyNyAxMTMuNSw3Ni4yOTUgTDY3LjU4Nyw0OS43ODcgQzY3LjQxOSw0OS42OSA2Ny4zNjIsNDkuNDc2IDY3LjQ1OSw0OS4zMDkgQzY3LjU1Niw0OS4xNDEgNjcuNzcsNDkuMDgzIDY3LjkzNyw0OS4xOCBMMTEzLjg1LDc1LjY4OCBDMTE0LjAxOCw3NS43ODUgMTE0LjA3NSw3NiAxMTMuOTc4LDc2LjE2NyBDMTEzLjkxNCw3Ni4yNzkgMTEzLjc5Niw3Ni4zNDIgMTEzLjY3NSw3Ni4zNDIiIGlkPSJGaWxsLTI3IiBmaWxsPSIjNDU1QTY0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTY3Ljc2Miw0OS40ODQgTDY3Ljc2MiwxMDMuNDg1IEM2Ny43NjIsMTA0LjU3NSA2OC41MzIsMTA1LjkwMyA2OS40ODIsMTA2LjQ1MiBMMTExLjk1NSwxMzAuOTczIEMxMTIuOTA1LDEzMS41MjIgMTEzLjY3NSwxMzEuMDgzIDExMy42NzUsMTI5Ljk5MyBMMTEzLjY3NSw3NS45OTIiIGlkPSJGaWxsLTI4IiBmaWxsPSIjRkFGQUZBIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTExMi43MjcsMTMxLjU2MSBDMTEyLjQzLDEzMS41NjEgMTEyLjEwNywxMzEuNDY2IDExMS43OCwxMzEuMjc2IEw2OS4zMDcsMTA2Ljc1NSBDNjguMjQ0LDEwNi4xNDIgNjcuNDEyLDEwNC43MDUgNjcuNDEyLDEwMy40ODUgTDY3LjQxMiw0OS40ODQgQzY3LjQxMiw0OS4yOSA2Ny41NjksNDkuMTM0IDY3Ljc2Miw0OS4xMzQgQzY3Ljk1Niw0OS4xMzQgNjguMTEzLDQ5LjI5IDY4LjExMyw0OS40ODQgTDY4LjExMywxMDMuNDg1IEM2OC4xMTMsMTA0LjQ0NSA2OC44MiwxMDUuNjY1IDY5LjY1NywxMDYuMTQ4IEwxMTIuMTMsMTMwLjY3IEMxMTIuNDc0LDEzMC44NjggMTEyLjc5MSwxMzAuOTEzIDExMywxMzAuNzkyIEMxMTMuMjA2LDEzMC42NzMgMTEzLjMyNSwxMzAuMzgxIDExMy4zMjUsMTI5Ljk5MyBMMTEzLjMyNSw3NS45OTIgQzExMy4zMjUsNzUuNzk4IDExMy40ODIsNzUuNjQxIDExMy42NzUsNzUuNjQxIEMxMTMuODY5LDc1LjY0MSAxMTQuMDI1LDc1Ljc5OCAxMTQuMDI1LDc1Ljk5MiBMMTE0LjAyNSwxMjkuOTkzIEMxMTQuMDI1LDEzMC42NDggMTEzLjc4NiwxMzEuMTQ3IDExMy4zNSwxMzEuMzk5IEMxMTMuMTYyLDEzMS41MDcgMTEyLjk1MiwxMzEuNTYxIDExMi43MjcsMTMxLjU2MSIgaWQ9IkZpbGwtMjkiIGZpbGw9IiM0NTVBNjQiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTEyLjg2LDQwLjUxMiBDMTEyLjg2LDQwLjUxMiAxMTIuODYsNDAuNTEyIDExMi44NTksNDAuNTEyIEMxMTAuNTQxLDQwLjUxMiAxMDguMzYsMzkuOTkgMTA2LjcxNywzOS4wNDEgQzEwNS4wMTIsMzguMDU3IDEwNC4wNzQsMzYuNzI2IDEwNC4wNzQsMzUuMjkyIEMxMDQuMDc0LDMzLjg0NyAxMDUuMDI2LDMyLjUwMSAxMDYuNzU0LDMxLjUwNCBMMTE4Ljc5NSwyNC41NTEgQzEyMC40NjMsMjMuNTg5IDEyMi42NjksMjMuMDU4IDEyNS4wMDcsMjMuMDU4IEMxMjcuMzI1LDIzLjA1OCAxMjkuNTA2LDIzLjU4MSAxMzEuMTUsMjQuNTMgQzEzMi44NTQsMjUuNTE0IDEzMy43OTMsMjYuODQ1IDEzMy43OTMsMjguMjc4IEMxMzMuNzkzLDI5LjcyNCAxMzIuODQxLDMxLjA2OSAxMzEuMTEzLDMyLjA2NyBMMTE5LjA3MSwzOS4wMTkgQzExNy40MDMsMzkuOTgyIDExNS4xOTcsNDAuNTEyIDExMi44Niw0MC41MTIgTDExMi44Niw0MC41MTIgWiBNMTI1LjAwNywyMy43NTkgQzEyMi43OSwyMy43NTkgMTIwLjcwOSwyNC4yNTYgMTE5LjE0NiwyNS4xNTggTDEwNy4xMDQsMzIuMTEgQzEwNS42MDIsMzIuOTc4IDEwNC43NzQsMzQuMTA4IDEwNC43NzQsMzUuMjkyIEMxMDQuNzc0LDM2LjQ2NSAxMDUuNTg5LDM3LjU4MSAxMDcuMDY3LDM4LjQzNCBDMTA4LjYwNSwzOS4zMjMgMTEwLjY2MywzOS44MTIgMTEyLjg1OSwzOS44MTIgTDExMi44NiwzOS44MTIgQzExNS4wNzYsMzkuODEyIDExNy4xNTgsMzkuMzE1IDExOC43MjEsMzguNDEzIEwxMzAuNzYyLDMxLjQ2IEMxMzIuMjY0LDMwLjU5MyAxMzMuMDkyLDI5LjQ2MyAxMzMuMDkyLDI4LjI3OCBDMTMzLjA5MiwyNy4xMDYgMTMyLjI3OCwyNS45OSAxMzAuOCwyNS4xMzYgQzEyOS4yNjEsMjQuMjQ4IDEyNy4yMDQsMjMuNzU5IDEyNS4wMDcsMjMuNzU5IEwxMjUuMDA3LDIzLjc1OSBaIiBpZD0iRmlsbC0zMCIgZmlsbD0iIzYwN0Q4QiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNjUuNjMsMTYuMjE5IEwxNTkuODk2LDE5LjUzIEMxNTYuNzI5LDIxLjM1OCAxNTEuNjEsMjEuMzY3IDE0OC40NjMsMTkuNTUgQzE0NS4zMTYsMTcuNzMzIDE0NS4zMzIsMTQuNzc4IDE0OC40OTksMTIuOTQ5IEwxNTQuMjMzLDkuNjM5IEwxNjUuNjMsMTYuMjE5IiBpZD0iRmlsbC0zMSIgZmlsbD0iI0ZBRkFGQSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNTQuMjMzLDEwLjQ0OCBMMTY0LjIyOCwxNi4yMTkgTDE1OS41NDYsMTguOTIzIEMxNTguMTEyLDE5Ljc1IDE1Ni4xOTQsMjAuMjA2IDE1NC4xNDcsMjAuMjA2IEMxNTIuMTE4LDIwLjIwNiAxNTAuMjI0LDE5Ljc1NyAxNDguODE0LDE4Ljk0MyBDMTQ3LjUyNCwxOC4xOTkgMTQ2LjgxNCwxNy4yNDkgMTQ2LjgxNCwxNi4yNjkgQzE0Ni44MTQsMTUuMjc4IDE0Ny41MzcsMTQuMzE0IDE0OC44NSwxMy41NTYgTDE1NC4yMzMsMTAuNDQ4IE0xNTQuMjMzLDkuNjM5IEwxNDguNDk5LDEyLjk0OSBDMTQ1LjMzMiwxNC43NzggMTQ1LjMxNiwxNy43MzMgMTQ4LjQ2MywxOS41NSBDMTUwLjAzMSwyMC40NTUgMTUyLjA4NiwyMC45MDcgMTU0LjE0NywyMC45MDcgQzE1Ni4yMjQsMjAuOTA3IDE1OC4zMDYsMjAuNDQ3IDE1OS44OTYsMTkuNTMgTDE2NS42MywxNi4yMTkgTDE1NC4yMzMsOS42MzkiIGlkPSJGaWxsLTMyIiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0NS40NDUsNzIuNjY3IEwxNDUuNDQ1LDcyLjY2NyBDMTQzLjY3Miw3Mi42NjcgMTQyLjIwNCw3MS44MTcgMTQxLjIwMiw3MC40MjIgQzE0MS4xMzUsNzAuMzMgMTQxLjE0NSw3MC4xNDcgMTQxLjIyNSw3MC4wNjYgQzE0MS4zMDUsNjkuOTg1IDE0MS40MzIsNjkuOTQ2IDE0MS41MjUsNzAuMDExIEMxNDIuMzA2LDcwLjU1OSAxNDMuMjMxLDcwLjgyMyAxNDQuMjc2LDcwLjgyMiBDMTQ1LjU5OCw3MC44MjIgMTQ3LjAzLDcwLjM3NiAxNDguNTMyLDY5LjUwOSBDMTUzLjg0Miw2Ni40NDMgMTU4LjE2Myw1OC45ODcgMTU4LjE2Myw1Mi44OTQgQzE1OC4xNjMsNTAuOTY3IDE1Ny43MjEsNDkuMzMyIDE1Ni44ODQsNDguMTY4IEMxNTYuODE4LDQ4LjA3NiAxNTYuODI4LDQ3Ljk0OCAxNTYuOTA4LDQ3Ljg2NyBDMTU2Ljk4OCw0Ny43ODYgMTU3LjExNCw0Ny43NzQgMTU3LjIwOCw0Ny44NCBDMTU4Ljg3OCw0OS4wMTIgMTU5Ljc5OCw1MS4yMiAxNTkuNzk4LDU0LjA1OSBDMTU5Ljc5OCw2MC4zMDEgMTU1LjM3Myw2OC4wNDYgMTQ5LjkzMyw3MS4xODYgQzE0OC4zNiw3Mi4wOTQgMTQ2Ljg1LDcyLjY2NyAxNDUuNDQ1LDcyLjY2NyBMMTQ1LjQ0NSw3Mi42NjcgWiBNMTQyLjQ3Niw3MSBDMTQzLjI5LDcxLjY1MSAxNDQuMjk2LDcyLjAwMiAxNDUuNDQ1LDcyLjAwMiBDMTQ2Ljc2Nyw3Mi4wMDIgMTQ4LjE5OCw3MS41NSAxNDkuNyw3MC42ODIgQzE1NS4wMSw2Ny42MTcgMTU5LjMzMSw2MC4xNTkgMTU5LjMzMSw1NC4wNjUgQzE1OS4zMzEsNTIuMDg1IDE1OC44NjgsNTAuNDM1IDE1OC4wMDYsNDkuMjcyIEMxNTguNDE3LDUwLjMwNyAxNTguNjMsNTEuNTMyIDE1OC42Myw1Mi44OTIgQzE1OC42Myw1OS4xMzQgMTU0LjIwNSw2Ni43NjcgMTQ4Ljc2NSw2OS45MDcgQzE0Ny4xOTIsNzAuODE2IDE0NS42ODEsNzEuMjgzIDE0NC4yNzYsNzEuMjgzIEMxNDMuNjM0LDcxLjI4MyAxNDMuMDMzLDcxLjE5MiAxNDIuNDc2LDcxIEwxNDIuNDc2LDcxIFoiIGlkPSJGaWxsLTMzIiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0OC42NDgsNjkuNzA0IEMxNTQuMDMyLDY2LjU5NiAxNTguMzk2LDU5LjA2OCAxNTguMzk2LDUyLjg5MSBDMTU4LjM5Niw1MC44MzkgMTU3LjkxMyw0OS4xOTggMTU3LjA3NCw0OC4wMyBDMTU1LjI4OSw0Ni43NzggMTUyLjY5OSw0Ni44MzYgMTQ5LjgxNiw0OC41MDEgQzE0NC40MzMsNTEuNjA5IDE0MC4wNjgsNTkuMTM3IDE0MC4wNjgsNjUuMzE0IEMxNDAuMDY4LDY3LjM2NSAxNDAuNTUyLDY5LjAwNiAxNDEuMzkxLDcwLjE3NCBDMTQzLjE3Niw3MS40MjcgMTQ1Ljc2NSw3MS4zNjkgMTQ4LjY0OCw2OS43MDQiIGlkPSJGaWxsLTM0IiBmaWxsPSIjRkFGQUZBIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE0NC4yNzYsNzEuMjc2IEwxNDQuMjc2LDcxLjI3NiBDMTQzLjEzMyw3MS4yNzYgMTQyLjExOCw3MC45NjkgMTQxLjI1Nyw3MC4zNjUgQzE0MS4yMzYsNzAuMzUxIDE0MS4yMTcsNzAuMzMyIDE0MS4yMDIsNzAuMzExIEMxNDAuMzA3LDY5LjA2NyAxMzkuODM1LDY3LjMzOSAxMzkuODM1LDY1LjMxNCBDMTM5LjgzNSw1OS4wNzMgMTQ0LjI2LDUxLjQzOSAxNDkuNyw0OC4yOTggQzE1MS4yNzMsNDcuMzkgMTUyLjc4NCw0Ni45MjkgMTU0LjE4OSw0Ni45MjkgQzE1NS4zMzIsNDYuOTI5IDE1Ni4zNDcsNDcuMjM2IDE1Ny4yMDgsNDcuODM5IEMxNTcuMjI5LDQ3Ljg1NCAxNTcuMjQ4LDQ3Ljg3MyAxNTcuMjYzLDQ3Ljg5NCBDMTU4LjE1Nyw0OS4xMzggMTU4LjYzLDUwLjg2NSAxNTguNjMsNTIuODkxIEMxNTguNjMsNTkuMTMyIDE1NC4yMDUsNjYuNzY2IDE0OC43NjUsNjkuOTA3IEMxNDcuMTkyLDcwLjgxNSAxNDUuNjgxLDcxLjI3NiAxNDQuMjc2LDcxLjI3NiBMMTQ0LjI3Niw3MS4yNzYgWiBNMTQxLjU1OCw3MC4xMDQgQzE0Mi4zMzEsNzAuNjM3IDE0My4yNDUsNzEuMDA1IDE0NC4yNzYsNzEuMDA1IEMxNDUuNTk4LDcxLjAwNSAxNDcuMDMsNzAuNDY3IDE0OC41MzIsNjkuNiBDMTUzLjg0Miw2Ni41MzQgMTU4LjE2Myw1OS4wMzMgMTU4LjE2Myw1Mi45MzkgQzE1OC4xNjMsNTEuMDMxIDE1Ny43MjksNDkuMzg1IDE1Ni45MDcsNDguMjIzIEMxNTYuMTMzLDQ3LjY5MSAxNTUuMjE5LDQ3LjQwOSAxNTQuMTg5LDQ3LjQwOSBDMTUyLjg2Nyw0Ny40MDkgMTUxLjQzNSw0Ny44NDIgMTQ5LjkzMyw0OC43MDkgQzE0NC42MjMsNTEuNzc1IDE0MC4zMDIsNTkuMjczIDE0MC4zMDIsNjUuMzY2IEMxNDAuMzAyLDY3LjI3NiAxNDAuNzM2LDY4Ljk0MiAxNDEuNTU4LDcwLjEwNCBMMTQxLjU1OCw3MC4xMDQgWiIgaWQ9IkZpbGwtMzUiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTUwLjcyLDY1LjM2MSBMMTUwLjM1Nyw2NS4wNjYgQzE1MS4xNDcsNjQuMDkyIDE1MS44NjksNjMuMDQgMTUyLjUwNSw2MS45MzggQzE1My4zMTMsNjAuNTM5IDE1My45NzgsNTkuMDY3IDE1NC40ODIsNTcuNTYzIEwxNTQuOTI1LDU3LjcxMiBDMTU0LjQxMiw1OS4yNDUgMTUzLjczMyw2MC43NDUgMTUyLjkxLDYyLjE3MiBDMTUyLjI2Miw2My4yOTUgMTUxLjUyNSw2NC4zNjggMTUwLjcyLDY1LjM2MSIgaWQ9IkZpbGwtMzYiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTE1LjkxNyw4NC41MTQgTDExNS41NTQsODQuMjIgQzExNi4zNDQsODMuMjQ1IDExNy4wNjYsODIuMTk0IDExNy43MDIsODEuMDkyIEMxMTguNTEsNzkuNjkyIDExOS4xNzUsNzguMjIgMTE5LjY3OCw3Ni43MTcgTDEyMC4xMjEsNzYuODY1IEMxMTkuNjA4LDc4LjM5OCAxMTguOTMsNzkuODk5IDExOC4xMDYsODEuMzI2IEMxMTcuNDU4LDgyLjQ0OCAxMTYuNzIyLDgzLjUyMSAxMTUuOTE3LDg0LjUxNCIgaWQ9IkZpbGwtMzciIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTE0LDEzMC40NzYgTDExNCwxMzAuMDA4IEwxMTQsNzYuMDUyIEwxMTQsNzUuNTg0IEwxMTQsNzYuMDUyIEwxMTQsMTMwLjAwOCBMMTE0LDEzMC40NzYiIGlkPSJGaWxsLTM4IiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyBpZD0iSW1wb3J0ZWQtTGF5ZXJzLUNvcHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYyLjAwMDAwMCwgMC4wMDAwMDApIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkuODIyLDM3LjQ3NCBDMTkuODM5LDM3LjMzOSAxOS43NDcsMzcuMTk0IDE5LjU1NSwzNy4wODIgQzE5LjIyOCwzNi44OTQgMTguNzI5LDM2Ljg3MiAxOC40NDYsMzcuMDM3IEwxMi40MzQsNDAuNTA4IEMxMi4zMDMsNDAuNTg0IDEyLjI0LDQwLjY4NiAxMi4yNDMsNDAuNzkzIEMxMi4yNDUsNDAuOTI1IDEyLjI0NSw0MS4yNTQgMTIuMjQ1LDQxLjM3MSBMMTIuMjQ1LDQxLjQxNCBMMTIuMjM4LDQxLjU0MiBDOC4xNDgsNDMuODg3IDUuNjQ3LDQ1LjMyMSA1LjY0Nyw0NS4zMjEgQzUuNjQ2LDQ1LjMyMSAzLjU3LDQ2LjM2NyAyLjg2LDUwLjUxMyBDMi44Niw1MC41MTMgMS45NDgsNTcuNDc0IDEuOTYyLDcwLjI1OCBDMS45NzcsODIuODI4IDIuNTY4LDg3LjMyOCAzLjEyOSw5MS42MDkgQzMuMzQ5LDkzLjI5MyA2LjEzLDkzLjczNCA2LjEzLDkzLjczNCBDNi40NjEsOTMuNzc0IDYuODI4LDkzLjcwNyA3LjIxLDkzLjQ4NiBMODIuNDgzLDQ5LjkzNSBDODQuMjkxLDQ4Ljg2NiA4NS4xNSw0Ni4yMTYgODUuNTM5LDQzLjY1MSBDODYuNzUyLDM1LjY2MSA4Ny4yMTQsMTAuNjczIDg1LjI2NCwzLjc3MyBDODUuMDY4LDMuMDggODQuNzU0LDIuNjkgODQuMzk2LDIuNDkxIEw4Mi4zMSwxLjcwMSBDODEuNTgzLDEuNzI5IDgwLjg5NCwyLjE2OCA4MC43NzYsMi4yMzYgQzgwLjYzNiwyLjMxNyA0MS44MDcsMjQuNTg1IDIwLjAzMiwzNy4wNzIgTDE5LjgyMiwzNy40NzQiIGlkPSJGaWxsLTEiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNODIuMzExLDEuNzAxIEw4NC4zOTYsMi40OTEgQzg0Ljc1NCwyLjY5IDg1LjA2OCwzLjA4IDg1LjI2NCwzLjc3MyBDODcuMjEzLDEwLjY3MyA4Ni43NTEsMzUuNjYgODUuNTM5LDQzLjY1MSBDODUuMTQ5LDQ2LjIxNiA4NC4yOSw0OC44NjYgODIuNDgzLDQ5LjkzNSBMNy4yMSw5My40ODYgQzYuODk3LDkzLjY2NyA2LjU5NSw5My43NDQgNi4zMTQsOTMuNzQ0IEw2LjEzMSw5My43MzMgQzYuMTMxLDkzLjczNCAzLjM0OSw5My4yOTMgMy4xMjgsOTEuNjA5IEMyLjU2OCw4Ny4zMjcgMS45NzcsODIuODI4IDEuOTYzLDcwLjI1OCBDMS45NDgsNTcuNDc0IDIuODYsNTAuNTEzIDIuODYsNTAuNTEzIEMzLjU3LDQ2LjM2NyA1LjY0Nyw0NS4zMjEgNS42NDcsNDUuMzIxIEM1LjY0Nyw0NS4zMjEgOC4xNDgsNDMuODg3IDEyLjIzOCw0MS41NDIgTDEyLjI0NSw0MS40MTQgTDEyLjI0NSw0MS4zNzEgQzEyLjI0NSw0MS4yNTQgMTIuMjQ1LDQwLjkyNSAxMi4yNDMsNDAuNzkzIEMxMi4yNCw0MC42ODYgMTIuMzAyLDQwLjU4MyAxMi40MzQsNDAuNTA4IEwxOC40NDYsMzcuMDM2IEMxOC41NzQsMzYuOTYyIDE4Ljc0NiwzNi45MjYgMTguOTI3LDM2LjkyNiBDMTkuMTQ1LDM2LjkyNiAxOS4zNzYsMzYuOTc5IDE5LjU1NCwzNy4wODIgQzE5Ljc0NywzNy4xOTQgMTkuODM5LDM3LjM0IDE5LjgyMiwzNy40NzQgTDIwLjAzMywzNy4wNzIgQzQxLjgwNiwyNC41ODUgODAuNjM2LDIuMzE4IDgwLjc3NywyLjIzNiBDODAuODk0LDIuMTY4IDgxLjU4MywxLjcyOSA4Mi4zMTEsMS43MDEgTTgyLjMxMSwwLjcwNCBMODIuMjcyLDAuNzA1IEM4MS42NTQsMC43MjggODAuOTg5LDAuOTQ5IDgwLjI5OCwxLjM2MSBMODAuMjc3LDEuMzczIEM4MC4xMjksMS40NTggNTkuNzY4LDEzLjEzNSAxOS43NTgsMzYuMDc5IEMxOS41LDM1Ljk4MSAxOS4yMTQsMzUuOTI5IDE4LjkyNywzNS45MjkgQzE4LjU2MiwzNS45MjkgMTguMjIzLDM2LjAxMyAxNy45NDcsMzYuMTczIEwxMS45MzUsMzkuNjQ0IEMxMS40OTMsMzkuODk5IDExLjIzNiw0MC4zMzQgMTEuMjQ2LDQwLjgxIEwxMS4yNDcsNDAuOTYgTDUuMTY3LDQ0LjQ0NyBDNC43OTQsNDQuNjQ2IDIuNjI1LDQ1Ljk3OCAxLjg3Nyw1MC4zNDUgTDEuODcxLDUwLjM4NCBDMS44NjIsNTAuNDU0IDAuOTUxLDU3LjU1NyAwLjk2NSw3MC4yNTkgQzAuOTc5LDgyLjg3OSAxLjU2OCw4Ny4zNzUgMi4xMzcsOTEuNzI0IEwyLjEzOSw5MS43MzkgQzIuNDQ3LDk0LjA5NCA1LjYxNCw5NC42NjIgNS45NzUsOTQuNzE5IEw2LjAwOSw5NC43MjMgQzYuMTEsOTQuNzM2IDYuMjEzLDk0Ljc0MiA2LjMxNCw5NC43NDIgQzYuNzksOTQuNzQyIDcuMjYsOTQuNjEgNy43MSw5NC4zNSBMODIuOTgzLDUwLjc5OCBDODQuNzk0LDQ5LjcyNyA4NS45ODIsNDcuMzc1IDg2LjUyNSw0My44MDEgQzg3LjcxMSwzNS45ODcgODguMjU5LDEwLjcwNSA4Ni4yMjQsMy41MDIgQzg1Ljk3MSwyLjYwOSA4NS41MiwxLjk3NSA4NC44ODEsMS42MiBMODQuNzQ5LDEuNTU4IEw4Mi42NjQsMC43NjkgQzgyLjU1MSwwLjcyNSA4Mi40MzEsMC43MDQgODIuMzExLDAuNzA0IiBpZD0iRmlsbC0yIiBmaWxsPSIjNDU1QTY0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTY2LjI2NywxMS41NjUgTDY3Ljc2MiwxMS45OTkgTDExLjQyMyw0NC4zMjUiIGlkPSJGaWxsLTMiIGZpbGw9IiNGRkZGRkYiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIuMjAyLDkwLjU0NSBDMTIuMDI5LDkwLjU0NSAxMS44NjIsOTAuNDU1IDExLjc2OSw5MC4yOTUgQzExLjYzMiw5MC4wNTcgMTEuNzEzLDg5Ljc1MiAxMS45NTIsODkuNjE0IEwzMC4zODksNzguOTY5IEMzMC42MjgsNzguODMxIDMwLjkzMyw3OC45MTMgMzEuMDcxLDc5LjE1MiBDMzEuMjA4LDc5LjM5IDMxLjEyNyw3OS42OTYgMzAuODg4LDc5LjgzMyBMMTIuNDUxLDkwLjQ3OCBMMTIuMjAyLDkwLjU0NSIgaWQ9IkZpbGwtNCIgZmlsbD0iIzYwN0Q4QiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43NjQsNDIuNjU0IEwxMy42NTYsNDIuNTkyIEwxMy43MDIsNDIuNDIxIEwxOC44MzcsMzkuNDU3IEwxOS4wMDcsMzkuNTAyIEwxOC45NjIsMzkuNjczIEwxMy44MjcsNDIuNjM3IEwxMy43NjQsNDIuNjU0IiBpZD0iRmlsbC01IiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTguNTIsOTAuMzc1IEw4LjUyLDQ2LjQyMSBMOC41ODMsNDYuMzg1IEw3NS44NCw3LjU1NCBMNzUuODQsNTEuNTA4IEw3NS43NzgsNTEuNTQ0IEw4LjUyLDkwLjM3NSBMOC41Miw5MC4zNzUgWiBNOC43Nyw0Ni41NjQgTDguNzcsODkuOTQ0IEw3NS41OTEsNTEuMzY1IEw3NS41OTEsNy45ODUgTDguNzcsNDYuNTY0IEw4Ljc3LDQ2LjU2NCBaIiBpZD0iRmlsbC02IiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI0Ljk4Niw4My4xODIgQzI0Ljc1Niw4My4zMzEgMjQuMzc0LDgzLjU2NiAyNC4xMzcsODMuNzA1IEwxMi42MzIsOTAuNDA2IEMxMi4zOTUsOTAuNTQ1IDEyLjQyNiw5MC42NTggMTIuNyw5MC42NTggTDEzLjI2NSw5MC42NTggQzEzLjU0LDkwLjY1OCAxMy45NTgsOTAuNTQ1IDE0LjE5NSw5MC40MDYgTDI1LjcsODMuNzA1IEMyNS45MzcsODMuNTY2IDI2LjEyOCw4My40NTIgMjYuMTI1LDgzLjQ0OSBDMjYuMTIyLDgzLjQ0NyAyNi4xMTksODMuMjIgMjYuMTE5LDgyLjk0NiBDMjYuMTE5LDgyLjY3MiAyNS45MzEsODIuNTY5IDI1LjcwMSw4Mi43MTkgTDI0Ljk4Niw4My4xODIiIGlkPSJGaWxsLTciIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTMuMjY2LDkwLjc4MiBMMTIuNyw5MC43ODIgQzEyLjUsOTAuNzgyIDEyLjM4NCw5MC43MjYgMTIuMzU0LDkwLjYxNiBDMTIuMzI0LDkwLjUwNiAxMi4zOTcsOTAuMzk5IDEyLjU2OSw5MC4yOTkgTDI0LjA3NCw4My41OTcgQzI0LjMxLDgzLjQ1OSAyNC42ODksODMuMjI2IDI0LjkxOCw4My4wNzggTDI1LjYzMyw4Mi42MTQgQzI1LjcyMyw4Mi41NTUgMjUuODEzLDgyLjUyNSAyNS44OTksODIuNTI1IEMyNi4wNzEsODIuNTI1IDI2LjI0NCw4Mi42NTUgMjYuMjQ0LDgyLjk0NiBDMjYuMjQ0LDgzLjE2IDI2LjI0NSw4My4zMDkgMjYuMjQ3LDgzLjM4MyBMMjYuMjUzLDgzLjM4NyBMMjYuMjQ5LDgzLjQ1NiBDMjYuMjQ2LDgzLjUzMSAyNi4yNDYsODMuNTMxIDI1Ljc2Myw4My44MTIgTDE0LjI1OCw5MC41MTQgQzE0LDkwLjY2NSAxMy41NjQsOTAuNzgyIDEzLjI2Niw5MC43ODIgTDEzLjI2Niw5MC43ODIgWiBNMTIuNjY2LDkwLjUzMiBMMTIuNyw5MC41MzMgTDEzLjI2Niw5MC41MzMgQzEzLjUxOCw5MC41MzMgMTMuOTE1LDkwLjQyNSAxNC4xMzIsOTAuMjk5IEwyNS42MzcsODMuNTk3IEMyNS44MDUsODMuNDk5IDI1LjkzMSw4My40MjQgMjUuOTk4LDgzLjM4MyBDMjUuOTk0LDgzLjI5OSAyNS45OTQsODMuMTY1IDI1Ljk5NCw4Mi45NDYgTDI1Ljg5OSw4Mi43NzUgTDI1Ljc2OCw4Mi44MjQgTDI1LjA1NCw4My4yODcgQzI0LjgyMiw4My40MzcgMjQuNDM4LDgzLjY3MyAyNC4yLDgzLjgxMiBMMTIuNjk1LDkwLjUxNCBMMTIuNjY2LDkwLjUzMiBMMTIuNjY2LDkwLjUzMiBaIiBpZD0iRmlsbC04IiBmaWxsPSIjNjA3RDhCIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI2Niw4OS44NzEgTDEyLjcsODkuODcxIEMxMi41LDg5Ljg3MSAxMi4zODQsODkuODE1IDEyLjM1NCw4OS43MDUgQzEyLjMyNCw4OS41OTUgMTIuMzk3LDg5LjQ4OCAxMi41NjksODkuMzg4IEwyNC4wNzQsODIuNjg2IEMyNC4zMzIsODIuNTM1IDI0Ljc2OCw4Mi40MTggMjUuMDY3LDgyLjQxOCBMMjUuNjMyLDgyLjQxOCBDMjUuODMyLDgyLjQxOCAyNS45NDgsODIuNDc0IDI1Ljk3OCw4Mi41ODQgQzI2LjAwOCw4Mi42OTQgMjUuOTM1LDgyLjgwMSAyNS43NjMsODIuOTAxIEwxNC4yNTgsODkuNjAzIEMxNCw4OS43NTQgMTMuNTY0LDg5Ljg3MSAxMy4yNjYsODkuODcxIEwxMy4yNjYsODkuODcxIFogTTEyLjY2Niw4OS42MjEgTDEyLjcsODkuNjIyIEwxMy4yNjYsODkuNjIyIEMxMy41MTgsODkuNjIyIDEzLjkxNSw4OS41MTUgMTQuMTMyLDg5LjM4OCBMMjUuNjM3LDgyLjY4NiBMMjUuNjY3LDgyLjY2OCBMMjUuNjMyLDgyLjY2NyBMMjUuMDY3LDgyLjY2NyBDMjQuODE1LDgyLjY2NyAyNC40MTgsODIuNzc1IDI0LjIsODIuOTAxIEwxMi42OTUsODkuNjAzIEwxMi42NjYsODkuNjIxIEwxMi42NjYsODkuNjIxIFoiIGlkPSJGaWxsLTkiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTIuMzcsOTAuODAxIEwxMi4zNyw4OS41NTQgTDEyLjM3LDkwLjgwMSIgaWQ9IkZpbGwtMTAiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi4xMyw5My45MDEgQzUuMzc5LDkzLjgwOCA0LjgxNiw5My4xNjQgNC42OTEsOTIuNTI1IEMzLjg2LDg4LjI4NyAzLjU0LDgzLjc0MyAzLjUyNiw3MS4xNzMgQzMuNTExLDU4LjM4OSA0LjQyMyw1MS40MjggNC40MjMsNTEuNDI4IEM1LjEzNCw0Ny4yODIgNy4yMSw0Ni4yMzYgNy4yMSw0Ni4yMzYgQzcuMjEsNDYuMjM2IDgxLjY2NywzLjI1IDgyLjA2OSwzLjAxNyBDODIuMjkyLDIuODg4IDg0LjU1NiwxLjQzMyA4NS4yNjQsMy45NCBDODcuMjE0LDEwLjg0IDg2Ljc1MiwzNS44MjcgODUuNTM5LDQzLjgxOCBDODUuMTUsNDYuMzgzIDg0LjI5MSw0OS4wMzMgODIuNDgzLDUwLjEwMSBMNy4yMSw5My42NTMgQzYuODI4LDkzLjg3NCA2LjQ2MSw5My45NDEgNi4xMyw5My45MDEgQzYuMTMsOTMuOTAxIDMuMzQ5LDkzLjQ2IDMuMTI5LDkxLjc3NiBDMi41NjgsODcuNDk1IDEuOTc3LDgyLjk5NSAxLjk2Miw3MC40MjUgQzEuOTQ4LDU3LjY0MSAyLjg2LDUwLjY4IDIuODYsNTAuNjggQzMuNTcsNDYuNTM0IDUuNjQ3LDQ1LjQ4OSA1LjY0Nyw0NS40ODkgQzUuNjQ2LDQ1LjQ4OSA4LjA2NSw0NC4wOTIgMTIuMjQ1LDQxLjY3OSBMMTMuMTE2LDQxLjU2IEwxOS43MTUsMzcuNzMgTDE5Ljc2MSwzNy4yNjkgTDYuMTMsOTMuOTAxIiBpZD0iRmlsbC0xMSIgZmlsbD0iI0ZBRkFGQSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjMxNyw5NC4xNjEgTDYuMTAyLDk0LjE0OCBMNi4xMDEsOTQuMTQ4IEw1Ljg1Nyw5NC4xMDEgQzUuMTM4LDkzLjk0NSAzLjA4NSw5My4zNjUgMi44ODEsOTEuODA5IEMyLjMxMyw4Ny40NjkgMS43MjcsODIuOTk2IDEuNzEzLDcwLjQyNSBDMS42OTksNTcuNzcxIDIuNjA0LDUwLjcxOCAyLjYxMyw1MC42NDggQzMuMzM4LDQ2LjQxNyA1LjQ0NSw0NS4zMSA1LjUzNSw0NS4yNjYgTDEyLjE2Myw0MS40MzkgTDEzLjAzMyw0MS4zMiBMMTkuNDc5LDM3LjU3OCBMMTkuNTEzLDM3LjI0NCBDMTkuNTI2LDM3LjEwNyAxOS42NDcsMzcuMDA4IDE5Ljc4NiwzNy4wMjEgQzE5LjkyMiwzNy4wMzQgMjAuMDIzLDM3LjE1NiAyMC4wMDksMzcuMjkzIEwxOS45NSwzNy44ODIgTDEzLjE5OCw0MS44MDEgTDEyLjMyOCw0MS45MTkgTDUuNzcyLDQ1LjcwNCBDNS43NDEsNDUuNzIgMy43ODIsNDYuNzcyIDMuMTA2LDUwLjcyMiBDMy4wOTksNTAuNzgyIDIuMTk4LDU3LjgwOCAyLjIxMiw3MC40MjQgQzIuMjI2LDgyLjk2MyAyLjgwOSw4Ny40MiAzLjM3Myw5MS43MjkgQzMuNDY0LDkyLjQyIDQuMDYyLDkyLjg4MyA0LjY4Miw5My4xODEgQzQuNTY2LDkyLjk4NCA0LjQ4Niw5Mi43NzYgNC40NDYsOTIuNTcyIEMzLjY2NSw4OC41ODggMy4yOTEsODQuMzcgMy4yNzYsNzEuMTczIEMzLjI2Miw1OC41MiA0LjE2Nyw1MS40NjYgNC4xNzYsNTEuMzk2IEM0LjkwMSw0Ny4xNjUgNy4wMDgsNDYuMDU5IDcuMDk4LDQ2LjAxNCBDNy4wOTQsNDYuMDE1IDgxLjU0MiwzLjAzNCA4MS45NDQsMi44MDIgTDgxLjk3MiwyLjc4NSBDODIuODc2LDIuMjQ3IDgzLjY5MiwyLjA5NyA4NC4zMzIsMi4zNTIgQzg0Ljg4NywyLjU3MyA4NS4yODEsMy4wODUgODUuNTA0LDMuODcyIEM4Ny41MTgsMTEgODYuOTY0LDM2LjA5MSA4NS43ODUsNDMuODU1IEM4NS4yNzgsNDcuMTk2IDg0LjIxLDQ5LjM3IDgyLjYxLDUwLjMxNyBMNy4zMzUsOTMuODY5IEM2Ljk5OSw5NC4wNjMgNi42NTgsOTQuMTYxIDYuMzE3LDk0LjE2MSBMNi4zMTcsOTQuMTYxIFogTTYuMTcsOTMuNjU0IEM2LjQ2Myw5My42OSA2Ljc3NCw5My42MTcgNy4wODUsOTMuNDM3IEw4Mi4zNTgsNDkuODg2IEM4NC4xODEsNDguODA4IDg0Ljk2LDQ1Ljk3MSA4NS4yOTIsNDMuNzggQzg2LjQ2NiwzNi4wNDkgODcuMDIzLDExLjA4NSA4NS4wMjQsNC4wMDggQzg0Ljg0NiwzLjM3NyA4NC41NTEsMi45NzYgODQuMTQ4LDIuODE2IEM4My42NjQsMi42MjMgODIuOTgyLDIuNzY0IDgyLjIyNywzLjIxMyBMODIuMTkzLDMuMjM0IEM4MS43OTEsMy40NjYgNy4zMzUsNDYuNDUyIDcuMzM1LDQ2LjQ1MiBDNy4zMDQsNDYuNDY5IDUuMzQ2LDQ3LjUyMSA0LjY2OSw1MS40NzEgQzQuNjYyLDUxLjUzIDMuNzYxLDU4LjU1NiAzLjc3NSw3MS4xNzMgQzMuNzksODQuMzI4IDQuMTYxLDg4LjUyNCA0LjkzNiw5Mi40NzYgQzUuMDI2LDkyLjkzNyA1LjQxMiw5My40NTkgNS45NzMsOTMuNjE1IEM2LjA4Nyw5My42NCA2LjE1OCw5My42NTIgNi4xNjksOTMuNjU0IEw2LjE3LDkzLjY1NCBMNi4xNyw5My42NTQgWiIgaWQ9IkZpbGwtMTIiIGZpbGw9IiM0NTVBNjQiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNy4zMTcsNjguOTgyIEM3LjgwNiw2OC43MDEgOC4yMDIsNjguOTI2IDguMjAyLDY5LjQ4NyBDOC4yMDIsNzAuMDQ3IDcuODA2LDcwLjczIDcuMzE3LDcxLjAxMiBDNi44MjksNzEuMjk0IDYuNDMzLDcxLjA2OSA2LjQzMyw3MC41MDggQzYuNDMzLDY5Ljk0OCA2LjgyOSw2OS4yNjUgNy4zMTcsNjguOTgyIiBpZD0iRmlsbC0xMyIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjkyLDcxLjEzMyBDNi42MzEsNzEuMTMzIDYuNDMzLDcwLjkwNSA2LjQzMyw3MC41MDggQzYuNDMzLDY5Ljk0OCA2LjgyOSw2OS4yNjUgNy4zMTcsNjguOTgyIEM3LjQ2LDY4LjkgNy41OTUsNjguODYxIDcuNzE0LDY4Ljg2MSBDOC4wMDMsNjguODYxIDguMjAyLDY5LjA5IDguMjAyLDY5LjQ4NyBDOC4yMDIsNzAuMDQ3IDcuODA2LDcwLjczIDcuMzE3LDcxLjAxMiBDNy4xNzQsNzEuMDk0IDcuMDM5LDcxLjEzMyA2LjkyLDcxLjEzMyBNNy43MTQsNjguNjc0IEM3LjU1Nyw2OC42NzQgNy4zOTIsNjguNzIzIDcuMjI0LDY4LjgyMSBDNi42NzYsNjkuMTM4IDYuMjQ2LDY5Ljg3OSA2LjI0Niw3MC41MDggQzYuMjQ2LDcwLjk5NCA2LjUxNyw3MS4zMiA2LjkyLDcxLjMyIEM3LjA3OCw3MS4zMiA3LjI0Myw3MS4yNzEgNy40MTEsNzEuMTc0IEM3Ljk1OSw3MC44NTcgOC4zODksNzAuMTE3IDguMzg5LDY5LjQ4NyBDOC4zODksNjkuMDAxIDguMTE3LDY4LjY3NCA3LjcxNCw2OC42NzQiIGlkPSJGaWxsLTE0IiBmaWxsPSIjODA5N0EyIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTYuOTIsNzAuOTQ3IEM2LjY0OSw3MC45NDcgNi42MjEsNzAuNjQgNi42MjEsNzAuNTA4IEM2LjYyMSw3MC4wMTcgNi45ODIsNjkuMzkyIDcuNDExLDY5LjE0NSBDNy41MjEsNjkuMDgyIDcuNjI1LDY5LjA0OSA3LjcxNCw2OS4wNDkgQzcuOTg2LDY5LjA0OSA4LjAxNSw2OS4zNTUgOC4wMTUsNjkuNDg3IEM4LjAxNSw2OS45NzggNy42NTIsNzAuNjAzIDcuMjI0LDcwLjg1MSBDNy4xMTUsNzAuOTE0IDcuMDEsNzAuOTQ3IDYuOTIsNzAuOTQ3IE03LjcxNCw2OC44NjEgQzcuNTk1LDY4Ljg2MSA3LjQ2LDY4LjkgNy4zMTcsNjguOTgyIEM2LjgyOSw2OS4yNjUgNi40MzMsNjkuOTQ4IDYuNDMzLDcwLjUwOCBDNi40MzMsNzAuOTA1IDYuNjMxLDcxLjEzMyA2LjkyLDcxLjEzMyBDNy4wMzksNzEuMTMzIDcuMTc0LDcxLjA5NCA3LjMxNyw3MS4wMTIgQzcuODA2LDcwLjczIDguMjAyLDcwLjA0NyA4LjIwMiw2OS40ODcgQzguMjAyLDY5LjA5IDguMDAzLDY4Ljg2MSA3LjcxNCw2OC44NjEiIGlkPSJGaWxsLTE1IiBmaWxsPSIjODA5N0EyIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuNDQ0LDg1LjM1IEM3LjcwOCw4NS4xOTggNy45MjEsODUuMzE5IDcuOTIxLDg1LjYyMiBDNy45MjEsODUuOTI1IDcuNzA4LDg2LjI5MiA3LjQ0NCw4Ni40NDQgQzcuMTgxLDg2LjU5NyA2Ljk2Nyw4Ni40NzUgNi45NjcsODYuMTczIEM2Ljk2Nyw4NS44NzEgNy4xODEsODUuNTAyIDcuNDQ0LDg1LjM1IiBpZD0iRmlsbC0xNiIgZmlsbD0iI0ZGRkZGRiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03LjIzLDg2LjUxIEM3LjA3NCw4Ni41MSA2Ljk2Nyw4Ni4zODcgNi45NjcsODYuMTczIEM2Ljk2Nyw4NS44NzEgNy4xODEsODUuNTAyIDcuNDQ0LDg1LjM1IEM3LjUyMSw4NS4zMDUgNy41OTQsODUuMjg0IDcuNjU4LDg1LjI4NCBDNy44MTQsODUuMjg0IDcuOTIxLDg1LjQwOCA3LjkyMSw4NS42MjIgQzcuOTIxLDg1LjkyNSA3LjcwOCw4Ni4yOTIgNy40NDQsODYuNDQ0IEM3LjM2Nyw4Ni40ODkgNy4yOTQsODYuNTEgNy4yMyw4Ni41MSBNNy42NTgsODUuMDk4IEM3LjU1OCw4NS4wOTggNy40NTUsODUuMTI3IDcuMzUxLDg1LjE4OCBDNy4wMzEsODUuMzczIDYuNzgxLDg1LjgwNiA2Ljc4MSw4Ni4xNzMgQzYuNzgxLDg2LjQ4MiA2Ljk2Niw4Ni42OTcgNy4yMyw4Ni42OTcgQzcuMzMsODYuNjk3IDcuNDMzLDg2LjY2NiA3LjUzOCw4Ni42MDcgQzcuODU4LDg2LjQyMiA4LjEwOCw4NS45ODkgOC4xMDgsODUuNjIyIEM4LjEwOCw4NS4zMTMgNy45MjMsODUuMDk4IDcuNjU4LDg1LjA5OCIgaWQ9IkZpbGwtMTciIGZpbGw9IiM4MDk3QTIiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNy4yMyw4Ni4zMjIgTDcuMTU0LDg2LjE3MyBDNy4xNTQsODUuOTM4IDcuMzMzLDg1LjYyOSA3LjUzOCw4NS41MTIgTDcuNjU4LDg1LjQ3MSBMNy43MzQsODUuNjIyIEM3LjczNCw4NS44NTYgNy41NTUsODYuMTY0IDcuMzUxLDg2LjI4MiBMNy4yMyw4Ni4zMjIgTTcuNjU4LDg1LjI4NCBDNy41OTQsODUuMjg0IDcuNTIxLDg1LjMwNSA3LjQ0NCw4NS4zNSBDNy4xODEsODUuNTAyIDYuOTY3LDg1Ljg3MSA2Ljk2Nyw4Ni4xNzMgQzYuOTY3LDg2LjM4NyA3LjA3NCw4Ni41MSA3LjIzLDg2LjUxIEM3LjI5NCw4Ni41MSA3LjM2Nyw4Ni40ODkgNy40NDQsODYuNDQ0IEM3LjcwOCw4Ni4yOTIgNy45MjEsODUuOTI1IDcuOTIxLDg1LjYyMiBDNy45MjEsODUuNDA4IDcuODE0LDg1LjI4NCA3LjY1OCw4NS4yODQiIGlkPSJGaWxsLTE4IiBmaWxsPSIjODA5N0EyIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTc3LjI3OCw3Ljc2OSBMNzcuMjc4LDUxLjQzNiBMMTAuMjA4LDkwLjE2IEwxMC4yMDgsNDYuNDkzIEw3Ny4yNzgsNy43NjkiIGlkPSJGaWxsLTE5IiBmaWxsPSIjNDU1QTY0Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEwLjA4Myw5MC4zNzUgTDEwLjA4Myw0Ni40MjEgTDEwLjE0Niw0Ni4zODUgTDc3LjQwMyw3LjU1NCBMNzcuNDAzLDUxLjUwOCBMNzcuMzQxLDUxLjU0NCBMMTAuMDgzLDkwLjM3NSBMMTAuMDgzLDkwLjM3NSBaIE0xMC4zMzMsNDYuNTY0IEwxMC4zMzMsODkuOTQ0IEw3Ny4xNTQsNTEuMzY1IEw3Ny4xNTQsNy45ODUgTDEwLjMzMyw0Ni41NjQgTDEwLjMzMyw0Ni41NjQgWiIgaWQ9IkZpbGwtMjAiIGZpbGw9IiM2MDdEOEIiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMjUuNzM3LDg4LjY0NyBMMTE4LjA5OCw5MS45ODEgTDExOC4wOTgsODQgTDEwNi42MzksODguNzEzIEwxMDYuNjM5LDk2Ljk4MiBMOTksMTAwLjMxNSBMMTEyLjM2OSwxMDMuOTYxIEwxMjUuNzM3LDg4LjY0NyIgaWQ9IkltcG9ydGVkLUxheWVycy1Db3B5LTIiIGZpbGw9IiM0NTVBNjQiIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+');\n};\n\nmodule.exports = RotateInstructions;\n\n},{\"./util.js\":24}],19:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * TODO: Fix up all \"new THREE\" instantiations to improve performance.\n */\nvar SensorSample = _dereq_('./sensor-sample.js');\nvar MathUtil = _dereq_('../math-util.js');\nvar Util = _dereq_('../util.js');\n\nvar DEBUG = false;\n\n/**\n * An implementation of a simple complementary filter, which fuses gyroscope and\n * accelerometer data from the 'devicemotion' event.\n *\n * Accelerometer data is very noisy, but stable over the long term.\n * Gyroscope data is smooth, but tends to drift over the long term.\n *\n * This fusion is relatively simple:\n * 1. Get orientation estimates from accelerometer by applying a low-pass filter\n * on that data.\n * 2. Get orientation estimates from gyroscope by integrating over time.\n * 3. Combine the two estimates, weighing (1) in the long term, but (2) for the\n * short term.\n */\nfunction ComplementaryFilter(kFilter) {\n this.kFilter = kFilter;\n\n // Raw sensor measurements.\n this.currentAccelMeasurement = new SensorSample();\n this.currentGyroMeasurement = new SensorSample();\n this.previousGyroMeasurement = new SensorSample();\n\n // Current filter orientation\n this.filterQ = new MathUtil.Quaternion();\n this.previousFilterQ = new MathUtil.Quaternion();\n\n // Orientation based on the accelerometer.\n this.accelQ = new MathUtil.Quaternion();\n // Whether or not the orientation has been initialized.\n this.isOrientationInitialized = false;\n // Running estimate of gravity based on the current orientation.\n this.estimatedGravity = new MathUtil.Vector3();\n // Measured gravity based on accelerometer.\n this.measuredGravity = new MathUtil.Vector3();\n\n // Debug only quaternion of gyro-based orientation.\n this.gyroIntegralQ = new MathUtil.Quaternion();\n}\n\nComplementaryFilter.prototype.addAccelMeasurement = function(vector, timestampS) {\n this.currentAccelMeasurement.set(vector, timestampS);\n};\n\nComplementaryFilter.prototype.addGyroMeasurement = function(vector, timestampS) {\n this.currentGyroMeasurement.set(vector, timestampS);\n\n var deltaT = timestampS - this.previousGyroMeasurement.timestampS;\n if (Util.isTimestampDeltaValid(deltaT)) {\n this.run_();\n }\n\n this.previousGyroMeasurement.copy(this.currentGyroMeasurement);\n};\n\nComplementaryFilter.prototype.run_ = function() {\n\n if (!this.isOrientationInitialized) {\n this.accelQ = this.accelToQuaternion_(this.currentAccelMeasurement.sample);\n this.previousFilterQ.copy(this.accelQ);\n this.isOrientationInitialized = true;\n return;\n }\n\n var deltaT = this.currentGyroMeasurement.timestampS -\n this.previousGyroMeasurement.timestampS;\n\n // Convert gyro rotation vector to a quaternion delta.\n var gyroDeltaQ = this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample, deltaT);\n this.gyroIntegralQ.multiply(gyroDeltaQ);\n\n // filter_1 = K * (filter_0 + gyro * dT) + (1 - K) * accel.\n this.filterQ.copy(this.previousFilterQ);\n this.filterQ.multiply(gyroDeltaQ);\n\n // Calculate the delta between the current estimated gravity and the real\n // gravity vector from accelerometer.\n var invFilterQ = new MathUtil.Quaternion();\n invFilterQ.copy(this.filterQ);\n invFilterQ.inverse();\n\n this.estimatedGravity.set(0, 0, -1);\n this.estimatedGravity.applyQuaternion(invFilterQ);\n this.estimatedGravity.normalize();\n\n this.measuredGravity.copy(this.currentAccelMeasurement.sample);\n this.measuredGravity.normalize();\n\n // Compare estimated gravity with measured gravity, get the delta quaternion\n // between the two.\n var deltaQ = new MathUtil.Quaternion();\n deltaQ.setFromUnitVectors(this.estimatedGravity, this.measuredGravity);\n deltaQ.inverse();\n\n if (DEBUG) {\n console.log('Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)',\n MathUtil.radToDeg * Util.getQuaternionAngle(deltaQ),\n (this.estimatedGravity.x).toFixed(1),\n (this.estimatedGravity.y).toFixed(1),\n (this.estimatedGravity.z).toFixed(1),\n (this.measuredGravity.x).toFixed(1),\n (this.measuredGravity.y).toFixed(1),\n (this.measuredGravity.z).toFixed(1));\n }\n\n // Calculate the SLERP target: current orientation plus the measured-estimated\n // quaternion delta.\n var targetQ = new MathUtil.Quaternion();\n targetQ.copy(this.filterQ);\n targetQ.multiply(deltaQ);\n\n // SLERP factor: 0 is pure gyro, 1 is pure accel.\n this.filterQ.slerp(targetQ, 1 - this.kFilter);\n\n this.previousFilterQ.copy(this.filterQ);\n};\n\nComplementaryFilter.prototype.getOrientation = function() {\n return this.filterQ;\n};\n\nComplementaryFilter.prototype.accelToQuaternion_ = function(accel) {\n var normAccel = new MathUtil.Vector3();\n normAccel.copy(accel);\n normAccel.normalize();\n var quat = new MathUtil.Quaternion();\n quat.setFromUnitVectors(new MathUtil.Vector3(0, 0, -1), normAccel);\n quat.inverse();\n return quat;\n};\n\nComplementaryFilter.prototype.gyroToQuaternionDelta_ = function(gyro, dt) {\n // Extract axis and angle from the gyroscope data.\n var quat = new MathUtil.Quaternion();\n var axis = new MathUtil.Vector3();\n axis.copy(gyro);\n axis.normalize();\n quat.setFromAxisAngle(axis, gyro.length() * dt);\n return quat;\n};\n\n\nmodule.exports = ComplementaryFilter;\n\n},{\"../math-util.js\":16,\"../util.js\":24,\"./sensor-sample.js\":22}],20:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ComplementaryFilter = _dereq_('./complementary-filter.js');\nvar PosePredictor = _dereq_('./pose-predictor.js');\nvar TouchPanner = _dereq_('../touch-panner.js');\nvar MathUtil = _dereq_('../math-util.js');\nvar Util = _dereq_('../util.js');\n\n/**\n * The pose sensor, implemented using DeviceMotion APIs.\n */\nfunction FusionPoseSensor() {\n this.deviceId = 'webvr-polyfill:fused';\n this.deviceName = 'VR Position Device (webvr-polyfill:fused)';\n\n this.accelerometer = new MathUtil.Vector3();\n this.gyroscope = new MathUtil.Vector3();\n\n window.addEventListener('devicemotion', this.onDeviceMotionChange_.bind(this));\n window.addEventListener('orientationchange', this.onScreenOrientationChange_.bind(this));\n\n this.filter = new ComplementaryFilter(WebVRConfig.K_FILTER);\n this.posePredictor = new PosePredictor(WebVRConfig.PREDICTION_TIME_S);\n this.touchPanner = new TouchPanner();\n\n this.filterToWorldQ = new MathUtil.Quaternion();\n\n // Set the filter to world transform, depending on OS.\n if (Util.isIOS()) {\n this.filterToWorldQ.setFromAxisAngle(new MathUtil.Vector3(1, 0, 0), Math.PI / 2);\n } else {\n this.filterToWorldQ.setFromAxisAngle(new MathUtil.Vector3(1, 0, 0), -Math.PI / 2);\n }\n\n this.inverseWorldToScreenQ = new MathUtil.Quaternion();\n this.worldToScreenQ = new MathUtil.Quaternion();\n this.originalPoseAdjustQ = new MathUtil.Quaternion();\n this.originalPoseAdjustQ.setFromAxisAngle(new MathUtil.Vector3(0, 0, 1),\n -window.orientation * Math.PI / 180);\n\n this.setScreenTransform_();\n // Adjust this filter for being in landscape mode.\n if (Util.isLandscapeMode()) {\n this.filterToWorldQ.multiply(this.inverseWorldToScreenQ);\n }\n\n // Keep track of a reset transform for resetSensor.\n this.resetQ = new MathUtil.Quaternion();\n\n this.isFirefoxAndroid = Util.isFirefoxAndroid();\n this.isIOS = Util.isIOS();\n\n this.orientationOut_ = new Float32Array(4);\n}\n\nFusionPoseSensor.prototype.getPosition = function() {\n // This PoseSensor doesn't support position\n return null;\n};\n\nFusionPoseSensor.prototype.getOrientation = function() {\n // Convert from filter space to the the same system used by the\n // deviceorientation event.\n var orientation = this.filter.getOrientation();\n\n // Predict orientation.\n this.predictedQ = this.posePredictor.getPrediction(orientation, this.gyroscope, this.previousTimestampS);\n\n // Convert to THREE coordinate system: -Z forward, Y up, X right.\n var out = new MathUtil.Quaternion();\n out.copy(this.filterToWorldQ);\n out.multiply(this.resetQ);\n if (!WebVRConfig.TOUCH_PANNER_DISABLED) {\n out.multiply(this.touchPanner.getOrientation());\n }\n out.multiply(this.predictedQ);\n out.multiply(this.worldToScreenQ);\n\n // Handle the yaw-only case.\n if (WebVRConfig.YAW_ONLY) {\n // Make a quaternion that only turns around the Y-axis.\n out.x = 0;\n out.z = 0;\n out.normalize();\n }\n\n this.orientationOut_[0] = out.x;\n this.orientationOut_[1] = out.y;\n this.orientationOut_[2] = out.z;\n this.orientationOut_[3] = out.w;\n return this.orientationOut_;\n};\n\nFusionPoseSensor.prototype.resetPose = function() {\n // Reduce to inverted yaw-only.\n this.resetQ.copy(this.filter.getOrientation());\n this.resetQ.x = 0;\n this.resetQ.y = 0;\n this.resetQ.z *= -1;\n this.resetQ.normalize();\n\n // Take into account extra transformations in landscape mode.\n if (Util.isLandscapeMode()) {\n this.resetQ.multiply(this.inverseWorldToScreenQ);\n }\n\n // Take into account original pose.\n this.resetQ.multiply(this.originalPoseAdjustQ);\n\n if (!WebVRConfig.TOUCH_PANNER_DISABLED) {\n this.touchPanner.resetSensor();\n }\n};\n\nFusionPoseSensor.prototype.onDeviceMotionChange_ = function(deviceMotion) {\n var accGravity = deviceMotion.accelerationIncludingGravity;\n var rotRate = deviceMotion.rotationRate;\n var timestampS = deviceMotion.timeStamp / 1000;\n\n // Firefox Android timeStamp returns one thousandth of a millisecond.\n if (this.isFirefoxAndroid) {\n timestampS /= 1000;\n }\n\n var deltaS = timestampS - this.previousTimestampS;\n if (deltaS <= Util.MIN_TIMESTEP || deltaS > Util.MAX_TIMESTEP) {\n console.warn('Invalid timestamps detected. Time step between successive ' +\n 'gyroscope sensor samples is very small or not monotonic');\n this.previousTimestampS = timestampS;\n return;\n }\n this.accelerometer.set(-accGravity.x, -accGravity.y, -accGravity.z);\n this.gyroscope.set(rotRate.alpha, rotRate.beta, rotRate.gamma);\n\n // With iOS and Firefox Android, rotationRate is reported in degrees,\n // so we first convert to radians.\n if (this.isIOS || this.isFirefoxAndroid) {\n this.gyroscope.multiplyScalar(Math.PI / 180);\n }\n\n this.filter.addAccelMeasurement(this.accelerometer, timestampS);\n this.filter.addGyroMeasurement(this.gyroscope, timestampS);\n\n this.previousTimestampS = timestampS;\n};\n\nFusionPoseSensor.prototype.onScreenOrientationChange_ =\n function(screenOrientation) {\n this.setScreenTransform_();\n};\n\nFusionPoseSensor.prototype.setScreenTransform_ = function() {\n this.worldToScreenQ.set(0, 0, 0, 1);\n switch (window.orientation) {\n case 0:\n break;\n case 90:\n this.worldToScreenQ.setFromAxisAngle(new MathUtil.Vector3(0, 0, 1), -Math.PI / 2);\n break;\n case -90:\n this.worldToScreenQ.setFromAxisAngle(new MathUtil.Vector3(0, 0, 1), Math.PI / 2);\n break;\n case 180:\n // TODO.\n break;\n }\n this.inverseWorldToScreenQ.copy(this.worldToScreenQ);\n this.inverseWorldToScreenQ.inverse();\n};\n\nmodule.exports = FusionPoseSensor;\n\n},{\"../math-util.js\":16,\"../touch-panner.js\":23,\"../util.js\":24,\"./complementary-filter.js\":19,\"./pose-predictor.js\":21}],21:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MathUtil = _dereq_('../math-util.js');\nvar DEBUG = false;\n\n/**\n * Given an orientation and the gyroscope data, predicts the future orientation\n * of the head. This makes rendering appear faster.\n *\n * Also see: http://msl.cs.uiuc.edu/~lavalle/papers/LavYerKatAnt14.pdf\n *\n * @param {Number} predictionTimeS time from head movement to the appearance of\n * the corresponding image.\n */\nfunction PosePredictor(predictionTimeS) {\n this.predictionTimeS = predictionTimeS;\n\n // The quaternion corresponding to the previous state.\n this.previousQ = new MathUtil.Quaternion();\n // Previous time a prediction occurred.\n this.previousTimestampS = null;\n\n // The delta quaternion that adjusts the current pose.\n this.deltaQ = new MathUtil.Quaternion();\n // The output quaternion.\n this.outQ = new MathUtil.Quaternion();\n}\n\nPosePredictor.prototype.getPrediction = function(currentQ, gyro, timestampS) {\n if (!this.previousTimestampS) {\n this.previousQ.copy(currentQ);\n this.previousTimestampS = timestampS;\n return currentQ;\n }\n\n // Calculate axis and angle based on gyroscope rotation rate data.\n var axis = new MathUtil.Vector3();\n axis.copy(gyro);\n axis.normalize();\n\n var angularSpeed = gyro.length();\n\n // If we're rotating slowly, don't do prediction.\n if (angularSpeed < MathUtil.degToRad * 20) {\n if (DEBUG) {\n console.log('Moving slowly, at %s deg/s: no prediction',\n (MathUtil.radToDeg * angularSpeed).toFixed(1));\n }\n this.outQ.copy(currentQ);\n this.previousQ.copy(currentQ);\n return this.outQ;\n }\n\n // Get the predicted angle based on the time delta and latency.\n var deltaT = timestampS - this.previousTimestampS;\n var predictAngle = angularSpeed * this.predictionTimeS;\n\n this.deltaQ.setFromAxisAngle(axis, predictAngle);\n this.outQ.copy(this.previousQ);\n this.outQ.multiply(this.deltaQ);\n\n this.previousQ.copy(currentQ);\n\n return this.outQ;\n};\n\n\nmodule.exports = PosePredictor;\n\n},{\"../math-util.js\":16}],22:[function(_dereq_,module,exports){\nfunction SensorSample(sample, timestampS) {\n this.set(sample, timestampS);\n};\n\nSensorSample.prototype.set = function(sample, timestampS) {\n this.sample = sample;\n this.timestampS = timestampS;\n};\n\nSensorSample.prototype.copy = function(sensorSample) {\n this.set(sensorSample.sample, sensorSample.timestampS);\n};\n\nmodule.exports = SensorSample;\n\n},{}],23:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MathUtil = _dereq_('./math-util.js');\nvar Util = _dereq_('./util.js');\n\nvar ROTATE_SPEED = 0.5;\n/**\n * Provides a quaternion responsible for pre-panning the scene before further\n * transformations due to device sensors.\n */\nfunction TouchPanner() {\n window.addEventListener('touchstart', this.onTouchStart_.bind(this));\n window.addEventListener('touchmove', this.onTouchMove_.bind(this));\n window.addEventListener('touchend', this.onTouchEnd_.bind(this));\n\n this.isTouching = false;\n this.rotateStart = new MathUtil.Vector2();\n this.rotateEnd = new MathUtil.Vector2();\n this.rotateDelta = new MathUtil.Vector2();\n\n this.theta = 0;\n this.orientation = new MathUtil.Quaternion();\n}\n\nTouchPanner.prototype.getOrientation = function() {\n this.orientation.setFromEulerXYZ(0, 0, this.theta);\n return this.orientation;\n};\n\nTouchPanner.prototype.resetSensor = function() {\n this.theta = 0;\n};\n\nTouchPanner.prototype.onTouchStart_ = function(e) {\n // Only respond if there is exactly one touch.\n if (e.touches.length != 1) {\n return;\n }\n this.rotateStart.set(e.touches[0].pageX, e.touches[0].pageY);\n this.isTouching = true;\n};\n\nTouchPanner.prototype.onTouchMove_ = function(e) {\n if (!this.isTouching) {\n return;\n }\n this.rotateEnd.set(e.touches[0].pageX, e.touches[0].pageY);\n this.rotateDelta.subVectors(this.rotateEnd, this.rotateStart);\n this.rotateStart.copy(this.rotateEnd);\n\n // On iOS, direction is inverted.\n if (Util.isIOS()) {\n this.rotateDelta.x *= -1;\n }\n\n var element = document.body;\n this.theta += 2 * Math.PI * this.rotateDelta.x / element.clientWidth * ROTATE_SPEED;\n};\n\nTouchPanner.prototype.onTouchEnd_ = function(e) {\n this.isTouching = false;\n};\n\nmodule.exports = TouchPanner;\n\n},{\"./math-util.js\":16,\"./util.js\":24}],24:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar objectAssign = _dereq_('object-assign');\n\nvar Util = window.Util || {};\n\nUtil.MIN_TIMESTEP = 0.001;\nUtil.MAX_TIMESTEP = 1;\n\nUtil.base64 = function(mimeType, base64) {\n return 'data:' + mimeType + ';base64,' + base64;\n};\n\nUtil.clamp = function(value, min, max) {\n return Math.min(Math.max(min, value), max);\n};\n\nUtil.lerp = function(a, b, t) {\n return a + ((b - a) * t);\n};\n\nUtil.isIOS = (function() {\n var isIOS = /iPad|iPhone|iPod/.test(navigator.platform);\n return function() {\n return isIOS;\n };\n})();\n\nUtil.isSafari = (function() {\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n return function() {\n return isSafari;\n };\n})();\n\nUtil.isFirefoxAndroid = (function() {\n var isFirefoxAndroid = navigator.userAgent.indexOf('Firefox') !== -1 &&\n navigator.userAgent.indexOf('Android') !== -1;\n return function() {\n return isFirefoxAndroid;\n };\n})();\n\nUtil.isLandscapeMode = function() {\n return (window.orientation == 90 || window.orientation == -90);\n};\n\n// Helper method to validate the time steps of sensor timestamps.\nUtil.isTimestampDeltaValid = function(timestampDeltaS) {\n if (isNaN(timestampDeltaS)) {\n return false;\n }\n if (timestampDeltaS <= Util.MIN_TIMESTEP) {\n return false;\n }\n if (timestampDeltaS > Util.MAX_TIMESTEP) {\n return false;\n }\n return true;\n};\n\nUtil.getScreenWidth = function() {\n return Math.max(window.screen.width, window.screen.height) *\n window.devicePixelRatio;\n};\n\nUtil.getScreenHeight = function() {\n return Math.min(window.screen.width, window.screen.height) *\n window.devicePixelRatio;\n};\n\nUtil.requestFullscreen = function(element) {\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n } else {\n return false;\n }\n\n return true;\n};\n\nUtil.exitFullscreen = function() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else {\n return false;\n }\n\n return true;\n};\n\nUtil.getFullscreenElement = function() {\n return document.fullscreenElement ||\n document.webkitFullscreenElement ||\n document.mozFullScreenElement ||\n document.msFullscreenElement;\n};\n\nUtil.linkProgram = function(gl, vertexSource, fragmentSource, attribLocationMap) {\n // No error checking for brevity.\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexSource);\n gl.compileShader(vertexShader);\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n\n for (var attribName in attribLocationMap)\n gl.bindAttribLocation(program, attribLocationMap[attribName], attribName);\n\n gl.linkProgram(program);\n\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n\n return program;\n};\n\nUtil.getProgramUniforms = function(gl, program) {\n var uniforms = {};\n var uniformCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n var uniformName = '';\n for (var i = 0; i < uniformCount; i++) {\n var uniformInfo = gl.getActiveUniform(program, i);\n uniformName = uniformInfo.name.replace('[0]', '');\n uniforms[uniformName] = gl.getUniformLocation(program, uniformName);\n }\n return uniforms;\n};\n\nUtil.orthoMatrix = function (out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right),\n bt = 1 / (bottom - top),\n nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n};\n\nUtil.isMobile = function() {\n var check = false;\n (function(a){if(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);\n return check;\n};\n\nUtil.extend = objectAssign;\n\nUtil.safariCssSizeWorkaround = function(canvas) {\n // TODO(smus): Remove this workaround when Safari for iOS is fixed.\n // iOS only workaround (for https://bugs.webkit.org/show_bug.cgi?id=152556).\n //\n // \"To the last I grapple with thee;\n // from hell's heart I stab at thee;\n // for hate's sake I spit my last breath at thee.\"\n // -- Moby Dick, by Herman Melville\n if (Util.isIOS()) {\n var width = canvas.style.width;\n var height = canvas.style.height;\n canvas.style.width = (parseInt(width) + 1) + 'px';\n canvas.style.height = (parseInt(height)) + 'px';\n console.log('Resetting width to...', width);\n setTimeout(function() {\n console.log('Done. Width is now', width);\n canvas.style.width = width;\n canvas.style.height = height;\n }, 100);\n }\n\n // Debug only.\n window.Util = Util;\n window.canvas = canvas;\n};\n\nmodule.exports = Util;\n\n},{\"object-assign\":2}],25:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Emitter = _dereq_('./emitter.js');\nvar Util = _dereq_('./util.js');\nvar DeviceInfo = _dereq_('./device-info.js');\n\nvar DEFAULT_VIEWER = 'CardboardV1';\nvar VIEWER_KEY = 'WEBVR_CARDBOARD_VIEWER';\nvar CLASS_NAME = 'webvr-polyfill-viewer-selector';\n\n/**\n * Creates a viewer selector with the options specified. Supports being shown\n * and hidden. Generates events when viewer parameters change. Also supports\n * saving the currently selected index in localStorage.\n */\nfunction ViewerSelector() {\n // Try to load the selected key from local storage. If none exists, use the\n // default key.\n try {\n this.selectedKey = localStorage.getItem(VIEWER_KEY) || DEFAULT_VIEWER;\n } catch (error) {\n console.error('Failed to load viewer profile: %s', error);\n }\n this.dialog = this.createDialog_(DeviceInfo.Viewers);\n this.root = null;\n}\nViewerSelector.prototype = new Emitter();\n\nViewerSelector.prototype.show = function(root) {\n this.root = root;\n\n root.appendChild(this.dialog);\n //console.log('ViewerSelector.show');\n\n // Ensure the currently selected item is checked.\n var selected = this.dialog.querySelector('#' + this.selectedKey);\n selected.checked = true;\n\n // Show the UI.\n this.dialog.style.display = 'block';\n};\n\nViewerSelector.prototype.hide = function() {\n if (this.root && this.root.contains(this.dialog)) {\n this.root.removeChild(this.dialog);\n }\n //console.log('ViewerSelector.hide');\n this.dialog.style.display = 'none';\n};\n\nViewerSelector.prototype.getCurrentViewer = function() {\n return DeviceInfo.Viewers[this.selectedKey];\n};\n\nViewerSelector.prototype.getSelectedKey_ = function() {\n var input = this.dialog.querySelector('input[name=field]:checked');\n if (input) {\n return input.id;\n }\n return null;\n};\n\nViewerSelector.prototype.onSave_ = function() {\n this.selectedKey = this.getSelectedKey_();\n if (!this.selectedKey || !DeviceInfo.Viewers[this.selectedKey]) {\n console.error('ViewerSelector.onSave_: this should never happen!');\n return;\n }\n\n this.emit('change', DeviceInfo.Viewers[this.selectedKey]);\n\n // Attempt to save the viewer profile, but fails in private mode.\n try {\n localStorage.setItem(VIEWER_KEY, this.selectedKey);\n } catch(error) {\n console.error('Failed to save viewer profile: %s', error);\n }\n this.hide();\n};\n\n/**\n * Creates the dialog.\n */\nViewerSelector.prototype.createDialog_ = function(options) {\n var container = document.createElement('div');\n container.classList.add(CLASS_NAME);\n container.style.display = 'none';\n // Create an overlay that dims the background, and which goes away when you\n // tap it.\n var overlay = document.createElement('div');\n var s = overlay.style;\n s.position = 'fixed';\n s.left = 0;\n s.top = 0;\n s.width = '100%';\n s.height = '100%';\n s.background = 'rgba(0, 0, 0, 0.3)';\n overlay.addEventListener('click', this.hide.bind(this));\n\n var width = 280;\n var dialog = document.createElement('div');\n var s = dialog.style;\n s.boxSizing = 'border-box';\n s.position = 'fixed';\n s.top = '24px';\n s.left = '50%';\n s.marginLeft = (-width/2) + 'px';\n s.width = width + 'px';\n s.padding = '24px';\n s.overflow = 'hidden';\n s.background = '#fafafa';\n s.fontFamily = \"'Roboto', sans-serif\";\n s.boxShadow = '0px 5px 20px #666';\n\n dialog.appendChild(this.createH1_('Select your viewer'));\n for (var id in options) {\n dialog.appendChild(this.createChoice_(id, options[id].label));\n }\n dialog.appendChild(this.createButton_('Save', this.onSave_.bind(this)));\n\n container.appendChild(overlay);\n container.appendChild(dialog);\n\n return container;\n};\n\nViewerSelector.prototype.createH1_ = function(name) {\n var h1 = document.createElement('h1');\n var s = h1.style;\n s.color = 'black';\n s.fontSize = '20px';\n s.fontWeight = 'bold';\n s.marginTop = 0;\n s.marginBottom = '24px';\n h1.innerHTML = name;\n return h1;\n};\n\nViewerSelector.prototype.createChoice_ = function(id, name) {\n /*\n
\n \n \n
\n */\n var div = document.createElement('div');\n div.style.marginTop = '8px';\n div.style.color = 'black';\n\n var input = document.createElement('input');\n input.style.fontSize = '30px';\n input.setAttribute('id', id);\n input.setAttribute('type', 'radio');\n input.setAttribute('value', id);\n input.setAttribute('name', 'field');\n\n var label = document.createElement('label');\n label.style.marginLeft = '4px';\n label.setAttribute('for', id);\n label.innerHTML = name;\n\n div.appendChild(input);\n div.appendChild(label);\n\n return div;\n};\n\nViewerSelector.prototype.createButton_ = function(label, onclick) {\n var button = document.createElement('button');\n button.innerHTML = label;\n var s = button.style;\n s.float = 'right';\n s.textTransform = 'uppercase';\n s.color = '#1094f7';\n s.fontSize = '14px';\n s.letterSpacing = 0;\n s.border = 0;\n s.background = 'none';\n s.marginTop = '16px';\n\n button.addEventListener('click', onclick);\n\n return button;\n};\n\nmodule.exports = ViewerSelector;\n\n},{\"./device-info.js\":9,\"./emitter.js\":14,\"./util.js\":24}],26:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Util = _dereq_('./util.js');\n\n/**\n * Android and iOS compatible wakelock implementation.\n *\n * Refactored thanks to dkovalev@.\n */\nfunction AndroidWakeLock() {\n var video = document.createElement('video');\n\n video.addEventListener('ended', function() {\n video.play();\n });\n\n this.request = function() {\n if (video.paused) {\n // Base64 version of videos_src/no-sleep-120s.mp4.\n video.src = Util.base64('video/mp4', 'AAAAGGZ0eXBpc29tAAAAAG1wNDFhdmMxAAAIA21vb3YAAABsbXZoZAAAAADSa9v60mvb+gABX5AAlw/gAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAdkdHJhawAAAFx0a2hkAAAAAdJr2/rSa9v6AAAAAQAAAAAAlw/gAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAQAAAAHAAAAAAAJGVkdHMAAAAcZWxzdAAAAAAAAAABAJcP4AAAAAAAAQAAAAAG3G1kaWEAAAAgbWRoZAAAAADSa9v60mvb+gAPQkAGjneAFccAAAAAAC1oZGxyAAAAAAAAAAB2aWRlAAAAAAAAAAAAAAAAVmlkZW9IYW5kbGVyAAAABodtaW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAAZHc3RibAAAAJdzdHNkAAAAAAAAAAEAAACHYXZjMQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAMABwASAAAAEgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj//wAAADFhdmNDAWQAC//hABlnZAALrNlfllw4QAAAAwBAAAADAKPFCmWAAQAFaOvssiwAAAAYc3R0cwAAAAAAAAABAAAAbgAPQkAAAAAUc3RzcwAAAAAAAAABAAAAAQAAA4BjdHRzAAAAAAAAAG4AAAABAD0JAAAAAAEAehIAAAAAAQA9CQAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEATEtAAAAAAQAehIAAAAABAAAAAAAAAAEAD0JAAAAAAQBMS0AAAAABAB6EgAAAAAEAAAAAAAAAAQAPQkAAAAABAExLQAAAAAEAHoSAAAAAAQAAAAAAAAABAA9CQAAAAAEALcbAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAABuAAAAAQAAAcxzdHN6AAAAAAAAAAAAAABuAAADCQAAABgAAAAOAAAADgAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAMAAAAEgAAAA4AAAAMAAAADAAAABIAAAAOAAAADAAAAAwAAAASAAAADgAAAAwAAAAM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');\n video.play();\n }\n };\n\n this.release = function() {\n video.pause();\n video.src = '';\n };\n}\n\nfunction iOSWakeLock() {\n var timer = null;\n\n this.request = function() {\n if (!timer) {\n timer = setInterval(function() {\n window.location = window.location;\n setTimeout(window.stop, 0);\n }, 30000);\n }\n }\n\n this.release = function() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n}\n\n\nfunction getWakeLock() {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\n if (userAgent.match(/iPhone/i) || userAgent.match(/iPod/i)) {\n return iOSWakeLock;\n } else {\n return AndroidWakeLock;\n }\n}\n\nmodule.exports = getWakeLock();\n},{\"./util.js\":24}],27:[function(_dereq_,module,exports){\n/*\n * Copyright 2015 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Polyfill ES6 Promises (mostly for IE 11).\n_dereq_('es6-promise').polyfill();\n\nvar CardboardVRDisplay = _dereq_('./cardboard-vr-display.js');\nvar MouseKeyboardVRDisplay = _dereq_('./mouse-keyboard-vr-display.js');\n// Uncomment to add positional tracking via webcam.\n//var WebcamPositionSensorVRDevice = require('./webcam-position-sensor-vr-device.js');\nvar VRDisplay = _dereq_('./base.js').VRDisplay;\nvar HMDVRDevice = _dereq_('./base.js').HMDVRDevice;\nvar PositionSensorVRDevice = _dereq_('./base.js').PositionSensorVRDevice;\nvar VRDisplayHMDDevice = _dereq_('./display-wrappers.js').VRDisplayHMDDevice;\nvar VRDisplayPositionSensorDevice = _dereq_('./display-wrappers.js').VRDisplayPositionSensorDevice;\n\nfunction WebVRPolyfill() {\n this.displays = [];\n this.devices = []; // For deprecated objects\n this.devicesPopulated = false;\n this.nativeWebVRAvailable = this.isWebVRAvailable();\n this.nativeLegacyWebVRAvailable = this.isDeprecatedWebVRAvailable();\n\n if (!this.nativeLegacyWebVRAvailable) {\n if (!this.nativeWebVRAvailable) {\n this.enablePolyfill();\n }\n if (WebVRConfig.ENABLE_DEPRECATED_API) {\n this.enableDeprecatedPolyfill();\n }\n }\n}\n\nWebVRPolyfill.prototype.isWebVRAvailable = function() {\n return ('getVRDisplays' in navigator);\n};\n\nWebVRPolyfill.prototype.isDeprecatedWebVRAvailable = function() {\n return ('getVRDevices' in navigator) || ('mozGetVRDevices' in navigator);\n};\n\nWebVRPolyfill.prototype.populateDevices = function() {\n if (this.devicesPopulated) {\n return;\n }\n\n // Initialize our virtual VR devices.\n var vrDisplay = null;\n\n // Add a Cardboard VRDisplay on compatible mobile devices\n if (this.isCardboardCompatible()) {\n vrDisplay = new CardboardVRDisplay();\n this.displays.push(vrDisplay);\n\n // For backwards compatibility\n if (WebVRConfig.ENABLE_DEPRECATED_API) {\n this.devices.push(new VRDisplayHMDDevice(vrDisplay));\n this.devices.push(new VRDisplayPositionSensorDevice(vrDisplay));\n }\n }\n\n // Add a Mouse and Keyboard driven VRDisplay for desktops/laptops\n if (!this.isMobile() && !WebVRConfig.MOUSE_KEYBOARD_CONTROLS_DISABLED) {\n vrDisplay = new MouseKeyboardVRDisplay();\n this.displays.push(vrDisplay);\n\n // For backwards compatibility\n if (WebVRConfig.ENABLE_DEPRECATED_API) {\n this.devices.push(new VRDisplayHMDDevice(vrDisplay));\n this.devices.push(new VRDisplayPositionSensorDevice(vrDisplay));\n }\n }\n\n // Uncomment to add positional tracking via webcam.\n //if (!this.isMobile() && WebVRConfig.ENABLE_DEPRECATED_API) {\n // positionDevice = new WebcamPositionSensorVRDevice();\n // this.devices.push(positionDevice);\n //}\n\n this.devicesPopulated = true;\n};\n\nWebVRPolyfill.prototype.enablePolyfill = function() {\n // Provide navigator.getVRDisplays.\n navigator.getVRDisplays = this.getVRDisplays.bind(this);\n\n // Provide the VRDisplay object.\n window.VRDisplay = VRDisplay;\n};\n\nWebVRPolyfill.prototype.enableDeprecatedPolyfill = function() {\n // Provide navigator.getVRDevices.\n navigator.getVRDevices = this.getVRDevices.bind(this);\n\n // Provide the CardboardHMDVRDevice and PositionSensorVRDevice objects.\n window.HMDVRDevice = HMDVRDevice;\n window.PositionSensorVRDevice = PositionSensorVRDevice;\n};\n\nWebVRPolyfill.prototype.getVRDisplays = function() {\n this.populateDevices();\n var displays = this.displays;\n return new Promise(function(resolve, reject) {\n try {\n resolve(displays);\n } catch (e) {\n reject(e);\n }\n });\n};\n\nWebVRPolyfill.prototype.getVRDevices = function() {\n console.warn('getVRDevices is deprecated. Please update your code to use getVRDisplays instead.');\n var self = this;\n return new Promise(function(resolve, reject) {\n try {\n if (!self.devicesPopulated) {\n if (self.nativeWebVRAvailable) {\n return navigator.getVRDisplays(function(displays) {\n for (var i = 0; i < displays.length; ++i) {\n self.devices.push(new VRDisplayHMDDevice(displays[i]));\n self.devices.push(new VRDisplayPositionSensorDevice(displays[i]));\n }\n self.devicesPopulated = true;\n resolve(self.devices);\n }, reject);\n }\n\n if (self.nativeLegacyWebVRAvailable) {\n return (navigator.getVRDDevices || navigator.mozGetVRDevices)(function(devices) {\n for (var i = 0; i < devices.length; ++i) {\n if (devices[i] instanceof HMDVRDevice) {\n self.devices.push(devices[i]);\n }\n if (devices[i] instanceof PositionSensorVRDevice) {\n self.devices.push(devices[i]);\n }\n }\n self.devicesPopulated = true;\n resolve(self.devices);\n }, reject);\n }\n }\n\n self.populateDevices();\n resolve(self.devices);\n } catch (e) {\n reject(e);\n }\n });\n};\n\n/**\n * Determine if a device is mobile.\n */\nWebVRPolyfill.prototype.isMobile = function() {\n return /Android/i.test(navigator.userAgent) ||\n /iPhone|iPad|iPod/i.test(navigator.userAgent);\n};\n\nWebVRPolyfill.prototype.isCardboardCompatible = function() {\n // For now, support all iOS and Android devices.\n // Also enable the WebVRConfig.FORCE_VR flag for debugging.\n return this.isMobile() || WebVRConfig.FORCE_ENABLE_VR;\n};\n\nmodule.exports = WebVRPolyfill;\n\n},{\"./base.js\":4,\"./cardboard-vr-display.js\":7,\"./display-wrappers.js\":10,\"./mouse-keyboard-vr-display.js\":17,\"es6-promise\":1}]},{},[15]);\n","/* global CustomEvent, location */\n/* Centralized place to reference utilities since utils is exposed to the user. */\n\nvar deepAssign = require('deep-assign');\nvar objectAssign = require('object-assign');\n\nmodule.exports.coordinates = require('./coordinates');\nmodule.exports.checkHeadsetConnected = require('./checkHeadsetConnected');\nmodule.exports.debug = require('./debug');\nmodule.exports.entity = require('./entity');\nmodule.exports.forceCanvasResizeSafariMobile = require('./forceCanvasResizeSafariMobile');\nmodule.exports.material = require('./material');\nmodule.exports.styleParser = require('./styleParser');\n\n/**\n * Fires a custom DOM event.\n *\n * @param {Element} el Element on which to fire the event.\n * @param {String} name Name of the event.\n * @param {Object=} [data={bubbles: true, {detail: }}]\n * Data to pass as `customEventInit` to the event.\n */\nmodule.exports.fireEvent = function (el, name, data) {\n data = data || {};\n data.detail = data.detail || {};\n data.detail.target = data.detail.target || el;\n var evt = new CustomEvent(name, data);\n el.dispatchEvent(evt);\n};\n\n/**\n * Mix the properties of source object(s) into a destination object.\n *\n * @param {object} dest - The object to which properties will be copied.\n * @param {...object} source - The object(s) from which properties will be copied.\n */\nmodule.exports.extend = objectAssign;\nmodule.exports.extendDeep = deepAssign;\n\n/**\n * Checks if two objects have the same attributes and values, including nested objects.\n *\n * @param {object} a - First object.\n * @param {object} b - Second object.\n * @returns {boolean} Whether two objects are deeply equal.\n */\nfunction deepEqual (a, b) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n var i;\n if (keysA.length !== keysB.length) { return false; }\n // If there are no keys, compare the objects.\n if (keysA.length === 0) { return a === b; }\n for (i = 0; i < keysA.length; ++i) {\n if (a[keysA[i]] !== b[keysA[i]]) { return false; }\n }\n return true;\n}\nmodule.exports.deepEqual = deepEqual;\n\n/**\n * Computes the difference between two objects.\n *\n * @param {object} a - First object to compare (e.g., oldData).\n * @param {object} b - Second object to compare (e.g., newData).\n * @returns {object}\n * Difference object where set of keys note which values were not equal, and values are\n * `b`'s values.\n */\nmodule.exports.diff = function (a, b) {\n var diff = {};\n var keys = Object.keys(a);\n Object.keys(b).forEach(function collectKeys (bKey) {\n if (keys.indexOf(bKey) === -1) {\n keys.push(bKey);\n }\n });\n keys.forEach(function doDiff (key) {\n var aVal = a[key];\n var bVal = b[key];\n var isComparingObjects = aVal && bVal &&\n aVal.constructor === Object && bVal.constructor === Object;\n if ((isComparingObjects && !deepEqual(aVal, bVal)) ||\n (!isComparingObjects && aVal !== bVal)) {\n diff[key] = bVal;\n }\n });\n return diff;\n};\n\n/**\n * Checks if browser is mobile.\n * @return {Boolean} True if mobile browser detected.\n */\nmodule.exports.isMobile = function () {\n var check = false;\n (function (a) {\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\n check = true;\n }\n if (isIOS()) {\n check = true;\n }\n if (isGearVR()) {\n check = false;\n }\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n};\n\nvar isIOS = module.exports.isIOS = function () {\n return /iPad|iPhone|iPod/.test(navigator.platform);\n};\n\nvar isGearVR = module.exports.isGearVR = function () {\n return /SamsungBrowser.+Mobile VR/i.test(navigator.userAgent);\n};\n\n/**\n * Checks mobile device orientation.\n * @return {Boolean} True if landscape orientation.\n */\nmodule.exports.isLandscape = function () {\n return window.orientation === 90 || window.orientation === -90;\n};\n\n/**\n * Returns whether we should capture this keyboard event for keyboard shortcuts.\n * @param {Event} event Event object.\n * @returns {Boolean} Whether the key event should be captured.\n */\nmodule.exports.shouldCaptureKeyEvent = function (event) {\n if (event.shiftKey || event.metaKey || event.altKey || event.ctrlKey) {\n return false;\n }\n return document.activeElement === document.body;\n};\n\n/**\n * Splits a string into an array based on a delimiter.\n *\n * @param {string=} [str=''] Source string\n * @param {string=} [delimiter=' '] Delimiter to use\n * @returns {array} Array of delimited strings\n */\nmodule.exports.splitString = function (str, delimiter) {\n if (typeof delimiter === 'undefined') { delimiter = ' '; }\n // First collapse the whitespace (or whatever the delimiter is).\n var regex = new RegExp(delimiter, 'g');\n str = (str || '').replace(regex, delimiter);\n // Then split.\n return str.split(delimiter);\n};\n\n/**\n * Extracts data from the element given an object that contains expected keys.\n *\n * @param {Element} Source element.\n * @param {Object} [defaults={}] Object of default key-value pairs.\n * @returns {Object}\n */\nmodule.exports.getElData = function (el, defaults) {\n defaults = defaults || {};\n var data = {};\n Object.keys(defaults).forEach(copyAttribute);\n function copyAttribute (key) {\n if (el.hasAttribute(key)) {\n data[key] = el.getAttribute(key);\n }\n }\n return data;\n};\n\n/**\n * Retrieves querystring value.\n * @param {String} name Name of querystring key.\n * @return {String} Value\n */\nmodule.exports.getUrlParameter = function (name) {\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regex = new RegExp('[\\\\?&]' + name + '=([^]*)');\n var results = regex.exec(location.search);\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n};\n\n/**\n * Detects whether context is within iframe.\n */\nmodule.exports.isIframed = function () {\n return window.top !== window.self;\n};\n\n/**\n * Finds all elements under the element that have the isScene\n * property set to true\n */\nmodule.exports.findAllScenes = function (el) {\n var matchingElements = [];\n var allElements = el.getElementsByTagName('*');\n for (var i = 0, n = allElements.length; i < n; i++) {\n if (allElements[i].isScene) {\n // Element exists with isScene set.\n matchingElements.push(allElements[i]);\n }\n }\n return matchingElements;\n};\n\n// Must be at bottom to avoid circular dependency.\nmodule.exports.srcLoader = require('./src-loader');\n","/* global Promise, screen */\nvar initMetaTags = require('./metaTags').inject;\nvar initWakelock = require('./wakelock');\nvar re = require('../a-register-element');\nvar systems = require('../system').systems;\nvar THREE = require('../../lib/three');\nvar TWEEN = require('tween.js');\nvar utils = require('../../utils/');\n// Require after.\nvar AEntity = require('../a-entity');\nvar ANode = require('../a-node');\nvar initPostMessageAPI = require('./postMessage');\n\nvar checkHeadsetConnected = utils.checkHeadsetConnected;\nvar registerElement = re.registerElement;\nvar isIOS = utils.isIOS();\nvar isMobile = utils.isMobile();\n\n/**\n * Scene element, holds all entities.\n *\n * @member {number} animationFrameID\n * @member {array} behaviors - Component instances that have registered themselves to be\n updated on every tick.\n * @member {object} camera - three.js Camera object.\n * @member {object} canvas\n * @member {bool} isScene - Differentiates as scene entity as opposed to other entites.\n * @member {bool} isMobile - Whether browser is mobile (via UA detection).\n * @member {object} object3D - Root three.js Scene object.\n * @member {object} renderer\n * @member {bool} renderStarted\n * @member (object) effect - three.js VREffect\n * @member {object} systems - Registered instantiated systems.\n * @member {number} time\n */\nmodule.exports = registerElement('a-scene', {\n prototype: Object.create(AEntity.prototype, {\n defaultComponents: {\n value: {\n 'canvas': '',\n 'inspector': '',\n 'keyboard-shortcuts': '',\n 'vr-mode-ui': ''\n }\n },\n\n createdCallback: {\n value: function () {\n this.isIOS = isIOS;\n this.isMobile = isMobile;\n this.isScene = true;\n this.object3D = new THREE.Scene();\n this.render = this.render.bind(this);\n this.systems = {};\n this.time = 0;\n\n this.init();\n }\n },\n\n init: {\n value: function () {\n this.behaviors = [];\n this.hasLoaded = false;\n this.isPlaying = false;\n this.originalHTML = this.innerHTML;\n this.addEventListener('render-target-loaded', function () {\n this.setupRenderer();\n this.resize();\n });\n this.addFullScreenStyles();\n initPostMessageAPI(this);\n },\n writable: true\n },\n\n addFullScreenStyles: {\n value: function () {\n var htmlEl = document.documentElement;\n htmlEl.classList.add('a-html');\n document.body.classList.add('a-body');\n this.classList.add('fullscreen');\n }\n },\n\n removeFullScreenStyles: {\n value: function () {\n var htmlEl = document.documentElement;\n htmlEl.classList.remove('a-html');\n document.body.classList.remove('a-body');\n this.classList.remove('fullscreen');\n }\n },\n\n attachedCallback: {\n value: function () {\n var resize = this.resize.bind(this);\n initMetaTags(this);\n initWakelock(this);\n this.initSystems();\n\n window.addEventListener('load', resize);\n window.addEventListener('resize', resize);\n this.play();\n },\n writable: window.debug\n },\n\n initSystems: {\n value: function () {\n Object.keys(systems).forEach(this.initSystem.bind(this));\n }\n },\n\n initSystem: {\n value: function (name) {\n var system;\n if (this.systems[name]) { return; }\n system = this.systems[name] = new systems[name](this);\n system.init();\n }\n },\n\n /**\n * Shuts down scene on detach.\n */\n detachedCallback: {\n value: function () {\n window.cancelAnimationFrame(this.animationFrameID);\n this.animationFrameID = null;\n }\n },\n\n /**\n * @param {object} behavior - Generally a component. Must implement a .update() method to\n * be called on every tick.\n */\n addBehavior: {\n value: function (behavior) {\n var behaviors = this.behaviors;\n if (behaviors.indexOf(behavior) !== -1) { return; }\n behaviors.push(behavior);\n }\n },\n\n enterVR: {\n value: function (event) {\n var self = this;\n if (this.is('vr-mode')) { return; }\n if (checkHeadsetConnected() || this.isMobile) {\n return this.effect.requestPresent().then(enterVRSuccess, enterVRFailure);\n }\n enterVRSuccess();\n\n function enterVRSuccess () {\n self.addState('vr-mode');\n self.emit('enter-vr', event);\n\n // Lock to landscape orientation on mobile.\n if (self.isMobile && screen.orientation && screen.orientation.lock) {\n screen.orientation.lock('landscape');\n }\n self.addFullScreenStyles();\n\n // On mobile, the polyfill handles fullscreen.\n // TODO: 07/16 Chromium builds break when `requestFullscreen`ing on a canvas\n // that we are also `requestPresent`ing. Until then, don't fullscreen if headset\n // connected.\n if (!self.isMobile && !checkHeadsetConnected()) { requestFullscreen(self.canvas); }\n self.resize();\n }\n\n function enterVRFailure (err) {\n if (err && err.message) {\n throw new Error('Failed to enter VR mode (`requestPresent`): ' + err.message);\n } else {\n throw new Error('Failed to enter VR mode (`requestPresent`).');\n }\n }\n }\n },\n\n exitVR: {\n value: function () {\n var self = this;\n if (!this.is('vr-mode')) { return Promise.resolve(); }\n if (checkHeadsetConnected() || this.isMobile) {\n return this.effect.exitPresent().then(exitVRSuccess, exitVRFailure);\n }\n exitVRSuccess();\n function exitVRSuccess () {\n var embedded = self.getAttribute('embedded');\n self.removeState('vr-mode');\n // Lock to landscape orientation on mobile.\n if (self.isMobile && screen.orientation && screen.orientation.unlock) {\n screen.orientation.unlock();\n }\n // Exiting VR in embedded mode, no longer need fullscreen styles.\n if (embedded) { self.removeFullScreenStyles(); }\n self.resize();\n if (self.isIOS) { utils.forceCanvasResizeSafariMobile(this.canvas); }\n self.emit('exit-vr', {target: self});\n }\n function exitVRFailure (err) {\n if (err && err.message) {\n throw new Error('Failed to exit VR mode (`exitPresent`): ' + err.message);\n } else {\n throw new Error('Failed to exit VR mode (`exitPresent`).');\n }\n }\n }\n },\n\n /**\n * Wraps Entity.getAttribute to take into account for systems.\n * If system exists, then return system data rather than possible component data.\n */\n getAttribute: {\n value: function (attr) {\n var system = this.systems[attr];\n if (system) { return system.data; }\n return AEntity.prototype.getAttribute.call(this, attr);\n }\n },\n\n /**\n * Wraps Entity.getComputedAttribute to take into account for systems.\n * If system exists, then return system data rather than possible component data.\n */\n getComputedAttribute: {\n value: function (attr) {\n var system = this.systems[attr];\n if (system) { return system.data; }\n return AEntity.prototype.getComputedAttribute.call(this, attr);\n }\n },\n\n /**\n * Wraps Entity.setAttribute to take into account for systems.\n * If system exists, then skip component initialization checks and do a normal\n * setAttribute.\n */\n setAttribute: {\n value: function (attr, value, componentPropValue) {\n var system = this.systems[attr];\n if (system) {\n ANode.prototype.setAttribute.call(this, attr, value);\n return;\n }\n AEntity.prototype.setAttribute.call(this, attr, value, componentPropValue);\n }\n },\n\n /**\n * @param {object} behavior - Generally a component. Has registered itself to behaviors.\n */\n removeBehavior: {\n value: function (behavior) {\n var behaviors = this.behaviors;\n var index = behaviors.indexOf(behavior);\n if (index === -1) { return; }\n behaviors.splice(index, 1);\n }\n },\n\n resize: {\n value: function () {\n var camera = this.camera;\n var canvas = this.canvas;\n var embedded = this.getAttribute('embedded') && !this.is('vr-mode');\n var size;\n // Possible camera or canvas not injected yet.\n // ON MOBILE the webvr-polyfill relies on the fullscreen API to enter\n // VR mode. The canvas is resized by VREffect following the values returned\n // by getEyeParameters. We don't want to overwrite the size with the\n // windows width and height.\n if (!camera || !canvas || this.is('vr-mode') && isMobile) { return; }\n // Update camera.\n size = getCanvasSize(canvas, embedded);\n camera.aspect = size.width / size.height;\n camera.updateProjectionMatrix();\n // Notify renderer of size change.\n this.renderer.setSize(size.width, size.height);\n },\n writable: window.debug\n },\n\n setupRenderer: {\n value: function () {\n var canvas = this.canvas;\n // Set at startup. To enable/disable antialias\n // at runttime we would have to recreate the whole context\n var antialias = this.getAttribute('antialias') === 'true';\n var renderer = this.renderer = new THREE.WebGLRenderer({\n canvas: canvas,\n antialias: antialias || window.hasNativeWebVRImplementation,\n alpha: true\n });\n renderer.setPixelRatio(window.devicePixelRatio);\n renderer.sortObjects = false;\n this.effect = new THREE.VREffect(renderer);\n },\n writable: window.debug\n },\n\n /**\n * Handler attached to elements to help scene know when to kick off.\n * Scene waits for all entities to load.\n */\n play: {\n value: function () {\n var self = this;\n if (this.renderStarted) {\n AEntity.prototype.play.call(this);\n return;\n }\n\n this.addEventListener('loaded', function () {\n AEntity.prototype.play.call(this); // .play() *before* render.\n\n // Wait for camera if necessary before rendering.\n if (this.camera) {\n startRender(this);\n return;\n }\n this.addEventListener('camera-set-active', function () { startRender(this); });\n\n function startRender (sceneEl) {\n if (sceneEl.renderStarted) { return; }\n\n sceneEl.resize();\n\n // Kick off render loop.\n if (sceneEl.renderer) {\n if (window.performance) {\n window.performance.mark('render-started');\n }\n sceneEl.render(0);\n sceneEl.renderStarted = true;\n sceneEl.emit('renderstart');\n }\n }\n });\n\n // setTimeout to wait for all nodes to attach and run their callbacks.\n setTimeout(function () {\n AEntity.prototype.load.call(self);\n });\n }\n },\n\n /**\n * Reload the scene to the original DOM content.\n *\n * @param {bool} doPause - Whether to reload the scene with all dynamic behavior paused.\n */\n reload: {\n value: function (doPause) {\n var self = this;\n if (doPause) { this.pause(); }\n this.innerHTML = this.originalHTML;\n this.init();\n ANode.prototype.load.call(this, play);\n function play () {\n if (!self.isPlaying) { return; }\n AEntity.prototype.play.call(self);\n }\n }\n },\n\n /**\n * Behavior-updater meant to be called from scene render.\n * Abstracted to a different function to facilitate unit testing (`scene.tick()`) without\n * needing to render.\n */\n tick: {\n value: function (time, timeDelta) {\n var systems = this.systems;\n\n // Animations.\n TWEEN.update(time);\n // Components.\n this.behaviors.forEach(function (component) {\n if (!component.el.isPlaying) { return; }\n component.tick(time, timeDelta);\n });\n // Systems.\n Object.keys(systems).forEach(function (key) {\n if (!systems[key].tick) { return; }\n systems[key].tick(time, timeDelta);\n });\n }\n },\n\n /**\n * The render loop.\n *\n * Updates animations.\n * Updates behaviors.\n * Renders with request animation frame.\n */\n render: {\n value: function (time) {\n var timeDelta = time - this.time;\n\n if (this.isPlaying) { this.tick(time, timeDelta); }\n this.effect.render(this.object3D, this.camera);\n\n this.time = time;\n this.animationFrameID = window.requestAnimationFrame(this.render);\n },\n writable: true\n }\n })\n});\n\n/**\n * Return the canvas size where the scene will be rendered\n * It will be always the window size except when the scene\n * is embedded. The parent size will be returned in that case\n *\n * @param {object} canvasEl - the canvas element\n * @param {boolean} embedded - Is the scene embedded?\n */\nfunction getCanvasSize (canvasEl, embedded) {\n if (embedded) {\n return {\n height: canvasEl.parentElement.offsetHeight,\n width: canvasEl.parentElement.offsetWidth\n };\n }\n return {\n height: window.innerHeight,\n width: window.innerWidth\n };\n}\n\nfunction requestFullscreen (canvas) {\n var requestFullscreen =\n canvas.requestFullScreen ||\n canvas.webkitRequestFullScreen ||\n canvas.mozRequestFullScreen;\n requestFullscreen.apply(canvas);\n}\n","var AEntity = require('../../core/a-entity');\nvar components = require('../../core/component').components;\nvar registerElement = require('../../core/a-register-element').registerElement;\nvar utils = require('../../utils/');\n\nvar debug = utils.debug;\nvar setComponentProperty = utils.entity.setComponentProperty;\nvar log = debug('extras:primitives:debug');\n\nvar primitives = module.exports.primitives = {};\n\nmodule.exports.registerPrimitive = function registerPrimitive (name, definition) {\n name = name.toLowerCase();\n log('Registering <%s>', name);\n\n // Deprecation warning for defaultAttributes usage.\n if (definition.defaultAttributes) {\n console.warn(\"The 'defaultAttributes' object is deprecated. Use 'defaultComponents' instead.\");\n }\n\n var primitive = registerElement(name, {\n prototype: Object.create(AEntity.prototype, {\n defaultComponentsFromPrimitive: {\n value: definition.defaultComponents || definition.defaultAttributes || {}\n },\n\n deprecated: {\n value: definition.deprecated || null\n },\n\n deprecatedMappings: {\n value: definition.deprecatedMappings || {}\n },\n\n mappings: {\n value: definition.mappings || {}\n },\n\n transforms: {\n value: definition.transforms || {}\n },\n\n createdCallback: {\n value: function () {\n this.componentData = {};\n if (definition.deprecated) {\n console.warn(definition.deprecated);\n }\n }\n },\n\n attachedCallback: {\n value: function () {\n var self = this;\n var attributes = this.attributes;\n this.applyDefaultComponents();\n // Apply initial attributes.\n Object.keys(attributes).forEach(function applyInitial (attributeName) {\n var attr = attributes[attributeName];\n self.syncAttributeToComponent(attr.name, attr.value);\n });\n }\n },\n\n /**\n * Sync to attribute to component property whenever mapped attribute changes.\n */\n attributeChangedCallback: {\n value: function (attr, oldVal, newVal) {\n this.syncAttributeToComponent(attr, newVal);\n }\n },\n\n applyDefaultComponents: {\n value: function () {\n var self = this;\n var defaultData = this.defaultComponentsFromPrimitive;\n\n // Apply default components.\n Object.keys(defaultData).forEach(function applyDefault (componentName) {\n var componentData = defaultData[componentName];\n\n // Set component properties individually to not overwrite user-defined components.\n if (componentData instanceof Object) {\n var component = components[componentName];\n var attrValues = self.getAttribute(componentName) || {};\n var data = component.parse(attrValues);\n\n // Check if component property already defined.\n Object.keys(componentData).forEach(function setProperty (propName) {\n if (data[propName]) { return; }\n data[propName] = componentData[propName];\n });\n self.setAttribute(componentName, data);\n return;\n }\n\n // Component is single-property schema, just set the attribute.\n self.setAttribute(componentName, componentData);\n });\n }\n },\n\n /**\n * If attribute is mapped to a component property, set the component property using\n * the attribute value.\n */\n syncAttributeToComponent: {\n value: function (attr, value) {\n var componentName = this.mappings[attr];\n\n if (attr in this.deprecatedMappings) {\n console.warn(this.deprecatedMappings[attr]);\n }\n if (!attr || !componentName) { return; }\n\n // Run transform.\n value = this.getTransformedValue(attr, value);\n\n // Set value.\n setComponentProperty(this, componentName, value);\n }\n },\n\n /**\n * Calls defined transform function on value if any.\n */\n getTransformedValue: {\n value: function (attr, value) {\n if (!this.transforms || !this.transforms[attr]) { return value; }\n return this.transforms[attr].bind(this)(value);\n }\n }\n })\n });\n\n // Store.\n primitives[name] = primitive;\n return primitive;\n};\n","/**\n * Common mesh defaults, mappings, and transforms.\n */\nmodule.exports = function getMeshMixin () {\n return {\n defaultComponents: {\n material: { }\n },\n\n mappings: {\n color: 'material.color',\n metalness: 'material.metalness',\n opacity: 'material.opacity',\n repeat: 'material.repeat',\n roughness: 'material.roughness',\n shader: 'material.shader',\n side: 'material.side',\n src: 'material.src',\n transparent: 'material.transparent'\n },\n\n transforms: {\n src: function (value) {\n // Selector.\n if (value[0] === '#') { return value; }\n // Inline url().\n return 'url(' + value + ')';\n }\n }\n };\n};\n","require('./pivot');\n","var ANode = require('../../core/a-node');\nvar registerElement = require('../../core/a-register-element').registerElement;\nvar utils = require('../../utils/');\n\nvar setComponentProperty = utils.entity.setComponentProperty;\n\n/**\n * Declarative events to help register event listeners that set attributes on other entities.\n * A convenience layer and helper for those that might not know Javascript.\n *\n * Note that the event that registers is not delegated as this helper is mainly\n * for those that do not know Javascript and writing raw markup. In which case, delegated\n * events are not needed. Also helps reduce scope of this helper and encourages people to\n * learn to register their own event handlers.\n *\n * @member {string} name - Event name.\n * @member {array} targetEls - Elements to modify on event. Defaults to parent element.\n */\nmodule.exports = registerElement('a-event', {\n prototype: Object.create(ANode.prototype, {\n createdCallback: {\n value: function () {\n this.el = null;\n this.isAEvent = true;\n this.name = '';\n this.targetEls = [];\n }\n },\n\n attachedCallback: {\n value: function () {\n var targetSelector = this.getAttribute('target');\n this.el = this.parentNode;\n this.name = this.getAttribute('name') || this.getAttribute('type');\n\n console.log(\n ' has been DEPRECATED. ' +\n 'Use https://github.com/ngokevin/aframe-event-set-component instead.');\n\n if (targetSelector) {\n this.targetEls = this.el.sceneEl.querySelectorAll(targetSelector);\n } else {\n this.targetEls = [this.el];\n }\n\n if (this.deprecated) {\n console.warn(\n '<' + this.tagName.toLowerCase() + '>' +\n ' has been DEPRECATED. Use ' +\n ' instead.'\n );\n }\n\n // Deprecate `type` for `name`.\n if (this.hasAttribute('type')) {\n console.log(\n ' has been DEPRECATED. Use instead.'\n );\n }\n\n this.listener = this.attachEventListener();\n this.load();\n }\n },\n\n detachedCallback: {\n value: function () {\n var listener = this.listener;\n if (!listener) { return; }\n this.removeEventListener(this.name, listener);\n }\n },\n\n attachEventListener: {\n value: function () {\n var attributes = this.attributes;\n var el = this.el;\n var name = this.name;\n var targetEls = this.targetEls;\n\n return el.addEventListener(name, function () {\n var attribute;\n var attributeName;\n var attributeValue;\n var targetEl;\n\n for (var i = 0; i < targetEls.length; i++) {\n for (var j = 0; j < attributes.length; j++) {\n attribute = attributes[j];\n attributeName = attribute.name;\n attributeValue = attribute.value;\n targetEl = targetEls[i];\n\n // target is a keyword for .\n if (attributeName === 'target') { continue; }\n setComponentProperty(targetEl, attributeName, attributeValue);\n }\n }\n });\n }\n }\n })\n});\n","require('./primitives/a-camera');\nrequire('./primitives/a-collada-model');\nrequire('./primitives/a-cursor');\nrequire('./primitives/a-curvedimage');\nrequire('./primitives/a-image');\nrequire('./primitives/a-light');\nrequire('./primitives/a-obj-model');\nrequire('./primitives/a-sky');\nrequire('./primitives/a-sound');\nrequire('./primitives/a-video');\nrequire('./primitives/a-videosphere');\nrequire('./primitives/meshPrimitives');\n","/**\r\n * @author dmarcos / https://github.com/dmarcos\r\n * @author mrdoob / http://mrdoob.com\r\n */\r\n\r\nTHREE.VRControls = function ( object, onError ) {\r\n\r\n\tvar scope = this;\r\n\r\n\tvar vrInput;\r\n\r\n\tvar standingMatrix = new THREE.Matrix4();\r\n\r\n\tfunction gotVRDevices( devices ) {\r\n\r\n\t\tfor ( var i = 0; i < devices.length; i ++ ) {\r\n\r\n\t\t\tif ( ( 'VRDisplay' in window && devices[ i ] instanceof VRDisplay ) ||\r\n\t\t\t\t ( 'PositionSensorVRDevice' in window && devices[ i ] instanceof PositionSensorVRDevice ) ) {\r\n\r\n\t\t\t\tvrInput = devices[ i ];\r\n\t\t\t\tbreak; // We keep the first we encounter\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif ( !vrInput ) {\r\n\r\n\t\t\tif ( onError ) onError( 'VR input not available.' );\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tif ( navigator.getVRDisplays ) {\r\n\r\n\t\tnavigator.getVRDisplays().then( gotVRDevices );\r\n\r\n\t} else if ( navigator.getVRDevices ) {\r\n\r\n\t\t// Deprecated API.\r\n\t\tnavigator.getVRDevices().then( gotVRDevices );\r\n\r\n\t}\r\n\r\n\t// the Rift SDK returns the position in meters\r\n\t// this scale factor allows the user to define how meters\r\n\t// are converted to scene units.\r\n\r\n\tthis.scale = 1;\r\n\r\n\t// If true will use \"standing space\" coordinate system where y=0 is the\r\n\t// floor and x=0, z=0 is the center of the room.\r\n\tthis.standing = false;\r\n\r\n\t// Distance from the users eyes to the floor in meters. Used when\r\n\t// standing=true but the VRDisplay doesn't provide stageParameters.\r\n\tthis.userHeight = 1.6;\r\n\r\n\tthis.update = function () {\r\n\r\n\t\tif ( vrInput ) {\r\n\r\n\t\t\tif ( vrInput.getPose ) {\r\n\r\n\t\t\t\tvar pose = vrInput.getPose();\r\n\r\n\t\t\t\tif ( pose.orientation !== null ) {\r\n\r\n\t\t\t\t\tobject.quaternion.fromArray( pose.orientation );\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( pose.position !== null ) {\r\n\r\n\t\t\t\t\tobject.position.fromArray( pose.position );\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tobject.position.set( 0, 0, 0 );\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Deprecated API.\r\n\t\t\t\tvar state = vrInput.getState();\r\n\r\n\t\t\t\tif ( state.orientation !== null ) {\r\n\r\n\t\t\t\t\tobject.quaternion.copy( state.orientation );\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( state.position !== null ) {\r\n\r\n\t\t\t\t\tobject.position.copy( state.position );\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tobject.position.set( 0, 0, 0 );\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif ( this.standing ) {\r\n\r\n\t\t\t\tif ( vrInput.stageParameters ) {\r\n\r\n\t\t\t\t\tobject.updateMatrix();\r\n\r\n\t\t\t\t\tstandingMatrix.fromArray(vrInput.stageParameters.sittingToStandingTransform);\r\n\t\t\t\t\tobject.applyMatrix( standingMatrix );\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tobject.position.setY( object.position.y + this.userHeight );\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tobject.position.multiplyScalar( scope.scale );\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tthis.resetPose = function () {\r\n\r\n\t\tif ( vrInput ) {\r\n\r\n\t\t\tif ( vrInput.resetPose !== undefined ) {\r\n\r\n\t\t\t\tvrInput.resetPose();\r\n\r\n\t\t\t} else if ( vrInput.resetSensor !== undefined ) {\r\n\r\n\t\t\t\t// Deprecated API.\r\n\t\t\t\tvrInput.resetSensor();\r\n\r\n\t\t\t} else if ( vrInput.zeroSensor !== undefined ) {\r\n\r\n\t\t\t\t// Really deprecated API.\r\n\t\t\t\tvrInput.zeroSensor();\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tthis.resetSensor = function () {\r\n\r\n\t\tconsole.warn( 'THREE.VRControls: .resetSensor() is now .resetPose().' );\r\n\t\tthis.resetPose();\r\n\r\n\t};\r\n\r\n\tthis.zeroSensor = function () {\r\n\r\n\t\tconsole.warn( 'THREE.VRControls: .zeroSensor() is now .resetPose().' );\r\n\t\tthis.resetPose();\r\n\r\n\t};\r\n\r\n\tthis.dispose = function () {\r\n\r\n\t\tvrInput = null;\r\n\r\n\t};\r\n\r\n};\r\n","/**\r\n * @author dmarcos / https://github.com/dmarcos\r\n * @author mrdoob / http://mrdoob.com\r\n *\r\n * WebVR Spec: http://mozvr.github.io/webvr-spec/webvr.html\r\n *\r\n * Firefox: http://mozvr.com/downloads/\r\n * Chromium: https://drive.google.com/folderview?id=0BzudLt22BqGRbW9WTHMtOWMzNjQ&usp=sharing#list\r\n *\r\n */\r\n\r\nTHREE.VREffect = function ( renderer, onError ) {\r\n\r\n\tvar isWebVR1 = true;\r\n\r\n\tvar vrDisplay, vrDisplays;\r\n\tvar eyeTranslationL = new THREE.Vector3();\r\n\tvar eyeTranslationR = new THREE.Vector3();\r\n\tvar renderRectL, renderRectR;\r\n\tvar eyeFOVL, eyeFOVR;\r\n\r\n\tfunction gotVRDisplays( displays ) {\r\n\r\n\t\tvrDisplays = displays;\r\n\r\n\t\tfor ( var i = 0; i < displays.length; i ++ ) {\r\n\r\n\t\t\tif ( 'VRDisplay' in window && displays[ i ] instanceof VRDisplay ) {\r\n\r\n\t\t\t\tvrDisplay = displays[ i ];\r\n\t\t\t\tisWebVR1 = true;\r\n\t\t\t\tbreak; // We keep the first we encounter\r\n\r\n\t\t\t} else if ( 'HMDVRDevice' in window && displays[ i ] instanceof HMDVRDevice ) {\r\n\r\n\t\t\t\tvrDisplay = displays[ i ];\r\n\t\t\t\tisWebVR1 = false;\r\n\t\t\t\tbreak; // We keep the first we encounter\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif ( vrDisplay === undefined ) {\r\n\r\n\t\t\tif ( onError ) onError( 'HMD not available' );\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tif ( navigator.getVRDisplays ) {\r\n\r\n\t\tnavigator.getVRDisplays().then( gotVRDisplays );\r\n\r\n\t} else if ( navigator.getVRDevices ) {\r\n\r\n\t\t// Deprecated API.\r\n\t\tnavigator.getVRDevices().then( gotVRDisplays );\r\n\r\n\t}\r\n\r\n\t//\r\n\r\n\tthis.isPresenting = false;\r\n\tthis.scale = 1;\r\n\r\n\tvar scope = this;\r\n\r\n\tvar rendererSize = renderer.getSize();\r\n\tvar rendererPixelRatio = renderer.getPixelRatio();\r\n\r\n\tthis.getVRDisplay = function () {\r\n\r\n\t\treturn vrDisplay;\r\n\r\n\t};\r\n\r\n\tthis.getVRDisplays = function () {\r\n\r\n\t\treturn vrDisplays;\r\n\r\n\t};\r\n\r\n\tthis.setSize = function ( width, height ) {\r\n\r\n\t\trendererSize = { width: width, height: height };\r\n\r\n\t\tif ( scope.isPresenting ) {\r\n\r\n\t\t\tvar eyeParamsL = vrDisplay.getEyeParameters( 'left' );\r\n\t\t\trenderer.setPixelRatio( 1 );\r\n\r\n\t\t\tif ( isWebVR1 ) {\r\n\r\n\t\t\t\trenderer.setSize( eyeParamsL.renderWidth * 2, eyeParamsL.renderHeight, false );\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\trenderer.setSize( eyeParamsL.renderRect.width * 2, eyeParamsL.renderRect.height, false );\r\n\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\r\n\t\t\trenderer.setPixelRatio( rendererPixelRatio );\r\n\t\t\trenderer.setSize( width, height );\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\t// fullscreen\r\n\r\n\tvar canvas = renderer.domElement;\r\n\tvar requestFullscreen;\r\n\tvar exitFullscreen;\r\n\tvar fullscreenElement;\r\n\tvar leftBounds = [ 0.0, 0.0, 0.5, 1.0 ];\r\n\tvar rightBounds = [ 0.5, 0.0, 0.5, 1.0 ];\r\n\r\n\tfunction onFullscreenChange() {\r\n\r\n\t\tvar wasPresenting = scope.isPresenting;\r\n\t\tscope.isPresenting = vrDisplay !== undefined && ( vrDisplay.isPresenting || ( ! isWebVR1 && document[ fullscreenElement ] instanceof window.HTMLElement ) );\r\n\r\n\t\tif ( scope.isPresenting ) {\r\n\r\n\t\t\tvar eyeParamsL = vrDisplay.getEyeParameters( 'left' );\r\n\t\t\tvar eyeWidth, eyeHeight;\r\n\r\n\t\t\tif ( isWebVR1 ) {\r\n\r\n\t\t\t\teyeWidth = eyeParamsL.renderWidth;\r\n\t\t\t\teyeHeight = eyeParamsL.renderHeight;\r\n\r\n\t\t\t\tif ( vrDisplay.getLayers ) {\r\n\r\n\t\t\t\t\tvar layers = vrDisplay.getLayers();\r\n\t\t\t\t\tif ( layers.length ) {\r\n\r\n\t\t\t\t\t\tleftBounds = layers[0].leftBounds || [ 0.0, 0.0, 0.5, 1.0 ];\r\n\t\t\t\t\t\trightBounds = layers[0].rightBounds || [ 0.5, 0.0, 0.5, 1.0 ];\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\teyeWidth = eyeParamsL.renderRect.width;\r\n\t\t\t\teyeHeight = eyeParamsL.renderRect.height;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif ( !wasPresenting ) {\r\n\r\n\t\t\t\trendererPixelRatio = renderer.getPixelRatio();\r\n\t\t\t\trendererSize = renderer.getSize();\r\n\r\n\t\t\t\trenderer.setPixelRatio( 1 );\r\n\t\t\t\trenderer.setSize( eyeWidth * 2, eyeHeight, false );\r\n\r\n\t\t\t}\r\n\r\n\t\t} else if ( wasPresenting ) {\r\n\r\n\t\t\trenderer.setPixelRatio( rendererPixelRatio );\r\n\t\t\trenderer.setSize( rendererSize.width, rendererSize.height );\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tif ( canvas.requestFullscreen ) {\r\n\r\n\t\trequestFullscreen = 'requestFullscreen';\r\n\t\tfullscreenElement = 'fullscreenElement';\r\n\t\texitFullscreen = 'exitFullscreen';\r\n\t\tdocument.addEventListener( 'fullscreenchange', onFullscreenChange, false );\r\n\r\n\t} else if ( canvas.mozRequestFullScreen ) {\r\n\r\n\t\trequestFullscreen = 'mozRequestFullScreen';\r\n\t\tfullscreenElement = 'mozFullScreenElement';\r\n\t\texitFullscreen = 'mozCancelFullScreen';\r\n\t\tdocument.addEventListener( 'mozfullscreenchange', onFullscreenChange, false );\r\n\r\n\t} else {\r\n\r\n\t\trequestFullscreen = 'webkitRequestFullscreen';\r\n\t\tfullscreenElement = 'webkitFullscreenElement';\r\n\t\texitFullscreen = 'webkitExitFullscreen';\r\n\t\tdocument.addEventListener( 'webkitfullscreenchange', onFullscreenChange, false );\r\n\r\n\t}\r\n\r\n\twindow.addEventListener( 'vrdisplaypresentchange', onFullscreenChange, false );\r\n\r\n\tthis.setFullScreen = function ( boolean ) {\r\n\r\n\t\treturn new Promise( function ( resolve, reject ) {\r\n\r\n\t\t\tif ( vrDisplay === undefined ) {\r\n\r\n\t\t\t\treject( new Error( 'No VR hardware found.' ) );\r\n\t\t\t\treturn;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif ( scope.isPresenting === boolean ) {\r\n\r\n\t\t\t\tresolve();\r\n\t\t\t\treturn;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif ( isWebVR1 ) {\r\n\r\n\t\t\t\tif ( boolean ) {\r\n\r\n\t\t\t\t\tresolve( vrDisplay.requestPresent( [ { source: canvas } ] ) );\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tresolve( vrDisplay.exitPresent() );\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tif ( canvas[ requestFullscreen ] ) {\r\n\r\n\t\t\t\t\tcanvas[ boolean ? requestFullscreen : exitFullscreen ]( { vrDisplay: vrDisplay } );\r\n\t\t\t\t\tresolve();\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tconsole.error( 'No compatible requestFullscreen method found.' );\r\n\t\t\t\t\treject( new Error( 'No compatible requestFullscreen method found.' ) );\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t} );\r\n\r\n\t};\r\n\r\n\tthis.requestPresent = function () {\r\n\r\n\t\treturn this.setFullScreen( true );\r\n\r\n\t};\r\n\r\n\tthis.exitPresent = function () {\r\n\r\n\t\treturn this.setFullScreen( false );\r\n\r\n\t};\r\n\r\n\tthis.requestAnimationFrame = function ( f ) {\r\n\r\n\t\tif ( isWebVR1 && vrDisplay !== undefined ) {\r\n\r\n\t\t\treturn vrDisplay.requestAnimationFrame( f );\r\n\r\n\t\t} else {\r\n\r\n\t\t\treturn window.requestAnimationFrame( f );\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tthis.cancelAnimationFrame = function ( h ) {\r\n\r\n\t\tif ( isWebVR1 && vrDisplay !== undefined ) {\r\n\r\n\t\t\tvrDisplay.cancelAnimationFrame( h );\r\n\r\n\t\t} else {\r\n\r\n\t\t\twindow.cancelAnimationFrame( h );\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tthis.submitFrame = function () {\r\n\r\n\t\tif ( isWebVR1 && vrDisplay !== undefined && scope.isPresenting ) {\r\n\r\n\t\t\tvrDisplay.submitFrame();\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tthis.autoSubmitFrame = true;\r\n\r\n\t// render\r\n\r\n\tvar cameraL = new THREE.PerspectiveCamera();\r\n\tcameraL.layers.enable( 1 );\r\n\r\n\tvar cameraR = new THREE.PerspectiveCamera();\r\n\tcameraR.layers.enable( 2 );\r\n\r\n\tthis.render = function ( scene, camera, renderTarget, forceClear ) {\r\n\r\n\t\tif ( vrDisplay && scope.isPresenting ) {\r\n\r\n\t\t\tvar autoUpdate = scene.autoUpdate;\r\n\r\n\t\t\tif ( autoUpdate ) {\r\n\r\n\t\t\t\tscene.updateMatrixWorld();\r\n\t\t\t\tscene.autoUpdate = false;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar eyeParamsL = vrDisplay.getEyeParameters( 'left' );\r\n\t\t\tvar eyeParamsR = vrDisplay.getEyeParameters( 'right' );\r\n\r\n\t\t\tif ( isWebVR1 ) {\r\n\r\n\t\t\t\teyeTranslationL.fromArray( eyeParamsL.offset );\r\n\t\t\t\teyeTranslationR.fromArray( eyeParamsR.offset );\r\n\t\t\t\teyeFOVL = eyeParamsL.fieldOfView;\r\n\t\t\t\teyeFOVR = eyeParamsR.fieldOfView;\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\teyeTranslationL.copy( eyeParamsL.eyeTranslation );\r\n\t\t\t\teyeTranslationR.copy( eyeParamsR.eyeTranslation );\r\n\t\t\t\teyeFOVL = eyeParamsL.recommendedFieldOfView;\r\n\t\t\t\teyeFOVR = eyeParamsR.recommendedFieldOfView;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif ( Array.isArray( scene ) ) {\r\n\r\n\t\t\t\tconsole.warn( 'THREE.VREffect.render() no longer supports arrays. Use object.layers instead.' );\r\n\t\t\t\tscene = scene[ 0 ];\r\n\r\n\t\t\t}\r\n\r\n\t\t\t// When rendering we don't care what the recommended size is, only what the actual size\r\n\t\t\t// of the backbuffer is.\r\n\t\t\tvar size = renderer.getSize();\r\n\t\t\trenderRectL = {\r\n\t\t\t\tx: Math.round( size.width * leftBounds[ 0 ] ),\r\n\t\t\t\ty: Math.round( size.height * leftBounds[ 1 ] ),\r\n\t\t\t\twidth: Math.round( size.width * leftBounds[ 2 ] ),\r\n\t\t\t\theight: Math.round(size.height * leftBounds[ 3 ] )\r\n\t\t\t};\r\n\t\t\trenderRectR = {\r\n\t\t\t\tx: Math.round( size.width * rightBounds[ 0 ] ),\r\n\t\t\t\ty: Math.round( size.height * rightBounds[ 1 ] ),\r\n\t\t\t\twidth: Math.round( size.width * rightBounds[ 2 ] ),\r\n\t\t\t\theight: Math.round(size.height * rightBounds[ 3 ] )\r\n\t\t\t};\r\n\r\n\t\t\tif ( renderTarget ) {\r\n\r\n\t\t\t\trenderer.setRenderTarget( renderTarget );\r\n\t\t\t\trenderTarget.scissorTest = true;\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\trenderer.setScissorTest( true );\r\n\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tif ( renderer.autoClear || forceClear ) renderer.clear();\r\n\r\n\t\t\tif ( camera.parent === null ) camera.updateMatrixWorld();\r\n\r\n\t\t\tcameraL.projectionMatrix = fovToProjection( eyeFOVL, true, camera.near, camera.far );\r\n\t\t\tcameraR.projectionMatrix = fovToProjection( eyeFOVR, true, camera.near, camera.far );\r\n\r\n\t\t\tcamera.matrixWorld.decompose( cameraL.position, cameraL.quaternion, cameraL.scale );\r\n\t\t\tcamera.matrixWorld.decompose( cameraR.position, cameraR.quaternion, cameraR.scale );\r\n\r\n\t\t\tvar scale = this.scale;\r\n\t\t\tcameraL.translateOnAxis( eyeTranslationL, scale );\r\n\t\t\tcameraR.translateOnAxis( eyeTranslationR, scale );\r\n\r\n\r\n\t\t\t// render left eye\r\n\t\t\tif ( renderTarget ) {\r\n\r\n\t\t\t\trenderTarget.viewport.set( renderRectL.x, renderRectL.y, renderRectL.width, renderRectL.height );\r\n\t\t\t\trenderTarget.scissor.set( renderRectL.x, renderRectL.y, renderRectL.width, renderRectL.height );\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\trenderer.setViewport( renderRectL.x, renderRectL.y, renderRectL.width, renderRectL.height );\r\n\t\t\t\trenderer.setScissor( renderRectL.x, renderRectL.y, renderRectL.width, renderRectL.height );\r\n\r\n\t\t\t}\r\n\t\t\trenderer.render( scene, cameraL, renderTarget, forceClear );\r\n\r\n\t\t\t// render right eye\r\n\t\t\tif ( renderTarget ) {\r\n\r\n\t\t\t\trenderTarget.viewport.set( renderRectR.x, renderRectR.y, renderRectR.width, renderRectR.height );\r\n\t\t\t\trenderTarget.scissor.set( renderRectR.x, renderRectR.y, renderRectR.width, renderRectR.height );\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\trenderer.setViewport( renderRectR.x, renderRectR.y, renderRectR.width, renderRectR.height );\r\n\t\t\t\trenderer.setScissor( renderRectR.x, renderRectR.y, renderRectR.width, renderRectR.height );\r\n\r\n\t\t\t}\r\n\t\t\trenderer.render( scene, cameraR, renderTarget, forceClear );\r\n\r\n\t\t\tif ( renderTarget ) {\r\n\r\n\t\t\t\trenderTarget.viewport.set( 0, 0, size.width, size.height );\r\n\t\t\t\trenderTarget.scissor.set( 0, 0, size.width, size.height );\r\n\t\t\t\trenderTarget.scissorTest = false;\r\n\t\t\t\trenderer.setRenderTarget( null );\r\n\r\n\t\t\t} else {\r\n\t\t\t\t\r\n\t\t\t\trenderer.setScissorTest( false );\r\n\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif ( autoUpdate ) {\r\n\r\n\t\t\t\tscene.autoUpdate = true;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif ( scope.autoSubmitFrame ) {\r\n\r\n\t\t\t\tscope.submitFrame();\r\n\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\r\n\t\t}\r\n\r\n\t\t// Regular render mode if not HMD\r\n\r\n\t\trenderer.render( scene, camera, renderTarget, forceClear );\r\n\r\n\t};\r\n\r\n\t//\r\n\r\n\tfunction fovToNDCScaleOffset( fov ) {\r\n\r\n\t\tvar pxscale = 2.0 / ( fov.leftTan + fov.rightTan );\r\n\t\tvar pxoffset = ( fov.leftTan - fov.rightTan ) * pxscale * 0.5;\r\n\t\tvar pyscale = 2.0 / ( fov.upTan + fov.downTan );\r\n\t\tvar pyoffset = ( fov.upTan - fov.downTan ) * pyscale * 0.5;\r\n\t\treturn { scale: [ pxscale, pyscale ], offset: [ pxoffset, pyoffset ] };\r\n\r\n\t}\r\n\r\n\tfunction fovPortToProjection( fov, rightHanded, zNear, zFar ) {\r\n\r\n\t\trightHanded = rightHanded === undefined ? true : rightHanded;\r\n\t\tzNear = zNear === undefined ? 0.01 : zNear;\r\n\t\tzFar = zFar === undefined ? 10000.0 : zFar;\r\n\r\n\t\tvar handednessScale = rightHanded ? - 1.0 : 1.0;\r\n\r\n\t\t// start with an identity matrix\r\n\t\tvar mobj = new THREE.Matrix4();\r\n\t\tvar m = mobj.elements;\r\n\r\n\t\t// and with scale/offset info for normalized device coords\r\n\t\tvar scaleAndOffset = fovToNDCScaleOffset( fov );\r\n\r\n\t\t// X result, map clip edges to [-w,+w]\r\n\t\tm[ 0 * 4 + 0 ] = scaleAndOffset.scale[ 0 ];\r\n\t\tm[ 0 * 4 + 1 ] = 0.0;\r\n\t\tm[ 0 * 4 + 2 ] = scaleAndOffset.offset[ 0 ] * handednessScale;\r\n\t\tm[ 0 * 4 + 3 ] = 0.0;\r\n\r\n\t\t// Y result, map clip edges to [-w,+w]\r\n\t\t// Y offset is negated because this proj matrix transforms from world coords with Y=up,\r\n\t\t// but the NDC scaling has Y=down (thanks D3D?)\r\n\t\tm[ 1 * 4 + 0 ] = 0.0;\r\n\t\tm[ 1 * 4 + 1 ] = scaleAndOffset.scale[ 1 ];\r\n\t\tm[ 1 * 4 + 2 ] = - scaleAndOffset.offset[ 1 ] * handednessScale;\r\n\t\tm[ 1 * 4 + 3 ] = 0.0;\r\n\r\n\t\t// Z result (up to the app)\r\n\t\tm[ 2 * 4 + 0 ] = 0.0;\r\n\t\tm[ 2 * 4 + 1 ] = 0.0;\r\n\t\tm[ 2 * 4 + 2 ] = zFar / ( zNear - zFar ) * - handednessScale;\r\n\t\tm[ 2 * 4 + 3 ] = ( zFar * zNear ) / ( zNear - zFar );\r\n\r\n\t\t// W result (= Z in)\r\n\t\tm[ 3 * 4 + 0 ] = 0.0;\r\n\t\tm[ 3 * 4 + 1 ] = 0.0;\r\n\t\tm[ 3 * 4 + 2 ] = handednessScale;\r\n\t\tm[ 3 * 4 + 3 ] = 0.0;\r\n\r\n\t\tmobj.transpose();\r\n\r\n\t\treturn mobj;\r\n\r\n\t}\r\n\r\n\tfunction fovToProjection( fov, rightHanded, zNear, zFar ) {\r\n\r\n\t\tvar DEG2RAD = Math.PI / 180.0;\r\n\r\n\t\tvar fovPort = {\r\n\t\t\tupTan: Math.tan( fov.upDegrees * DEG2RAD ),\r\n\t\t\tdownTan: Math.tan( fov.downDegrees * DEG2RAD ),\r\n\t\t\tleftTan: Math.tan( fov.leftDegrees * DEG2RAD ),\r\n\t\t\trightTan: Math.tan( fov.rightDegrees * DEG2RAD )\r\n\t\t};\r\n\r\n\t\treturn fovPortToProjection( fovPort, rightHanded, zNear, zFar );\r\n\r\n\t}\r\n\r\n};","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nregisterGeometry('box', {\n schema: {\n depth: {default: 1, min: 0},\n height: {default: 1, min: 0},\n width: {default: 1, min: 0},\n segmentsHeight: {default: 1, min: 1, max: 20, type: 'int'},\n segmentsWidth: {default: 1, min: 1, max: 20, type: 'int'},\n segmentsDepth: {default: 1, min: 1, max: 20, type: 'int'}\n },\n\n init: function (data) {\n this.geometry = new THREE.BoxGeometry(data.width, data.height, data.depth);\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nvar degToRad = THREE.Math.degToRad;\n\nregisterGeometry('cone', {\n schema: {\n height: {default: 1, min: 0},\n openEnded: {default: false},\n radiusBottom: {default: 1, min: 0},\n radiusTop: {default: 0.8, min: 0},\n segmentsHeight: {default: 18, min: 1, type: 'int'},\n segmentsRadial: {default: 36, min: 3, type: 'int'},\n thetaLength: {default: 360, min: 0},\n thetaStart: {default: 0}\n },\n\n init: function (data) {\n this.geometry = new THREE.CylinderGeometry(\n data.radiusTop, data.radiusBottom, data.height, data.segmentsRadial,\n data.segmentsHeight, data.openEnded, degToRad(data.thetaStart),\n degToRad(data.thetaLength));\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nvar degToRad = THREE.Math.degToRad;\n\nregisterGeometry('circle', {\n schema: {\n radius: {default: 1, min: 0},\n segments: {default: 32, min: 3, type: 'int'},\n thetaLength: {default: 360, min: 0},\n thetaStart: {default: 0}\n },\n\n init: function (data) {\n this.geometry = new THREE.CircleGeometry(\n data.radius, data.segments, degToRad(data.thetaStart), degToRad(data.thetaLength));\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nvar degToRad = THREE.Math.degToRad;\n\nregisterGeometry('cylinder', {\n schema: {\n height: {default: 1, min: 0},\n openEnded: {default: false},\n radius: {default: 1, min: 0},\n segmentsHeight: {default: 18, min: 1, type: 'int'},\n segmentsRadial: {default: 36, min: 3, type: 'int'},\n thetaLength: {default: 360, min: 0},\n thetaStart: {default: 0}\n },\n\n init: function (data) {\n this.geometry = new THREE.CylinderGeometry(\n data.radius, data.radius, data.height, data.segmentsRadial, data.segmentsHeight,\n data.openEnded, degToRad(data.thetaStart), degToRad(data.thetaLength));\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\r\nvar THREE = require('../lib/three');\r\n\r\nregisterGeometry('dodecahedron', {\r\n schema: {\r\n detail: {default: 0, min: 0, max: 5, type: 'int'},\r\n radius: {default: 1, min: 0}\r\n },\r\n\r\n init: function (data) {\r\n this.geometry = new THREE.DodecahedronGeometry(data.radius, data.detail);\r\n }\r\n});\r\n","var registerGeometry = require('../core/geometry').registerGeometry;\r\nvar THREE = require('../lib/three');\r\n\r\nregisterGeometry('icosahedron', {\r\n schema: {\r\n detail: {default: 0, min: 0, max: 5, type: 'int'},\r\n radius: {default: 1, min: 0}\r\n },\r\n\r\n init: function (data) {\r\n this.geometry = new THREE.IcosahedronGeometry(data.radius, data.detail);\r\n }\r\n});\r\n","var registerGeometry = require('../core/geometry').registerGeometry;\r\nvar THREE = require('../lib/three');\r\n\r\nregisterGeometry('octahedron', {\r\n schema: {\r\n detail: {default: 0, min: 0, max: 5, type: 'int'},\r\n radius: {default: 1, min: 0}\r\n },\r\n\r\n init: function (data) {\r\n this.geometry = new THREE.OctahedronGeometry(data.radius, data.detail);\r\n }\r\n});\r\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nregisterGeometry('plane', {\n schema: {\n height: {default: 1, min: 0},\n width: {default: 1, min: 0},\n segmentsHeight: {default: 1, min: 1, max: 20, type: 'int'},\n segmentsWidth: {default: 1, min: 1, max: 20, type: 'int'}\n },\n\n init: function (data) {\n this.geometry = new THREE.PlaneGeometry(data.width, data.height);\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nvar degToRad = THREE.Math.degToRad;\n\nregisterGeometry('ring', {\n schema: {\n radiusInner: {default: 0.8, min: 0},\n radiusOuter: {default: 1.2, min: 0},\n segmentsPhi: { default: 10, min: 1, type: 'int' },\n segmentsTheta: {default: 32, min: 3, type: 'int'},\n thetaLength: {default: 360, min: 0},\n thetaStart: {default: 0}\n },\n\n init: function (data) {\n this.geometry = new THREE.RingGeometry(\n data.radiusInner, data.radiusOuter, data.segmentsTheta, data.segmentsPhi,\n degToRad(data.thetaStart), degToRad(data.thetaLength));\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nvar degToRad = THREE.Math.degToRad;\n\nregisterGeometry('sphere', {\n schema: {\n radius: {default: 1, min: 0},\n phiLength: {default: 360},\n phiStart: {default: 0, min: 0},\n thetaLength: {default: 180, min: 0},\n thetaStart: {default: 0},\n segmentsHeight: {default: 18, min: 2, type: 'int'},\n segmentsWidth: {default: 36, min: 3, type: 'int'}\n },\n\n init: function (data) {\n this.geometry = new THREE.SphereGeometry(\n data.radius, data.segmentsWidth, data.segmentsHeight, degToRad(data.phiStart),\n degToRad(data.phiLength), degToRad(data.thetaStart), degToRad(data.thetaLength));\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\r\nvar THREE = require('../lib/three');\r\n\r\nregisterGeometry('tetrahedron', {\r\n schema: {\r\n detail: {default: 0, min: 0, max: 5, type: 'int'},\r\n radius: {default: 1, min: 0}\r\n },\r\n\r\n init: function (data) {\r\n this.geometry = new THREE.TetrahedronGeometry(data.radius, data.detail);\r\n }\r\n});\r\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nvar degToRad = THREE.Math.degToRad;\n\nregisterGeometry('torus', {\n schema: {\n arc: {default: 360},\n radius: {default: 1, min: 0},\n radiusTubular: {default: 0.2, min: 0},\n segmentsRadial: {default: 36, min: 2, type: 'int'},\n segmentsTubular: {default: 32, min: 3, type: 'int'}\n },\n\n init: function (data) {\n this.geometry = new THREE.TorusGeometry(\n data.radius, data.radiusTubular * 2, data.segmentsRadial, data.segmentsTubular,\n degToRad(data.arc));\n }\n});\n","var registerGeometry = require('../core/geometry').registerGeometry;\nvar THREE = require('../lib/three');\n\nregisterGeometry('torusKnot', {\n schema: {\n p: {default: 2, min: 1},\n q: {default: 3, min: 1},\n radius: {default: 1, min: 0},\n radiusTubular: {default: 0.2, min: 0},\n segmentsRadial: {default: 8, min: 3, type: 'int'},\n segmentsTubular: {default: 100, min: 3, type: 'int'}\n },\n\n init: function (data) {\n this.geometry = new THREE.TorusKnotGeometry(\n data.radius, data.radiusTubular * 2, data.segmentsTubular, data.segmentsRadial,\n data.p, data.q);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\r\nvar THREE = require('../lib/three');\r\n\r\n/**\r\n * Blend character model component.\r\n * Loads a model with skeletal animation blending.\r\n */\r\nmodule.exports.Component = registerComponent('blend-character-model', {\r\n schema: {type: 'src'},\r\n\r\n init: function () {\r\n this.model = null;\r\n },\r\n\r\n update: function () {\r\n var self = this;\r\n var el = this.el;\r\n var src = this.data;\r\n\r\n if (!src) { return; }\r\n\r\n this.remove();\r\n this.model = new THREE.BlendCharacter();\r\n\r\n this.model.load(src, function () {\r\n el.setObject3D('mesh', self.model);\r\n el.emit('model-loaded', {format: 'blend', model: self.model});\r\n self.model.castShadow = true;\r\n self.model.receiveShadow = true;\r\n self.model.material.shading = THREE.FlatShading;\r\n self.model.geometry.computeBoundingBox();\r\n });\r\n },\r\n\r\n remove: function () {\r\n if (!this.model) { return; }\r\n this.el.removeObject3D('mesh');\r\n }\r\n});\r\n","var registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\n\nvar checkHeadsetConnected = utils.checkHeadsetConnected;\n\n/**\n * Camera component.\n * Pairs along with camera system to handle tracking the active camera.\n */\nmodule.exports.Component = registerComponent('camera', {\n schema: {\n active: {default: true},\n far: {default: 10000},\n fov: {default: 80, min: 0},\n near: {default: 0.005, min: 0},\n userHeight: {default: 0, min: 0},\n zoom: {default: 1, min: 0}\n },\n\n /**\n * Initialize three.js camera and add it to the entity.\n * Add reference from scene to this entity as the camera.\n */\n init: function () {\n var camera;\n var el = this.el;\n var sceneEl = el.sceneEl;\n\n this.savedPose = null;\n\n // Create camera.\n camera = this.camera = new THREE.PerspectiveCamera();\n el.setObject3D('camera', camera);\n\n // Add listeners to save and restore camera pose if headset is present.\n this.onEnterVR = this.onEnterVR.bind(this);\n this.onExitVR = this.onExitVR.bind(this);\n sceneEl.addEventListener('enter-vr', this.onEnterVR);\n sceneEl.addEventListener('exit-vr', this.onExitVR);\n },\n\n /**\n * Update three.js camera.\n */\n update: function (oldData) {\n var el = this.el;\n var data = this.data;\n var camera = this.camera;\n var system = this.system;\n\n // Update height offset.\n this.addHeightOffset(oldData.userHeight);\n\n // Update properties.\n camera.aspect = data.aspect || (window.innerWidth / window.innerHeight);\n camera.far = data.far;\n camera.fov = data.fov;\n camera.near = data.near;\n camera.zoom = data.zoom;\n camera.updateProjectionMatrix();\n\n // Active property did not change.\n if (oldData && oldData.active === data.active) { return; }\n\n // If `active` property changes, or first update, handle active camera with system.\n if (data.active && system.activeCameraEl !== el) {\n // Camera enabled. Set camera to this camera.\n system.setActiveCamera(el);\n } else if (!data.active && system.activeCameraEl === el) {\n // Camera disabled. Set camera to another camera.\n system.disableActiveCamera();\n }\n },\n\n /**\n * Remove camera on remove (callback).\n */\n remove: function () {\n var sceneEl = this.el.sceneEl;\n this.el.removeObject3D('camera');\n sceneEl.removeEventListener('enter-vr', this.onEnterVR);\n sceneEl.removeEventListener('exit-vr', this.onExitVR);\n },\n\n /**\n * Save pose and remove the offset.\n */\n onEnterVR: function () {\n this.saveCameraPose();\n this.removeHeightOffset();\n },\n\n /**\n * Restore the pose. Do not need to re-add the offset because it was saved on entering VR.\n */\n onExitVR: function () {\n this.restoreCameraPose();\n },\n\n /**\n * Offsets the position of the camera to set a human scale perspective\n * This offset is not necessary when using a headset because the SDK\n * will return the real user's head height and position.\n */\n addHeightOffset: function (oldOffset) {\n var el = this.el;\n var currentPosition;\n var userHeightOffset = this.data.userHeight;\n\n oldOffset = oldOffset || 0;\n currentPosition = el.getComputedAttribute('position') || {x: 0, y: 0, z: 0};\n el.setAttribute('position', {\n x: currentPosition.x,\n y: currentPosition.y - oldOffset + userHeightOffset,\n z: currentPosition.z\n });\n },\n\n /**\n * Remove the height offset (called when entering VR) since WebVR API gives absolute\n * position.\n * Does not apply for mobile.\n */\n removeHeightOffset: function () {\n var currentPosition;\n var el = this.el;\n var headsetConnected;\n var sceneEl = el.sceneEl;\n var userHeightOffset = this.data.userHeight;\n\n // If there's not a headset connected we keep the offset.\n // Necessary for fullscreen mode with no headset.\n // Checking this.headsetConnected to make the value injectable for unit tests.\n headsetConnected = this.headsetConnected || checkHeadsetConnected();\n if (sceneEl.isMobile || !userHeightOffset || !headsetConnected) { return; }\n\n currentPosition = el.getAttribute('position') || {x: 0, y: 0, z: 0};\n el.setAttribute('position', {\n x: currentPosition.x,\n y: currentPosition.y - userHeightOffset,\n z: currentPosition.z\n });\n },\n\n /**\n * Save camera pose before entering VR to restore later if exiting.\n */\n saveCameraPose: function () {\n var el = this.el;\n var headsetConnected = this.headsetConnected || checkHeadsetConnected();\n\n if (this.savedPose || !headsetConnected) { return; }\n\n this.savedPose = {\n position: el.getAttribute('position'),\n rotation: el.getAttribute('rotation')\n };\n },\n\n /**\n * Reset camera pose to before entering VR.\n */\n restoreCameraPose: function () {\n var el = this.el;\n var savedPose = this.savedPose;\n var headsetConnected = this.headsetConnected || checkHeadsetConnected();\n\n if (!savedPose || !headsetConnected) { return; }\n\n // Reset camera orientation.\n el.setAttribute('position', savedPose.position);\n el.setAttribute('rotation', savedPose.rotation);\n this.savedPose = null;\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nmodule.exports.Component = registerComponent('collada-model', {\n schema: {\n type: 'src'\n },\n\n init: function () {\n this.model = null;\n this.loader = new THREE.ColladaLoader();\n this.loader.options.convertUpAxis = true;\n },\n\n update: function () {\n var self = this;\n var el = this.el;\n var src = this.data;\n\n if (!src) { return; }\n\n this.remove();\n\n this.loader.load(src, function (colladaModel) {\n self.model = colladaModel.scene;\n el.setObject3D('mesh', self.model);\n el.emit('model-loaded', {format: 'collada', model: self.model});\n });\n },\n\n remove: function () {\n if (!this.model) { return; }\n this.el.removeObject3D('mesh');\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar utils = require('../utils/');\n\nvar EVENTS = {\n CLICK: 'click',\n MOUSEENTER: 'mouseenter',\n MOUSEDOWN: 'mousedown',\n MOUSELEAVE: 'mouseleave',\n MOUSEUP: 'mouseup'\n};\n\nvar STATES = {\n FUSING: 'cursor-fusing',\n HOVERING: 'cursor-hovering',\n HOVERED: 'cursor-hovered'\n};\n\n/**\n * Cursor component. Applies the raycaster component specifically for starting the raycaster\n * from the camera and pointing from camera's facing direction, and then only returning the\n * closest intersection. Cursor can be fine-tuned by setting raycaster properties.\n *\n * @member {object} fuseTimeout - Timeout to trigger fuse-click.\n * @member {Element} mouseDownEl - Entity that was last mousedowned during current click.\n * @member {Element} intersectedEl - Currently-intersected entity. Used to keep track to\n * emit events when unintersecting.\n */\nmodule.exports.Component = registerComponent('cursor', {\n dependencies: ['raycaster'],\n\n schema: {\n fuse: {default: utils.isMobile()},\n fuseTimeout: {default: 1500, min: 0}\n },\n\n init: function () {\n var cursorEl = this.el;\n var canvas = cursorEl.sceneEl.canvas;\n this.fuseTimeout = undefined;\n this.mouseDownEl = null;\n this.intersectedEl = null;\n\n // Wait for canvas to load.\n if (!canvas) {\n cursorEl.sceneEl.addEventListener('render-target-loaded', this.init.bind(this));\n return;\n }\n\n // Attach event listeners.\n canvas.addEventListener('mousedown', this.onMouseDown.bind(this));\n canvas.addEventListener('mouseup', this.onMouseUp.bind(this));\n cursorEl.addEventListener('raycaster-intersection', this.onIntersection.bind(this));\n cursorEl.addEventListener('raycaster-intersection-cleared',\n this.onIntersectionCleared.bind(this));\n },\n\n /**\n * Trigger mousedown and keep track of the mousedowned entity.\n */\n onMouseDown: function (evt) {\n this.twoWayEmit(EVENTS.MOUSEDOWN);\n this.mouseDownEl = this.intersectedEl;\n },\n\n /**\n * Trigger mouseup if:\n * - Not fusing (mobile has no mouse).\n * - Currently intersecting an entity.\n * - Currently-intersected entity is the same as the one when mousedown was triggered,\n * in case user mousedowned one entity, dragged to another, and mouseupped.\n */\n onMouseUp: function () {\n this.twoWayEmit(EVENTS.MOUSEUP);\n if (this.data.fuse || !this.intersectedEl ||\n this.mouseDownEl !== this.intersectedEl) { return; }\n this.twoWayEmit(EVENTS.CLICK);\n },\n\n /**\n * Handle intersection.\n */\n onIntersection: function (evt) {\n var self = this;\n var cursorEl = this.el;\n var data = this.data;\n var intersectedEl = evt.detail.els[0]; // Grab the closest.\n\n // Set intersected entity if not already intersecting.\n if (this.intersectedEl === intersectedEl) { return; }\n this.intersectedEl = intersectedEl;\n\n // Hovering.\n cursorEl.addState(STATES.HOVERING);\n intersectedEl.addState(STATES.HOVERED);\n self.twoWayEmit(EVENTS.MOUSEENTER);\n\n // Begin fuse if necessary.\n if (data.fuseTimeout === 0 || !data.fuse) { return; }\n cursorEl.addState(STATES.FUSING);\n this.fuseTimeout = setTimeout(function fuse () {\n cursorEl.removeState(STATES.FUSING);\n self.twoWayEmit(EVENTS.CLICK);\n }, data.fuseTimeout);\n },\n\n /**\n * Handle intersection cleared.\n */\n onIntersectionCleared: function (evt) {\n var cursorEl = this.el;\n var intersectedEl = evt.detail.el;\n\n // Not intersecting.\n if (!intersectedEl || !this.intersectedEl) { return; }\n\n // No longer hovering (or fusing).\n intersectedEl.removeState(STATES.HOVERED);\n cursorEl.removeState(STATES.HOVERING);\n cursorEl.removeState(STATES.FUSING);\n this.twoWayEmit(EVENTS.MOUSELEAVE);\n\n // Unset intersected entity (after emitting the event).\n this.intersectedEl = null;\n\n // Clear fuseTimeout.\n clearTimeout(this.fuseTimeout);\n },\n\n /**\n * Helper to emit on both the cursor and the intersected entity (if exists).\n */\n twoWayEmit: function (evtName) {\n var intersectedEl = this.intersectedEl;\n this.el.emit(evtName, {intersectedEl: this.intersectedEl});\n if (!intersectedEl) { return; }\n intersectedEl.emit(evtName, {cursorEl: this.el});\n }\n});\n","var debug = require('../utils/debug');\nvar geometries = require('../core/geometry').geometries;\nvar geometryNames = require('../core/geometry').geometryNames;\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar dummyGeometry = new THREE.Geometry();\nvar warn = debug('components:geometry:warn');\n\n/**\n * Geometry component. Combined with material component to make a mesh in 3D object.\n * Extended with registered geometries.\n */\nmodule.exports.Component = registerComponent('geometry', {\n schema: {\n buffer: { default: true },\n mergeTo: { type: 'selector' },\n primitive: { default: 'box', oneOf: geometryNames },\n skipCache: { default: false }\n },\n\n init: function () {\n this.geometry = null;\n },\n\n /**\n * Talk to geometry system to get or create geometry.\n */\n update: function (previousData) {\n var data = this.data;\n var mesh = this.el.getOrCreateObject3D('mesh', THREE.Mesh);\n var system = this.system;\n\n // Dispose old geometry if we created one.\n if (this.geometry) {\n system.unuseGeometry(previousData);\n this.geometry = null;\n }\n\n // Create new geometry.\n this.geometry = mesh.geometry = system.getOrCreateGeometry(data);\n if (data.mergeTo) {\n this.mergeTo(data.mergeTo);\n }\n },\n\n /**\n * Merge geometry to another entity's geometry.\n * Remove the entity from the scene. Not a reversible operation.\n *\n * @param {Element} toEl - Entity where the geometry will be merged to.\n */\n mergeTo: function (toEl) {\n var el = this.el;\n var mesh = el.getObject3D('mesh');\n var toMesh;\n\n if (!toEl) {\n warn('There is not a valid entity to merge the geometry to');\n return;\n }\n\n if (toEl === el) {\n warn('Source and target geometries cannot be the same for merge');\n return;\n }\n\n // Create mesh if entity does not have one.\n toMesh = toEl.getObject3D('mesh');\n if (!toMesh) {\n toMesh = toEl.getOrCreateObject3D('mesh', THREE.Mesh);\n toEl.setAttribute('material', el.getComputedAttribute('material'));\n return;\n }\n\n if (toMesh.geometry instanceof THREE.Geometry === false ||\n mesh.geometry instanceof THREE.Geometry === false) {\n warn('Geometry merge is only available for `THREE.Geometry` types. ' +\n 'Check that both of the merging geometry and the target geometry have `buffer` ' +\n 'set to false');\n return;\n }\n\n if (this.data.skipCache === false) {\n warn('Cached geometries are not allowed to merge. Set `skipCache` to true');\n return;\n }\n\n mesh.parent.updateMatrixWorld();\n toMesh.geometry.merge(mesh.geometry, mesh.matrixWorld);\n el.emit('geometry-merged', {mergeTarget: toEl});\n el.parentNode.removeChild(el);\n },\n\n /**\n * Tell geometry system that entity is no longer using the geometry.\n * Unset the geometry on the mesh\n */\n remove: function () {\n this.system.unuseGeometry(this.data);\n this.el.getObject3D('mesh').geometry = dummyGeometry;\n this.geometry = null;\n },\n\n /**\n * Update geometry component schema based on geometry type.\n *\n * @param {object} data - New data passed by Component.\n */\n updateSchema: function (data) {\n var newGeometryType = data.primitive;\n var currentGeometryType = this.data && this.data.primitive;\n var schema = geometries[newGeometryType] && geometries[newGeometryType].schema;\n\n // Geometry has no schema.\n if (!schema) { throw new Error('Unknown geometry schema `' + newGeometryType + '`'); }\n // Nothing has changed.\n if (currentGeometryType && currentGeometryType === newGeometryType) { return; }\n\n this.extendSchema(schema);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\nvar LEFT_HAND_MODEL_URL = 'https://cdn.aframe.io/controllers/hands/leftHand.json';\nvar RIGHT_HAND_MODEL_URL = 'https://cdn.aframe.io/controllers/hands/rightHand.json';\n\n/**\n*\n* Hand Controls component\n* Handle events coming from the vive-controls\n* Translate button events to hand related actions:\n* gripclose, gripopen, thumbup, thumbdown, pointup, pointdown\n* Load a hand model with gestures that are applied based\n* on the button pressed.\n*\n* @property {left/right} Hand mapping\n*/\nmodule.exports.Component = registerComponent('hand-controls', {\n schema: {default: 'left'},\n\n init: function () {\n var self = this;\n this.onGripDown = function () { self.handleButton('grip', 'down'); };\n this.onGripUp = function () { self.handleButton('grip', 'up'); };\n this.onTrackpadDown = function () { self.handleButton('trackpad', 'down'); };\n this.onTrackpadUp = function () { self.handleButton('trackpad', 'up'); };\n this.onTriggerDown = function () { self.handleButton('trigger', 'down'); };\n this.onTriggerUp = function () { self.handleButton('trigger', 'up'); };\n },\n\n play: function () {\n this.addEventListeners();\n },\n\n pause: function () {\n this.removeEventListeners();\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('gripdown', this.onGripDown);\n el.addEventListener('gripup', this.onGripUp);\n el.addEventListener('trackpaddown', this.onTrackpadDown);\n el.addEventListener('trackpadup', this.onTrackpadUp);\n el.addEventListener('triggerdown', this.onTriggerDown);\n el.addEventListener('triggerup', this.onTriggerUp);\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('gripdown', this.onGripDown);\n el.removeEventListener('gripup', this.onGripUp);\n el.removeEventListener('trackpaddown', this.onTrackpadDown);\n el.removeEventListener('trackpadup', this.onTrackpadUp);\n el.removeEventListener('triggerdown', this.onTriggerDown);\n el.removeEventListener('triggerup', this.onTriggerUp);\n },\n\n update: function () {\n var el = this.el;\n var hand = this.data;\n var modelUrl;\n if (hand === 'left') {\n modelUrl = 'url(' + LEFT_HAND_MODEL_URL + ')';\n } else {\n modelUrl = 'url(' + RIGHT_HAND_MODEL_URL + ')';\n }\n el.setAttribute('vive-controls', {hand: hand, model: false});\n el.setAttribute('blend-character-model', modelUrl);\n },\n\n /** Play the model animations based on the pressed button and kind of event.\n *\n * @param {string} button the name of the button\n * @param {string} evt the event associated to the button\n */\n handleButton: function (button, evt) {\n var el = this.el;\n var isPressed = evt === 'down';\n switch (button) {\n case 'trackpad':\n if (isPressed === this.trackpadPressed) { return; }\n this.trackpadPressed = isPressed;\n this.playAnimation('thumb', !isPressed);\n evt = isPressed ? 'thumbup' : 'thumbdown';\n el.emit(evt);\n break;\n case 'trigger':\n if (isPressed === this.triggerPressed) { return; }\n this.triggerPressed = isPressed;\n this.playAnimation('pointing', !isPressed);\n evt = isPressed ? 'pointup' : 'pointdown';\n el.emit(evt);\n break;\n case 'grip':\n if (isPressed === this.gripPressed) { return; }\n this.gripPressed = isPressed;\n this.playAnimation('close', !isPressed);\n evt = isPressed ? 'gripclose' : 'gripopen';\n el.emit(evt);\n break;\n }\n },\n\n /**\n * Play the hand animations based on button state.\n *\n * @param {string} animation - the name of the animation.\n * @param {string} reverse - It the animation has to play in reverse.\n */\n playAnimation: function (animation, reverse) {\n var animationActive = this.animationActive;\n var timeScale = 1;\n var mesh = this.el.getObject3D('mesh');\n if (!mesh) { return; }\n\n // determine direction of the animation.\n if (reverse) { timeScale = -1; }\n\n // stop current animation.\n if (animationActive) { mesh.play(animationActive, 0); }\n\n // play new animation.\n mesh.mixer.clipAction(animation).loop = 2200;\n mesh.mixer.clipAction(animation).clampWhenFinished = true;\n mesh.mixer.clipAction(animation).timeScale = timeScale;\n mesh.play(animation, 1);\n this.animationActive = animation;\n }\n});\n","var diff = require('../utils').diff;\nvar debug = require('../utils/debug');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar degToRad = THREE.Math.degToRad;\nvar warn = debug('components:light:warn');\n\n/**\n * Light component.\n */\nmodule.exports.Component = registerComponent('light', {\n schema: {\n angle: {default: 60, if: {type: ['spot']}},\n color: {type: 'color'},\n groundColor: {type: 'color', if: {type: ['hemisphere']}},\n decay: {default: 1, if: {type: ['point', 'spot']}},\n distance: {default: 0.0, min: 0, if: {type: ['point', 'spot']}},\n intensity: {default: 1.0, min: 0,\n if: {type: ['ambient', 'directional', 'hemisphere', 'point', 'spot']}},\n penumbra: {default: 0, min: 0, max: 1, if: {type: ['spot']}},\n type: {default: 'directional',\n oneOf: ['ambient', 'directional', 'hemisphere', 'point', 'spot']},\n target: {type: 'selector', if: {type: ['spot', 'directional']}}\n },\n\n /**\n * Notifies scene a light has been added to remove default lighting.\n */\n init: function () {\n var el = this.el;\n this.light = null;\n this.defaultTarget = null;\n this.system.registerLight(el);\n },\n\n /**\n * (Re)create or update light.\n */\n update: function (oldData) {\n var data = this.data;\n var diffData = diff(data, oldData);\n var light = this.light;\n var self = this;\n\n // Existing light.\n if (light && !('type' in diffData)) {\n // Light type has not changed. Update light.\n Object.keys(diffData).forEach(function (key) {\n var value = data[key];\n\n switch (key) {\n case 'color': {\n light.color.set(value);\n break;\n }\n\n case 'groundcolor': {\n light.groundColor.set(value);\n break;\n }\n\n case 'angle': {\n light.angle = degToRad(value);\n break;\n }\n\n case 'target': {\n // Reset target if selector is null.\n if (value === null) {\n if (data.type === 'spot' || data.type === 'directional') {\n light.target = self.defaultTarget;\n }\n } else {\n // Target specified, set target to entity's `object3D` when it is loaded.\n if (value.hasLoaded) {\n self.onSetTarget(value);\n } else {\n value.addEventListener('loaded', self.onSetTarget.bind(self, value));\n }\n }\n break;\n }\n\n default: {\n light[key] = value;\n }\n }\n });\n return;\n }\n\n // No light yet or light type has changed. Create and add light.\n this.setLight(this.data);\n },\n\n setLight: function (data) {\n var el = this.el;\n var newLight = this.getLight(data);\n if (newLight) {\n if (this.light) {\n el.removeObject3D('light');\n }\n\n this.light = newLight;\n this.light.el = el;\n el.setObject3D('light', this.light);\n\n // HACK solution for issue #1624\n if (data.type === 'spot' || data.type === 'directional' || data.type === 'hemisphere') {\n el.getObject3D('light').translateY(-1);\n }\n\n // set and position default lighttarget as a child to enable spotlight orientation\n if (data.type === 'spot') {\n el.setObject3D('light-target', this.defaultTarget);\n el.getObject3D('light-target').position.set(0, 0, -1);\n }\n }\n },\n\n /**\n * Creates a new three.js light object given data object defining the light.\n *\n * @param {object} data\n */\n getLight: function (data) {\n var angle = data.angle;\n var color = new THREE.Color(data.color).getHex();\n var decay = data.decay;\n var distance = data.distance;\n var groundColor = new THREE.Color(data.groundColor).getHex();\n var intensity = data.intensity;\n var type = data.type;\n var target = data.target;\n var light = null;\n\n switch (type.toLowerCase()) {\n case 'ambient': {\n return new THREE.AmbientLight(color, intensity);\n }\n\n case 'directional': {\n light = new THREE.DirectionalLight(color, intensity);\n this.defaultTarget = light.target;\n if (target) {\n if (target.hasLoaded) {\n this.onSetTarget(target);\n } else {\n target.addEventListener('loaded', this.onSetTarget.bind(this, target));\n }\n }\n return light;\n }\n\n case 'hemisphere': {\n return new THREE.HemisphereLight(color, groundColor, intensity);\n }\n\n case 'point': {\n return new THREE.PointLight(color, intensity, distance, decay);\n }\n\n case 'spot': {\n light = new THREE.SpotLight(color, intensity, distance, degToRad(angle), data.penumbra, decay);\n this.defaultTarget = light.target;\n if (target) {\n if (target.hasLoaded) {\n this.onSetTarget(target);\n } else {\n target.addEventListener('loaded', this.onSetTarget.bind(this, target));\n }\n }\n return light;\n }\n\n default: {\n warn('%s is not a valid light type. ' +\n 'Choose from ambient, directional, hemisphere, point, spot.', type);\n }\n }\n },\n\n onSetTarget: function (targetEl) {\n this.light.target = targetEl.object3D;\n },\n\n /**\n * Remove light on remove (callback).\n */\n remove: function () {\n this.el.removeObject3D('light');\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar isMobile = require('../utils/').isMobile();\n\n// To avoid recalculation at every mouse movement tick\nvar PI_2 = Math.PI / 2;\nvar radToDeg = THREE.Math.radToDeg;\n\nmodule.exports.Component = registerComponent('look-controls', {\n dependencies: ['position', 'rotation'],\n\n schema: {\n enabled: { default: true },\n hmdEnabled: { default: true },\n standing: { default: true }\n },\n\n init: function () {\n var sceneEl = this.el.sceneEl;\n\n this.previousHMDPosition = new THREE.Vector3();\n this.setupMouseControls();\n this.setupHMDControls();\n this.bindMethods();\n\n // Enable grab cursor class on canvas.\n function enableGrabCursor () { sceneEl.canvas.classList.add('a-grab-cursor'); }\n if (!sceneEl.canvas) {\n sceneEl.addEventListener('render-target-loaded', enableGrabCursor);\n } else {\n enableGrabCursor();\n }\n },\n\n update: function (oldData) {\n var data = this.data;\n var hmdEnabled = data.hmdEnabled;\n if (!data.enabled) { return; }\n if (!hmdEnabled && oldData && hmdEnabled !== oldData.hmdEnabled) {\n this.pitchObject.rotation.set(0, 0, 0);\n this.yawObject.rotation.set(0, 0, 0);\n }\n this.controls.standing = data.standing;\n this.controls.update();\n this.updateOrientation();\n this.updatePosition();\n },\n\n play: function () {\n this.addEventListeners();\n },\n\n pause: function () {\n this.removeEventListeners();\n },\n\n tick: function (t) {\n this.update();\n },\n\n remove: function () {\n this.pause();\n },\n\n bindMethods: function () {\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onMouseMove = this.onMouseMove.bind(this);\n this.releaseMouse = this.releaseMouse.bind(this);\n this.onTouchStart = this.onTouchStart.bind(this);\n this.onTouchMove = this.onTouchMove.bind(this);\n this.onTouchEnd = this.onTouchEnd.bind(this);\n },\n\n setupMouseControls: function () {\n // The canvas where the scene is painted\n this.mouseDown = false;\n this.pitchObject = new THREE.Object3D();\n this.yawObject = new THREE.Object3D();\n this.yawObject.position.y = 10;\n this.yawObject.add(this.pitchObject);\n },\n\n setupHMDControls: function () {\n this.dolly = new THREE.Object3D();\n this.euler = new THREE.Euler();\n this.controls = new THREE.VRControls(this.dolly);\n this.controls.userHeight = 0.0;\n },\n\n addEventListeners: function () {\n var sceneEl = this.el.sceneEl;\n var canvasEl = sceneEl.canvas;\n\n // listen for canvas to load.\n if (!canvasEl) {\n sceneEl.addEventListener('render-target-loaded', this.addEventListeners.bind(this));\n return;\n }\n\n // Mouse Events\n canvasEl.addEventListener('mousedown', this.onMouseDown, false);\n window.addEventListener('mousemove', this.onMouseMove, false);\n window.addEventListener('mouseup', this.releaseMouse, false);\n\n // Touch events\n canvasEl.addEventListener('touchstart', this.onTouchStart);\n window.addEventListener('touchmove', this.onTouchMove);\n window.addEventListener('touchend', this.onTouchEnd);\n },\n\n removeEventListeners: function () {\n var sceneEl = this.el.sceneEl;\n var canvasEl = sceneEl && sceneEl.canvas;\n if (!canvasEl) { return; }\n\n // Mouse Events\n canvasEl.removeEventListener('mousedown', this.onMouseDown);\n canvasEl.removeEventListener('mousemove', this.onMouseMove);\n canvasEl.removeEventListener('mouseup', this.releaseMouse);\n canvasEl.removeEventListener('mouseout', this.releaseMouse);\n\n // Touch events\n canvasEl.removeEventListener('touchstart', this.onTouchStart);\n canvasEl.removeEventListener('touchmove', this.onTouchMove);\n canvasEl.removeEventListener('touchend', this.onTouchEnd);\n },\n\n updateOrientation: (function () {\n var hmdEuler = new THREE.Euler();\n return function () {\n var currentRotation;\n var deltaRotation;\n var pitchObject = this.pitchObject;\n var yawObject = this.yawObject;\n var hmdQuaternion = this.calculateHMDQuaternion();\n var sceneEl = this.el.sceneEl;\n var rotation;\n hmdEuler.setFromQuaternion(hmdQuaternion, 'YXZ');\n if (isMobile) {\n // In mobile we allow camera rotation with touch events and sensors\n rotation = {\n x: radToDeg(hmdEuler.x) + radToDeg(pitchObject.rotation.x),\n y: radToDeg(hmdEuler.y) + radToDeg(yawObject.rotation.y),\n z: radToDeg(hmdEuler.z)\n };\n } else if (!sceneEl.is('vr-mode') || isNullVector(hmdEuler) || !this.data.hmdEnabled) {\n currentRotation = this.el.getComputedAttribute('rotation');\n deltaRotation = this.calculateDeltaRotation();\n // Mouse look only if HMD disabled or no info coming from the sensors\n rotation = {\n x: currentRotation.x + deltaRotation.x,\n y: currentRotation.y + deltaRotation.y,\n z: currentRotation.z\n };\n } else {\n // Mouse rotation ignored with an active headset.\n // The user head rotation takes priority\n rotation = {\n x: radToDeg(hmdEuler.x),\n y: radToDeg(hmdEuler.y),\n z: radToDeg(hmdEuler.z)\n };\n }\n this.el.setAttribute('rotation', rotation);\n };\n })(),\n\n calculateDeltaRotation: (function () {\n var previousRotationX;\n var previousRotationY;\n return function () {\n var currentRotationX = radToDeg(this.pitchObject.rotation.x);\n var currentRotationY = radToDeg(this.yawObject.rotation.y);\n var deltaRotation;\n previousRotationX = previousRotationX || currentRotationX;\n previousRotationY = previousRotationY || currentRotationY;\n deltaRotation = {\n x: currentRotationX - previousRotationX,\n y: currentRotationY - previousRotationY\n };\n previousRotationX = currentRotationX;\n previousRotationY = currentRotationY;\n return deltaRotation;\n };\n })(),\n\n calculateHMDQuaternion: (function () {\n var hmdQuaternion = new THREE.Quaternion();\n return function () {\n hmdQuaternion.copy(this.dolly.quaternion);\n return hmdQuaternion;\n };\n })(),\n\n updatePosition: (function () {\n var deltaHMDPosition = new THREE.Vector3();\n return function () {\n var el = this.el;\n var currentPosition = el.getComputedAttribute('position');\n var currentHMDPosition;\n var previousHMDPosition = this.previousHMDPosition;\n var sceneEl = this.el.sceneEl;\n currentHMDPosition = this.calculateHMDPosition();\n deltaHMDPosition.copy(currentHMDPosition).sub(previousHMDPosition);\n if (!sceneEl.is('vr-mode') || isNullVector(deltaHMDPosition)) { return; }\n previousHMDPosition.copy(currentHMDPosition);\n // Do nothing if we have not moved.\n if (!sceneEl.is('vr-mode')) { return; }\n el.setAttribute('position', {\n x: currentPosition.x + deltaHMDPosition.x,\n y: currentPosition.y + deltaHMDPosition.y,\n z: currentPosition.z + deltaHMDPosition.z\n });\n };\n })(),\n\n calculateHMDPosition: function () {\n var dolly = this.dolly;\n var position = new THREE.Vector3();\n dolly.updateMatrix();\n position.setFromMatrixPosition(dolly.matrix);\n return position;\n },\n\n onMouseMove: function (event) {\n var pitchObject = this.pitchObject;\n var yawObject = this.yawObject;\n var previousMouseEvent = this.previousMouseEvent;\n\n if (!this.mouseDown || !this.data.enabled) { return; }\n\n var movementX = event.movementX || event.mozMovementX;\n var movementY = event.movementY || event.mozMovementY;\n\n if (movementX === undefined || movementY === undefined) {\n movementX = event.screenX - previousMouseEvent.screenX;\n movementY = event.screenY - previousMouseEvent.screenY;\n }\n this.previousMouseEvent = event;\n\n yawObject.rotation.y -= movementX * 0.002;\n pitchObject.rotation.x -= movementY * 0.002;\n pitchObject.rotation.x = Math.max(-PI_2, Math.min(PI_2, pitchObject.rotation.x));\n },\n\n onMouseDown: function (event) {\n this.mouseDown = true;\n this.previousMouseEvent = event;\n document.body.classList.add('a-grabbing');\n },\n\n releaseMouse: function () {\n this.mouseDown = false;\n document.body.classList.remove('a-grabbing');\n },\n\n onTouchStart: function (e) {\n if (e.touches.length !== 1) { return; }\n this.touchStart = {\n x: e.touches[0].pageX,\n y: e.touches[0].pageY\n };\n this.touchStarted = true;\n },\n\n onTouchMove: function (e) {\n var deltaY;\n var yawObject = this.yawObject;\n if (!this.touchStarted) { return; }\n deltaY = 2 * Math.PI * (e.touches[0].pageX - this.touchStart.x) /\n this.el.sceneEl.canvas.clientWidth;\n // Limits touch orientaion to to yaw (y axis)\n yawObject.rotation.y -= deltaY * 0.5;\n this.touchStart = {\n x: e.touches[0].pageX,\n y: e.touches[0].pageY\n };\n },\n\n onTouchEnd: function () {\n this.touchStarted = false;\n }\n});\n\nfunction isNullVector (vector) {\n return vector.x === 0 && vector.y === 0 && vector.z === 0;\n}\n","var debug = require('../utils/debug');\nvar coordinates = require('../utils/coordinates');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar warn = debug('components:look-at:warn');\nvar isCoordinate = coordinates.isCoordinate;\n\n/**\n * Look-at component.\n *\n * Modifies rotation to either track another entity OR do a one-time turn towards a position\n * vector.\n *\n * If tracking an object via setting the component value via a selector, look-at will register\n * a behavior to the scene to update rotation on every tick.\n */\nmodule.exports.Component = registerComponent('look-at', {\n schema: {\n default: '',\n\n parse: function (value) {\n // A static position to look at.\n if (isCoordinate(value) || typeof value === 'object') {\n return coordinates.parse(value);\n }\n // A selector to a target entity.\n return value;\n },\n\n stringify: function (data) {\n if (typeof data === 'object') {\n return coordinates.stringify(data);\n }\n return data;\n }\n },\n\n init: function () {\n this.target3D = null;\n this.vector = new THREE.Vector3();\n warn('The `look-at` component is deprecated - ' +\n 'use https://github.com/ngokevin/aframe-look-at-component instead.');\n },\n\n /**\n * If tracking an object, this will be called on every tick.\n * If looking at a position vector, this will only be called once (until further updates).\n */\n update: function () {\n var self = this;\n var target = self.data;\n var object3D = self.el.object3D;\n var targetEl;\n\n // No longer looking at anything (i.e., look-at=\"\").\n if (!target || (typeof target === 'object' && !Object.keys(target).length)) {\n return self.remove();\n }\n\n // Look at a position.\n if (typeof target === 'object') {\n return object3D.lookAt(new THREE.Vector3(target.x, target.y, target.z));\n }\n\n // Assume target is a string.\n // Query for the element, grab its object3D, then register a behavior on the scene to\n // track the target on every tick.\n targetEl = self.el.sceneEl.querySelector(target);\n if (!targetEl) {\n warn('\"' + target + '\" does not point to a valid entity to look-at');\n return;\n }\n if (!targetEl.hasLoaded) {\n return targetEl.addEventListener('loaded', function () {\n self.beginTracking(targetEl);\n });\n }\n return self.beginTracking(targetEl);\n },\n\n tick: function (t) {\n // Track target object position. Depends on parent object keeping global transforms up\n // to state with updateMatrixWorld(). In practice, this is handled by the renderer.\n var target3D = this.target3D;\n if (target3D) {\n return this.el.object3D.lookAt(this.vector.setFromMatrixPosition(target3D.matrixWorld));\n }\n },\n\n beginTracking: function (targetEl) {\n this.target3D = targetEl.object3D;\n }\n});\n","/* global Promise */\nvar utils = require('../utils/');\nvar component = require('../core/component');\nvar THREE = require('../lib/three');\nvar shader = require('../core/shader');\n\nvar error = utils.debug('components:material:error');\nvar registerComponent = component.registerComponent;\nvar shaders = shader.shaders;\nvar shaderNames = shader.shaderNames;\n\n/**\n * Material component.\n *\n * @member {object} shader - Determines how material is shaded. Defaults to `standard`,\n * three.js's implementation of PBR. Another standard shading model is `flat` which\n * uses MeshBasicMaterial.\n */\nmodule.exports.Component = registerComponent('material', {\n schema: {\n depthTest: {default: true},\n flatShading: {default: false},\n opacity: {default: 1.0, min: 0.0, max: 1.0},\n shader: {default: 'standard', oneOf: shaderNames},\n side: {default: 'front', oneOf: ['front', 'back', 'double']},\n transparent: {default: false},\n visible: {default: true}\n },\n\n init: function () {\n this.material = null;\n },\n\n /**\n * Update or create material.\n *\n * @param {object|null} oldData\n */\n update: function (oldData) {\n var data = this.data;\n if (!this.shader || data.shader !== oldData.shader) {\n this.updateShader(data.shader);\n }\n this.shader.update(this.data);\n this.updateMaterial();\n },\n\n updateSchema: function (data) {\n var newShader = data.shader;\n var currentShader = this.data && this.data.shader;\n var shader = newShader || currentShader;\n var schema = shaders[shader] && shaders[shader].schema;\n if (!schema) { error('Unknown shader schema ' + shader); }\n if (currentShader && newShader === currentShader) { return; }\n this.extendSchema(schema);\n this.updateBehavior();\n },\n\n updateBehavior: function () {\n var scene = this.el.sceneEl;\n var schema = this.schema;\n var self = this;\n var tickProperties = {};\n var tick = function (time, delta) {\n var keys = Object.keys(tickProperties);\n keys.forEach(update);\n function update (key) { tickProperties[key] = time; }\n self.shader.update(tickProperties);\n };\n var keys = Object.keys(schema);\n keys.forEach(function (key) {\n if (schema[key].type === 'time') {\n self.tick = tick;\n tickProperties[key] = true;\n scene.addBehavior(self);\n }\n });\n if (Object.keys(tickProperties).length === 0) {\n scene.removeBehavior(this);\n }\n },\n\n updateShader: function (shaderName) {\n var data = this.data;\n var Shader = shaders[shaderName] && shaders[shaderName].Shader;\n var shaderInstance;\n\n if (!Shader) { throw new Error('Unknown shader ' + shaderName); }\n\n // Get material from A-Frame shader.\n shaderInstance = this.shader = new Shader();\n shaderInstance.el = this.el;\n shaderInstance.init(data);\n this.setMaterial(shaderInstance.material);\n this.updateSchema(data);\n },\n\n updateMaterial: function () {\n var data = this.data;\n var material = this.material;\n material.side = parseSide(data.side);\n material.opacity = data.opacity;\n material.transparent = data.transparent !== false || data.opacity < 1.0;\n material.depthTest = data.depthTest !== false;\n material.shading = data.flatShading ? THREE.FlatShading : THREE.SmoothShading;\n material.visible = data.visible;\n },\n\n /**\n * Remove material on remove (callback).\n * Dispose of it from memory and unsubscribe from scene updates.\n */\n remove: function () {\n var defaultMaterial = new THREE.MeshBasicMaterial();\n var material = this.material;\n var object3D = this.el.getObject3D('mesh');\n if (object3D) { object3D.material = defaultMaterial; }\n disposeMaterial(material, this.system);\n },\n\n /**\n * (Re)create new material. Has side-effects of setting `this.material` and updating\n * material registration in scene.\n *\n * @param {object} data - Material component data.\n * @param {object} type - Material type to create.\n * @returns {object} Material.\n */\n setMaterial: function (material) {\n var mesh = this.el.getOrCreateObject3D('mesh', THREE.Mesh);\n var system = this.system;\n if (this.material) { disposeMaterial(this.material, system); }\n this.material = mesh.material = material;\n system.registerMaterial(material);\n }\n});\n\n/**\n * Returns a three.js constant determining which material face sides to render\n * based on the side parameter (passed as a component property).\n *\n * @param {string} [side=front] - `front`, `back`, or `double`.\n * @returns {number} THREE.FrontSide, THREE.BackSide, or THREE.DoubleSide.\n */\nfunction parseSide (side) {\n switch (side) {\n case 'back': {\n return THREE.BackSide;\n }\n case 'double': {\n return THREE.DoubleSide;\n }\n default: {\n // Including case `front`.\n return THREE.FrontSide;\n }\n }\n}\n\n/**\n * Dispose of material from memory and unsubscribe material from scene updates like fog.\n */\nfunction disposeMaterial (material, system) {\n material.dispose();\n system.unregisterMaterial(material);\n}\n","var debug = require('../utils/debug');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar warn = debug('components:obj-model:warn');\n\nmodule.exports.Component = registerComponent('obj-model', {\n dependencies: ['material'],\n\n schema: {\n mtl: { type: 'src' },\n obj: { type: 'src' }\n },\n\n init: function () {\n this.model = null;\n this.objLoader = new THREE.OBJLoader();\n this.mtlLoader = new THREE.MTLLoader(this.objLoader.manager);\n // Allow cross-origin images to be loaded.\n this.mtlLoader.crossOrigin = '';\n },\n\n update: function () {\n var data = this.data;\n if (!data.obj) { return; }\n this.remove();\n this.loadObj(data.obj, data.mtl);\n },\n\n remove: function () {\n if (!this.model) { return; }\n this.el.removeObject3D('mesh');\n },\n\n loadObj: function (objUrl, mtlUrl) {\n var self = this;\n var el = this.el;\n var mtlLoader = this.mtlLoader;\n var objLoader = this.objLoader;\n\n if (mtlUrl) {\n // .OBJ with an .MTL.\n if (el.hasAttribute('material')) {\n warn('Material component properties are ignored when a .MTL is provided');\n }\n mtlLoader.setBaseUrl(mtlUrl.substr(0, mtlUrl.lastIndexOf('/') + 1));\n mtlLoader.load(mtlUrl, function (materials) {\n materials.preload();\n objLoader.setMaterials(materials);\n objLoader.load(objUrl, function (objModel) {\n self.model = objModel;\n el.setObject3D('mesh', objModel);\n el.emit('model-loaded', {format: 'obj', model: objModel});\n });\n });\n return;\n }\n\n // .OBJ only.\n objLoader.load(objUrl, function (objModel) {\n // Apply material.\n var material = el.components.material;\n if (material) {\n objModel.traverse(function (child) {\n if (child instanceof THREE.Mesh) {\n child.material = material.material;\n }\n });\n }\n\n self.model = objModel;\n el.setObject3D('mesh', objModel);\n el.emit('model-loaded', {format: 'obj', model: objModel});\n });\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\nmodule.exports.Component = registerComponent('position', {\n schema: { type: 'vec3' },\n\n update: function () {\n var object3D = this.el.object3D;\n var data = this.data;\n object3D.position.set(data.x, data.y, data.z);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar scaleDummy = new THREE.Vector3();\n\n/**\n * Raycaster component.\n *\n * Pass options to three.js Raycaster including which objects to test.\n * Poll for intersections.\n * Emit event on origin entity and on target entity on intersect.\n *\n * @member {array} intersectedEls - List of currently intersected entities.\n * @member {array} objects - Cached list of meshes to intersect.\n * @member {number} prevCheckTime - Previous time intersection was checked. To help interval.\n * @member {object} raycaster - three.js Raycaster.\n */\nmodule.exports.Component = registerComponent('raycaster', {\n schema: {\n far: {default: Infinity}, // Infinity.\n interval: {default: 100},\n near: {default: 0},\n objects: {default: ''},\n recursive: {default: true}\n },\n\n init: function () {\n this.direction = new THREE.Vector3();\n this.intersectedEls = [];\n this.objects = null;\n this.prevCheckTime = undefined;\n this.raycaster = new THREE.Raycaster();\n this.updateOriginDirection();\n },\n\n /**\n * Create or update raycaster object.\n */\n update: function () {\n var data = this.data;\n var raycaster = this.raycaster;\n\n // Set raycaster properties.\n raycaster.far = data.far;\n raycaster.near = data.near;\n\n this.refreshObjects();\n },\n\n /**\n * Update list of objects to test for intersection.\n */\n refreshObjects: function () {\n var data = this.data;\n var i;\n var objectEls;\n\n // Push meshes onto list of objects to intersect.\n if (data.objects) {\n objectEls = this.el.sceneEl.querySelectorAll(data.objects);\n this.objects = [];\n for (i = 0; i < objectEls.length; i++) {\n this.objects.push(objectEls[i].object3D);\n }\n return;\n }\n\n // If objects not defined, intersect with everything.\n this.objects = this.el.sceneEl.object3D.children;\n },\n\n /**\n * Check for intersections and cleared intersections on an interval.\n */\n tick: function (time) {\n var el = this.el;\n var data = this.data;\n var intersectedEls;\n var intersections;\n var prevCheckTime = this.prevCheckTime;\n var prevIntersectedEls;\n\n // Only check for intersection if interval time has passed.\n if (prevCheckTime && (time - prevCheckTime < data.interval)) { return; }\n\n // Store old previously intersected entities.\n prevIntersectedEls = this.intersectedEls.slice();\n\n // Raycast.\n this.updateOriginDirection();\n intersections = this.raycaster.intersectObjects(this.objects, data.recursive);\n\n // Only keep intersections against objects that have a reference to an entity.\n intersections = intersections.filter(function hasEl (intersection) {\n return !!intersection.object.el;\n });\n\n // Update intersectedEls.\n intersectedEls = this.intersectedEls = intersections.map(function getEl (intersection) {\n return intersection.object.el;\n });\n\n // Emit intersected on intersected entity per intersected entity.\n intersections.forEach(function emitEvents (intersection) {\n var intersectedEl = intersection.object.el;\n intersectedEl.emit('raycaster-intersected', {el: el, intersection: intersection});\n });\n\n // Emit all intersections at once on raycasting entity.\n if (intersections.length) {\n el.emit('raycaster-intersection', {\n els: intersectedEls,\n intersections: intersections\n });\n }\n\n // Emit intersection cleared on both entities per formerly intersected entity.\n prevIntersectedEls.forEach(function checkStillIntersected (intersectedEl) {\n if (intersectedEls.indexOf(intersectedEl) !== -1) { return; }\n el.emit('raycaster-intersection-cleared', {el: intersectedEl});\n intersectedEl.emit('raycaster-intersected-cleared', {el: el});\n });\n },\n\n /**\n * Set origin and direction of raycaster using entity position and rotation.\n */\n updateOriginDirection: (function () {\n var directionHelper = new THREE.Quaternion();\n var originVec3 = new THREE.Vector3();\n\n // Closure to make quaternion/vector3 objects private.\n return function updateOriginDirection () {\n var el = this.el;\n var object3D = el.object3D;\n\n // Update matrix world.\n object3D.updateMatrixWorld();\n // Grab the position and rotation.\n object3D.matrixWorld.decompose(originVec3, directionHelper, scaleDummy);\n // Apply rotation to a 0, 0, -1 vector.\n this.direction.set(0, 0, -1);\n this.direction.applyQuaternion(directionHelper);\n\n this.raycaster.set(originVec3, this.direction);\n };\n })()\n});\n","var degToRad = require('../lib/three').Math.degToRad;\nvar registerComponent = require('../core/component').registerComponent;\n\nmodule.exports.Component = registerComponent('rotation', {\n schema: { type: 'vec3' },\n\n /**\n * Updates object3D rotation.\n */\n update: function () {\n var data = this.data;\n var object3D = this.el.object3D;\n object3D.rotation.set(degToRad(data.x), degToRad(data.y), degToRad(data.z));\n object3D.rotation.order = 'YXZ';\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\n// Avoids triggering a zero-determinant which makes object3D matrix non-invertible.\nvar zeroScale = 0.00001;\n\nmodule.exports.Component = registerComponent('scale', {\n schema: {\n type: 'vec3',\n default: { x: 1, y: 1, z: 1 }\n },\n\n update: function () {\n var data = this.data;\n var object3D = this.el.object3D;\n var x = data.x === 0 ? zeroScale : data.x;\n var y = data.y === 0 ? zeroScale : data.y;\n var z = data.z === 0 ? zeroScale : data.z;\n object3D.scale.set(x, y, z);\n }\n});\n","var debug = require('../utils/debug');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar warn = debug('components:sound:warn');\n\n/**\n * Sound component.\n */\nmodule.exports.Component = registerComponent('sound', {\n schema: {\n src: { type: 'src' },\n on: { default: '' },\n autoplay: { default: false },\n loop: { default: false },\n volume: { default: 1 }\n },\n\n multiple: true,\n\n init: function () {\n this.listener = null;\n this.audioLoader = new THREE.AudioLoader();\n this.sound = null;\n this.playSound = this.playSound.bind(this);\n },\n\n update: function (oldData) {\n var data = this.data;\n var sound = this.sound;\n var srcChanged = data.src !== oldData.src;\n // Create new sound if not yet created or changing `src`.\n if (srcChanged) {\n if (!data.src) {\n warn('Audio source was not specified with `src`');\n return;\n }\n sound = this.setupSound();\n }\n\n sound.autoplay = data.autoplay;\n sound.setLoop(data.loop);\n sound.setVolume(data.volume);\n\n if (data.on !== oldData.on) {\n this.updateEventListener(oldData.on);\n }\n\n // All sound values set. Load in `src`.\n if (srcChanged) {\n this.audioLoader.load(data.src, function (buffer) {\n sound.setBuffer(buffer);\n // Remove this key from cache, otherwise we can't play it again\n THREE.Cache.remove(data.src);\n });\n }\n },\n\n /**\n * Update listener attached to the user defined on event.\n */\n updateEventListener: function (oldEvt) {\n var el = this.el;\n if (oldEvt) { el.removeEventListener(oldEvt, this.playSound); }\n el.addEventListener(this.data.on, this.playSound);\n },\n\n removeEventListener: function () {\n this.el.removeEventListener(this.data.on, this.playSound);\n },\n\n remove: function () {\n this.removeEventListener();\n this.el.removeObject3D(this.attrName);\n try {\n this.sound.disconnect();\n } catch (e) {\n // disconnect() will throw if it was never connected initially.\n warn('Audio source not properly disconnected');\n }\n },\n\n play: function () {\n if (!this.sound) { return; }\n if (this.sound.source.buffer && this.data.autoplay) {\n this.sound.play();\n }\n this.updateEventListener();\n },\n\n pause: function () {\n if (!this.sound) { return; }\n if (this.sound.source.buffer && this.sound.isPlaying) {\n this.sound.pause();\n }\n this.removeEventListener();\n },\n\n /**\n * Removes current sound object, creates new sound object, adds to entity.\n *\n * @returns {object} sound\n */\n setupSound: function () {\n var el = this.el;\n var sceneEl = el.sceneEl;\n var sound = this.sound;\n\n if (sound) {\n this.stopSound();\n el.removeObject3D('sound');\n }\n\n // Only want one AudioListener. Cache it on the scene.\n var listener = this.listener = sceneEl.audioListener || new THREE.AudioListener();\n sceneEl.audioListener = listener;\n\n if (sceneEl.camera) {\n sceneEl.camera.add(listener);\n }\n\n // Wait for camera if necessary.\n sceneEl.addEventListener('camera-set-active', function (evt) {\n evt.detail.cameraEl.getObject3D('camera').add(listener);\n });\n\n sound = this.sound = new THREE.PositionalAudio(listener);\n el.setObject3D(this.attrName, sound);\n\n sound.source.onended = function () {\n sound.onEnded();\n el.emit('sound-ended');\n };\n\n return sound;\n },\n\n playSound: function () {\n if (!this.sound.source.buffer) { return; }\n this.sound.play();\n },\n\n stopSound: function () {\n if (!this.sound.source.buffer) { return; }\n this.sound.stop();\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\n/**\n * Tracked controls component\n * Interface with the gamepad API to handled tracked controllers. Selects\n * the appropriate controller and applies pose to the entity. It also observes\n * buttons state and emits appropriate events.\n *\n * @property {number} controller - index of the controller in the array\n * returned by the Gamepad API.\n * @property {string} id - Selects the controllers among those returned by the Gamepad API.\n */\nmodule.exports.Component = registerComponent('tracked-controls', {\n schema: {\n controller: { default: 0 },\n id: { default: 'OpenVR Gamepad' }\n },\n\n init: function () {\n this.buttonStates = {};\n this.axisState = [];\n },\n\n update: function () {\n var controllers = this.system.controllers;\n var data = this.data;\n controllers = controllers.filter(hasId);\n // handId: 0 - right, 1 - left\n this.controller = controllers[data.controller];\n function hasId (controller) { return controller.id === data.id; }\n },\n\n tick: function (time, delta) {\n var mesh = this.el.getObject3D('mesh');\n if (!mesh) { return; }\n if (mesh.update) { mesh.update(delta / 1000); }\n this.updatePose();\n this.updateButtons();\n },\n\n updatePose: (function () {\n var controllerEuler = new THREE.Euler();\n var controllerPosition = new THREE.Vector3();\n var controllerQuaternion = new THREE.Quaternion();\n var dolly = new THREE.Object3D();\n var standingMatrix = new THREE.Matrix4();\n controllerEuler.order = 'YXZ';\n return function () {\n var controller;\n var pose;\n var orientation;\n var position;\n var el = this.el;\n var vrDisplay = this.system.vrDisplay;\n this.update();\n controller = this.controller;\n if (!controller) { return; }\n pose = controller.pose;\n orientation = pose.orientation || [0, 0, 0, 1];\n position = pose.position || [0, 0, 0];\n controllerQuaternion.fromArray(orientation);\n dolly.quaternion.fromArray(orientation);\n dolly.position.fromArray(position);\n dolly.updateMatrix();\n if (vrDisplay && vrDisplay.stageParameters) {\n standingMatrix.fromArray(vrDisplay.stageParameters.sittingToStandingTransform);\n dolly.applyMatrix(standingMatrix);\n }\n controllerEuler.setFromRotationMatrix(dolly.matrix);\n controllerPosition.setFromMatrixPosition(dolly.matrix);\n el.setAttribute('rotation', {\n x: THREE.Math.radToDeg(controllerEuler.x),\n y: THREE.Math.radToDeg(controllerEuler.y),\n z: THREE.Math.radToDeg(controllerEuler.z)\n });\n el.setAttribute('position', {\n x: controllerPosition.x,\n y: controllerPosition.y,\n z: controllerPosition.z\n });\n };\n })(),\n\n updateButtons: function () {\n var i;\n var buttonState;\n var controller = this.controller;\n if (!this.controller) { return; }\n for (i = 0; i < controller.buttons.length; ++i) {\n buttonState = controller.buttons[i];\n this.handleButton(i, buttonState);\n }\n this.handleAxes(controller.axes);\n },\n\n handleAxes: function (controllerAxes) {\n var previousAxis = this.axisState;\n var changed = false;\n var i;\n for (i = 0; i < controllerAxes.length; ++i) {\n if (previousAxis[i] !== controllerAxes[i]) {\n changed = true;\n break;\n }\n }\n if (!changed) { return; }\n previousAxis = controllerAxes.slice();\n this.el.emit('axismove', {axis: previousAxis});\n },\n\n handleButton: function (id, buttonState) {\n var changed = false;\n changed = changed || this.handlePress(id, buttonState);\n changed = changed || this.handleTouch(id, buttonState);\n changed = changed || this.handleValue(id, buttonState);\n if (!changed) { return; }\n this.el.emit('buttonchanged', {id: id, state: buttonState});\n },\n\n handlePress: function (id, buttonState) {\n var buttonStates = this.buttonStates;\n var evtName;\n var previousButtonState = buttonStates[id] = buttonStates[id] || {};\n if (buttonState.pressed === previousButtonState.pressed) { return; }\n if (buttonState.pressed) {\n evtName = 'down';\n } else {\n evtName = 'up';\n }\n this.el.emit('button' + evtName, {id: id});\n previousButtonState.pressed = buttonState.pressed;\n },\n\n handleTouch: function (id, buttonState) {\n var buttonStates = this.buttonStates;\n var evtName;\n var previousButtonState = buttonStates[id] = buttonStates[id] || {};\n if (buttonState.touched === previousButtonState.touched) {\n return false;\n }\n if (buttonState.touched) {\n evtName = 'start';\n } else {\n evtName = 'end';\n }\n previousButtonState.touched = buttonState.touched;\n this.el.emit('touch' + evtName, {id: id, state: previousButtonState});\n return true;\n },\n\n handleValue: function (id, buttonState) {\n var buttonStates = this.buttonStates;\n var previousButtonState = buttonStates[id] = buttonStates[id] || {};\n if (buttonState.value === previousButtonState.value) { return false; }\n previousButtonState.value = buttonState.value;\n return true;\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\n/**\n * Visibility component.\n */\nmodule.exports.Component = registerComponent('visible', {\n schema: { default: true },\n\n update: function () {\n this.el.object3D.visible = this.data;\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\nvar VIVE_CONTROLLER_MODEL_OBJ_URL = 'https://cdn.aframe.io/controllers/vive/vr_controller_vive.obj';\nvar VIVE_CONTROLLER_MODEL_OBJ_MTL = 'https://cdn.aframe.io/controllers/vive/vr_controller_vive.mtl';\n\n/**\n * Vive Controls Component\n * Interfaces with vive controls and maps Gamepad events to\n * vive controller buttons: trackpad, trigger, grip, menu and system\n * It loads a vive controller model and highlights the pressed buttons\n */\nmodule.exports.Component = registerComponent('vive-controls', {\n dependencies: ['tracked-controls'],\n\n schema: {\n hand: {default: 'left'},\n buttonColor: {default: '#FAFAFA'}, // Off-white.\n buttonHighlightColor: {default: '#22D1EE'}, // Light blue.\n model: {default: true}\n },\n\n // buttonId\n // 0 - trackpad\n // 1 - trigger ( intensity value from 0.5 to 1 )\n // 2 - grip\n // 3 - menu ( dispatch but better for menu options )\n // 4 - system ( never dispatched on this layer )\n mapping: {\n axis0: 'trackpad',\n axis1: 'trackpad',\n button0: 'trackpad',\n button1: 'trigger',\n button2: 'grip',\n button3: 'menu',\n button4: 'system'\n },\n\n init: function () {\n var self = this;\n this.animationActive = 'pointing';\n this.onButtonChanged = this.onButtonChanged.bind(this);\n this.onButtonDown = function (evt) { self.onButtonEvent(evt.detail.id, 'down'); };\n this.onButtonUp = function (evt) { self.onButtonEvent(evt.detail.id, 'up'); };\n this.onModelLoaded = this.onModelLoaded.bind(this);\n },\n\n play: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('model-loaded', this.onModelLoaded);\n },\n\n pause: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n },\n\n update: function () {\n var el = this.el;\n var data = this.data;\n var objUrl = 'url(' + VIVE_CONTROLLER_MODEL_OBJ_URL + ')';\n var mtlUrl = 'url(' + VIVE_CONTROLLER_MODEL_OBJ_MTL + ')';\n // handId: 0 - right, 1 - left\n var controller = data.hand === 'right' ? 0 : 1;\n el.setAttribute('tracked-controls', 'controller', controller);\n if (!data.model) { return; }\n el.setAttribute('obj-model', {obj: objUrl, mtl: mtlUrl});\n },\n\n onButtonChanged: function (evt) {\n var button = this.mapping['button' + evt.detail.id];\n var buttonMeshes = this.buttonMeshes;\n var value;\n if (button !== 'trigger' || !buttonMeshes) { return; }\n value = evt.detail.state.value;\n buttonMeshes.trigger.rotation.x = -value * (Math.PI / 12);\n },\n\n onModelLoaded: function (evt) {\n var controllerObject3D = evt.detail.model;\n var buttonMeshes;\n if (!this.data.model) { return; }\n buttonMeshes = this.buttonMeshes = {};\n buttonMeshes.grip = {\n left: controllerObject3D.getObjectByName('leftgrip'),\n right: controllerObject3D.getObjectByName('rightgrip')\n };\n buttonMeshes.menu = controllerObject3D.getObjectByName('menubutton');\n buttonMeshes.system = controllerObject3D.getObjectByName('systembutton');\n buttonMeshes.trackpad = controllerObject3D.getObjectByName('touchpad');\n buttonMeshes.trigger = controllerObject3D.getObjectByName('trigger');\n // Offset pivot point\n controllerObject3D.position.set(0, -0.015, 0.04);\n },\n\n onButtonEvent: function (id, evtName) {\n var buttonName = this.mapping['button' + id];\n this.el.emit(buttonName + evtName);\n if (!this.data.model) { return; }\n this.updateModel(buttonName, evtName);\n },\n\n updateModel: function (buttonName, state) {\n var color = state === 'up' ? this.data.buttonColor : this.data.buttonHighlightColor;\n var buttonMeshes = this.buttonMeshes;\n if (!buttonMeshes) { return; }\n if (buttonName === 'grip') {\n buttonMeshes.grip.left.material.color.set(color);\n buttonMeshes.grip.right.material.color.set(color);\n return;\n }\n buttonMeshes[buttonName].material.color.set(color);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar shouldCaptureKeyEvent = require('../utils/').shouldCaptureKeyEvent;\nvar THREE = require('../lib/three');\n\nvar MAX_DELTA = 0.2;\n\n/**\n * WASD component to control entities using WASD keys.\n */\nmodule.exports.Component = registerComponent('wasd-controls', {\n schema: {\n easing: { default: 20 },\n acceleration: { default: 65 },\n enabled: { default: true },\n fly: { default: false },\n wsAxis: { default: 'z', oneOf: [ 'x', 'y', 'z' ] },\n adAxis: { default: 'x', oneOf: [ 'x', 'y', 'z' ] },\n wsInverted: { default: false },\n wsEnabled: { default: true },\n adInverted: { default: false },\n adEnabled: { default: true }\n },\n\n init: function () {\n this.velocity = new THREE.Vector3();\n // To keep track of the pressed keys\n this.keys = {};\n this.onBlur = this.onBlur.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onVisibilityChange = this.onVisibilityChange.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n this.attachVisibilityEventListeners();\n },\n\n update: function (previousData) {\n var data = this.data;\n var acceleration = data.acceleration;\n var easing = data.easing;\n var velocity = this.velocity;\n var prevTime = this.prevTime = this.prevTime || Date.now();\n var time = window.performance.now();\n var delta = (time - prevTime) / 1000;\n var keys = this.keys;\n var movementVector;\n var adAxis = data.adAxis;\n var wsAxis = data.wsAxis;\n var adSign = data.adInverted ? -1 : 1;\n var wsSign = data.wsInverted ? -1 : 1;\n var el = this.el;\n this.prevTime = time;\n\n // If data changed or FPS too low, reset velocity.\n if (previousData || delta > MAX_DELTA) {\n velocity[adAxis] = 0;\n velocity[wsAxis] = 0;\n return;\n }\n\n velocity[adAxis] -= velocity[adAxis] * easing * delta;\n velocity[wsAxis] -= velocity[wsAxis] * easing * delta;\n\n var position = el.getComputedAttribute('position');\n\n if (data.enabled) {\n if (data.adEnabled) {\n if (keys[65]) { velocity[adAxis] -= adSign * acceleration * delta; } // Left\n if (keys[68]) { velocity[adAxis] += adSign * acceleration * delta; } // Right\n }\n if (data.wsEnabled) {\n if (keys[87]) { velocity[wsAxis] -= wsSign * acceleration * delta; } // Up\n if (keys[83]) { velocity[wsAxis] += wsSign * acceleration * delta; } // Down\n }\n }\n\n movementVector = this.getMovementVector(delta);\n el.object3D.translateX(movementVector.x);\n el.object3D.translateY(movementVector.y);\n el.object3D.translateZ(movementVector.z);\n\n el.setAttribute('position', {\n x: position.x + movementVector.x,\n y: position.y + movementVector.y,\n z: position.z + movementVector.z\n });\n },\n\n play: function () {\n this.attachKeyEventListeners();\n },\n\n pause: function () {\n this.keys = {};\n this.removeKeyEventListeners();\n },\n\n tick: function (t) {\n this.update();\n },\n\n remove: function () {\n this.pause();\n this.removeVisibilityEventListeners();\n },\n\n attachVisibilityEventListeners: function () {\n window.addEventListener('blur', this.onBlur);\n window.addEventListener('focus', this.onFocus);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n },\n\n removeVisibilityEventListeners: function () {\n window.removeEventListener('blur', this.onBlur);\n window.removeEventListener('focus', this.onFocus);\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n },\n\n attachKeyEventListeners: function () {\n window.addEventListener('keydown', this.onKeyDown);\n window.addEventListener('keyup', this.onKeyUp);\n },\n\n removeKeyEventListeners: function () {\n window.removeEventListener('keydown', this.onKeyDown);\n window.removeEventListener('keyup', this.onKeyUp);\n },\n\n onBlur: function () {\n this.pause();\n },\n\n onFocus: function () {\n this.play();\n },\n\n onVisibilityChange: function () {\n if (document.hidden) {\n this.onBlur();\n } else {\n this.onFocus();\n }\n },\n\n onKeyDown: function (event) {\n if (!shouldCaptureKeyEvent(event)) { return; }\n this.keys[event.keyCode] = true;\n },\n\n onKeyUp: function (event) {\n if (!shouldCaptureKeyEvent(event)) { return; }\n this.keys[event.keyCode] = false;\n },\n\n getMovementVector: (function (delta) {\n var direction = new THREE.Vector3(0, 0, 0);\n var rotation = new THREE.Euler(0, 0, 0, 'YXZ');\n return function (delta) {\n var velocity = this.velocity;\n var elRotation = this.el.getComputedAttribute('rotation');\n direction.copy(velocity);\n direction.multiplyScalar(delta);\n if (!elRotation) { return direction; }\n if (!this.data.fly) { elRotation.x = 0; }\n rotation.set(THREE.Math.degToRad(elRotation.x),\n THREE.Math.degToRad(elRotation.y), 0);\n direction.applyEuler(rotation);\n return direction;\n };\n })()\n});\n","var registerShader = require('../core/shader').registerShader;\r\nvar THREE = require('../lib/three');\r\nvar utils = require('../utils/');\r\n\r\n/**\r\n * Flat shader using THREE.MeshBasicMaterial.\r\n */\r\nmodule.exports.Component = registerShader('flat', {\r\n schema: {\r\n color: { type: 'color' },\r\n fog: { default: true },\r\n height: { default: 256 },\r\n repeat: { default: '' },\r\n src: { default: '' },\r\n width: { default: 512 }\r\n },\r\n\r\n /**\r\n * Initializes the shader.\r\n * Adds a reference from the scene to this entity as the camera.\r\n */\r\n init: function (data) {\r\n this.textureSrc = null;\r\n this.material = new THREE.MeshBasicMaterial(getMaterialData(data));\r\n utils.material.updateMap(this, data);\r\n },\r\n\r\n update: function (data) {\r\n this.updateMaterial(data);\r\n utils.material.updateMap(this, data);\r\n },\r\n\r\n /**\r\n * Updating existing material.\r\n *\r\n * @param {object} data - Material component data.\r\n */\r\n updateMaterial: function (data) {\r\n var material = this.material;\r\n data = getMaterialData(data);\r\n Object.keys(data).forEach(function (key) {\r\n material[key] = data[key];\r\n });\r\n }\r\n});\r\n\r\n/**\r\n * Builds and normalize material data, normalizing stuff along the way.\r\n *\r\n * @param {object} data - Material data.\r\n * @returns {object} data - Processed material data.\r\n */\r\nfunction getMaterialData (data) {\r\n return {\r\n fog: data.fog,\r\n color: new THREE.Color(data.color)\r\n };\r\n}\r\n","var registerShader = require('../core/shader').registerShader;\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\n\nvar CubeLoader = new THREE.CubeTextureLoader();\nvar texturePromises = {};\n\n/**\n * Standard (physically-based) shader using THREE.MeshStandardMaterial.\n */\nmodule.exports.Component = registerShader('standard', {\n schema: {\n color: {type: 'color'},\n envMap: {default: ''},\n fog: {default: true},\n height: {default: 256},\n metalness: {default: 0.0, min: 0.0, max: 1.0},\n repeat: {default: ''},\n roughness: {default: 0.5, min: 0.0, max: 1.0},\n src: {default: ''},\n width: {default: 512}\n },\n /**\n * Initializes the shader.\n * Adds a reference from the scene to this entity as the camera.\n */\n init: function (data) {\n this.material = new THREE.MeshStandardMaterial(getMaterialData(data));\n utils.material.updateMap(this, data);\n this.updateEnvMap(data);\n },\n\n update: function (data) {\n this.updateMaterial(data);\n utils.material.updateMap(this, data);\n this.updateEnvMap(data);\n },\n\n /**\n * Updating existing material.\n *\n * @param {object} data - Material component data.\n * @returns {object} Material.\n */\n updateMaterial: function (data) {\n var material = this.material;\n data = getMaterialData(data);\n Object.keys(data).forEach(function (key) {\n material[key] = data[key];\n });\n },\n\n /**\n * Handle environment cubemap. Textures are cached in texturePromises.\n */\n updateEnvMap: function (data) {\n var self = this;\n var material = this.material;\n var envMap = data.envMap;\n\n // No envMap defined or already loading.\n if (!envMap || this.isLoadingEnvMap) {\n material.envMap = null;\n material.needsUpdate = true;\n return;\n }\n this.isLoadingEnvMap = true;\n\n // Another material is already loading this texture. Wait on promise.\n if (texturePromises[envMap]) {\n texturePromises[envMap].then(function (cube) {\n self.isLoadingEnvMap = false;\n material.envMap = cube;\n material.needsUpdate = true;\n });\n return;\n }\n\n // Material is first to load this texture. Load and resolve texture.\n texturePromises[envMap] = new Promise(function (resolve) {\n utils.srcLoader.validateCubemapSrc(envMap, function loadEnvMap (urls) {\n CubeLoader.load(urls, function (cube) {\n // Texture loaded.\n self.isLoadingEnvMap = false;\n material.envMap = cube;\n resolve(cube);\n });\n });\n });\n }\n});\n\n/**\n * Builds and normalize material data, normalizing stuff along the way.\n *\n * @param {object} data - Material data.\n * @returns {object} data - Processed material data.\n */\nfunction getMaterialData (data) {\n return {\n color: new THREE.Color(data.color),\n fog: data.fog,\n metalness: data.metalness,\n roughness: data.roughness\n };\n}\n","var constants = require('../constants/');\nvar registerSystem = require('../core/system').registerSystem;\n\nvar DEFAULT_CAMERA_ATTR = 'data-aframe-default-camera';\nvar DEFAULT_USER_HEIGHT = 1.6;\n\n/**\n * Camera system. Manages which camera is active among multiple cameras in scene.\n *\n * @member {object} activeCameraEl - Active camera entity.\n */\nmodule.exports.System = registerSystem('camera', {\n init: function () {\n this.activeCameraEl = null;\n // Wait for all entities to fully load before checking for existence of camera.\n // Since entities wait for to load, any cameras attaching to the scene\n // will do so asynchronously.\n this.sceneEl.addEventListener('loaded', this.setupDefaultCamera.bind(this));\n },\n\n /**\n * Create a default camera if user has not added one during the initial scene traversal.\n *\n * Default camera offset height is at average eye level (~1.6m).\n */\n setupDefaultCamera: function () {\n var sceneEl = this.sceneEl;\n var defaultCameraEl;\n\n // Camera already defined.\n if (sceneEl.camera) {\n sceneEl.emit('camera-ready', {cameraEl: sceneEl.camera.el});\n return;\n }\n\n // Set up default camera.\n defaultCameraEl = document.createElement('a-entity');\n defaultCameraEl.setAttribute('position', '0 0 0');\n defaultCameraEl.setAttribute(DEFAULT_CAMERA_ATTR, '');\n defaultCameraEl.setAttribute('camera', {active: true, userHeight: DEFAULT_USER_HEIGHT});\n defaultCameraEl.setAttribute('wasd-controls', '');\n defaultCameraEl.setAttribute('look-controls', '');\n defaultCameraEl.setAttribute(constants.AFRAME_INJECTED, '');\n sceneEl.appendChild(defaultCameraEl);\n sceneEl.addEventListener('enter-vr', this.removeDefaultOffset);\n sceneEl.addEventListener('exit-vr', this.addDefaultOffset);\n sceneEl.emit('camera-ready', {cameraEl: defaultCameraEl});\n },\n\n /**\n * Set a different active camera.\n * When we choose a (sort of) random scene camera as the replacement, set its `active` to\n * true. The camera component will call `setActiveCamera` and handle passing the torch to\n * the new camera.\n */\n disableActiveCamera: function () {\n var cameraEls = this.sceneEl.querySelectorAll('[camera]');\n var newActiveCameraEl = cameraEls[cameraEls.length - 1];\n newActiveCameraEl.setAttribute('camera', 'active', true);\n },\n\n /**\n * Set active camera to be used by renderer.\n * Removes the default camera (if present).\n * Disables all other cameras in the scene.\n *\n * @param {Element} newCameraEl - Entity with camera component.\n */\n setActiveCamera: function (newCameraEl) {\n var cameraEl;\n var cameraEls;\n var i;\n var newCamera;\n var previousCamera = this.activeCameraEl;\n var sceneEl = this.sceneEl;\n\n // Same camera.\n newCamera = newCameraEl.getObject3D('camera');\n if (!newCamera || newCameraEl === this.activeCameraEl) { return; }\n\n // Grab the default camera.\n var defaultCameraWrapper = sceneEl.querySelector('[' + DEFAULT_CAMERA_ATTR + ']');\n var defaultCameraEl = defaultCameraWrapper &&\n defaultCameraWrapper.querySelector('[camera]');\n\n // Remove default camera if new camera is not the default camera.\n if (newCameraEl !== defaultCameraEl) { removeDefaultCamera(sceneEl); }\n\n // Make new camera active.\n this.activeCameraEl = newCameraEl;\n this.activeCameraEl.play();\n sceneEl.camera = newCamera;\n\n // Disable current camera\n if (previousCamera) {\n previousCamera.setAttribute('camera', 'active', false);\n }\n\n // Disable other cameras in the scene\n cameraEls = sceneEl.querySelectorAll('[camera]');\n for (i = 0; i < cameraEls.length; i++) {\n cameraEl = cameraEls[i];\n if (newCameraEl === cameraEl) { continue; }\n cameraEl.setAttribute('camera', 'active', false);\n cameraEl.pause();\n }\n sceneEl.emit('camera-set-active', {cameraEl: newCameraEl});\n }\n});\n\n/**\n * Remove injected default camera from scene, if present.\n *\n * @param {Element} sceneEl\n */\nfunction removeDefaultCamera (sceneEl) {\n var defaultCamera;\n var camera = sceneEl.camera;\n if (!camera) { return; }\n\n // Remove default camera if present.\n defaultCamera = sceneEl.querySelector('[' + DEFAULT_CAMERA_ATTR + ']');\n if (!defaultCamera) { return; }\n sceneEl.removeChild(defaultCamera);\n}\n","var geometries = require('../core/geometry').geometries;\r\nvar registerSystem = require('../core/system').registerSystem;\r\nvar THREE = require('../lib/three');\r\n\r\n/**\r\n * System for geometry component.\r\n * Handle geometry caching.\r\n *\r\n * @member {object} cache - Mapping of stringified component data to THREE.Geometry objects.\r\n * @member {object} cacheCount - Keep track of number of entities using a geometry to\r\n * know whether to dispose on removal.\r\n */\r\nmodule.exports.System = registerSystem('geometry', {\r\n init: function () {\r\n this.cache = {};\r\n this.cacheCount = {};\r\n },\r\n\r\n /**\r\n * Reset cache. Mainly for testing.\r\n */\r\n clearCache: function () {\r\n this.cache = {};\r\n this.cacheCount = {};\r\n },\r\n\r\n /**\r\n * Attempt to retrieve from cache.\r\n *\r\n * @returns {Object|null} A geometry if it exists, else null.\r\n */\r\n getOrCreateGeometry: function (data) {\r\n var cache = this.cache;\r\n var cachedGeometry;\r\n var hash;\r\n\r\n // Skip all caching logic.\r\n if (data.skipCache) { return createGeometry(data); }\r\n\r\n // Try to retrieve from cache first.\r\n hash = this.hash(data);\r\n cachedGeometry = cache[hash];\r\n incrementCacheCount(this.cacheCount, hash);\r\n\r\n if (cachedGeometry) { return cachedGeometry; }\r\n\r\n // Create geometry.\r\n cachedGeometry = createGeometry(data);\r\n\r\n // Cache and return geometry.\r\n cache[hash] = cachedGeometry;\r\n return cachedGeometry;\r\n },\r\n\r\n /**\r\n * Let system know that an entity is no longer using a geometry.\r\n */\r\n unuseGeometry: function (data) {\r\n var cache = this.cache;\r\n var cacheCount = this.cacheCount;\r\n var geometry;\r\n var hash;\r\n\r\n if (data.skipCache) { return; }\r\n\r\n hash = this.hash(data);\r\n\r\n if (!cache[hash]) { return; }\r\n\r\n decrementCacheCount(cacheCount, hash);\r\n\r\n // Another entity is still using this geometry. No need to do anything.\r\n if (cacheCount[hash] > 0) { return; }\r\n\r\n // No more entities are using this geometry. Dispose.\r\n geometry = cache[hash];\r\n geometry.dispose();\r\n delete cache[hash];\r\n delete cacheCount[hash];\r\n },\r\n\r\n /**\r\n * Use JSON.stringify to turn component data into hash.\r\n * Should be deterministic within a single browser engine.\r\n * If not, then look into json-stable-stringify.\r\n */\r\n hash: function (data) {\r\n return JSON.stringify(data);\r\n }\r\n});\r\n\r\n/**\r\n * Create geometry using component data.\r\n *\r\n * @param {object} data - Component data.\r\n * @returns {object} Geometry.\r\n */\r\nfunction createGeometry (data) {\r\n var geometryType = data.primitive;\r\n var GeometryClass = geometries[geometryType] && geometries[geometryType].Geometry;\r\n var geometryInstance = new GeometryClass();\r\n\r\n if (!GeometryClass) { throw new Error('Unknown geometry `' + geometryType + '`'); }\r\n\r\n geometryInstance.init(data);\r\n return toBufferGeometry(geometryInstance.geometry, data.buffer);\r\n}\r\n\r\n/**\r\n * Decreate count of entity using a geometry.\r\n */\r\nfunction decrementCacheCount (cacheCount, hash) {\r\n cacheCount[hash]--;\r\n}\r\n\r\n/**\r\n * Increase count of entity using a geometry.\r\n */\r\nfunction incrementCacheCount (cacheCount, hash) {\r\n cacheCount[hash] = cacheCount[hash] === undefined ? 1 : cacheCount[hash] + 1;\r\n}\r\n\r\n/**\r\n * Transform geometry to BufferGeometry if `doBuffer`.\r\n *\r\n * @param {object} geometry\r\n * @param {boolean} doBuffer\r\n * @returns {object} Geometry.\r\n */\r\nfunction toBufferGeometry (geometry, doBuffer) {\r\n var bufferGeometry;\r\n if (!doBuffer) { return geometry; }\r\n\r\n bufferGeometry = new THREE.BufferGeometry().fromGeometry(geometry);\r\n bufferGeometry.metadata = {type: geometry.type, parameters: geometry.parameters || {}};\n geometry.dispose(); // Dispose no longer needed non-buffer geometry.\r\n return bufferGeometry;\r\n}\r\n","var registerSystem = require('../core/system').registerSystem;\nvar constants = require('../constants/');\n\nvar DEFAULT_LIGHT_ATTR = 'data-aframe-default-light';\n\n/**\n * Light system.\n *\n * Prescribes default lighting if not specified (one ambient, one directional).\n * Removes default lighting from the scene when a new light is added.\n *\n * @param {bool} defaultLights - Whether default lighting are defined.\n * @param {bool} userDefinedLights - Whether user lighting is defined.\n */\nmodule.exports.System = registerSystem('light', {\n init: function () {\n this.defaultLights = false;\n this.userDefinedLights = false;\n // Wait for all entities to fully load before checking for existence of lights.\n // Since entities wait for to load, any lights attaching to the scene\n // will do so asynchronously.\n this.sceneEl.addEventListener('loaded', this.setupDefaultLights.bind(this));\n },\n\n /**\n * Notify scene that light has been added and to remove the default.\n *\n * @param {object} el - element holding the light component.\n */\n registerLight: function (el) {\n if (!el.hasAttribute(DEFAULT_LIGHT_ATTR)) {\n // User added a light, remove default lights through DOM.\n this.removeDefaultLights();\n this.userDefinedLights = true;\n }\n },\n\n removeDefaultLights: function () {\n var defaultLights;\n var sceneEl = this.sceneEl;\n\n if (!this.defaultLights) { return; }\n defaultLights = document.querySelectorAll('[' + DEFAULT_LIGHT_ATTR + ']');\n for (var i = 0; i < defaultLights.length; i++) {\n sceneEl.removeChild(defaultLights[i]);\n }\n this.defaultLights = false;\n },\n\n /**\n * Prescibe default lights to the scene.\n * Does so by injecting markup such that this state is not invisible.\n * These lights are removed if the user adds any lights.\n */\n setupDefaultLights: function () {\n var sceneEl = this.sceneEl;\n var ambientLight;\n var directionalLight;\n\n if (this.userDefinedLights || this.defaultLights) { return; }\n ambientLight = document.createElement('a-entity');\n directionalLight = document.createElement('a-entity');\n ambientLight.setAttribute('light', {color: '#BBB', type: 'ambient'});\n ambientLight.setAttribute(DEFAULT_LIGHT_ATTR, '');\n ambientLight.setAttribute(constants.AFRAME_INJECTED, '');\n sceneEl.appendChild(ambientLight);\n\n directionalLight.setAttribute('light', {color: '#FFF', intensity: 0.6});\n directionalLight.setAttribute('position', {x: -0.5, y: 1, z: 1});\n directionalLight.setAttribute(DEFAULT_LIGHT_ATTR, '');\n directionalLight.setAttribute(constants.AFRAME_INJECTED, '');\n sceneEl.appendChild(directionalLight);\n\n this.defaultLights = true;\n }\n});\n","var registerSystem = require('../core/system').registerSystem;\r\nvar THREE = require('../lib/three');\r\nvar utils = require('../utils/');\r\n\r\nvar debug = utils.debug;\r\nvar error = debug('components:texture:error');\r\nvar TextureLoader = new THREE.TextureLoader();\r\nvar warn = debug('components:texture:warn');\r\n\r\n/**\r\n * System for material component.\r\n * Handle material registration, updates (for fog), and texture caching.\r\n *\r\n * @member materials {object} - Registered materials.\r\n * @member textureCache {object} - Texture cache for:\r\n * - Images: textureCache has mapping of src -> repeat -> cached three.js texture.\r\n * - Videos: textureCache has mapping of videoElement -> cached three.js texture.\r\n */\r\nmodule.exports.System = registerSystem('material', {\r\n init: function () {\r\n this.materials = {};\r\n this.textureCache = {};\r\n },\r\n\r\n clearTextureCache: function () {\r\n this.textureCache = {};\r\n },\r\n\r\n /**\r\n * Determine whether `src` is a image or video. Then try to load the asset, then call back.\r\n *\r\n * @param {string} src - Texture URL.\r\n * @param {string} data - Relevant texture data used for caching.\r\n * @param {function} cb - Callback to pass texture to.\r\n */\r\n loadTexture: function (src, data, cb) {\r\n var self = this;\r\n utils.srcLoader.validateSrc(src, loadImageCb, loadVideoCb, loadCanvasCb);\r\n function loadImageCb (src) { self.loadImage(src, data, cb); }\r\n function loadVideoCb (src) { self.loadVideo(src, data, cb); }\r\n function loadCanvasCb (src) { self.loadCanvas(src, data, cb); }\r\n },\r\n\r\n /**\r\n * High-level function for loading image textures (THREE.Texture).\r\n *\r\n * @param {Element|string} src - Texture source.\r\n * @param {object} data - Texture data.\r\n * @param {function} cb - Callback to pass texture to.\r\n */\r\n loadImage: function (src, data, cb) {\r\n var hash = this.hash(data);\r\n var handleImageTextureLoaded = cb;\r\n var textureCache = this.textureCache;\r\n\r\n // Texture already being loaded or already loaded. Wait on promise.\r\n if (textureCache[hash]) {\r\n textureCache[hash].then(handleImageTextureLoaded);\r\n return;\r\n }\r\n\r\n // Texture not yet being loaded. Start loading it.\r\n textureCache[hash] = loadImageTexture(src, data);\r\n textureCache[hash].then(handleImageTextureLoaded);\r\n },\r\n\r\n /**\r\n * High-level function for loading canvas textures (THREE.Texture).\r\n *\r\n * @param {Element|string} src - Texture source.\r\n * @param {object} data - Texture data.\r\n * @param {function} cb - Callback to pass texture to.\r\n */\r\n loadCanvas: function (src, data, cb) {\r\n // Hack readyState and HAVE_CURRENT_DATA on canvas to work with THREE.VideoTexture\r\n src.readyState = 2;\r\n src.HAVE_CURRENT_DATA = 2;\r\n this.loadVideo(src, data, cb);\r\n },\r\n\r\n /**\r\n * Load video texture (THREE.VideoTexture).\r\n * Which is just an image texture that RAFs + needsUpdate.\r\n * Note that creating a video texture is synchronous unlike loading an image texture.\r\n * Made asynchronous to be consistent with image textures.\r\n *\r\n * @param {Element|string} src - Texture source.\r\n * @param {object} data - Texture data.\r\n * @param {function} cb - Callback to pass texture to.\r\n */\r\n loadVideo: function (src, data, cb) {\r\n var hash;\r\n var texture;\r\n var textureCache = this.textureCache;\r\n var videoEl;\r\n var videoTextureResult;\r\n\r\n function handleVideoTextureLoaded (result) {\r\n result.texture.needsUpdate = true;\r\n cb(result.texture, result.videoEl);\r\n }\r\n\r\n // Video element provided.\r\n if (typeof src !== 'string') {\r\n // Check cache before creating texture.\r\n videoEl = src;\r\n hash = this.hashVideo(data, videoEl);\r\n if (textureCache[hash]) {\r\n textureCache[hash].then(handleVideoTextureLoaded);\r\n return;\r\n }\r\n // If not in cache, fix up the attributes then start to create the texture.\r\n fixVideoAttributes(videoEl);\r\n }\r\n\r\n // Only URL provided. Use video element to create texture.\r\n videoEl = videoEl || createVideoEl(src, data.width, data.height);\r\n\r\n // Generated video element already cached. Use that.\r\n hash = this.hashVideo(data, videoEl);\r\n if (textureCache[hash]) {\r\n textureCache[hash].then(handleVideoTextureLoaded);\r\n return;\r\n }\r\n\r\n // Create new video texture.\r\n texture = new THREE.VideoTexture(videoEl);\r\n texture.minFilter = THREE.LinearFilter;\r\n setTextureProperties(texture, data);\r\n\r\n // Cache as promise to be consistent with image texture caching.\r\n videoTextureResult = {texture: texture, videoEl: videoEl};\r\n textureCache[hash] = Promise.resolve(videoTextureResult);\r\n handleVideoTextureLoaded(videoTextureResult);\r\n },\r\n\r\n hash: function (data) {\r\n return JSON.stringify(data);\r\n },\r\n\r\n hashVideo: function (data, videoEl) {\r\n return calculateVideoCacheHash(data, videoEl);\r\n },\r\n\r\n /**\r\n * Keep track of material in case an update trigger is needed (e.g., fog).\r\n *\r\n * @param {object} material\r\n */\r\n registerMaterial: function (material) {\r\n this.materials[material.uuid] = material;\r\n },\r\n\r\n /**\r\n * Stop tracking material.\r\n *\r\n * @param {object} material\r\n */\r\n unregisterMaterial: function (material) {\r\n delete this.materials[material.uuid];\r\n },\r\n\r\n /**\r\n * Trigger update to all registered materials.\r\n */\r\n updateMaterials: function (material) {\r\n var materials = this.materials;\r\n Object.keys(materials).forEach(function (uuid) {\r\n materials[uuid].needsUpdate = true;\r\n });\r\n }\r\n});\r\n\r\n/**\r\n * Calculates consistent hash from a video element using its attributes.\r\n * If the video element has an ID, use that.\r\n * Else build a hash that looks like `src:myvideo.mp4;height:200;width:400;`.\r\n *\r\n * @param data {object} - Texture data such as repeat.\r\n * @param videoEl {Element} - Video element.\r\n * @returns {string}\r\n */\r\nfunction calculateVideoCacheHash (data, videoEl) {\r\n var i;\r\n var id = videoEl.getAttribute('id');\r\n var hash;\r\n var videoAttributes;\r\n\r\n if (id) { return id; }\r\n\r\n // Calculate hash using sorted video attributes.\r\n hash = '';\r\n videoAttributes = data || {};\r\n for (i = 0; i < videoEl.attributes.length; i++) {\r\n videoAttributes[videoEl.attributes[i].name] = videoEl.attributes[i].value;\r\n }\r\n Object.keys(videoAttributes).sort().forEach(function (name) {\r\n hash += name + ':' + videoAttributes[name] + ';';\r\n });\r\n\r\n return hash;\r\n}\r\n\r\n/**\r\n * Load image texture.\r\n *\r\n * @private\r\n * @param {string|object} src - An element or url to an image file.\r\n * @param {object} data - Data to set texture properties like `repeat`.\r\n * @returns {Promise} Resolves once texture is loaded.\r\n */\r\nfunction loadImageTexture (src, data) {\r\n return new Promise(doLoadImageTexture);\r\n\r\n function doLoadImageTexture (resolve, reject) {\r\n var isEl = typeof src !== 'string';\r\n\r\n function resolveTexture (texture) {\r\n setTextureProperties(texture, data);\r\n texture.needsUpdate = true;\r\n resolve(texture);\r\n }\r\n\r\n // Create texture from an element.\r\n if (isEl) {\r\n resolveTexture(new THREE.Texture(src));\r\n return;\r\n }\r\n\r\n // Load texture from src string. THREE will create underlying element.\r\n // Use THREE.TextureLoader (src, onLoad, onProgress, onError) to load texture.\r\n TextureLoader.load(\r\n src,\r\n resolveTexture,\r\n function () { /* no-op */ },\r\n function (xhr) {\r\n error('`$s` could not be fetched (Error code: %s; Response: %s)', xhr.status,\r\n xhr.statusText);\r\n }\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Set texture properties such as repeat.\r\n *\r\n * @param {object} data - With keys like `repeat`.\r\n */\r\nfunction setTextureProperties (texture, data) {\r\n // Handle UV repeat.\r\n var repeat = data.repeat || '1 1';\r\n var repeatXY = repeat.split(' ');\r\n\r\n // Don't bother setting repeat if it is 1/1. Power-of-two is required to repeat.\r\n if (repeat === '1 1' || repeatXY.length !== 2) { return; }\r\n\r\n texture.wrapS = THREE.RepeatWrapping;\r\n texture.wrapT = THREE.RepeatWrapping;\r\n texture.repeat.set(parseFloat(repeatXY[0]), parseFloat(repeatXY[1]));\r\n}\r\n\r\n/**\r\n * Create video element to be used as a texture.\r\n *\r\n * @param {string} src - Url to a video file.\r\n * @param {number} width - Width of the video.\r\n * @param {number} height - Height of the video.\r\n * @returns {Element} Video element.\r\n */\r\nfunction createVideoEl (src, width, height) {\r\n var videoEl = document.createElement('video');\r\n videoEl.width = width;\r\n videoEl.height = height;\r\n videoEl.setAttribute('webkit-playsinline', ''); // Support inline videos for iOS webviews.\r\n videoEl.autoplay = true;\r\n videoEl.loop = true;\r\n videoEl.crossOrigin = 'anonymous';\r\n videoEl.addEventListener('error', function () {\r\n warn('`$s` is not a valid video', src);\r\n }, true);\r\n videoEl.src = src;\r\n return videoEl;\r\n}\r\n\r\n/**\r\n * Fixes a video element's attributes to prevent developers from accidentally passing the\r\n * wrong attribute values to commonly misused video attributes.\r\n *\r\n *