From 9ac2a57c3e0f2e92d51dc12962f125169d1f8691 Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Sat, 10 Dec 2016 17:32:59 -0800 Subject: [PATCH 01/24] Allow Custom Model Files Custom model files can be uploaded by the user from an additional menu bar item. They will appear in the dropdown model selection list and can be selected like any other model. Once the user refreshes the page the user provided models will no longer be available. This pull also includes josepharhar's build.js, package.json, gitignore, and README changes. It made it much easier to work with this project since the generated JS files don't need to be manually modified and it is easier to build the project by simply running `npm install` then `npm start`. If he likes I can remove those changes from this pull and he can submit them seperately. Working with --- README.md | 13 ++ build/.gitignore | 1 + build/build.js | 5 +- build/package.json | 13 ++ sources/.gitignore | 2 + sources/css/main.css | 21 +- sources/editor.html | 12 + sources/index.html | 14 ++ sources/shdr/App.coffee | 14 +- sources/shdr/App.js | 406 ---------------------------------- sources/shdr/Bootstrap.js | 13 -- sources/shdr/Models.js | 35 --- sources/shdr/Snippets.coffee | 2 +- sources/shdr/Snippets.js | 19 -- sources/shdr/Storage.js | 125 ----------- sources/shdr/UI.coffee | 21 +- sources/shdr/UI.js | 374 ------------------------------- sources/shdr/Validator.coffee | 2 +- sources/shdr/Validator.js | 80 ------- sources/shdr/Viewer.coffee | 4 +- sources/shdr/Viewer.js | 130 ----------- 21 files changed, 116 insertions(+), 1190 deletions(-) create mode 100644 build/.gitignore create mode 100644 build/package.json create mode 100644 sources/.gitignore delete mode 100644 sources/shdr/App.js delete mode 100644 sources/shdr/Bootstrap.js delete mode 100644 sources/shdr/Models.js delete mode 100644 sources/shdr/Snippets.js delete mode 100644 sources/shdr/Storage.js delete mode 100644 sources/shdr/UI.js delete mode 100644 sources/shdr/Validator.js delete mode 100644 sources/shdr/Viewer.js diff --git a/README.md b/README.md index a3014c0..5b6a466 100644 --- a/README.md +++ b/README.md @@ -27,3 +27,16 @@ If you want to test the prod version or the chrome app: cd build node build.js [--output=../source/build/shdr.js] [--minify] [--chromeapp] [--persist] ``` + +# Building and Running with npm +To install node and npm on Ubuntu: +``` +sudo apt-get install nodejs npm +sudo ln -s /usr/bin/nodejs /usr/local/bin/node +``` +To build and run with npm: +``` +cd build +npm install +npm start +``` diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/build/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/build/build.js b/build/build.js index 2190393..60a2685 100644 --- a/build/build.js +++ b/build/build.js @@ -2,8 +2,9 @@ var fs = require("fs"); var path = require("path"); var argparse = require( "argparse" ); var uglify = require("uglify-js"); -var execSync = require('exec-sync'); +var execSync = require('child_process').execSync; var spawn = require('child_process').spawn; +var getDirName = require('path').dirname; var root = "../"; var base = root+"sources/"; @@ -137,6 +138,8 @@ function main() { } var temp = buffer.join(''); + recrmdirSync(getDirName(output)); + fs.mkdirSync(getDirName(output)); fs.writeFileSync(output, minlibs+temp, 'utf8'); } else diff --git a/build/package.json b/build/package.json new file mode 100644 index 0000000..8776e6c --- /dev/null +++ b/build/package.json @@ -0,0 +1,13 @@ +{ + "name": "shdr", + "version": "0.0.1", + "scripts": { + "start": "node build.js --output=../sources/build/shdr.js && node node_modules/http-server/bin/http-server ../sources" + }, + "dependencies": { + "argparse": "latest", + "uglify-js": "latest", + "coffee-script": "latest", + "http-server": "latest" + } +} diff --git a/sources/.gitignore b/sources/.gitignore new file mode 100644 index 0000000..075579d --- /dev/null +++ b/sources/.gitignore @@ -0,0 +1,2 @@ +shdr/*.js +build/ diff --git a/sources/css/main.css b/sources/css/main.css index 777285d..72d9869 100644 --- a/sources/css/main.css +++ b/sources/css/main.css @@ -319,6 +319,25 @@ button::-moz-focus-inner { color: #F92672; } +#box-upload { + z-index: 1002; + width: 400px; + top: 50%; + left: 50%; + margin-top: -140px; + margin-left: -200px; +} + +#box-upload-submit { + width: 86px; + text-align: center; + display: inline !important; + margin: 0; + border: 1px solid #090909; + -webkit-box-shadow: 0px 1px 0px 0px #333333; + box-shadow: 0px 1px 0px 0px #333333; +} + #box-about { z-index: 1002; width: 400px; @@ -435,4 +454,4 @@ button:before { #menu-name, #menu-remove { display: none; -} \ No newline at end of file +} diff --git a/sources/editor.html b/sources/editor.html index 292cd99..d9a5ca9 100644 --- a/sources/editor.html +++ b/sources/editor.html @@ -68,6 +68,9 @@ + @@ -110,6 +113,15 @@ +
+

Upload .obj File

+ + + +
+

Share URL

diff --git a/sources/index.html b/sources/index.html index 5dd919c..877d00a 100644 --- a/sources/index.html +++ b/sources/index.html @@ -71,6 +71,9 @@ + @@ -113,6 +116,17 @@
+
+

Upload Model File

+
+ + +
+ +
+

Share URL

diff --git a/sources/shdr/App.coffee b/sources/shdr/App.coffee index f1e9629..8bffa42 100644 --- a/sources/shdr/App.coffee +++ b/sources/shdr/App.coffee @@ -186,6 +186,18 @@ class App shdr.UI.WARNING) console.warn 'ERROR: ', e + upload: (file_obj) -> + try + reader = new FileReader() + reader.readAsDataURL file_obj + reader.onload = (e) => + model = {name: file_obj.name, data: e.target.result} + shdr.Models[e.target.result] = model + @ui.setStatus('Uploaded', shdr.UI.SUCCESS) + @ui.addNewModel(file_obj.name, e.target.result) + catch e + @ui.setStatus('You must select a .js model to upload.', shdr.UI.WARNING) + download: -> try blob = new Blob([@editor.getSession().getValue()], @@ -298,4 +310,4 @@ class App object @shdr ||= {} -@shdr.App = App \ No newline at end of file +@shdr.App = App diff --git a/sources/shdr/App.js b/sources/shdr/App.js deleted file mode 100644 index 4fbbb0b..0000000 --- a/sources/shdr/App.js +++ /dev/null @@ -1,406 +0,0 @@ -// Generated by CoffeeScript 1.4.0 -(function() { - var App; - - App = (function() { - - App.UPDATE_ALL = 0; - - App.UPDATE_ENTER = 1; - - App.UPDATE_MANUAL = 2; - - App.FRAGMENT = 0; - - App.VERTEX = 1; - - function App(domEditor, domCanvas, conf) { - var _this = this; - if (conf == null) { - conf = {}; - } - window.THREE_SHADER_OVERRIDE = true; - this.initBaseurl(); - this.documents = ['', '']; - this.marker = null; - this.viewer = null; - this.validator = null; - this.conf = { - update: App.UPDATE_ALL, - mode: App.FRAGMENT - }; - this.extend(this.conf, conf); - this.ui = new shdr.UI(this); - if (!this.initViewer(domCanvas)) { - return; - } - this.initEditor(domEditor); - this.initFromURL(); - this.byId(domEditor).addEventListener('keyup', (function(e) { - return _this.onEditorKeyUp(e); - }), false); - this.byId(domEditor).addEventListener('keydown', (function(e) { - return _this.onEditorKeyDown(e); - }), false); - this.ui.hideMainLoader(); - this.loop(); - } - - App.prototype.initBaseurl = function() { - var hash, url; - url = window.location.href; - hash = url.indexOf('#'); - if (hash > 0) { - this.baseurl = url.substr(0, hash); - } else { - this.baseurl = url; - } - if (this.baseurl.substr(0, 6) === "chrome") { - return this.baseurl = "http://shdr.bkcore.com/"; - } - }; - - App.prototype.initViewer = function(domCanvas) { - var conf, msg; - try { - this.viewer = new shdr.Viewer(this.byId(domCanvas), this); - this.validator = new shdr.Validator(this.viewer.canvas); - } catch (e) { - console.warn(e); - msg = "Unable to start Shdr. \n\nWebGL is either deactivated or not supported by your device or browser. \n\nWould you like to visit get.webgl.org for more info?"; - this.ui.setStatus(msg, shdr.UI.WARNING); - this.ui.displayWebGLError(); - conf = confirm(msg); - if (conf) { - location.href = "http://get.webgl.org/"; - } - return false; - } - return true; - }; - - App.prototype.initEditor = function(domEditor) { - this.documents[App.FRAGMENT] = this.viewer.fs; - this.documents[App.VERTEX] = this.viewer.vs; - this.editor = ace.edit(domEditor); - this.editor.setFontSize("16px"); - this.editor.setShowPrintMargin(false); - this.editor.getSession().setTabSize(2); - this.editor.getSession().setMode("ace/mode/glsl"); - this.editor.getSession().setUseWrapMode(true); - this.editor.getSession().setValue(this.documents[this.conf.mode]); - return this.editor.focus(); - }; - - App.prototype.loop = function() { - var _this = this; - requestAnimationFrame(function() { - return _this.loop(); - }); - return this.update(); - }; - - App.prototype.update = function() { - return this.viewer.update(); - }; - - App.prototype.updateShader = function() { - var line, msg, ok, session, src, type, _ref; - session = this.editor.getSession(); - if (this.marker != null) { - session.removeMarker(this.marker.id); - } - if (this.conf.mode === App.FRAGMENT) { - type = shdr.Validator.FRAGMENT; - } else { - type = shdr.Validator.VERTEX; - } - src = session.getValue(); - if (!src) { - this.ui.setStatus('Shader cannot be empty', shdr.UI.WARNING); - this.marker = session.highlightLines(0, 0); - return; - } - _ref = this.validator.validate(src, type), ok = _ref[0], line = _ref[1], msg = _ref[2]; - if (ok) { - this.viewer.updateShader(src, this.conf.mode); - return this.ui.setStatus('Shader successfully compiled', shdr.UI.SUCCESS); - } else { - line = Math.max(0, line - 1); - this.marker = session.highlightLines(line, line); - return this.ui.setStatus("Line " + line + " : " + msg, shdr.UI.ERROR); - } - }; - - App.prototype.initFromURL = function() { - var obj; - obj = this.unpackURL(); - return this.initDocuments(obj); - }; - - App.prototype.initDocuments = function(obj) { - var fl, fm, fs, vl, vm, vs, _fs, _ref, _ref1, _vs; - if (obj && obj.documents && obj.documents.length === 2) { - this.documents = obj.documents; - fs = this.documents[App.FRAGMENT]; - vs = this.documents[App.VERTEX]; - _ref = this.validator.validate(fs, shdr.Validator.FRAGMENT), _fs = _ref[0], fl = _ref[1], fm = _ref[2]; - _ref1 = this.validator.validate(vs, shdr.Validator.VERTEX), _vs = _ref1[0], vl = _ref1[1], vm = _ref1[2]; - if (_fs && _vs) { - this.viewer.updateShader(vs, App.VERTEX); - this.viewer.updateShader(fs, App.FRAGMENT); - this.editor.getSession().setValue(this.conf.mode === App.VERTEX ? vs : fs); - this.ui.setMenuMode(App.FRAGMENT); - this.ui.setStatus("Shaders successfully loaded and compiled.", shdr.UI.SUCCESS); - } else if (_vs) { - this.viewer.updateShader(vs, App.VERTEX); - this.setMode(App.FRAGMENT, true); - this.ui.setMenuMode(App.FRAGMENT); - this.ui.setStatus("Shaders loaded but Fragment could not compile. Line " + fl + " : " + fm, shdr.UI.WARNING); - } else if (_fs) { - this.viewer.updateShader(fs, App.FRAGMENT); - this.setMode(App.VERTEX, true); - this.ui.setMenuMode(App.VERTEX); - this.ui.setStatus("Shaders loaded but Vertex could not compile. Line " + vl + " : " + vm, shdr.UI.WARNING); - } else { - this.setMode(App.VERTEX, true); - this.ui.setMenuMode(App.VERTEX); - this.ui.setStatus("Shaders loaded but could not compile. Line " + vl + " : " + vm, shdr.UI.WARNING); - } - this.editor.focus(); - return true; - } else { - return false; - } - }; - - App.prototype.packURL = function() { - var json, obj, packed; - try { - obj = { - documents: this.documents, - model: this.viewer.currentModel - }; - json = JSON.stringify(obj); - packed = window.btoa(RawDeflate.deflate(json)); - return this.baseurl + '#1/' + packed; - } catch (e) { - return this.ui.setStatus("Unable to pack document: " + (typeof e.getMessage === "function" ? e.getMessage() : void 0), shdr.UI.WARNING); - } - }; - - App.prototype.unpackURL = function() { - var hash, json, obj, packed, version; - if (!window.location.hash) { - return false; - } - try { - hash = window.location.hash.substr(1); - version = hash.substr(0, 2); - packed = hash.substr(2); - json = RawDeflate.inflate(window.atob(packed)); - obj = JSON.parse(json); - return obj; - } catch (e) { - return this.ui.setStatus("Unable to unpack document: " + (typeof e.getMessage === "function" ? e.getMessage() : void 0), shdr.UI.WARNING); - } - }; - - App.prototype.shortenURL = function(url, callback) { - var key, - _this = this; - key = 'AIzaSyB46wUnmnZaPH9JkHlRizmsQw9W2SSx1x0'; - return $.ajax({ - url: "https://www.googleapis.com/urlshortener/v1/url?key=" + key, - type: 'POST', - contentType: 'application/json', - dataType: 'json', - data: JSON.stringify({ - longUrl: url - }), - success: function(resp) { - if (!resp || 'error' in resp || !'id' in resp) { - _this.ui.setStatus('An error occured while trying to shorten shared URL.', shdr.UI.WARNING); - console.warn(resp); - return typeof callback === "function" ? callback(false, null, resp) : void 0; - } else { - _this.ui.setStatus('Shared URL has been shortened.', shdr.UI.SUCCESS); - return typeof callback === "function" ? callback(true, resp.id, resp) : void 0; - } - }, - error: function(e) { - if (typeof callback === "function") { - callback(false, null, e); - } - _this.ui.setStatus('URL shortening service is not active.', shdr.UI.WARNING); - return console.warn('ERROR: ', e); - } - }); - }; - - App.prototype.download = function() { - var blob, url, win; - try { - blob = new Blob([this.editor.getSession().getValue()], { - type: 'text/plain' - }); - url = URL.createObjectURL(blob); - win = window.open(url, '_blank'); - if (win) { - win.focus(); - } else { - this.ui.setStatus('Your browser as blocked the download, please disable popup blocker.', shdr.UI.WARNING); - } - } catch (e) { - this.ui.setStatus('Your browser does not support Blob, unable to download.', shdr.UI.WARNING); - } - return url; - }; - - App.prototype.save = function(name) { - var obj; - this.updateDocument(); - obj = { - documents: this.documents, - name: name, - date: +Date.now() - }; - shdr.Storage.addDocument(name, obj); - this.ui.resetLoadFiles(); - return this.ui.setStatus("Shaders saved as '" + name + "'.", shdr.UI.SUCCESS); - }; - - App.prototype.load = function(name) { - var obj; - obj = shdr.Storage.getDocument(name); - if (obj != null) { - this.initDocuments(obj); - return true; - } else { - this.ui.setStatus("'" + name + "' Shaders do not exist.", shdr.UI.WARNING); - return false; - } - }; - - App.prototype["new"] = function() { - var obj; - obj = { - documents: [shdr.Snippets.DefaultFragment, shdr.Snippets.DefaultVertex], - name: 'Untitled' - }; - this.initDocuments(obj); - this.ui.setStatus('Editor reset using default shaders.', shdr.UI.SUCCESS); - return this.ui.clearName('Untitled'); - }; - - App.prototype.remove = function(name, reset) { - var removed; - if (reset == null) { - reset = false; - } - removed = shdr.Storage.removeDocument(name); - if (removed) { - if (reset) { - this["new"](); - } - this.ui.resetLoadFiles(); - return this.ui.setStatus("'" + name + "' Shaders removed.", shdr.UI.INFO); - } else { - return this.ui.setStatus("Unable to remove '" + name + "'. Shaders do not exist.", shdr.UI.WARNING); - } - }; - - App.prototype.updateDocument = function() { - return this.documents[this.conf.mode] = this.editor.getSession().getValue(); - }; - - App.prototype.onEditorKeyUp = function(e) { - var key, proc; - key = e.keyCode; - proc = this.conf.update === App.UPDATE_ENTER && key === 13; - proc || (proc = this.conf.update === App.UPDATE_ALL); - if (proc) { - this.updateShader(); - } - return true; - }; - - App.prototype.onEditorKeyDown = function(e) { - if (this.conf.update !== App.UPDATE_MANUAL) { - return true; - } - if (e.ctrlKey && e.keyCode === 83) { - this.updateShader(); - e.cancelBubble = true; - e.returnValue = false; - if (typeof e.stopPropagation === "function") { - e.stopPropagation(); - } - if (typeof e.preventDefault === "function") { - e.preventDefault(); - } - return false; - } else { - return true; - } - }; - - App.prototype.setUpdateMode = function(mode) { - this.conf.update = parseInt(mode); - return this; - }; - - App.prototype.setMode = function(mode, force) { - var old, session; - if (mode == null) { - mode = App.FRAGMENT; - } - if (force == null) { - force = false; - } - mode = parseInt(mode); - if (this.conf.mode === mode && !force) { - return false; - } - old = this.conf.mode; - this.conf.mode = mode; - session = this.editor.getSession(); - switch (mode) { - case App.FRAGMENT: - if (!force) { - this.documents[old] = session.getValue(); - } - session.setValue(this.documents[App.FRAGMENT]); - break; - case App.VERTEX: - if (!force) { - this.documents[old] = session.getValue(); - } - session.setValue(this.documents[App.VERTEX]); - } - this.updateShader(); - return this; - }; - - App.prototype.byId = function(id) { - return document.getElementById(id); - }; - - App.prototype.extend = function(object, properties) { - var key, val; - for (key in properties) { - val = properties[key]; - object[key] = val; - } - return object; - }; - - return App; - - })(); - - this.shdr || (this.shdr = {}); - - this.shdr.App = App; - -}).call(this); diff --git a/sources/shdr/Bootstrap.js b/sources/shdr/Bootstrap.js deleted file mode 100644 index b32e9cf..0000000 --- a/sources/shdr/Bootstrap.js +++ /dev/null @@ -1,13 +0,0 @@ -// Generated by CoffeeScript 1.4.0 -(function() { - var _this = this; - - if (!$ || !shdr || !shdr.App) { - console.warn("Unable to start Shdr, please load required libraries first."); - } else { - $(function() { - return _this.app = new shdr.App("editor", "viewer"); - }); - } - -}).call(this); diff --git a/sources/shdr/Models.js b/sources/shdr/Models.js deleted file mode 100644 index b6ada5a..0000000 --- a/sources/shdr/Models.js +++ /dev/null @@ -1,35 +0,0 @@ -// Generated by CoffeeScript 1.4.0 -(function() { - var Models; - - Models = { - 'models/cube.js': { - name: 'Cube' - }, - 'models/sphere.js': { - name: 'Shere' - }, - 'models/torus.js': { - name: 'Torus' - }, - 'models/dragon.js': { - name: 'Dragon', - scale: 1.2 - }, - 'models/hexmkii.js': { - name: 'Hex MKII', - scale: 0.01 - }, - 'models/suzanne_low.js': { - name: 'Suzanne (low)' - }, - 'models/suzanne_high.js': { - name: 'Suzanne (high)' - } - }; - - this.shdr || (this.shdr = {}); - - this.shdr.Models = Models; - -}).call(this); diff --git a/sources/shdr/Snippets.coffee b/sources/shdr/Snippets.coffee index e217333..88e6488 100644 --- a/sources/shdr/Snippets.coffee +++ b/sources/shdr/Snippets.coffee @@ -80,4 +80,4 @@ Snippets = ].join('\n') @shdr ||= {} -@shdr.Snippets = Snippets \ No newline at end of file +@shdr.Snippets = Snippets diff --git a/sources/shdr/Snippets.js b/sources/shdr/Snippets.js deleted file mode 100644 index 4b6945c..0000000 --- a/sources/shdr/Snippets.js +++ /dev/null @@ -1,19 +0,0 @@ -// Generated by CoffeeScript 1.4.0 -(function() { - var Snippets; - - Snippets = { - 'DefaultVertex': ['precision highp float;', 'attribute vec3 position;', 'attribute vec3 normal;', 'uniform mat3 normalMatrix;', 'uniform mat4 modelViewMatrix;', 'uniform mat4 projectionMatrix;', 'varying vec3 fNormal;', 'varying vec3 fPosition;', '', 'void main()', '{', ' fNormal = normalize(normalMatrix * normal);', ' vec4 pos = modelViewMatrix * vec4(position, 1.0);', ' fPosition = pos.xyz;', ' gl_Position = projectionMatrix * pos;', '}'].join('\n'), - 'DefaultFragment': ['precision highp float;', 'uniform float time;', 'uniform vec2 resolution;', 'varying vec3 fPosition;', 'varying vec3 fNormal;', '', 'void main()', '{', ' gl_FragColor = vec4(fNormal, 1.0);', '}'].join('\n'), - 'Luma': ['vec3 luma = vec3(0.299, 0.587, 0.114);'].join('\n'), - 'Blinn-Phong (Dir)': ['vec2 blinnPhongDir(vec3 lightDir, float lightInt, float Ka, float Kd, float Ks, float shininess)', '{', ' vec3 s = normalize(lightDir);', ' vec3 v = normalize(-fPosition);', ' vec3 n = normalize(fNormal);', ' vec3 h = normalize(v+s);', ' float diffuse = Ka + Kd * lightInt * max(0.0, dot(n, s));', ' float spec = Ks * pow(max(0.0, dot(n,h)), shininess);', ' return vec2(diffuse, spec);', '}'].join('\n'), - 'ColorNormal': ['vec3 colorNormal(vec3 col1, vec3 col2, vec3 col3)', '{', ' vec3 n = normalize(fNormal);', ' return clamp(col1*n.x + col2*n.y + col3*n.z,', ' vec3(0.0), vec3(1.0));', '}'].join('\n'), - 'Rimlight': ['vec3 rim(vec3 color, float start, float end, float coef)', '{', ' vec3 normal = normalize(fNormal);', ' vec3 eye = normalize(-fPosition.xyz);', ' float rim = smoothstep(start, end, 1.0 - dot(normal, eye));', ' return clamp(rim, 0.0, 1.0) * coef * color;', '}'].join('\n'), - 'Split': ['vec3 split(vec3 left, vec3 right, float ratio, bool horizontal)', '{', ' float i = float(horizontal);', ' float m = i*gl_FragCoord.x/resolution.x;', ' m += (1.0-i)*gl_FragCoord.y/resolution.y;', ' float d = float(m < ratio);', ' return left*d + right*(1.0-d);', '}'].join('\n') - }; - - this.shdr || (this.shdr = {}); - - this.shdr.Snippets = Snippets; - -}).call(this); diff --git a/sources/shdr/Storage.js b/sources/shdr/Storage.js deleted file mode 100644 index 7e91d08..0000000 --- a/sources/shdr/Storage.js +++ /dev/null @@ -1,125 +0,0 @@ -// Generated by CoffeeScript 1.4.0 -(function() { - var Storage; - - Storage = (function() { - - function Storage() {} - - Storage.PREFIX_SIZE = 4; - - Storage.DOC_PREFIX = 'doc_'; - - Storage.SET_PREFIX = 'set_'; - - Storage.available = 'localStorage' in window; - - Storage.addDocument = function(name, obj, overwrite) { - if (overwrite == null) { - overwrite = true; - } - return this.addObject(this.DOC_PREFIX + name, obj, overwrite); - }; - - Storage.addSetting = function(name, str, overwrite) { - if (overwrite == null) { - overwrite = true; - } - return this.addString(this.SET_PREFIX + name, str, overwrite); - }; - - Storage.addObject = function(key, obj, overwrite) { - if (overwrite == null) { - overwrite = true; - } - return this.addString(key, JSON.stringify(obj), overwrite); - }; - - Storage.addString = function(key, str, overwrite) { - if (overwrite == null) { - overwrite = true; - } - if ((localStorage[key] != null) && !overwrite) { - return false; - } - return localStorage[key] = str; - }; - - Storage.getDocument = function(name) { - return this.getObject(this.DOC_PREFIX + name); - }; - - Storage.getSetting = function(name) { - return this.getString(this.SET_PREFIX + name); - }; - - Storage.getObject = function(key) { - return JSON.parse(this.getString(key)); - }; - - Storage.getString = function(key) { - if (!(localStorage[key] != null)) { - return null; - } - return localStorage[key]; - }; - - Storage.listDocuments = function() { - return this._listByPrefix(this.DOC_PREFIX); - }; - - Storage.removeDocument = function(name) { - return this.remove(this.DOC_PREFIX + name); - }; - - Storage.removeSetting = function(name) { - return this.remove(this.SET_PREFIX + name); - }; - - Storage.remove = function(key) { - if (key in localStorage) { - delete localStorage[key]; - return true; - } else { - return false; - } - }; - - Storage.clearDocuments = function() { - return this._clearByPrefix(this.DOC_PREFIX); - }; - - Storage.clearSettings = function() { - return this._clearByPrefix(this.SET_PREFIX); - }; - - Storage._listByPrefix = function(prefix) { - var k, list; - list = []; - for (k in localStorage) { - if (k.substr(0, this.PREFIX_SIZE) === prefix) { - list.push(k.substr(this.PREFIX_SIZE)); - } - } - return list; - }; - - Storage._clearByPrefix = function(prefix) { - var e, list, _i, _len; - list = this._listByPrefix(prefix); - for (_i = 0, _len = list.length; _i < _len; _i++) { - e = list[_i]; - delete localStorage[prefix + e]; - } - return list.length; - }; - - return Storage; - - })(); - - this.shdr || (this.shdr = {}); - - this.shdr.Storage = Storage; - -}).call(this); diff --git a/sources/shdr/UI.coffee b/sources/shdr/UI.coffee index 10f742b..fafbac8 100644 --- a/sources/shdr/UI.coffee +++ b/sources/shdr/UI.coffee @@ -53,10 +53,17 @@ class UI initBoxes: -> @boxes = + upload: $('#box-upload') share: $('#box-share') about: $('#box-about') $('.box .close').on 'click', (e) -> $(this).parent().fadeOut(200) + objfile = @boxes.upload.find('#box-upload-input') + submitbutton = @boxes.upload.find('#box-upload-submit') + submitbutton.on 'click', (e) => + input_file = objfile[0].files[0] + @app.upload input_file + @boxes.upload.fadeOut(200) shareurl = @boxes.share.find('#box-share-url') shortenurl = @boxes.share.find('#box-share-shorten') shareurl.on 'click', (e) -> @@ -102,6 +109,13 @@ class UI .attr('data-index', key)) no + addNewModel: (modelName, key) -> + list = $('#menu-models .menu-list') + button = $('\n"; - } - return this.lists.files.html(tpl); - }; - - UI.prototype.initStatus = function() { - var content, el, icon, span; - el = $('#status'); - span = el.children('span'); - icon = span.children('i'); - content = span.children('b'); - return this.status = { - container: el, - span: span, - icon: icon, - content: content - }; - }; - - UI.prototype.initBoxes = function() { - var shareurl, shortenurl, - _this = this; - this.boxes = { - share: $('#box-share'), - about: $('#box-about') - }; - $('.box .close').on('click', function(e) { - return $(this).parent().fadeOut(200); - }); - shareurl = this.boxes.share.find('#box-share-url'); - shortenurl = this.boxes.share.find('#box-share-shorten'); - shareurl.on('click', function(e) { - return $(this).select(); - }); - return shortenurl.on('click', function(e) { - shortenurl.text('Wait...'); - return _this.app.shortenURL(shareurl.val(), function(status, url, resp) { - if (status && url) { - _this.boxes.share.find('#box-share-url').val(url); - } - return shortenurl.text('Shorten'); - }); - }); - }; - - UI.prototype.initButtons = function() { - var _this = this; - this.inputs = { - savename: $('#save-name') - }; - this.inputs.savename.on('click', function(e) { - e.stopPropagation(); - $(_this).focus(); - return false; - }); - return $('.menu-button').on('click', function(e) { - return _this.onButton(e); - }); - }; - - UI.prototype.initToggles = function() { - var _this = this; - return $('.menu-toggle').on('click', function(e) { - return _this.onToggle(e); - }); - }; - - UI.prototype.initMenus = function() { - var _this = this; - $('.menu-trigger').on('click.on', function(e) { - return _this.onMenuTrigger(e); - }); - $(document).on('click', '.menu-item', function(e) { - return _this.onMenuItem(e); - }); - return this.lists = { - files: $('#menu-load .menu-list'), - models: $('#menu-models .menu-list') - }; - }; - - UI.prototype.initSnippets = function() { - var button, key, list; - list = $('#menu-snippets .menu-list'); - button = $(' +
@@ -52,6 +54,7 @@ -
-
+
@@ -118,9 +121,22 @@
-

Upload .obj File

- - +

Upload Model File

+
+ + +
+ +
+ +
+

Upload Texture File

+
+ + +
@@ -165,23 +181,7 @@

About Shdr

- - - - - - - - - - - - - - - - - + diff --git a/sources/index.html b/sources/index.html index 441d1a4..6c56f65 100644 --- a/sources/index.html +++ b/sources/index.html @@ -75,6 +75,9 @@ + @@ -85,7 +88,7 @@
@@ -128,6 +131,17 @@

Upload Model File

+
+

Upload Texture File

+
+ + +
+ +
+

Share URL

diff --git a/sources/shdr/App.coffee b/sources/shdr/App.coffee index 70eccd2..222b674 100644 --- a/sources/shdr/App.coffee +++ b/sources/shdr/App.coffee @@ -200,6 +200,18 @@ class App shdr.UI.WARNING) console.warn 'ERROR: ', e + texture: (textureObj) -> + try + @ui.setStatus('Uploading...', shdr.UI.WARNING) + reader = new FileReader() + reader.readAsDataURL textureObj + reader.onload = (e) => + texture = {name: textureObj.name, data: e.target.result} + shdr.Texture[textureObj.name] = texture + @ui.setStatus('Uploaded', shdr.UI.SUCCESS) + catch e + @ui.setStatus('You must select a texture to upload.', shdr.UI.WARNING) + upload: (fileObj) -> try @ui.setStatus('Uploading...', shdr.UI.WARNING) diff --git a/sources/shdr/Textures.coffee b/sources/shdr/Textures.coffee new file mode 100644 index 0000000..1efe82d --- /dev/null +++ b/sources/shdr/Textures.coffee @@ -0,0 +1,6 @@ +Textures = + + 'models/test.jpg': + name: 'test.jpg' +@shdr ||= {} +@shdr.Models = Models diff --git a/sources/shdr/UI.coffee b/sources/shdr/UI.coffee index 20656c0..c54307a 100644 --- a/sources/shdr/UI.coffee +++ b/sources/shdr/UI.coffee @@ -54,16 +54,23 @@ class UI initBoxes: -> @boxes = upload: $('#box-upload') + texture: $('#box-texture') share: $('#box-share') about: $('#box-about') $('.box .close').on 'click', (e) -> $(this).parent().fadeOut(200) - objfile = @boxes.upload.find('#box-upload-input') + objFile = @boxes.upload.find('#box-upload-input') submitbutton = @boxes.upload.find('#box-upload-submit') submitbutton.on 'click', (e) => - inputFile = objfile[0].files[0] + inputFile = objFile[0].files[0] @app.upload(inputFile) @boxes.upload.fadeOut(200) + texfile = @boxes.texture.find('#box-texture-input') + submitbutton = @boxes.texture.find('#box-texture-submit') + submitbutton.on 'click', (e) => + inputTexture = texfile[0].files[0] + @app.texture(inputTexture) + @boxes.texture.fadeOut(200) shareurl = @boxes.share.find('#box-share-url') shortenurl = @boxes.share.find('#box-share-shorten') shareurl.on 'click', (e) -> @@ -233,6 +240,11 @@ class UI boxupload = $('#box-upload') @boxes.upload.fadeIn(200) + textureAction: -> + @app.updateDocument() + boxupload = $('#box-texture') + @boxes.texture.fadeIn(200) + downloadAction: -> @app.download() diff --git a/sources/shdr/Viewer.coffee b/sources/shdr/Viewer.coffee index 7efeb0e..2170e8f 100644 --- a/sources/shdr/Viewer.coffee +++ b/sources/shdr/Viewer.coffee @@ -120,6 +120,7 @@ class Viewer vectorVals = value.slice(5, value.length - 1).split(',').map( parseFloat) uniform['type'] = 'v3' + console.log(value) uniform['value'] = new THREE.Vector3(vectorVals[0], vectorVals[1], vectorVals[2]) else if type == 'vec4' @@ -129,7 +130,9 @@ class Viewer vectorVals[2], vectorVals[3]) else if type =='sampler2D' uniform['type'] = 't' - uniform['value'] = new THREE.TextureLoader().load(value) + THREE.ImageUtils.crossOrigin = '' + console.log(value) + uniform['value'] = THREE.ImageUtils.loadTexture(value) uniformObj[name] = uniform return uniformObj @@ -144,6 +147,7 @@ class Viewer @addCustomUniforms(@parseUniforms(shdr.Snippets.DefaultUniforms)) @vs = shdr.Snippets.DefaultVertex @fs = shdr.Snippets.DefaultFragment + console.log(@uniforms) return new THREE.ShaderMaterial( uniforms: @uniforms vertexShader: @vs From 30a8aae0e05ea8f33736582ac5814038d439173d Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Mon, 12 Dec 2016 22:47:49 -0800 Subject: [PATCH 09/24] Texture Upload and example works --- build/build.js | 1 + sources/editor.html | 2 ++ sources/index.html | 2 ++ sources/shdr/App.coffee | 6 ++++-- sources/shdr/Snippets.coffee | 16 ++++++++++++++++ sources/shdr/Textures.coffee | 5 +++-- sources/shdr/UI.coffee | 1 + sources/shdr/Viewer.coffee | 12 +++++++++--- sources/textures/purple_checkers.jpg | Bin 0 -> 11023 bytes 9 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 sources/textures/purple_checkers.jpg diff --git a/build/build.js b/build/build.js index cef682f..c123e83 100644 --- a/build/build.js +++ b/build/build.js @@ -23,6 +23,7 @@ var files = [ base+"libs/zip/rawinflate.js", base+"shdr/App.js", base+"shdr/Models.js", + base+"shdr/Textures.js", base+"shdr/Snippets.js", base+"shdr/Storage.js", base+"shdr/UI.js", diff --git a/sources/editor.html b/sources/editor.html index 6c56f65..e6bbe0f 100644 --- a/sources/editor.html +++ b/sources/editor.html @@ -134,6 +134,8 @@

Upload Model File

Upload Texture File

+

Your texture can be accessed as a uniform in the 'Uniforms' tab.

+

Example code is available in snippets under 'Texture'

diff --git a/sources/index.html b/sources/index.html index 6c56f65..e6bbe0f 100644 --- a/sources/index.html +++ b/sources/index.html @@ -134,6 +134,8 @@

Upload Model File

Upload Texture File

+

Your texture can be accessed as a uniform in the 'Uniforms' tab.

+

Example code is available in snippets under 'Texture'

diff --git a/sources/shdr/App.coffee b/sources/shdr/App.coffee index 222b674..ad296fe 100644 --- a/sources/shdr/App.coffee +++ b/sources/shdr/App.coffee @@ -205,9 +205,11 @@ class App @ui.setStatus('Uploading...', shdr.UI.WARNING) reader = new FileReader() reader.readAsDataURL textureObj + console.log(textureObj) reader.onload = (e) => + console.log("onload happened") texture = {name: textureObj.name, data: e.target.result} - shdr.Texture[textureObj.name] = texture + shdr.Textures[texture.name] = texture @ui.setStatus('Uploaded', shdr.UI.SUCCESS) catch e @ui.setStatus('You must select a texture to upload.', shdr.UI.WARNING) @@ -218,7 +220,7 @@ class App reader = new FileReader() reader.readAsDataURL fileObj reader.onload = (e) => - model = {name: fileObj.name, data: e.target.result} + model = {name: fileObj.name.split('.')[0], data: e.target.result} shdr.Models[e.target.result] = model @ui.setStatus('Uploaded', shdr.UI.SUCCESS) @ui.addNewModel(fileObj.name, e.target.result) diff --git a/sources/shdr/Snippets.coffee b/sources/shdr/Snippets.coffee index d9ad11d..0552f32 100644 --- a/sources/shdr/Snippets.coffee +++ b/sources/shdr/Snippets.coffee @@ -36,6 +36,22 @@ Snippets = # TODO add link to three.js uniform spec? 'DefaultUniforms': [ 'vec3 testColor = vec3(0.0, 0.0, 1.0);' + 'sampler2D my_texture = textures/purple_checkers.jpg;' + ].join('\n') + + 'Texture': [ + 'precision highp float;' + 'uniform float time;' + 'uniform vec2 resolution;' + 'varying vec3 fPosition;' + 'varying vec3 fNormal;' + 'uniform sampler2D my_texture;' + '' + 'void main()' + '{' + ' vec4 color = texture2D(my_texture, vec2(fNormal.x, fNormal.y));' + ' gl_FragColor = vec4(color.x, color.y, color.z, 1.0);' + '}' ].join('\n') 'DemoVertex': [ diff --git a/sources/shdr/Textures.coffee b/sources/shdr/Textures.coffee index 1efe82d..ce7cb4e 100644 --- a/sources/shdr/Textures.coffee +++ b/sources/shdr/Textures.coffee @@ -1,6 +1,7 @@ Textures = - 'models/test.jpg': + 'textures/purple_checkers.jpg': name: 'test.jpg' + @shdr ||= {} -@shdr.Models = Models +@shdr.Textures = Textures diff --git a/sources/shdr/UI.coffee b/sources/shdr/UI.coffee index c54307a..4070933 100644 --- a/sources/shdr/UI.coffee +++ b/sources/shdr/UI.coffee @@ -69,6 +69,7 @@ class UI submitbutton = @boxes.texture.find('#box-texture-submit') submitbutton.on 'click', (e) => inputTexture = texfile[0].files[0] + console.log(inputTexture) @app.texture(inputTexture) @boxes.texture.fadeOut(200) shareurl = @boxes.share.find('#box-share-url') diff --git a/sources/shdr/Viewer.coffee b/sources/shdr/Viewer.coffee index 2170e8f..5a00f0d 100644 --- a/sources/shdr/Viewer.coffee +++ b/sources/shdr/Viewer.coffee @@ -130,9 +130,15 @@ class Viewer vectorVals[2], vectorVals[3]) else if type =='sampler2D' uniform['type'] = 't' - THREE.ImageUtils.crossOrigin = '' - console.log(value) - uniform['value'] = THREE.ImageUtils.loadTexture(value) + # Remove quotes from string + value = value.replace(/^"(.*)"$/, '$1') + value = value.replace(/^"(.*)"$/, "$1") + console.log(value.split('/')) + # Hacky way to make demo work + if value.split('/')[0] == 'textures' + uniform['value'] = THREE.ImageUtils.loadTexture(value) + else + uniform['value'] = THREE.ImageUtils.loadTexture(shdr.Textures[value].data) uniformObj[name] = uniform return uniformObj diff --git a/sources/textures/purple_checkers.jpg b/sources/textures/purple_checkers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d9051dee93600070cb168357029526de9637f77 GIT binary patch literal 11023 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 literal 0 HcmV?d00001 From eae5cfda71bbafac8df854c6edaa57a62b051324 Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Mon, 12 Dec 2016 22:49:37 -0800 Subject: [PATCH 10/24] Better looking snippet --- sources/shdr/Snippets.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/shdr/Snippets.coffee b/sources/shdr/Snippets.coffee index 0552f32..d9240d5 100644 --- a/sources/shdr/Snippets.coffee +++ b/sources/shdr/Snippets.coffee @@ -36,7 +36,7 @@ Snippets = # TODO add link to three.js uniform spec? 'DefaultUniforms': [ 'vec3 testColor = vec3(0.0, 0.0, 1.0);' - 'sampler2D my_texture = textures/purple_checkers.jpg;' + 'sampler2D my_texture = "textures/purple_checkers.jpg";' ].join('\n') 'Texture': [ From 211a686c3bd72410f02ed839e4415008b34aacff Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Mon, 12 Dec 2016 23:11:28 -0800 Subject: [PATCH 11/24] Readme merge error --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index e028be4..661774b 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,6 @@ To build and run with npm: npm install npm start ``` -<<<<<<< HEAD -======= To build only the js package: ``` npm build From d305d545c2f90fa3ffc44dc89c22e3ba7372dadb Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Mon, 12 Dec 2016 23:22:01 -0800 Subject: [PATCH 12/24] Removed some log statements --- sources/shdr/Viewer.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/sources/shdr/Viewer.coffee b/sources/shdr/Viewer.coffee index 5a00f0d..a9e0d1d 100644 --- a/sources/shdr/Viewer.coffee +++ b/sources/shdr/Viewer.coffee @@ -133,7 +133,6 @@ class Viewer # Remove quotes from string value = value.replace(/^"(.*)"$/, '$1') value = value.replace(/^"(.*)"$/, "$1") - console.log(value.split('/')) # Hacky way to make demo work if value.split('/')[0] == 'textures' uniform['value'] = THREE.ImageUtils.loadTexture(value) From 732c0f8fdc103261de9efbba064b41d20934d37f Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Mon, 12 Dec 2016 23:29:28 -0800 Subject: [PATCH 13/24] Minor fixes to app and texture: --- sources/shdr/App.coffee | 4 +--- sources/shdr/Textures.coffee | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/sources/shdr/App.coffee b/sources/shdr/App.coffee index ad296fe..2d7e19d 100644 --- a/sources/shdr/App.coffee +++ b/sources/shdr/App.coffee @@ -84,9 +84,7 @@ class App newUniforms = session.getValue() @viewer.updateShader(newUniforms, App.UNIFORMS) catch e - # TODO show an error on the UI here - console.log("uniform compilation failed") - console.log(e) + @ui.setStatus('Uniform compilation failed', shdr.UI.ERROR) return else type = shdr.Validator.VERTEX diff --git a/sources/shdr/Textures.coffee b/sources/shdr/Textures.coffee index ce7cb4e..278137c 100644 --- a/sources/shdr/Textures.coffee +++ b/sources/shdr/Textures.coffee @@ -1,7 +1,7 @@ Textures = 'textures/purple_checkers.jpg': - name: 'test.jpg' + name: 'textures/purple_checkers.jpg' @shdr ||= {} @shdr.Textures = Textures From 9627cfe519e652914e3ce2f14e90499e5ba23b87 Mon Sep 17 00:00:00 2001 From: Andrew Tran Date: Tue, 13 Dec 2016 01:09:04 -0800 Subject: [PATCH 14/24] Added Error messages and bug fix for vec4 Vec4 parse code was broken. Fixed now. Added some syntax error messages for uniform assignment. --- sources/shdr/Viewer.coffee | 39 +++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/sources/shdr/Viewer.coffee b/sources/shdr/Viewer.coffee index a9e0d1d..f1441fe 100644 --- a/sources/shdr/Viewer.coffee +++ b/sources/shdr/Viewer.coffee @@ -89,16 +89,31 @@ class Viewer parseUniforms: (uniformStr) -> toParse = uniformStr.split(';') uniformObj = {} + lineNum = 0 for line in toParse - if (!line.length) + lineNum += 1 + + if (!line.trim().length) continue tokens = line.trim().split(' ') + + if (!tokens.length) + continue + + if (tokens.length < 4) + console.log('invalid syntax at line ' + lineNum) + continue + type = tokens[0] name = tokens[1] value = tokens.slice(3).join('') - + + if (tokens[2] != '=') + console.log('invalid syntax at line ' + lineNum + ': expected =') + continue + uniform = {} # Get the type of the uniform @@ -112,19 +127,29 @@ class Viewer uniform['type'] = 'i' uniform['value'] = value == 'true' ? 1 : 0 else if type == 'vec2' - vectorVals = value.slice(5, value.length - 1).split(',').map( - parseFloat) + vectorVals = value.slice(5, value.length - 1).split(',').map(parseFloat) + if (vectorVals.length != 2) + console.log('invalid syntax at line ' + lineNum + + ': wrong number of arguments') + continue uniform['type'] = 'v2' uniform['value'] = new THREE.Vector2(vectorVals[0], vectorVals[1]) else if type == 'vec3' - vectorVals = value.slice(5, value.length - 1).split(',').map( - parseFloat) + vectorVals = value.slice(5, value.length - 1).split(',').map(parseFloat) + if (vectorVals.length != 3) + console.log('invalid syntax at line ' + lineNum + + ': wrong number of arguments') + continue uniform['type'] = 'v3' console.log(value) uniform['value'] = new THREE.Vector3(vectorVals[0], vectorVals[1], vectorVals[2]) else if type == 'vec4' - vectorVals = value[4:-1].split(', ').map(parseFloat) + vectorVals = value.slice(5, value.length - 1).split(',').map(parseFloat) + if (vectorVals.length != 4) + console.log('invalid syntax at line ' + lineNum + + ': wrong number of arguments') + continue uniform['type'] = 'v4' uniform['value'] = new THREE.Vector4(vectorVals[0], vectorVals[1], vectorVals[2], vectorVals[3]) From ae05df7f060e056a86c8a4c697e9b4732b3af82a Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Tue, 13 Dec 2016 10:12:10 -0800 Subject: [PATCH 15/24] Updated draw distance, made model selection text look nicer --- sources/shdr/UI.coffee | 2 +- sources/shdr/Viewer.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/shdr/UI.coffee b/sources/shdr/UI.coffee index 4070933..ded6d2c 100644 --- a/sources/shdr/UI.coffee +++ b/sources/shdr/UI.coffee @@ -120,7 +120,7 @@ class UI addNewModel: (modelName, key) -> list = $('#menu-models .menu-list') button = $('
"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("
"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<0)return;u=this.$getTop(t.start.row+1,r),e.push("
")},this.drawSingleLineMarker=function(e,t,n,r,i){var s=r.lineHeight,o=(t.end.column+(i||0)-t.start.column)*r.characterWidth,u=this.$getTop(t.start.row,r),a=this.$padding+t.start.column*r.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,n,r){var i=this.$getTop(t.start.row,r),s=r.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,r)-i),e.push("
")}}).call(s.prototype),t.Marker=s}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$characterSize={width:0,height:0},this.checkForSizeChanges(),this.$pollSizeChanges()};(function(){r.implement(this,u),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){var e=this;this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=o.isIE||o.isOldGecko?function(){var e=1e3;if(!this.$measureNode){var t=this.$measureNode=i.createElement("div"),n=t.style;n.width=n.height="auto",n.left=n.top=-e*40+"px",n.visibility="hidden",n.position="fixed",n.overflow="visible",n.whiteSpace="nowrap",t.innerHTML=s.stringRepeat("Xy",e);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(t);else{var r=this.element.parentNode;while(!i.hasCssClass(r,"ace_editor"))r=r.parentNode;r.appendChild(t)}}if(!this.element.offsetWidth)return null;var n=this.$measureNode.style,o=i.computedStyle(this.element);for(var u in this.$fontStyles)n[u]=o[u];var a={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(e*2)};return a.width==0||a.height==0?null:a}:function(){if(!this.$measureNode){var e=this.$measureNode=i.createElement("div"),t=e.style;t.width=t.height="auto",t.left=t.top="-100px",t.visibility="hidden",t.position="fixed",t.overflow="visible",t.whiteSpace="nowrap",e.innerHTML="X";var n=this.element.parentNode;while(n&&!i.hasCssClass(n,"ace_editor"))n=n.parentNode;if(!n)return this.$measureNode=null;n.appendChild(e)}var r=this.$measureNode.getBoundingClientRect(),s={height:r.height,width:r.width};return s.width==0||s.height==0?null:s},this.setSession=function(e){this.session=e,this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n"+this.TAB_CHAR+s.stringRepeat(" ",n-1)+""):t.push(s.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide";if(this.showInvisibles){r+=" ace_invisible";var i=s.stringRepeat(this.SPACE_CHAR,this.tabSize),o=this.TAB_CHAR+s.stringRepeat(" ",this.tabSize-1)}else var i=s.stringRepeat(" ",this.tabSize),o=i;this.$tabStrings[" "]=""+i+"",this.$tabStrings[" "]=""+o+""}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),s=Math.min(n,e.lastRow),o=this.element.childNodes,u=0;for(var a=e.firstRow;al&&(a=f.end.row+1,f=this.session.getNextFoldLine(a,f),l=f?f.start.row:Infinity);if(a>s)break;var c=o[u++];if(c){var h=[];this.$renderLine(h,a,!this.$useLineGroups(),a==l?f:!1),i.setInnerHtml(c,h.join(""))}a++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRowt.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a);else{var l=a.childNodes;while(l.length)r.appendChild(l[0])}s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,s=n,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>r)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,s,!1,s==u?o:!1),this.$useLineGroups()&&t.push("
"),s++}this.element=i.setInnerHtml(this.element,t.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?""+s.stringRepeat(i.SPACE_CHAR,e.length)+"":s.stringRepeat(" ",e.length);if(e=="&")return"&";if(e=="<")return"<";if(e==" "){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e==" "){var f=i.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,""+l+""}return r?""+i.SPACE_CHAR+"":(t+=1,""+e+"")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t){var n=t.search(this.$indentGuideRe);return n<=0?t:t[0]==" "?(n-=n%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):t[0]==" "?(e.push(s.stringRepeat(this.$tabStrings[" "],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,s=0,o=n[0],u=0;for(var a=0;a=o)u=this.$renderToken(e,u,f,l.substring(0,o-i)),l=l.substring(o-i),i=o,r||e.push("
","
"),s++,u=0,o=n[s]||Number.MAX_VALUE;l.length!=0&&(i+=l.length,u=this.$renderToken(e,u,f,l))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),n||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){var r=e("../lib/dom"),i=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors")};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,e?r.addCssClass(this.element,"ace_smooth-blinking"):r.removeCssClass(this.element,"ace_smooth-blinking"),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking");for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity="";if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity=0}.bind(this),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){for(var e=this.cursors.length;e--;)this.cursors[e].style.opacity="";t()}.bind(this),this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=t.length;n--;){var i=this.getPixelPosition(t[n].cursor,!0);if((i.top>e.height+e.offset||i.top<-e.offset)&&n>1)continue;var s=(this.cursors[r++]||this.addCursor()).style;s.left=i.left+"px",s.top=i.top+"px",s.width=e.characterWidth+"px",s.height=e.lineHeight+"px"}while(this.cursors.length>r)this.removeCursor();var o=this.session.getOverwrite();this.$setOverwrite(o),this.$pixelPos=i,this.restartTimer()},this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(i.prototype),t.Cursor=i}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar",this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.width=i.scrollbarWidth(e.ownerDocument),this.element.style.width=(this.width||15)+5+"px",s.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){r.implement(this,o),this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.width},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}).call(u.prototype),t.ScrollBar=u}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),t.onSessionChange.call(e,e),e.on("changeSession",t.onSessionChange.bind(e)),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function i(){n&&(r.style.cursor="",n=!1)}var t=e.textInput.getElement(),n=!1,r=e.renderer.content;u.addListener(t,"keydown",function(e){e.keyCode==18&&!(e.ctrlKey||e.shiftKey||e.metaKey)?n||(r.style.cursor="crosshair",n=!0):n&&(r.style.cursor="")}),u.addListener(t,"keyup",i),u.addListener(t,"blur",i)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount==0){var n=this.toOrientedRange();if(e.intersects(n))return t||this.fromOrientedRange(e);this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._emit("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._emit("removeRange",{ranges:e}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;t.multiSelectAction?t.multiSelectAction=="forEach"?n.forEachSelection(t,e.args):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),t.exec(n,e.args||{})):t.multiSelectAction(n,e.args||{}):(t.exec(n,e.args||{}),n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()),e.preventDefault()},this.forEachSelection=function(e,t){if(this.inVirtualSelectionMode)return;var n=this.session,r=this.selection,i=r.rangeList,o=r._eventRegistry;r._eventRegistry={};var u=new s(n);this.inVirtualSelectionMode=!0;for(var a=i.ranges.length;a--;)u.fromOrientedRange(i.ranges[a]),this.selection=n.selection=u,e.exec(this,t||{}),u.toOrientedRange(i.ranges[a]);u.detach(),this.selection=n.selection=r,this.inVirtualSelectionMode=!1,r._eventRegistry=o,r.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var e="";if(this.inMultiSelectMode){var t=this.multiSelect.rangeList.ranges;e=[];for(var n=0;nn.length||t.length<=2||!t[1])return this.commands.exec("insertstring",this,e);for(var r=n.length;r--;){var i=n[r];i.isEmpty()||this.session.remove(i),this.session.insert(i.start,t[r])}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle,this.$search.set(t);var r=this.$search.findAll(this.session);if(!r.length)return 0;this.$blockScrolling+=1;var i=this.multiSelect;n||i.toSingleRange(r[0]);for(var s=r.length;s--;)i.addRange(r[s],!0);return this.$blockScrolling-=1,r.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t){var n=this.session,r=n.multiSelect,i=r.toOrientedRange();if(i.isEmpty()){var i=n.getWordRange(i.start.row,i.start.column);i.cursor=i.end,this.multiSelect.addRange(i)}var s=n.getTextRange(i),o=h(n,s,e);o&&(o.cursor=e==-1?o.start:o.end,this.multiSelect.addRange(o)),t&&this.multiSelect.substractPoint(i.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges;if(!n.length){var r=this.selection.getRange(),s=r.start.row,o=r.end.row,u=this.session.doc.removeLines(s,o);u=this.$reAlignText(u),this.session.doc.insertLines(s,u),r.start.column=0,r.end.column=u[u.length-1].length,this.selection.setRange(r)}else{var f=-1,l=n.filter(function(e){if(e.cursor.row==f)return!0;f=e.cursor.row});t.$onRemoveRange(l);var c=0,h=Infinity,p=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>c&&(c=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=c,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e){function o(e){return a.stringRepeat(" ",e)}function u(e){return e[2]?o(r)+e[2]+o(i-e[2].length+s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function f(e){return e[2]?o(r+i-e[2].length)+e[2]+o(s," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?o(r)+e[2]+o(s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var t=!0,n=!0,r,i,s;return e.map(function(e){var o=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return o?r==null?(r=o[1].length,i=o[2].length,s=o[3].length,o):(r+i+s!=o[1].length+o[2].length+o[3].length&&(n=!1),r!=o[1].length&&(t=!1),r>o[1].length&&(r=o[1].length),io[3].length&&(s=o[3].length),o):[e]}).map(t?n?f:u:l)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t.multiSelect||(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t.multiSelect;var n=e.oldSession;n&&(n.multiSelect&&n.multiSelect.editor==this&&(n.multiSelect.editor=null),t.multiSelect.removeEventListener("addRange",this.$onAddRange),t.multiSelect.removeEventListener("removeRange",this.$onRemoveRange),t.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect),t.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)),t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m}),define("ace/range_list",["require","exports","module"],function(e,t,n){var r=function(){this.ranges=[]};(function(){this.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},this.pointIndex=function(e,t){var n=this.ranges;for(var r=t||0;r0)continue;return s==0?r:(s=this.comparePoints(e,i.start),s>=0?r:-r-1)}return-r-1},this.add=function(e){var t=this.pointIndex(e.start);t<0&&(t=-t-1);var n=this.pointIndex(e.end,t);return n<0?n=-n-1:n++,this.ranges.splice(t,n-t,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.call(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges,n=t[0],r;for(var i=1;i=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.rowi)break;c.start.row==i&&c.start.column>=n.column&&(c.start.column+=u,c.start.row+=o),c.end.row==i&&c.end.column>=n.column&&(c.end.column+=u,c.end.row+=o)}if(o!=0&&f=0?i=e.nameToUrl("ace/worker/worker_sourcemint"):(e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),i=o(e.toUrl("ace/worker/worker",null,"_")));var u={};t.forEach(function(t){u[t]=o(e.toUrl(t,null,"_").replace(/.js(\?.*)?$/,""))})}this.$worker=new Worker(i),this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onerror=this.onError,this.$worker.onmessage=this.onMessage};(function(){r.implement(this,i),this.onError=function(e){throw window.console&&console.log&&console.log(e),e},this.onMessage=function(e){var t=e.data;switch(t.type){case"log":window.console&&console.log&&console.log.apply(console,t.data);break;case"event":this._emit(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id])}},this.$normalizePath=function(e){return location.host?(e=e.replace(/^[a-z]+:\/\/[^\/]+/,""),e=location.protocol+"//"+location.host+(e.charAt(0)=="/"?"":location.pathname.replace(/\/[^\/]*$/,""))+"/"+e.replace(/^[\/]+/,""),e):e},this.terminate=function(){this._emit("terminate",{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){e.range={start:e.data.range.start,end:e.data.range.end},this.emit("change",e)}}).call(o.prototype);var u=function(t,n,r){this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var s=null,o=Object.create(i),u=this;this.$worker={},this.$worker.postMessage=function(e){u.messageBuffer.push(e),s&&setTimeout(a)};var a=function(){var e=u.messageBuffer.shift();e.command?s[e.command].apply(s,e.args):e.event&&o._emit(e.event,e.data)};o.postMessage=function(e){u.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},e([n],function(e){s=new e[r](o);while(u.messageBuffer.length)a()})};u.prototype=o.prototype,t.UIWorkerClient=u,t.WorkerClient=o}),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session,i=this.$pos;this.pos=t.createAnchor(i.row,i.column),this.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(t){n.removeMarker(e.markerId),e.markerId=n.addMarker(new r(t.value.row,t.value.column,t.value.row,t.value.column+e.length),e.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1),n.on("change",function(i){e.removeMarker(n.markerId),n.markerId=e.addMarker(new r(i.value.row,i.value.column,i.value.row,i.value.column+t.length),t.othersClass,null,!1)})})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&n.start.column<=this.pos.column+this.length+1){var s=n.start.column-this.pos.column;this.length+=i;if(!this.session.$fromUndo){if(t.action==="insertText")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};u.row===n.start.row&&n.start.column=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var e=0;ef){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=this.getFoldWidget(e,u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}); + (function() { + window.require(["ace/ace"], function(a) { + a && a.config.init(); + if (!window.ace) + window.ace = {}; + for (var key in a) if (a.hasOwnProperty(key)) + ace[key] = a[key]; + }); + })(); + define("ace/mode/glsl",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/tokenizer","ace/mode/glsl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./c_cpp").Mode,s=e("../tokenizer").Tokenizer,o=e("./glsl_highlight_rules").glslHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),t.Mode=c}),define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./c_cpp_highlight_rules").c_cppHighlightRules,u=e("./matching_brace_outdent").MatchingBraceOutdent,a=e("../range").Range,f=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.$tokenizer=new s((new o).getRules()),this.$outdent=new u,this.$behaviour=new f,this.foldingRules=new l};r.inherits(c,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=/^(\s*)\/\//;for(var o=n;o<=r;o++)if(!s.test(t.getLine(o))){i=!1;break}if(i){var u=new a(0,0,0,0);for(var o=n;o<=r;o++){var f=t.getLine(o),l=f.match(s);u.start.row=o,u.end.row=o,u.end.column=l[0].length,t.replace(u,l[1])}}else t.indentRows(n,r,"//")},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.$tokenizer.getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"){var u=t.match(/^.*[\{\(\[]\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)}}.call(c.prototype),t.Mode=c}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o=t.cFunctions="\\s*\\bhypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len)))\\b",u=function(){var e="break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while|catch|operator|try|throw|using",t="asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|class|wchar_t|template",n="const|extern|register|restrict|static|volatile|inline|private:|protected:|public:|friend|explicit|virtual|export|mutable|typename",r="and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eqconst_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace",s="NULL|true|false|TRUE|FALSE",u=this.$keywords=this.createKeywordMapper({"keyword.control":e,"storage.type":t,"storage.modifier":n,"keyword.operator":r,"variable.language":"this","constant.language":s},"identifier"),a="[a-zA-Z\\$_¡-￿][a-zA-Zd\\$_¡-￿]*\\b";this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},i.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"keyword",regex:"(?:#include|#import|#pragma|#line|#define|#undef|#if|#ifdef|#else|#elif|#ifndef)\\b",next:"directive"},{token:"keyword",regex:"(?:#endif)\\b"},{token:"support.function.C99.c",regex:o},{token:u,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",regex:".+"}],directive:[{token:"constant.other.multiline",regex:/\\/},{token:"constant.other.multiline",regex:/.*\\/},{token:"constant.other",regex:"\\s*<.+?>",next:"start"},{token:"constant.other",regex:'\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]',next:"start"},{token:"constant.other",regex:"\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']",next:"start"},{token:"constant.other",regex:/[^\\\/]+/,next:"start"}]},this.embedRules(i,"doc-",[i.getEndRule("start")])};r.inherits(u,s),t.c_cppHighlightRules=u}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc.tag",regex:"\\bTODO\\b"},{defaultToken:"comment.doc"}]}};r.inherits(s,i),s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){var t=e.match(/^(\s+)/);return t?t[1]:""}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f=0,l=-1,c="",h=0,p=-1,d="",v="",m=function(){m.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,c[0])||(f=0),l=r.row,c=n+i.substr(r.column),f++},m.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(h=0),p=r.row,d=i.substr(0,r.column)+n,v=i.substr(r.column),h++},m.isAutoInsertedClosing=function(e,t,n){return f>0&&e.row===l&&n===c[0]&&t.substr(e.column)===c},m.isMaybeInsertedClosing=function(e,t){return h>0&&e.row===p&&t.substr(e.column)===v&&t.substr(0,e.column)==d},m.popAutoInsertedClosing=function(){c=c.substr(1),f--},m.clearMaybeInsertedClosing=function(){h=0,p=-1},this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){var a=n.getSelectionRange(),f=r.doc.getTextRange(a);if(f!==""&&f!=="{"&&n.getWrapBehavioursEnabled())return{text:"{"+f+"}",selection:!1};if(m.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])?(m.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){var l=u.substring(s.column,s.column+1);if(l=="}"){var c=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(c!==null&&m.isAutoInsertedClosing(s,u,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(i=="\n"||i=="\r\n"){var p="";m.isMaybeInsertedClosing(s,u)&&(p=o.stringRepeat("}",h),m.clearMaybeInsertedClosing());var l=u.substring(s.column,s.column+1);if(l=="}"||p!==""){var d=r.findMatchingBracket({row:s.row,column:s.column},"}");if(!d)return null;var v=this.getNextLineIndent(e,u.substring(0,s.column),r.getTabString()),g=this.$getIndent(u);return{text:"\n"+v+"\n"+g+p,selection:[1,v.length,1,v.length]}}}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;h--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"("+o+")",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return{text:"["+o+"]",selection:!1};if(m.isSaneInsertion(n,r))return m.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&m.isAutoInsertedClosing(u,a,i))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return{text:s+u+s,selection:!1};var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column);if(l=="\\")return null;var c=r.getTokens(o.start.row),h=0,p,d=-1;for(var v=0;vo.start.column)break;h+=c[v].value.length}if(!p||d<0&&p.type!=="comment"&&(p.type!=="string"||o.start.column!==p.value.length+h-1&&p.value.lastIndexOf(s)===p.value.length-1)){if(!m.isSaneInsertion(n,r))return;return{text:s+s,selection:[1,1]}}if(p&&p.type==="string"){var g=f.substring(a.column,a.column+1);if(g==s)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};r.inherits(m,i),t.CstyleBehaviour=m}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(e,t,n){var r=e.getLine(n),i=r.match(this.foldingStartMarker);if(i){var s=i.index;return i[1]?this.openingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s+i[0].length,1)}if(t!=="markbeginend")return;var i=r.match(this.foldingStopMarker);if(i){var s=i.index+i[0].length;return i[1]?this.closingBracketBlock(e,i[1],n,s):e.getCommentFoldRange(n,s,-1)}}}.call(o.prototype)}),define("ace/mode/glsl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/c_cpp_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./c_cpp_highlight_rules").c_cppHighlightRules,s=function(){var e="attribute|const|uniform|varying|break|continue|do|for|while|if|else|in|out|inout|float|int|void|bool|true|false|lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|samplerCube|struct",t="radians|degrees|sin|cos|tan|asin|acos|atan|pow|exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|normalize|faceforward|reflect|refract|matrixCompMult|lessThan|lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|texture2DProjLod|textureCube|textureCubeLod|gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|gl_DepthRangeParameters|gl_DepthRange|gl_Position|gl_PointSize|gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData",n=this.createKeywordMapper({"variable.language":"this",keyword:e,"constant.language":t},"identifier");this.$rules=(new i).$rules,this.$rules.start.forEach(function(e){typeof e.token=="function"&&(e.token=n)})};r.inherits(s,i),t.glslHighlightRules=s});// three.js - http://github.com/mrdoob/three.js +'use strict';var THREE=THREE||{REVISION:"56"};self.console=self.console||{info:function(){},log:function(){},debug:function(){},warn:function(){},error:function(){}};self.Int32Array=self.Int32Array||Array;self.Float32Array=self.Float32Array||Array;String.prototype.trim=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")}; +THREE.extend=function(a,b){if(Object.keys)for(var c=Object.keys(b),d=0,e=c.length;d>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSV:function(a,b,c){console.log("DEPRECATED: Color's .setHSV() will be removed. Use .setHSL( h, s, l ) instead.");return this.setHSL(a,b*c/(1>(a=(2-b)*c)?a:2-a),a/2)},setHSL:function(a, +b,c){if(0===b)this.r=this.g=this.b=c;else{var d=function(a,b,c){0>c&&(c+=1);1c?b:c<2/3?a+6*(b-a)*(2/3-c):a},b=0.5>=c?c*(1+b):c+b-c*b,c=2*c-b;this.r=d(c,b,a+1/3);this.g=d(c,b,a);this.b=d(c,b,a-1/3)}return this},setStyle:function(a){if(/^rgb\((\d+),(\d+),(\d+)\)$/i.test(a))return a=/^rgb\((\d+),(\d+),(\d+)\)$/i.exec(a),this.r=Math.min(255,parseInt(a[1],10))/255,this.g=Math.min(255,parseInt(a[2],10))/255,this.b=Math.min(255,parseInt(a[3],10))/255,this;if(/^rgb\((\d+)\%,(\d+)\%,(\d+)\%\)$/i.test(a))return a= +/^rgb\((\d+)\%,(\d+)\%,(\d+)\%\)$/i.exec(a),this.r=Math.min(100,parseInt(a[1],10))/100,this.g=Math.min(100,parseInt(a[2],10))/100,this.b=Math.min(100,parseInt(a[3],10))/100,this;if(/^\#([0-9a-f]{6})$/i.test(a))return a=/^\#([0-9a-f]{6})$/i.exec(a),this.setHex(parseInt(a[1],16)),this;if(/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(a))return a=/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(a),this.setHex(parseInt(a[1]+a[1]+a[2]+a[2]+a[3]+a[3],16)),this;if(/^(\w+)$/i.test(a))return this.setHex(THREE.ColorKeywords[a]), +this},copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a){this.r=a.r*a.r;this.g=a.g*a.g;this.b=a.b*a.b;return this},copyLinearToGamma:function(a){this.r=Math.sqrt(a.r);this.g=Math.sqrt(a.g);this.b=Math.sqrt(a.b);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);this.b=Math.sqrt(this.b);return this},getHex:function(){return 255* +this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(){var a={h:0,s:0,l:0};return function(){var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,h=(f+e)/2;if(f===e)f=g=0;else{var i=e-f,f=0.5>=h?i/(e+f):i/(2-e-f);switch(e){case b:g=(c-d)/i+(cf&&c>b?(c=2*Math.sqrt(1+c-f-b),this.w=(i-g)/c,this.x=0.25*c,this.y=(a+e)/c,this.z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this.w=(d-h)/c,this.x=(a+e)/c,this.y=0.25*c,this.z=(g+i)/c):(c=2*Math.sqrt(1+b-c-f),this.w=(e-a)/c,this.x=(d+h)/c,this.y=(g+i)/c,this.z=0.25*c);return this},inverse:function(){this.conjugate().normalize(); +return this},conjugate:function(){this.x*=-1;this.y*=-1;this.z*=-1;return this},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},normalize:function(){var a=this.length();0===a?(this.z=this.y=this.x=0,this.w=1):(a=1/a,this.x*=a,this.y*=a,this.z*=a,this.w*=a);return this},multiply:function(a,b){return void 0!==b?(console.warn("DEPRECATED: Quaternion's .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."), +this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},multiplyQuaternions:function(a,b){var c=a.x,d=a.y,e=a.z,f=a.w,g=b.x,h=b.y,i=b.z,k=b.w;this.x=c*k+f*g+d*i-e*h;this.y=d*k+f*h+e*g-c*i;this.z=e*k+f*i+c*h-d*g;this.w=f*k-c*g-d*h-e*i;return this},multiplyVector3:function(a){console.warn("DEPRECATED: Quaternion's .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return a.applyQuaternion(this)},slerp:function(a,b){var c=this.x,d=this.y,e=this.z, +f=this.w,g=f*a.w+c*a.x+d*a.y+e*a.z;0>g?(this.w=-a.w,this.x=-a.x,this.y=-a.y,this.z=-a.z,g=-g):this.copy(a);if(1<=g)return this.w=f,this.x=c,this.y=d,this.z=e,this;var h=Math.acos(g),i=Math.sqrt(1-g*g);if(0.001>Math.abs(i))return this.w=0.5*(f+this.w),this.x=0.5*(c+this.x),this.y=0.5*(d+this.y),this.z=0.5*(e+this.z),this;g=Math.sin((1-b)*h)/i;h=Math.sin(b*h)/i;this.w=f*g+this.w*h;this.x=c*g+this.x*h;this.y=d*g+this.y*h;this.z=e*g+this.z*h;return this},equals:function(a){return a.x===this.x&&a.y=== +this.y&&a.z===this.z&&a.w===this.w},clone:function(){return new THREE.Quaternion(this.x,this.y,this.z,this.w)}});THREE.Quaternion.slerp=function(a,b,c,d){return c.copy(a).slerp(b,d)};THREE.Vector2=function(a,b){this.x=a||0;this.y=b||0}; +THREE.extend(THREE.Vector2.prototype,{set:function(a,b){this.x=a;this.y=b;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,b){if(void 0!== +b)return console.warn("DEPRECATED: Vector2's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this},sub:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector2's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this}, +subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divideScalar:function(a){0!==a?(this.x/=a,this.y/=a):this.set(0,0);return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);return this},max:function(a){this.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);return this},negate:function(){return this.multiplyScalar(-1)}, +dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,a=this.y-a.y;return b*b+a*a},setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)* +b;this.y+=(a.y-this.y)*b;return this},equals:function(a){return a.x===this.x&&a.y===this.y},toArray:function(){return[this.x,this.y]},clone:function(){return new THREE.Vector2(this.x,this.y)}});THREE.Vector3=function(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0}; +THREE.extend(THREE.Vector3.prototype,{set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+ +a);}},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},sub:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), +this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},multiply:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},multiplyVectors:function(a,b){this.x=a.x* +b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z,a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12];this.y=a[1]*b+a[5]*c+a[9]*d+a[13];this.z=a[2]*b+a[6]*c+a[10]*d+a[14];return this},applyProjection:function(a){var b=this.x,c=this.y,d=this.z,a=a.elements,e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]); +this.x=(a[0]*b+a[4]*c+a[8]*d+a[12])*e;this.y=(a[1]*b+a[5]*c+a[9]*d+a[13])*e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])*e;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z,a=a.w,h=a*b+f*d-g*c,i=a*c+g*b-e*d,k=a*d+e*c-f*b,b=-e*b-f*c-g*d;this.x=h*a+b*-e+i*-g-k*-f;this.y=i*a+b*-f+k*-e-h*-g;this.z=k*a+b*-g+h*-f-i*-e;return this},applyEuler:function(){var a=new THREE.Quaternion;return function(b,c){var d=a.setFromEuler(b,c);this.applyQuaternion(d);return this}}(),applyAxisAngle:function(){var a= +new THREE.Quaternion;return function(b,c){var d=a.setFromAxisAngle(b,c);this.applyQuaternion(d);return this}}(),transformDirection:function(a){var b=this.x,c=this.y,d=this.z,a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;this.normalize();return this},divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){0!==a?(this.x/=a,this.y/=a,this.z/=a):this.z=this.y=this.x=0;return this},min:function(a){this.x>a.x&&(this.x= +a.x);this.y>a.y&&(this.y=a.y);this.z>a.z&&(this.z=a.z);return this},max:function(a){this.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);this.zb.z&&(this.z=b.z);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y* +this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},cross:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector3's .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."), +this.crossVectors(a,b);var c=this.x,d=this.y,e=this.z;this.x=d*a.z-e*a.y;this.y=e*a.x-c*a.z;this.z=c*a.y-d*a.x;return this},crossVectors:function(a,b){this.x=a.y*b.z-a.z*b.y;this.y=a.z*b.x-a.x*b.z;this.z=a.x*b.y-a.y*b.x;return this},projectOnVector:function(){var a=new THREE.Vector3;return function(b){a.copy(b).normalize();b=this.dot(a);return this.copy(a).multiplyScalar(b)}}(),projectOnPlane:function(){var a=new THREE.Vector3;return function(b){a.copy(this).projectOnVector(b);return this.sub(a)}}(), +reflect:function(){var a=new THREE.Vector3;return function(b){a.copy(this).projectOnVector(b).multiplyScalar(2);return this.subVectors(a,this)}}(),angleTo:function(a){a=this.dot(a)/(this.length()*a.length());return Math.acos(THREE.Math.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y,a=this.z-a.z;return b*b+c*c+a*a},getPositionFromMatrix:function(a){this.x=a.elements[12];this.y=a.elements[13];this.z=a.elements[14]; +return this},setEulerFromRotationMatrix:function(a,b){function c(a){return Math.min(Math.max(a,-1),1)}var d=a.elements,e=d[0],f=d[4],g=d[8],h=d[1],i=d[5],k=d[9],l=d[2],m=d[6],d=d[10];void 0===b||"XYZ"===b?(this.y=Math.asin(c(g)),0.99999>Math.abs(g)?(this.x=Math.atan2(-k,d),this.z=Math.atan2(-f,e)):(this.x=Math.atan2(m,i),this.z=0)):"YXZ"===b?(this.x=Math.asin(-c(k)),0.99999>Math.abs(k)?(this.y=Math.atan2(g,d),this.z=Math.atan2(h,i)):(this.y=Math.atan2(-l,e),this.z=0)):"ZXY"===b?(this.x=Math.asin(c(m)), +0.99999>Math.abs(m)?(this.y=Math.atan2(-l,d),this.z=Math.atan2(-f,i)):(this.y=0,this.z=Math.atan2(h,e))):"ZYX"===b?(this.y=Math.asin(-c(l)),0.99999>Math.abs(l)?(this.x=Math.atan2(m,d),this.z=Math.atan2(h,e)):(this.x=0,this.z=Math.atan2(-f,i))):"YZX"===b?(this.z=Math.asin(c(h)),0.99999>Math.abs(h)?(this.x=Math.atan2(-k,i),this.y=Math.atan2(-l,e)):(this.x=0,this.y=Math.atan2(g,d))):"XZY"===b&&(this.z=Math.asin(-c(f)),0.99999>Math.abs(f)?(this.x=Math.atan2(m,i),this.y=Math.atan2(g,e)):(this.x=Math.atan2(-k, +d),this.y=0));return this},setEulerFromQuaternion:function(a,b){function c(a){return Math.min(Math.max(a,-1),1)}var d=a.x*a.x,e=a.y*a.y,f=a.z*a.z,g=a.w*a.w;void 0===b||"XYZ"===b?(this.x=Math.atan2(2*(a.x*a.w-a.y*a.z),g-d-e+f),this.y=Math.asin(c(2*(a.x*a.z+a.y*a.w))),this.z=Math.atan2(2*(a.z*a.w-a.x*a.y),g+d-e-f)):"YXZ"===b?(this.x=Math.asin(c(2*(a.x*a.w-a.y*a.z))),this.y=Math.atan2(2*(a.x*a.z+a.y*a.w),g-d-e+f),this.z=Math.atan2(2*(a.x*a.y+a.z*a.w),g-d+e-f)):"ZXY"===b?(this.x=Math.asin(c(2*(a.x*a.w+ +a.y*a.z))),this.y=Math.atan2(2*(a.y*a.w-a.z*a.x),g-d-e+f),this.z=Math.atan2(2*(a.z*a.w-a.x*a.y),g-d+e-f)):"ZYX"===b?(this.x=Math.atan2(2*(a.x*a.w+a.z*a.y),g-d-e+f),this.y=Math.asin(c(2*(a.y*a.w-a.x*a.z))),this.z=Math.atan2(2*(a.x*a.y+a.z*a.w),g+d-e-f)):"YZX"===b?(this.x=Math.atan2(2*(a.x*a.w-a.z*a.y),g-d+e-f),this.y=Math.atan2(2*(a.y*a.w-a.x*a.z),g+d-e-f),this.z=Math.asin(c(2*(a.x*a.y+a.z*a.w)))):"XZY"===b&&(this.x=Math.atan2(2*(a.x*a.w+a.y*a.z),g-d+e-f),this.y=Math.atan2(2*(a.x*a.z+a.y*a.w),g+d- +e-f),this.z=Math.asin(c(2*(a.z*a.w-a.x*a.y))));return this},getScaleFromMatrix:function(a){var b=this.set(a.elements[0],a.elements[1],a.elements[2]).length(),c=this.set(a.elements[4],a.elements[5],a.elements[6]).length(),a=this.set(a.elements[8],a.elements[9],a.elements[10]).length();this.x=b;this.y=c;this.z=a;return this},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},toArray:function(){return[this.x,this.y,this.z]},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)}});THREE.Vector4=function(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}; +THREE.extend(THREE.Vector4.prototype,{set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y; +case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector4's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a, +b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},sub:function(a,b){if(void 0!==b)return console.warn("DEPRECATED: Vector4's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b= +this.x,c=this.y,d=this.z,e=this.w,a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){0!==a?(this.x/=a,this.y/=a,this.z/=a,this.w/=a):(this.z=this.y=this.x=0,this.w=1);return this},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/b);return this}, +setAxisAngleFromRotationMatrix:function(a){var b,c,d,a=a.elements,e=a[0];d=a[4];var f=a[8],g=a[1],h=a[5],i=a[9];c=a[2];b=a[6];var k=a[10];if(0.01>Math.abs(d-g)&&0.01>Math.abs(f-c)&&0.01>Math.abs(i-b)){if(0.1>Math.abs(d+g)&&0.1>Math.abs(f+c)&&0.1>Math.abs(i+b)&&0.1>Math.abs(e+h+k-3))return this.set(1,0,0,0),this;a=Math.PI;e=(e+1)/2;h=(h+1)/2;k=(k+1)/2;d=(d+g)/4;f=(f+c)/4;i=(i+b)/4;e>h&&e>k?0.01>e?(b=0,d=c=0.707106781):(b=Math.sqrt(e),c=d/b,d=f/b):h>k?0.01>h?(b=0.707106781,c=0,d=0.707106781):(c=Math.sqrt(h), +b=d/c,d=i/c):0.01>k?(c=b=0.707106781,d=0):(d=Math.sqrt(k),b=f/d,c=i/d);this.set(b,c,d,a);return this}a=Math.sqrt((b-i)*(b-i)+(f-c)*(f-c)+(g-d)*(g-d));0.001>Math.abs(a)&&(a=1);this.x=(b-i)/a;this.y=(f-c)/a;this.z=(g-d)/a;this.w=Math.acos((e+h+k-1)/2);return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);this.z>a.z&&(this.z=a.z);this.w>a.w&&(this.w=a.w);return this},max:function(a){this.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);this.zb.z&&(this.z=b.z);this.wb.w&&(this.w=b.w);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+ +this.z*this.z+this.w*this.w)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length())},setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},toArray:function(){return[this.x, +this.y,this.z,this.w]},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)}});THREE.Line3=function(a,b){this.start=void 0!==a?a:new THREE.Vector3;this.end=void 0!==b?b:new THREE.Vector3}; +THREE.extend(THREE.Line3.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);return this},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},center:function(a){return(a||new THREE.Vector3).addVectors(this.start,this.end).multiplyScalar(0.5)},delta:function(a){return(a||new THREE.Vector3).subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(a, +b){var c=b||new THREE.Vector3;return this.delta(c).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c,d){a.subVectors(c,this.start);b.subVectors(this.end,this.start);var e=b.dot(b),e=b.dot(a)/e;d&&(e=THREE.Math.clamp(e,0,1));return e}}(),closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);c=c||new THREE.Vector3;return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a); +this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)},clone:function(){return(new THREE.Line3).copy(this)}});THREE.Box2=function(a,b){this.min=void 0!==a?a:new THREE.Vector2(Infinity,Infinity);this.max=void 0!==b?b:new THREE.Vector2(-Infinity,-Infinity)}; +THREE.extend(THREE.Box2.prototype,{set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){if(0this.max.x&&(this.max.x=b.x),b.ythis.max.y&&(this.max.y=b.y)}else this.makeEmpty();return this},setFromCenterAndSize:function(){var a=new THREE.Vector2;return function(b,c){var d=a.copy(c).multiplyScalar(0.5);this.min.copy(b).sub(d); +this.max.copy(b).add(d);return this}}(),copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this},empty:function(){return this.max.xthis.max.x||a.ythis.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y?!0:!1},getParameter:function(a){return new THREE.Vector2((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/ +(this.max.y-this.min.y))},isIntersectionBox:function(a){return a.max.xthis.max.x||a.max.ythis.max.y?!1:!0},clampPoint:function(a,b){return(b||new THREE.Vector2).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new THREE.Vector2;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max); +return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)},clone:function(){return(new THREE.Box2).copy(this)}});THREE.Box3=function(a,b){this.min=void 0!==a?a:new THREE.Vector3(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new THREE.Vector3(-Infinity,-Infinity,-Infinity)}; +THREE.extend(THREE.Box3.prototype,{set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){if(0this.max.x&&(this.max.x=b.x),b.ythis.max.y&&(this.max.y=b.y),b.zthis.max.z&&(this.max.z=b.z)}else this.makeEmpty();return this},setFromCenterAndSize:function(){var a=new THREE.Vector3; +return function(b,c){var d=a.copy(c).multiplyScalar(0.5);this.min.copy(b).sub(d);this.max.copy(b).add(d);return this}}(),copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this},empty:function(){return this.max.xthis.max.x||a.ythis.max.y||a.zthis.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<= +this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z?!0:!1},getParameter:function(a){return new THREE.Vector3((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},isIntersectionBox:function(a){return a.max.xthis.max.x||a.max.ythis.max.y||a.max.zthis.max.z?!1:!0},clampPoint:function(a,b){return(b||new THREE.Vector3).copy(a).clamp(this.min, +this.max)},distanceToPoint:function(){var a=new THREE.Vector3;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),getBoundingSphere:function(){var a=new THREE.Vector3;return function(b){b=b||new THREE.Sphere;b.center=this.center();b.radius=0.5*this.size(a).length();return b}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(){var a=[new THREE.Vector3, +new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];return function(b){a[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(b);a[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(b);a[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(b);a[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(b);a[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(b);a[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(b);a[6].set(this.max.x, +this.max.y,this.min.z).applyMatrix4(b);a[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(b);this.makeEmpty();this.setFromPoints(a);return this}}(),translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)},clone:function(){return(new THREE.Box3).copy(this)}});THREE.Matrix3=function(a,b,c,d,e,f,g,h,i){this.elements=new Float32Array(9);this.set(void 0!==a?a:1,b||0,c||0,d||0,void 0!==e?e:1,f||0,g||0,h||0,void 0!==i?i:1)}; +THREE.extend(THREE.Matrix3.prototype,{set:function(a,b,c,d,e,f,g,h,i){var k=this.elements;k[0]=a;k[3]=b;k[6]=c;k[1]=d;k[4]=e;k[7]=f;k[2]=g;k[5]=h;k[8]=i;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},copy:function(a){a=a.elements;this.set(a[0],a[3],a[6],a[1],a[4],a[7],a[2],a[5],a[8]);return this},multiplyVector3:function(a){console.warn("DEPRECATED: Matrix3's .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},multiplyVector3Array:function(){var a= +new THREE.Vector3;return function(b){for(var c=0,d=b.length;c=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)- +this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},clampPoint:function(a,b){var c=this.center.distanceToSquared(a),d=b||new THREE.Vector3;d.copy(a);c>this.radius*this.radius&&(d.sub(this.center).normalize(),d.multiplyScalar(this.radius).add(this.center));return d},getBoundingBox:function(a){a=a||new THREE.Box3;a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a); +this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius},clone:function(){return(new THREE.Sphere).copy(this)}});THREE.Frustum=function(a,b,c,d,e,f){this.planes=[void 0!==a?a:new THREE.Plane,void 0!==b?b:new THREE.Plane,void 0!==c?c:new THREE.Plane,void 0!==d?d:new THREE.Plane,void 0!==e?e:new THREE.Plane,void 0!==f?f:new THREE.Plane]}; +THREE.extend(THREE.Frustum.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,c=a.elements,a=c[0],d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],i=c[6],k=c[7],l=c[8],m=c[9],n=c[10],s=c[11],r=c[12],p=c[13],q=c[14],c=c[15];b[0].setComponents(f-a,k-g,s-l,c-r).normalize();b[1].setComponents(f+ +a,k+g,s+l,c+r).normalize();b[2].setComponents(f+d,k+h,s+m,c+p).normalize();b[3].setComponents(f-d,k-h,s-m,c-p).normalize();b[4].setComponents(f-e,k-i,s-n,c-q).normalize();b[5].setComponents(f+e,k+i,s+n,c+q).normalize();return this},intersectsObject:function(){var a=new THREE.Vector3;return function(b){var c=b.matrixWorld,d=this.planes,b=-b.geometry.boundingSphere.radius*c.getMaxScaleOnAxis();a.getPositionFromMatrix(c);for(c=0;6>c;c++)if(d[c].distanceToPoint(a)d;d++)if(b[d].distanceToPoint(c)c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0},clone:function(){return(new THREE.Frustum).copy(this)}});THREE.Plane=function(a,b){this.normal=void 0!==a?a:new THREE.Vector3(1,0,0);this.constant=void 0!==b?b:0}; +THREE.extend(THREE.Plane.prototype,{set:function(a,b){this.normal.copy(a);this.constant=b;return this},setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(), +copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){return this.orthoPoint(a,b).sub(a).negate()},orthoPoint:function(a, +b){var c=this.distanceToPoint(a);return(b||new THREE.Vector3).copy(this.normal).multiplyScalar(c)},isIntersectionLine:function(a){var b=this.distanceToPoint(a.start),a=this.distanceToPoint(a.end);return 0>b&&0a&&0f||1c?c:a},clampBottom:function(a,b){return a=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},random16:function(){return(65280*Math.random()+255*Math.random())/65535},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a, +b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(0.5-Math.random())},sign:function(a){return 0>a?-1:0this.points.length-2?this.points.length-1:f+1;c[3]=f>this.points.length-3?this.points.length-1: +f+2;k=this.points[c[0]];l=this.points[c[1]];m=this.points[c[2]];n=this.points[c[3]];h=g*g;i=g*h;d.x=b(k.x,l.x,m.x,n.x,g,h,i);d.y=b(k.y,l.y,m.y,n.y,g,h,i);d.z=b(k.z,l.z,m.z,n.z,g,h,i);return d};this.getControlPointsArray=function(){var a,b,c=this.points.length,d=[];for(a=0;a=b.x+b.y}}(); +THREE.extend(THREE.Triangle.prototype,{constructor:THREE.Triangle,set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},area:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(){a.subVectors(this.c,this.b);b.subVectors(this.a,this.b);return 0.5*a.cross(b).length()}}(), +midpoint:function(a){return(a||new THREE.Vector3).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(a){return THREE.Triangle.normal(this.a,this.b,this.c,a)},plane:function(a){return(a||new THREE.Plane).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(a,b){return THREE.Triangle.barycoordFromPoint(a,this.a,this.b,this.c,b)},containsPoint:function(a){return THREE.Triangle.containsPoint(a,this.a,this.b,this.c)},equals:function(a){return a.a.equals(this.a)&& +a.b.equals(this.b)&&a.c.equals(this.c)},clone:function(){return(new THREE.Triangle).copy(this)}});THREE.Vertex=function(a){console.warn("THREE.Vertex has been DEPRECATED. Use THREE.Vector3 instead.");return a};THREE.UV=function(a,b){console.warn("THREE.UV has been DEPRECATED. Use THREE.Vector2 instead.");return new THREE.Vector2(a,b)};THREE.Clock=function(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}; +THREE.extend(THREE.Clock.prototype,{start:function(){this.oldTime=this.startTime=void 0!==window.performance&&void 0!==window.performance.now?window.performance.now():Date.now();this.running=!0},stop:function(){this.getElapsedTime();this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;this.autoStart&&!this.running&&this.start();if(this.running){var b=void 0!==window.performance&&void 0!==window.performance.now?window.performance.now():Date.now(), +a=0.001*(b-this.oldTime);this.oldTime=b;this.elapsedTime+=a}return a}});THREE.EventDispatcher=function(){var a={};this.addEventListener=function(b,c){void 0===a[b]&&(a[b]=[]);-1===a[b].indexOf(c)&&a[b].push(c)};this.removeEventListener=function(b,c){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)};this.dispatchEvent=function(b){var c=a[b.type];if(void 0!==c){b.target=this;for(var d=0,e=c.length;dh.scale.x)return k;k.push({distance:i,point:h.position,face:null,object:h})}else if(h instanceof +a.Mesh){f.getPositionFromMatrix(h.matrixWorld);b.set(f,h.geometry.boundingSphere.radius*h.matrixWorld.getMaxScaleOnAxis());if(!i.ray.isIntersectionSphere(b))return k;var s=h.geometry,r=s.vertices,p=h.material instanceof a.MeshFaceMaterial,q=!0===p?h.material.materials:null,y=h.material.side,v,z,t,A=i.precision;h.matrixRotationWorld.extractRotation(h.matrixWorld);g.getInverse(h.matrixWorld);c.copy(i.ray).applyMatrix4(g);for(var I=0,C=s.faces.length;IG)){y=y.side;if(y!==a.DoubleSide&&(v=c.direction.dot(d.normal),!(y===a.FrontSide?0>v:0i.far)){e=c.at(G,e);if(x instanceof a.Face3){if(y=r[x.a],v=r[x.b],z=r[x.c],!a.Triangle.containsPoint(e,y,v,z))continue}else if(x instanceof a.Face4){if(y=r[x.a],v=r[x.b],z=r[x.c],t=r[x.d],!a.Triangle.containsPoint(e,y,v,t)&&!a.Triangle.containsPoint(e,v,z,t))continue}else throw Error("face type not supported"); +k.push({distance:G,point:i.ray.at(G),face:x,faceIndex:I,object:h})}}}}}},k=function(a,b,c){for(var a=a.getDescendants(),d=0,e=a.length;de&&0>f||0>g&&0>h)return!1;0>e?c=Math.max(c,e/(e-f)):0>f&&(d=Math.min(d,e/(e-f)));0>g?c=Math.max(c,g/(g-h)):0>h&&(d=Math.min(d,g/(g-h)));if(d< +c)return!1;a.lerp(b,c);b.lerp(a,1-d);return!0}var e,f,g=[],h=0,i,k,l=[],m=0,n,s,r=[],p=0,q,y=[],v=0,z,t,A=[],I=0,C,x,G=[],J=0,E={objects:[],sprites:[],lights:[],elements:[]},H=new THREE.Vector3,B=new THREE.Vector4,W=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),F=new THREE.Box3,K=Array(3),L=Array(4),U=new THREE.Matrix4,fa=new THREE.Matrix4,Ca,$a=new THREE.Matrix4,M=new THREE.Matrix3,ca=new THREE.Matrix3,qa=new THREE.Vector3,ha=new THREE.Frustum,ra=new THREE.Vector4,N=new THREE.Vector4; +this.projectVector=function(a,b){b.matrixWorldInverse.getInverse(b.matrixWorld);fa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);return a.applyProjection(fa)};this.unprojectVector=function(a,b){b.projectionMatrixInverse.getInverse(b.projectionMatrix);fa.multiplyMatrices(b.matrixWorld,b.projectionMatrixInverse);return a.applyProjection(fa)};this.pickingRay=function(a,b){a.z=-1;var c=new THREE.Vector3(a.x,a.y,1);this.unprojectVector(a,b);this.unprojectVector(c,b);c.sub(a).normalize();return new THREE.Raycaster(a, +c)};this.projectScene=function(g,h,m,Pa){var ta=!1,ka,aa,pa,Y,da,la,Z,oa,gb,nb,ia,Wa,ab;x=t=q=s=0;E.elements.length=0;g.updateMatrixWorld();void 0===h.parent&&h.updateMatrixWorld();U.copy(h.matrixWorldInverse.getInverse(h.matrixWorld));fa.multiplyMatrices(h.projectionMatrix,U);ca.getInverse(U);ca.transpose();ha.setFromMatrix(fa);f=0;E.objects.length=0;E.sprites.length=0;E.lights.length=0;var Fa=function(b){for(var c=0,d=b.children.length;ci.positionScreen.x||1i.positionScreen.y||1i.positionScreen.z||1(Z.positionScreen.x-Y.positionScreen.x)*(da.positionScreen.y-Y.positionScreen.y)-(Z.positionScreen.y-Y.positionScreen.y)*(da.positionScreen.x-Y.positionScreen.x),la===THREE.DoubleSide||ta===(la===THREE.FrontSide))s===p?(ia=new THREE.RenderableFace3,r.push(ia),p++,s++,n=ia):n=r[s++],n.v1.copy(Y),n.v2.copy(da),n.v3.copy(Z);else continue; +else continue;else if(aa instanceof THREE.Face4)if(Y=l[aa.a],da=l[aa.b],Z=l[aa.c],ia=l[aa.d],L[0]=Y.positionScreen,L[1]=da.positionScreen,L[2]=Z.positionScreen,L[3]=ia.positionScreen,!0===Y.visible||!0===da.visible||!0===Z.visible||!0===ia.visible||W.isIntersectionBox(F.setFromPoints(L)))if(ta=0>(ia.positionScreen.x-Y.positionScreen.x)*(da.positionScreen.y-Y.positionScreen.y)-(ia.positionScreen.y-Y.positionScreen.y)*(da.positionScreen.x-Y.positionScreen.x)||0>(da.positionScreen.x-Z.positionScreen.x)* +(ia.positionScreen.y-Z.positionScreen.y)-(da.positionScreen.y-Z.positionScreen.y)*(ia.positionScreen.x-Z.positionScreen.x),la===THREE.DoubleSide||ta===(la===THREE.FrontSide)){if(q===v){var ub=new THREE.RenderableFace4;y.push(ub);v++;q++;n=ub}else n=y[q++];n.v1.copy(Y);n.v2.copy(da);n.v3.copy(Z);n.v4.copy(ia)}else continue;else continue;n.normalModel.copy(aa.normal);!1===ta&&(la===THREE.BackSide||la===THREE.DoubleSide)&&n.normalModel.negate();n.normalModel.applyMatrix3(M).normalize();n.normalModelView.copy(n.normalModel).applyMatrix3(ca); +n.centroidModel.copy(aa.centroid).applyMatrix4(Ca);Z=aa.vertexNormals;Y=0;for(da=Z.length;YB.z&&(x===J?(ta=new THREE.RenderableParticle,G.push(ta),J++,x++,C=ta):C=G[x++],C.object=oa,C.x=B.x/B.w,C.y=B.y/B.w,C.z=B.z,C.rotation=oa.rotation.z,C.scale.x=oa.scale.x*Math.abs(C.x-(B.x+h.projectionMatrix.elements[0])/ +(B.w+h.projectionMatrix.elements[12])),C.scale.y=oa.scale.y*Math.abs(C.y-(B.y+h.projectionMatrix.elements[5])/(B.w+h.projectionMatrix.elements[13])),C.material=oa.material,E.elements.push(C)));!0===Pa&&E.elements.sort(c);return E}};THREE.Face3=function(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.color=e instanceof THREE.Color?e:new THREE.Color;this.vertexColors=e instanceof Array?e:[];this.vertexTangents=[];this.materialIndex=void 0!==f?f:0;this.centroid=new THREE.Vector3}; +THREE.Face3.prototype={constructor:THREE.Face3,clone:function(){var a=new THREE.Face3(this.a,this.b,this.c);a.normal.copy(this.normal);a.color.copy(this.color);a.centroid.copy(this.centroid);a.materialIndex=this.materialIndex;var b,c;b=0;for(c=this.vertexNormals.length;be?-1:1,f.vertexTangents[d]=new THREE.Vector4(B.x,B.y,B.z,e)}this.hasTangents=!0},computeLineDistances:function(){for(var a=0,b=this.vertices,c=0,d=b.length;ci;i++)if(h[i]==h[(i+1)%3]){e.push(f);break}}else if(a instanceof THREE.Face4){a.a=c[a.a];a.b=c[a.b];a.c=c[a.c];a.d=c[a.d];h=[a.a,a.b,a.c,a.d];d=-1;for(i=0;4>i;i++)h[i]==h[(i+1)%4]&&(0<=d&&e.push(f),d=i);if(0<=d){h.splice(d,1);var l=new THREE.Face3(h[0],h[1],h[2],a.normal,a.color,a.materialIndex);h=0;for(i=this.faceVertexUvs.length;hb.max.x&&(b.max.x=c),db.max.y&&(b.max.y=d),eb.max.z&&(b.max.z=e)}if(void 0===a||0===a.length)this.boundingBox.min.set(0,0,0),this.boundingBox.max.set(0,0,0)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere= +new THREE.Sphere);var a=this.attributes.position.array;if(a){for(var b,c=0,d,e,f=0,g=a.length;fc&&(c=b);this.boundingSphere.radius=Math.sqrt(c)}},computeVertexNormals:function(){if(this.attributes.position){var a,b,c,d;a=this.attributes.position.array.length;if(void 0===this.attributes.normal)this.attributes.normal={itemSize:3,array:new Float32Array(a),numItems:a};else{a=0;for(b=this.attributes.normal.array.length;aqa?-1:1;h[4*a]=U.x;h[4*a+1]=U.y;h[4*a+2]=U.z;h[4*a+3]=M}if(void 0===this.attributes.index||void 0===this.attributes.position|| +void 0===this.attributes.normal||void 0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");else{var b=this.attributes.index.array,c=this.attributes.position.array,d=this.attributes.normal.array,e=this.attributes.uv.array,f=c.length/3;if(void 0===this.attributes.tangent){var g=4*f;this.attributes.tangent={itemSize:4,array:new Float32Array(g),numItems:g}}for(var h=this.attributes.tangent.array,i=[],k=[],g=0;ga.length?".":a.join("/"))+"/"},initMaterials:function(a,b){for(var c=[],d=0;da.opacity)i.transparent=a.transparent;void 0!==a.depthTest&&(i.depthTest=a.depthTest);void 0!==a.depthWrite&&(i.depthWrite=a.depthWrite);void 0!==a.visible&&(i.visible=a.visible);void 0!==a.flipSided&&(i.side=THREE.BackSide); +void 0!==a.doubleSided&&(i.side=THREE.DoubleSide);void 0!==a.wireframe&&(i.wireframe=a.wireframe);void 0!==a.vertexColors&&("face"===a.vertexColors?i.vertexColors=THREE.FaceColors:a.vertexColors&&(i.vertexColors=THREE.VertexColors));a.colorDiffuse?i.color=f(a.colorDiffuse):a.DbgColor&&(i.color=a.DbgColor);a.colorSpecular&&(i.specular=f(a.colorSpecular));a.colorAmbient&&(i.ambient=f(a.colorAmbient));a.transparency&&(i.opacity=a.transparency);a.specularCoef&&(i.shininess=a.specularCoef);a.mapDiffuse&& +b&&e(i,"map",a.mapDiffuse,a.mapDiffuseRepeat,a.mapDiffuseOffset,a.mapDiffuseWrap,a.mapDiffuseAnisotropy);a.mapLight&&b&&e(i,"lightMap",a.mapLight,a.mapLightRepeat,a.mapLightOffset,a.mapLightWrap,a.mapLightAnisotropy);a.mapBump&&b&&e(i,"bumpMap",a.mapBump,a.mapBumpRepeat,a.mapBumpOffset,a.mapBumpWrap,a.mapBumpAnisotropy);a.mapNormal&&b&&e(i,"normalMap",a.mapNormal,a.mapNormalRepeat,a.mapNormalOffset,a.mapNormalWrap,a.mapNormalAnisotropy);a.mapSpecular&&b&&e(i,"specularMap",a.mapSpecular,a.mapSpecularRepeat, +a.mapSpecularOffset,a.mapSpecularWrap,a.mapSpecularAnisotropy);a.mapBumpScale&&(i.bumpScale=a.mapBumpScale);a.mapNormal?(h=THREE.ShaderLib.normalmap,k=THREE.UniformsUtils.clone(h.uniforms),k.tNormal.value=i.normalMap,a.mapNormalFactor&&k.uNormalScale.value.set(a.mapNormalFactor,a.mapNormalFactor),i.map&&(k.tDiffuse.value=i.map,k.enableDiffuse.value=!0),i.specularMap&&(k.tSpecular.value=i.specularMap,k.enableSpecular.value=!0),i.lightMap&&(k.tAO.value=i.lightMap,k.enableAO.value=!0),k.uDiffuseColor.value.setHex(i.color), +k.uSpecularColor.value.setHex(i.specular),k.uAmbientColor.value.setHex(i.ambient),k.uShininess.value=i.shininess,void 0!==i.opacity&&(k.uOpacity.value=i.opacity),h=new THREE.ShaderMaterial({fragmentShader:h.fragmentShader,vertexShader:h.vertexShader,uniforms:k,lights:!0,fog:!0}),i.transparent&&(h.transparent=!0)):h=new THREE[h](i);void 0!==a.DbgName&&(h.name=a.DbgName);return h}};THREE.ImageLoader=function(){THREE.EventDispatcher.call(this);this.crossOrigin=null};THREE.ImageLoader.prototype={constructor:THREE.ImageLoader,load:function(a,b){var c=this;void 0===b&&(b=new Image);b.addEventListener("load",function(){c.dispatchEvent({type:"load",content:b})},!1);b.addEventListener("error",function(){c.dispatchEvent({type:"error",message:"Couldn't load URL ["+a+"]"})},!1);c.crossOrigin&&(b.crossOrigin=c.crossOrigin);b.src=a}};THREE.JSONLoader=function(a){THREE.Loader.call(this,a);this.withCredentials=!1};THREE.JSONLoader.prototype=Object.create(THREE.Loader.prototype);THREE.JSONLoader.prototype.load=function(a,b,c){c=c&&"string"===typeof c?c:this.extractUrlBase(a);this.onLoadStart();this.loadAjaxJSON(this,a,b,c)}; +THREE.JSONLoader.prototype.loadAjaxJSON=function(a,b,c,d,e){var f=new XMLHttpRequest,g=0;f.onreadystatechange=function(){if(f.readyState===f.DONE)if(200===f.status||0===f.status){if(f.responseText){var h=JSON.parse(f.responseText);a.createModel(h,c,d)}else console.warn("THREE.JSONLoader: ["+b+"] seems to be unreachable or file there is empty");a.onLoadComplete()}else console.error("THREE.JSONLoader: Couldn't load ["+b+"] ["+f.status+"]");else f.readyState===f.LOADING?e&&(0===g&&(g=f.getResponseHeader("Content-Length")), +e({total:g,loaded:f.responseText.length})):f.readyState===f.HEADERS_RECEIVED&&(g=f.getResponseHeader("Content-Length"))};f.open("GET",b,!0);f.withCredentials=this.withCredentials;f.send(null)}; +THREE.JSONLoader.prototype.createModel=function(a,b,c){var d=new THREE.Geometry,e=void 0!==a.scale?1/a.scale:1,f,g,h,i,k,l,m,n,s,r,p,q,y,v,z,t=a.faces;r=a.vertices;var A=a.normals,I=a.colors,C=0;for(f=0;fF.parameters.opacity&& +(F.parameters.transparent=!0);F.parameters.normalMap?(E=THREE.ShaderLib.normalmap,B=THREE.UniformsUtils.clone(E.uniforms),q=F.parameters.color,W=F.parameters.specular,p=F.parameters.ambient,H=F.parameters.shininess,B.tNormal.value=x.textures[F.parameters.normalMap],F.parameters.normalScale&&B.uNormalScale.value.set(F.parameters.normalScale[0],F.parameters.normalScale[1]),F.parameters.map&&(B.tDiffuse.value=F.parameters.map,B.enableDiffuse.value=!0),F.parameters.envMap&&(B.tCube.value=F.parameters.envMap, +B.enableReflection.value=!0,B.uReflectivity.value=F.parameters.reflectivity),F.parameters.lightMap&&(B.tAO.value=F.parameters.lightMap,B.enableAO.value=!0),F.parameters.specularMap&&(B.tSpecular.value=x.textures[F.parameters.specularMap],B.enableSpecular.value=!0),F.parameters.displacementMap&&(B.tDisplacement.value=x.textures[F.parameters.displacementMap],B.enableDisplacement.value=!0,B.uDisplacementBias.value=F.parameters.displacementBias,B.uDisplacementScale.value=F.parameters.displacementScale), +B.uDiffuseColor.value.setHex(q),B.uSpecularColor.value.setHex(W),B.uAmbientColor.value.setHex(p),B.uShininess.value=H,F.parameters.opacity&&(B.uOpacity.value=F.parameters.opacity),s=new THREE.ShaderMaterial({fragmentShader:E.fragmentShader,vertexShader:E.vertexShader,uniforms:B,lights:!0,fog:!0})):s=new THREE[F.type](F.parameters);x.materials[K]=s}for(K in J.materials)if(F=J.materials[K],F.parameters.materials){L=[];for(q=0;qh.end&&(h.end=e);b||(b=g)}}a.firstAnimation=b}; +THREE.MorphAnimMesh.prototype.setAnimationLabel=function(a,b,c){this.geometry.animations||(this.geometry.animations={});this.geometry.animations[a]={start:b,end:c}};THREE.MorphAnimMesh.prototype.playAnimation=function(a,b){var c=this.geometry.animations[a];c?(this.setFrameRange(c.start,c.end),this.duration=1E3*((c.end-c.start)/b),this.time=0):console.warn("animation["+a+"] undefined")}; +THREE.MorphAnimMesh.prototype.updateAnimation=function(a){var b=this.duration/this.length;this.time+=this.direction*a;if(this.mirroredLoop){if(this.time>this.duration||0>this.time)this.direction*=-1,this.time>this.duration&&(this.time=this.duration,this.directionBackwards=!0),0>this.time&&(this.time=0,this.directionBackwards=!1)}else this.time%=this.duration,0>this.time&&(this.time+=this.duration);a=this.startKeyframe+THREE.Math.clamp(Math.floor(this.time/b),0,this.length-1);a!==this.currentKeyframe&& +(this.morphTargetInfluences[this.lastKeyframe]=0,this.morphTargetInfluences[this.currentKeyframe]=1,this.morphTargetInfluences[a]=0,this.lastKeyframe=this.currentKeyframe,this.currentKeyframe=a);b=this.time%b/b;this.directionBackwards&&(b=1-b);this.morphTargetInfluences[this.currentKeyframe]=b;this.morphTargetInfluences[this.lastKeyframe]=1-b}; +THREE.MorphAnimMesh.prototype.clone=function(a){void 0===a&&(a=new THREE.MorphAnimMesh(this.geometry,this.material));a.duration=this.duration;a.mirroredLoop=this.mirroredLoop;a.time=this.time;a.lastKeyframe=this.lastKeyframe;a.currentKeyframe=this.currentKeyframe;a.direction=this.direction;a.directionBackwards=this.directionBackwards;THREE.Mesh.prototype.clone.call(this,a);return a};THREE.Ribbon=function(a,b){THREE.Object3D.call(this);this.geometry=a;this.material=b};THREE.Ribbon.prototype=Object.create(THREE.Object3D.prototype);THREE.Ribbon.prototype.clone=function(a){void 0===a&&(a=new THREE.Ribbon(this.geometry,this.material));THREE.Object3D.prototype.clone.call(this,a);return a};THREE.LOD=function(){THREE.Object3D.call(this);this.LODs=[]};THREE.LOD.prototype=Object.create(THREE.Object3D.prototype);THREE.LOD.prototype.addLevel=function(a,b){void 0===b&&(b=0);for(var b=Math.abs(b),c=0;c=this.LODs[b].visibleAtDistance)this.LODs[b-1].object3D.visible=!1,this.LODs[b].object3D.visible=!0;else break;for(;bI&&t.clearRect(Ka.min.x|0,Ka.min.y|0,Ka.max.x-Ka.min.x|0,Ka.max.y-Ka.min.y|0),0=j||(j*=f.intensity,c.add(gb.multiplyScalar(j)))}else f instanceof THREE.PointLight&&(g=bb.getPositionFromMatrix(f.matrixWorld),j=b.dot(bb.subVectors(g,a).normalize()),0>=j||(j*=0==f.distance?1:1-Math.min(a.distanceTo(g)/f.distance,1),0!=j&&(j*=f.intensity,c.add(gb.multiplyScalar(j)))))}}function x(a,d,e,f,g,j,h,i){l.info.render.vertices+= +3;l.info.render.faces++;b(i.opacity);c(i.blending);M=a.positionScreen.x;ca=a.positionScreen.y;qa=d.positionScreen.x;ha=d.positionScreen.y;ra=e.positionScreen.x;N=e.positionScreen.y;y(M,ca,qa,ha,ra,N);(i instanceof THREE.MeshLambertMaterial||i instanceof THREE.MeshPhongMaterial)&&null===i.map?(Z.copy(i.color),oa.copy(i.emissive),i.vertexColors===THREE.FaceColors&&Z.multiply(h.color),!0===gc?!1===i.wireframe&&i.shading==THREE.SmoothShading&&3==h.vertexNormalsLength?(pa.copy(vb),Y.copy(vb),da.copy(vb), +q(h.v1.positionWorld,h.vertexNormalsModel[0],pa),q(h.v2.positionWorld,h.vertexNormalsModel[1],Y),q(h.v3.positionWorld,h.vertexNormalsModel[2],da),pa.multiply(Z).add(oa),Y.multiply(Z).add(oa),da.multiply(Z).add(oa),la.addColors(Y,da).multiplyScalar(0.5),Fa=E(pa,Y,da,la),G(M,ca,qa,ha,ra,N,0,0,1,0,0,1,Fa)):(aa.copy(vb),q(h.centroidModel,h.normalModel,aa),aa.multiply(Z).add(oa),!0===i.wireframe?C(aa,i.wireframeLinewidth,i.wireframeLinecap,i.wireframeLinejoin):A(aa)):!0===i.wireframe?C(i.color,i.wireframeLinewidth, +i.wireframeLinecap,i.wireframeLinejoin):A(i.color)):i instanceof THREE.MeshBasicMaterial||i instanceof THREE.MeshLambertMaterial||i instanceof THREE.MeshPhongMaterial?null!==i.map?i.map.mapping instanceof THREE.UVMapping&&(Xa=h.uvs[0],F(M,ca,qa,ha,ra,N,Xa[f].x,Xa[f].y,Xa[g].x,Xa[g].y,Xa[j].x,Xa[j].y,i.map)):null!==i.envMap?i.envMap.mapping instanceof THREE.SphericalReflectionMapping&&(bb.copy(h.vertexNormalsModelView[f]),ub=0.5*bb.x+0.5,Ib=0.5*bb.y+0.5,bb.copy(h.vertexNormalsModelView[g]),Jb=0.5* +bb.x+0.5,fc=0.5*bb.y+0.5,bb.copy(h.vertexNormalsModelView[j]),Ab=0.5*bb.x+0.5,mc=0.5*bb.y+0.5,F(M,ca,qa,ha,ra,N,ub,Ib,Jb,fc,Ab,mc,i.envMap)):(aa.copy(i.color),i.vertexColors===THREE.FaceColors&&aa.multiply(h.color),!0===i.wireframe?C(aa,i.wireframeLinewidth,i.wireframeLinecap,i.wireframeLinejoin):A(aa)):i instanceof THREE.MeshDepthMaterial?(Wa=p.near,ab=p.far,pa.r=pa.g=pa.b=1-k(a.positionScreen.z*a.positionScreen.w,Wa,ab),Y.r=Y.g=Y.b=1-k(d.positionScreen.z*d.positionScreen.w,Wa,ab),da.r=da.g=da.b= +1-k(e.positionScreen.z*e.positionScreen.w,Wa,ab),la.addColors(Y,da).multiplyScalar(0.5),Fa=E(pa,Y,da,la),G(M,ca,qa,ha,ra,N,0,0,1,0,0,1,Fa)):i instanceof THREE.MeshNormalMaterial&&(i.shading==THREE.FlatShading?(a=h.normalModelView,aa.setRGB(a.x,a.y,a.z).multiplyScalar(0.5).addScalar(0.5),!0===i.wireframe?C(aa,i.wireframeLinewidth,i.wireframeLinecap,i.wireframeLinejoin):A(aa)):i.shading==THREE.SmoothShading&&(a=h.vertexNormalsModelView[f],pa.setRGB(a.x,a.y,a.z).multiplyScalar(0.5).addScalar(0.5),a= +h.vertexNormalsModelView[g],Y.setRGB(a.x,a.y,a.z).multiplyScalar(0.5).addScalar(0.5),a=h.vertexNormalsModelView[j],da.setRGB(a.x,a.y,a.z).multiplyScalar(0.5).addScalar(0.5),la.addColors(Y,da).multiplyScalar(0.5),Fa=E(pa,Y,da,la),G(M,ca,qa,ha,ra,N,0,0,1,0,0,1,Fa)))}function y(a,b,c,d,e,f){t.beginPath();t.moveTo(a,b);t.lineTo(c,d);t.lineTo(e,f);t.closePath()}function B(a,b,c,d,e,f,g,j){t.beginPath();t.moveTo(a,b);t.lineTo(c,d);t.lineTo(e,f);t.lineTo(g,j);t.closePath()}function C(a,b,c,j){d(b);e(c); +f(j);g(a.getStyle());t.stroke();Va.expandByScalar(2*b)}function A(a){h(a.getStyle());t.fill()}function F(a,b,c,d,e,f,g,j,i,wa,k,l,n){if(!(n instanceof THREE.DataTexture||void 0===n.image||0==n.image.width)){if(!0===n.needsUpdate){var m=n.wrapS==THREE.RepeatWrapping,hb=n.wrapT==THREE.RepeatWrapping;nb[n.id]=t.createPattern(n.image,!0===m&&!0===hb?"repeat":!0===m&&!1===hb?"repeat-x":!1===m&&!0===hb?"repeat-y":"no-repeat");n.needsUpdate=!1}void 0===nb[n.id]?h("rgba(0,0,0,1)"):h(nb[n.id]);var m=n.offset.x/ +n.repeat.x,hb=n.offset.y/n.repeat.y,p=n.image.width*n.repeat.x,q=n.image.height*n.repeat.y,g=(g+m)*p,j=(1-j+hb)*q,c=c-a,d=d-b,e=e-a,f=f-b,i=(i+m)*p-g,wa=(1-wa+hb)*q-j,k=(k+m)*p-g,l=(1-l+hb)*q-j,m=i*l-k*wa;0===m?(void 0===ia[n.id]&&(b=document.createElement("canvas"),b.width=n.image.width,b.height=n.image.height,b=b.getContext("2d"),b.drawImage(n.image,0,0),ia[n.id]=b.getImageData(0,0,n.image.width,n.image.height).data),b=ia[n.id],g=4*(Math.floor(g)+Math.floor(j)*n.image.width),aa.setRGB(b[g]/255, +b[g+1]/255,b[g+2]/255),A(aa)):(m=1/m,n=(l*c-wa*e)*m,wa=(l*d-wa*f)*m,c=(i*e-k*c)*m,d=(i*f-k*d)*m,a=a-n*g-c*j,g=b-wa*g-d*j,t.save(),t.transform(n,wa,c,d,a,g),t.fill(),t.restore())}}function G(a,b,c,d,e,f,g,j,i,h,wa,k,n){var l,m;l=n.width-1;m=n.height-1;g*=l;j*=m;c-=a;d-=b;e-=a;f-=b;i=i*l-g;h=h*m-j;wa=wa*l-g;k=k*m-j;m=1/(i*k-wa*h);l=(k*c-h*e)*m;h=(k*d-h*f)*m;c=(i*e-wa*c)*m;d=(i*f-wa*d)*m;a=a-l*g-c*j;b=b-h*g-d*j;t.save();t.transform(l,h,c,d,a,b);t.clip();t.drawImage(n,0,0);t.restore()}function E(a,b, +c,d){Ra[0]=255*a.r|0;Ra[1]=255*a.g|0;Ra[2]=255*a.b|0;Ra[4]=255*b.r|0;Ra[5]=255*b.g|0;Ra[6]=255*b.b|0;Ra[8]=255*c.r|0;Ra[9]=255*c.g|0;Ra[10]=255*c.b|0;Ra[12]=255*d.r|0;Ra[13]=255*d.g|0;Ra[14]=255*d.b|0;j.putImageData(yb,0,0);Sa.drawImage(xb,0,0);return cb}function I(a,b){var c=b.x-a.x,d=b.y-a.y,e=c*c+d*d;0!==e&&(e=1/Math.sqrt(e),c*=e,d*=e,b.x+=c,b.y+=d,a.x-=c,a.y-=d)}if(!1===p instanceof THREE.Camera)console.error("THREE.CanvasRenderer.render: camera is not an instance of THREE.Camera.");else{!0=== +this.autoClear&&this.clear();t.setTransform(1,0,0,-1,v,z);l.info.render.vertices=0;l.info.render.faces=0;m=r.projectScene(a,p,this.sortObjects,this.sortElements);n=m.elements;s=m.lights;gc=0>1,nd=H.height>>1,Cb=wa.scale.x*v,Db=wa.scale.y*z,Bb=Cb*md,hb=Db*nd,Va.min.set(X.x-Bb,X.y-hb),Va.max.set(X.x+Bb,X.y+hb),!1!==pb.isIntersectionBox(Va)&&(t.save(),t.translate(X.x,X.y),t.rotate(-wa.rotation),t.scale(Cb,-Db),t.translate(-md,-nd),t.drawImage(H,0,0),t.restore())):P instanceof THREE.ParticleCanvasMaterial&&(Bb=wa.scale.x*v,hb=wa.scale.y*z,Va.min.set(X.x-Bb,X.y-hb),Va.max.set(X.x+Bb,X.y+hb),!1!==pb.isIntersectionBox(Va)&&(g(P.color.getStyle()), +h(P.color.getStyle()),t.save(),t.translate(X.x,X.y),t.rotate(-wa.rotation),t.scale(Bb,hb),P.program(t),t.restore()))}else if(H instanceof THREE.RenderableLine)K=H.v1,L=H.v2,K.positionScreen.x*=v,K.positionScreen.y*=z,L.positionScreen.x*=v,L.positionScreen.y*=z,Va.setFromPoints([K.positionScreen,L.positionScreen]),!0===pb.isIntersectionBox(Va)&&(X=K,wa=L,b(P.opacity),c(P.blending),t.beginPath(),t.moveTo(X.positionScreen.x,X.positionScreen.y),t.lineTo(wa.positionScreen.x,wa.positionScreen.y),P instanceof +THREE.LineBasicMaterial?(d(P.linewidth),e(P.linecap),f(P.linejoin),g(P.color.getStyle()),i(null,null),t.stroke(),Va.expandByScalar(2*P.linewidth)):P instanceof THREE.LineDashedMaterial&&(d(P.linewidth),e(P.linecap),f(P.linejoin),g(P.color.getStyle()),i(P.dashSize,P.gapSize),t.stroke(),Va.expandByScalar(2*P.linewidth)));else if(H instanceof THREE.RenderableFace3){K=H.v1;L=H.v2;U=H.v3;if(-1>K.positionScreen.z||1L.positionScreen.z||1 +U.positionScreen.z||1K.positionScreen.z|| +1L.positionScreen.z||1U.positionScreen.z||1fa.positionScreen.z||1 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_HEMI_LIGHTS > 0\nuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\nuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\nuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#endif\n#if MAX_SPOT_LIGHTS > 0\nuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\nuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\nuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\nuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\nuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\nuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n#endif\n#ifdef WRAP_AROUND\nuniform vec3 wrapRGB;\n#endif", +lights_lambert_vertex:"vLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\nvLightBack = vec3( 0.0 );\n#endif\ntransformedNormal = normalize( transformedNormal );\n#if MAX_DIR_LIGHTS > 0\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\nfloat dotProduct = dot( transformedNormal, dirVector );\nvec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n#ifdef DOUBLE_SIDED\nvec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n#ifdef WRAP_AROUND\nvec3 directionalLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n#endif\n#endif\n#ifdef WRAP_AROUND\nvec3 directionalLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\ndirectionalLightWeighting = mix( directionalLightWeighting, directionalLightWeightingHalf, wrapRGB );\n#ifdef DOUBLE_SIDED\ndirectionalLightWeightingBack = mix( directionalLightWeightingBack, directionalLightWeightingHalfBack, wrapRGB );\n#endif\n#endif\nvLightFront += directionalLightColor[ i ] * directionalLightWeighting;\n#ifdef DOUBLE_SIDED\nvLightBack += directionalLightColor[ i ] * directionalLightWeightingBack;\n#endif\n}\n#endif\n#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\nfloat dotProduct = dot( transformedNormal, lVector );\nvec3 pointLightWeighting = vec3( max( dotProduct, 0.0 ) );\n#ifdef DOUBLE_SIDED\nvec3 pointLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n#ifdef WRAP_AROUND\nvec3 pointLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n#endif\n#endif\n#ifdef WRAP_AROUND\nvec3 pointLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\npointLightWeighting = mix( pointLightWeighting, pointLightWeightingHalf, wrapRGB );\n#ifdef DOUBLE_SIDED\npointLightWeightingBack = mix( pointLightWeightingBack, pointLightWeightingHalfBack, wrapRGB );\n#endif\n#endif\nvLightFront += pointLightColor[ i ] * pointLightWeighting * lDistance;\n#ifdef DOUBLE_SIDED\nvLightBack += pointLightColor[ i ] * pointLightWeightingBack * lDistance;\n#endif\n}\n#endif\n#if MAX_SPOT_LIGHTS > 0\nfor( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - worldPosition.xyz ) );\nif ( spotEffect > spotLightAngleCos[ i ] ) {\nspotEffect = max( pow( spotEffect, spotLightExponent[ i ] ), 0.0 );\nfloat lDistance = 1.0;\nif ( spotLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / spotLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\nfloat dotProduct = dot( transformedNormal, lVector );\nvec3 spotLightWeighting = vec3( max( dotProduct, 0.0 ) );\n#ifdef DOUBLE_SIDED\nvec3 spotLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n#ifdef WRAP_AROUND\nvec3 spotLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n#endif\n#endif\n#ifdef WRAP_AROUND\nvec3 spotLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\nspotLightWeighting = mix( spotLightWeighting, spotLightWeightingHalf, wrapRGB );\n#ifdef DOUBLE_SIDED\nspotLightWeightingBack = mix( spotLightWeightingBack, spotLightWeightingHalfBack, wrapRGB );\n#endif\n#endif\nvLightFront += spotLightColor[ i ] * spotLightWeighting * lDistance * spotEffect;\n#ifdef DOUBLE_SIDED\nvLightBack += spotLightColor[ i ] * spotLightWeightingBack * lDistance * spotEffect;\n#endif\n}\n}\n#endif\n#if MAX_HEMI_LIGHTS > 0\nfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( hemisphereLightDirection[ i ], 0.0 );\nvec3 lVector = normalize( lDirection.xyz );\nfloat dotProduct = dot( transformedNormal, lVector );\nfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\nfloat hemiDiffuseWeightBack = -0.5 * dotProduct + 0.5;\nvLightFront += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n#ifdef DOUBLE_SIDED\nvLightBack += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeightBack );\n#endif\n}\n#endif\nvLightFront = vLightFront * diffuse + ambient * ambientLightColor + emissive;\n#ifdef DOUBLE_SIDED\nvLightBack = vLightBack * diffuse + ambient * ambientLightColor + emissive;\n#endif", +lights_phong_pars_vertex:"#ifndef PHONG_PER_PIXEL\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\n#if MAX_SPOT_LIGHTS > 0\nuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\nuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\nvarying vec4 vSpotLight[ MAX_SPOT_LIGHTS ];\n#endif\n#endif\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP )\nvarying vec3 vWorldPosition;\n#endif", +lights_phong_vertex:"#ifndef PHONG_PER_PIXEL\n#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nvPointLight[ i ] = vec4( lVector, lDistance );\n}\n#endif\n#if MAX_SPOT_LIGHTS > 0\nfor( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( spotLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / spotLightDistance[ i ] ), 1.0 );\nvSpotLight[ i ] = vec4( lVector, lDistance );\n}\n#endif\n#endif\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP )\nvWorldPosition = worldPosition.xyz;\n#endif", +lights_phong_pars_fragment:"uniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_HEMI_LIGHTS > 0\nuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\nuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\nuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n#ifdef PHONG_PER_PIXEL\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#else\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\n#endif\n#if MAX_SPOT_LIGHTS > 0\nuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\nuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\nuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\nuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\nuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n#ifdef PHONG_PER_PIXEL\nuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n#else\nvarying vec4 vSpotLight[ MAX_SPOT_LIGHTS ];\n#endif\n#endif\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP )\nvarying vec3 vWorldPosition;\n#endif\n#ifdef WRAP_AROUND\nuniform vec3 wrapRGB;\n#endif\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;", +lights_phong_fragment:"vec3 normal = normalize( vNormal );\nvec3 viewPosition = normalize( vViewPosition );\n#ifdef DOUBLE_SIDED\nnormal = normal * ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n#endif\n#ifdef USE_NORMALMAP\nnormal = perturbNormal2Arb( -viewPosition, normal );\n#elif defined( USE_BUMPMAP )\nnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n#if MAX_POINT_LIGHTS > 0\nvec3 pointDiffuse = vec3( 0.0 );\nvec3 pointSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n#ifdef PHONG_PER_PIXEL\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz + vViewPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\n#else\nvec3 lVector = normalize( vPointLight[ i ].xyz );\nfloat lDistance = vPointLight[ i ].w;\n#endif\nfloat dotProduct = dot( normal, lVector );\n#ifdef WRAP_AROUND\nfloat pointDiffuseWeightFull = max( dotProduct, 0.0 );\nfloat pointDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\nvec3 pointDiffuseWeight = mix( vec3 ( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n#else\nfloat pointDiffuseWeight = max( dotProduct, 0.0 );\n#endif\npointDiffuse += diffuse * pointLightColor[ i ] * pointDiffuseWeight * lDistance;\nvec3 pointHalfVector = normalize( lVector + viewPosition );\nfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\nfloat pointSpecularWeight = specularStrength * max( pow( pointDotNormalHalf, shininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\nvec3 schlick = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( lVector, pointHalfVector ), 5.0 );\npointSpecular += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * lDistance * specularNormalization;\n#else\npointSpecular += specular * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * lDistance;\n#endif\n}\n#endif\n#if MAX_SPOT_LIGHTS > 0\nvec3 spotDiffuse = vec3( 0.0 );\nvec3 spotSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n#ifdef PHONG_PER_PIXEL\nvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz + vViewPosition.xyz;\nfloat lDistance = 1.0;\nif ( spotLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / spotLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\n#else\nvec3 lVector = normalize( vSpotLight[ i ].xyz );\nfloat lDistance = vSpotLight[ i ].w;\n#endif\nfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\nif ( spotEffect > spotLightAngleCos[ i ] ) {\nspotEffect = max( pow( spotEffect, spotLightExponent[ i ] ), 0.0 );\nfloat dotProduct = dot( normal, lVector );\n#ifdef WRAP_AROUND\nfloat spotDiffuseWeightFull = max( dotProduct, 0.0 );\nfloat spotDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\nvec3 spotDiffuseWeight = mix( vec3 ( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n#else\nfloat spotDiffuseWeight = max( dotProduct, 0.0 );\n#endif\nspotDiffuse += diffuse * spotLightColor[ i ] * spotDiffuseWeight * lDistance * spotEffect;\nvec3 spotHalfVector = normalize( lVector + viewPosition );\nfloat spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\nfloat spotSpecularWeight = specularStrength * max( pow( spotDotNormalHalf, shininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\nvec3 schlick = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( lVector, spotHalfVector ), 5.0 );\nspotSpecular += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * lDistance * specularNormalization * spotEffect;\n#else\nspotSpecular += specular * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * lDistance * spotEffect;\n#endif\n}\n}\n#endif\n#if MAX_DIR_LIGHTS > 0\nvec3 dirDiffuse = vec3( 0.0 );\nvec3 dirSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\nfloat dotProduct = dot( normal, dirVector );\n#ifdef WRAP_AROUND\nfloat dirDiffuseWeightFull = max( dotProduct, 0.0 );\nfloat dirDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\nvec3 dirDiffuseWeight = mix( vec3( dirDiffuseWeightFull ), vec3( dirDiffuseWeightHalf ), wrapRGB );\n#else\nfloat dirDiffuseWeight = max( dotProduct, 0.0 );\n#endif\ndirDiffuse += diffuse * directionalLightColor[ i ] * dirDiffuseWeight;\nvec3 dirHalfVector = normalize( dirVector + viewPosition );\nfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\nfloat dirSpecularWeight = specularStrength * max( pow( dirDotNormalHalf, shininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\nvec3 schlick = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( dirVector, dirHalfVector ), 5.0 );\ndirSpecular += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n#else\ndirSpecular += specular * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight;\n#endif\n}\n#endif\n#if MAX_HEMI_LIGHTS > 0\nvec3 hemiDiffuse = vec3( 0.0 );\nvec3 hemiSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( hemisphereLightDirection[ i ], 0.0 );\nvec3 lVector = normalize( lDirection.xyz );\nfloat dotProduct = dot( normal, lVector );\nfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\nvec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\nhemiDiffuse += diffuse * hemiColor;\nvec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\nfloat hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\nfloat hemiSpecularWeightSky = specularStrength * max( pow( hemiDotNormalHalfSky, shininess ), 0.0 );\nvec3 lVectorGround = -lVector;\nvec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\nfloat hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\nfloat hemiSpecularWeightGround = specularStrength * max( pow( hemiDotNormalHalfGround, shininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat dotProductGround = dot( normal, lVectorGround );\nfloat specularNormalization = ( shininess + 2.0001 ) / 8.0;\nvec3 schlickSky = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( lVector, hemiHalfVectorSky ), 5.0 );\nvec3 schlickGround = specular + vec3( 1.0 - specular ) * pow( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 5.0 );\nhemiSpecular += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n#else\nhemiSpecular += specular * hemiColor * ( hemiSpecularWeightSky + hemiSpecularWeightGround ) * hemiDiffuseWeight;\n#endif\n}\n#endif\nvec3 totalDiffuse = vec3( 0.0 );\nvec3 totalSpecular = vec3( 0.0 );\n#if MAX_DIR_LIGHTS > 0\ntotalDiffuse += dirDiffuse;\ntotalSpecular += dirSpecular;\n#endif\n#if MAX_HEMI_LIGHTS > 0\ntotalDiffuse += hemiDiffuse;\ntotalSpecular += hemiSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\ntotalDiffuse += pointDiffuse;\ntotalSpecular += pointSpecular;\n#endif\n#if MAX_SPOT_LIGHTS > 0\ntotalDiffuse += spotDiffuse;\ntotalSpecular += spotSpecular;\n#endif\n#ifdef METAL\ngl_FragColor.xyz = gl_FragColor.xyz * ( emissive + totalDiffuse + ambientLightColor * ambient + totalSpecular );\n#else\ngl_FragColor.xyz = gl_FragColor.xyz * ( emissive + totalDiffuse + ambientLightColor * ambient ) + totalSpecular;\n#endif", +color_pars_fragment:"#ifdef USE_COLOR\nvarying vec3 vColor;\n#endif",color_fragment:"#ifdef USE_COLOR\ngl_FragColor = gl_FragColor * vec4( vColor, opacity );\n#endif",color_pars_vertex:"#ifdef USE_COLOR\nvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n#ifdef GAMMA_INPUT\nvColor = color * color;\n#else\nvColor = color;\n#endif\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n#ifdef BONE_TEXTURE\nuniform sampler2D boneTexture;\nmat4 getBoneMatrix( const in float i ) {\nfloat j = i * 4.0;\nfloat x = mod( j, N_BONE_PIXEL_X );\nfloat y = floor( j / N_BONE_PIXEL_X );\nconst float dx = 1.0 / N_BONE_PIXEL_X;\nconst float dy = 1.0 / N_BONE_PIXEL_Y;\ny = dy * ( y + 0.5 );\nvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\nvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\nvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\nvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\nmat4 bone = mat4( v1, v2, v3, v4 );\nreturn bone;\n}\n#else\nuniform mat4 boneGlobalMatrices[ MAX_BONES ];\nmat4 getBoneMatrix( const in float i ) {\nmat4 bone = boneGlobalMatrices[ int(i) ];\nreturn bone;\n}\n#endif\n#endif", +skinbase_vertex:"#ifdef USE_SKINNING\nmat4 boneMatX = getBoneMatrix( skinIndex.x );\nmat4 boneMatY = getBoneMatrix( skinIndex.y );\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n#ifdef USE_MORPHTARGETS\nvec4 skinVertex = vec4( morphed, 1.0 );\n#else\nvec4 skinVertex = vec4( position, 1.0 );\n#endif\nvec4 skinned = boneMatX * skinVertex * skinWeight.x;\nskinned \t += boneMatY * skinVertex * skinWeight.y;\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n#ifndef USE_MORPHNORMALS\nuniform float morphTargetInfluences[ 8 ];\n#else\nuniform float morphTargetInfluences[ 4 ];\n#endif\n#endif", +morphtarget_vertex:"#ifdef USE_MORPHTARGETS\nvec3 morphed = vec3( 0.0 );\nmorphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\nmorphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\nmorphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\nmorphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n#ifndef USE_MORPHNORMALS\nmorphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\nmorphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\nmorphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\nmorphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n#endif\nmorphed += position;\n#endif", +default_vertex:"vec4 mvPosition;\n#ifdef USE_SKINNING\nmvPosition = modelViewMatrix * skinned;\n#endif\n#if !defined( USE_SKINNING ) && defined( USE_MORPHTARGETS )\nmvPosition = modelViewMatrix * vec4( morphed, 1.0 );\n#endif\n#if !defined( USE_SKINNING ) && ! defined( USE_MORPHTARGETS )\nmvPosition = modelViewMatrix * vec4( position, 1.0 );\n#endif\ngl_Position = projectionMatrix * mvPosition;",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\nvec3 morphedNormal = vec3( 0.0 );\nmorphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\nmorphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\nmorphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\nmorphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\nmorphedNormal += normal;\n#endif", +skinnormal_vertex:"#ifdef USE_SKINNING\nmat4 skinMatrix = skinWeight.x * boneMatX;\nskinMatrix \t+= skinWeight.y * boneMatY;\n#ifdef USE_MORPHNORMALS\nvec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );\n#else\nvec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );\n#endif\n#endif",defaultnormal_vertex:"vec3 objectNormal;\n#ifdef USE_SKINNING\nobjectNormal = skinnedNormal.xyz;\n#endif\n#if !defined( USE_SKINNING ) && defined( USE_MORPHNORMALS )\nobjectNormal = morphedNormal;\n#endif\n#if !defined( USE_SKINNING ) && ! defined( USE_MORPHNORMALS )\nobjectNormal = normal;\n#endif\n#ifdef FLIP_SIDED\nobjectNormal = -objectNormal;\n#endif\nvec3 transformedNormal = normalMatrix * objectNormal;", +shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\nuniform sampler2D shadowMap[ MAX_SHADOWS ];\nuniform vec2 shadowMapSize[ MAX_SHADOWS ];\nuniform float shadowDarkness[ MAX_SHADOWS ];\nuniform float shadowBias[ MAX_SHADOWS ];\nvarying vec4 vShadowCoord[ MAX_SHADOWS ];\nfloat unpackDepth( const in vec4 rgba_depth ) {\nconst vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\nfloat depth = dot( rgba_depth, bit_shift );\nreturn depth;\n}\n#endif",shadowmap_fragment:"#ifdef USE_SHADOWMAP\n#ifdef SHADOWMAP_DEBUG\nvec3 frustumColors[3];\nfrustumColors[0] = vec3( 1.0, 0.5, 0.0 );\nfrustumColors[1] = vec3( 0.0, 1.0, 0.8 );\nfrustumColors[2] = vec3( 0.0, 0.5, 1.0 );\n#endif\n#ifdef SHADOWMAP_CASCADE\nint inFrustumCount = 0;\n#endif\nfloat fDepth;\nvec3 shadowColor = vec3( 1.0 );\nfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\nvec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\nbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\nbool inFrustum = all( inFrustumVec );\n#ifdef SHADOWMAP_CASCADE\ninFrustumCount += int( inFrustum );\nbvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );\n#else\nbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n#endif\nbool frustumTest = all( frustumTestVec );\nif ( frustumTest ) {\nshadowCoord.z += shadowBias[ i ];\n#if defined( SHADOWMAP_TYPE_PCF )\nfloat shadow = 0.0;\nconst float shadowDelta = 1.0 / 9.0;\nfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\nfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\nfloat dx0 = -1.25 * xPixelOffset;\nfloat dy0 = -1.25 * yPixelOffset;\nfloat dx1 = 1.25 * xPixelOffset;\nfloat dy1 = 1.25 * yPixelOffset;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\nfloat shadow = 0.0;\nfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\nfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\nfloat dx0 = -1.0 * xPixelOffset;\nfloat dy0 = -1.0 * yPixelOffset;\nfloat dx1 = 1.0 * xPixelOffset;\nfloat dy1 = 1.0 * yPixelOffset;\nmat3 shadowKernel;\nmat3 depthKernel;\ndepthKernel[0][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\nif ( depthKernel[0][0] < shadowCoord.z ) shadowKernel[0][0] = 0.25;\nelse shadowKernel[0][0] = 0.0;\ndepthKernel[0][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\nif ( depthKernel[0][1] < shadowCoord.z ) shadowKernel[0][1] = 0.25;\nelse shadowKernel[0][1] = 0.0;\ndepthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i], shadowCoord.xy + vec2( dx0, dy1 ) ) );\nif ( depthKernel[0][2] < shadowCoord.z ) shadowKernel[0][2] = 0.25;\nelse shadowKernel[0][2] = 0.0;\ndepthKernel[1][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\nif ( depthKernel[1][0] < shadowCoord.z ) shadowKernel[1][0] = 0.25;\nelse shadowKernel[1][0] = 0.0;\ndepthKernel[1][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\nif ( depthKernel[1][1] < shadowCoord.z ) shadowKernel[1][1] = 0.25;\nelse shadowKernel[1][1] = 0.0;\ndepthKernel[1][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\nif ( depthKernel[1][2] < shadowCoord.z ) shadowKernel[1][2] = 0.25;\nelse shadowKernel[1][2] = 0.0;\ndepthKernel[2][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\nif ( depthKernel[2][0] < shadowCoord.z ) shadowKernel[2][0] = 0.25;\nelse shadowKernel[2][0] = 0.0;\ndepthKernel[2][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\nif ( depthKernel[2][1] < shadowCoord.z ) shadowKernel[2][1] = 0.25;\nelse shadowKernel[2][1] = 0.0;\ndepthKernel[2][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\nif ( depthKernel[2][2] < shadowCoord.z ) shadowKernel[2][2] = 0.25;\nelse shadowKernel[2][2] = 0.0;\nvec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[i].xy );\nshadowKernel[0] = mix( shadowKernel[1], shadowKernel[0], fractionalCoord.x );\nshadowKernel[1] = mix( shadowKernel[2], shadowKernel[1], fractionalCoord.x );\nvec4 shadowValues;\nshadowValues.x = mix( shadowKernel[0][1], shadowKernel[0][0], fractionalCoord.y );\nshadowValues.y = mix( shadowKernel[0][2], shadowKernel[0][1], fractionalCoord.y );\nshadowValues.z = mix( shadowKernel[1][1], shadowKernel[1][0], fractionalCoord.y );\nshadowValues.w = mix( shadowKernel[1][2], shadowKernel[1][1], fractionalCoord.y );\nshadow = dot( shadowValues, vec4( 1.0 ) );\nshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n#else\nvec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\nfloat fDepth = unpackDepth( rgbaDepth );\nif ( fDepth < shadowCoord.z )\nshadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ i ] );\n#endif\n}\n#ifdef SHADOWMAP_DEBUG\n#ifdef SHADOWMAP_CASCADE\nif ( inFrustum && inFrustumCount == 1 ) gl_FragColor.xyz *= frustumColors[ i ];\n#else\nif ( inFrustum ) gl_FragColor.xyz *= frustumColors[ i ];\n#endif\n#endif\n}\n#ifdef GAMMA_OUTPUT\nshadowColor *= shadowColor;\n#endif\ngl_FragColor.xyz = gl_FragColor.xyz * shadowColor;\n#endif", +shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\nvarying vec4 vShadowCoord[ MAX_SHADOWS ];\nuniform mat4 shadowMatrix[ MAX_SHADOWS ];\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\nfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\nvShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n}\n#endif",alphatest_fragment:"#ifdef ALPHATEST\nif ( gl_FragColor.a < ALPHATEST ) discard;\n#endif",linear_to_gamma_fragment:"#ifdef GAMMA_OUTPUT\ngl_FragColor.xyz = sqrt( gl_FragColor.xyz );\n#endif"}; +THREE.UniformsUtils={merge:function(a){var b,c,d,e={};for(b=0;b dashSize ) {\ndiscard;\n}\ngl_FragColor = vec4( diffuse, opacity );",THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},depth:{uniforms:{mNear:{type:"f",value:1},mFar:{type:"f",value:2E3},opacity:{type:"f", +value:1}},vertexShader:"void main() {\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform float mNear;\nuniform float mFar;\nuniform float opacity;\nvoid main() {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat color = 1.0 - smoothstep( mNear, mFar, depth );\ngl_FragColor = vec4( vec3( color ), opacity );\n}"},normal:{uniforms:{opacity:{type:"f",value:1}},vertexShader:"varying vec3 vNormal;\nvoid main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvNormal = normalize( normalMatrix * normal );\ngl_Position = projectionMatrix * mvPosition;\n}", +fragmentShader:"uniform float opacity;\nvarying vec3 vNormal;\nvoid main() {\ngl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );\n}"},normalmap:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{enableAO:{type:"i",value:0},enableDiffuse:{type:"i",value:0},enableSpecular:{type:"i",value:0},enableReflection:{type:"i",value:0},enableDisplacement:{type:"i",value:0},tDisplacement:{type:"t",value:null},tDiffuse:{type:"t",value:null}, +tCube:{type:"t",value:null},tNormal:{type:"t",value:null},tSpecular:{type:"t",value:null},tAO:{type:"t",value:null},uNormalScale:{type:"v2",value:new THREE.Vector2(1,1)},uDisplacementBias:{type:"f",value:0},uDisplacementScale:{type:"f",value:1},uDiffuseColor:{type:"c",value:new THREE.Color(16777215)},uSpecularColor:{type:"c",value:new THREE.Color(1118481)},uAmbientColor:{type:"c",value:new THREE.Color(16777215)},uShininess:{type:"f",value:30},uOpacity:{type:"f",value:1},useRefract:{type:"i",value:0}, +uRefractionRatio:{type:"f",value:0.98},uReflectivity:{type:"f",value:0.5},uOffset:{type:"v2",value:new THREE.Vector2(0,0)},uRepeat:{type:"v2",value:new THREE.Vector2(1,1)},wrapRGB:{type:"v3",value:new THREE.Vector3(1,1,1)}}]),fragmentShader:["uniform vec3 uAmbientColor;\nuniform vec3 uDiffuseColor;\nuniform vec3 uSpecularColor;\nuniform float uShininess;\nuniform float uOpacity;\nuniform bool enableDiffuse;\nuniform bool enableSpecular;\nuniform bool enableAO;\nuniform bool enableReflection;\nuniform sampler2D tDiffuse;\nuniform sampler2D tNormal;\nuniform sampler2D tSpecular;\nuniform sampler2D tAO;\nuniform samplerCube tCube;\nuniform vec2 uNormalScale;\nuniform bool useRefract;\nuniform float uRefractionRatio;\nuniform float uReflectivity;\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_HEMI_LIGHTS > 0\nuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\nuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\nuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#endif\n#if MAX_SPOT_LIGHTS > 0\nuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\nuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\nuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\nuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\nuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\nuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n#endif\n#ifdef WRAP_AROUND\nuniform vec3 wrapRGB;\n#endif\nvarying vec3 vWorldPosition;\nvarying vec3 vViewPosition;", +THREE.ShaderChunk.shadowmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,"void main() {\ngl_FragColor = vec4( vec3( 1.0 ), uOpacity );\nvec3 specularTex = vec3( 1.0 );\nvec3 normalTex = texture2D( tNormal, vUv ).xyz * 2.0 - 1.0;\nnormalTex.xy *= uNormalScale;\nnormalTex = normalize( normalTex );\nif( enableDiffuse ) {\n#ifdef GAMMA_INPUT\nvec4 texelColor = texture2D( tDiffuse, vUv );\ntexelColor.xyz *= texelColor.xyz;\ngl_FragColor = gl_FragColor * texelColor;\n#else\ngl_FragColor = gl_FragColor * texture2D( tDiffuse, vUv );\n#endif\n}\nif( enableAO ) {\n#ifdef GAMMA_INPUT\nvec4 aoColor = texture2D( tAO, vUv );\naoColor.xyz *= aoColor.xyz;\ngl_FragColor.xyz = gl_FragColor.xyz * aoColor.xyz;\n#else\ngl_FragColor.xyz = gl_FragColor.xyz * texture2D( tAO, vUv ).xyz;\n#endif\n}\nif( enableSpecular )\nspecularTex = texture2D( tSpecular, vUv ).xyz;\nmat3 tsb = mat3( normalize( vTangent ), normalize( vBinormal ), normalize( vNormal ) );\nvec3 finalNormal = tsb * normalTex;\n#ifdef FLIP_SIDED\nfinalNormal = -finalNormal;\n#endif\nvec3 normal = normalize( finalNormal );\nvec3 viewPosition = normalize( vViewPosition );\n#if MAX_POINT_LIGHTS > 0\nvec3 pointDiffuse = vec3( 0.0 );\nvec3 pointSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 pointVector = lPosition.xyz + vViewPosition.xyz;\nfloat pointDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\npointDistance = 1.0 - min( ( length( pointVector ) / pointLightDistance[ i ] ), 1.0 );\npointVector = normalize( pointVector );\n#ifdef WRAP_AROUND\nfloat pointDiffuseWeightFull = max( dot( normal, pointVector ), 0.0 );\nfloat pointDiffuseWeightHalf = max( 0.5 * dot( normal, pointVector ) + 0.5, 0.0 );\nvec3 pointDiffuseWeight = mix( vec3 ( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n#else\nfloat pointDiffuseWeight = max( dot( normal, pointVector ), 0.0 );\n#endif\npointDiffuse += pointDistance * pointLightColor[ i ] * uDiffuseColor * pointDiffuseWeight;\nvec3 pointHalfVector = normalize( pointVector + viewPosition );\nfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\nfloat pointSpecularWeight = specularTex.r * max( pow( pointDotNormalHalf, uShininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat specularNormalization = ( uShininess + 2.0001 ) / 8.0;\nvec3 schlick = uSpecularColor + vec3( 1.0 - uSpecularColor ) * pow( 1.0 - dot( pointVector, pointHalfVector ), 5.0 );\npointSpecular += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * pointDistance * specularNormalization;\n#else\npointSpecular += pointDistance * pointLightColor[ i ] * uSpecularColor * pointSpecularWeight * pointDiffuseWeight;\n#endif\n}\n#endif\n#if MAX_SPOT_LIGHTS > 0\nvec3 spotDiffuse = vec3( 0.0 );\nvec3 spotSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\nvec3 spotVector = lPosition.xyz + vViewPosition.xyz;\nfloat spotDistance = 1.0;\nif ( spotLightDistance[ i ] > 0.0 )\nspotDistance = 1.0 - min( ( length( spotVector ) / spotLightDistance[ i ] ), 1.0 );\nspotVector = normalize( spotVector );\nfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\nif ( spotEffect > spotLightAngleCos[ i ] ) {\nspotEffect = max( pow( spotEffect, spotLightExponent[ i ] ), 0.0 );\n#ifdef WRAP_AROUND\nfloat spotDiffuseWeightFull = max( dot( normal, spotVector ), 0.0 );\nfloat spotDiffuseWeightHalf = max( 0.5 * dot( normal, spotVector ) + 0.5, 0.0 );\nvec3 spotDiffuseWeight = mix( vec3 ( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n#else\nfloat spotDiffuseWeight = max( dot( normal, spotVector ), 0.0 );\n#endif\nspotDiffuse += spotDistance * spotLightColor[ i ] * uDiffuseColor * spotDiffuseWeight * spotEffect;\nvec3 spotHalfVector = normalize( spotVector + viewPosition );\nfloat spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\nfloat spotSpecularWeight = specularTex.r * max( pow( spotDotNormalHalf, uShininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat specularNormalization = ( uShininess + 2.0001 ) / 8.0;\nvec3 schlick = uSpecularColor + vec3( 1.0 - uSpecularColor ) * pow( 1.0 - dot( spotVector, spotHalfVector ), 5.0 );\nspotSpecular += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * spotDistance * specularNormalization * spotEffect;\n#else\nspotSpecular += spotDistance * spotLightColor[ i ] * uSpecularColor * spotSpecularWeight * spotDiffuseWeight * spotEffect;\n#endif\n}\n}\n#endif\n#if MAX_DIR_LIGHTS > 0\nvec3 dirDiffuse = vec3( 0.0 );\nvec3 dirSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\n#ifdef WRAP_AROUND\nfloat directionalLightWeightingFull = max( dot( normal, dirVector ), 0.0 );\nfloat directionalLightWeightingHalf = max( 0.5 * dot( normal, dirVector ) + 0.5, 0.0 );\nvec3 dirDiffuseWeight = mix( vec3( directionalLightWeightingFull ), vec3( directionalLightWeightingHalf ), wrapRGB );\n#else\nfloat dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );\n#endif\ndirDiffuse += directionalLightColor[ i ] * uDiffuseColor * dirDiffuseWeight;\nvec3 dirHalfVector = normalize( dirVector + viewPosition );\nfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\nfloat dirSpecularWeight = specularTex.r * max( pow( dirDotNormalHalf, uShininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat specularNormalization = ( uShininess + 2.0001 ) / 8.0;\nvec3 schlick = uSpecularColor + vec3( 1.0 - uSpecularColor ) * pow( 1.0 - dot( dirVector, dirHalfVector ), 5.0 );\ndirSpecular += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n#else\ndirSpecular += directionalLightColor[ i ] * uSpecularColor * dirSpecularWeight * dirDiffuseWeight;\n#endif\n}\n#endif\n#if MAX_HEMI_LIGHTS > 0\nvec3 hemiDiffuse = vec3( 0.0 );\nvec3 hemiSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( hemisphereLightDirection[ i ], 0.0 );\nvec3 lVector = normalize( lDirection.xyz );\nfloat dotProduct = dot( normal, lVector );\nfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\nvec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\nhemiDiffuse += uDiffuseColor * hemiColor;\nvec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\nfloat hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\nfloat hemiSpecularWeightSky = specularTex.r * max( pow( hemiDotNormalHalfSky, uShininess ), 0.0 );\nvec3 lVectorGround = -lVector;\nvec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\nfloat hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\nfloat hemiSpecularWeightGround = specularTex.r * max( pow( hemiDotNormalHalfGround, uShininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nfloat dotProductGround = dot( normal, lVectorGround );\nfloat specularNormalization = ( uShininess + 2.0001 ) / 8.0;\nvec3 schlickSky = uSpecularColor + vec3( 1.0 - uSpecularColor ) * pow( 1.0 - dot( lVector, hemiHalfVectorSky ), 5.0 );\nvec3 schlickGround = uSpecularColor + vec3( 1.0 - uSpecularColor ) * pow( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 5.0 );\nhemiSpecular += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n#else\nhemiSpecular += uSpecularColor * hemiColor * ( hemiSpecularWeightSky + hemiSpecularWeightGround ) * hemiDiffuseWeight;\n#endif\n}\n#endif\nvec3 totalDiffuse = vec3( 0.0 );\nvec3 totalSpecular = vec3( 0.0 );\n#if MAX_DIR_LIGHTS > 0\ntotalDiffuse += dirDiffuse;\ntotalSpecular += dirSpecular;\n#endif\n#if MAX_HEMI_LIGHTS > 0\ntotalDiffuse += hemiDiffuse;\ntotalSpecular += hemiSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\ntotalDiffuse += pointDiffuse;\ntotalSpecular += pointSpecular;\n#endif\n#if MAX_SPOT_LIGHTS > 0\ntotalDiffuse += spotDiffuse;\ntotalSpecular += spotSpecular;\n#endif\n#ifdef METAL\ngl_FragColor.xyz = gl_FragColor.xyz * ( totalDiffuse + ambientLightColor * uAmbientColor + totalSpecular );\n#else\ngl_FragColor.xyz = gl_FragColor.xyz * ( totalDiffuse + ambientLightColor * uAmbientColor ) + totalSpecular;\n#endif\nif ( enableReflection ) {\nvec3 vReflect;\nvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\nif ( useRefract ) {\nvReflect = refract( cameraToVertex, normal, uRefractionRatio );\n} else {\nvReflect = reflect( cameraToVertex, normal );\n}\nvec4 cubeColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );\n#ifdef GAMMA_INPUT\ncubeColor.xyz *= cubeColor.xyz;\n#endif\ngl_FragColor.xyz = mix( gl_FragColor.xyz, cubeColor.xyz, specularTex.r * uReflectivity );\n}", +THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n"),vertexShader:["attribute vec4 tangent;\nuniform vec2 uOffset;\nuniform vec2 uRepeat;\nuniform bool enableDisplacement;\n#ifdef VERTEX_TEXTURES\nuniform sampler2D tDisplacement;\nuniform float uDisplacementScale;\nuniform float uDisplacementBias;\n#endif\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nvarying vec3 vWorldPosition;\nvarying vec3 vViewPosition;", +THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {",THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.skinnormal_vertex,"#ifdef USE_SKINNING\nvNormal = normalize( normalMatrix * skinnedNormal.xyz );\nvec4 skinnedTangent = skinMatrix * vec4( tangent.xyz, 0.0 );\nvTangent = normalize( normalMatrix * skinnedTangent.xyz );\n#else\nvNormal = normalize( normalMatrix * normal );\nvTangent = normalize( normalMatrix * tangent.xyz );\n#endif\nvBinormal = normalize( cross( vNormal, vTangent ) * tangent.w );\nvUv = uv * uRepeat + uOffset;\nvec3 displacedPosition;\n#ifdef VERTEX_TEXTURES\nif ( enableDisplacement ) {\nvec3 dv = texture2D( tDisplacement, uv ).xyz;\nfloat df = uDisplacementScale * dv.x + uDisplacementBias;\ndisplacedPosition = position + normalize( normal ) * df;\n} else {\n#ifdef USE_SKINNING\nvec4 skinVertex = vec4( position, 1.0 );\nvec4 skinned = boneMatX * skinVertex * skinWeight.x;\nskinned \t += boneMatY * skinVertex * skinWeight.y;\ndisplacedPosition = skinned.xyz;\n#else\ndisplacedPosition = position;\n#endif\n}\n#else\n#ifdef USE_SKINNING\nvec4 skinVertex = vec4( position, 1.0 );\nvec4 skinned = boneMatX * skinVertex * skinWeight.x;\nskinned \t += boneMatY * skinVertex * skinWeight.y;\ndisplacedPosition = skinned.xyz;\n#else\ndisplacedPosition = position;\n#endif\n#endif\nvec4 mvPosition = modelViewMatrix * vec4( displacedPosition, 1.0 );\nvec4 worldPosition = modelMatrix * vec4( displacedPosition, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\nvWorldPosition = worldPosition.xyz;\nvViewPosition = -mvPosition.xyz;\n#ifdef USE_SHADOWMAP\nfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\nvShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n}\n#endif\n}"].join("\n")}, +cube:{uniforms:{tCube:{type:"t",value:null},tFlip:{type:"f",value:-1}},vertexShader:"varying vec3 vWorldPosition;\nvoid main() {\nvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\nvWorldPosition = worldPosition.xyz;\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform samplerCube tCube;\nuniform float tFlip;\nvarying vec3 vWorldPosition;\nvoid main() {\ngl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n}"}, +depthRGBA:{uniforms:{},vertexShader:[THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,"void main() {",THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.default_vertex,"}"].join("\n"),fragmentShader:"vec4 pack_depth( const in float depth ) {\nconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );\nconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );\nvec4 res = fract( depth * bit_shift );\nres -= res.xxyz * bit_mask;\nreturn res;\n}\nvoid main() {\ngl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );\n}"}};THREE.WebGLRenderer=function(a){function b(a){if(a.__webglCustomAttributesList)for(var b in a.__webglCustomAttributesList)j.deleteBuffer(a.__webglCustomAttributesList[b].buffer)}function c(a,b){var c=a.vertices.length,d=b.material;if(d.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var e in d.attributes){var f=d.attributes[e];if(!f.__webglInitialized||f.createUniqueBuffers){f.__webglInitialized=!0;var g=1;"v2"===f.type?g=2:"v3"===f.type?g=3:"v4"===f.type? +g=4:"c"===f.type&&(g=3);f.size=g;f.array=new Float32Array(c*g);f.buffer=j.createBuffer();f.buffer.belongsToAttribute=e;f.needsUpdate=!0}a.__webglCustomAttributesList.push(f)}}}function d(a,b){var c=b.geometry,d=a.faces3,h=a.faces4,i=3*d.length+4*h.length,k=1*d.length+2*h.length,h=3*d.length+4*h.length,d=e(b,a),n=g(d),l=f(d),m=d.vertexColors?d.vertexColors:!1;a.__vertexArray=new Float32Array(3*i);l&&(a.__normalArray=new Float32Array(3*i));c.hasTangents&&(a.__tangentArray=new Float32Array(4*i));m&& +(a.__colorArray=new Float32Array(3*i));if(n){if(0l;l++)N.autoScaleCubemaps&&!f?(m=k,r=l,t=c.image[l],y=gd,t.width<=y&&t.height<=y||(z=Math.max(t.width,t.height),v=Math.floor(t.width*y/z),y=Math.floor(t.height*y/z),z=document.createElement("canvas"),z.width=v,z.height=y,z.getContext("2d").drawImage(t,0,0,t.width,t.height,0,0,v,y),t=z),m[r]=t):k[l]=c.image[l];l=k[0];m=0===(l.width&l.width-1)&&0===(l.height&l.height-1);r=L(c.format); +t=L(c.type);W(j.TEXTURE_CUBE_MAP,c,m);for(l=0;6>l;l++)if(f){y=k[l].mipmaps;z=0;for(B=y.length;z=Mc&&console.warn("WebGLRenderer: trying to use "+ +a+" texture units while this GPU supports only "+Mc);Y+=1;return a}function C(a,b){a._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,a.matrixWorld);a._normalMatrix.getInverse(a._modelViewMatrix);a._normalMatrix.transpose()}function x(a,b,c,d){a[b]=c.r*c.r*d;a[b+1]=c.g*c.g*d;a[b+2]=c.b*c.b*d}function G(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function J(a){a!==ub&&(j.lineWidth(a),ub=a)}function E(a,b,c){ab!==a&&(a?j.enable(j.POLYGON_OFFSET_FILL):j.disable(j.POLYGON_OFFSET_FILL),ab=a);if(a&& +(Fa!==b||Xa!==c))j.polygonOffset(b,c),Fa=b,Xa=c}function H(a){for(var a=a.split("\n"),b=0,c=a.length;bb;b++)j.deleteFramebuffer(a.__webglFramebuffer[b]),j.deleteRenderbuffer(a.__webglRenderbuffer[b]); +else j.deleteFramebuffer(a.__webglFramebuffer),j.deleteRenderbuffer(a.__webglRenderbuffer);N.info.memory.textures--},X=function(a){a=a.target;a.removeEventListener("dispose",X);Pc(a)},Pc=function(a){var b=a.program;if(void 0!==b){a.program=void 0;var c,d,e=!1,a=0;for(c=Ma.length;ad.numSupportedMorphTargets?(i.sort(n),i.length=d.numSupportedMorphTargets):i.length>d.numSupportedMorphNormals?i.sort(n):0===i.length&&i.push([0,0]);for(h=0;hxa;xa++)nc=ab[xa],Fb[kb]=nc.x,Fb[kb+1]=nc.y,Fb[kb+2]=nc.z,kb+=3;else for(xa=0;3>xa;xa++)Fb[kb]=Xa.x,Fb[kb+1]=Xa.y,Fb[kb+2]=Xa.z,kb+=3;D=0;for(V=va.length;Dxa;xa++)nc= +ab[xa],Fb[kb]=nc.x,Fb[kb+1]=nc.y,Fb[kb+2]=nc.z,kb+=3;else for(xa=0;4>xa;xa++)Fb[kb]=Xa.x,Fb[kb+1]=Xa.y,Fb[kb+2]=Xa.z,kb+=3;j.bindBuffer(j.ARRAY_BUFFER,sa.__webglNormalBuffer);j.bufferData(j.ARRAY_BUFFER,Fb,Pa)}if(Cc&&pd&&bb){D=0;for(V=ua.length;Dxa;xa++)Ab=pb[xa],Dc[ic]=Ab.x,Dc[ic+1]=Ab.y,ic+=2;D=0;for(V=va.length;Dxa;xa++)Ab=pb[xa],Dc[ic]=Ab.x,Dc[ic+1]=Ab.y,ic+=2;0xa;xa++)yc=ub[xa],Ec[jc]=yc.x,Ec[jc+1]=yc.y,jc+=2;D=0;for(V=va.length;Dxa;xa++)yc=ub[xa],Ec[jc]=yc.x,Ec[jc+1]=yc.y,jc+=2;0f;f++){a.__webglFramebuffer[f]=j.createFramebuffer();a.__webglRenderbuffer[f]=j.createRenderbuffer();j.texImage2D(j.TEXTURE_CUBE_MAP_POSITIVE_X+f,0,d,a.width,a.height,0,d,e,null);var g=a,i=j.TEXTURE_CUBE_MAP_POSITIVE_X+f;j.bindFramebuffer(j.FRAMEBUFFER, +a.__webglFramebuffer[f]);j.framebufferTexture2D(j.FRAMEBUFFER,j.COLOR_ATTACHMENT0,i,g.__webglTexture,0);F(a.__webglRenderbuffer[f],a)}c&&j.generateMipmap(j.TEXTURE_CUBE_MAP)}else a.__webglFramebuffer=j.createFramebuffer(),a.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:j.createRenderbuffer(),j.bindTexture(j.TEXTURE_2D,a.__webglTexture),W(j.TEXTURE_2D,a,c),j.texImage2D(j.TEXTURE_2D,0,d,a.width,a.height,0,d,e,null),d=j.TEXTURE_2D,j.bindFramebuffer(j.FRAMEBUFFER,a.__webglFramebuffer), +j.framebufferTexture2D(j.FRAMEBUFFER,j.COLOR_ATTACHMENT0,d,a.__webglTexture,0),a.shareDepthFrom?a.depthBuffer&&!a.stencilBuffer?j.framebufferRenderbuffer(j.FRAMEBUFFER,j.DEPTH_ATTACHMENT,j.RENDERBUFFER,a.__webglRenderbuffer):a.depthBuffer&&a.stencilBuffer&&j.framebufferRenderbuffer(j.FRAMEBUFFER,j.DEPTH_STENCIL_ATTACHMENT,j.RENDERBUFFER,a.__webglRenderbuffer):F(a.__webglRenderbuffer,a),c&&j.generateMipmap(j.TEXTURE_2D);b?j.bindTexture(j.TEXTURE_CUBE_MAP,null):j.bindTexture(j.TEXTURE_2D,null);j.bindRenderbuffer(j.RENDERBUFFER, +null);j.bindFramebuffer(j.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=fc,a=Ab,d=Ib,e=Jb);b!==Pa&&(j.bindFramebuffer(j.FRAMEBUFFER,b),j.viewport(d,e,c,a),Pa=b);mc=c;pb=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);this.addPostPlugin(new THREE.SpritePlugin);this.addPostPlugin(new THREE.LensFlarePlugin)};THREE.WebGLRenderTarget=function(a,b,c){THREE.EventDispatcher.call(this);this.width=a;this.height=b;c=c||{};this.wrapS=void 0!==c.wrapS?c.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==c.wrapT?c.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==c.magFilter?c.magFilter:THREE.LinearFilter;this.minFilter=void 0!==c.minFilter?c.minFilter:THREE.LinearMipMapLinearFilter;this.anisotropy=void 0!==c.anisotropy?c.anisotropy:1;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1); +this.format=void 0!==c.format?c.format:THREE.RGBAFormat;this.type=void 0!==c.type?c.type:THREE.UnsignedByteType;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.generateMipmaps=!0;this.shareDepthFrom=null}; +THREE.WebGLRenderTarget.prototype.clone=function(){var a=new THREE.WebGLRenderTarget(this.width,this.height);a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.anisotropy=this.anisotropy;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.format=this.format;a.type=this.type;a.depthBuffer=this.depthBuffer;a.stencilBuffer=this.stencilBuffer;a.generateMipmaps=this.generateMipmaps;a.shareDepthFrom=this.shareDepthFrom;return a}; +THREE.WebGLRenderTarget.prototype.dispose=function(){this.dispatchEvent({type:"dispose"})};THREE.WebGLRenderTargetCube=function(a,b,c){THREE.WebGLRenderTarget.call(this,a,b,c);this.activeCubeFace=0};THREE.WebGLRenderTargetCube.prototype=Object.create(THREE.WebGLRenderTarget.prototype);THREE.RenderableVertex=function(){this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.visible=!0};THREE.RenderableVertex.prototype.copy=function(a){this.positionWorld.copy(a.positionWorld);this.positionScreen.copy(a.positionScreen)};THREE.RenderableFace3=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.centroidModel=new THREE.Vector3;this.normalModel=new THREE.Vector3;this.normalModelView=new THREE.Vector3;this.vertexNormalsLength=0;this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.vertexNormalsModelView=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.material=this.color=null;this.uvs=[[]];this.z=null};THREE.RenderableFace4=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.v4=new THREE.RenderableVertex;this.centroidModel=new THREE.Vector3;this.normalModel=new THREE.Vector3;this.normalModelView=new THREE.Vector3;this.vertexNormalsLength=0;this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.vertexNormalsModelView=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3]; +this.material=this.color=null;this.uvs=[[]];this.z=null};THREE.RenderableObject=function(){this.z=this.object=null};THREE.RenderableParticle=function(){this.rotation=this.z=this.y=this.x=this.object=null;this.scale=new THREE.Vector2;this.material=null};THREE.RenderableLine=function(){this.z=null;this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.material=null};THREE.GeometryUtils={merge:function(a,b){var c,d,e=a.vertices.length,f=b instanceof THREE.Mesh?b.geometry:b,g=a.vertices,h=f.vertices,i=a.faces,k=f.faces,l=a.faceVertexUvs[0],f=f.faceVertexUvs[0];b instanceof THREE.Mesh&&(b.matrixAutoUpdate&&b.updateMatrix(),c=b.matrix,d=new THREE.Matrix3,d.getInverse(c),d.transpose());for(var m=0,n=h.length;ma?b(c,e-1):k[e]>8&255,i>>16&255,i>>24&255)),d}d.mipmapCount=1;h[2]&131072&&!1!==b&&(d.mipmapCount=Math.max(1,h[7]));d.isCubemap=h[28]&512?!0:!1;d.width=h[4];d.height=h[3];for(var h=h[1]+4,f=d.width,g=d.height,i=d.isCubemap? +6:1,k=0;km-1?0:m-1,s=m+1>e-1?e-1:m+1,r=0>l-1?0:l-1,p=l+1>d-1?d-1:l+1,q=[],y=[0,0,h[4*(m*d+l)]/255*b];q.push([-1,0,h[4*(m*d+r)]/255*b]);q.push([-1,-1,h[4*(n*d+r)]/255*b]);q.push([0,-1,h[4*(n*d+l)]/255*b]);q.push([1,-1,h[4*(n*d+p)]/255*b]);q.push([1,0,h[4*(m*d+p)]/255*b]);q.push([1,1,h[4*(s*d+p)]/255*b]);q.push([0,1,h[4*(s*d+l)]/255*b]);q.push([-1,1,h[4*(s*d+r)]/255*b]);n=[];r=q.length;for(s=0;se)return null;var f=[],g=[],h=[],i,k,l;if(0=m--){console.log("Warning, unable to triangulate polygon!");break}i=k;e<=i&&(i=0);k=i+1;e<=k&&(k=0);l=k+1;e<=l&&(l=0);var n;a:{var s=n=void 0,r=void 0,p=void 0,q=void 0,y=void 0,v=void 0,z=void 0,t= +void 0,s=a[g[i]].x,r=a[g[i]].y,p=a[g[k]].x,q=a[g[k]].y,y=a[g[l]].x,v=a[g[l]].y;if(1E-10>(p-s)*(v-r)-(q-r)*(y-s))n=!1;else{var A=void 0,I=void 0,C=void 0,x=void 0,G=void 0,J=void 0,E=void 0,H=void 0,B=void 0,W=void 0,B=H=E=t=z=void 0,A=y-p,I=v-q,C=s-y,x=r-v,G=p-s,J=q-r;for(n=0;ni)g=d+1;else if(0b&&(b=0);1d.length-2?d.length-1:a+1;c[3]=a>d.length-3?d.length-1:a+2;b.x=THREE.Curve.Utils.interpolate(d[c[0]].x,d[c[1]].x,d[c[2]].x,d[c[3]].x,e);b.y=THREE.Curve.Utils.interpolate(d[c[0]].y,d[c[1]].y,d[c[2]].y,d[c[3]].y,e);return b}; +THREE.EllipseCurve=function(a,b,c,d,e,f,g){this.aX=a;this.aY=b;this.xRadius=c;this.yRadius=d;this.aStartAngle=e;this.aEndAngle=f;this.aClockwise=g};THREE.EllipseCurve.prototype=Object.create(THREE.Curve.prototype);THREE.EllipseCurve.prototype.getPoint=function(a){var b=this.aEndAngle-this.aStartAngle;this.aClockwise||(a=1-a);b=this.aStartAngle+a*b;a=this.aX+this.xRadius*Math.cos(b);b=this.aY+this.yRadius*Math.sin(b);return new THREE.Vector2(a,b)}; +THREE.ArcCurve=function(a,b,c,d,e,f){THREE.EllipseCurve.call(this,a,b,c,c,d,e,f)};THREE.ArcCurve.prototype=Object.create(THREE.EllipseCurve.prototype); +THREE.Curve.Utils={tangentQuadraticBezier:function(a,b,c,d){return 2*(1-a)*(c-b)+2*a*(d-c)},tangentCubicBezier:function(a,b,c,d,e){return-3*b*(1-a)*(1-a)+3*c*(1-a)*(1-a)-6*a*c*(1-a)+6*a*d*(1-a)-3*a*a*d+3*a*a*e},tangentSpline:function(a){return 6*a*a-6*a+(3*a*a-4*a+1)+(-6*a*a+6*a)+(3*a*a-2*a)},interpolate:function(a,b,c,d,e){var a=0.5*(c-a),d=0.5*(d-b),f=e*e;return(2*b-2*c+a+d)*e*f+(-3*b+3*c-2*a-d)*f+a*e+b}}; +THREE.Curve.create=function(a,b){a.prototype=Object.create(THREE.Curve.prototype);a.prototype.getPoint=b;return a};THREE.LineCurve3=THREE.Curve.create(function(a,b){this.v1=a;this.v2=b},function(a){var b=new THREE.Vector3;b.subVectors(this.v2,this.v1);b.multiplyScalar(a);b.add(this.v1);return b}); +THREE.QuadraticBezierCurve3=THREE.Curve.create(function(a,b,c){this.v0=a;this.v1=b;this.v2=c},function(a){var b,c;b=THREE.Shape.Utils.b2(a,this.v0.x,this.v1.x,this.v2.x);c=THREE.Shape.Utils.b2(a,this.v0.y,this.v1.y,this.v2.y);a=THREE.Shape.Utils.b2(a,this.v0.z,this.v1.z,this.v2.z);return new THREE.Vector3(b,c,a)}); +THREE.CubicBezierCurve3=THREE.Curve.create(function(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d},function(a){var b,c;b=THREE.Shape.Utils.b3(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);c=THREE.Shape.Utils.b3(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);a=THREE.Shape.Utils.b3(a,this.v0.z,this.v1.z,this.v2.z,this.v3.z);return new THREE.Vector3(b,c,a)}); +THREE.SplineCurve3=THREE.Curve.create(function(a){this.points=void 0==a?[]:a},function(a){var b=new THREE.Vector3,c=[],d=this.points,e,a=(d.length-1)*a;e=Math.floor(a);a-=e;c[0]=0==e?e:e-1;c[1]=e;c[2]=e>d.length-2?d.length-1:e+1;c[3]=e>d.length-3?d.length-1:e+2;e=d[c[0]];var f=d[c[1]],g=d[c[2]],c=d[c[3]];b.x=THREE.Curve.Utils.interpolate(e.x,f.x,g.x,c.x,a);b.y=THREE.Curve.Utils.interpolate(e.y,f.y,g.y,c.y,a);b.z=THREE.Curve.Utils.interpolate(e.z,f.z,g.z,c.z,a);return b}); +THREE.ClosedSplineCurve3=THREE.Curve.create(function(a){this.points=void 0==a?[]:a},function(a){var b=new THREE.Vector3,c=[],d=this.points,e;e=(d.length-0)*a;a=Math.floor(e);e-=a;a+=0=b)return b=c[a]-b,a=this.curves[a],b=1-b/a.getLength(),a.getPointAt(b);a++}return null};THREE.CurvePath.prototype.getLength=function(){var a=this.getCurveLengths();return a[a.length-1]}; +THREE.CurvePath.prototype.getCurveLengths=function(){if(this.cacheLengths&&this.cacheLengths.length==this.curves.length)return this.cacheLengths;var a=[],b=0,c,d=this.curves.length;for(c=0;cb?b=h.x:h.xc?c=h.y:h.yd?d=h.z:h.zMath.abs(d.x-c[0].x)&&1E-10>Math.abs(d.y-c[0].y)&&c.splice(c.length-1,1);b&&c.push(c[0]);return c}; +THREE.Path.prototype.toShapes=function(){var a,b,c,d,e=[],f=new THREE.Path;a=0;for(b=this.actions.length;a +h&&(h+=c.length);h%=c.length;0>g&&(g+=k.length);g%=k.length;e=0<=h-1?h-1:c.length-1;f=0<=g-1?g-1:k.length-1;p=[k[g],c[h],c[e]];p=THREE.FontUtils.Triangulate.area(p);q=[k[g],k[f],c[h]];q=THREE.FontUtils.Triangulate.area(q);m+n>p+q&&(h=s,g=l,0>h&&(h+=c.length),h%=c.length,0>g&&(g+=k.length),g%=k.length,e=0<=h-1?h-1:c.length-1,f=0<=g-1?g-1:k.length-1);m=c.slice(0,h);n=c.slice(h);s=k.slice(g);l=k.slice(0,g);f=[k[g],k[f],c[h]];r.push([k[g],c[h],c[e]]);r.push(f);c=m.concat(s).concat(l).concat(n)}return{shape:c, +isolatedPts:r,allpoints:d}},triangulateShape:function(a,b){var c=THREE.Shape.Utils.removeHoles(a,b),d=c.allpoints,e=c.isolatedPts,c=THREE.FontUtils.Triangulate(c.shape,!1),f,g,h,i,k={};f=0;for(g=d.length;fd;d++)i=h[d].x+":"+h[d].y,i=k[i],void 0!==i&&(h[d]=i)}f=0;for(g=e.length;fd;d++)i=h[d].x+":"+h[d].y,i=k[i],void 0!==i&&(h[d]=i)}return c.concat(e)}, +isClockWise:function(a){return 0>THREE.FontUtils.Triangulate.area(a)},b2p0:function(a,b){var c=1-a;return c*c*b},b2p1:function(a,b){return 2*(1-a)*a*b},b2p2:function(a,b){return a*a*b},b2:function(a,b,c,d){return this.b2p0(a,b)+this.b2p1(a,c)+this.b2p2(a,d)},b3p0:function(a,b){var c=1-a;return c*c*c*b},b3p1:function(a,b){var c=1-a;return 3*c*c*a*b},b3p2:function(a,b){return 3*(1-a)*a*a*b},b3p3:function(a,b){return a*a*a*b},b3:function(a,b,c,d,e){return this.b3p0(a,b)+this.b3p1(a,c)+this.b3p2(a,d)+ +this.b3p3(a,e)}};THREE.AnimationHandler=function(){var a=[],b={},c={update:function(b){for(var c=0;ca.hierarchy[c].keys[d].time&& +(a.hierarchy[c].keys[d].time=0),void 0!==a.hierarchy[c].keys[d].rot&&!(a.hierarchy[c].keys[d].rot instanceof THREE.Quaternion)){var h=a.hierarchy[c].keys[d].rot;a.hierarchy[c].keys[d].rot=new THREE.Quaternion(h[0],h[1],h[2],h[3])}if(a.hierarchy[c].keys.length&&void 0!==a.hierarchy[c].keys[0].morphTargets){h={};for(d=0;ds;s++){c=b[s];g=i.prevKey[c];h=i.nextKey[c];if(h.time<=l){if(kd||1d?0:1;if("pos"===c)if(c=a.position,this.interpolationType===THREE.AnimationHandler.LINEAR)c.x=e[0]+(f[0]-e[0])*d,c.y=e[1]+(f[1]-e[1])*d,c.z=e[2]+ +(f[2]-e[2])*d;else{if(this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD)this.points[0]=this.getPrevKeyWith("pos",m,g.index-1).pos,this.points[1]=e,this.points[2]=f,this.points[3]=this.getNextKeyWith("pos",m,h.index+1).pos,d=0.33*d+0.33,e=this.interpolateCatmullRom(this.points,d),c.x=e[0],c.y=e[1],c.z=e[2],this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD&&(d=this.interpolateCatmullRom(this.points,1.01*d), +this.target.set(d[0],d[1],d[2]),this.target.sub(c),this.target.y=0,this.target.normalize(),d=Math.atan2(this.target.x,this.target.z),a.rotation.set(0,d,0))}else"rot"===c?THREE.Quaternion.slerp(e,f,a.quaternion,d):"scl"===c&&(c=a.scale,c.x=e[0]+(f[0]-e[0])*d,c.y=e[1]+(f[1]-e[1])*d,c.z=e[2]+(f[2]-e[2])*d)}}}}; +THREE.Animation.prototype.interpolateCatmullRom=function(a,b){var c=[],d=[],e,f,g,h,i,k;e=(a.length-1)*b;f=Math.floor(e);e-=f;c[0]=0===f?f:f-1;c[1]=f;c[2]=f>a.length-2?f:f+1;c[3]=f>a.length-3?f:f+2;f=a[c[0]];h=a[c[1]];i=a[c[2]];k=a[c[3]];c=e*e;g=e*c;d[0]=this.interpolate(f[0],h[0],i[0],k[0],e,c,g);d[1]=this.interpolate(f[1],h[1],i[1],k[1],e,c,g);d[2]=this.interpolate(f[2],h[2],i[2],k[2],e,c,g);return d}; +THREE.Animation.prototype.interpolate=function(a,b,c,d,e,f,g){a=0.5*(c-a);d=0.5*(d-b);return(2*(b-c)+a+d)*g+(-3*(b-c)-2*a-d)*f+a*e+b};THREE.Animation.prototype.getNextKeyWith=function(a,b,c){for(var d=this.data.hierarchy[b].keys,c=this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD?c=g?b.interpolate(c,g):b.interpolate(c,c.time)}this.data.hierarchy[a].node.updateMatrix();d.matrixWorldNeedsUpdate=!0}}if(this.JITCompile&&void 0===f[0][e]){this.hierarchy[0].updateMatrixWorld(!0);for(a=0;ag?(b=Math.atan2(b.y-a.y,b.x-a.x),a=Math.atan2(c.y-a.y,c.x-a.x),b>a&&(a+=2*Math.PI),c=(b+a)/2,a=-Math.cos(c),c=-Math.sin(c),new THREE.Vector2(a,c)):d.multiplyScalar(g).add(i).sub(a).clone()}function e(c,d){var e,f;for(M=c.length;0<=--M;){e=M;f=M-1;0>f&&(f=c.length-1);for(var g=0,i=s+2*l, +g=0;gMath.abs(c-i)?[new THREE.Vector2(b,1-e),new THREE.Vector2(d,1-f),new THREE.Vector2(k,1-g),new THREE.Vector2(m,1-a)]:[new THREE.Vector2(c,1-e),new THREE.Vector2(i,1-f),new THREE.Vector2(l,1-g),new THREE.Vector2(n,1-a)]}};THREE.ExtrudeGeometry.__v1=new THREE.Vector2;THREE.ExtrudeGeometry.__v2=new THREE.Vector2;THREE.ExtrudeGeometry.__v3=new THREE.Vector2;THREE.ExtrudeGeometry.__v4=new THREE.Vector2; +THREE.ExtrudeGeometry.__v5=new THREE.Vector2;THREE.ExtrudeGeometry.__v6=new THREE.Vector2;THREE.ShapeGeometry=function(a,b){THREE.Geometry.call(this);!1===a instanceof Array&&(a=[a]);this.shapebb=a[a.length-1].getBoundingBox();this.addShapeList(a,b);this.computeCentroids();this.computeFaceNormals()};THREE.ShapeGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ShapeGeometry.prototype.addShapeList=function(a,b){for(var c=0,d=a.length;cd?(d=new THREE.Face3(a.index,b.index,c.index,[a.clone(),b.clone(),c.clone()]),d.centroid.add(a).add(b).add(c).divideScalar(3),d.normal=d.centroid.clone().normalize(),i.faces.push(d),d=Math.atan2(d.centroid.z,-d.centroid.x),i.faceVertexUvs[0].push([h(a.uv, +a,d),h(b.uv,b,d),h(c.uv,c,d)])):(d-=1,f(a,g(a,b),g(a,c),d),f(g(a,b),b,g(b,c),d),f(g(a,c),g(b,c),c,d),f(g(a,b),g(b,c),g(a,c),d))}function g(a,b){m[a.index]||(m[a.index]=[]);m[b.index]||(m[b.index]=[]);var c=m[a.index][b.index];void 0===c&&(m[a.index][b.index]=m[b.index][a.index]=c=e((new THREE.Vector3).addVectors(a,b).divideScalar(2)));return c}function h(a,b,c){0>c&&1===a.x&&(a=new THREE.Vector2(a.x-1,a.y));0===b.x&&0===b.z&&(a=new THREE.Vector2(c/2/Math.PI+0.5,a.y));return a}THREE.Geometry.call(this); +for(var c=c||1,d=d||0,i=this,k=0,l=a.length;k=l){for(k=0;3>k;k++){l=[i[k],i[(k+1)%3]];m=!0;for(n=0;nh;h++)void 0===f[g[h]]&&(f[g[h]]=e++,this.vertices.push(a[g[h]])),g[h]=f[g[h]]}for(d=0;db.y?this.rotation.set(Math.PI,0,0):(a=THREE.ArrowHelper.__v2.set(b.z,0,-b.x).normalize(),b=Math.acos(b.y),a=THREE.ArrowHelper.__q1.setFromAxisAngle(a,b),this.rotation.setEulerFromQuaternion(a,this.eulerOrder))}; +THREE.ArrowHelper.prototype.setLength=function(a){this.scale.set(a,a,a)};THREE.ArrowHelper.prototype.setColor=function(a){this.line.material.color.setHex(a);this.cone.material.color.setHex(a)};THREE.ArrowHelper.__v1=new THREE.Vector3;THREE.ArrowHelper.__v2=new THREE.Vector3;THREE.ArrowHelper.__q1=new THREE.Quaternion;THREE.CameraHelper=function(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){d.geometry.vertices.push(new THREE.Vector3);d.geometry.colors.push(new THREE.Color(b));void 0===d.pointMap[a]&&(d.pointMap[a]=[]);d.pointMap[a].push(d.geometry.vertices.length-1)}THREE.Line.call(this);var d=this;this.geometry=new THREE.Geometry;this.material=new THREE.LineBasicMaterial({color:16777215,vertexColors:THREE.FaceColors});this.type=THREE.LinePieces;this.matrixWorld=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap= +{};b("n1","n2",16755200);b("n2","n4",16755200);b("n4","n3",16755200);b("n3","n1",16755200);b("f1","f2",16755200);b("f2","f4",16755200);b("f4","f3",16755200);b("f3","f1",16755200);b("n1","f1",16755200);b("n2","f2",16755200);b("n3","f3",16755200);b("n4","f4",16755200);b("p","n1",16711680);b("p","n2",16711680);b("p","n3",16711680);b("p","n4",16711680);b("u1","u2",43775);b("u2","u3",43775);b("u3","u1",43775);b("c","t",16777215);b("p","c",3355443);b("cn1","cn2",3355443);b("cn3","cn4",3355443);b("cf1", +"cf2",3355443);b("cf3","cf4",3355443);this.camera=a;this.update(a)};THREE.CameraHelper.prototype=Object.create(THREE.Line.prototype); +THREE.CameraHelper.prototype.update=function(){function a(a,d,e,f){THREE.CameraHelper.__v.set(d,e,f);THREE.CameraHelper.__projector.unprojectVector(THREE.CameraHelper.__v,THREE.CameraHelper.__c);a=b.pointMap[a];if(void 0!==a){d=0;for(e=a.length;dh.end&&(h.end=f);c||(c=i)}}for(i in d)h=d[i],this.createAnimation(i,h.start,h.end,a);this.firstAnimation=c}; +THREE.MorphBlendMesh.prototype.setAnimationDirectionForward=function(a){if(a=this.animationsMap[a])a.direction=1,a.directionBackwards=!1};THREE.MorphBlendMesh.prototype.setAnimationDirectionBackward=function(a){if(a=this.animationsMap[a])a.direction=-1,a.directionBackwards=!0};THREE.MorphBlendMesh.prototype.setAnimationFPS=function(a,b){var c=this.animationsMap[a];c&&(c.fps=b,c.duration=(c.end-c.start)/c.fps)}; +THREE.MorphBlendMesh.prototype.setAnimationDuration=function(a,b){var c=this.animationsMap[a];c&&(c.duration=b,c.fps=(c.end-c.start)/c.duration)};THREE.MorphBlendMesh.prototype.setAnimationWeight=function(a,b){var c=this.animationsMap[a];c&&(c.weight=b)};THREE.MorphBlendMesh.prototype.setAnimationTime=function(a,b){var c=this.animationsMap[a];c&&(c.time=b)};THREE.MorphBlendMesh.prototype.getAnimationTime=function(a){var b=0;if(a=this.animationsMap[a])b=a.time;return b}; +THREE.MorphBlendMesh.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};THREE.MorphBlendMesh.prototype.playAnimation=function(a){var b=this.animationsMap[a];b?(b.time=0,b.active=!0):console.warn("animation["+a+"] undefined")};THREE.MorphBlendMesh.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1}; +THREE.MorphBlendMesh.prototype.update=function(a){for(var b=0,c=this.animationsList.length;bd.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&(d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.startFrame+THREE.Math.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight; +f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);this.morphTargetInfluences[d.currentFrame]=e*g;this.morphTargetInfluences[d.lastFrame]=(1-e)*g}}};THREE.LensFlarePlugin=function(){function a(a,c){var d=b.createProgram(),e=b.createShader(b.FRAGMENT_SHADER),f=b.createShader(b.VERTEX_SHADER),g="precision "+c+" float;\n";b.shaderSource(e,g+a.fragmentShader);b.shaderSource(f,g+a.vertexShader);b.compileShader(e);b.compileShader(f);b.attachShader(d,e);b.attachShader(d,f);b.linkProgram(d);return d}var b,c,d,e,f,g,h,i,k,l,m,n,s;this.init=function(r){b=r.context;c=r;d=r.getPrecision();e=new Float32Array(16);f=new Uint16Array(6);r=0;e[r++]=-1;e[r++]=-1; +e[r++]=0;e[r++]=0;e[r++]=1;e[r++]=-1;e[r++]=1;e[r++]=0;e[r++]=1;e[r++]=1;e[r++]=1;e[r++]=1;e[r++]=-1;e[r++]=1;e[r++]=0;e[r++]=1;r=0;f[r++]=0;f[r++]=1;f[r++]=2;f[r++]=0;f[r++]=2;f[r++]=3;g=b.createBuffer();h=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,g);b.bufferData(b.ARRAY_BUFFER,e,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.bufferData(b.ELEMENT_ARRAY_BUFFER,f,b.STATIC_DRAW);i=b.createTexture();k=b.createTexture();b.bindTexture(b.TEXTURE_2D,i);b.texImage2D(b.TEXTURE_2D,0,b.RGB,16,16, +0,b.RGB,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);b.bindTexture(b.TEXTURE_2D,k);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,16,16,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE); +b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);0>=b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)?(l=!1,m=a(THREE.ShaderFlares.lensFlare,d)):(l=!0,m=a(THREE.ShaderFlares.lensFlareVertexTexture,d));n={};s={};n.vertex=b.getAttribLocation(m,"position");n.uv=b.getAttribLocation(m,"uv");s.renderType=b.getUniformLocation(m,"renderType");s.map=b.getUniformLocation(m,"map");s.occlusionMap=b.getUniformLocation(m,"occlusionMap");s.opacity= +b.getUniformLocation(m,"opacity");s.color=b.getUniformLocation(m,"color");s.scale=b.getUniformLocation(m,"scale");s.rotation=b.getUniformLocation(m,"rotation");s.screenPosition=b.getUniformLocation(m,"screenPosition")};this.render=function(a,d,e,f){var a=a.__webglFlares,v=a.length;if(v){var z=new THREE.Vector3,t=f/e,A=0.5*e,I=0.5*f,C=16/f,x=new THREE.Vector2(C*t,C),G=new THREE.Vector3(1,1,0),J=new THREE.Vector2(1,1),E=s,C=n;b.useProgram(m);b.enableVertexAttribArray(n.vertex);b.enableVertexAttribArray(n.uv); +b.uniform1i(E.occlusionMap,0);b.uniform1i(E.map,1);b.bindBuffer(b.ARRAY_BUFFER,g);b.vertexAttribPointer(C.vertex,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(C.uv,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,h);b.disable(b.CULL_FACE);b.depthMask(!1);var H,B,W,F,K;for(H=0;Hx;x++)t[x]=new THREE.Vector3,v[x]=new THREE.Vector3;t=A.shadowCascadeNearZ[z];A=A.shadowCascadeFarZ[z];v[0].set(-1,-1,t);v[1].set(1,-1,t);v[2].set(-1, +1,t);v[3].set(1,1,t);v[4].set(-1,-1,A);v[5].set(1,-1,A);v[6].set(-1,1,A);v[7].set(1,1,A);C.originalCamera=n;v=new THREE.Gyroscope;v.position=p.shadowCascadeOffset;v.add(C);v.add(C.target);n.add(v);p.shadowCascadeArray[y]=C;console.log("Created virtualLight",C)}z=p;t=y;A=z.shadowCascadeArray[t];A.position.copy(z.position);A.target.position.copy(z.target.position);A.lookAt(A.target);A.shadowCameraVisible=z.shadowCameraVisible;A.shadowDarkness=z.shadowDarkness;A.shadowBias=z.shadowCascadeBias[t];v=z.shadowCascadeNearZ[t]; +z=z.shadowCascadeFarZ[t];A=A.pointsFrustum;A[0].z=v;A[1].z=v;A[2].z=v;A[3].z=v;A[4].z=z;A[5].z=z;A[6].z=z;A[7].z=z;I[q]=C;q++}else I[q]=p,q++;s=0;for(r=I.length;sz;z++)t=A[z],t.copy(v[z]),THREE.ShadowMapPlugin.__projector.unprojectVector(t,y),t.applyMatrix4(q.matrixWorldInverse),t.xk.x&&(k.x=t.x),t.yk.y&&(k.y=t.y),t.zk.z&& +(k.z=t.z);q.left=i.x;q.right=k.x;q.top=k.y;q.bottom=i.y;q.updateProjectionMatrix()}q=p.shadowMap;v=p.shadowMatrix;y=p.shadowCamera;y.position.getPositionFromMatrix(p.matrixWorld);l.getPositionFromMatrix(p.target.matrixWorld);y.lookAt(l);y.updateMatrixWorld();y.matrixWorldInverse.getInverse(y.matrixWorld);p.cameraHelper&&(p.cameraHelper.visible=p.shadowCameraVisible);p.shadowCameraVisible&&p.cameraHelper.update();v.set(0.5,0,0,0.5,0,0.5,0,0.5,0,0,0.5,0.5,0,0,0,1);v.multiply(y.projectionMatrix);v.multiply(y.matrixWorldInverse); +h.multiplyMatrices(y.projectionMatrix,y.matrixWorldInverse);g.setFromMatrix(h);b.setRenderTarget(q);b.clear();A=m.__webglObjects;p=0;for(q=A.length;p 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"}}; +/*! jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
t
",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;be.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="
",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="

",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
","
"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(e,t,r){t.isDark=!0,t.cssClass="ace-monokai",t.cssText=".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai .ace_scroller {background-color: #272822}.ace-monokai .ace_text-layer {color: #F8F8F2}.ace-monokai .ace_cursor {border-left: 2px solid #F8F8F0}.ace-monokai .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;border-radius: 2px}.ace-monokai .ace_marker-layer .ace_step {background: rgb(60, 10, 10)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_markup.ace_underline {text-decoration: underline}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ11D6z7Bq1ar/ABCKBG6g04U2AAAAAElFTkSuQmCC) right repeat-y}";var a=e("../lib/dom");a.importCssString(t.cssText,t.cssClass)}),THREE.OrbitControls=function(e,t){function r(){return 2*Math.PI/60/60*l.autoRotateSpeed}function a(){return Math.pow(.95,l.userZoomSpeed)}function i(e){l.userRotate&&(e.preventDefault(),0===e.button||2===e.button?(y=v.ROTATE,d.set(e.clientX,e.clientY)):1===e.button&&(y=v.ZOOM,p.set(e.clientX,e.clientY)),document.addEventListener("mousemove",n,!1),document.addEventListener("mouseup",o,!1))}function n(e){e.preventDefault(),y===v.ROTATE?(c.set(e.clientX,e.clientY),h.subVectors(c,d),l.rotateLeft(2*Math.PI*h.x/f*l.userRotateSpeed),l.rotateUp(2*Math.PI*h.y/f*l.userRotateSpeed),d.copy(c)):y===v.ZOOM&&(m.set(e.clientX,e.clientY),_.subVectors(m,p),_.y>0?l.zoomIn():l.zoomOut(),p.copy(m))}function o(e){l.userRotate&&(document.removeEventListener("mousemove",n,!1),document.removeEventListener("mouseup",o,!1),y=v.NONE)}function s(e){if(l.userZoom){var t=0;e.wheelDelta?t=e.wheelDelta:e.detail&&(t=-e.detail),t>0?l.zoomOut():l.zoomIn()}}THREE.EventDispatcher.call(this),this.object=e,this.domElement=void 0!==t?t:document,this.center=new THREE.Vector3,this.userZoom=!0,this.userZoomSpeed=1,this.userRotate=!0,this.userRotateSpeed=1,this.autoRotate=!1,this.autoRotateSpeed=2,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minDistance=0,this.maxDistance=1/0;var l=this,u=1e-6,f=1800,d=new THREE.Vector2,c=new THREE.Vector2,h=new THREE.Vector2,p=new THREE.Vector2,m=new THREE.Vector2,_=new THREE.Vector2,E=0,g=0,b=1,R=new THREE.Vector3,v={NONE:-1,ROTATE:0,ZOOM:1},y=v.NONE,A={type:"change"};this.rotateLeft=function(e){void 0===e&&(e=r()),g-=e},this.rotateRight=function(e){void 0===e&&(e=r()),g+=e},this.rotateUp=function(e){void 0===e&&(e=r()),E-=e},this.rotateDown=function(e){void 0===e&&(e=r()),E+=e},this.zoomIn=function(e){void 0===e&&(e=a()),b/=e},this.zoomOut=function(e){void 0===e&&(e=a()),b*=e},this.update=function(){var e=this.object.position,t=e.clone().sub(this.center),a=Math.atan2(t.x,t.z),i=Math.atan2(Math.sqrt(t.x*t.x+t.z*t.z),t.y);this.autoRotate&&this.rotateLeft(r()),a+=g,i+=E,i=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,i)),i=Math.max(u,Math.min(Math.PI-u,i));var n=t.length()*b;n=Math.max(this.minDistance,Math.min(this.maxDistance,n)),t.x=n*Math.sin(i)*Math.sin(a),t.y=n*Math.cos(i),t.z=n*Math.sin(i)*Math.cos(a),e.copy(this.center).add(t),this.object.lookAt(this.center),g=0,E=0,b=1,R.distanceTo(this.object.position)>0&&(this.dispatchEvent(A),R.copy(this.object.position))},this.domElement.addEventListener("contextmenu",function(e){e.preventDefault()},!1),this.domElement.addEventListener("mousedown",i,!1),this.domElement.addEventListener("mousewheel",s,!1),this.domElement.addEventListener("DOMMouseScroll",s,!1)},THREE.WebGLRenderer=function(e){function t(e){e.__webglVertexBuffer=He.createBuffer(),e.__webglColorBuffer=He.createBuffer(),Xe.info.memory.geometries++}function r(e){e.__webglVertexBuffer=He.createBuffer(),e.__webglColorBuffer=He.createBuffer(),e.__webglLineDistanceBuffer=He.createBuffer(),Xe.info.memory.geometries++}function a(e){e.__webglVertexBuffer=He.createBuffer(),e.__webglColorBuffer=He.createBuffer(),e.__webglNormalBuffer=He.createBuffer(),Xe.info.memory.geometries++}function i(e){e.__webglVertexBuffer=He.createBuffer(),e.__webglNormalBuffer=He.createBuffer(),e.__webglTangentBuffer=He.createBuffer(),e.__webglColorBuffer=He.createBuffer(),e.__webglUVBuffer=He.createBuffer(),e.__webglUV2Buffer=He.createBuffer(),e.__webglSkinIndicesBuffer=He.createBuffer(),e.__webglSkinWeightsBuffer=He.createBuffer(),e.__webglFaceBuffer=He.createBuffer(),e.__webglLineBuffer=He.createBuffer();var t,r;if(e.numMorphTargets)for(e.__webglMorphTargetsBuffers=[],t=0,r=e.numMorphTargets;t0||r.faceVertexUvs.length>0)&&(e.__uvArray=new Float32Array(2*n)),(r.faceUvs.length>1||r.faceVertexUvs.length>1)&&(e.__uv2Array=new Float32Array(2*n))),t.geometry.skinWeights.length&&t.geometry.skinIndices.length&&(e.__skinIndexArray=new Float32Array(4*n),e.__skinWeightArray=new Float32Array(4*n)),e.__faceArray=new Uint16Array(3*o),e.__lineArray=new Uint16Array(2*s);var _,E;if(e.numMorphTargets)for(e.__morphTargetsArrays=[],_=0,E=e.numMorphTargets;_0&&(He.bindBuffer(He.ARRAY_BUFFER,e.__webglSkinIndicesBuffer),He.bufferData(He.ARRAY_BUFFER,we,r),He.bindBuffer(He.ARRAY_BUFFER,e.__webglSkinWeightsBuffer),He.bufferData(He.ARRAY_BUFFER,xe,r))}if(Oe&&ae){for(n=0,o=ke.length;n0&&(He.bindBuffer(He.ARRAY_BUFFER,e.__webglColorBuffer),He.bufferData(He.ARRAY_BUFFER,Te,r))}if(Ie&&Ne.hasTangents){for(n=0,o=ke.length;n0&&(He.bindBuffer(He.ARRAY_BUFFER,e.__webglUVBuffer),He.bufferData(He.ARRAY_BUFFER,Re,r))}if(Ce&&Ye&&ie){for(n=0,o=ke.length;n0&&(He.bindBuffer(He.ARRAY_BUFFER,e.__webglUV2Buffer),He.bufferData(He.ARRAY_BUFFER,ve,r))}if(Le){for(n=0,o=ke.length;n=0?(He.bindBuffer(He.ARRAY_BUFFER,t.__webglMorphTargetsBuffers[r.morphTargetBase]),y(a.position),He.vertexAttribPointer(a.position,3,He.FLOAT,!1,0,0)):a.position>=0&&(He.bindBuffer(He.ARRAY_BUFFER,t.__webglVertexBuffer),y(a.position),He.vertexAttribPointer(a.position,3,He.FLOAT,!1,0,0)),r.morphTargetForcedOrder.length)for(var i=0,n=r.morphTargetForcedOrder,o=r.morphTargetInfluences;i=0&&(He.bindBuffer(He.ARRAY_BUFFER,t.__webglMorphTargetsBuffers[n[i]]),y(a["morphTarget"+i]),He.vertexAttribPointer(a["morphTarget"+i],3,He.FLOAT,!1,0,0)),a["morphNormal"+i]>=0&&e.morphNormals&&(He.bindBuffer(He.ARRAY_BUFFER,t.__webglMorphNormalsBuffers[n[i]]),y(a["morphNormal"+i]),He.vertexAttribPointer(a["morphNormal"+i],3,He.FLOAT,!1,0,0)),r.__webglMorphTargetInfluences[i]=o[n[i]],i++;else{var s,l,u=[],o=r.morphTargetInfluences,f=o.length;for(l=0;l0&&u.push([s,l]);u.length>e.numSupportedMorphTargets?(u.sort(x),u.length=e.numSupportedMorphTargets):u.length>e.numSupportedMorphNormals?u.sort(x):0===u.length&&u.push([0,0]);for(var d,i=0;i=0&&(He.bindBuffer(He.ARRAY_BUFFER,t.__webglMorphTargetsBuffers[d]),y(a["morphTarget"+i]),He.vertexAttribPointer(a["morphTarget"+i],3,He.FLOAT,!1,0,0)),a["morphNormal"+i]>=0&&e.morphNormals&&(He.bindBuffer(He.ARRAY_BUFFER,t.__webglMorphNormalsBuffers[d]),y(a["morphNormal"+i]),He.vertexAttribPointer(a["morphNormal"+i],3,He.FLOAT,!1,0,0)),r.__webglMorphTargetInfluences[i]=o[d]):r.__webglMorphTargetInfluences[i]=0,i++}null!==e.program.uniforms.morphTargetInfluences&&He.uniform1fv(e.program.uniforms.morphTargetInfluences,r.__webglMorphTargetInfluences)}function w(e,t){return e.z!==t.z?t.z-e.z:t.id-e.id}function x(e,t){return t[0]-e[0]}function M(e,t,r){if(e.length)for(var a=0,i=e.length;a65535&&(l[n].counter+=1,s=l[n].hash+"_"+l[n].counter,void 0===e.geometryGroups[s]&&(e.geometryGroups[s]={faces3:[],faces4:[],materialIndex:n,vertices:0,numMorphTargets:u,numMorphNormals:f})),i instanceof THREE.Face3?e.geometryGroups[s].faces3.push(r):e.geometryGroups[s].faces4.push(r),e.geometryGroups[s].vertices+=o;e.geometryGroupsList=[];for(var c in e.geometryGroups)e.geometryGroups[c].id=Ze++,e.geometryGroupsList.push(e.geometryGroups[c])}function D(e,n){var o,d,c,h;if(!e.__webglInit)if(e.__webglInit=!0,e._modelViewMatrix=new THREE.Matrix4,e._normalMatrix=new THREE.Matrix3,void 0!==e.geometry&&void 0===e.geometry.__webglInit&&(e.geometry.__webglInit=!0,e.geometry.addEventListener("dispose",It)),e instanceof THREE.Mesh)if(d=e.geometry,c=e.material,d instanceof THREE.Geometry){void 0===d.geometryGroups&&N(d,c);for(o in d.geometryGroups)h=d.geometryGroups[o],h.__webglVertexBuffer||(i(h),f(h,e),d.verticesNeedUpdate=!0,d.morphTargetsNeedUpdate=!0,d.elementsNeedUpdate=!0,d.uvsNeedUpdate=!0,d.normalsNeedUpdate=!0,d.tangentsNeedUpdate=!0,d.colorsNeedUpdate=!0)}else d instanceof THREE.BufferGeometry&&_(d);else e instanceof THREE.Ribbon?(d=e.geometry,d.__webglVertexBuffer||(a(d),u(d,e),d.verticesNeedUpdate=!0,d.colorsNeedUpdate=!0,d.normalsNeedUpdate=!0)):e instanceof THREE.Line?(d=e.geometry,d.__webglVertexBuffer||(d instanceof THREE.Geometry?(r(d),l(d,e),d.verticesNeedUpdate=!0,d.colorsNeedUpdate=!0,d.lineDistancesNeedUpdate=!0):d instanceof THREE.BufferGeometry&&_(d))):e instanceof THREE.ParticleSystem&&(d=e.geometry,d.__webglVertexBuffer||(d instanceof THREE.Geometry?(t(d),s(d,e),d.verticesNeedUpdate=!0,d.colorsNeedUpdate=!0):d instanceof THREE.BufferGeometry&&_(d)));if(!e.__webglActive){if(e instanceof THREE.Mesh){if(d=e.geometry,d instanceof THREE.BufferGeometry)L(n.__webglObjects,d,e);else if(d instanceof THREE.Geometry)for(o in d.geometryGroups)h=d.geometryGroups[o],L(n.__webglObjects,h,e)}else e instanceof THREE.Ribbon||e instanceof THREE.Line||e instanceof THREE.ParticleSystem?(d=e.geometry,L(n.__webglObjects,d,e)):e instanceof THREE.ImmediateRenderObject||e.immediateRenderCallback?C(n.__webglObjectsImmediate,e):e instanceof THREE.Sprite?n.__webglSprites.push(e):e instanceof THREE.LensFlare&&n.__webglFlares.push(e);e.__webglActive=!0}}function L(e,t,r){e.push({buffer:t,object:r,opaque:null,transparent:null})}function C(e,t){e.push({object:t,opaque:null,transparent:null})}function P(e){var t,r,a,i=e.geometry;if(e instanceof THREE.Mesh)if(i instanceof THREE.BufferGeometry)(i.verticesNeedUpdate||i.elementsNeedUpdate||i.uvsNeedUpdate||i.normalsNeedUpdate||i.colorsNeedUpdate||i.tangentsNeedUpdate)&&v(i,He.DYNAMIC_DRAW,!i.dynamic),i.verticesNeedUpdate=!1,i.elementsNeedUpdate=!1,i.uvsNeedUpdate=!1,i.normalsNeedUpdate=!1,i.colorsNeedUpdate=!1,i.tangentsNeedUpdate=!1;else{for(var n=0,o=i.geometryGroupsList.length;n=0;r--)e[r].object===t&&e.splice(r,1)}function G(e,t){for(var r=e.length-1;r>=0;r--)e[r]===t&&e.splice(r,1)}function k(e,t){e.uniforms=THREE.UniformsUtils.clone(t.uniforms),e.vertexShader=t.vertexShader,e.fragmentShader=t.fragmentShader}function X(e,t,r,a,i){Je=0,a.needsUpdate&&(a.program&&Vt(a),Xe.initMaterial(a,t,r,i),a.needsUpdate=!1),a.morphTargets&&(i.__webglMorphTargetInfluences||(i.__webglMorphTargetInfluences=new Float32Array(Xe.maxMorphTargets)));var n=!1,o=a.program,s=o.uniforms,l=a.uniforms;if(o!==Ye&&(He.useProgram(o),Ye=o,n=!0),a.id!==$e&&($e=a.id,n=!0),(n||e!==qe)&&(He.uniformMatrix4fv(s.projectionMatrix,!1,e.projectionMatrix.elements),e!==qe&&(qe=e)),a.skinning)if(Ut&&i.useVertexTexture){if(null!==s.boneTexture){var u=ee();He.uniform1i(s.boneTexture,u),Xe.setTexture(i.boneTexture,u)}}else null!==s.boneGlobalMatrices&&He.uniformMatrix4fv(s.boneGlobalMatrices,!1,i.boneMatrices);return n&&(r&&a.fog&&$(l,r),(a instanceof THREE.MeshPhongMaterial||a instanceof THREE.MeshLambertMaterial||a.lights)&&(At&&(ne(o,t),At=!1),Z(l,Tt)),(a instanceof THREE.MeshBasicMaterial||a instanceof THREE.MeshLambertMaterial||a instanceof THREE.MeshPhongMaterial)&&V(l,a),a instanceof THREE.LineBasicMaterial?W(l,a):a instanceof THREE.LineDashedMaterial?(W(l,a),Y(l,a)):a instanceof THREE.ParticleBasicMaterial?j(l,a):a instanceof THREE.MeshPhongMaterial?K(l,a):a instanceof THREE.MeshLambertMaterial?q(l,a):a instanceof THREE.MeshDepthMaterial?(l.mNear.value=e.near,l.mFar.value=e.far,l.opacity.value=a.opacity):a instanceof THREE.MeshNormalMaterial&&(l.opacity.value=a.opacity),i.receiveShadow&&!a._shadowPass&&J(l,t),te(o,a.uniformsList),(a instanceof THREE.ShaderMaterial||a instanceof THREE.MeshPhongMaterial||a.envMap)&&null!==s.cameraPosition&&(vt.getPositionFromMatrix(e.matrixWorld),He.uniform3f(s.cameraPosition,vt.x,vt.y,vt.z)),(a instanceof THREE.MeshPhongMaterial||a instanceof THREE.MeshLambertMaterial||a instanceof THREE.ShaderMaterial||a.skinning)&&null!==s.viewMatrix&&He.uniformMatrix4fv(s.viewMatrix,!1,e.matrixWorldInverse.elements)),Q(s,i),null!==s.modelMatrix&&He.uniformMatrix4fv(s.modelMatrix,!1,i.matrixWorld.elements),o}function V(e,t){e.opacity.value=t.opacity,Xe.gammaInput?e.diffuse.value.copyGammaToLinear(t.color):e.diffuse.value=t.color,e.map.value=t.map,e.lightMap.value=t.lightMap,e.specularMap.value=t.specularMap,t.bumpMap&&(e.bumpMap.value=t.bumpMap,e.bumpScale.value=t.bumpScale),t.normalMap&&(e.normalMap.value=t.normalMap,e.normalScale.value.copy(t.normalScale));var r;if(t.map?r=t.map:t.specularMap?r=t.specularMap:t.normalMap?r=t.normalMap:t.bumpMap&&(r=t.bumpMap),void 0!==r){var a=r.offset,i=r.repeat;e.offsetRepeat.value.set(a.x,a.y,i.x,i.y)}e.envMap.value=t.envMap,e.flipEnvMap.value=t.envMap instanceof THREE.WebGLRenderTargetCube?1:-1,Xe.gammaInput?e.reflectivity.value=t.reflectivity:e.reflectivity.value=t.reflectivity,e.refractionRatio.value=t.refractionRatio,e.combine.value=t.combine,e.useRefract.value=t.envMap&&t.envMap.mapping instanceof THREE.CubeRefractionMapping}function W(e,t){e.diffuse.value=t.color,e.opacity.value=t.opacity}function Y(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}function j(e,t){e.psColor.value=t.color,e.opacity.value=t.opacity,e.size.value=t.size,e.scale.value=Se.height/2,e.map.value=t.map}function $(e,t){e.fogColor.value=t.color,t instanceof THREE.Fog?(e.fogNear.value=t.near,e.fogFar.value=t.far):t instanceof THREE.FogExp2&&(e.fogDensity.value=t.density)}function K(e,t){e.shininess.value=t.shininess,Xe.gammaInput?(e.ambient.value.copyGammaToLinear(t.ambient),e.emissive.value.copyGammaToLinear(t.emissive),e.specular.value.copyGammaToLinear(t.specular)):(e.ambient.value=t.ambient,e.emissive.value=t.emissive,e.specular.value=t.specular),t.wrapAround&&e.wrapRGB.value.copy(t.wrapRGB)}function q(e,t){Xe.gammaInput?(e.ambient.value.copyGammaToLinear(t.ambient),e.emissive.value.copyGammaToLinear(t.emissive)):(e.ambient.value=t.ambient,e.emissive.value=t.emissive),t.wrapAround&&e.wrapRGB.value.copy(t.wrapRGB)}function Z(e,t){e.ambientLightColor.value=t.ambient,e.directionalLightColor.value=t.directional.colors,e.directionalLightDirection.value=t.directional.positions,e.pointLightColor.value=t.point.colors,e.pointLightPosition.value=t.point.positions,e.pointLightDistance.value=t.point.distances,e.spotLightColor.value=t.spot.colors,e.spotLightPosition.value=t.spot.positions,e.spotLightDistance.value=t.spot.distances,e.spotLightDirection.value=t.spot.directions,e.spotLightAngleCos.value=t.spot.anglesCos,e.spotLightExponent.value=t.spot.exponents,e.hemisphereLightSkyColor.value=t.hemi.skyColors,e.hemisphereLightGroundColor.value=t.hemi.groundColors,e.hemisphereLightDirection.value=t.hemi.positions}function J(e,t){if(e.shadowMatrix)for(var r=0,a=0,i=t.length;a=wt&&console.warn("WebGLRenderer: trying to use "+e+" texture units while this GPU supports only "+wt),Je+=1,e}function te(e,t){var r,a,i,n,o,s,l,u,f,d,c;for(f=0,d=t.length;f1||t.__oldAnisotropy)&&(He.texParameterf(e,Ge.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(t.anisotropy,Ft)),t.__oldAnisotropy=t.anisotropy)}function _e(e,t){if(e.width<=t&&e.height<=t)return e;var r=Math.max(e.width,e.height),a=Math.floor(e.width*t/r),i=Math.floor(e.height*t/r),n=document.createElement("canvas");n.width=a,n.height=i;var o=n.getContext("2d");return o.drawImage(e,0,0,e.width,e.height,0,0,a,i),n}function Ee(e,t){if(6===e.image.length)if(e.needsUpdate){e.image.__webglTextureCube||(e.image.__webglTextureCube=He.createTexture(),Xe.info.memory.textures++),He.activeTexture(He.TEXTURE0+t),He.bindTexture(He.TEXTURE_CUBE_MAP,e.image.__webglTextureCube),He.pixelStorei(He.UNPACK_FLIP_Y_WEBGL,e.flipY);for(var r=e instanceof THREE.CompressedTexture,a=[],i=0;i<6;i++)Xe.autoScaleCubemaps&&!r?a[i]=_e(e.image[i],Mt):a[i]=e.image[i];var n=a[0],o=pe(n.width)&&pe(n.height),s=Ae(e.format),l=Ae(e.type);me(He.TEXTURE_CUBE_MAP,e,o);for(var i=0;i<6;i++)if(r)for(var u,f=a[i].mipmaps,d=0,c=f.length;d0,Ut=St&&Oe,Bt=(ke?He.getParameter(He.COMPRESSED_TEXTURE_FORMATS):[],He.getShaderPrecisionFormat(He.VERTEX_SHADER,He.HIGH_FLOAT)),Nt=He.getShaderPrecisionFormat(He.VERTEX_SHADER,He.MEDIUM_FLOAT),Dt=(He.getShaderPrecisionFormat(He.VERTEX_SHADER,He.LOW_FLOAT),He.getShaderPrecisionFormat(He.FRAGMENT_SHADER,He.HIGH_FLOAT)),Lt=He.getShaderPrecisionFormat(He.FRAGMENT_SHADER,He.MEDIUM_FLOAT),Ct=(He.getShaderPrecisionFormat(He.FRAGMENT_SHADER,He.LOW_FLOAT), +He.getShaderPrecisionFormat(He.VERTEX_SHADER,He.HIGH_INT),He.getShaderPrecisionFormat(He.VERTEX_SHADER,He.MEDIUM_INT),He.getShaderPrecisionFormat(He.VERTEX_SHADER,He.LOW_INT),He.getShaderPrecisionFormat(He.FRAGMENT_SHADER,He.HIGH_INT),He.getShaderPrecisionFormat(He.FRAGMENT_SHADER,He.MEDIUM_INT),He.getShaderPrecisionFormat(He.FRAGMENT_SHADER,He.LOW_INT),Bt.precision>0&&Dt.precision>0),Pt=Nt.precision>0&&Lt.precision>0;"highp"!==Ue||Ct||(Pt?(Ue="mediump",console.warn("WebGLRenderer: highp not supported, using mediump")):(Ue="lowp",console.warn("WebGLRenderer: highp and mediump not supported, using lowp"))),"mediump"!==Ue||Pt||(Ue="lowp",console.warn("WebGLRenderer: mediump not supported, using lowp")),this.getContext=function(){return He},this.supportsVertexTextures=function(){return St},this.supportsFloatTextures=function(){return Oe},this.supportsStandardDerivatives=function(){return ze},this.supportsCompressedTextureS3TC=function(){return ke},this.getMaxAnisotropy=function(){return Ft},this.getPrecision=function(){return Ue},this.setSize=function(e,t){Se.width=e*this.devicePixelRatio,Se.height=t*this.devicePixelRatio,Se.style.width=e+"px",Se.style.height=t+"px",this.setViewport(0,0,Se.width,Se.height)},this.setViewport=function(e,t,r,a){dt=void 0!==e?e:0,ct=void 0!==t?t:0,ht=void 0!==r?r:Se.width,pt=void 0!==a?a:Se.height,He.viewport(dt,ct,ht,pt)},this.setScissor=function(e,t,r,a){He.scissor(e,t,r,a)},this.enableScissorTest=function(e){e?He.enable(He.SCISSOR_TEST):He.disable(He.SCISSOR_TEST)},this.setClearColorHex=function(e,t){Pe.setHex(e),Ie=t,He.clearColor(Pe.r,Pe.g,Pe.b,Ie)},this.setClearColor=function(e,t){Pe.copy(e),Ie=t,He.clearColor(Pe.r,Pe.g,Pe.b,Ie)},this.getClearColor=function(){return Pe},this.getClearAlpha=function(){return Ie},this.clear=function(e,t,r){var a=0;(void 0===e||e)&&(a|=He.COLOR_BUFFER_BIT),(void 0===t||t)&&(a|=He.DEPTH_BUFFER_BIT),(void 0===r||r)&&(a|=He.STENCIL_BUFFER_BIT),He.clear(a)},this.clearTarget=function(e,t,r,a){this.setRenderTarget(e),this.clear(t,r,a)},this.addPostPlugin=function(e){e.init(this),this.renderPluginsPost.push(e)},this.addPrePlugin=function(e){e.init(this),this.renderPluginsPre.push(e)},this.updateShadowMap=function(e,t){Ye=null,tt=-1,nt=-1,ot=-1,Ke=-1,$e=-1,At=!0,Qe=-1,et=-1,this.shadowMapPlugin.update(e,t)};var It=function(e){var t=e.target;t.removeEventListener("dispose",It),Gt(t),Xe.info.memory.geometries--},Ht=function(e){var t=e.target;t.removeEventListener("dispose",Ht),kt(t),Xe.info.memory.textures--},Ot=function(e){var t=e.target;t.removeEventListener("dispose",Ot),Xt(t),Xe.info.memory.textures--},zt=function(e){var t=e.target;t.removeEventListener("dispose",zt),Vt(t)},Gt=function(e){if(e.__webglInit=void 0,void 0!==e.__webglVertexBuffer&&He.deleteBuffer(e.__webglVertexBuffer),void 0!==e.__webglNormalBuffer&&He.deleteBuffer(e.__webglNormalBuffer),void 0!==e.__webglTangentBuffer&&He.deleteBuffer(e.__webglTangentBuffer),void 0!==e.__webglColorBuffer&&He.deleteBuffer(e.__webglColorBuffer),void 0!==e.__webglUVBuffer&&He.deleteBuffer(e.__webglUVBuffer),void 0!==e.__webglUV2Buffer&&He.deleteBuffer(e.__webglUV2Buffer),void 0!==e.__webglSkinIndicesBuffer&&He.deleteBuffer(e.__webglSkinIndicesBuffer),void 0!==e.__webglSkinWeightsBuffer&&He.deleteBuffer(e.__webglSkinWeightsBuffer),void 0!==e.__webglFaceBuffer&&He.deleteBuffer(e.__webglFaceBuffer),void 0!==e.__webglLineBuffer&&He.deleteBuffer(e.__webglLineBuffer),void 0!==e.__webglLineDistanceBuffer&&He.deleteBuffer(e.__webglLineDistanceBuffer),void 0!==e.geometryGroups)for(var t in e.geometryGroups){var r=e.geometryGroups[t];if(void 0!==r.numMorphTargets)for(var a=0,i=r.numMorphTargets;a1&&(l=!0);for(var h=0,p=c.length;h=0&&g){var b=g.itemSize;He.bindBuffer(He.ARRAY_BUFFER,g.buffer),y(s.normal),He.vertexAttribPointer(s.normal,b,He.FLOAT,!1,0,m*b*4)}var R=i.attributes.uv;if(s.uv>=0&&R){var v=R.itemSize;He.bindBuffer(He.ARRAY_BUFFER,R.buffer),y(s.uv),He.vertexAttribPointer(s.uv,v,He.FLOAT,!1,0,m*v*4)}var T=i.attributes.color;if(s.color>=0&&T){var w=T.itemSize;He.bindBuffer(He.ARRAY_BUFFER,T.buffer),y(s.color),He.vertexAttribPointer(s.color,w,He.FLOAT,!1,0,m*w*4)}var x=i.attributes.tangent;if(s.tangent>=0&&x){var M=x.itemSize;He.bindBuffer(He.ARRAY_BUFFER,x.buffer),y(s.tangent),He.vertexAttribPointer(s.tangent,M,He.FLOAT,!1,0,m*M*4)}He.bindBuffer(He.ELEMENT_ARRAY_BUFFER,d.buffer)}He.drawElements(He.TRIANGLES,c[h].count,He.UNSIGNED_SHORT,2*c[h].start),Xe.info.render.calls++,Xe.info.render.vertices+=c[h].count,Xe.info.render.faces+=c[h].count/3}}else{if(l){var _=i.attributes.position,E=_.itemSize;He.bindBuffer(He.ARRAY_BUFFER,_.buffer),y(s.position),He.vertexAttribPointer(s.position,E,He.FLOAT,!1,0,0);var g=i.attributes.normal;if(s.normal>=0&&g){var b=g.itemSize;He.bindBuffer(He.ARRAY_BUFFER,g.buffer),y(s.normal),He.vertexAttribPointer(s.normal,b,He.FLOAT,!1,0,0)}var R=i.attributes.uv;if(s.uv>=0&&R){var v=R.itemSize;He.bindBuffer(He.ARRAY_BUFFER,R.buffer),y(s.uv),He.vertexAttribPointer(s.uv,v,He.FLOAT,!1,0,0)}var T=i.attributes.color;if(s.color>=0&&T){var w=T.itemSize;He.bindBuffer(He.ARRAY_BUFFER,T.buffer),y(s.color),He.vertexAttribPointer(s.color,w,He.FLOAT,!1,0,0)}var x=i.attributes.tangent;if(s.tangent>=0&&x){var M=x.itemSize;He.bindBuffer(He.ARRAY_BUFFER,x.buffer),y(s.tangent),He.vertexAttribPointer(s.tangent,M,He.FLOAT,!1,0,0)}}He.drawArrays(He.TRIANGLES,0,_.numItems/3),Xe.info.render.calls++,Xe.info.render.vertices+=_.numItems/3,Xe.info.render.faces+=_.numItems/3/3}}else if(n instanceof THREE.ParticleSystem){if(l){var _=i.attributes.position,E=_.itemSize;He.bindBuffer(He.ARRAY_BUFFER,_.buffer),y(s.position),He.vertexAttribPointer(s.position,E,He.FLOAT,!1,0,0);var T=i.attributes.color;if(s.color>=0&&T){var w=T.itemSize;He.bindBuffer(He.ARRAY_BUFFER,T.buffer),y(s.color),He.vertexAttribPointer(s.color,w,He.FLOAT,!1,0,0)}He.drawArrays(He.POINTS,0,_.numItems/3),Xe.info.render.calls++,Xe.info.render.points+=_.numItems/3}}else if(n instanceof THREE.Line&&l){var _=i.attributes.position,E=_.itemSize;He.bindBuffer(He.ARRAY_BUFFER,_.buffer),y(s.position),He.vertexAttribPointer(s.position,E,He.FLOAT,!1,0,0);var T=i.attributes.color;if(s.color>=0&&T){var w=T.itemSize;He.bindBuffer(He.ARRAY_BUFFER,T.buffer),y(s.color),He.vertexAttribPointer(s.color,w,He.FLOAT,!1,0,0)}oe(a.linewidth),He.drawArrays(He.LINE_STRIP,0,_.numItems/3),Xe.info.render.calls++,Xe.info.render.points+=_.numItems}}},this.renderBuffer=function(e,t,r,a,i,n){if(a.visible!==!1){var o,s,l,u,f,d;o=X(e,t,r,a,n),s=o.attributes;var c=!1,h=a.wireframe?1:0,p=16777215*i.id+2*o.id+h;if(p!==Ke&&(Ke=p,c=!0),c&&A(),!a.morphTargets&&s.position>=0?c&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglVertexBuffer),y(s.position),He.vertexAttribPointer(s.position,3,He.FLOAT,!1,0,0)):n.morphTargetBase&&T(a,i,n),c){if(i.__webglCustomAttributesList)for(f=0,d=i.__webglCustomAttributesList.length;f=0&&(He.bindBuffer(He.ARRAY_BUFFER,u.buffer),y(s[u.buffer.belongsToAttribute]),He.vertexAttribPointer(s[u.buffer.belongsToAttribute],u.size,He.FLOAT,!1,0,0));s.color>=0&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglColorBuffer),y(s.color),He.vertexAttribPointer(s.color,3,He.FLOAT,!1,0,0)),s.normal>=0&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglNormalBuffer),y(s.normal),He.vertexAttribPointer(s.normal,3,He.FLOAT,!1,0,0)),s.tangent>=0&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglTangentBuffer),y(s.tangent),He.vertexAttribPointer(s.tangent,4,He.FLOAT,!1,0,0)),s.uv>=0&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglUVBuffer),y(s.uv),He.vertexAttribPointer(s.uv,2,He.FLOAT,!1,0,0)),s.uv2>=0&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglUV2Buffer),y(s.uv2),He.vertexAttribPointer(s.uv2,2,He.FLOAT,!1,0,0)),a.skinning&&s.skinIndex>=0&&s.skinWeight>=0&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglSkinIndicesBuffer),y(s.skinIndex),He.vertexAttribPointer(s.skinIndex,4,He.FLOAT,!1,0,0),He.bindBuffer(He.ARRAY_BUFFER,i.__webglSkinWeightsBuffer),y(s.skinWeight),He.vertexAttribPointer(s.skinWeight,4,He.FLOAT,!1,0,0)),s.lineDistance>=0&&(He.bindBuffer(He.ARRAY_BUFFER,i.__webglLineDistanceBuffer),y(s.lineDistance),He.vertexAttribPointer(s.lineDistance,1,He.FLOAT,!1,0,0))}n instanceof THREE.Mesh?(a.wireframe?(oe(a.wireframeLinewidth),c&&He.bindBuffer(He.ELEMENT_ARRAY_BUFFER,i.__webglLineBuffer),He.drawElements(He.LINES,i.__webglLineCount,He.UNSIGNED_SHORT,0)):(c&&He.bindBuffer(He.ELEMENT_ARRAY_BUFFER,i.__webglFaceBuffer),He.drawElements(He.TRIANGLES,i.__webglFaceCount,He.UNSIGNED_SHORT,0)),Xe.info.render.calls++,Xe.info.render.vertices+=i.__webglFaceCount,Xe.info.render.faces+=i.__webglFaceCount/3):n instanceof THREE.Line?(l=n.type===THREE.LineStrip?He.LINE_STRIP:He.LINES,oe(a.linewidth),He.drawArrays(l,0,i.__webglLineCount),Xe.info.render.calls++):n instanceof THREE.ParticleSystem?(He.drawArrays(He.POINTS,0,i.__webglParticleCount),Xe.info.render.calls++,Xe.info.render.points+=i.__webglParticleCount):n instanceof THREE.Ribbon&&(He.drawArrays(He.TRIANGLE_STRIP,0,i.__webglVertexCount),Xe.info.render.calls++)}},this.render=function(e,t,r,a){if(t instanceof THREE.Camera==!1)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");var i,n,o,s,l,u=e.__lights,f=e.fog;for($e=-1,At=!0,this.autoUpdateScene&&e.updateMatrixWorld(),void 0===t.parent&&t.updateMatrixWorld(),t.matrixWorldInverse.getInverse(t.matrixWorld),bt.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),gt.setFromMatrix(bt),this.autoUpdateObjects&&this.initWebGLObjects(e),M(this.renderPluginsPre,e,t),Xe.info.render.calls=0,Xe.info.render.vertices=0,Xe.info.render.faces=0,Xe.info.render.points=0,this.setRenderTarget(r),(this.autoClear||a)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil),l=e.__webglObjects,i=0,n=l.length;i=0&&e.numSupportedMorphTargets++}if(e.morphNormals){e.numSupportedMorphNormals=0;var c,h="morphNormal";for(n=0;n=0&&e.numSupportedMorphNormals++}e.uniformsList=[];for(i in e.uniforms)e.uniformsList.push([e.uniforms[i],i])},this.setFaceCulling=function(e,t){e===THREE.CullFaceNone?He.disable(He.CULL_FACE):(t===THREE.FrontFaceDirectionCW?He.frontFace(He.CW):He.frontFace(He.CCW),e===THREE.CullFaceBack?He.cullFace(He.BACK):e===THREE.CullFaceFront?He.cullFace(He.FRONT):He.cullFace(He.FRONT_AND_BACK),He.enable(He.CULL_FACE))},this.setMaterialFaces=function(e){var t=e.side===THREE.DoubleSide,r=e.side===THREE.BackSide;Qe!==t&&(t?He.disable(He.CULL_FACE):He.enable(He.CULL_FACE),Qe=t),et!==r&&(r?He.frontFace(He.CW):He.frontFace(He.CCW),et=r)},this.setDepthTest=function(e){nt!==e&&(e?He.enable(He.DEPTH_TEST):He.disable(He.DEPTH_TEST),nt=e)},this.setDepthWrite=function(e){ot!==e&&(He.depthMask(e),ot=e)},this.setBlending=function(e,t,r,a){e!==tt&&(e===THREE.NoBlending?He.disable(He.BLEND):e===THREE.AdditiveBlending?(He.enable(He.BLEND),He.blendEquation(He.FUNC_ADD),He.blendFunc(He.SRC_ALPHA,He.ONE)):e===THREE.SubtractiveBlending?(He.enable(He.BLEND),He.blendEquation(He.FUNC_ADD),He.blendFunc(He.ZERO,He.ONE_MINUS_SRC_COLOR)):e===THREE.MultiplyBlending?(He.enable(He.BLEND),He.blendEquation(He.FUNC_ADD),He.blendFunc(He.ZERO,He.SRC_COLOR)):e===THREE.CustomBlending?He.enable(He.BLEND):(He.enable(He.BLEND),He.blendEquationSeparate(He.FUNC_ADD,He.FUNC_ADD),He.blendFuncSeparate(He.SRC_ALPHA,He.ONE_MINUS_SRC_ALPHA,He.ONE,He.ONE_MINUS_SRC_ALPHA)),tt=e),e===THREE.CustomBlending?(t!==rt&&(He.blendEquation(Ae(t)),rt=t),r===at&&a===it||(He.blendFunc(Ae(r),Ae(a)),at=r,it=a)):(rt=null,at=null,it=null)},this.setTexture=function(e,t){if(e.needsUpdate){e.__webglInit||(e.__webglInit=!0,e.addEventListener("dispose",Ht),e.__webglTexture=He.createTexture(),Xe.info.memory.textures++),He.activeTexture(He.TEXTURE0+t),He.bindTexture(He.TEXTURE_2D,e.__webglTexture),He.pixelStorei(He.UNPACK_FLIP_Y_WEBGL,e.flipY),He.pixelStorei(He.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.premultiplyAlpha),He.pixelStorei(He.UNPACK_ALIGNMENT,e.unpackAlignment);var r=e.image,a=pe(r.width)&&pe(r.height),i=Ae(e.format),n=Ae(e.type);me(He.TEXTURE_2D,e,a);var o,s=e.mipmaps;if(e instanceof THREE.DataTexture)if(s.length>0&&a){for(var l=0,u=s.length;l0&&a){for(var l=0,u=s.length;lo&&alert("error: zip_INBUFSIZ is too small"),e<<1>1<c-1&&alert("error: zip_HASH_BITS is too large"),(p<8||258!=d)&&alert("error: Code too clever");var m,_,E,g,b,R,v,y,A,T,w,x,M,F,S,U,B,N,D,L,C,P,I,H,O,z,G,k,X,V,W,Y,j,$,K,q,Z,J,Q,ee,te,re,ae,ie,ne,oe,se,le,ue,fe,de,ce,he,pe,me,_e,Ee=h,ge=1<9&&(e=9):e=i,G=e,g=!1,I=!1,null==Oe){for(m=_=E=null,Oe=new Array(l),y=new Array(u),A=new Array(Ee),T=new Array(o+s),w=new Array(1<>>8):(et(255&e),et(e>>>8))},rt=function(){S=(S<>7)])},nt=function(e,t,r){return e[t].fcTe?C-Te:ve,l=C+d,u=y[i+o-1],f=y[i+o];L>=k&&(a>>=2);do if(t=e,y[t+o]==f&&y[t+o-1]==u&&y[t]==y[i]&&y[++t]==y[i+1]){i+=2,t++;do;while(y[++i]==y[++t]&&y[++i]==y[++t]&&y[++i]==y[++t]&&y[++i]==y[++t]&&y[++i]==y[++t]&&y[++i]==y[++t]&&y[++i]==y[++t]&&y[++i]==y[++t]&&io){if(P=e,o=r,n){if(r>=d)break}else if(r>=X)break;u=y[i+o-1],f=y[i+o]}}while((e=w[e&Re])>s&&0!=--a);return o},ut=function(){var t,r,a=u-H-C;if(a==-1)a--;else if(C>=e+Te){for(t=0;t=e?r-e:ve);for(t=0;t=e?r-e:ve;a+=e}I||(t=ot(y,C+H,a),t<=0?I=!0:H+=t)},ft=function(){for(;0!=H&&null==_;){var e;if(rt(),U!=ve&&C-U<=Te&&(D=lt(U),D>H&&(D=H)),D>=f)if(e=xt(C-P,D-f),H-=D,D<=z){D--;do C++,rt();while(0!=--D);C++}else C+=D,D=0,S=255&y[C],S=(S<H&&(D=H),D==f&&C-P>ye&&D--),L>=f&&D<=L){var e;e=xt(C-1-B,L-f),H-=L-1,L-=2;do C++,rt();while(0!=--L);N=0,D=f-1,C++,e&&(wt(0),F=C)}else 0!=N?(xt(0,255&y[C-1])&&(wt(0),F=C),C++,H--):(N=1,C++,H--);for(;H_.len&&(i=_.len),n=0;nb-R&&(i=b-R),n=0;n>=7;ad&&(i=d,h++),s[r].dl=i,r>f||(J[i]++,n=0,r>=u&&(n=l[r-u]),o=s[r].fc,he+=o*(i+n),null!=c&&(pe+=o*(c[r].dl+n)));if(0!=h){do{for(i=d-1;0==J[i];)i--;J[i]--,J[i+1]+=2,J[d]--,h-=2}while(h>0);for(i=d;0!=i;i--)for(r=J[i];0!=r;)a=Q[--t],a>f||(s[a].dl!=i&&(he+=(i-s[a].dl)*s[a].fc,s[a].fc=i),r--)}},bt=function(e,t){var r,a,i=new Array(xe+1),n=0;for(r=1;r<=xe;r++)n=n+J[r-1]<<1,i[r]=n;for(a=0;a<=t;a++){var o=e[a].dl;0!=o&&(e[a].fc=Ut(i[o]++,o))}},Rt=function(e){var t,r,a=e.dyn_tree,i=e.static_tree,n=e.elems,o=-1,s=n;for(ee=0,te=Ie,t=0;t>1;t>=1;t--)Et(a,t);do t=Q[we],Q[we]=Q[ee--],Et(a,we),r=Q[we],Q[--te]=t,Q[--te]=r,a[s].fc=a[t].fc+a[r].fc,re[t]>re[r]+1?re[s]=re[t]:re[s]=re[r]+1,a[t].dl=a[r].dl=s,Q[we]=s++,Et(a,we);while(ee>=2);Q[--te]=Q[we],gt(e),bt(a,o)},vt=function(e,t){var r,a,i=-1,n=e[0].dl,o=0,s=7,l=4;for(0==n&&(s=138,l=3),e[t+1].dl=65535,r=0;r<=t;r++)a=n,n=e[r+1].dl,++o=3&&0==$[je[e]].dl;e--);return he+=3*(e+1)+5+5+4,e},Tt=function(e,t,r){var a;for(St(e-257,5),St(t-1,5),St(r-4,4),a=0;a>3,n=pe+3+7>>3,n<=i&&(i=n),s+4<=i&&F>=0){var l;for(St((t<<1)+e,3),Bt(),tt(s),tt(~s),l=0;l2&&0==(4095&le)){var r,a=8*le,i=C-F;for(r=0;r>=3,ue>=1;while(oFt-t?(x|=e<>Ft-M,M+=t-Ft):(x|=e<>=1,r<<=1;while(--t>0);return r>>1},Bt=function(){M>8?tt(x):M>0&&et(x),x=0,M=0},Nt=function(){if(0!=b){var e,t;for(e=Ze(),null==_?_=E=e:E=E.next=e,e.len=b-R,t=0;t0;){var s=new Array(r);for(a=0;a256?e[256]:this.BMAX,p=e,m=0,d=t;do A[p[m]]++,m++;while(--d>0);if(A[0]==t)return this.root=null,this.m=0,void(this.status=0);for(c=1;c<=this.BMAX&&0==A[c];c++);for(h=c,nd&&(n=d),b=1<0;)U[g++]=c+=p[m++];p=e,m=0,d=0;do 0!=(c=p[m++])&&(S[U[c]++]=d);while(++d0;){for(;h>E+T[1+f];){if(E+=T[1+f],f++,R=(R=u-E)>n?n:R,(l=1<<(c=h-E))>o+1)for(l-=o+1,g=h;++cs&&E0&&(U[f]=d,w.b=T[f],w.e=16+c,w.t=_,c=(d&(1<>E-T[f],x[f-1][c].e=w.e,x[f-1][c].b=w.b,x[f-1][c].n=w.n,x[f-1][c].t=w.t)}for(w.b=h-E,m>=t?w.e=99:p[m]>E;c>=1)d^=c;for(d^=c;(d&(1<>=e,n-=e},L=function(r,a,i){var n,s,p;if(0==i)return 0;for(p=0;;){for(B(c),s=f.list[N(c)],n=s.e;n>16;){if(99==n)return-1;D(s.b),n-=16,B(n),s=s.t[N(n)],n=s.e}if(D(s.b),16!=n){if(15==n)break;for(B(n),l=s.n+N(n),D(n),B(h),s=d.list[N(h)],n=s.e;n>16;){if(99==n)return-1;D(s.b),n-=16,B(n),s=s.t[N(n)],n=s.e}for(D(s.b),B(n),u=t-s.n-N(n),D(n);l>0&&p0&&u1)return R=null,alert("HufBuild error: "+o.status),-1;r=o.root,zip_fixed_bd=o.m}return f=R,d=r,c=a,h=zip_fixed_bd,L(e,t,i)},I=function(e,t,r){var a,i,n,o,s,l,u,p,m,_=new Array(316);for(a=0;a<_.length;a++)_[a]=0;if(B(5),u=257+N(5),D(5),B(5),p=1+N(5),D(5),B(4),l=4+N(4),D(4),u>286||p>30)return-1;for(i=0;io)return-1;for(;i-- >0;)_[a++]=n}else if(17==i){if(B(3),i=3+N(3),D(3),a+i>o)return-1;for(;i-- >0;)_[a++]=0;n=0}else{if(B(7),i=11+N(7),D(7),a+i>o)return-1;for(;i-- >0;)_[a++]=0;n=0}if(c=g,m=new S(_,u,257,y,A,c),0==c&&(m.status=1),0!=m.status)return 1==m.status,-1;for(f=m.root,c=m.m,a=0;a257?-1:(1==m.status,0!=m.status?-1:L(e,t,r))},H=function(){null==e&&(e=new Array(2*_)),t=0,i=0,n=0,o=-1,s=!1,l=u=0,f=null},O=function(r,a,i){var n,d;for(n=0;n0){if(o!=E)for(;l>0&&n0&&n0;){var n=new Array(t);for(r=0;r0?this.baseurl=t.substr(0,e):this.baseurl=t,"chrome"===this.baseurl.substr(0,6))return this.baseurl="http://shdr.bkcore.com/"},e.prototype.initViewer=function(e){var t,r,a;try{this.viewer=new shdr.Viewer(this.byId(e),this),this.validator=new shdr.Validator(this.viewer.canvas)}catch(e){return r=e,console.warn(r),a="Unable to start Shdr. \n\nWebGL is either deactivated or not supported by your device or browser. \n\nWould you like to visit get.webgl.org for more info?",this.ui.setStatus(a,shdr.UI.WARNING),this.ui.displayWebGLError(),t=confirm(a),t&&(location.href="http://get.webgl.org/"),!1}return!0},e.prototype.initEditor=function(t){return this.documents[e.FRAGMENT]=this.viewer.fs,this.documents[e.VERTEX]=this.viewer.vs,this.editor=ace.edit(t),this.editor.setFontSize("16px"),this.editor.setShowPrintMargin(!1),this.editor.getSession().setTabSize(2),this.editor.getSession().setMode("ace/mode/glsl"),this.editor.getSession().setUseWrapMode(!0),this.editor.getSession().setValue(this.documents[this.conf.mode]),this.editor.focus()},e.prototype.loop=function(){return requestAnimationFrame(function(e){return function(){return e.loop()}}(this)),this.update()},e.prototype.update=function(){return this.viewer.update()},e.prototype.updateShader=function(){var t,r,a,i,n,o,s;return n=this.editor.getSession(),null!=this.marker&&n.removeMarker(this.marker.id),s=this.conf.mode===e.FRAGMENT?shdr.Validator.FRAGMENT:shdr.Validator.VERTEX,(o=n.getValue())?(i=this.validator.validate(o,s),a=i[0],t=i[1],r=i[2],a?(this.viewer.updateShader(o,this.conf.mode),this.ui.setStatus("Shader successfully compiled",shdr.UI.SUCCESS)):(t=Math.max(0,t-1),this.marker=n.highlightLines(t,t),this.ui.setStatus("Line "+t+" : "+r,shdr.UI.ERROR))):(this.ui.setStatus("Shader cannot be empty",shdr.UI.WARNING),void(this.marker=n.highlightLines(0,0)))},e.prototype.initFromURL=function(){var e;return e=this.unpackURL(),this.initDocuments(e)},e.prototype.initDocuments=function(t){var r,a,i,n,o,s,l,u,f,d;return!(!t||!t.documents||2!==t.documents.length)&&(this.documents=t.documents,o=this.documents[e.FRAGMENT],d=this.documents[e.VERTEX],s=this.validator.validate(o,shdr.Validator.FRAGMENT),r=s[0],i=s[1],n=s[2],l=this.validator.validate(d,shdr.Validator.VERTEX),a=l[0],u=l[1],f=l[2],r&&a?(this.viewer.updateShader(d,e.VERTEX),this.viewer.updateShader(o,e.FRAGMENT),this.editor.getSession().setValue(this.conf.mode===e.VERTEX?d:o),this.ui.setMenuMode(e.FRAGMENT),this.ui.setStatus("Shaders successfully loaded and compiled.",shdr.UI.SUCCESS)):a?(this.viewer.updateShader(d,e.VERTEX),this.setMode(e.FRAGMENT,!0),this.ui.setMenuMode(e.FRAGMENT),this.ui.setStatus("Shaders loaded but Fragment could not compile. Line "+i+" : "+n,shdr.UI.WARNING)):r?(this.viewer.updateShader(o,e.FRAGMENT),this.setMode(e.VERTEX,!0),this.ui.setMenuMode(e.VERTEX),this.ui.setStatus("Shaders loaded but Vertex could not compile. Line "+u+" : "+f,shdr.UI.WARNING)):(this.setMode(e.VERTEX,!0),this.ui.setMenuMode(e.VERTEX),this.ui.setStatus("Shaders loaded but could not compile. Line "+u+" : "+f,shdr.UI.WARNING)),this.editor.focus(),!0)},e.prototype.packURL=function(){var e,t,r,a;try{return r={documents:this.documents,model:this.viewer.currentModel},t=JSON.stringify(r),a=window.btoa(RawDeflate.deflate(t)),this.baseurl+"#1/"+a}catch(t){return e=t,this.ui.setStatus("Unable to pack document: "+("function"==typeof e.getMessage?e.getMessage():void 0),shdr.UI.WARNING)}},e.prototype.unpackURL=function(){var e,t,r,a,i,n;if(!window.location.hash)return!1;try{return t=window.location.hash.substr(1),n=t.substr(0,2),i=t.substr(2),r=RawDeflate.inflate(window.atob(i)),a=JSON.parse(r)}catch(t){return e=t,this.ui.setStatus("Unable to unpack document: "+("function"==typeof e.getMessage?e.getMessage():void 0),shdr.UI.WARNING)}},e.prototype.shortenURL=function(e,t){var r;return r="AIzaSyB46wUnmnZaPH9JkHlRizmsQw9W2SSx1x0",$.ajax({url:"https://www.googleapis.com/urlshortener/v1/url?key="+r,type:"POST",contentType:"application/json",dataType:"json",data:JSON.stringify({longUrl:e}),success:function(e){return function(r){return!r||"error"in r||!1 in r?(e.ui.setStatus("An error occured while trying to shorten shared URL.",shdr.UI.WARNING),console.warn(r),"function"==typeof t?t(!1,null,r):void 0):(e.ui.setStatus("Shared URL has been shortened.",shdr.UI.SUCCESS),"function"==typeof t?t(!0,r.id,r):void 0)}}(this),error:function(e){return function(r){return"function"==typeof t&&t(!1,null,r),e.ui.setStatus("URL shortening service is not active.",shdr.UI.WARNING),console.warn("ERROR: ",r)}}(this)})},e.prototype.upload=function(e){var t,r;try{return this.ui.setStatus("Uploading...",shdr.UI.WARNING),r=new FileReader,r.readAsDataURL(e),r.onload=function(t){return function(r){var a;return a={name:e.name,data:r.target.result},shdr.Models[r.target.result]=a,t.ui.setStatus("Uploaded",shdr.UI.SUCCESS),t.ui.addNewModel(e.name,r.target.result)}}(this)}catch(e){return t=e,this.ui.setStatus("You must select a .js model to upload.",shdr.UI.WARNING)}},e.prototype.download=function(){var t,r,a,i;try{t=new Blob(["#ifdef VS \n \n"+this.documents[e.VERTEX]+"\n \n#else \n \n"+this.documents[e.FRAGMENT]+"\n \n#endif"],{type:"text/plain"}),a=URL.createObjectURL(t),i=window.open(a,"_blank"),i?i.focus():this.ui.setStatus("Your browser as blocked the download, please disable popup blocker.",shdr.UI.WARNING)}catch(e){r=e,this.ui.setStatus("Your browser does not support Blob, unable to download.",shdr.UI.WARNING)}return a},e.prototype.save=function(e){var t;return this.updateDocument(),t={documents:this.documents,name:e,date:+Date.now()},shdr.Storage.addDocument(e,t),this.ui.resetLoadFiles(),this.ui.setStatus("Shaders saved as '"+e+"'.",shdr.UI.SUCCESS)},e.prototype.load=function(e){var t;return t=shdr.Storage.getDocument(e),null!=t?(this.initDocuments(t),!0):(this.ui.setStatus("'"+e+"' Shaders do not exist.",shdr.UI.WARNING),!1)},e.prototype.new=function(){var e;return e={documents:[shdr.Snippets.DefaultFragment,shdr.Snippets.DefaultVertex],name:"Untitled"},this.initDocuments(e),this.ui.setStatus("Editor reset using default shaders.",shdr.UI.SUCCESS),this.ui.clearName("Untitled"),loadModel("models/suzanne_high.js")},e.prototype.newDemo=function(){var e;return e={documents:[shdr.Snippets.DemoFragment,shdr.Snippets.DemoVertex],name:"Untitled"},this.initDocuments(e),this.ui.setStatus("Editor reset using default shaders.",shdr.UI.SUCCESS),this.ui.clearName("Untitled"),this.viewer.loadModel("models/quad.js")},e.prototype.remove=function(e,t){var r;return null==t&&(t=!1),r=shdr.Storage.removeDocument(e),r?(t&&this.new(),this.ui.resetLoadFiles(),this.ui.setStatus("'"+e+"' Shaders removed.",shdr.UI.INFO)):this.ui.setStatus("Unable to remove '"+e+"'. Shaders do not exist.",shdr.UI.WARNING)},e.prototype.updateDocument=function(){return this.documents[this.conf.mode]=this.editor.getSession().getValue()},e.prototype.onEditorKeyUp=function(t){var r,a;return r=t.keyCode,a=this.conf.update===e.UPDATE_ENTER&&13===r,a||(a=this.conf.update===e.UPDATE_ALL),a&&this.updateShader(),!0},e.prototype.onEditorKeyDown=function(t){return t.ctrlKey&&83===t.keyCode?(this.updateShader(),t.cancelBubble=!0,t.returnValue=!1,"function"==typeof t.stopPropagation&&t.stopPropagation(),"function"==typeof t.preventDefault&&t.preventDefault(),!1):!t.ctrlKey||!t.altKey||(this.conf.mode===e.FRAGMENT?(this.setMode(e.VERTEX,!0),this.ui.setMenuMode(e.VERTEX)):(this.setMode(e.FRAGMENT,!0),this.ui.setMenuMode(e.FRAGMENT)),t.cancelBubble=!0,t.returnValue=!1,"function"==typeof t.stopPropagation&&t.stopPropagation(),"function"==typeof t.preventDefault&&t.preventDefault(),!1)},e.prototype.setUpdateMode=function(e){return this.conf.update=parseInt(e),this},e.prototype.setMode=function(t,r){var a,i;if(null==t&&(t=e.FRAGMENT),null==r&&(r=!1),t=parseInt(t),this.conf.mode===t&&!r)return!1;switch(a=this.conf.mode,this.conf.mode=t,i=this.editor.getSession(),t){case e.FRAGMENT:r||(this.documents[a]=i.getValue()),i.setValue(this.documents[e.FRAGMENT]);break;case e.VERTEX:r||(this.documents[a]=i.getValue()),i.setValue(this.documents[e.VERTEX])}return this.updateShader(),this},e.prototype.byId=function(e){return document.getElementById(e)},e.prototype.extend=function(e,t){var r,a;for(r in t)a=t[r],e[r]=a;return e},e}(),this.shdr||(this.shdr={}),this.shdr.App=e}.call(this),function(){var e;e={"models/cube.js":{name:"Cube"},"models/quad.js":{name:"Quad"},"models/sphere.js":{name:"Sphere"},"models/torus.js":{name:"Torus"},"models/dragon.js":{name:"Dragon",scale:1.2},"models/hexmkii.js":{name:"Hex MKII",scale:.01},"models/suzanne_low.js":{name:"Suzanne (low)"},"models/suzanne_high.js":{name:"Suzanne (high)"}},this.shdr||(this.shdr={}),this.shdr.Models=e}.call(this),function(){var e;e={DefaultVertex:["precision highp float;","attribute vec3 position;","attribute vec3 normal;","uniform mat3 normalMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","varying vec3 fNormal;","varying vec3 fPosition;","","void main()","{"," fNormal = normalize(normalMatrix * normal);"," vec4 pos = modelViewMatrix * vec4(position, 1.0);"," fPosition = pos.xyz;"," gl_Position = projectionMatrix * pos;","}"].join("\n"),DefaultFragment:["precision highp float;","uniform float time;","uniform vec2 resolution;","varying vec3 fPosition;","varying vec3 fNormal;","","void main()","{"," gl_FragColor = vec4(fNormal, 1.0);","}"].join("\n"),DemoVertex:["precision highp float;","attribute vec3 position;","","void main()","{"," gl_Position = vec4(position, 1.0);","}"].join("\n"),DemoFragment:["precision highp float;","","uniform float time;","uniform vec2 resolution;","","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","","void main()","{"," vec2 pixel = -1.0 + 2.0 * gl_FragCoord.xy / resolution.xy;"," pixel.x *= resolution.x/resolution.y;"," gl_FragColor = vec4(pixel,.0,1.);","}"].join("\n"),ExtractCameraPosition:["vec3 ExtractCameraPos(mat4 a_modelView)","{"," mat3 rotMat =mat3(a_modelView[0].xyz,a_modelView[1].xyz,a_modelView[2].xyz);"," vec3 d = a_modelView[3].xyz;"," vec3 retVec = -d * rotMat;"," return retVec;","}"].join("\n"),GetDirection:["vec3 getDirection(vec3 origine, vec2 pixel)","{"," vec3 ww = normalize(vec3(0.0) - origine);"," vec3 uu = normalize(cross( vec3(0.0,1.0,0.0), ww ));"," vec3 vv = normalize(cross(ww,uu));"," return normalize( pixel.x*uu + pixel.y*vv + 1.5*ww );","}"].join("\n"),Luma:["vec3 luma = vec3(0.299, 0.587, 0.114);"].join("\n"),Fresnel:["float fresnel(float costheta, float fresnelCoef)","{"," return fresnelCoef + (1. - fresnelCoef) * pow(1. - costheta, 5.);","}"].join("\n"),"Ashikhmin (Dir)":["float Ashikhmin(vec3 lightDir, vec3 viewDir, vec3 normal, float exponent, float fresnelCoef)","{"," vec3 H = normalize(lightDir+viewDir);"," float numerateur_s = ( exponent + 1.)/(8.*3.14159) * pow(dot(normal,H), exponent );"," float denominateur_s = dot(lightDir,H)*(dot(normal,lightDir) + dot(normal, viewDir) - dot(normal, lightDir) * dot(normal, viewDir));"," float K = fresnel(dot(normal,lightDir), fresnelCoef) * ( numerateur_s / denominateur_s ) ;"," return K;","}"].join("\n"),"Blinn-Phong (Dir)":["vec2 blinnPhongDir(vec3 lightDir, float lightInt, float Ka, float Kd, float Ks, float shininess)","{"," vec3 s = normalize(lightDir);"," vec3 v = normalize(-fPosition);"," vec3 n = normalize(fNormal);"," vec3 h = normalize(v+s);"," float diffuse = Ka + Kd * lightInt * max(0.0, dot(n, s));"," float spec = Ks * pow(max(0.0, dot(n,h)), shininess);"," return vec2(diffuse, spec);","}"].join("\n"),"OrenNayard (Dir)":["float OrenNayarDir(vec3 lightDir, vec3 viewDir, vec3 normal, float exponent)","{"," float LdotN = dot(lightDir,normal);"," float VdotN = dot(viewDir,normal);"," float result = clamp( LdotN, 0. , 1.);"," float soft_rim = clamp( 1. - VdotN/2., 0. , 1.);"," float fakey = pow(1. - result * soft_rim , 2.);"," float fakey_magic = 0.62;"," fakey = fakey_magic - fakey*fakey_magic;"," float K = mix(result, fakey, exponent) ;"," return K;","}"].join("\n"),"Ward (Dir)":["float Ward(vec3 lightDir, vec3 viewDir, vec3 normal, float exponent)","{"," vec3 H = normalize(lightDir + viewDir);"," float delta = acos(dot(H,normal));"," float alpha2 = exponent * exponent;"," float temp = exp(-pow(tan(delta), 2.) / (alpha2)) / (4. * 3.1415 * alpha2);"," float temp2 = sqrt(dot(viewDir,normal) * dot(lightDir,normal));"," float K = temp2 * temp;"," return K;","}"].join("\n"),ColorNormal:["vec3 colorNormal(vec3 col1, vec3 col2, vec3 col3)","{"," vec3 n = normalize(fNormal);"," return clamp(col1*n.x + col2*n.y + col3*n.z,"," vec3(0.0), vec3(1.0));","}"].join("\n"),Rimlight:["vec3 rim(vec3 color, float start, float end, float coef)","{"," vec3 normal = normalize(fNormal);"," vec3 eye = normalize(-fPosition.xyz);"," float rim = smoothstep(start, end, 1.0 - dot(normal, eye));"," return clamp(rim, 0.0, 1.0) * coef * color;","}"].join("\n"),Split:["vec3 split(vec3 left, vec3 right, float ratio, bool horizontal)","{"," float i = float(horizontal);"," float m = i*gl_FragCoord.x/resolution.x;"," m += (1.0-i)*gl_FragCoord.y/resolution.y;"," float d = float(m < ratio);"," return left*d + right*(1.0-d);","}"].join("\n"),"Transpose (mat3)":["mat3 transpose( mat3 m )","{"," mat3 ret = m;"," ret[0][1] = m[1][0];"," ret[0][2] = m[2][0];"," ret[1][0] = m[0][1];"," ret[1][2] = m[2][1];"," ret[2][0] = m[0][2];"," ret[2][1] = m[1][2];"," return ret;","}"].join("\n")},this.shdr||(this.shdr={}),this.shdr.Snippets=e}.call(this),function(){var e;e=function(){function e(){}return e.PREFIX_SIZE=4,e.DOC_PREFIX="doc_",e.SET_PREFIX="set_",e.available="localStorage"in window,e.addDocument=function(e,t,r){return null==r&&(r=!0),this.addObject(this.DOC_PREFIX+e,t,r)},e.addSetting=function(e,t,r){return null==r&&(r=!0),this.addString(this.SET_PREFIX+e,t,r)},e.addObject=function(e,t,r){return null==r&&(r=!0),this.addString(e,JSON.stringify(t),r)},e.addString=function(e,t,r){return null==r&&(r=!0),!(null!=localStorage[e]&&!r)&&(localStorage[e]=t)},e.getDocument=function(e){return this.getObject(this.DOC_PREFIX+e)},e.getSetting=function(e){return this.getString(this.SET_PREFIX+e)},e.getObject=function(e){return JSON.parse(this.getString(e))},e.getString=function(e){return null==localStorage[e]?null:localStorage[e]},e.listDocuments=function(){return this._listByPrefix(this.DOC_PREFIX)},e.removeDocument=function(e){return this.remove(this.DOC_PREFIX+e)},e.removeSetting=function(e){return this.remove(this.SET_PREFIX+e)},e.remove=function(e){return e in localStorage&&(delete localStorage[e],!0)},e.clearDocuments=function(){return this._clearByPrefix(this.DOC_PREFIX)},e.clearSettings=function(){return this._clearByPrefix(this.SET_PREFIX)},e._listByPrefix=function(e){var t,r;r=[];for(t in localStorage)t.substr(0,this.PREFIX_SIZE)===e&&r.push(t.substr(this.PREFIX_SIZE));return r},e._clearByPrefix=function(e){var t,r,a,i;for(i=this._listByPrefix(e),r=0,a=i.length;r"+e+"\n";return this.lists.files.html(i)},e.prototype.initStatus=function(){var e,t,r,a;return t=$("#status"),a=t.children("span"),r=a.children("i"),e=a.children("b"),this.status={container:t,span:a,icon:r,content:e}},e.prototype.initBoxes=function(){var e,t,r,a;return this.boxes={upload:$("#box-upload"),share:$("#box-share"),about:$("#box-about")},$(".box .close").on("click",function(e){return $(this).parent().fadeOut(200)}),e=this.boxes.upload.find("#box-upload-input"),a=this.boxes.upload.find("#box-upload-submit"),a.on("click",function(t){return function(r){var a;return a=e[0].files[0],t.app.upload(a),t.boxes.upload.fadeOut(200)}}(this)),t=this.boxes.share.find("#box-share-url"),r=this.boxes.share.find("#box-share-shorten"),t.on("click",function(e){return $(this).select()}),r.on("click",function(e){return function(a){return r.text("Wait..."),e.app.shortenURL(t.val(),function(t,a,i){return t&&a&&e.boxes.share.find("#box-share-url").val(a),r.text("Shorten")})}}(this))},e.prototype.initButtons=function(){return this.inputs={savename:$("#save-name")},this.inputs.savename.on("click",function(e){return function(t){return t.stopPropagation(),$(e).focus(),!1}}(this)),$(".menu-button").on("click",function(e){return function(t){return e.onButton(t)}}(this))},e.prototype.initToggles=function(){return $(".menu-toggle").on("click",function(e){return function(t){return e.onToggle(t)}}(this))},e.prototype.initMenus=function(){return $(".menu-trigger").on("click.on",function(e){return function(t){return e.onMenuTrigger(t)}}(this)),$(document).on("click",".menu-item",function(e){return function(t){return e.onMenuItem(t)}}(this)),this.lists={files:$("#menu-load .menu-list"),models:$("#menu-models .menu-list")}},e.prototype.initSnippets=function(){var e,t,r;r=$("#menu-snippets .menu-list"),e=$(" + +
+ + + + + + + + + + + + + + + + +
+
+
+
+
+
+
Shdr
+
+ Loading model... +
+
+
+ +
+
+ Ready +
+ +
+ +
+

Upload Model File

+
+ + +
+ +
+ +
+

Upload Texture File

+
+

Your texture can be accessed as a uniform in the 'Uniforms' tab.

+

Example code is available in snippets under 'Texture'

+ + +
+ +
+ +
+

Share URL

+
+ +
+ +
+ +
+

About Shdr

+
+

+ Shdr is an online ESSL (GLSL) shader editor, viewer and validator powered by WebGL. +

+

+ Author: Thibaut Despoulain +
Version: 0.1.130311 +

+

+ Inspired by MrDoob's live HTML editor. +
Powered by Three.js, Ace.js, RawDeflate.js and jQuery. +
Icons by FontAwesome, Suzanne from Blender, HexMKII from HexGL. +

+

+ Issues, feature requests, contributions: + Fork me on GitHub! +

+
+ +
+ +
+
+
+ + + + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..f55e496 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,189 @@ + + + + + Shdr Editor + + + + + + + + + + + + +
+
+ Loading... Fetching stuff. +
+
+ + +
+ + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
Shdr
+
+ Loading model... +
+
+
+ +
+
+ Ready +
+ +
+ +
+

Upload Model File

+
+ + +
+ +
+ +
+

Upload Texture File

+
+

Your texture can be accessed as a uniform in the 'Uniforms' tab.

+

Example code is available in snippets under 'Texture'

+ + +
+ +
+ +
+

Share URL

+
+ +
+ +
+ +
+

About Shdr

+
+

+ Shdr is an online ESSL (GLSL) shader editor, viewer and validator powered by WebGL. +

+

+ Author: Thibaut Despoulain +
Version: 0.2.161211 +

+

+ Inspired by MrDoob's live HTML editor. +
Powered by Three.js, Ace.js, RawDeflate.js and jQuery. +
Icons by FontAwesome, Suzanne from Blender, HexMKII from HexGL. +

+

+ Issues, feature requests, contributions: + Fork me on GitHub! +

+
+ +
+ +
+
+
+ + + + + From 64f0cb8ae7a67dae31ae70f8e2a94c52a493458c Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Tue, 20 Dec 2016 15:26:35 -0800 Subject: [PATCH 20/24] Adds Texture Upload and Custom Uniforms Users can upload custom textures to apply to their models. They can also add custom Uniform variables that are float, int, bools, vec2, vec3, vec4, or sampler2d. After a texture is uploaded it can be accessed by specifying the filename in the uniforms tab. In the default text for Uniform there is a default texture specified as `sampler2D my_texture = "textures/beanie.jpg";` There is a new snippet showing how to apply a texture that is available in the Uniforms tab. The uniforms tab now highlights parsing errors. --- sources/shdr/Snippets.coffee | 4 +-- sources/shdr/Textures.coffee | 5 ++-- sources/shdr/Viewer.coffee | 54 +++++++++++++++++++++++------------ sources/textures/beanie.jpg | Bin 0 -> 467392 bytes 4 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 sources/textures/beanie.jpg diff --git a/sources/shdr/Snippets.coffee b/sources/shdr/Snippets.coffee index 320b74b..a9f2e90 100644 --- a/sources/shdr/Snippets.coffee +++ b/sources/shdr/Snippets.coffee @@ -29,13 +29,13 @@ Snippets = '' 'void main()' '{' - ' gl_FragColor = vec4(testColor, 1.0);' + ' gl_FragColor = vec4(fNormal, 1.0);' '}' ].join('\n') 'DefaultUniforms': [ 'vec3 testColor = vec3(0.0, 0.0, 1.0);' - 'sampler2D my_texture = "textures/purple_checkers.jpg";' + 'sampler2D my_texture = "textures/beanie.jpg";' ].join('\n') 'Texture': [ diff --git a/sources/shdr/Textures.coffee b/sources/shdr/Textures.coffee index f8d3007..02ba27f 100644 --- a/sources/shdr/Textures.coffee +++ b/sources/shdr/Textures.coffee @@ -1,7 +1,8 @@ Textures = - 'textures/purple_checkers.jpg': - name: 'textures/purple_checkers.jpg' + 'textures/beanie.jpg': + name: 'textures/beanie.jpg' + data: 'textures/beanie.jpg' @shdr ||= {} @shdr.Textures = Textures diff --git a/sources/shdr/Viewer.coffee b/sources/shdr/Viewer.coffee index fb8f7c5..8e32b03 100644 --- a/sources/shdr/Viewer.coffee +++ b/sources/shdr/Viewer.coffee @@ -87,6 +87,7 @@ class Viewer # Parses lines of uniforms in the form 'type id = value;' parseUniforms: (uniformStr) -> + error = false toParse = uniformStr.split(';') uniformObj = {} lineNum = 0 @@ -103,15 +104,21 @@ class Viewer continue if (tokens.length < 4) - console.log('invalid syntax at line ' + lineNum) + @app.ui.setStatus('Invalid syntax at line ' + lineNum, shdr.UI.ERROR) + session = @app.editor.getSession() + @app.marker = session.highlightLines(lineNum - 1, lineNum - 1) + error = true continue type = tokens[0] name = tokens[1] - value = tokens.slice(3).join('') + value = tokens.slice(3).join(' ') if (tokens[2] != '=') - console.log('invalid syntax at line ' + lineNum + ': expected =') + @app.ui.setStatus('Invalid syntax at line ' + lineNum + ': expected =', shdr.UI.ERROR) + session = @app.editor.getSession() + @app.marker = session.highlightLines(lineNum - 1, lineNum - 1) + error = true continue uniform = {} @@ -129,17 +136,17 @@ class Viewer else if type == 'vec2' vectorVals = value.slice(5, value.length - 1).split(',').map(parseFloat) if (vectorVals.length != 2) - console.log('invalid syntax at line ' + lineNum + - ': wrong number of arguments') - continue + @app.ui.setStatus('Invalid syntax at line ' + lineNum + + ': wrong number of arguments', shdr.UI.ERROR) + error = true uniform['type'] = 'v2' uniform['value'] = new THREE.Vector2(vectorVals[0], vectorVals[1]) else if type == 'vec3' vectorVals = value.slice(5, value.length - 1).split(',').map(parseFloat) if (vectorVals.length != 3) - console.log('invalid syntax at line ' + lineNum + - ': wrong number of arguments') - continue + @app.ui.setStatus('Invalid syntax at line ' + lineNum + + ': wrong number of arguments', shdr.UI.ERROR) + error = true uniform['type'] = 'v3' console.log(value) uniform['value'] = new THREE.Vector3(vectorVals[0], vectorVals[1], @@ -147,24 +154,32 @@ class Viewer else if type == 'vec4' vectorVals = value.slice(5, value.length - 1).split(',').map(parseFloat) if (vectorVals.length != 4) - console.log('invalid syntax at line ' + lineNum + - ': wrong number of arguments') - continue + @app.ui.setStatus('Invalid syntax at line ' + lineNum + + ': wrong number of arguments', shdr.UI.ERROR) + error = true uniform['type'] = 'v4' uniform['value'] = new THREE.Vector4(vectorVals[0], vectorVals[1], vectorVals[2], vectorVals[3]) else if type =='sampler2D' uniform['type'] = 't' - # Remove quotes from string + # Remove single and double quotes from start and end of string value = value.replace(/^"(.*)"$/, '$1') value = value.replace(/^"(.*)"$/, "$1") - # Hacky way to make demo work - if value.split('/')[0] == 'textures' - uniform['value'] = THREE.ImageUtils.loadTexture(value) - else - uniform['value'] = THREE.ImageUtils.loadTexture(shdr.Textures[value].data) - uniformObj[name] = uniform + uniform['value'] = THREE.ImageUtils.loadTexture(shdr.Textures[value].data) + else + @app.ui.setStatus('Unrecognized uniform type at line ' + lineNum + + ': ' + type, shdr.UI.ERROR) + error = true + + if !error + uniformObj[name] = uniform + @app.ui.setStatus('Uniforms successfully compiled', shdr.UI.SUCCESS) + else + session = @app.editor.getSession() + @app.marker = session.highlightLines(lineNum - 1, lineNum - 1) + continue + console.log(uniformObj) return uniformObj addCustomUniforms: (uniformsObj) -> @@ -175,6 +190,7 @@ class Viewer defaultMaterial: -> @resetUniforms() @addCustomUniforms(@parseUniforms(shdr.Snippets.DefaultUniforms)) + console.log(@uniforms) @vs = shdr.Snippets.DefaultVertex @fs = shdr.Snippets.DefaultFragment console.log(@uniforms) diff --git a/sources/textures/beanie.jpg b/sources/textures/beanie.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5978e5883490ea7dfafe5e1a5d6a9c279915008 GIT binary patch literal 467392 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

$h&a3SRmje_-MyMXc}^`;o|;JY$3B-n^)mhR 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�-R3wR*S z|EF^Et8|e3Kj5vAg-^)yEk88o;`Fndx8)WsKEC5L!c3DA<5})GXWt>u)B)2;e(O}G zI`FIOf{`4Yf7)Vd$=0AIah%YEy zWJyy@ye2wI04j{>ifEf4P2vv_!%$~xk)$1qmD{N_AQY-mzs)?D#ZSlFrq+Fmo9JA9 z?lQosbObSf5N7w633_qA@*}@{&?;1cTcHbSXr1NnzRKT7mI`h!E8Zwe)H|K6xt0|; z0 zugNszNdx8CV7UC=7V@PB*jjO;lS><9qin2!gz&grn`SIRKfq2T(b| z`TwYr^s#gQYvFuln`mqO;Q39{or!b0pPp*sCmuNcSfd) z#4cjU>QMlQ-Vn~Z%9>8n=(xG=e+VOF|)x)ae zZ6`D{Uq=B9kT__VM(nx6jE#zMVr%Zbi6S8xJS!^sP4j%!=zd1}=oJ#-S!?`|a?G)8~;WQsspt!;KkyeIiS}cgF@A7j#DqB`bk-rW4 zu3j=hf+fmC!$UPU0^>*+GkNh04=bV+wr+K)iG|a*8L!kU+{Er?>G8SUbG6AbCGPh;gjOn4c_fd%)j@v zKl=$W`Sr?5-Om-%o0GbKWmwLf&STC&HfzE)5781LjUdr_v~z;!di8d2PhsIb8v|rI z>YXYx#|B;Xrx7s@7o*%98OZdYr%j*nAik>$j3{M2CAf10%hl5{a<)4d2|H0=&Vp9S ztP`I-W`Ivz%mS;oB8FI%lgU434!sr3$JmT1G0ECh|1i1PLjtWq8SNYph=b9OhU}dYzReXr1GZZ@C+eeoISo2 zjQH}}u`JqlS<$i@SuuBoZ_VWx-pMprm5RWyYQ#=_UYff&<4P!~jVd$ho#R-ihUbk@ zL28u&crzry?KbJ>+>WFN*_#|{h>MDolOwu+Rkt}BhSWehJ*th)anS7#UQLOJSr`Re zY5%dgSFf&1-eFXyc22MB7IT*M%niq=8X+41>l0G&(b@nuKqlK9Gb)tK-l{;yM%(Xl zHI67{+zrN8I zBfLBUKxUm1Kj-D;Lg`yo%pbJ=?41-y?7HT%K?4<@h+_?}iuJbbX7o`@tlb(|@7AQ0 ze!R=bfSbkX3Y4r_c2wZVVd?~PU*LP*mP|ECCT?7TGJqX(@&+e+kgn*_Wtp~Ycb306 zwed(IIdrjzkDf$>@WTBj`mJB>7RTDUPfVjc95SPXX|ge%vF%L%-z;?h}M@02T)xXZot%h3=>_I;ULyX_(_o^W*k9CQ~s~FDA4c&RUumlRa z)0}a$r81h?XQ*qd4|y<=dWR4v;u!b`#R4@K@j6HTKhDNzf$u`T-_eMNG#!tTC_Shx zunmfWdRf_zGI#fWtFV2n{Mkq6ty3;8zxg($+;=DrzEUBeAPC!jum&X`~ zx8ahSSZUANcdSoCLyc(kR%hj5%R$eijNOB;1b>*y?2xRzH1x8oRhhk+C3~0-G~Ez* ze+wQRiCsoB2{*JRs)KiW`R3_1Ampon(DUNeQY-&M;1DRbuP>(nfU=z>xyGO1~GW zjn+ZyOMw(VP-1Ofk(z)xJ9&G1fR_QVPf!Gue]_rJ_Dh>y5>$P2H2q7U(t5Y|SZh|9>oZ1<~6t{yAQ4^|eCOxDkd>f4`DstKlyN zQB6sA@57yP#wqibFaRf*FoXr6C5>%RQQ#_chSq2GRAuzk#->*n0jqf%qnG!xhCDMQ z@->(%lCZ+#olGqIJlkF}t-cLkG_g4>#Uj29^r6Knr`Izf&8-K0(7MYno%E0o+8*e( z9;TKv<^ZH9LESJ46Cv>Q30VKg9kPF%=We6);w5uh^Fef}-OlVrhN_gVN|%wD2ho=O zp4L6*WLdd0KM9ZZ1QO6>gUZR}cUSER6A2&SuG71N5*7%40QU8QeLAnW7Byr5SqV)x z+>l8H*0GV9=(k>|vmP4JMox8-hNJbTh_m39Pzlte4L1=L3;DE?{3_D#E%Sz3$W|aW zx0go~TG%G0@vi*dmq?jm(^rE7rmtMNZA&)I^-RMXHZNasf3IWbr+!6pHyd#UnQx;q z@G(q~MFgSYc=}Y;3(beC^i*5%__11mS;+F)su2&_{}yf^10R~Y)o`{NidsOQO^VSr z^<3#&ON)`SOHo5Ola6NAe{1QhfXUPT5C>8x_-+haN>-eChEMgMyNr5o<~H)<3_aXJ zGEc^t2-bh5@V1n@=P(h`F~cOg*4M#H0HP9QOK8%i@hIsG!%({u9h}XUbXgMJ*;Zlt zm@vaJ9X2)w1PbPW%3kT59drGmh|PuVhC!JO0!nW)c_j|CRlBu%dd)5f1iC2#g9#yeIcwISgZ zI<0^=>C)}CuEtu=kN)r_!ARqAMvM(}6pa;>-I9D}NIsB?R!9a5yelbb0Do$`MjZQ0 zFnK)buIHFkQeRzeqoLlB0(9j{VC_AZsK6a~jYgSf#y0As{*YfExKF)Buklq`$pl+v zm%is_A2w6Lx>=Ba=DO17`P8G{)A~*fk9yd*$3_alOjLQFh)1MeuIl^qOchLY; zdz7sI2QH=HmHwbtvOPD@e32nx&7!KQW+|{swYboDb0_qZzEN~+jJC@?^?QnFaS~^s z4>u$01o#(b+UBCmMzWQ6l&jd|kHhdiB#8}&ga7>oc;(oG=WG`|I742xW)Au&<~oZB zW+!lEQWnoL%Gq&$-)nG5S4}h8dLcdAwp63VynofW+-S4Lty{7elJDwEy?Q3}wn!ud z)YB(8V0j3o(}zg_yM@*v7jE-Fk-xsNcVQSAXhFM z?d7n)vc^SdWr0B7B95X#{YHk`;!x@7aCzK!p(r0t`tXVGo;I*EJ7ie`z}BCDw|rY` zQTR68y1(PXH|t9nIeVRD=S*~o(rT%M`As=DfsvfXcE8*K%2x}1{-pe*T>9j%dCyd| z2iwHBVK3&BGzj}+(w$Y?YE2YXzpinNLj0X&N0Wy?BaH_xS~1r#V5bo^r(TeEj|5xZ5<2;eV-b0qZlAGn)zE<4`uf3orIWDshm;2k@-q^ z|M-@1x3m?KJ70KD(F9$rpVT&NxB@nzRJS|VGwVDjt$7v6$kJTGMGW>C1R!5xI2K}Q zbywTE8^|79mqDuAb#JKqfUqwR>?;A5dQbnc%{y)`7M@c`{*`V@wzQH4Gm)|k9${NG z3AIU-+TQ3#`;+Ga%~V4JZxl0_vB&YhXW1rBYvk8Gsd4+WD+p=+1Byxen8S*nGK2S= z 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%0AA5q^JfjOa? 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

i)RT3(iK zgHsPz*xl)dnams-F!JclnU`9CfAGmaATv_o?cKKn|GQ!F2iMATW6LDqH*S=|j;US7 zI?s3oz6ilxhFkBqM#<7Oh8Q67V#i)E5nR{4)J-3rEUKoVV9KeM@kYsC0RqBbZ*z2c>GD zT85z;ntq@s?o-?wB>Lf6mwhQ&8PGTYWm*2FlH4~omf{qt*0T|if^&Ha>LAA9LT2Eh z=BEWhywio$xy-YP8AZ_iA7Ym;qr)sUwS?$j45mN+bvW|ib0-G9dr~1nOt6)#duCwO z_@DswRdEL6pGtu$6M&5@bl4?B*7AfB@vb4zLnz&y{>;xF_hG5kM9$vnfX&mdxb%8x`sY7gG4&Y(q2Zr zI=lOXhMl%Rr3C1S~Q%-HBT0{*T7)J=nk`wpCXnr8OL7rkeUMkdN}g ziWEf4Pk#(N-k5ts@Q2(mXqn2k8f)F?Yh87R{I3j;9LQp1p1YHl37oB$c@Go4q3`0- zCh>MI6+RC2xZ?KFZE6V^y}zC>F+NG_IF-X%Q|D~@J+m^(ucy`E2txp!@2d4tsAlS8 zZT^zqh}QU8ip^PGcdeGfXUkoXP@-eLrmXDFPMfMewYn-w0B>e_9e4x~?apfFki^cn z4*J1%DD}U(p2MjI*lsdlUMEB!e&NaUQ5_2mzEYvaPlf`pJFlMM-$2Y^;S=VmH)|g$V~$J+$pe#gT#ojW5Cg*C!O%Mlhas0rQHZ&hjq|c<5t0qn)T^yQm4&j~3>hE$B)*mTQ07uJW_0 zr`yDwT&XToMTcN>vTx5-O^UY-iTUQGJNTaJfF2oz&y+tH6+2$@BpGb_WeLl>44kx zLgPLae5sA;(0FF^wBuN%4oLJ@;9C0khAJ$bV;Z3bPV`>)vF@u#^Q=d@W@XgG!BGpw zcK5p#Me1J0w5zjIV@0TU8Y$>fsqf1;29yUvXfN$uSKRQ^hYhZtdXzKkU9WsX&emLE za>&g-bw_;fiEXKB*;qF*de zGUvIdJS#m2i*Xqd<9-N$FAs3B;=HlCS9ea;-*wzjgY@I)(7=2;6YCYEVyVpOs~_1?R?_C$gy~){ zW!K1ihqK)0rMhip%Qto)LOAyKM|_N%i&CPy%Cg~bV#6p~QA+~f)8F!qkokC}LCH{9 z%AIjvlVh>dP5N7UlTqxuZ-=eJ&YK=3ax&KW;0UUax%mH6Irt?qVMDVy?7U4hZ4nb^ z-_BfCIlB2nCZh+EDv!^{!xqR3;VhTmo;>hoR0jB|yabCukx4UK1oA>H-MLj2=cVS^ z2Jt~qFv%P`11xk*RLV~OLr$4TYigozCgv8c?!>a-@6 z#?_ec!6N^2;*DkWD{1w>-X7}C*h7aVHzxbQnh~Vb0eq}*lnP8Xyf?P`0csglG_^Ov zLkgyEs%dyHNAKtkb?|_z@tU4Be1pC+#QWNf#l|apjd)cOZlz^pyiONIOHIB1zL;lr zfhWL~47&xmxq&poi%<`B%ail_J-Ge3eUk zcR{YdL)}5GsZ&nJ7ERbLvxDs7q)eY?rm{|5>y}&b!1+D4IHoZU1%K6ssZn+{0Gu*o-OcvrC zK=XsjV>~obRWn?KG|E^kkdxUl>}09U(G7HvZk0JnQN&%(^LDAzYj}95BR6C|QlZ9# zEA?E=_jQ{c<$;viqw%JUbLX#2&qiJL30f9sNUWQVodo|9B&#QV`s<4D?6soDXdb$>xGAMfP9&d0SsN0r^k!3z32F5 z$$BND44Us%aC6nsw3%FkvV5H9eERk~R0Jf-yJoJ9xq*s6Hux-_e>a{!UWpAx(MGQE z2ZluE=K_0N2X>OSJ$fo2g@@T4*YxPcrR-JSJeuo{MKHL~^RPjr94rcvYnPK*oeoOa zKyiawU*^25yYj`QC^>;lJ1_o*)uCFc3Gnm^)GC5bc zp3@`o1}!0>Mj>_WBd(!-wy(;Z@}u+U!mR2RI&R$5$9O-QAoS63rq<9IwJB4*jEb37 z1be{{M+FfU56vR4M^3pXjEs^-OqJKZbV!;3K%$rMR`x{qWca%u9H0L-(n6ik*2;p|3FjB8O&Bq})t z?wi@N-MkshOo#p-&#vI1?hqwBuP%Uk@JTv@t&qtG$C4Q{yn(fv8fa?O9p(9lhRzN+ zP21wRx7wF{pohxB&Xhir_37CyegE$MZ}Nr?%tMRN8;~;QWr8^)TYxQ?i2IcwrFQJ7 z5%(^7qt>hV19#bxhM9s-cU!E`u=$dTIPDTT#f^MKD&PlZmi>f8o|iA=_)!zC=k{i0 z#T&V;*INPB@o~8xxJ5rwmAsgSfzE5>DM}S}KRnsRy3u{-4_UcIw_es=DxRTM0Yp+D zq$1KT{czF}b;GtZt&kiY+B%d?8ipti{-?MpgZ4e@Df}}; z?t1m*l8#y2^KZ|t94dTO+M0j9?hn_HerDX$QDlyk%mY&8Ugh79aE0HXi-uKCUb|JG z?mu+xE~P$8(=X z*p(rM9(_05m;}UX`aXQfE^rL%n%o=xpxmN<|rIvNz z%eu)wSmR+=Ml0JvZ-Dq4zV~@BZLU;wdu~tIhtU}N;Uno|VLCG0pIfe*d+>XOBgLxu zDtXsDbJCewAoj!p$Z|`IM*O++Z>ENJ1798E*vd7tur(fybQ1KiQ0H9CWC9 zUCvXyO1N~N6j(kRTeY`E#X*((;y#pkz=tjsw!iPtZSS158Vv*^#TFG!ZuVO){$^EQ z$F4r#{9C_Hyp245_?tqfbAr``V$2lx%a_nAyfCHdB+WO=1T+uNobdJdt8nw6CO>cz z{eoVvnpHBV!1;C|)Pj4%R%_x|hg!3m7JSv>&&!#A7f+{l_?-T!XPEQ2-frEsjJkOp zclQ_=pdatN%(yEE6=qCY{HT%^m}LwzquOe&CvA$RN4@tQiuX6LR=Hh?W^eR^5yTbP z-8CDYx#WkUk(%`@Un>c%O9MsoQh4RJBM;BQtnYpvh8A+_y*UjEW8a^1tfwA=-^Ldd0D$$zAk> zqJAHfz9QHCFiPt(4$A*!Ow!+#7b}BC)DX$q18y^@uw? zjYsAM}78CJ9(BBxJd( zYT2hWx+f|R?zGE%%anH?A63-aC`9w%1D{_M5WBM@OM<;L!aco>=Jdr#6Say~o#12N z3X3OmVo%=aQFBD@(qZX0Ku9cbZ8log@j)$M}I-z;d$y8&wC}3bLRO@~>s(B^Q(JW_70+IIrcHmK+2rV$~>+tf;&mUZSDttVi>$b=A=U0fBmtIv|F43ooIyub9Z3RM033TKEp?k zoRG0oJ~xkE|7wf5K2Nh5tqVIXHI2^D>5KID#=+zJP9Uat}fllj^q zN5>cl{$-hKJ>D}A-o3B#7R(#Gb8skW>H8eiDU53Vzb!vX)W!6X{20FVYIM1kuJeYX zT@9^AVUHyf!~UAa%z;!vt?KXVn5qk36FCGUxTEnn>4|#*M(MnoNAI0vTdo4YJSpY#Gm7aoW+pmOLox`Y~ zj^N#Cueiwk$s7o|+G+G|v)Eq`l)9jY%uvgQ(Q?g|TUUgxl?<(bj0S!hcMT5%ek+KU0XB7+}ZIz)KA;tROd;^&~tQs`~ zb{+R$@5#P#j?wPJFMV`%&XUgeKw63N6RlulY!|YHzQaLI2NLfOYfdOg&EQC#b<+St zQd%bQxOOU2RB@4mEg$$seM)^92Vczs@)~;suCh<}uefOv=6=I=KWgp0*Pil>H|CnI zzwpWB_6B2^Nd`jc&c4A>9iK+C*Es9Ju>aKSa=A%RIk7{L}{1Q2nw+YPx3v+f+l@K0o?(7+T*LY3SX>| z&F*{n=cLEK7{&!^HoQwVMqxtB29U~q0V&ozmZ$qXS#)NJvZs^@>LP`&&W?+XQl2$R zrs32!r^P;^0BB~%KA&fQPNQ>;qiP3QK6l%Op3h*%dHaF3F2z*QMs^|js}q}iVx~6q zxk;7#uJ^++5f(tJxI=DW&XPr@u9TQWMgY+&ccjZNE$4X{0jh;SOswA0PZnGfTv>DG z7-1@**3UC_%SfMQ_!GPG{L&9tQR)J)gFw_#B2xJpKs_xewOd0z+1wK}Q~HLUDi4Apw!qtBW(X;mU? zB0#0>Jn!FAa!$g>Wzd_PMP21t{v|mQv!SHz+jH9ld3<{B3TWbH8_*h?iAOw&J4||c zXooDXi7~9jo(6jKBr!4159^G@`5?uS;Fi}+`rJ(1XziFOC4lhAasZk_cbDxva`THp zQFnUdwmd1#n9M3nbMJAyLSj|_w@IHY;^=4|QGEF6u<%(eYS=Uzg<)*=g@EN8JbB^f zU7r#3v{rp=@jeal%i9;4JN1ACwgS*b0Co-HQrC8ec?#1#=#$tB^&0=unT$<&g^5X{ zHGlw@RHr#y!)Qt2np*CH(GN)2by~VzHLWJwgaS<7DK>*+U`hmJa#2=p?-!_A00MxLgdhyfzo42J;PH;J&N zu%9_OLXGE@-E3-ANj3O9S`hFAW0=;uY*Qw4bT|GBrVFZ|{}DU|RC`Eg2CqC%j)g9N z(?=*}?rG|1m68R6n=ismkY^*y>NH%wvmg48$N?ytl#AFSpOWbMGn`R8`qmufdeI+y$+4eWLd zSu2O%NncCqqBV{F>4GeYbuOc8Ue!GtK~uYL{>MwF>wKf7NjCFP|Ekov+yeY@ zvf;~kdC+qS&J*C{%{jR(X_j4#i5NJCnM|Gyw|Z}D0EO}al2^*?NF10X1gWA3E&pwD zv-_qn6XJ;(VJ-0|>BOXs3||X2fvB-peBW7io3HgcoF~dpze=m(DN`sV6mkkB* zzakdlZSg z(*}ZGQMbA#IYPiRy%FZ|yW*n@rC5BX&S9(Nf|d2kueOpe+N12&G2WAlH>Tnhdft}j z7Y#V*r8AV-Qk(D$BeGgd4C$w@*T7f-11BY7ByJ~k+AIBa*`^u@ z38W1`d_j2DT-|S2ivM?{KWI%MErM2&N_Z1@g$~SsI+?Srab4$|bmqKmx>%ciew zCnps0k3YtwT3#z+kp>5s2z_fHe+PF;$3fMEIa=;d9$`vWCtSNr19~8nG)A}InI_(4r=4P(#7FHp31Hz!Y;xG|uxWG&~GB$ueS$m$IDTU}xj2BCXm~9gh zZ;FFcEMF@pAFn#XAF%mZnEo_;d7VgHFuq)H-rBy;F#guK*LF(BSPMmaNGYFSIAEjob+eVL6h){2W?|xtvG*ngCGnGuV zc*iy}y=hI5fbC>3Sm?O7oqdSC!Jt*8l@WU9|5XrmXxvePp!}4VJp2uRq zZW6^J(srp{{};w)JxyabRlcl=kh!uxXwI11-nZE-*YIJ`fYL5F%lB00-M{c*t&i8f z1pl-{{5*Xu+eVo{X&K!?;Y;B2u>ra{ek@@|VS-<1!N9Oto`;)j`U6k{h-E`n{>=$F z9c_|JZ;n4z%gL`37ocZjo<)FDdfO^xD7-4mTuV^Mz}d7S6xRk~^p>x^1b3s7l* zF3!psZ+WrI;7K1zN4q285SYi=QqEtXL8DX8tPt-GQx`~5bYv&^Cl$%&^;Gy{YOi&~LoI0z#J)O+S< zd18)50Ci~;KJb!l*rBWpY05vl%4OxXXBT_#VPZfG0GP&^sBMS!<)Z&27y1mU!#d*+^zCe$?t&-e z<8#K=bD&$l!FDQoF$+KEzBD*XYoUAD{I`jf2H@M-XR??Xiy`EdYX9sh6J}cWdCTea z9;7@BtjiK4o(EchMq!jNoLd}!VAuO0ZRz%9&~ghnBodF4awi}Pt7}&D`*ybV3O#3< zBbUR`QvqNB^uIrnIrJ`h>a64Yj#=fcyv?b{Pnvfsz=f2$kn}@RS})8>a3EsHK_ZeT zJ}{B@1v3#@<@tkCVv*UWpxOhF@Ngk1`M*tT#N=?$!V9lxUA?Ue(=_-BfW0JlS|VRm zw!pRdPOZ&$TJyuz4z5N^&uAQc%$ajKAtL_WJ>qcLVb0U%ulJ1H4^oiuSHo?$AKQ+jzQ*fEv3^X>iaG+Fq~M=bY+V zk<#VTy%P8;BLldF-M}JndCe9s@sJF!UBfn2!epEH&^w(jcw zKi%r23!(&(J31EGBC|cnQpP^5$Kxmd!bzZEpN}Szb8CP@!s>J*!y?V6v-VPB)bc^(CW436ar6uF2O{%?a7!pQpuU z%nXK_U?MT&{+#a(CZ{N6C-P0g>j2>>5%4I1qwWt&gRf>@nFCNIA53NIbOzcI>t|n^0jz`_NKL;Clqz zcN%5^mH{yEG5S=t?(!Ep>=ZO`+P#b_?4r5i45C(#`s7GXoO#}f4X3HLFNWb3|8WKK z^{Fom|KawDA8`%wj+isp<(xHeQ;<0|W|$mH%q8Rml?DV2^gTD`fH%&5K*#t_(IDvv zjuXrMy12Xv;mA3h%hmfv@Zl1&>aW}|JIx+rt|k!PtE>wO%_q!SKJl-@7r3r~?K&l5 zyoAXnUN+o*?Rw_fc&apW;kMe(d<3!#_VlGE;1DB{od4ToCbEKU4+(o+cUj!zeC09t zZ<4`*hBOg!;ikZp9QntAixoyxI&3REIn(wU{+-?N6M+HluDs59ax-4Xh(DSc(7P*c z4EZ{J9Fs5eexm)Eie~35$o1N<-i01x&msll5RwXH*+gVUxft?b#Nq_iZr%C3iWSAP z0{1pzytD-5VdCICgl2k|dR6U%cCKb&rm}_0gM=_|92ca(Tj#%5T{j=(r@n}^!<#!8 zIOpMC>Zt9p#p(eIo-t3${-Mjl?aruLt2Cps0?x&D_78CNv|Ba+HuNVqs6{N*a6zR~ zVjV_o6+l2Gx?!)7c80?%yW`6(CdW%h+eZH4!>7s_|2Qds|>DH^}`#Q+L14l|PgkW8avsCLs5-ok4oRR9(S2emJ9TFXxo7Rb4 zM1kVx)BT``2MuXA@h*r;h*xv80^dO9o`KJV&yPCgf@o2-&!g^Ya~F0cYy8RFb3)cR zz_NU@r-Z4iNo97CkM5owLQ3<)**&fs84@^EOsOrjG3?H4^{vfw1bs@)lC^{^j6s}3 zB4@8K$Ep1f!}_z_ot{dggk@nC(2M3lWk&jCb*Cxcs?i_IHk}gccRqMpsO+OQ*9THx z=r#A;%i$!zdM*Q+sUW-o5iF=1?bwao?RF*f&Y^6^_lks{i= z;FHGbC6`pV&&Y*&Fxj%ZlnhE5F5#5IMGts$4%QcH72cQL-M5_XL~!G&gmf&&{n|6Q z9b7ht^oC4xs9R%6m3&EWX1bco z1~x9#1L8oZq$R}|NQS?SQu=Rxi1+jE!IF)hVwputB{7g0TG212$p3c6QJ~Q2q;J;E zuP48ri}3Y^5u4Z#|E+ho6)5Dto|ALZ2w}Q}*|O7hlcgp7zbju|BSSD8kkexwFbl|a zT9jvKg0wAENXhcE^^aM}CBVHdQ*1-J_^*z+fgCkz42aPaJJd`?X`G=<3y5aRbPO3<7#_xq|83x2?$0wW`5 zBGE{4WpqD|!ajzy!TgBrpCF7r|N6O=(%txO=6L>iYp<`nEuHAU8{xLW)_Z-=7r64@T(lQd;Ya`*7mq& zYybcaL6*kSf7|OWb5ES@4m{oI-#)rnEz$`G_b$K@H?x1CExR@{d+mIW@otpH?TWwh z7F*y`9(}7hqMU8YE-C`^j1rNmQHm>4cR^$bj8@Jjs&>aFzlY}Sv3*jZAN757i zsAz0ypYdCergoidqu=VRf3Yi2&?!)J?h-CoIPE1XA5yS|yp{27{CUeUc}vwzUaCbR z^naU7?-?HJV=MKT(B2POw+z^Bs5y>U2#Moi7Sl5OKMliI;v+?#Q&R#Jg747ahELhl z#I}V9_!Lk~+~xK+iDNs(vX=~xF@)jiVFxwR@poX+DD~Xi#IyjSR>&6W%d^=~t`<_> zrH9vMwf^gldY|p@;W8yC)9)zu9Sl!YHb$2-MQ{W|O-QNwL^*yzV4g$v8rC-{1~0XG z+h(jLkaG6R$=Nkq=*xAV^g5@5ISPy#S!Za?$3Y?H72eWr4OqKX{Y@?kwcmCwf@c;H z54yDSgc$#sYhwA0_w ze78H$qYJcF=WnH_?Tf~8ErB23z@!PdiT~nsm^D=lu~poR!-pZM#b1o@o*6k~0eD=N zy9lf6*YV`QXR~|}EVLAvMy-0mDlz+S)1nnBbF!^$NooOBXnOXn%@sSzZFsK{{yCU( zQ08z(*3=|v8PvGSLKNCg=Jg%tZ{O!*;0-f$m>IS^e$wKuMCTXx)qU)viEaE{l<3}; z&J4q;_Xu>k7j*kND00UI5*u4jHNnn|>S3n8oN6uU2*jY~Vj{wGZDbq=5G7uXSTeTW z|HAePv;CoLgbtW|f|fYoSxN z-XZT7IOfSS@?!%Cx*Q~Vrr{~0sPTBS#Pi7BOI!UuHPrkuO?#3(vW`4NZPp$Ng&#lk{5{G72T#g(a>cpv>L)9NHtf#&T z({r=LC=*(kZ1yUayA^Hrzys9y_-FeVc;-3f%y;gfodEVSHt0On;LPmNmfgN|I}{Zd zTR3}n_JjB~iWbTOvmJri#tc+HL;3efg|s>MqFrs-t9no?H&k=UP?s&S=vbQk%XcrJ z%*n3*$o^D~|7lJR*Ow~c8rVx4nL-QV!p%#tqbVz+K1M}lYCqM577;_>hn9XTi7ZB@ zje1zC5DYoi8*NZPK;c?x|31w;J2E7~4h`ibxFOv3O3jN7$~ZUxD?LS4?uk4@%|G0= zl2HV|*B=euS@C%T69i>l+Vz-BqWP=M9GJH*;|=M!yzop3Sp5kpHyt9cFs@bBn1sKv z{%xRE#=#1D0>;^`!~t}F!<9?D(%#9{JSQ8pxpFbr)Uc)>V;IL!0Q08AjG|&&L=4Wg zuD(C@wW+OGiFA&pr_F4yj_yCrG_$_z5Amx6oGnT_08Gl9$K)>Dzm&+*lkH%qqb;@mg1W}uA#&lz*vH09z2OyE>t zUT&<=BQsiQdlq%uM&_e=@&dMV!GG)kr*YosMPw}Flp#@3@#*_Zk*sQ#%&9qRo4*#4 zCwK=Nfq7r-VxgB~WZC3mkfIqF?^o6M40726cdG7{X;z3ESj$$+>P7fou@nDMd!Mge(&*pSJ*G2jxs~W$I5`TyRB6iwXbU)KLya6n z#i`l?Lg%~*mcfNQ=6ytEKx*HEg>biZPhb{ZVlH{w?rH=D+Q)*=-idn8Y7T(YR=knBX{eI9n3m}v9Z-k+g~XX3+Y&ekW@Lu0k$h8C3-^K zC-x@9>CKMrkeY!QjIrI5$H^UG=p*!A4RJQK7;Qd;RdX7Xcr)8%-h}d=#in9e=9ASZ z+`xpa0{i8thgChKC2zmO?$+MWi7=blA^$X@$bI$w<)ahXBQ=Ht;pQ?V{hJ&5&%wPN1Ik+JwUd0=u z2V6hDK1US%rZa5JA8MiDBljG7?dlo^J|Rdbk9$8$@`L1^7G)pw9rw>RLa_>Xk?ipx z85GD6Sd|ySk0~EzWoku-?p3#QI#j;W7PP@;WS-*Ib|LeOQcETmt;9M6w^UouU;Y#n zEnFjpX7b0I8kJ*onap*6VDXt^?^O1yO-u_u0=d~Grm!SjTp|V9P;z=_NOGH3RZ)Jh z@v^rrO|GS@v};gm{xo=$7hmcxCpju@yrGwNxNN%k4%#m$KdYKH0Dq(%a3JnO{*S6~ z$OpPx?L?cc;uxuGYqgv)%EpBXF+em$WcQ zRzVO}nFyM$Or+5H$upk6Jx3KAHCG-VPxIq_v61OH5dOD?Uo@qMFE=kZf*Tqfidey+ zo`){cq?~__=3u>iS-eaC`Ud6t<#8)KkM%70rQ_?gD`JwqE=zzVQ{gvap)WS-2hlEG z>kZR`15h&bmA9Y0XPM3n6H`s1U zJVNg!e|f{-TF7Aq-VR!woB7;%Tor&zxf?H4P#+r?&B|iY@;wy;Y_t&mL@N@J_J16m zizCzf|Hsdz&Z*Q<3ZblvOXae1?IQbjaal-lHfC61m|;<_v7IiI#4s$EsN8ayJ98PU zG&3XRGPxg@Dc7=@>$dZI`~3r2+voCnKVQ%1^O3^DkNt*n)uwtWw~Rb>Y*(UZ(Q9K zpSRA9j6B>c8_p$Ys)uc{YI1T7L(nrH*)jJZ!TC;#t1?NaC1jR(;HIY)7_d$cjS(}` zhlv~B135L8ea%3wQ@E}T_mKWC3BAWW(sUGFGMVP#56Xl(fRup;$=0}lgn=|!zt0B; zhA-iE6%0TWlx?K%*RbS@EshQRDZfz)!`Zy0lp*fS0*xbK)h@zQ>@?QNQ zxk^G+G*`tSzK|l1fvF{^lD-ho_9lV4L9Ar_8gJf^<}o>Iv1BY(F#q+@escR@3MHIw zqyx#Fn=>CVff(N!`bY8u&stGgfXQ}m>Gm*v9I&z1DN0p|?bEj<%g^-*khEqIUovHEm zavz&X;$A^CxyURReaX0&he*FLRQ9A7iQw;!V3-2gExO~ad;~vW>cao@Gt(}* zqbnzxtitwpXFMxw`MCtb@L1>Kn4{C@YhyO#rcu6&%44?3Yl#o$z$zA zVl21+%-F1hRZy;lG%l#!3-$vi{O9*XjHD;Kuy$@TjOUmHK*k ztEI%2PY|FNbmddKGS#Xc{SD`8r`A>)FHTOfNEwpUYlSonyv7zfhdf`FW4Q2GZ-a5f z)q1$OAC#EjcO>b?UKEyA+%9pRkvU|n?_3<1wNrXg*uSe}CM{J5Htjb65eg#>J@B3N5*2jvk9a_r#mpaHwQmSk3deZS3Hn zg0MfY?>XeKk$qyEN&!|ArWbjG5qP9M0zCtd}uKJ{e-fcn@{J&(|g zz0~mR?-HG|myz;Mp5@9#X0Ox#l-n5=PoXvELI)bRcmm-muDRAQ~@sM}^1@3nzoP7EY*X{gGrXXWIAoedc*<{fk zrF$SWHiUxjpiGEz{Y^5&DZYBX)}p3hm6s>SA2eNf>LDqs?i3e&J&RD8l9;0n9TyR$ z=ZqJ}V!^gIW(&%WKH|pf61k|f%Q@9V^;r1bso)$7PYQqDttahQ2Od$e(T?O8Q=cy+ z-ATc>%<3`y_4{^-1mHzW0y(=9u&U&aBVDzbGRCabYe=P?CS>6#aC?5FrYb4~H8UnJ zmKJi8eHg?OkuU&(=aN25l^-)3KRpw2=J%jL8eY9NJ{+?}FFD|?! zij8!4T)wx4Dyd%cLawFS#-yRa0(}XjW)NrJLPN#F;&J*Tv*^|#`{gN5gjMTWu0LjX zCSbRK;Fnb8*zcykP!1$LSQTI1@VTrseTGKV(n^C(Fu`XyMgQ4m<$3GR7ep^78wKjI z_2AADsDD~I(ZmTHxTtTp9zImDmHHog&|L!h3;&3CYIdITh1k%chv$I`_Jy-#3>UNzl+r=yca3KQ3(GEmSH!qmjOw}}GWXi9IAu?qYRXjT_nj{$2~ zvtyWEWB50I(E?whw(V!mt9X(HOix6Wm!HhA)9kfkcTM$B zmu4k-s??_~P4E6{%KY-0FU_~P_)zdtnTjJS^19Zh394E9ZLHN!;p$X=V%Zz3f-Aob z!+&;(ydBno1-OPQE~!3XKmMZw+OA{ERV?DoKo(PS;phfdIk#QB9`i=evFdqFvz zL6(h9lTqS0dBWc=V4`#LRI#{T8BX~t+8y5pgfso{e&=Qlu=LTCL95>v?n$rS%^cY{ zbS_|uSxt++l&zvfzS%n-KdL}^SUq39Bzdt0^ywqV<3P$dHT-o=@4q!0A6kMvrcyCA zn$W0FI(Vm{kKKR})*;+Vquh@cv)YN$=^?5HKzMQ`&JV1=pDnscXFDSSz&A?xG@6keYG#6noCHs4R$0F>hyt(xHRkP;rwgboy^5a&weFhmZK1H{1 zikY!LrAy8I>*tOHyDdZYaY+Z~^Wh-W`K0G6=#(S@D|w#t<5-Og?tv@&wQEOnZDaz| zJza0|eMdWAOR-F9$s$c>8kM^4zI=|P2abNX|Mhs(OPK86#nIfa`l^}wYRtz|k~dX% z>m*tEg0-Nw7+?H-RS#9f_Tj$g*)H}0Lo%^@Qjb9hCUd@wDU~TKEu>!Aug3}M!ZC`g%XukJ%T>R`=kw?i{}^4>geopM=If=%9jwW%?T6hEsez3tLV}cT zg3YjYo19xKfe)um)+D#pR?tsC7AzT{QSYnYw%0VMT0GX@y65WfZBo_NMR+>Xb!^?X zY!GKRjN5PBt(zADIqR8-xGgg6O#~A|wCcdl?T`JIvmSl(5JZi%lJD`j?m@G**qINV zYSi6a={$0xsF<6yBq=G0wfYWeAN!<*Ipag+*?;7!X3>-{h_8XBDW(E4!0A#XHODlC zlv{nWb=(u-U=E&Y2#&h&$+U5*w*Qg(s=6tfPtPf9=I*UXTB8zr;Z&8!<3!u2ngC7e z>$+57PhBJZWu1#w1OUr}I{`XwN#Ph0Ond~hdN!)BDmZTg;(EvfKr#%S`grh~rIpV0 zRa>n{lky_Ao^Y9o2UEeoT4lSLy0J9qevEGE(WsQ$lOL4ON%Tz!zs1UO#P;vV`?fWy zi#t%hLsUb_n357v1Hl)Aj;tcHa{SA`Y|O{61{Ag2<$@Ykb!K~u4|`i+i<%Md=SHCU zaMrZhR0UWtQ-I@@v#rfER@@}qQymvM&vE_IDz)^Q)WeWFTj_kiyU;Ed$>%E(<6Jq{{aC zqZ7&s^|UY&vfIvgTjG^6(KT`6(?jN+992t+xhJ3|#2;va z8%Q){QX1n2_wU~zHG}9W6vW2=;GbM6E*`@D*i&RaN-5jW&I}_iP#3gFw14zs+j4}5 z7t=~Qjxv&q1IM>|kWgqUaE@uJg;*I>i%04j;z#=tsSDk#bQQ0}CYY@R-1sMxQGb4B zrob{3>>WpNT{Ez^wC^MO`taj{Yt0ZoX23UQ_s22I8KQglfX*6x?(*0eb6`?hdbJ=< z=9>%TGS48msVdQ(`~_zUvDunTg0-OFb=@z#rQMNzz^Y&tNe^_zg~&Oh0n`N2!r9t8 zF}vpZ3EH7tx!#&{GQ%=y&Bglg)&ozH1lUcRC6cjV>e_L&jH?w5y^z_Y5zCbTxc-$H zfheuH2QU*ri~dm!@ApNRFroz0`w(XPJRtzIE#!mg#nAl&D*?VvFMFZ!@V{Sd@GyJQT2`y6&T{OF!$*ckYe=<<*?5w_F)JB{?bsf+{(G?`R z&p|&o02(u=%Ai#V+qKbV;->Q3qUzYVkG`FAY)#dhpa2L!ZTGA{nJNxFTo%{eT2WLL zwP^#a2pC-Dt=HqJ`<>0SGl5lk(=>(?O3t?Mf<>wtPVCKJ+$P z8;$OLlWv|p=bCHtQwZ#n;>;J%c4ft^KM8r2(e{e5@wRTFJqgajx`I{dKCIL?@zEL0 zF=h%xm@r7lh^Pv96;`{D%hORln=}j5w(wWjHNc_ck|DxP)P7}K`KGSF1^rYJO+zJi zkLgJ1f?pFJm2L=*ypzYI{e#H41oar%V?xui{1IG#xJzb|QL#_)q0a`Sk)^F>4#9g#1L{n_o;QMr^JhjvL-h4fqyODf`yU#4C+EglLGDcgzy%l*nZdvt_f2W{@G2;gDI#0n+Nna{@fK!5n< zQbxO+Rq=?EpWTQiow*kImme#4nWzdj`;+4OI|lDsM>}_dl0Y4~8RSeF@@lkgED#9< zm71Q~Jr07E#JdF>g$1W-`c)xIm_tuuuDP1=FIw4m{~%lylHLr1tjoSKd5ldONEBo6 z8lOz4Vd)#+tgZ$a`fM&iw+odzc!2X0(g*dMyP3 ze%k7RBMDc2E$=CHh3l4v(i$U9{t5j7hIdS5^ZF6$43*Do3>mA7ugS6MRHH(K+2zNp8R%_9iFUfV%NNf_24y;d*y*rOIQ8lQ2< zx$GuU0ZWK|CjE51Tj&>Jhf=?}n`)d|{IkH+q^|aWNts=}{+RV~ltvsP7d{YL_Lf=6 z2=u#@`kme|nv-i3753J-t;$)t$jJa%n4dsL2iM!j+E$yox}IfxtWy5B!nU4pnBr4xD$4GBAlMM4t70jp=b;1WJd5ONFiZYdtG3=&K==Xg|7<1T`a(e9Frd z5L=Dcp4u#yn4YEGH-0Zq}@uZSNucR!B_-U_V%y(6c(6wIm!C_iQx6dBg z!tXX00x1(<1xW>30X884^@r7Z(6{@=WPJ?UB#ZXpUGwAJV+Z1-n>dwm1fngWV)qr{ zYrh~846c#w(G%&~Jvy-X8q_{bbOT0V>`LX0ulgrdpG^5(MfoVR_+=aCTfXm51BOJx zAlSu4aV&@IW%?NP7fZ|X59@y7-)bN%f1R%f6^Vmu4&;q7{_U7t4du?JmHM}++&yaj zHvp_JT$d&bIN31Vje?sgfIq%87E9VgXHz2zZab*nbq*xWk{@+&?TT>o+Z>z3(57 ztM|Mr<6=^KwIu0a-)l@2phcbBu3r^DtMbAkzsEU3PZP2Rt$L>VV>brfZHKS?0)VeM zQPhcZ3fJ}y?acFD@bE?;@+d1HaoxX;+Ap8_!==ZhU$J+7;YYVo@6ksK^ba6_#9tx( zTeEW}|NM7UtU$>9%e=;*^G-#P_PES5)(?TGoW7$cPtpM4- zRdJ_fFi^%4N4>JjW(B1E0gHpjJmJqxPY9;t!)}p84|CO8vWp>ai;BMC+xhnA7Q6Si&;SR2@SXcRoBCN|Du> zt401cEkuGg(@#No)N5BgeJwEjlXR`w^&XobZ>le}Ft2+!cHQc!_MqkZ6?_1DF8e@c zuIK+77?KVs*3X9XVhzIML`Cd5RLiV|UKMePD$WL0-l_*w8L;^F{}PmK2&XxBo*!`u zAdKpVo2E>2=?jBo8%vl3D?3~T?@*h*QFKk@bUHdWhn2CL*;Y`2-{SVJRa_J$=> z5jyAzZlMPqSqhb^&MQcv$!TpZS@nq-l?c-UAqga!5l2&ph9mEDsxG~?E)F2v-2?^# zn>$Reo;Zh<%I3n`%J|`7i^#m0C3t|r@GC3iTABxD8jzt_mAsE0NGb+VQ?<9G$5~68 zyy;p61p}trSNY`-z87C49QrzJOHdv$W4{QR`cfUoaWdLGH6Z6yxV$iye5AVP>R$Go zE&Km1-4$SB+mo`t(ZlTY5LaagkK3oKCIY%+;4m|oIR(x^R2giApG#@$O9TIkDrYk` z_{PB~EAgf7YBm+RS)6N#KQY83Z^opNaKvt)S8i&*!0X8#O&t`V5cx$ z@#skhdB(y1&Il5R0M7YZ+fP%#zjBhPpKac&*3j#Ju$69ForwU&F6b4+oom{ci1|bp zsn=HlH%NOYMp>iWhn?)I(=nFCuf$B7@G`nN!!yr_f(@K z*P#)oB2Lf+&WcjAdJ>E;$>Yf7TfQ)VYY8lI~F~5Sq2i%GD-h;=nGnrDevUc2ApQPM@y6$ zu9<%4h1r02OH@5;_gj7wjpP3I3gK|9h5Iod)%p=O zU)+kzrb0oH8bXR_^B717jW5i@=q$e8FP-eA^jaW*#^W3o@cv_mnH;EZbnfVsEj!i< zSO?%C!QXT|m!~ffSP&EBF( zIT9yR>&}_2m((R&8C9Wa&Geq#Z29QMyY8wvT6Ze3n=siQrV5)Tz*(;F_Y*tf87!F`al&=-gJpbPsjq0G+?W} z--j!(37(CG6hd@Q>WN`X+IFi@^>x*09jERUoh#$?^s#JJKyw-3i-$ABAar`{8q-V% z2K5zB@(;T2V{h*<|02PqcmVq(yLYWle2rO^j6NU1E?S4&_$;?-?cJACnPr*9M@5=r z{hgZ+z0k%930WpJ5i0^`>(0BootX?W`7L)PwAOL&dX`ir105R+G&)+{_lehmZh&u3;}HLZfVB5F&QXi zniHc(k?kv#XK&aQ?R}o;XV=cP9oRGpyj7F@!`ub#qV0!DIA278=wiIUnu1ZDvR#zT z|B-3J%EJNBGwJSO2Ct(uPA%40U6Qg^C+*tQ&c9uG^o6(a>flGFQ|-oZNIAV#Tp#Eu zN#%HtwE6gYOona|gao?dilJI`3{_uD?W@enqW|61*NCtGVrLb!Pigu18=UY(Oo zp5AhVC%qIhC|RUXif*5=-6J$CrQl&agYW3&$2Z$3w#SVZ|NDhX77xX02Ux?xS{|DUI z#CWYfzfbi|QYDHi18lh*^IKpn5g2`|s+_gcCGyU+M$uz$(oNHpt(E&3SxG|JHe;U$o5o z7r?!F-ny?Qvaxkb67alX$0)3~IQ5hs>D5(ghL*IA*)6XFlEt+FQ#H8{G;!lyc>vx- zV52!@hRS9@mUTlXf?THC!BI*bPb`H1ufwAqK^7&Gb*o{ z>BZ>sy{E4tw7U8q$b+WGHp7>RpTn{)_?dKRX;TK<84I^2fqTCurRT`IMRAwLn^nbV zNbyD->o^9al~z#R2dJs<394!LmDb#9ap@N3fZ4v)Y)X3?d3|c zT>ySYu?3KoN&|Cb2(oV(Po_pR(cOM|y~m$ToJHk6T(JzZECJ6K?oU4Uh<@B%!MMo9 zFt>&w0pKbChM@39G)-XoEW)jAq%` z)#r>Y?Te~i@S;xvY z7r>d;-|^Sl09ly$qo8TXo7a#Uw=K95*Y7*{5)^ZFkU&cfMiCMfkl?m-f2<>B;cwjN z^N5%3-|lOIFCqd6JM;fOztJMnaXoxnS0kEuvx5oAZ>NE!zbdSX`aW^Da{G>wpr^hA zPTq@Wg%iVRh~^$+V3qyQCyWy+JHn;*87SMbv9V(a>*g zECcroc!U8@(XVO4qW=VS*#kN43kytQ?OqikT2O{FnP6tZ`XZuLtX-(0%bgCD$ zGI}eZ=E7MYlCx#~0m;)Z6G^)&dMi1ZHP{-|p%F{usG&RhkygLFDJ3$er z5C*wOy`cUSug}%Rp*-02u{p?}eL#HafkFh8tmHIgViECS=)ZO3f~xW9Q1zV~YrO1{vg4Um9>iQpF0F3p2-nBkO5-uZ}j=G5+kr6pnO{;qd(V zFq#rsl7^eGRqwskU#&FS*Ic0|h*3+jwNK8j+GMqAhi0E0UJqWiOnddLpXX}RwVIU^ zVY7lxwSD&GxKD6;1o_x|b>=}UgS$*sE%Dd0i3f)c` z8kFr90UeoQm!x9pNqKwoGQB;8<`3aI{%SS7Y7}ZIfR9?S z>ge-R){ae9SA+pn!r1vGAcCZlkQm zf$I@W%rUpdJ=8`Ez8!|xb*F#&*J9Q@_K=A?e@1K)%4U&5SPn-HE)9LNF_#8}x6JKg zI#7VP&}1md<0^CY1pob#=6{bfXnFBm$rQ#$V*5j79jx0B?`{pNa&y8q)-D+`&bzTx zz=9*)wvx7zF##HNDs#5wDgrv3^yPL@2erH+J^10A6*wni*U-;(wgA4MR=ur!`?rl$ z`tEdx*Lg$%!PPuF*)%gNg9OYUmhEZwzxJjq9HBSGIJ&q**u!+K*z2KX3s^T~Z|kC% zTgcjGw8CS!d-~%5i)QOIqNQ$6}=F5=~5Z&^(S_xF3zVQx^tBn?*4;CIeQzZ19;<6=}ng^v93W|&2 zZ)X*PZ*+cd(GMiqk8i>h<)zLKraxIW;gjvOcghwjFD1cqHcx#GP5dYrJ3TZs9FtRr z8MQbjwCt;gu3NFy)TmtPeZle|vMJ#BhS7#eg>+onn+d8(I1hQ-D^z6F4cj?^MU@tk z4NZuBvft)4ZuG#8ZIq6mR{6FBLI7SZz(vc#XPyzJ4a1AeR#3O_+DBU73as{&Bo@&X zDe(vN7W6*DeY(vP^j)AET5X_zYXwCef7d1xwp`oonDO*xq~*9Lx?mFEGsa{{M)1eA z;UQGUOyL0A{lMKbc(RSNl`#tph+qd4s2``M*u9tNG3<;JI>Adg`GeteGXrR22r%)R z77R{xt~6rZj0S9V`huPoFzV_W>-=q4_Q}u3WWjYpOTBs~ENY~~!I%d9@VS-yzOPP_ zJy46W67Tb9#uz3P2Y2@@?NdKlgYaYpJug0Y>!s!c zzH&6>yR9e~xs{~gFhjt*Mm%7kG&tvSY#uk7$5cfwv=VJLyF_*TxT_T_{o2-Cnd{Rh#Vaj zwDbd}>fGz?8;^*5%V@dJ_)SVVl-^}iRcBIXx#bD>)t--u)t1c0sbL7nQZ5MS zG%qa9uxX)&0XyLIfk(J+O_Q7n64U$gLM{7geEX0?xL;%d?}o#PlkVj_Z_O zznpQ&qc#iEV|dlOqq{{Lrnr6UxP3BEoiYm3G08rZnlL!%WDykNwV6!=Y%pU`F(@7m z+<#>edQ|FYarYMYE&;OG=M>gtD56S`zWcP*bp9n}jHP_Lo*HSVg)%(%#uN8?^5+nH zB@zq%ZZlWc;GHk#D0k0DW_jA;*_M0ae-k|rYbkXg&Arcmdf7z|Zdlt~*-Mk)5su?T z8_AF{fOYx(qo6khI;sr9PEFdlIUUq}Zlji!&StrhN6kYsK3nbz`g@tKIh}DUHm;%Ux170fmR;z_-MaCG1aSD=u*gN-bnhuRWDnNG_RZFCV@LENDTY=_2r=D$l>)7{z(Il zyHKa8Oy@$+O|{SAK43PKqc7;YA5iS1p0_?v;bETi`k%a4yaa`=r79`NnhRPS*Mk=g z>rV^U5KvT@@rnO_nJ}riP?gv0*7xIf?8j|RQY7h z&oK0OflAnGgtwQY#2joOw}hz&t?0^FbwPh>{FA#oCOZ8qHmIPq9#YATzMz-jk%i6b zUv@X{o5XrfkvYIx3NAdfs(K5Kfa1foQOt{oULX$xkx!dFD(0c|GykeC|H&4gID5N=Iy+CKTtnsULl52O6R!#R5 zHs1S|WH{+EjZKC;p?G|LT|Db#o*g2;+^?FSv#Xi_xO@Nof?$4K`tb3|Ct{>9;?iWV zcBz6)STl5lu7JeU9LfX+j2*jkRN!ul_7(% zPMI@apHM2Zv}0v}MgVfBiY?+|%86P;A?tP6qKcN|e+(9lq6@Ii^V&-ZOD=KCKBRN>^ z|Nc0`Q--x@5K|Zl93hzzDa2xk*r#r=&1720y^HaYvpkyAM;b{8j|c^S4D3AO95iH5 zJ4TMRP9OBhZB7S6EGY0v!XBoaSX>`#n=nhlf`MW`^i6aVy^VNXj2m=T?i^{f*we2YP-Q#-SR*7aa0-fQQwRu?eX*#seg5uy2v4W4 z{)!%FDG;o1K%hqG@$OdI_puudNxac%^XLm4U>k^VMlrpl>WS**Fl(5);af#+Lu5&+ zV5rl73~8y3oN6y_H4>?$x(Pg0f2a>UoG?f?uZn9{Bboqv%hJcZ>1MZ{ptukRwAO`S zvQ4_B1Y!f4&ZSF$$>{K>%t7H*jMVjtD)}vKDu7#~f=n3;J0ayAQDyPV_b@FgA=HMNPshVp$+#z9V@J36=7%sPhyxtuzVI?j=ce$)3u zOd}k#kS20hhQ_aD`wZ-FDT&(o>t!JU^rnIV$56eQ~IV0Prmq2Y#YIFwZPk?J3Lg z{6bU1!qb6JU+>}gqG$Rr!LF~wU!z+=(p*+>wHuULeHf-r@MT-1Y~39b1u?UbMgQPG zCTCaUHmhV6q{1xGQ0woqUUCvvSi-F>=6Z0~!3NaAxOnmUDTp!OC*=f4^KeCxZxPAOT#omBF9B{zaWy zzc=%@Gr)_(BlU(N9mp*NE>+%>Fu3#q>m9D0^*4|TztGMOcKUq}-y?gFM;OEcX$^Hk z}P zAI*k517zR?j&;s&t7BZK+ORh>$CGTnA(n&BIxo3u_wQo<)Oudvm%O=Ywvn2%?brmw zd}7p4^qN90RMC^9c7z#iqjsoXuVTjbS43Yx=Mmy2`R!(efsb&@Fwe4(0`IbmRGJ9o z>n?&>T1ncgNDb>GBUKF(h4)8=9`-)}{c@u@vD7o^k1WNwW>wgn``*5T>gkXd9*lm& zZHYO{3-U-F&-O<>Aka*6_O@T*lhPelJjXi{iaJVYFpa4q24GW`ob47xLg7^uuCiL{ zmm%784i@r`iA^DPvA8Su$5UrpOu*Zz9~-SwvkU;=!yAlANg1G{7!PvHO|%kB?%D}- zBzdg9lJxsm_LM2n3MPMca>Zp)chU@g4yjcL9@~G%sV#L8E;e*DH?-1}fp`~M2IT&f z=t}@TXZTOX_2_ov4aS#G-L6Y<4!xKGumGO($kCODSLa#b1|B~fPD2tZw=#ks?{I^E zP4@|Td&Chr3cpPu|DZ0IGnZ<2%nwZ1EAdJ->K+oTB@W{f;L2z;-C`ced~E1mX`i0` zWJvcOPl8skC0~n|NX1FE`_C|$CQE?SYb) zasvQlZROl=iZMdw3&)laoNrI~D0x+uJHNDP0!m>Y+TTil+CV>Da&u{_Ypyr~v!4jI zCAVyM#VtH@c6J`+w1a3n=l94|3>XBl|D4>dk4QS$q>lWzypk>kzc*TqXJ>=#o>(}@ zx&M7=iQsDJ3Cdg}oT-4KH#Pa&t3egG@b8s;wBn(h2Z-D0*LCJjNx7izr2`z?a^4P% zU6nRk5H^{sPCzJJ8>p<`CcOG}bOfh=MO55c*FBYV?&3Ll^f;JbslY@w-R9eT&K2Mj z7j)wc6bjXTew6vxads;*aW1%PF(Bjf_f81&=6eriD z57|E+Wph%fpKWbpwIXbmJWblEV@~qVYa8x6!&%6=iHAUe1S)>}yMw>I7k7HO8|LSD zy+v#DsEO5gb0S=GeVKB#8kWT1ux!qtb9x3l-{R153z2ED-|;~5YW9z=!8KBb_Vb}* z9n~%nIK789k4kaEf=JoVVmOEsJyhqM7QcI9Wuxl-t#-0i;icjBiRKJ*8Vd!Cjq8Co zPsnyfx_20F#J~0m3EEA3*%+QV>8~RNrD}uj$2!Cn)7b7GIyN=^CqW4NJa}gyNrK0(CjI$7k}hYI!N{z_KElE)6zYvJ=Z*4wGNr4(?2k$bScd zojX7?XW=oiNmzsxH{LACW~MH7)+FUNbwLbj57upBZ>L`hc{TiX_U6GHN57*OJHIOv z-hCvj!+M4`{sLo8sH54xoc&g5no&)s_Qrcgg>J-h*GZhUz+Ywe`RU$2xIi0^H%ubL zWH-@jr8X799*K0Y;C3ET^itYYgPl%LOJ$Kd5_Dvz{f4hi9#ti&z< z>M6e5K%no+9%%m;(FKHzai2$A4m@MC**T2VTF1Wk{yV$lyl0+UEJ3+uf!VUjjLIOl zuy-D4H{+XPA4)g+Gxr9@D-h5WAiQVnJ-KhhR8YnjeQFHB+$KivY`4`)y}7^mC&QYy=v!H=Ub5>6N3*8(@Zv z)%C)QFS#=-#&Ng0T`J!flxP_|uMn)&8@I5NrmSyRwHf|6gAcEX``n|eboFUPC#+y8 z9N07oU|R#@f86u=CkNBPTTKm-y7i{3pp^!y$;B4mtCL8LpjiUcJGvSha?|~!YQ3cn zea{x}2V+JW*~hg&?WN=1hkZeQ_J~^J5T|O&8}Ug%Vtyj^W0jln2m4=mrA}W6j*Gl- z4{;CR8<{-rniF4d{|V9EoTqjd@=&F@C}OeZf(2RTMEe(0ccFQu&d?2dV%gE_T6nDQ zaFe{NbvGQm9X$S+w}-VuKTQ%y_aZoNYhUi#z*5As z7J2%K??Czlm1kx5Xu0diaxWE1{ zG`d2E-_$TH@p?{`;Y=Yw*Tb0C{8C#|tXtPz5%qEQ7@Q645~=|1#FkJ8TjUCT=~QG? z>4FE|3+YOdeLKv=A<%p6HZQ<=SfSU{$n#WRy0SF;a38A(EL#I8Zab6&H777{@)2Ihi zt^F8Zc8$Ww_mJtSeuMl88ZS@cQ0W>{=MS~kYHl`F`k>yE@qm3q|&%me- z8RYCdHv0QFm4P8dU9U#gxuXqJ4Ur%wTSBVh&Wlm^F3ZSu8*avFOn7-t1{^o2E#!ie zR24WLM>lKMhskz2^|j+lvq~K7;hb-xw2Wt9bOQlsaTe+~6^yIn`qc3EpR9XdB%VCj zrF|JaNoM2){XoyHFeR>(2MVt3x%3bL4tI;O?v zDsR2d1qO=c$Sp|^JeF+FGa790ln?;!f>T44VfE$3Q3j^G!z&GfV zbCv6XI_L3`*IN~8P>RpnI)8#GD4F(fLA&68_i$(1n+xQpfLk9dFr0THgr+b3?i2jy zpl^P1IKY}@9(GDdWFO4F!pXcje>jx|fh zpjDe%)O|J)$d-sN`QB2GZfH$0);qT$_Os}}UvQvhiQbZ+c@NQizq_EKlBb|qhkwmN zhz>{wmjI};xd%)2`9u@#92EJ@*O+(nT`|}u*iA$|^ia&RChGs{&ZjVV0($?&gZ*<3 zm8Xg=hwB5@i0yoZ=$&t8DPOHuRs;r@yl`@Th_px}{u1`V1MQsl4V#7+x05NO9h3bwhW!Kg z;tkh;O_BB({+n$YLzFYCY@QSL8;x+0>L{tA`H$`%Fo_Zc;{UauF5-+)(h#n3C_E-z5R^&HX?2 z5!*}m+Ofyc@usnGHDGo!XX2@XsrSC&^6_bfMsWl+{HzV9$saQdsw~dQ{jOp;zp&^; zC~hwipgAlFEEXVLe!Fr+>02nJt@?}6|{sr@WI$p zHs=TP)V;>yKlWL7sSjzPUCe=?y%Of}7qVU@jPQb~BYyX@Q>i@3?;=sD0PA|ANbH=J zQV~=A+j`3ff!bE*ecfIuJj@I`v?>)DVIR% zAoXCC74?=0(OR9gd=;%6Eq&sT zali#Ss+0IZ&c(f*ysL)M6Hd|6x`P2F`JJi1wZCv~@PB>=DN{bj^O5sYt zhRYroO3Zg@uF#Z^pAGGQCP09OK}We8bYr{LB~Z{Cu&F&KN14NShZyfSyW@o0=Z0DR*0R#vb*Mta8f`CB88Hct#+lYJ7uSejBZZ*q z{2HV6M^&MMWA`~_FV_=u{~z3GZl8odCH>bs*;R}lyMn!c=yP_7#i7jOn_4PR?T<$r zW1{Dp-OyIaPsS5-<8snr(;^sN5`Qpy+t4?^;Lzovn7u6^`XL}ftTE*p*7 zmJQU>W(=EO`|Scz5$;Si2_KLAwA;zWOr(f+aUkc+8o!zQDb`tWNOjtGTKF>H8N_^a zoLEFWLBcVq8p?YUI0u5Qehb{_(2>rATssgn{;($4Ri$3YF4>NNALnaAo`APY1DbC z0PMUkHjG z&slbOR*je12_*TOXLp#L?lL7}XHMgKoHM@jAXS=$tgZAxqtxH=@ihbSqL7|7*&|9@ zyk`{yyT2QZ9$@Z5WvI8{mF&Cz6@TWH5_m(iLW2b9jBXu(5s?^EV6CSKzrT%|9-qhG zS^eXTtMjF|&d>r`=pcE4^xjBi*ZL2KZi70nzxTCORMJcS`vw23jP-L#>YJ?A8`o2f zxAdn4S%o#3CnC(qs#cnym;^KM{Q6I2* zZhIJex|J4I1k9mk>Ky^2Qo%G&$y6f^Y&HaUqM&et!@2Ra3C!RCAm-&_JQ0QVhzprS`Y;5cR!ByK@|&k$A6G4{d;- z^HO8_@D-bf=H=;zO-d#uKK&g|BO*{uj zdU7Y^#JETNNtM_DOe_W4qT)zI`xqH_TQ;l|6jT`%t5J@fDn3=61ge!+0QD-qCQs&(;qhJ_(2DB^oMEl3W zWLJ!OUJWn56|QvKlmCGLs>SFr4|Y&qqepE-b&FCh;_3gzv8e?s8LH~JdY#aHOWB zI4V~TG*QF}H#ef03lmokEN6-vf%`lC{sPD2e9n1~*X#LO^^?8WK86|hhoqS6#@1b$ zrCx$*w~|ym&9`023+{3AAdpv#6o>e5^()RBWPh;69jLWb$xCtLWU=;#Be92 zPv1B&U9TjnOudD|uoV*x60x&7o2iphHwI&I@t<85CShtR8vg2~KZM#q`N|@Y_B@j@ z{=5Otx{(`0(zTww%6MrBs3Ou_032%1(HMFU)2ZZZST41R^TD!wF5Tv2jZL@(pH=cy zFEb~mPSGEkZVYZy@;uM)xoLs$eQiaLF#kgU#%oOq;G~ktef|(p$5{Ciy{VYlNpzI> zyl7l@;Crf;{$Bl^m1#D~iJ|b#?9|j>o zKm!ZPReN`?z)c)5`_s9eL8H}Ssv(>pCn#dRwYdt6zz#0B>nfQpu2{TH^NTOS22#y2 z*jeLtW<}95`ud)v=@Y0GIah}FTPh>2Kg0QM23`^kRF3CubJGrf|NNE{>=G7SMq8^h zC3nF#V6c5-hYP{K9>_?0s^FuirZfD_bVfUMxh(yrmpxs7YH1fixv@CHYi4J{xXWc+ zC`%S!>z|gFn`1j`&hn+CrkO>75C-7O{bXa8^4|`ly7FK!3^;3fM>E_=hEgAjup{=t zr`Rm=R>-u4PQ$%X$)F?6$~D$Aok|4h0&x+#8**Wl&Wrd=lK*gG;hT6e=8GVP0YpLK zE>X~H)*E6^*m$lD+Bc}v^xFN~txJ+gq{V>=bemKw+oh6XHlyNoH?d_}5@>}s(m`SQ z>HzeM-BvR=V7HHSoDa{7DnV&J7HU?eJ=P6$Rzz{dNYufmLDvXf;sEpP!*GS`eK~b; z4F)y6q+Ux0kgEiC6q|vUE2Y_<@aiv%YdCxJ#0dexTr(Svj;JaGri(S)o!`G&^BA5Y zWkv3bMYFITLatTWGWu7xujYRF5Pd@m?MzP)fQ1tXpgH2A+3?YP_cYtlSM37|GZG4g z34GA+qLaxBchGj}v`~-U5|tFVvy`=x*Cv>cR=blTB3zKSSz%p%a@M+5ls^H+9^{C& zjpVNSF{eS66zL=#^OT!htE;zI$gKU8&dM#Mek;s8p}XZT`1og?@=>oi=K# zabxvPRYK}vQ(L9jb!HukN(5PuTTv!%2O|eymEPyk zJNMvHsNS3eOTR*)?g`VwK)k^G7I>v2jIvc-2u46zd%iliu-8gQ)rA`CA^fI@nsCI_ zSf|nLt9B<^k7+?joTQB~oJHq)b$E(H`}DD;kENZrsL-|AW0PR#9Q-(TS(6{0i`{g+ z^I1ErfS^oc)0%FWE2W1lp`t+LFe$b{zdU7kS_Dzz);H5cS^eX&IS3U0|JT@Q)H^xt zZ(83hETo-7T5->veD*q^IEIm}8(ysKql2q&@*jTZiCQH@Z_-!rpIv@8OppS3z#lHD zHdU?*-B-=f$%H}lgL|vne_#r|JIV`NmHyiyoz0$zPa-r_I#@f@@MB|3Qcs9zjgP^H zT^Ar1m{27&uA)ySPM9k~e1GOg_0nTYAd1-4{McXf^5~BUKNXJJUC&OBO7ogW+rEXP z*#wO{iI>c3_>b$U!-FkUB=jf9IR2H3D|VQuBcJkp9Y$Al@zJ?(Tmv>B={DYsSNP@Q zFGCSeUm<-#UZ_Zf8qB~Q_Y`(?>fFAhDzDKR-weXu6@2DKT?pM_{=k8*XUu?BbT)(C zM#676hFX8n9=*8&P5=II@G?Y7@|y9`h-8LlhW5DiPgaCso#?kKWzizeCP}tczZ44mZKvR$ z5xPZL=LgNT;y*NX2G3ei%<_uaa(E|Gi{YV&TdF0F0B^fW+#80X{Y*G??{JpO2nAQ# z&=X#TgDRs2QBf)X^VU4S-kDnjJp=cc%IaXwfBbL@XIg;8Vvnc`A=@+_djbHT=I&VO z{kP-4{;jg9gPnWBYGFSzkaiUB4J7$udX+#Y08GfYoa4{r4GyH$v2$i&@C|K?auHI0 zt%|Pj)0FN0R_ZGR1Yu8jkDAAQHnY9Ky}}27A3`cXD%;O90K#iZY#BIIq+X*-_;=## zMRrtW-P-jAW;N2lT2h)q%_P zvD`*TttS5c5_x=r4K^Kw_6EuL;oDM&5yMa!8A5>EFPV@s^}=;-oU{DzQ*X< zg0${qycFg}c5e=j=5X^H*nbwa+ZB~^9Y6wM`_wDscs4%3Yt+8hPr-Sj5_Kfp+YJ*r z)hQaA2mTi7PT#Kw&MFv*aiV+PS?%2{C8;cl5$o+_p0J&g@LPqHV=n%Vb?{rnh^raL z|J~-@OoNHK5K$hAi*&a4*5H39({2)!UzK4#0DPPvtQt%Z`Qtez?@!31^tqn|SI((Y z4=jI@drV{z(5ZyuIg+XL%&mNWk6h6lsj64ywvP8H#4QK3*B~J^8L)%!pPeLrJG$P= z2Suz^HElAdb!~U$q)87S8;uyBqK2UkPqEzJeW$2v78+qWu52+o zV0DYbjWC%(=lWxy2);k58R8_c@^g>mxo65K`dWTbkN~fwS z*C_tEo6b2vxeUt5W%Om;i#{AqGzAEZ;E$?S2b=uZ>jX5u>$n4SMLx^(!OY0l!D4(V zh~1%%&8G(b8!1N_a`u*eII#ZTj^nRNp-5$aNb4Sq(OHq@XKq#8u>(ED!N;!$pd!Gk z!rL!688|&hF<+Y3qNmHT5#9J>TR_6Ob3BcOXbLH zuuG~;OGTLR2vVRCzjRYLfCO5NxvkJG# z$KUw+PSA9uqvz80Ped=ONK|4gTUaWznV*8ZvC}s?gK(~l9;CdBxC`POhQ`6{W2&fi z;SOyg)Pct2oQiBFz1~;UIgoVcW2WjyFT8W&<+!EBC2HXckPxqgo%^lE-o*a^TyBP9 zdL~?IJB*a1W%bgLqmV3i>J^T^`|32?R`WDq^CVgPr`YdbkB;Y2D?j;`Y`iUhbD$zz z{(#wqr@gTq06{AClhim1Q(5iEAiu-%n*5t&!>oD1Pa7TSX~4Pf;ct6f2RaD;YPG;y zpAzQIk92l)r1;JL-3cg6sDu2HqeBua$gJ!+B=U`qqXb63up(X7E*da5mZmOKcJa-4 zrKuE3*Z|H=zlW7GY%!Ky)w-6$y)|YCRhFM&dOx}(^D6>0u5FZIC#Nk|@+0t9xBB3H;|t^Uzavf4t4sZ<4gbCAILHL$y_yL%M! zX|pF}Feic0AnrAAzkD{qv98>pk{G;}9BFO16sON?jbCv;_WOEP+d+LADdVn4qww*0 z)qYv)YV~4#J~V3V96@*`*>^gJ|K!AE17nU4>Ao>n&9d80A2_0SGNix$$_TDI`#led) zEef|oDq@(6Ou+t;MR=mp)9grL<8N8hXC?)lTu*mSTxNb#Hx(2GtrK|H`+r#DeYQyK zOV?^V;$#?Qdcp*`|2M(#Tv@vcy~s0K#nWYp`iU}WW;eR=Adv@*0<0q4RRo0T;53W4 z$_@4MOZz(*&(l-WOf>+YSuB0>o@`DqZoQUbTJ!*ROkAo6lQAr90+{UifJ2r**knJ7 z5op!Uc?S}zjZn6U-ljdJ!e1&Y#WR&rvj#~7+;qmip2byLYkzw1X26)J zlZF4hr&OYiR;q#Q%C*>4GlaT0nv+h7iIu|-2&#SEpGleIwC~P1sYzkg>pj9&6n;In z_bfPqyJKY$#5ka8p9Wa0)8h82XIe^g{O^B%h~`ApL%(&IGJGx@({4o zlj3VfOkRmJK|0}m;rBjY2*P$i->jQ^y)w=Sk>@SL_}IBk^EQP>#s6y0@3|j%1$}S4 zTo`-B==PQV>^?uGNii8vuK{Xi7F^Q_&+bJft(`c(D7HQM#&1!}@uecj`eP`!_^^zB z7LOplc4F>~=6o#D04mPb_{Nw^s3W|3I7h&3YyDjS^SEXe3xHHy_Px&(zG_DHigL@l zBG+N06~}hRh9@wzKq1^v$XqUQKJn(YbdvEqLIIKZ;vEJa?ND6m?CeJF!x90z zAAR3O`HZLhU4EmN;QVmlq@v}l)vI!VBjbfZ*y|skl434RJAuG>1cKJwoW(DK<_%MC z_4-EOi-Jrlw69WvPYdstZkc&A`~QX6jMOC*UPANOwKkgzr!r+^jkK;5cFF=-lUcjJ zvyAU&waeU$XJDAR59GFWJshsqwE!eSFyECj_xn!z21b;Pe&UTl_?oPx!vrvA=uP_B z=~u2qrG{1Gf{x2RPjYGKE_@ujM9*Ii5c>nn@QX@|t6eU_+5RB?auL+~LWUvzo_1VtKHMe~c2?eJ92n3aveTZ^yo)Uyy0ks_VK6xdwJC42MCZDGJgOKpB=OiX zG>?7!RVQ}#cA!5>T3(|$@WEALtNuau7Onn7>4IErUl=(ZRf|L&rmKjGW6)PG(39+P z5r|R!`d-T*rTt}Q3WETHgX*B9&_2W0{h;lg;y=?w*$!z0AOUGkF|(T&5AdfbI}m?V zth^S(6WnRuCUSV2$1jJoy@uxbKndM@@2|#{r;7({x}Qo$ay>k*xjIg4R`Ee#r~FPA z39(}w{oP1w5qS+)yogh-!z{IRf*_IdrHMP00@x++VZZAaZUr3df0(=WusOyRkm~O< ze-Y&rHX;0ii*FD=4mi)(4fy4=^7Rr}p6%8QDG!jKkz7rHHYcRCQ-A(llQ?Q;aSVCR zvA4!r(hWVqq-{Gj4Php-jJ6Ix42o;9qD&<^n|LCxlm}p=04E-VrQW-7-hh<NYTQo#(FmJIr6D36%i?14RQ~0rma)74dreI+-VdJ>@=`L z?MBC4vy}rSitM*aCFXye%`vR!np#e1uAqr1o|)*V`!(Z(HvaSakE?~83GUQYYFlOR zP+?m-B9Y3UeEq6zk+M^qPI>6=j!xlThO-xtKY?`lt#*Wex&d_%OLox>mE zQPL{xzb$2Ljeq7vyfhpHvX+5u8&yG-Rb`2_=5cgY!XJT&cG2QrIx57T!2>=j9HqEf zo1o-({%RntLF|9-)UI7GhJAiF`oQ%9Q!~+bGrMsIQKs$lomTYyhvp(D+;kBQ)PTyM zO@|aPn`91x3QoU~b!jf1WxI#Mc!%?AH!{kNlc62tCiNn9)WP=KjMq+dzm9sNkOI(X zHB^tP3N$(!+C&k8P|UX1y{yu@1OnRF;K*{Uf3|ZsU~mcQm=n&wJO8teg={_Me!o(M zK(sL`((mC;gR6rN_MNd*B?E*ZKQCGo^$2us&v8m;@SCs-gixvMQ zp6Ik5_L>|{6`j=!+zCu?W|uI%xOwk%_O!{qN!z6B<&3y%np9)6gH6?vmAi0Ty*xR+ z#I76l;-A}ZLALNN>6|1%_jh^r0w5m7&j3(bg6gAz4%dwtss0e`kCY5Vw@ zdpGcjjLMf*?;Rp%5WRL_<1{56IIiC0-h;*Z~>>iPdSBR*hgUkeeKm}rNUv5Hb;!sa~{8tN5 z9$%AJvP|^O#@RV1T9>}3dm%^MuooB|V;y7jfhyitRkCjJ7xVMS+Umw>DF%#5@E)Ny zNrV5A>bHzm(DFu@P@0q9w1+!R$pH;VZ7R^7TO_BdRKIsc83(dXH23L1|3dKylyz!} zWVpnX4aCT$zZgE|;It?Mw;Q2LCJ_n2z!~3k|H##U=wqf9{I%RVU5Ou#oFr2AETODD zB>k1V<5nqeMB`eYrV2)(*j5pCE*rbp?>J9iai3JF{`4B}=)*B}0g+1!qv_1^)xQ41m=S`c>2+E!+MC;(_*UJ0- zAhZKM`c<@q`e1Lvw&G5)U(&9KXY&A?byCN|87X)^+|F%Zc?X$Z# zfqqeFH|rqDU#$4DNJ*ucKwoFw_Li(iubC?Fs|i^^rtd#2v3sSI9CX5B@rRG!aqU3w zBVXb-@W1N8*PTM(U3s>bl+rQ~44(_tDekddegK?_gyj4E+A(itsF8~nj0|TNg;5bO zh1viGne2rm^`6X$+1Z};LGs*np|u#$uH37h{<9`W?7V$R?s@cr=-_IVG>EjKvC2H* z31g3SM-lkw2se5LvxlKF#q40S=ckTEY&DH&@JUihPwlPd=ISYSB}G9a!7-<1Az@3jTbJ{5(u1Rw%rY9ci#4u zI(%<TGb!sVPHgFq-Apul_3L>X@UfLAZ8`g=%LYn84 zh_mM(8c*6$Y%qs6xS(7$?q5S@Nr|y*AFV$aKUC%NTqp5ox7MT}HaNKDwE9b9rBtnqoVBxP_3bYL< zYNyz70iA=;SrW<5txnfU%=(=k0Z!@8)KoY06q_ynGtO$?owZsUTZ8bEc842rbCya+ zYN1;8mLQBXeg8eApI9Nu*=Cyd)Jk@2g7%2Kp~+rPt`ed=g~bN#Z%oATYfjvWJ^lVw zrDo9#6`-Gc=4+T>YR3UubQSW4_VnajCoz~)w{8)V11(QPUbJHpzRQD$DXjj$>Znsc z?h+{R+gL%cjR%iAI$I=BQHj&qtyiCfTTWY@&bopv5d;heplOq;D*mV?_B!M9A$50@ z5$1eJbZ)e!R>|9_Ihz^9wlQzO!ea0Dd!o0M|G8zth#cTopt;=npxp>Xe2r<{0v_5c zhw>6v^sDwS2@dONw<>BbwG}M`JF(cW#e5Iu$J>7BczHy<0o?h-V6{3GblwC5?PQ(D z(yuCNA<)h=DcS=~Qn0LkSAkC!$Z^d2^+qe|mZPJF86iZg737oLGc*sdAz0D{tQQZ_ z1hurGgV{O$DzZ&wOvwk8O!Z1Dro)Z>DT{E6D4X~sNG;&3R9^eqnkIij!k&0-4YKuv z>2S^dLhD3ob$B`==2ACPvu^3*uq}^*xdoaI2SHI?O#3jS1Hv9h8iSXjo}X%7u%?%? zQDdx-GZAM{<$w&JH>x&n8=mH-cNJVJRr2;9_Dl%31N41t)VROlAJ-3_Sy@Z3Y=D^^ z^`&%zG6)r=Nkrdlst{q!v#!T)T%qqD(UKmAqd))?$SM1`Z2d&m({G03c4 z4i3(WAR45!Tuku%9jQD`{u*QzZdf9Po@}uKq(?b|frXKjyYV0F$APT{x39_?MW&`1 z-u1sShFJ$#k{a%&b6hzOV}p5$+zvy->Zk8L|3yQV;BZz<*Xo z>YM#!P_Xa%9PYR=qrbyXSU6mN)o*A1A>6AW)`2EFTa#+STaaWUDlz8vkR zP34_Pk8QiqN(=-6lg=j(I}t~%70y&^dW{|7BW+s6%25%|lTN7Gd%i?GOzMkIx<4s) z1h-hyKOe6xOnN_ioTv*acCCVO;V2$-F%w<{p9K;tnYtf@ zDi^YoX&*OU53`%zWT=QTHChkk9y}3|BoDja95e^bmuLpOrGs27$WJI!evOQpLY?8x z31S(k`!zZxQN2myn}qSe-8QO4vt}u>SkhY237q3B|7)odEz$s;$|RHKd9J?i)s!j? zIPzXELwSN~;QMt)+BDmuU;?h}+W13%)=3LO>kzBeEJ_fkwV$EXT&zfEB zrVduJpC87)PsBQVguW4-lb)Dt1-hm3gamgR4(${6-TM{~=X2^Ssf;caaMI%!49sIP z?b9+M0CRxlG@RlQ>X4KKl?OyEQ3|V>_yfl5(XT(`QI+6VZ;pL7FUl%kzC%P0@w#+y zo_1gK5tJ+JUW6J2+~+xj!z^Jt5JiAUpZl+kli&lRJ;N4vGmrV7yMN8hlL+=X>s6Ch znvML%&UI*>>x|=}!g?lUxveg>-h$Uk49^6?Z&?2Q|9#@&@z2c5S0tO(uhWW?mNP@# zCtCpM2Uu}QjY$ZNULgzXy%j3?!D%XSJkRSCTr|N_Z5Wflx0edFoUYAJY&kmCCY~#q zcUw(!mLXVKvQp~-ib{O#f5j>n0NC)d<3#)dQ!`1!jih4pp)E$*3K2Iatk$@LGl}P$ z*;jrEW9?cK2`kr^cL%;yI|gVaH}Ks(ebxw}k%u#$VNT;}`_R-j^ zGxP5%&b#MMUt6)V4ehV^liMxZnmzc+2HUq$?BE)Q4FNKW(0=0LsP{QRfKbPBTb+{9 z=x&^6kv4QaPA*d|z>_`ud2C7usI#tRw<>sVQr>rj><&do*uIUX?>l{OimddyPOimMh9UcW3Ve zF8GZ;l%in?8Q>fXvsw_(0jTlW9<=w_7j}L!u|vjz0a#&a$tgJ59ZuP@r`(pu{bNFpK|jNX9&2 zCi4pU#?u*yNFNP%w+bn28NTy< z3voILM}fLUjvD$Cf{hdP&ekmRW{Sd7nooVx#*}ZR>^<3cDpBsm))l^HSQWT~S`}@d zEQ}=!j*{S~_aw#ky=3N`7}&^?_(cE#@3)1oX1z3`hisM7GpOjX#%Ka52q0!Cux%NV z0xil_-nh#xbBsDIrHaM58j3)0c*KeNA3MnoRtgQ!R^JVBD4@4pEh$1n{ zATP>7v>0Wr-QJTZVmE4IZ2R~}|I(nBjW#P<(fhs*Sx~P~R0TSMKrsINKv@!VcIU_X zFdTZwR~Rp+$0>^t9IODUb)}m=I60Y=;J%CTXyD<$qyy|EaLr#hu5biY%}*v{Y+NJM zy=&?O4iy}2OS61km>Jh=NLb2qrANdT%?OgyAN4wQhH%;`b1c2%$vHs$j2-;cKy(f$ zxXpzQe6d!%I96qj)Hn_71ZDr8ZdXf=n#R*KgI}ST9Eg;eJ;(6B9l^_i+nQtSeE%{)vIs0x^P&*oKXE}qP+*-Q}TQB zxy*JerRRz|9UUDc6txbZe0>k^&!lfbzC%1Oa_-H))?=lzG==W`}#{2PPgc$-~-)6pEMY zuc18SyTNwu`aOj#r0||YK zWi6dfcjEkIuMvRW3;|o=@fu8}+V>IpIhTH4@SRiY>k=*JT+8*62%2B$3REWOVGLSS zzAAAg8sLU5R*R>SVqT1SCIY<#Xkzx;oU=$BeU?2kyMM#>UXjvSX#XAYa-PRF0HM-l ze7_1p*^Ddam1()d7^MNnL;QL>UIGKWd&&+EK_z?CaXRZ856o&dZA z5w{dnKQ@&npev+`y9XS;})P8~#s z?g6k=b&z0lSu<0dl1kJx9|f^!+}4V^_ETqcZlzXj_9uDy|1KK>gWuf zE{Ep-!gMjeIa5FFs90mN59(rI8`?96yo2e2P&%~dY(rhRwb@7vNZ?+lrZ*4`+sAH= zxcWRceU+7+|HhPa<^XZbBYC4;SuUPV1SUFDY{SV1yR|Jr{9eYOH*nOuPfZ zqO$C|-}X#XCo1omPc}$xyOI{%ottt7GH=rReCH=C;^$)b6?OqdsWR{c1fJ{(vDX-D zdz1STGv$10Gu&#yf!Q_T`=;Y!h&-eS3DztmF7Fk5wYlg4?G62>6mX|FJ5Hcz1CSz1 z)rubqD~ad-sigO4$y?_o8YE6{r8*K}&D)jWL(xdl8``mg%Ay^>-lkX6>f*lJ(cr6x zLW%y;2wzc#~o7}httN!c|hini9H%}F6v>tm86qs3^5@hERIoqmOPY;JULCBV_<$6dV zf7_KRs9?K4#|fwW(jZOjI$s0KvI~F}q;DuVOU~vOJ3#^EK1mCOW~; z5XJMr5>qbr?IdIsL-Zl%LqqbsOgo}k?O1W41i47VmklZ>sL2|<*&rs_qsT{IrJsN&wUPpvq&*c1^(; zSE@7lCi+r_lXUFxWAzS-m_>EHTJUU+0k4l-^zv6+os0rJmWj>4d%oT=uw*ECgVmg! z;c$~Q2qZs_2jygT!}KGX^Rh8m2>l&aDQm`V9k2On!~YW zH@7j7te1?azSIhs$;lC~Z+2p=8IXP)82zoxR{!X`= z)1sCsS2w`RU6d;Zoy|B}@v4nesP)^lQK^@h0=LzZc$;M%z>bzzj+-a3Y_S0aXOdhJ zv`mXD2driJ1OwI-h21)UaR)~>y zDE2kstcl+tzuVbsNW~AENr228j*IMqX^%0}FC_CdM+jdI*TYG#lL3AW@+y%smdvxNSF1Pl9Y>x8 zX$nn%N~d+%`gLTNNmWlStt!nb$LpPl0a@Zbdz4> z#$y5O({?!wumpJSA%4&=U2NuO%n7XZt-fMMi)v?lab^Ykhk!r@g^=_@V7s!chXl7Y zzjw{(fco@Eb`{`@8w1HEX}d zR}D)gr`XGZzUgkZb}}oVI~>KoN(gC$H5!4O#rPF)eF4$Z+2@dmr?cg*$4Vr#k=nKY z?fA7niFRYf+>4?09_|DvXKP*S_G@RE3Y*8R-EB|lGog>`UWroT0Xr&*y?*~`36-BU z5Ps=CBP*})SGFGrY)W{Y3{s)o&%dptDcZ;PCeGRo*8wRBfJ+>s-Z3SF4xWB;lAbuh zF-&n>-7GAHPJ{17m`<0i%h7*Zl`u_zvS?OIu-xz+#sl4Math)vjf*WSHb%#C&=HKL z;|xuB0^G4cd0=nWc>KByp?z}sPP~fpYSio1kV7U$Asm~k&5D&}B)CX>evLt>`;T;0 zI?CdiG5`!I_cg@`soCD6Nx+D}2=aNGy@MooFxx!zpj>FP)8Tb%Nx0cs_1zol4pE&q zW*o1NhTjc8hUm47U#~YSS5+3J?>sXt$YwoG&QE{%A?SpzMzZtYk{U1CqK{_J=;Uc>7OnK|L!YR*<*X9nE7ynO(H2|VPJIBPC3%RlKk+GEyF^;pQNSp-5b* zaw|?szgVJ3CcDaF?VZ1w=LX>@L0aC){$8~FV|t|7HGa4K?A$^Py^+0z*F3fROz6EJ zIf^N#v);}*+^H8Rcc!shMZdd4$ga3hM~|Ays*2TxG|2>&ICE4qL({p{Giz+-ag2@? zsj|+u-}xqKyPO22j?r4BjBOTqPa*rxe&!U$P-ehLTY*{)(4*Qzohn9ciV2fWL!`p^ z*4|(4K9tlIBj^#WUK#?b`1NbXMZPsam2QRSB2m(kuIQR&ofpNz`e_?mi`j!$<~XQg zu9$6AJa%{)8(rxL`zJavdRU`^xZ`<7El zvp@LD7du&Q;N^J)hDC~oCO;N-ALg_#8t zh+Ed{;<9kG`=;YMh+J)Y&a^R83flIwX`eeGd|5+@%U3SvZ);MPH2_68Fg0>XAoF*1 zoLvERn2?~*oczQ(gqf~2WWhkFwZ7-RtcY%|Dx}gke8)T|*bt<3aG}X?(h$m838Jf0 zci^-TAZow^VF-E79xwgOJT>Oc&CD(FR%bd^MIM7ZY%{~@Jpeu|pxFm;lmso*;TF5| z{FEZosMDVw_|Rd8_}`5K1EwhJjN{5V&!@LLr3wo23mUK#tI_8WML=Sz5`RAK=5gUR zbUsyFQKsLV)=tq21MV5duf=c)75ygsMz+fjH9xoD!<3rBig-PrA|OVAf#MNyCc)DV zUQtEwt+FgQFL?0S?>Inu8RK-pMm=O&?G7$iK9oP5yhiBhUiP3nq;b6*=a-RJy2S%3 zO$O4bBU_IKI@S#i1S|O|XQ@H&I*6AM^UGjB2ypnUhNu|C4=uX%9u6hHO*PHz0x7demie0uOgC_kQ%M?r68(# zf_;@jebbUFIb+v-U|;Jpe;kYpr{~ij`IsYy%=*7J`+hE@%&966$61Hl?JEw@hRiiA zmn~xI{vSl^TX^wnw0#{nc51J`Tbf5?e^tH|7;^EMTz_@qr2qM9(_h}kx%4_Q zdhgXHT7}rIdHGdqCc5gvv_L%Se>+^KHVd9Sn;Qf7bDIcdL#^x^r%!3s+ZERtrx;Gg zRsmx%4z_|ur{5!QWw(*q#VI8NMLV-36EA?i59pmW|32{KTUzVuwOB3wxErSS1NV$b zdUdnNa-B)us&-#^c1)xI$+_Q7vH^zwkz|I#7G2Wwf5W$DyRTwTBXSbpYIzouV$7=; zZ-=n#a9pk{@tl?_J<S+819+#WpJ3S^g%|H0uXq^#Zh??r`31Y;BsHtzt@hZ*~{7s45r!hpQ9GJ1m8Lb?L&Fb)ExY#%T@cz*Yc`higBeq8? z3r=~PsAiGm)tS^m=Y0~r^A6uEFwMyjhWuZ3sUQIX;0fPz70%#8ao22Oug_YegCF~o z6H?_i0${%&RR@(j-q@A|# zhQC+um(kc^g8DaYng{--ur0I8MKD~+zkRj6jHwV2QpyL8il|*Gy-*`u6XuA-n>A%K z$D~ObXtKcr8zRcQGR98&?bM`fB+Z1aUvU_}Xt1d&hND4qb5XCNNhNeH)qZzXA`-IR zI>>_VdywNY!YV+tdYa`MofpqVHFj+=fxi8bOL)eXYA^*CeDf)HTIOf*8qho^>N_BC zqzUZJc)*#0u(eg>{>dMJSHf#ray@sERGC$ijlEdA`6+d>d^BZC<3?R&gvcX`Gdb7L zEmW_==?Eb&GPFa09*ty@kja{NPvlsMO!u<^o(3fCzS?`{pfb+1%g#Zk*u!v3Q<#IT zU~k_L4{WI_T|CAlKa7Ut*3hLk|L3k@w`*IFnqF#x;kG0)Z)Yz<=;YgA( z6qRT^Px%|6D=he!Xr|}QAszP>Q*=hf%hiv8l6+9?0VV-~yR^f{vb{Jep9Q)Kd8KAW zf6#xL_JCLlsW$FkbEU%4oDrw8r~2h-Dx%ed)@Jfna+yQ}|F$Qe&$YXGy*C?slL&1- zy^J(NGdaEtWn*Zj@g&dYgJ0@knoU#!(1xQy%b~Fqc(>?jrk{6?&*Oi*CL9oP#*`Za zptPkjJ0nzXu}hiiC2J6vZHkwS(nRl=(lE|)32@SchC37a^*7ly=r@^q^c17EE%n>h zqA>*!rrOW?eLxEft?qU29yNIBkSG^~+}qmA1L0>|)KMd})|E#Bl17!t*|hX{dYYH? zghM+EgH8)t4K`RNBbws|`X)_^)8TgOsER6?XcZ!E2tkm8Gs0xZkRFkzaDZlIK7hu(*MFYX*z<$8w{D6haWO6or4*rFT! z;hE`Fgl5Mu(-WY)%h$^e<=w!v8$f_4s?t%~3_*xAIs-E4K<@zE98&gu*2C1QkV~aS zb0s{=(`* zGp`u0KX3-(o4+HkmQhQ8MKL2lD7gys_{zZq_<-$NOaR|uQWxZGtoYu8XFB7ihA8L7 zeU|(AnhBPASTMO{Uov8(hzHn@HhxQ!Atwq($*?^3whjTLwgI_Rpyq_&0bgNd-&_ZA zcS2C;+TP-PUeNLM@N=iIgRz8EGBDqx?T;qOfghYE=%e=_EZr0}rFyAMuG94Yt8!t@ zFESJ(_>brzoSUe}VSZEM6`=V99gATK^z6s_*FJ|*hsF~aFf5e<{KLQBW4ry2bIE@= z#e8xZrVPlFQWn%?_E22t(Cm0A_+3=FyG2V4s1qr9e26~)60El9%TWx6@;CkqTZ0x$%u zgh3Yc%+EV$ka1N}=S%<*#+NDSnQjG5m6%zV7X!V&!iz!b5tFule_0!3Gc9Fh=#gJ6 zr0k)%NS1jdwr|9rnc5_feo391-+WKZ(e*R zz=0QO{Mw(bXLfe({O!UQyN)<3pyx@wi1@C94xhtK#Eh}_0jK|X#C~CHEH?xtnH}DCAz}q zz{1_V2d@Jh*gZVT=aOT>_f(Jg*&R!fo zqB(p!HPHfGxu8j-v})viHVTcJQsq^?SSMvh=AP&sww&WOf~|QVHE@#*!Y4_m)U;## zR!4KucfI{dsB-P8;d4`!=A-FJiE80Ur- zY~7U_@uV?hvo{gzxbV_-)I8((jxwFF4IFRqTU{h~0`K@g-SE3xx_X56VX~_4)owhh zuQaT_aMmRt!7bp=(pg=Yybjn-f$S}}&I={K`d zhh|ki8-0d%bBpi;&8pDy)*bsdk#|dRXvLaW2whuQK9-_K1pDKNkpFhH45}DwVmkEd zD=~hs4SHss=5lcs1{^am%v66=3K@y5&nv%E*112X0H$z*P&>ht2=sNUdAI5eF=iG# z!76shntLV!WAvCr016b|sym;ZmQViRZE(Imhg&RFOt(HQdMt^x%|V)BfQCdR0lRPI z==~Pb|3p_RHx9J_W!ua+UZq6F?droPCOT)wlUkSfQ_S{3si)Gv`S^K6a?N21N8{4* zlJQ%>kLzqay_EVkabl0i0u_C5A?)1!Gu9=gDpfJXQQeRE$#+LACu{HirlJ>9-j`Ee z_0%%!DWgRS2rK5?-4FRvzjug>0q~Dwv3(|bn}M3H>OILaE(=vD4ffyZhf&h8C@_XB z!-UfO33DAh34d#}_R=m!hN_HG1fHfkIQ8Yf9Rtqs)&~p1$|k!w~+DROV*`YOETgju$v1$D3-V!is>Q88vVmjW*vYSg1z`gD8=bHxP$ zEiJmeLnd+cHgqMa^EY4L#Wkq}io18_wB1+$ko+N0)S~sk^5}S2cjj$j3)WzU@3j!5 zG_ZbF^93KK;9@Y@OcFWxpNqdzif!M$i3ffe z%+n3O-GfIRHy#J|AY4;T^F1gtHT1>lSSDs?wy%=60WGqtQ|f$1#zL!H7IC&MF~9>g zh(?QDDIcwg-~gl~&PfZ{gDZ&&T9*5>JU2R(i0qiafKBIsO1mK_o1nF2=PIOq(ehh( zhbVX$iudm>RYu3c&69{Q72t2>y`$u1z$pc0zx1sbbqg&6A4aU3q%R>J!o&qWsYgH-6|Q9 z{cDs)V}tseB>Agg^91&PNimcHmrt6D3)y}CsU^APn>m-3p)%6rAnmNG&4m#ytX`Q< zOAmJWn~stB7AaX-Lm+ZMjzOuQ+VPLTU?_Q&jTzJ{N~2Opv-(o2&QIcC zUm9$qJl6w14jp~AaAc~5532HG9dUjj_@B!3f6@;HI44#8G0YASwcU7bm4B0Brq|q6aMP1Ev%eJ%*)Ti- zqMh4%kF|VH{P@Pg;f?Lt2gz@xgk9;*-E{?GjOE!4HDULy8*FUS;y710&Lymr6>v}v zTDrlRQTJe0i|1`}_YBpfBZ&+N6VE%+Dulc_u9g#0lbQxu=}$XUQx`1F8Abr*8~zB! zDbe}AEvI@{Xr1np?tKt^X@N_3`M1d749_@1B%3KOYL%89fV`Fk{g6(dw+Ie5fv|fH z!(mQCX<+GxKhp9`0!Nyg{Z)3A8sqT9w4wfWC2H+<@`g1M(rR=*fmw(eDab^|D(PGy z-nLyZEhdo;^0*R{*JnP&?YhM=W4y_#01bud?{7MJlF=T8Mt5LY)n5p_iAx;~6gh0Q z4dVc~K5@5>L;~5<5$P7UbJ(SO@y^@-woH6urdLMtr`2lcA8BC?KWa=bGPFF1#mRS{ z-`yP8D8r{@VFfXHGdJ6~38OEIS{Fejumndmv^jnCfmdJ)L(IJ$!alV&2mGa>)cJF^ z%?Yw3AnVqc4u3$8CY#AVG1fv0>*}Ga-WLwkc65oayy}cHf{qOHVFPHOL3JBbys%2u zK-a^;$ecG9HeREcEZ}(bt+NM!cDV|2T=H!KMGoqzXxndua&vRinDO#u$LPT3pim}h zTcPjh(aBC5p4+=rZ(UgvbywYSzbm|w<7&;m?D8Bc*spq>Tg?tCc+STaHVieH7X^C6^)aU)TB{lb% zSzU31gV;2DM1}<-;qSJ)pJ!X815z1s;!nCY*H)2sO=q`>e1^+j*5x|c-8ey zOh{9iUe=+~F4Hp_0Z&{Qt-|}Z?MmOIg`op?&vLUE&Kid0l%5Mp53rbV7~|}H7f%(1 z)3&EibZQEGGHnYxbtAMq=J1PEi>Q^d1EJewA9AG*zn=8-q|n;uKekUy!cY*;nw>IQo|G%;>n z@f=L<8ovvUop_y}LmJ76NsBU0AoL*O%#FZSRy@%3Y&U}%UZGNpymcfp;Ue!ccs{oQ z&GXBXo*SfTrBlDLiD&s7YtV2M;jy?sOhmlRU@%$VnS`=Pp@;kzPI(H z*gyDjy=@qXx*iJ0SCRW6W%~S}=hh>I(}Q=MkM>PIOFk_on53wsV|b72-I{FST=_tymDG9q95;2g3rhJc0eK z%)aRR&=;Ev6*HEsYVc8xs+yYlFh>_RRh;k#O&I1Im*7&!#vXiR#wd0Ry!mb@1eM*N z5m58eYwbzVhV9ZNm*ybm=~DT>ReM`aJyY%A2(2-{i|il;DR6)C&+|=$lWg<6+U4R< zOZ(~yqOHJ(rJ9bQ&VkTgNjQ_@f4_`&NFuv7<7L)tTVVMDwY#6!tlR(sB=PmO6Mz5L zBhvKm!I>C`=JW(C<4mfU9X*kL&a2rQww+`%Qd7dlBo4-f2IV!Y=n{=AM&Bss$X?W0 zRx{__pC6XKWm@+PN|^uBSMI0v-3Ev|1pbiU>0^h9AFj)0BTFfE#M9ZRVKccY*sfRk zB;~PpeUzHz0DZ5`GcQ zBYubI3opJ04Q~%d!@Z(C!!Nmkqp+)b@8PXaF-1}FbJq2_ttV__HPQ+|V^7)t&->gu z`VrafnAJMZ@rUCgHil|wHj-`^=g=Nw-qm=S)?Kmk-VwE$Xr;(nDJAVysK_Zj#E*M= zDC}BR@3{Af4%*L9pw`3=tOjWcZ|rLJI4^0wDG9*%d!`d&mD!Qwa`r;?cV|QOs8hUX z_SPMp z#1LV*JUD(kGuL3?_SbKs@Xc36OA5ZL3B;EqotTJci0$t!)n|8R2Lmf=1?s`6^)Hp9 z2h~V(I`1ZfO%7j2tiOQ`hIy06(D4*?IL&o|px_O9f6&t5(UtJJgHD%C_o zkiGatC?{9Lv>tmA7lE(yhWD&@5V>6XJ~(f{LJZ&(o>=cMq_wAQ^bJ=MHvctt^wP@w z@!E>CHCwgT)}$7JIHK{eQR6>-*UNYVEz`|t7Q#oRpdSxSrfNb~Bi%>Jd`SXxLFL0+ z`Ax@zZ;u^`jF$kJ^@j6m73;`8Y#i@J#qTl9_my|grr7odPW~`wp5VQ;ZbEu~_q1U{ z=VH9dVuEc)^{Lm8r|14|jR@QYE>6pEhhBJ^F#I8jVCA~qqM_oNrMe{SK%$Qm-k<_? z-;*|H22Nq;Jyn>C>t(yJUZePQWFkq0HvOmblgB5@0|C725R0@odTHiOaE;tuLF}pW5E%8 z@bp0aHD*Tn^;;29aoR0^2s@htHe45BeBb~5E#{6~oD0`yRrmQI^HSi`{h)bFo2_)J z$dqbzm}1l`Gkg8qB8jeA19>a7XGU60h3ty-rxl6ECs5YXa70yUucf!zC$O694$BE= z>Oh;pXrMvT*5vM#Adu3fT0gxsj{inl9`W!{7;Jpp=dkil3a+rr(i?g1eYxsX#4r|Pc$F=vT{KOq#$xw&7D%P?La z%y3i69;$MN#?GYvvqW#nGET;+FJ>5o z`NG}ShO7eGjJ;jEGLAp^Xjxh(+pthR8K}<(3j|jH6gsJ*y_8;LEP>LGr0A6s9p{S{ zS~>)qC09#%T8Ga&Y#3S}`*0n*VaiyF_*X^kMas3VpYw>$4^o0tNBROE|Iad22)dC= ze$LuVm?gLx#>7d8we-5N0x8OuRaKtxx*~%*bD1%(upe)ZgGt1Ze{1^{yj9+CDt7r7 zQ78*7d_@Bii_PUC-_w*;hj)9ov~Bi=DhfG<{Ok{odSce&`i~ck5C2eQx64QC1p~KS z8%LY5dE({7T{G^eBU8aZ@dp3ujX}j>iOU&EO7IwoW4x%yjuK|P^lD3oWlI8(gW8^h*rQJ%xzt*0+TFno*j`n z8W$;%brdIK3(U&*n=K0Kzm+3eup6XO*NC4;$ z_Q3n%&hrKMfNO6~!#XWR?hzGrFW=j*Q-xq}%BE2+JQ&iBzGM5;cJhQ}3hZL5$QHV!fK`^w0`tXrTbH7?5d?N>)&T0iFm-;TjgDJo%dGWq|N& zuF{DZpEi@b2*iH~gB%sw&bR()&4C#`AFx8KGv@F-t(8*K^9h1UD7P91G?rLpa<~CK zWX{0Ennsj_Pc*6O1T|>lx}!R^JnQ<)huXeDzG?I>pOOT}MPd$D0ZnX4z&Pzd?Z4lm z81^gZ2dBrXD$s!Q1n$!~P!(rD97RhW7K_aUGmZxAGg`rzXxmYUi&7;gh98y*8*k}E zIMth26N1J#+w4PZsXe0~aC!wGRZ#1cvKPt^Lwu(PH6B=|DIlWqYCj__y|LDf7Wn4u zUGJ|S^~l-rub)2qX;`Coy8L{<5^|A>~8Wg1e*HO_vI@i~pDeI098_Wf`Og)WgEmuUW|sNgd{;-7l_lfZ{_b(qeSZ}Fx4M88&||{ErYt$Y z)n@Nf&~xLJ=XnUmpp(S|Kh69`4sx{`q@4Wj^LL}|MgDMd_R*&B)@Qfa8+4i!4;|$E z*+JQ2YiV(A>vaD_pROCCD(5L7PD^W(fJA(Pd#Ga4%eE=D$g;ptNFna7xuY$h&fsb7 zQT20{568idJb6H&;2cv_>fu*~2wG2(Fv4O=y!^pN?i|b)=41JNHoQ>Ua;)$O)XcFDKEVVSM&1F_p zm9G$^Juzye2%u`&eNXjwwXY88AJZnzX}DydkwejC4_65oG9EYqj842!2^_o@A=*G1 z%?t&KkHCsJW8o4|9r`{u_PA!w_0c2Oac2qw;a7o8hp|Gy?s_VvF75ff=SJqQlp;&k zk^~59gJzWj$G0swOnm4qf9ZTV&8?Kw?T5+5xVbJQq@=OhL>73%M(um@}NTSnq zQxJMbbObPjMj%EIRYd_)xH&d8b2TL*j}xUQ+86R8>}NMVz#t?Rr@Hn%@XfqmUle1R z`;O>(o?jISGF6p<3i5~DnH~Fn6mw6{78EX0=2gW3a&n@U1OedIj?b*QUGM>l6$|B2 zm1LKK(77G{z&>z28?AWpVrOX@myX}KG+-Qc_Hli_Kc-o0#+a`1TjyeA3VYWk&w?)* z&Bjeso7hz+r<4t~tz9XT*}M=0W-I+$f5~uA(UHBZd|4E)N!zA)s6>bUZEznSG~{$M z%F&oipVxs;sz48s(&ToLax{7A`&WM0vl^!>RN{1=JNEpLoD7u}^Koye8qXgdtW4{@ zUvIKo$!JbKtjk(-oSTVH@K1@;HQMk-bAHUj%oO?--|AdBeaG!DHG+;z%U&pC=xvUdw9DeOvHOF0+?{Qm#wpE$IcVc5m4blxTq}}h zIww2BE5%xeMPWzk0UE;i*T6u0a#Z3StnQqSu~l)Y0WiEPN=_fXU-rx!A(P#oO+J#2 zRC%oHK%;6sX2*_Z&8G1g3F*ccdT$>N?5@!Ax&l{dMHoOIfLS|UOFX_|Tk(v@|KY!0 zX-n1%n?P2t*F|&1AF$@zPl}oY0@pLO)&z~udWe#Zi7fb?g241lp*{Ndml-r+!-F$D zje8m`xJS}idGi7wWe4j%c+;W8ljXAf{&|r%4%qQEJ=cMWM$*!=%(le)X;}4svj)LS zKEn|R-~)_Lcu);$wd#}_!$;H}=_+u3~q ze@hzXs@;IOO-pkh3)A`X-xjV`GgpCncp_PwB>mxXZR(-QC%Vy#4L!E{>pquIYEoaM z@qYiNX8Bx9jzdY~t*8~}I7@GZhF6NuX|FXt(vSnX z&S#3B>E^Dw;ci5rlXf*>k}+!WsIP5d{@x0w!|x9QK!H#ozR}eDV~!HtVVOanFUeWP z#TM_q0FImq7{yl*|CiDeF}ddq2Wv+EyVZiKqI1T{Kvqm|CIo4J7gguxycC^pQ`KW( zIt-heS}=DwLL$KQ!4pA+GsPHz9) zQF`t|hk9ZQ`4%?(Hrw}p2FNhf1Q`NVlE#AhBaXmTK4e!PRr7M$%D6+KQ9k`ySNIFh3T5m zk>Z=J3vv+J4)JDZCD3ECi($P@qvh#kODVBM_G}SDBKqPfhVxim+nUx0Bdx8UgaWn3 z4O?+QcXUeyCWonw@FI^pc957LMx}L!gNlZOLuKY+-AO%OxPk7cz+V)sAQ%bNWdB8j_Xgfr9PUYAJMuUC2w9JfVqt=^6iBVNvWhLDyIyF15 z<7d0)5YcUI!b1n^#;p5$;vR_79_quCZ#+7L&!K}2Y{jY@^%3i z@Kpl-tO&s07%P@?vR^Ou!cOu*>(dV{fjsXs8}_U_fZm@X2&>(T;< z>_CcLI8)xv*W6Z~{INc$yzg}lvoeY{5STt@w;muIuIEWz|FlEdgh21So#Cme!P$cN zgyZmWjd;RN08Il}*JOEdmD8>kEfX#-T(AEg4y$6wd|zvUU5o&!Zjsd@=U+aRpAvpr z!Je21_i?+g8~(V8vncw}D@pqA$P`Zt{z7&Wnm;4)L={7qBE_p-tJEFm173M7iN((- zyh@0AMR7Od+acQ8O)v~&CV014HF2hWpc823#GTrqvqNN*yK2h0ZNdI%_=aI!J+E=Y zx(t2r=Tdt3mA_{qi`86@Q07`<4Lk$aqruuK;GY9(kEoQvHFtjlEgx}CCMeHixP400 z>gf}vR7;+k`;T9UBNWT=sU;u~lJmbm_AUH}rUzpI#7n7#?ES3SFBNeeN$DdOKNjkG zEWVMTuP93b^nTh}c!t!>Zv(xjqfyeY0qVc^hEO9I`EXBfVH&j|cJ1GX)p0T0wA~%l z14wQ}=%>XojfipWO++~$*8Oh8uOm&|*`wdtGC1HIr!QV0kd$81(}%;Ty`%0+p|1j# z>{DWLLw0tCTbQ}L0Hs8;7v%X8RsCbdINbRtRmh6Jx^c$hq497>}m&Vp}L;{T0 zYGeda8?vOzz~HdA)a?#-bTf@VF^w#Y*?~wvR=9R_NX`4RT|Cv@PQzhJQ56@Nrbq&g zg+I)kc5ykH*lG!ynUDSSTaQzIr_On-az?~$C7IY?u1Jh|P55}Rk&tgkC~}w@L6(z7 z&f_*J0@wZ1l3`1Ud3Gqk;QkyL;AOi+dh#%xvbPQngYR73L9fh z4d}kP(ck65yV#7s(o1yH$I|-J)qfwK#6saMN}BS!X)EbuZboHzK_ z@{&%GMPFiJCRaBM8fPc2h4M^7FIrMxgcxzwJd~qONg*{UbInZ=zjwSi1P35p&sfpL z_cq)Pe1NPXW5qyL=bL!RwHe_Lcx?wve!KmrAHyF?kx#v`mu15S@JxfZS!mD*?*U^) zaCl&Y?e~EP4^RxMu~8EmGY~@nRgPP)As8|fDIhU&P*feh@5aiAt)xYH$H~(9gze}y z%$Kxe{1O;f&n3QycD&p>*|)4wQAQN3@o-0OMxw#`EN4BESsM&3ybbMCan-n#)N+h> znQ7#brDALiR$8Qyp&6<5 zi2npm?@j6sQChF)8+TKvmn8v`xE;0lcxAX<#L(_AaZMoJupyt@tHyLlrsJfxj4PVk=S(_-OZ=J#!MXPhz9fM?MSwRR`mV zTd=hrvqe#HosAY#KIFgu<5O2L!!!p*RR=a|%u)ntwm7*}2v>~S2S9Az%HPQw>+bew z902c_gAp>hKd2@5XhJqnOP9PFINvn?U?;C7K(CkGFwQj? zL@lKdX!t*RacGult0ws$i;$AjYRM15=2RSeUyW zxpf9uxhfTJhonFepMUczH8W&1%5i=!Oy_>AU=ehwd_M@~X=6&V^v#`XNLQjzX_Y#Z zW)Q0cLSnATHnW7IQtE`Ot-GwBW_@$&vLw|}g!-m#;~RjmZAXEjTqg6F-8PAUk@wQG z{&o1uqr9}CccR3&$E?0w=7ADw6es_|968Y` z2dqv3XHgl(-FoWP4qQN$+D}0B1;ir{-`3@T=j~Y*8cQVfm{0Yz3Bd?Oe|f})8ySj; z9VLsq&el_p)|D|~*_?etb5JQtZC2zMpue1)W`&W}zYMpgChK-`e2qZX$y`9d&kxCQ zJRjl*94^jDDLQR&Gm&wH&<+&&4-L|y!!6mob*FG#xYqoj-nxcjV7P2-`w_R-gkNke zfW*X?`L}0X(5s%q+LJmFX+nU}r;d3Bu8N;aO&J=qN6kNudILOf(27yN3{cm){|WPr zWobeTfaK_}_J9+m7dmTpQwrXchtb>JMrtL(PT-M)N?jl5lfMjh5_2E+(-l@V6{6B? z#@n6C8D)>1807=h9 zDm@!w{%D;)rjE}0^jPC*HK_Wt#{3{$r6uQABS@WR>|BG}ws9vd4L)xSuJkjm-WJPx zK8KqvQRsS$kg2}CX?zeDMuR+d+lj~z{&cPR_!FQUg8d5!Ab72ZdRQlNF8L#Acaw)C zgPNRRw7`%FrbW8ASdYY`&Gcn6lwm7caPVW%Mwf&@``<{hO-gqHIX~|1kaNwMd=NQd zbTM%UuX|a9nirwg14I95rvZY}e|_sMYx|quCYW+9LWUD#>$_xv1%&sH`lA`**7EA= z6lmVvvxJeQO*mRRNA-J{lq7aF8ws_HdOzd ze~11UPPj6jB(Y^pNl;hf5uhtB%KKDza7)E`OV)55|rA^+Rx>mfYq(+&Joz zbH*VAAm#nH<^DR}xbSjL@9AR*%$nMnQ0%ms;=Zs@P?5epVxh?mvOH)@VUf6;Pp-)}3Bq9iJ%xy0HS}Mv!VO)z026_;- zF>0U3R|y%VgX4d^S-2k`#|NCh35(d^z8=NY4OXH*{H5C{cfq>!QMTMeB9`d7;Tm|Hb# z!K&wOW_RZ3Jd7D;$l0ot*Z`0x={WRSpXJLlLNG!6y*7n{eZ(Fe2=o+kmF{xun?@q7 zGhfSwi+N`P=JGpLVA)aJX9?hjGgK5;>fK{GCS*a)lO!p(QEOlG8xU@UfLF?tAUC;47a~ zvBD_H8Q*D<;E&M_Gwk5|w%=W&-)f5=%~)}$cG9h@Qcj$DJ+8jEj-*2Q9}bk^zOkRZ zxJMv3311=)>?)=9#t>2Qu*=Ob;3P}gSFi79+s@yS6nNU2 zijXKOs|rncy>%Eh8cQE@&c=4Z+H0(tF4QD+-)$cl7;wE=Oh4KMk}4Pt#Z~v}YKAT@ zS)Z}&|98|Gj=uXdZ?=VvRV0m}wI$MdOGpUfpSp}3S)-B5lft@9-cwVg%ap@qN#*PO zb|$8S=W|EmHO}!$1JZ|Qe8Z5Zu59S+r_pQ35a!|oRe$V)k_R61{Wgjzf7Ytrg`D&e zS6>};OD!iw3q(#vpvPBfTavF^wOiQg+eL&Yz7Ys28f5asZ6dllV=bhNV79nU)j9U> zy}@s7GAPyk)Z9d>Y7Kg26qAvGl!7cA|Ii$iHa-lA8P2Qe=2L_k{w74ma34?|6K zM663a5n;AVVJEJ~KZ)`3BHC_$FoH}ePZFr{0dS{b?}J`k0Lcr(0nt9!f64Fm*^{|FBj~5B zu*H$zN?X{SK)PaXj^`QQ*MEA3ybLM$&7J{ZJC>-Wn^_$>8z-E7Ja@^lW|jfOSUP+qmde$pDX6L$L~~Nt-id@IhN@ zgs8Wu>a8fkzI1|*_pP8wGd7u<@keY9=j0PV9OEnN4ERK%eO+e!B8Rs!;~r?9V2_Dy znV?*-6z2BW`-vaEw%bB#@%{|9N}1QuE5kLDkwO4eYhbyAd|S%8%a@@!*1 z!o5XGka;gf818=b^Kz$&1NL#~IJSVAX0_qWRa&(^zJ|$eKJtoKrd*7>rN~r2({VKq{a7Ag^PO`*}x)IOjd|=}qc9(&M0FWZY{G zYY>Q-{=d>qx~->*r(&Fg^b2%X%d`N?jsk36@BXCr_<6`DdEXDjyLi3xJE-u!ssA2v&2rd(?J4Wq4^6{JWf*7cWAnpy zFF9as5TUZ8-*3kdNOu8fk>;mfPC3_n4>=~fp7vUM1QL2cQn_BBFOWD&2$U!dgwL&( zi3MYPb()X{x>VSl)$f$^D`4rreCI7hb<7h!Dzi@w7;mm(K<`&Wmk1`m=1$bd_AJlT zN^|ZGIF;ytq*Qk8G9Q`NAn06>zq=pnx%Qln%c-fX>7xW+e@Rx@CfR!e&dNo~=$sT2 zYdN&xl@!P#o|2wd=d{}cX{MP`B4eWcQQqa`Wphq+#FR{XX!pg_Hnn?-Ur>dh5`zJk zOB^CBzk{8jd97~g+{jot3pu3{ZehDqhFe8Mo`0OcPL#&h+zPoYXohq)^BT80vPa~$ zfuNZM74hLiI}|z>>w3|wYS{}_dF+R;3=^A7kaU82D1U**8RA2iLRCLmzNoatZb-+$ z>qlPaB}BLVFH|!|lxBAR`mJf_{Bqu2rbL>hD+xv#ZBV%J50- zDi|LME6Uhvwv=x_48UXxvY)N$PX7}=fpL=~Aw8!dXz|Sff?8iS6zZYGjFa*(+w-NR zg(2~Ge42*;M>+N0Qp`z1x$W17?-z`EE4Ju0b*f^Z^X76kRO%%`a+=-ca@fA_@+iDs{kj%O zWcDso(>1K2FF|s>89d-ZII34!C z4^(5_AnmIy-9=ij=(Xkn6)6&tW9Dmdg^@qS(DMX-?nnjWq2d3YCyT;6&)pbQPOPpA zP5`^hdaUdf4Xp19#od9;b`uLo1PWt%AzI)?9IMJD!I}!`9DJAb6zAFx)MAaxPHtKb zyBADJm@QQbgCTE3AXjz=wWX z7t*)Scs7qkaho4-D{xy)JPkO<$d&VMV@EqAolA$H@8UOQRn*!f~*;n!%mN&ze*-pjISibpif&5 zOmDJP7%rV$G-MoVcMLKZ9R0O_1>*0Pdcx$K^Dmy%zhU|a8(tG1;o@-?_zKHsf0#$F z=fr?x3|c4rsqGz4yqg6SJ!gc;G1?4k?mJ7OQ!Di?yBtu{K^{Zn{mCNn1{#73SEeUw zoBNK~7k6`X5_~Q^<$2#rUj4aIl%CQ9-SIw_)d^^*qk& z$~$ue4eysW-+dT=SSOsREy_8lYOvLQ&CF6LHy+JN6@c6feJf|{PmtxIJJ{^E_N9uD zu#-91MPtHzwOX2Vb9LzgJ@9E+aN;w6NP)ku*XzhWS_G7JEIxVz_0#Vs&91ArWaXEa zF!tnqV!Z_}5@Bz#3yMfxt%Q8fvvkyEbJ7&Yt0d#SL{ON*<^oQ6r#q=8)7|nz&V<%@_D0rcefq-Q z$;g*?%E7ondfoJo02$1WcBwx!lwq(tLic8Q+SWoA^xH#vxUxqMa^D0b_f zE{=a-*P@l+bzS0eukJ#p*P7`yj%HSbZZsVVj9@-i=y2veb8X_!jBrSPS~n0sJ0^9| zIqZoS#-}n~?Bm?g%YeB%nVYrFz~l~;?X3fNxSapKTUhqMA$d9Qg$mAkACNQ>uv95( zQt5Ky{(JK)Jf3F{!Rf=zvIybFC&L+ds08F@{}kt8`hO3gk&MUE1RENd6PJnf zIksu-XZqq)}Q!Z6#V{X6)(tN#(t_GtXaZ!#XyEA1eW{WZ7&FpsH?|U`1pGp;T zZ&Go37OM)AZpQb1wmX$wZ#$JGd!OPaGLH~vx?QM-r3$-xx^3>FQ9J>A(AD?Cww$$h z$plw-8}r&kN(!6P7|r>mFCjNSq*Qh!rxKk)AgC8PH4`{({Y9rGeerlwe&cI1j%D3W z?ji`r5Qe!E=nrZCGk7i?YEysV^>iBUVLzZ=`~sE4j3=l>ihx5lD4Ag8;$e}+_49b2 za+_wCLib0Klkh0urvzD=V{Jp420ie|U_bi%%7PZb^v&X1qiuEmVTMJUK_v^`UXL$y zX;EIe^vPeo9SuI<3vh~vtm)naj|2eYSoNYdFO1zw-ntIGRNqidrna#j!fmsNzV+(~S-3Q95ALxlWE%_I#ozxnzg$v{T@;T|o|Y(LMH(@?2l>6awO8wC?u zzr^8@ju4+y-%51+qTkt%zQD-=t-Ct0_}GwPenlL*WzDZbCi&1V*l3#o4)+b?d$}%! zpVcNJa693B<0*NSEYRQErP_`fDnU;>$k|@DprN>)z-@!ndWWbLm+6{8p>EQ+2%u(n zB6Z1&CT0XWahcA0PI~{hrOGLTdifPe`}8 zW`i?D-?6H!%y=I+{}OJsUVjKoS4jao{2^Jtax5QYg6)rDBkFo*_FI~D?Q9%t)a>E5_YN-)ECTW)q!d|LujeJG8C8b9~> zL&m01yjaU3?=T2CGklalZbm}3U9MzJULyV+P$dpy@9t$L_!5HBmds(Ho|bXv>@uf? z_Ofzo$_{W5wjK)fJJ0SZXPZgUYwjsIOyuW*H6oapSBadr$R;+6eyf$pQMRt${IfmFdb+eYK38g&>U@awWN%Ah-D?o&ih2lf-rJA9JIK$P zarbE}gRT+wgZj7l^KbiRV&Vw?N5{qu=5&DXFwpm4%h~r(j$g$2yvF=#>S$KKt^aH% z7{pL#ORoOrgoXog+-T_gq{K54M-4~x`aCWtFaxPTi8rhPaC>i?Mxv<*bxuk|p1o!! zL#Kypd)}8uz~P(fTUaBx!)l9+Em6)p?=hL_eB06qE9M58!wv=W{vRF!*7rQbm0uIi zP3(>s?_Y_{E)T}()Y9%ISd$Uepikuz1Gg;g_P<6EA|P`)G8XjSo5bAl#RSCh{Y1^U zx89hC{l|>gNC{9*eHUNx!otV7vErpFFHN6Pi8zz6 zukGESaz&}>sw~<1`q}4Sb!k17>-cv9Et8AvosxekiFd>Uru-p?AASi)sV~n`;{!qI z-4?xq0QDac#$W1~qJh%FwnK685x~~cDIdNW`&W9hDJVIg%Gue{^Nh6PE6;h;1>Y0U zXg}W!AhWAd6#xGDsTBMdCGug1n71FI+D^k``@P1V;Jak}2(tEb3sc{zUgHlw8qbk^ z_cZ{H89@0*5UYN?IZ?H=4tl#2v;gH_4zgo~MmoF`+&=fmK=ET`-?PjwKa2a$CH0!6 zXJCb=mt9IgdNxX|C_$(?YJ_(n5%aj)f8Q(}cH}nngMYXg6Y$v5B+3DGPh|qLPb_I} z7Qc8=LYMjue(aXJ)Wt=t6Z)HuFMcd~(;RgG<;^*WHIJzI84KpoYpP3E znmRhoO&a!TZQjR@+psMcOjmwadrGZeK+Vb+?49u%h`;CVkU#uu8Pf0HVTzTf5TI&g ze5c)YS3j22b-o=Obc#%(Tf89Km{?QipiQ3-O{|RuRMwXfvlV7zw7amT9!Iu{;TPgP zTnY7h1WxPiFhku^)>{PII0UXv18rx6E}7p zSbPZ|@|4WRIAL`h;%=5Mt%LC)5R1;rPyaIiRC7v-(VOdw2vHj?2faqOEQR9<*tdh? zKmVD{isN;dO}+C=Is1&|lO1{YC)-*$@L;Gd5gNWc__}QzW;(NHTaz8-Y;qn#lkhmh ze;jZ-^dK1?CX#z&s-)XuE0SW z<{@$GYQ3>)lZwAh;J|GdB1bLRQo;BI;<36(s@)VxpD&#V@~9)a!NWX|iO)S|WrT&( zR?ku;hZ&j|zAL{4$_-`cvn$75O3j!5dN6+~jGR|ljlLTQ5?Q>Gq53VDCk4ylREsLh zmnLWLtiEz9#!F^;L1Qanf-vuPG5lE;$foZ5rzRzId6oF_6#Vup8`svfS(etIkgaOp zpMsi#uYIzx+N+%JmpWO@3P$muNcAGcb#d2f5}#$>Z)Oh|&mX>?>BxJ6<-|dom2k&{ z*3+(rv4j0SRxHG!`f?(n#uMKzw=L)E@9J`@2!@PTl?9ThhhAaSglW<$Nt@Gi|N84I z_0vp*Ay%cMy| zuGn1SgwfeHB~y2nU7H?&dYBw|C7jiDrf9hHmfrBY_8#7|NZUqb2~u^t70a#qsV|a7 zNm6AgW;m^YQXQ1mtgJK(;AJEqC&lqq{ezj{5#_!K$ZvS7Jzk2aJo zd3vUS6d{T7v_38HN?Q%N9Fl+GP=8Y>cP24wP>~Ce=Xxe6ND1rhAiuVPo-@qGbEjc? z>mYRfMMleyO(+UQl@i$s5k;b04Vyy_A=i@V+*GTwzdPlv+0HqFNX?w+|F)nV!kL^% zQ!D0O9q!uF5IEDNOk{b&`)Jh2q8JR!tNpbfHQP(t@n*jKhDwRA(?&+lx+j_49!k^& z5ufc^CyyFks()7%zMPl-J`7dS{QvZkcG2^53DT@fl(|11E3jz~?_n3s01$|)<0K4R z)P>#hvA)u(V4WD@^gJoU*Gvy)1X?1@j&Fh^=LG>zHig3kN9uw5~iLnzqq zKmFUFHGevh;W5iPa;!(|q%_qC2cH;lHO-)p!IAml-_$Q{$~TFH)d`1^xY@Fpn@u{R zVb2mkqld2(uz*H2Ru*{t=gR$dAB{2&lR*Ss>na`!3}DaSgeM4odigzt=*!VzG;WR0 z0>+*SE)~j5e}cPzY_6gR0~y2w6 zw{aw8_Oac61LIfX_V*%ds?8$nD$^5V{Z1)tFS+rThm@A>r$}zUelnpa)M8|sTFcuq zydDnNoKUv}W3RyvO_>S)(y<-AQAMPHnceS&g+9}J7eTyBWO_Ys4%Wyu*wMrJbI{Bt zLj!@IqYph%KGZY@S5AZy&ADc}$5ovcuF#T6yaQBp@pc(0&I+wdae5QCIE4 z-Kbjgd;~~8D;wo&!(U7xsRRJry`+c(HLvTs#iCaqHI_-! zMLQQ`W0gE9!YJq@T}=N8p*FJz0C6@p;Xj-W@ALk9n=FwW3zUV!(ayRx_<;y7yA3~D zB&wV%7pPw3-FxrOv96AnV2G{yZ_xKWPf1cdK~Nc?34~>tPR&7ok0eCk2#)ybFRaVX@Tu&U zyCxjznfz;}1u_+KC#1MO2L!4QD$y-d&wjHKe7vhm87}Nf3~HTbw33V>z@&fSw4uM# z9pw$qHl|f}Y$Y>(IDLpH0iv2_Ql^rPHY2*!%=YtI3txpX3eQ?k6DgJ+=sR zVA`0U^Mc})Z{!iftx;0kM0roe>2liCdn7VBD!h=TA3W}NvCb=PL-X{3?ST@)giXfv z>yy`h>uH!mr*5pJVOx7;o4g#?4VU4~)3AWsVm_zkJz(53QsGFiFYGq_H>so3;Lx~M z)8~E1R#DJtuoZNvsIDJZ=jtY{f?w_8uLBly&Z14aghjHrlVWnVDEa4ldQ|Hg&Oi^i zbw$a?5I%9{?LOsHbA;bwRaqKou!xY&0D%b3GOEu0mMk-A4+aoVMlqH0Y{XD^ub_7w z9cDWk8J?VGY_`j}eTBiDnfbbZ*eB8JN}qPP-CKm)iw1Su*kxFdF4-(orCmQVfrQeZrYtIyuAa83rf zHM6Wu%I%HJ02`#dxt{^K?ixRplQs~(j5t*UYhE;49BfX1VYei3cuIZGBFCKqRrwGZ@UC{>-I?h# zjsgsAEHHfaR7JMMjLM^2qRKB5Ri%L|*OWbt^1@BSzv)%|YH??f(<{?xZp2EeneHc} zh;*bhjzA(+w)U_oglA_2FRW_=-=0qxOgP}AU8hNlPcO$cgMOM2M162M@S;{Q;o~`} ziHhLlbUdDc)oYB4?@l~yGQK>X{{E72cM$uZTAnFbjuQ@L>+|(kBj59*<*Tlr(|TORSR%lTpJGj2M^CLN)I4lGy+!vu(bcGL z8mpiaDQ%0qQfn=#PdWFB7L?z3q|7*Z!IcvS1GEydGYxxI(j~6Uzg5_HASbIH9u`tp zB>^gl*)a{H0d09@|E$S548)*HytV0(00XxjL`}5xJe#q(QkRO2d0@$UB>>sPdEr3n zL@UK+x)pq_sm~T~Si;;#_S^oLNqd3j#?BTd*6)$gfiAIUfjV@1DT8P53fZXJKyW(NP_75r|9n=#Ov% zSLQBt(nFPcfA;}>a4cOp3t*%Se&~ME&mW9YB~!QPO=<%@-WId(4DuI^v0$L1yPFvw zj}M%JQ*QF@LPm4zBAsmY$F-V)B^ekeXG}a!6>Y7N3y)LwoplO7lB|t1llx_|ph<3P z=zZHN&FW)SmA87Vd574I+lFyb`DKhX^TfRM$gwJ9VvICpLZR*Y6JnXx2BnYPwVK2M ze;JTijE$3@K5X`h`fp2LzD#m{CHb&{a-2HLB$ya(OmYcipOV*NM?l8k)2}!l%Dna~ zyKY>?upGNlDWbQYFb~U%dX2y2J*ew7usRb2X();}?%b$%24h^xubpM2lpx92L^uA8 z3E;dTsl}xdxcI*<`@&AOxZZ$j^9UwL$5frjqKGN{YX70l(MKN0J0Mnix|vtkzON(- zozF5Z+NF>c(d%*eF1eXdw|U|zr=*ST+c&mSaiSzvCMU!IcVq*5TGT{7<7(^Dm$Oo$ zgD^SjSp{qAe42|^kD-=W)SmUv_jWM47AY%k7u3QPWOU2joXYs!EwzauYtGuk=XK)$ zqVunV$x0d&9E}GYZS7YDFtIqT@Aw0~l}yS1adhtSOt=3Z@4oNquGHY>r!nm|1epoNk9H$C%U1w)=Pa{q6B! zKHIMAeR#c|FKH*mqCTLqMFNIAn5gf*;nc%k$Q$DXtS@*QajjAotbr!>ciFeN_o(74 z!PFsXH-n_!y4TJ%q->y3;TftKQjYclb%}P#scK(>9D*DSouX=p(-DGn1p3C&#k)2t zi5_;RtCHKcfmDN&38%m16c*bm>Kod%vyBTSx zKv{`&XQ;Ku#g?~zA5lAs&gou8FN~+evzD!9BN4uFk}tphPxyN~U5bKWsmNFvyswTe zG&xT%ZcPdHaL1$Ky{)`jjLZ2s&v%A2%R;S(7C`;Y0kRwc6ZH$>?BCc)D}KJAi(y~` zsjn8V+s4@rd5qof)qcrTbHyUn_jXN8OQs_J);cT$E*j8^Ya7zwr!`c5sf(KLDgkH+ z5eQkwf0*+5oW5D#?vkGQIT!g`)cwnDi^ghot3y4}K7oMX*+Bi^B#hug_`g&EKXFuu zi?Dh%h@x(>ZC+Wx>ry3OoX^5fDmmir{cwxq<6h7b$ZlVDiG_4oKm1sv3&4f^WfK|l z9cZ%RUF5?=U1fr z8TGgU)a4TM7MI*lO!-d@a1rU;nXAaYN%_K;lF7l}kOqPW(sbtCszur~zV=gE~nvN76Z^#}xf z?vT(g*EG7}-!Bf_#KOh6C6&gi$_m(SIHamyT4@{amBnRG0l zrw$bIX7T&u8tOaip3-*1PK@)9YSO6E~%+rcTzJt?DiJiYdxFJY@Ck!Mng%Ay&Ff+4$;!SrVBc8ERX0uQFgC z{~J*M`Y!#udFJ97=uzTCg0bkvFqj=|nMwI*p5t>uoO>59Lu;IqNt+L%oujNbBi#WX zBj{7?KN6o!CC3%}*M+lOTgysVrA-9tw76KF*u3p_;U#DONzd`44Vc}ILCP8F8p*FR zRDBSaq1TTF5!3{HqAY%=JFaC%Bi{(r8T0;^`U9$4v79N-xgJRW5wNO+3H8I zvj8;lO?L~LVI2vol3O1pdzEG zr-fQ~hKt>w8Gf8uuNzscM5`86A@h9%)7zsPb(P;vYF~$~4(6c__R+;{!PX`08j6b+DkJ9NbauRw$1uLX=f?(@&>r8;w<}+#grErMYDbh&hD&g5NqB*LtcW3Npd%(rGoPbcf~*iWAN8 zEd(#9<6l=x=;oG3H^Oe8FzN*{#=$Yl##9aZ{}I@k!B<|qOZQjXTlI~E4NmEq3}2Rf zPXXQ>CM!TIES2#V?Te93>nuD_M=8n%8VD3|#S;|}Xd6need2c^h_}9p`(ktUOK#Z# zGbdF14@s%-e*drPN{(fwI$CTXrV%Bm&OLA+oE3&Yb25#@hQG97rFm_ExpjKmNdD8( zoAr&D7k~7wLdcw7#irAKykB$*cVo2>G&t4&ZIN{0P05VvrmPnWTX1+-a-lwP-Lgc>#IH&6SFF{gWh5EMn8(1EB&pf#ycl^2NPgigQ0VQOx;06CV z%XwRc{JV@4NR4eoIPsHSyS3USzwI>^-s(Ko!BOIaY#Fo4B|hu7fOjjG&E0!Lp>XmY z_?(j+rk&p8qLppRzgAyhF!hPL+8tkkkFr*m%KvZ2GoH#BEe7&u z|IAMk7iEieNy=MK15niedBsHO4msAt$(CJS8L%)9dh?j{c3ib*I$2%e_9G*@X5LYG zf~IbyCJP&tV?y2OB=v!L(Ij_wY|t9#YUf;f=kI4OSha33xd=fL_k+q`Mv>;zm@|yZ zB32O)5_kw5qW=waPgjbKqgH~|L__6ib+2<y{a`f|Q-m~s0(|u4%)}24q+c8HVz?1v2ecf#ds+fVnvqTLh8$VXDs*2};(UXPC=D!M zTAp0NdPnSJ!c)WxDGN*>)2nFm-?EhiJ!TPRokp-(PIQ7&iOn%-DP1925npc%sK_3` zw#(ChMosEup6v8B%uq`U{gpe$QN9=qP3%9RK@En2t{M>0`P7>9YnS8su^o>_Vf==2 zcl}^@SmdpD^b;n43I{G&sFT!OZkvNX(ll)4V3jS#{-`WevB(&Rwt+%Ga|`C4VECbN zW#twtecg|iEHbUaQ^$}1VEI3-Hk=hM6iJudiC|wEF|}ot6^^5@zX~JsynT2IBKI^r zQTL=9tFQx?&`Xzl)Ll|i73qV24xeBj3Vw1?s7ANcpnv}F;{jcBaqdwZ- ztHvdEAhCaP9M78|$6PrmU2LYab|iav$o80?oph^|$UOtkl5GF?)`qb?IX7!w`uC?3 z_m#J*#EmkG!Txi8SrTv{(qcn2wW0v5yzt2&$6Eek{saWiJVskv39|Lu_Z{A#D%`^`sY zSMS(_D6oFeiv#}K@so#%pO83z_!VI^GILYxg9@!)y_;z7erRHX3U<;)Eh)c9pIf1% zV6M|h5S7GByTQIX88H6Vw-tLS=~p~Fg~~T+Y1K+`lFlA+ne9v|m||+BzGR8=bY5eM z&Naqd$_pbe*{pkFKuK2OeJ-J~kc0E3_cWw_9b&CL&xcn1Guv&Yc(sGEO>%T*bPK%h z)q5qF2BIC@kgu$QK9AH|Nf!+hC0c=IJnt_5d-5A@Po1h8=uY9fk)~B>_PjVdW8Ysg z_Mf@x-jfQ|CoH$j=F2tpyWcr8sui-?s?kl5OYfn8$VqJ=p1jT&?2V+Lim?YyQtJ|r zD(n&{PGpTEsH2&p8%*ECy@wgMsMI>!fz^dUxI=Q@wF!=*4Lb>t%|E?r*-G0yRO;&Q zVP8$FZ=j(qs(wr~#`ZX499<>?HJ3mqe_mB?iS7Y=IF$8{Ju7`H^-P23HbHyvZh^ze ze$n{p%gR16mvD9u6PBo8_@Z^VHBXr>XMm z`+wR79$C&xMv-#*Nx;4x55CQb=FdGE^EdC=Cl%I#@_%N6RLWv>|2ug-z5Wf2XoA#2 z@6;I0HbbQ*sB*Ya*)fuox1wXj;Js-NxSSGY~MW8vQ)WZmGC;}G8qx~?r4;JwNdlV{uC zs|oTZy8mP^>w)h8J6+G7Vf=QDJmJ?5SOS{M)?>co?Jv^|#Ix~XWu`|KGT!|y3(!G}haDesogK9L(zXs+v^zVVW!s0$8fc_l7TE4NP{ZAtK#gw<2Ez4Pv< zyqo==vb?6^H;JhlI|T9q&Ux*sV4j=RL#-eDpw0_Lw_lwf+ebfPCO`Q3oTqjUgjZ^J z>vmt&RDDKXb%W186Nn98HOcnlieGrda`5`SoI()w-NT|n3TFs*L7u0px1p*hVi$fHmcDrg+J4gHM8d;&Gu_9gFBYJ1v~dNbHr|xtOPU+ zHB>s}s#!JYmeT%8NWU@Aal%Hf?qN4a%B?bJ?I(N!%%R4e#iX(s@>puc?DGPD=z!+T zU>n&WmD5Trp4FglB4l{fKfM9g!!W%&Jloa|a^yJZbCx4rWgcPq*s|%V%e=3`hDQyV zbL;p=nA%17BI_uT}=r-G{QJWyZ*E^cPq2zEt#WTCKVzQ+b5S+-)Q=*Nxu zTY{myg85ey=645*TT|gMzLEXe3dDOT@nB{sh1*IQk(`3T(HWQPV|ScJvpy>DlYnu* z63~sk|5AO1QW(uD)vgcMM$OcRtjPmDw=9MqT)Sf4F6zs-EmnL!nc=l2`1mWHz?7Eb z5uOg-xOL1yZ5G;pNGCa8nB2iU)~!pC!)$nAWnTJT6FSRi)TYhsLN{`Ei&kWQ`apPl>BT1-C@w(PxT%ugX6dzBDFZCx}t0<48( zU3g4SAmy^(y_`X;ek2pQZM8Wm{{$CT*QFloP?dhBq&xgjd;4f%K`ASPA&Zy}Fw9Ye zR#o>HobDRF&e7Cm&$TR-8f|K~{*Q6|@;=GOhv>a6xo4-WGp)T+hy~!S0mXyfU4q7| zRm7bv_JGU9ocC*qhA&uNU6i5{&bl)bStHJV@#MXYc1(u%{{OL5!5j|>>f{C-3dv|r|Eoe@;Z(SE9lYBzw5WP}OhMI{Z?@+W=KYcVg)h7&%G zaOp?JS0y^Skd_uEQ7iwAN#AtTd7XR63vS#h^sHSA)DXjK-n|31dSPOpG-M|{n>y9H#r|cElBUX z3h1x6gfjCI{{uyeiB3&g*`~5k-Zp!zR8$*gwF^ACKag+h8q+yUOAqtki_%L#q;Ig% z_R-SF7c4f%i;yEe!dOdi4sF7?rQTz7lnxuS5sp5z+g$ z*BOoKe3UgkspCMg)>jTHl9B!O3*(&#AtOR8!S*f^`}E*`GWg?MEi<^)Y zh-_QJOLNnn&>!Qr+8Up*awAy%9=%{6Q1bL&$<8^unS>GAhbB(GFq~Vqx?}`W52{;& z@;|PKa_&?4s%u&92vVJVKh6j`x%I_t5!g8U*{X`(w^wg>nIvpJ$Na(cudtcrCnDuv zj8WUkic#+a{wk+!DsytKH1w>^ZDrXizIwPN_Z?jn43l$+pTOARR417GfEBA2dG@*G z4|U7##i{zbH5K6$-*UrAm(pAcqQ7K45Yj@<)&<$*2s+WAQw61fPRn;0gQnY?)n_p4 zF_p_U+gSq5Zg~p6l~~mP5$Ad-qVu zQYf!=9C&f2{{7__S@p~Y6592E{gHmC_v&DyAtD~2{53Y;ZQSTT)w__=L(dE}tDRH_ zFGL=~Cu%0!_~LvAQoblCz&Y*Hez-GXK-Vh0J*-K7UZA?dpzz@OTHN&9A66mkfktrJ zAV9!5=Yp5r`N*DWB~?v-J1jCnXl1j%ga~rIsr0k5X<0;JE%MS?YXh^8vLw}L zh3x=UHwS@M>ONQXJU>r(wCf}^(By)q5rj$_<9YwRH$4r54!(S$h7a|&b{R*?GGql6 zTF+_V*e808+(-|vuKxas`q5kc4A(;9jEP@o&SfW5KxiiQrmv@xRGSW@SRN}43H8wG zHWKx0U9jLDv41}e6ZI4tyl=AX;<9F8b}Dh*nvhRjz)lMe=d8QqUa#D-`;e<)m?}6! z&t~UWj~tI&)vfDf(J*}e-+k-3o2{&B2gulvKW*T^?)Q0mswFndmZRXo6e|saoE6H+ zK^DG(Ok&5{vu`Wg!Q>5qGL9T}QuhsI$?gXd6j7x1ShS4MMvA7(bB2Zsk6tV#t` zS}9wtdkPqxP3#jI-q2-$Lu}_;EGmD+T47%qkoSk7@`Rduds1jpu zxN(EL1}_LipvE!Lxg_IH^ksXd3!Ntu1blpfCN;D_ z1DxuFkegPaAqworfupZe&u@o>q!FOzzyj3c;gRz7QKC;YbXk!o=Pbx@0cLFwETEcU zxS3@oV&+8IFH9y^wIpIzOJT}9WlQo>*|kj6LE5G1|8@X5T5liKZ$YaMkZC5_NehwX zZ&%POA9rR}*M8+12pacJP5uy>RZB{}vVK=joE0V{&%|HcVfco4^>z{ON92s&t?PaG z%2Sw6&`*hCj_{oYxD&9ugcD|1OvLdacb2p!+ujL4*9%A-RtAUzp?*>c%e^VF-%KCt zxOgM|5J%a+&fQkEkCff$V8>vCKdG5`+wn+2cub@Bfyt})2$oNLkmHl<&iH--*6Xx< zboM5uGaRM;{*CK6!OW3-7gIfJ1e5~4iI(>cvm?37Y@X&;u`;P^*)Pyj;Pp47vv?V= ziTiTOO8|EjwGFI}z`QbfjH(y?Uq`Nw)hFi(utAvVEnDKAcaS$smB_xLIsP4~_-Z@} z@*yX;WfsuHjpmnm@&6OnuU5j5WM3`YV<>iJ6s3Bds@gbp;xRqu$2W^(d{|Ymeo7GH zC$I(u!j6=uB2002H+QW?98R*UL~Rua3UW*}hCLA=U)ooken+O;&h%z)WPZAQFw8-L zyX?xvSCKkEvj}hgobpPUn$v#?V}EA65_&rn*s!ur6LV)PVB$c_Y7a-&vU=09riKV` zJ%U-+-ZaKbg63xV{wIPG;XfwnC~2!zD>Y;RuQhcT8#KYhYaQJe12g#YH>wmD|HQcL zzN;X<>_%lUVsPTyUK%v1v0qeC_~VdS@v;7{(h#W`(hJTKT^3UFQRKq?h&4>&$O7JM$k9RovY{52Oc)+%6oOugcv=2m34U;MxFU7tUcNI$@Y# z`vA=SOCKOM5K7bTC6+_y8@Fzh+p^(y_KIcNMlHVv@mhjU8**WGViEpblzK|)FwV#s z@NI4K8I~&}sV*|3{)gJgdw3rJpf*5HDHYn+)8wyIGnG3-ni$e3y84<>V3ws z+_umr!F(~Lsos1YL{N}w0Gc5 zl^}|0(t^G&ZU6#+8!yNipAJ!U2M6`Co_Vc~S33*4t%qwNLh{R#730#UrF?nCK52m} zu0ON-1&kvDz+4+j7uI^-smNMzMCaGg;m^wM)g0JL zm`myF%Y z-f~Y1*8en^Lh#%z?!B#U4lk?4v5V9{*09 zMlb-Hsacv~QBa6Ope z4hmcp?8?QL9BmIc=2s<N%K)AG88`Z`9fjhu0} z(v^RcvnC`^C^#qA%dJnEfLKTw8}uL98@K)(ZHU(^Sw=krM3iMCSr1P7ZmmZ@|0F*# zc;@Xr*_5LHqP_OKBJ^EN@57;*`*dj1+<{}aF4DP(b=M1}tD2G^;)>DJ3-AInxG~xkp_9+7hpiKE&Bk ze4i(A)l>h$&@L!-@>mYFgGn8uHi;3_O`ncr+&bR1Xu|O=#--E|B4q2c25ierJdtKB zXMyvBBPym(`QN|q?NPpCy5b<@kP=h|=uW@{hFuRU0nR>e%e{ZjAu=oAsC39-P4xb5 ztF5(^g{xyyfc*oe?4N!u@bF%-={@xVX5BTjw2X=0Vwq(CqUA&h@xtKM&;}} z&7Dk^vpFaWb}$>?w~n2xUN(_(=^=|+ymY3Mp(|f8R|LSPvksPsZO=U)Z9dwvh`I#L zWaaVHxz;!xP4Xr2jyYC#RMJl0c>H$QEMv0h2TCB?S z4>8OtCAXAn_fT}~KcN@#6UlvQFEx<94qkGJv#FZFOdPsH<#dlG_Yo>2$#&`)XAXPEfoa_Z-TrGTu&rI zrquiEUX^@>Ki<@ZKrN7sew*qg!}(CCAnf0lRYCG^)T&Lw!+N+U&b68qf3kpjI6>wm zotv;drGL~mQhN=~IQa=aWxM$TYNQ-kY*0Uxw4mQMB-%b&EATMsf)haivaJjEye>mKdgsqIN%0&u!Hhg zL|loEZp{FyF8re&tzh#RDk+Fs2?QK=Y>9u{4Wr+O-SE@AffTYAjh5AOBF}oA8kM8H zJ=Wo9rY`AX&89KaWx3Pe3J8knP{QumTdPxBj$kJu<<)$4C*$ObC9}{X1XC!C`+99O zw$I7TZ5+m&&?ptvPjM&KrB9(0tcdUY-luHf_tgV20GRUrRky6vF3Q2OnjL1bW)mr zXIF~rpv3`TJL&#&Lng@M22%#~Dd%FGF<%@w4w@d{hRjJ;g{3y0OCze4;Bo|B_1r1S zu~)WJb`g%1wKDFzqZ4{jAICAV;-oD|EaaEB-%&dUv`h<*3k+<#tIXs?)Lyk74}H0m zD+;C6J&=B;H*xQM*dJ*o987@f%Vm>Ag_KXvXJ)!6KZQ~cPGj=OnfPI zq5-P`0s^u&gKKi8CzS3D%^KEu#D^evA{=ujiGBByk_wk0A{})fDgfqqVV`KezJ6&> zV5Z^3SpM{LkhyNPR02Zl1h_9ptV*svo`Q75V^rM`S5Nu)5ROdZG=}qhe0W$Py zI4moTkq4}`P3kQzc@hj4%%6AA^h_Y;Sst}3>O`ikL-7?%5cYTZmBy;DZO&*&_OPwC0ME zLoLDhZH(=sguon|bep5Vwy)Wm_?yCAUw>|T>|;;#7fp(#p#Vfn>mYpN@1jmEk4@A2 zACe!@X=HXcQY>A?Q36Pbbr;B<$gv`9rmHU@Y-o0!cnm(1g*!L)cr!vG;59l1 zzk8#qd8#DT5=%Kq0t!z!2%!37n%Az~A|wxUwq&B-BX~UGj+hWkfnlwu&oZ17P@xHt zzSWZ)Cb|IAZ_}f&_bg2Iq0v7V^Ap}8&APkKffv6iSw#Y9UJ7JObq`?rG|s-ccpoNlu4sH-thSCSn{l)>M`;CSwru7%RsHt zq<#%<`W>GwpY=t_(u^jA!PwvDg~qLO><%r72pzp$;7o_Kka&;d?TM#FV}@+cnUyII6*`slM1`FQN2}7+?mJDEaiStRB;7P7iL~`cO z4@Ry{m)c(5=f`_;UArSe0S0MVjwPoU=tQX4&%m29D)Vvb141RT$WqYrXW? ztr;dOUf~Rw( zo3`9t#OWR}^Y@k*jH$$AG(KTnoO^8WHhD5o%g|wc>QeO;= z746dA!5C+2gwIH0OB~TR^f4{N>E#>AZA?bY3C9)Q7C;}~ErR&a>tiNHu;-n>x6Xg& zEP+lJE^C1z&N5x1%M@&MdCJGyWYc)7rz{&Im*w zixdA`{HDV1>_D6qBOH3xu=#Mm$+WjNL*oFCG&YBC4i4JyE1&Ipr3ksAP3BNb#QAuD zk>j#=os<5vobPpU`kxYi!vLDF`bDrFm(2psRFJG#dxxfrVEz1B2g#@s+fO5P-qj_e zf0vak+8o8{xYvlx=!_qKu%j(F?1c-WU|tP5C4Ai*LVpw2-ay zPV=?K`eb(nJi-;0YPaQthlu3cRhYb)f$=6-czc|Q8wQxaGy(O?ZWHS*C4K*c zTHyg9`j1SqHujGl(gUUrur*gYa12w5*I6@MF-_h}bDiwXgFd;IlB7m3R7f*sT^&Elwa-GzqP&WUrj-qSoHXw!k`U*%_ut1TRn> z%n|>t{EpE3yv~i3+?6XIwo#0V+0q~{RcdVSU;>V^#$(+YfAyP8h%$|=ZQZv1p$!gy z8gmzN9Y>nnxOt-hV8gU?Bzo=Z0YF(I;u{ZlC$BA*#%uwc*GX{G(x@;_~`O z&YAa9)1hegQN@=Aa^MuAY$SN{2M~UN&9@N7_($BTgfaGhmu~QWY zQ9N{mCWeE5QTJs_BKV2Ld932GmKpQ+$Yn|&0vO%{H8YO1CyZVwMvRyT$rWpNSGnvf z{fO(aY2Ad+Q<@0rv$rTZIA2>|98I12Dey?Ne+bf((G+pu(-~q^>T9`PhTQ7p17qG2}~0>-gK@g$gVW0IaKZei-QS4%md11jMEn@mID( zh&c%+NHb!%Z|cIDLQ^0OJUl6zc0i9LaRp264ErZp4N@aCu**-WHWK@SxFF(Zd1JlyK@TaaBkGytrZzzq)LbS zjRBr+H#&B%y!FuFu)}E*5#c!@01b_i(jaT+S>%A>qm6WaVNw5_kz!$rcthf_Y3w|6 zF@cs95=cKd65i21Y)l`7BBH5=#FUX4BPWMhw@QO|BFII$Y6i0%rR|W zl@&H~mQQQY7oq@St?JvpJyB*;x$V@v}|8`@SC|9mw*w`3Ni7fIwNw>9|qacU*!nD(5)bowd6 zUd-D>pdMTS_^g(7&ux($KR6)2$xNqVtjOxS=3X+nFGq7NaZZ%Rn<)hlQuxHDtIdnz zUCcg

QgFLwiXb!Ugsz-l@88uQ}1QyfxOnOiLe3qHLfRdz;69S3foh@uQz`=gz2k zQ=I7R!!cwA?u53)A?E7!7E0*W$fX;rlNo_f%q@^{1A-UgaqoR(x;{`DF?-(vO+)?-)aUPkTX}6vex@W4cmgZAU z2g796vD{^!Jt0>jcTrAN_XXyR&hz)Chz*KI7aE5f$i?Aqu<<+_vwqyUi zm)+G_LrjxT_&(PB3uaohL6FK4EOF8qiu zd2FXv*(r2L&<|2b&^ASRWEtFoxPHg;=(p3k*}(B~!oAnvn|DK4V3b3&_yQ9vowpuz zDvc4i((>YB8o5!D?87+((ad-UFccCW1h+YWa)`f{)A%0y5ra8J=(HkCUpO%{5GRZm zPn1xa8?x4^bBFVX7BL+NcCNRsP(0Upi zDE!CWU-Z59&s{|3@JH>nF-wI?+beo<^7HpTN~tG;YrjTz9bqP==SGDbla81TM+GvG z8F`>~lle=mNAG)xd=uN_*Q{%Gj0N;co3<>M^MgGT(jB>4h*^cidJ?jZI#PM3ZCKJ- z=+E>q9%QCbKe@`cW|rlmKO+|}SeCY%?gO#WT=pBN$+t(DQBp}xqn0sBl}2ZQH|UGa zK6>U;YC}4hI6We7nJs>C?WU^tMYhqB2OFCSZmkMSx)3!CA2@BF+$JOsUU_heV4L>3 z?1Ir2WxnkE{r1R8LvlzsZG9sr+iZCa=te*#nvzUZX*9C^8fXyZonKXxsff*UPF4m! zTSs~efJpG#$tN2XK*5@8Ap|Q5ewMknkkapkarDG&d|xpF*BSfdV_*3mJTWJrrnjLw zsAy=UDg*&3)Hf|$9Owz$j*%qA2r{87X4A*Z(s*0IJ3XW0RSrd=JTzy)aqo^qPnx=| zWanVxkOtQMBWSS&mFm38^&3bkJ`KdRrCyVjyCg1rFS!$U8NE8=e?Oe#0h&J{*iQnf z7S;S>{>gxKlGrhDQ+?z7C_lCv^E`~cC{bfyMO^i-n@`8NRy{dj19y!v{Fjd#C${yEXR)Xz~2A<)6RBWP$U26E1#O~%nMoeX?N=^G0%y_v!)#wInKa5S5)w536 z!b2yeO6YqPiCf3=pFW_Ht@u=qzM*gkZgpUm^fREe-69z%1zCdN2bv$2?mTXDyBg*3 z$;%IVWXh!u6Pr{tCN1n}c+gz&G7|P(^OQurwo2GaRwcF57`aU?ra-&C5WJmBH~80} zW?y7+=}cFX$vlbs^gKDWJ81H=!-j7$xZRm*wkOv!)_$zrG5jJGLF=XHZ&}bXHlqp> z0KGwNa*3y+=8zdV${!vZgI^<&^_3KtC5u2y3*Pa>8wTl+QkDTD>&QVNL8DcQ2^j?y zVsq`ieJcRN-hESRL4GI=YZGji20Vx<3U+InTiAuS>0EG`)+UK%nUA{dmPiR8w>n1c z6@iA)8=aNgkQ<~}u zVd)+7dl6ym_x>dITo5KYZ_8E${6$SK3+^h5MmC{!i?4%=AC`aXRHwWH-U?kSAby=G%p^a$TIj=y63og1WnVdVMh`FT>MRx%hF z1C2TB%tpOi12m0StMyVc`DEyq<*enFg-o^;cfAz=`??KLdtlv%Ir|*uV9!i zXQ@Xc|8xO4A zk$U$r^l~GadDf>9W=zTkKb>DjY?dC{O&_L>`q8@|g3KsgE}4`|>lpjKPOX${Tl{N4 z)Q9@62{Y>&2mDB%YAU8$CD$AO?*lDbWaBgnxiDE1dkdsedT;F`9}5z>*Fuz@$NOA6 zr2Zw7Om58X5nqQmb!d9$v*uv=7#Gi}$ThH?9*O+5k4YgVc>$qbywZ3zFZ&7AJ zeZieke_P)?w_zdCE$PHLmSUs{jG?rC;b`fq85@V_uZnr8672DV;AW+A$R8Sv>ot!gb1gIkZ$z*^-GCSgVS;LoN@{E%Q>7`9Tl6uP; z_5yCv0+d0-@vRF-1KNHc#vw&jz14aJ2X^=L)>S6;)KUrFv8j0JmB&C9CR^BPdY`ZC zm*d&9W{?vhCBW*!+$qH~ZKXiTFgtPmtm=x<3_AEDu6BRNe>-H4=ZVJvQ@>T6wOcwd zvMbMnJL*m@Sq>FXj#!qIbO7nwjsJC9s2D2vyj31{INoHZOF1i%MZ~YWXb)=9To?CC z?W9(98#T>s=XKm*&cjcCAf;ajJow_j9fvfQ9d6B+NV?19{BBoks3a@%wiu=$($8n> z!mrNBevTvWs}g3dT5wI0PT+mkJe6xtaK_lw2;*ljwXOqPkLSy3A2$dwG`2@>y?dmf zhVI9m-38uD#YkiAT&WqfzB_j&j+;=O3R81#5u-$T|=TC3uU7A4d&Ov z)My^(m$Hb9@OeH^JisMrfPAvq{pJ(brtD6pVPm4f<0LSU1qo%%{1GTuS^CFNMB(39 zJ>^QR1QtWhUDs=K(y^|lt{0=7IbKFy{gzQ^k-)5nf(VAqEK&A3X9;x0Bg-3qym83j zHLYayDbdAjKdw-2brOL2hlzjsexBNAtsftAj7#h zXOFBsn9ILtlm@RFS0yY%03c;MOJJG$!qw^(Q`?7*aEpS>KAI>02tt6F-XUGeAdkH# z(+m06DA)4d9j&&mwvsNlP7!$>@Bv_#?tNHyV2$|WwZ-=WDJsHG%YJ=6nE3c$0Z2a? z^zwSUDmylP?V?CJ-+l~=N*euhh1z-ywGNh%I(8C!t0#mdroM5KQzqAZmeV>}2QbXw zi=ipXzBc3GtM8Ek1Dd`(Fo+MM9AoTp?)K>o(D8X$_23(SwR>QkU~?hzdOKS@#%=S` zPyO7dLWlp=B@Ci`6BmH@DX#w$^4QYmdMJuR-#O@$P`m7F!D6z^dH&oDbZXVRw zc3OqSgLii7gb@G%B8Xr8x8qxx%;%gSL;B@@itj0;TFi3)<;%vBMN_-amf+({_~oSO ztSFDK%BY<>S{7OWhx0PMh2%=D7hU3_O)y^a-2}mTCr!*cOG~~XaEVWBl)Vu4sG=!v zf+66aDpf8mi%AJ@SHzte7!q2iibn{WL@NF($VvhHvK0JBuVQ-2>29-22FK-Xvu^ZF zz1ER+CROh-1r;bzFr(5>NWt&NN8!I;_UH5W7WA&2W^YBu#zPjg@Kkb3aQWfO-&qPL z8s2r<^=d7yW@L6-UY-LmMhW+-lf5#h4S1(nY!PLx z?tZiUSD_cJ?t7YYk1suCmc~}m$vvb8wstJTKOB+}R(&SqVlnjdg!a`7WnM^~OgZQT zN6e*w*@fX}@ZesFm`Ud-h8yhC|$^IO#v!5e`Zgy4VsOoDqJfDu#eG~F)l$cVn+&S#Us_38VBv2p!^0?}_9yU+y8>@VXq zJ+72QF)=CMp`dNWyS*mYe+5}_A_b)~fY{B6sS$@Z7}J~NT19_O3d=PT^WfBu#SZDF~SSJRp_P6ydr zlhIqNUq^@ThI9l@J^VPeB!FS#3Ba9QdKvj|Xs+>K;huWZlZ0-Waa)Sf#`~;sk{ZXQ zu0Q0IeF5@lmzu!SYmcI9Q85Ua34sTm)Z5=zrCyv~7g^SQwu1@oKdT`ml*7^7y|H(r z2v%S?>(Wj#F8QdK&*HAu$dHu7^86s}!~PCI4L^S?6^EZ@ly&D$y(b{=PLIHxz{?|$ zqLMFBgFQM>84;|kRl$9;>n0(7dDVqVm){D zCgsCIP!&vo44LqAgr1ibisR8=_E`j%g8lEs@>Jg!gJ9K@qRf{yG#TaJ$n0D=B!WKU z*Ysr~@TbBw5WOTojS^JsQ zK%CRTesehD2TzxO|Dg#SId8A z2w%jdoA1-PQuP>9fOWdCjF?0Nv%gt@b>hK00cv&)LDc(5$}{IId3 z=H#TkNpSv(3N+z7(m|U6(Al4>atF`!IBc+=PDS+dty94}F7^=Pbl+|(Z^)i`R^Gcj zZpgk{y=sY>^Wx%0asxuFJwQFY)OPS-#9x_rU!XYU!*d?nf#W{aT{j6a0V3GS?W3gP z#5+a!2$<+h?CZy)FlV0_eWYXCH%4=DTe8=l@RGNKMoFg2YC@8-kQd)7rfVR$&mF`^GkU>C~uRrf0j#$N-j36Cv z_q41#T4YBA-#^39HJqv6hn-+kF50bPDQT>?pEG~zJ=W2b6-1BDb`~R6@qSMVpNI>v z({fe&-jKV)PL@mZx978Wh4R^Hxxb*hbltzP79#S~p5f%2TpZ(Julut0S`KL1fu&Qy zY1)o3d1-|$nYZ!iJ9Wrc!m1os?h6)xZ3zhPHkujm>oU)_7HiL0KI}YNc>*LI4_Lr$ zIH8kcZ)CsX#jUs0v~*Tw=$7@VowN-6=7)9bOShu{^0#6@Q+di^B}r>}G|Pn*_O-oe zWCwY{5m8Rzn|{UPu@5kH&+&gRVzs}fW$Kgf~swEn@Vd2!=B4XuSZ!SJUwDt ztK$14;ExD!3MBlAPQ97hwH^#P!v9tVQqMhl!kVSTFL(l(h?K1_gx06-TO4Hj8s@EIt3lLB<$1MCCdvi#A0RgC3gcy;C zTkR+;pS9E?SJU%qdhZX9ASybtnhu?^@vdQLf%#a*QKLx*PbzhKIS4i|Gt^{0#iFdn z=&#}QTzw#1)rfS)-(;ii77Rw+sGTc)j~xO;;EpG7>lRVZs#48@xm5!CRsWOFQ6z$G z7n`$2PEdeR14(*Sfu-LwZy(+*6k86ec-a+dkUU2n)R+ZQ=J;WmsZlTo3&bY#S*HG5 zvp=VXpK$0KAkK9=X*rf#+~YF^xefBn^KbfGcn zn;p78{r!N=;o`Q1!$m+C?vR<$1RePK+Yz2R=cL2Oft7%nxe>7VYOT4Z_O3FXAm0rK+nE5yd?>;39>Fu=-?(}h%8zUMk}@F6VE4qd6wl)c}AF~ zhq|*fhOLUkz8pr=^#A7-?po4cg1OaNLx=uc}9} zXt83WKV2?Ep=*Qzvk&7btumU}!-`*!5k%7&a5veNFd_^f^~U<~6|Rh-UpxqHTQLY+8Wr_tr>f{4K zhlG!re0A<0k_j8?oR{4=NZjNA4O5H;(LTyYoD^UZ<_I@0zMl~tFv0m@?E&O9;E>SY z?*x5U)Y$_84+VuGprFy?odkKM$Si9jb;CfpssXjp9*rt|?FFq11QPJ7y5&rA<7=hO#w*9iFvDQN3~41CM; z|H#F&npew`Kg`WdO%ZKO^XL$*MFnI{r7fv!b41%y>)yP!+rfT2X1UsoV|u7~$|@Wr zZnTFCq~p6#3?lwbdB5*tduaH&B^tzS0#rwIMYWSQaZQ9|)(9JW9dyh9)CoUe2ks>} z;2J9ke|xSkKcL?eHSTLkpF>%2yhiMb4YcBVLCCo#l$&Ja@9at+cq0Vmrg>Fm?;?z6 z33HB*wr|pkhl3G^%cwr=N23+jLoI}nH)f7Q3luXBl)?!x#3cd5y$r(ZXs-@U{3f>k zUsH&%Aynv|sjxw926lpJ;3Z4z_1*4la?T=)bjyWd0{uFc6Pg4E;64?V!oQw~JKp!6 zrwk@rfJi`O0;3ru9(OP+Om_r`KYWMLyQ8{RZZuFjw`y$nde7Vf_3~f)CB8FQ#jOdi zCVtRLkGajLk*uZ{-yi5Pgj=Ty{WA!oPnZ=&O#h0rXORDj&xF72`odMyvhqP7FKE2X zE-9X+z3mvMx1}_L9Ns_9Y3>_8k0%LJIGWc*PT7TQb%@?d!Q){fKot)m4M8EBEu7w4 z79e{m?C;9_UO-=7e3KEaRcQ32DT^cZ2BotSd`7|$4hx%&O#(w8$1g9vo8|g-Rv_9- z08FnQ{Zcdwr(X z06bDv*8ec+s-9?@e&CzB>F&^*Q-V@hx8rVR~%pK*{ ze+T@l>R=wg2`0CvG ztvaskF~6nbsaYsm2m8a&O|)^m+#A;?&(47HJ2vFu9%RX zC5-%X@~j2zJZa=G`gctQ3(Kw<;n`K(UZYG%p%`%kt}m;kiw*VlR1)dL*2Aw3vo_mjNXD><{owgq?P{~95DetPK_f& zPa$f(i*XruA3wf0_1HF`I@2HIeo*xEcd7`N0V9z&E%Ey{R#k8A=2TQ+H`3Gvro_i> z^#02Y>w2cksFrKxn0r_^jR+yK!=EQNJ+1z;NbKg$uoSkjuUGja3U$`pnQSQ(eVaJg ze9o(ke08}ySgsuFj+b5PB~TTxqi3%5B0fw#?H%%^Pcyu0gem0K5-QMsZByECXL_4? zO#HyIVLUuPi8cVKYWqRpa#mwZjQ@Fu{PHE`L|gIM^m+4O%$!2PbFyZJuVxT1lR-~> zFTY$r^S8%;J(PQxV}2`t8v-M~Nf7*f6_>>lfvk3QYlj*g=y4ysw zKFam8{puRcC_`nS!#ZPH8jXxhv;%q7$xxqN+x=Wpo0y*P}&XW?cIosdZWMBq(xRtcZ@m}YiVT<)!1b6azxeP-xr&`yMLCa}&R zmf28Nvw5kJ?AlG0(N_{V&Wjz+w=bBZy5#y3Ju&Jp{tj2lW~gdvEG1O$Z{S zfL8hJC~q_ro0S6EGwQi=75=-JCZLe;Sasbvj%xeuoX6b<8_==l$Gl3CmwV5>Vxn7px#NYh|y>DDo3CP^a>${$hJU9mB*y)<8g4 zoY@!}9Okdh#&(Py8=_ErC zJtDQ=pQbh8`lD(I`lNl}rkacL?iG^(z6wOTJ*y(NcneL6`L&Bp1-H8$mFL;=F96Z* zjvazc^{(5wX3%-UKR>OoI{PMJg<_E+pGze_d%^{Dd1sjlvX3i!J-zh;H{x!`U_wL9 z`z-P|8ps`1Y45oDHu8naaK~UTnvAS84rw6ZwJUMJ5LiWwuXedu62)Cl{a(n1nUfbP z7$zu@lX=J3P#(Vcd?pWCJZxNlL9tp_L^DC5$?0}!iE}mqnZb6aG3M{CH|SAk$T)Xl~f}|XTtbAMEvu&_uZy`$W1ej zt~003_8aG*)qCYa(+U9)+A3hSlr4SxYX%niaYOD0Tl`%f zy=5ix81>r%A^eVYVh2{3<{<_Mx#ycTDSRbk)ekBkKi%3~=RLTyoo1lv$ika4AitK< zhA&x9lbZe&IX%;s)e*T*(ksv|<{zUBb-cl9x^4}mfTO0r{}bXVKuj2;Ja>&mBsQ>+j`VO@~M$`wA3kj*m!tMM@ix;;*efq zmyGoVF00KW74qaa=2P}u&_f;uM>Mu_=$Z;`kMKu!a8TH`($?`=H%GO)OCyxt0C~E+ zB>PW&7cnVxrT&E(08~BROCj2`;OT*b3x3yf!f7#{Uo924t1E~?Wgv@kU)km2zdSw3 zyqQ4bf!bu>lB1pkktarplsL#UBzJmEZ8^Q742eU8!UEyo)>6WS7>(a7z2b0mmopbY zzp&PGn@XbXu2oxQnng&e-}Zzi2P#YeVCNEdm16w(>(MBmnXXR5Q73$EoJ-(L09xn% z@FXfW?LK&(aNH+b-KJ+?$%O$w`2<6gRKBzME{rc`cS2@oXM<8iR?+FxHVM&9)U zLzf;uQEh$RAmYatyOcY@7}de1oP900nVt(;-+?0G-UwpB*RgtO+#Jtz45z?U9ael! z422N7nNd_WVU!4IZXh6?4#Y=E@#5YYgkd7~?FcnFZY!_r6iv$|H`)2S>Lln?(Z3DP zK{~p`?ZrE`u9Vb0y4^mOc&?yJTB}OtO)0?4F5d65=Zlx~eCCl^O-z54YAq?Pu~~Q* ztP~dfjN>6-eQhD5fJn%N#hh*5D=~PL4h)J%vci!AOzE?clu^Qp{ z^EWB5j^71H~iI8C|n%eg6_2{(Dtg#&9nl8ure;2`oRal~v{+U(Bs#r0QYr zPlUK|Ig_B^)_6gma1Qf{S@le}&+bFS9Ocf%^eBJ>pw;+5Wzvng0r4Y-+qq4th)h6V zoBR2j$?12O6GxV_I}=xW)5oxv<}UgL%EQFumELZi-G8H8bhRqWW= z(@rJE#J$v)(9sf{;hkU7$|>nFrOVt?-XF$%2bLexr+xX_5rmtQ?x32i_{Z(9KIW@0 z_bXd>Ns=@|6_bP+e+70W^!N6<=vlGL^b1pn;W_Guv8-_Kj2%soF+)=U3`o$XA?x+j%Mjuik3#Jps|1LAqjCMNW+L2c3 z$0h?CHBk*Pf2o7?xZbvG>+vs4lNisK>%zX^#gJ0tDOlsn-X96YfE7SAgh1#5fO&hQ zgh^+8SG(}#9_5Zdwq(`{_CxKifUOpt7dV}=S|i{K{9SifuWs8P6NU!M7_z@nch%NhX~*zp z%PKD{KBPs@77HFYT^f5sx7<(Lc>hDLKTwgL=d&9vZl-#q0Iq3Zlfmhg&9mK%0H$hIvx1Nl%4V$B?}E9)xp>kjCXedLj{bbL)DKSy#KjI(i&`N zW#ZTc$iE9w$MTj}N&M&&(faS_7S&&z@lDJ+(V#Wb&g3X6W~@Jad$?I-nGzlO_MD;6 zbHY94V`?o#8FWJ6VX-&dF!q`wZVbNbb9O3;+Q5|$Hjf}Cr`R#Q*SBP!#qa9S^cEFe zh~AYu_>|FaeA9ipm;>g&HPcS-P+oXd;TujzXj@>2--Bbmsre5TMkIyOH<^tXPBa2b z6t2(7v)z@$_WS*p;Ta*Nlm#4+o32)1R1@Sl52fJXkZv9UnqNGJ1K%$3ZBxiGkz;8= zq&4pzMfb|^<#DDR$`vaF8{l&nDcrl!ktpF<-HqyiRH|aUsI$S#a=PI@LwsC+Ox+e= zFEaEL>5ZnPzbR+yjdZjN=+Ws&BM_kEK3&s)^cngu{wLbI{%@yW1oPHsjOi;D0LmY% zr2m`FsayAQf$yl~q~=~cdSNBsl+wcN-1rv!qiq!$R`Bjc00Q8d|?WK5b<*E@XXPKbLjaSU1wj@|G!h5DAnKe)2`qOY0Jqy5t^!rB0LC&#wF zUv&*Y0ZpZK1%#?BJ7il13LJJP-7A0JV|d~s6Cf?8WFxr!!^byYZ@M$MTr90w=0xt{ za_dTFS@#(Q217wlx406F#VN~r%ch%bOh;Vy#&m%^n5xtRNYU1+{$+x9Ux*IW`{!@T zH?`sszbg5mj&tCX^AUEQ&=bz(A2;y}ajB;PVYb4Vm8kmK(-uoGEErHZHoQ;=lsD58 z^;ml+5++i*6hmcaxJ?2T;!p^R?|Z2=ELeY58>3``Y*3oJjg3d_d1S3uBmJj?PL=++>hhgU{@}ELmO}@`*ZRtpWGL^59Tlt25j(&=89b3$^$s z*(_k7yK9{yo3&DkqRVQ||L5>O3%Ny)B>3d~4&(m%h^V1xOTMfYr=;3{*Vw^MWtXn0 zysc<9$AtBX9I*sff^<%?GTHUd(PIc;)pVxHpqfNs5tWje{Yky*6HLOp+cgDC|&9=E))5 z3jx#A&GP(TJ|WyXS3%=L2hWuxZCh21v|ydoHF+rtq*n}q(MhWP(ffbb=Z)M_YxTMt zDzeUnLp%7Zc*_m?kQcIke&YNooaB%f1fJ&qQhBRXhG375K;>x&WpO@P32`427UAK92y z!cC*~|3z8MMDOg01T2a(^XEQH_MGqSod`$)l5h^e%;c!^t_eps=U3&`>HV-k0>KQZ zwLu<;BB<(Lcj1@J6{fLIgo~lk(aI;O^eAfrMN#)|fBvR>jWdyr(KC`>97Woi0p>7! z5-#X(Hza|Gc?pI@_jkr`OPS@^_Rs_&?+g4 zt|+}UtFi6SAi||A#Z3t6YrSNuzc!84);B%AlOcw3i5s3TRczDsa-LE8?|mNL@WR$+ z$q$$IVr_<`A*N&6iL+Bekg4i*4y>-OE`(z4Rz!qwIHV}=7>y+QeHs~5dR4||oe^)w zn&0+945mkNcC?QGDKfy!Y9vwh!W5Bi-QAzc?%*yq}GUu_ub8!?!{tA zr;=sioh`w5&CI3(kS8)J_4bvQWI60w*XZU_)eX`E4{!eCeO@w*2`lkNJj->!f+DD&0_-qZ8=zg4+z$ci*;Ald;PQkXt0q zU8=b;jVT0UTJf2o2E(O20qw<;^~wUwYOmhb@RD0fT1EORRKEb}CFV}rLg;(f z8!faTWk9{DGC`3eg zK5A%@s_L4Bf zo7uG*@K9yP4ZB7Sv<7CSkPkbbM1Dd5xr1bF_MhP(%fxtOrzAV)`%Y9j2$~1!ERs)e zAu+Nhkc&og>AhB$R$8LZU!lD9_>q-^jrU0TR_d|8Eq3`!_GF5yuu)EJY`urG-*U(6 z1BczDm6*~Z8^5`K=MAw&8|G%vN2FI<*gWp@0yy(Is}%}EhcATAy(K{_AHQ~Qoc3SQ z;d7oON{va|t20D5GBeMtXi;%-Ke%&t3F87~_UVIXEyf_#kQC0cfWdcS7mxvLm-5fBY8>*I!1EL6Jq1 z{cY55VvaX4lB0*t60Yzfi%C%>c0H9_SvA#UtKM!wm zu~gN$CUEA+JC0LI3NJwF{VQc}gM)K{`Bo+8-pYj&$Af}1CCXDPZ^+WN5F- zX}aI?0LI1K)YP1#E(sPuAaP_#Lxsu*2t$_RyRyyXU2Yq$v--&x;8{)v@TKsCPsknO zch}eb*yT+rJ@Rhb_tY3jqKwAloZBD4w2BhoB~Z6aH?@+O+{B<%$U%Tzjp?Ds40!G# zGC5=Se9Ro=W;fN9l2Q9;kVGOw%Z;dLgABDk+M4Yeh|1u7&oqxWhnlPVpIH~YmCDdd z%?0Bc*3#$7GHI6;`lUxYcx~W1aTA}*g_GkT^9?KqEFb&lE5g6>&?znhCX*EmpgydF z1rGN41L;32G~KJB)n-6uu_1|KeT<1es4XL8|`*Rw2%7X#kxVqP=kH81I~^$ z#o%CPf%F5t=2U|@RlXdoilb^@;~xm}r0#v3}aUX*pvSjaGjdKf5HOeUtTZ-9R z0G$^i8DD}Mp5t>Up(`0p4E1x`46O>l$Jz|`m$9zx*XcFHz;q|qiw$nO^UT)&D?j9( zh7Y~qKHbS(ZBl0UJTtFLL})pg?(KK?ZbuN)utROJzuSBaI~V$vwRQMnv5ux0goQ-$ zuMy+ELZ_MiE2ApT5c3`9G$~qzf3XCHFA5r|&O}2Ds8=@5G21!|d+57bBKD z{fAfsTH!mL&`f(^mr$cEm{|eg>!$QFturyV=F>C(&S>ViA>h=0N}RO97ObvN(=zL_ zGpSKGXHcC-X*`Qqo}`njb~%-y2ead|@BaeI!Az7&y2b zb8zWMspqy|4=<~H*wA!$Z7XN zG0A_xZ4w&0sg)=37JH_XjI?9Db}tVTX+VXn4SOaP{t&&6q87pt;|Mv%iMgV4H#SC3 zo|g({nd0Ln>b}~NZEhk}vNit|swIRof40JE18VGo!8ZYRCg_2m_=lU&4+R4fq2&Ja?h*ApTF5#d8h9^wgimfrjT#d`;AR8^VuaARxoMFW5=3W0WoT_z2oo| zm$o^{wHTqLJQ>A#NZJ2PoX%djOZoI95o6BW^@ffM0dQy+bV1C3FT2h<8-YI?&MartxM$94KY*43#dJRt-~~Fc z^k>|Ew&hfg?na?EJCYD|tG3Owy{aj^4g~riA2CeoD48!pfpC%^qy)O@*ZmR8m6PQ!y3Cb^>m18uq@PC)$ zZAOJ!l!Y6@H#|13_m)cWoU_#sYz0aNc|^KqslICYRR8PL3wMpDGkZjnb#(#Aqa~O& zqHryvV#`^?7sJTtbICOa+^Z9YU|4#GEoxENF1o&55YVIBZ;+0%J9#p)T7fiX5pG!m zXfAH;*$YymvjbhORbY#r^KLG;0+?=An>Yh^FqiP`t{z%HGc3fAjY|22a|O%JR6V0M zw+F4W6S++wpP=NUy@A#!a49Ad09RlbX&JU@+|}oVXaDuO5R>^|D^HMJ&vH9;lI>MZ z+gD2LaoB^-poY8xEB;P!|Er+ZjFPGzI+sKhiZ3m-VP2i8ho9}H4ODHAUhZJ-B2YP# z?Zl4ppMy^Tn^xMngV$7IsMAu+I8~L1VS$k~bn|M#}|>w$bzkDXn0MseAVP z!r=x<7By7&633LoQfOMIh5qjMbPT=gRvo4>7k7zmpbPrxo8%VK7Pl1RGbRal*B1EL z9+*_(OV(Sfjp=G0+GIHQLT#TjtRZ1>Y}A%DNqBui(U%pYmkQXe%JzvX7{%?1`76EV z+m7K8o#UPrB)7`P(P~OV%1sA{GM%9Gwn-^Ut$efm_mU>Jr>){HtP&r7uzF3_{l`?z3^o%NOF% zLeGr53zqkJ8y?#w?L+hi1dt{Iq)?~xxu>i|m~%uQ?H#@m)aa1$S(_Xyl_W9{@DbAf zF`Hm?)Qu$-o_i~?Qu8BRd8~Z3)_r<#>ykhU^#{ZpBJy|%Uh~ItC;5bX$=~$<^}gFe zP%=uCb&fB6+H{r7?!M&}HdC(mw6U(Cf+TNmZ=e7}mJ7I31%4gDDdPI`HrM))2z-I0 ze_2*FG(3?3vzTHL$SL3W-d9_n?JFe}iE+U;Gp(*;@9l`;nKsC5tysS)&SX&bF2q+R z$GLM;P*^n7rEh<-mYtKc!2HPwd2*5o(8+4k_BVH~LQKV2dl95xHk`X58PjC^_KZ4? zI5ig>Jl z%kTa9(k?nst;w>U6aSI?#TmOo{}|O6iVeL{VIS3$yX0NO$YB8wtH@8A{NR#A*CYIj zPst88WU^Au;edcoWwN_@^mcyQLfJ2#v7~eZ9TBAn%?)V7Oa4Gaos~hM!pzxHJNY}%@A_+o}}XpolntC z*?{QT&QyV2{cAoheWfwnRj7U@*HLdQV_(G*5tHJ=1bQavdoUlP936TfR^drRS4dYR z3&j`0v|2&7buLgd0c#|)znS|Pd0pr|Xhrad&20!!$aRs%>JYFl_y5@baIASoczsi- zu8Saw(vk=6b| zO>%RgKXKSPo$YaROR8Bk876fgr^V6&jUc<54NHOjG8KpF?ZE3o03VQwiN>a+IbY z5cH2ZcSiG44f$+;$bwCd!K@Pc)JFL|{}fVmsiE{2X|=^yZ(AufOr2?kIH#OTJO|Pn zlNNH;Jo%2YBJx{g1^{ z`u4|!MKt|2kJa$CJBRfjUhYvc(|vGyVGa%!#`|gnFkl)zhCWo4H=*x8B~3$(bTW5> zg~lJs8=pEKtbY#KYaDYp%8&&B=|NB6_D|UbbN8x`%n6X@_ii;rYs~a_ zH!?}{zx2|6Q^3x63BFimOdn<`zY%;Md1*Pt`KIXjY=0i_=5gX)Mb9muEb~gnmP;>H zgifs@bhQ6x3WV7MO3dP}{PuCr*i5U3y`F0f5rC^+{znNtmMTsv@`ktM`gkL}k@lu? zn8ac^8d%Z5=3pl!AT#Afm|-GfJ9qBXi;l`1g3tCImW z$qIHrl8SRIK2++Bkj*|{U`;bKRR_;nI-vFAo;>M^0Khar_TilK>HQ2b|H>e>`>H)l z3f5gP?t!$-MPzdn91y>gug|OKIZ&}2t)DWGZW-w650;kGlkX9y)P@moW7iq=l)`9N z=%x7tg`g42$5y4D-6`r^ji@Ga!;AGATc4CS76Xtj<42Mprbp(O&|tt-ZSJs;#PY`A z0>1vsan-k-<71(Km%6lPxHBKETTh&`_u5;E=!*$5(MD}8spD<6&-2GP9ol6?C}ET1+rP{=RlKjB7(<_^=%?>QJq z>EDVCfoEHJy~LIeG)3!}-BbMm{7`kH;4qB3q4_P&5*P}SlRbi8Av&yA2)&fjsM_PO#pDf-ul?O6{xn<%XNcD_%5B7a`Eksv2cIU8B1a`%9;v-bwP1 zwqj#}S*GSd%2{Jpa~kDY@`&%`h{r;dBQYR@or6@riWq!;Zg-Mtgn!K7H=!aZZl{uR zLm3Gdqnw&n3*G_VR9yV;C?`g!Zp_OO|49;r=k51;1v-7ApQ~_9B`Z?$(3Kc#mlqgana2mKZ z;!BaX!#zO9G&g+-b$d25Q|#2d$GrB`$%}I6!%4uopY8@z*SOl{%DlT+j*>hVF}Wc0pgpFAJ)ChQMX@Gh*E^pYuoQRM$sap zuixV}#y!u}DrRYq{cog(p}*Foq5v0#!S4?bhOA<>6}P;Q9Q};9m&bGUUqmYnphnq% zJpq9XNj*1S){HAu%J+dH%QK;NV|cYye#{=81@K#>uP0s)o;jt>hxX(y7s%`Nuw$XD z8z1!hE2-K8dyjj0K{PMUtCeIofNT<3aGELpC0$&u;bGO}-M=<^y1c!q64N#S1I(Z< zMR3{Kv$2LPf`~D&UV# zzLwVZ=Wd0L)udd>G>7Z1?9=gnlACCUxRpMCuY$)`Yf&=X2sALD>6}t|o>uoGV_@#k z_V$Kc6d$%mAn#2Gf*cqy3K?3rbS_k{US{ob{7;VDyUw)okZoQL>o#rONAI(oC3{&L zV9x-`-Fw%3C3B9O@yI<{hJQBMO8$JvV_o8Y38_8iQr*DTELD~H@U7YTAKP?arW^ti zi)Nb4;i&)N;1q*VEpmiodQzxnQrJzcoVO7%bVCTspoKF5>^2BPioea9f$x>0YOJPW zRyx3gb##LO2xfmrst)K|P{%L)U0_lB_&C)ssWvC3*Ke{~WIvOz%9BsV!ulJXHn9)zA2H`sCxyAned0$a4=* zWo8BgCv+2!tEXsckkb#{poYJltt-ur45}D&REl6ANr2}*v|?n-&Q38Ch0h}ieuD0x9O{5!M&+V6N&)`fn$;l6qLBTKIx5Sd2DIGTa|VKXk$~4 z3|f`Gsj|1j`dtn$uc`(C18W8umz}eQ`(WtWx<#9}I`HXnCVI&IfWp0{C9t69gjR-c z@BV~6IVtlVsS;RqLyX?9%^1jbmS^)jl#V~6bnZ;-uX#BUeG#jN2BGusv*#xFoTqDX z=GUtBL0srH{&LRkFC20+bMyO>aZX%u;BFzLGd`c*cg@o6=Wnmzl|dlVvdfJ;gk3YL z-U{EVN;2^uxNEPMiWo?ku_Yc;m$I-k{8gM=z#r9b!cIn7*4kns_nx{qlk%<7SUr@# zB)iOgE;JJBEkp?M5y8eUym~}^fnNfCr2rcM9zD3f4E7YaFVFr>A!xXkkWn76>c@jA z-%r`CfuRLmHUb8)TkeoQfAum8XnmZ3Yf#9nQ*>~w{1w0YRX?5U)@ z{SKHNu<=PJ2Y>?kC66O-h5q~~YLk_A9mHc`J^EJwp8m&?QJ-_VQP-Cd6JQ82DBTAD z*g-`)eng3Z2+}p4#+%0@e1xO&yeETP-L3xbp|0Q%bO9-_nuoz;4ESlr|33eK{qNT) zPF-J*w{5sO>JwveBH0${8in!)@Ob$C9nMhMFtGW-1nf{OCKRiF@jyBV@x?Cs!qvYi z2FzQVeiPlJ;@1&ddyHAFru2vpOqwi5H-X(%l>a@^s?pz0AKYS2JV5)V6?

%n$&y5a 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

h$~>2+hrh=d9wC=~>kJN^gTCLb?^*#o5+^`0 zyvjjjYTlb*%1te|bGd0Eo37euAhdbDy%}fHWys{9 zaR#L`2nDSroO;Cqb=J|kb0Eo8s!~fy&U9I&nWQTNz3sv;aO0nX)tQYFI0?v!oMF)@$vwTE3`|Kwfl;GxQ-({%+J@7>KyOo zXQI>)5^6?lZF$%s3Fkp4%QvoI$gVKm97$FHFt-yo|HOEpVa^pEN%D=D?5#W^p$&)|YR;6Lv{pOYG@a<{&m*ZauqmVv@(v-ufbWm@$j;cys-sW*%6cH=fPXo*YMl zxumLt@rgV1MRqO0ktM!xvGa*?tI-9e%=BnuZ_w=+lmPDSE7LFD-2QZ&=KAG%$q#2& z>m5h)>`kZmRZv6(0E+VM7db)cT2i@x?zr3kxHBau53wkp3wGSj240bxEie45!^eAn zx5RuSJ<~m_4R*yj*tF3CHVxpW-#W|jseT2c!(G z==I<^cXK&)*RIh_2jYX9N?&Ad*X4To-Gbt7V*j)TmGA8Q{Fjy&)5HU^L6fATxbgK5 zY2m+7-~Vp!B$vJq^|jR^p7KUB)jdkX1RW-7D1%_D?W-jXKQk&i^Ygcm4c+7#;N^>- z%pw>0J+6c;T-{Jpbq$}G>E$g~uat3wZZBfaM|0mrgp#b47+CB2XL_oF+iQfi=puIK zr6R?7&n=3#abwW+$!Czsq^9t$Q8ZJK6MxlWnW_~^?}eDvh`iX@XpGEykUWu+j`of~ ztI4Z}|Ja%dY`w0MpmiTkPeXL~bxDrKPD1AZf&&<1 zo*l1%hl0QGJUvHM6UjSHfY}&>`<;w6{(gh_5>9@|-gK58+@ZN4Kivc-o(HD~_vIra z$5P5WLkr!kipw7^?5iVnm}x#4$@w8;P!Nag|8f6D=Z;=s{{%0vUj@Auw)1_Z*q&TC-(d9SZf%5T%`Q#4Nmo1H##;3fB_$)HNputSKL^e6(3-nyK44>rdA!`miV(r@ChNW$}RD$e}&t6m! z4RG`Qe>VWBoMjf1p@=1acE(!0jBB zbR8e($iC#;EUszrXuzhfmF2)*KfJ7CKC&vs|=VcQP*iP)Ut6 z2xk>UK|wC*>4z78=K4m5J~;>HOmz-40QFU9V^w^1R%p(7a=(Fe`O#{pl$$wCPY2w0 z=@V0{-uC7G1P@aJe8~7ZELccKU}VtjJW!7q9cSK$E9F0h$D+$Eh2}T`n3Y?cTeokDuZw3 z2w|_BxZx9bl#*N{!Ul(;^*fS~aKC!_c|ZgNuiusl(u1_dn`Gx2dK<~Myz?;nSFL?? zx+9=S-@N19c62TBVGRkQ4Q}W8?cHJPLjx&PCb+1`iBAUEazKx~bx?%=8hlJgB3uYb z=E5_qAVk(Lrz5IuI<@njzS1dx7u;+-N$vUW^*!R;1S$2uJ@yzIva1TNp(b@706Y^o z*~jv_=6o%uVn7%P?D@V1i6Vxp!6V`m1%xNFF=v#~?ax^;Zgsa!Fiig!G zV9(vPx$&%5DxEuD8u+gLZWd=rT3>LQPmt3gh`#3!EQ855qP-H6_c~D=F^A>|S|&c2wU|w>0P#0|JeVD9>oc1$xUm zCxq5^j*|r0W?)(DcyM@KxYjqLYRFoAk947^UN!P%Aclp3)+q*Wujo57f8p#HQ&V#~ zve&dg&}yOD`;4of##e*k53QB1pEppB^Abg8KzRt3ORSIgkqZJYr87}80sOw;cXMI( zRt**LOrpwYz~Uf^ff_2N`a;!xTW$NL<`X^OkdN`U_D0qjn%fTPUIK6zfs-rwRZ#RFdbTU7rjB zIVBA2FnCt=-s(>h@f#bJuYy7kELT>%OFEFfsF~vg3bax#0FRaR>8lxF&y&7Uj&2l3 z^{v5pvT@L|>)KyQcv#OR<+gDJj$%^2d!SeGgW3Q#|gy#3la}t?}K_XgnBW4** z)E|k$`Dr?za>}(y-yD=2YfqX!og7e^e$JrSCh#Z--{eL0X;sCbzc@3E!TI+kBw)Um zN2-HO(=$;gh2m4f+TU7+6}EC!)YJmLW5VO`++5DXLka$C3xg1xXAq5s`m6q!0sY-9Oc*yX@{x>;2+BhOR`<1$hn9BAYV zjt%v4Z7&u>YAsFsvAv7&#(1o5ftkIY;RRhnyL^0e_R(0_UaZ=N$h?X{_7Km&(Y8hk zRC=qK-@3!_ZpM8h;+~ssj(NY=R;IP*Ro(GZNE6lE#F$O`dR)6AR0Pd>AsP1G6xX$| zw^5A-7?Dyb>xRVqaNz3&E_o2WoV@; zwQ=MNv{ChnG0B4j#tv;vf(EK5hw2TS@FyzPx)8appfw9I*Zr|o7Fvk_Hwwysdon4~ zuisa}$o%IK#m1q2C&=Ff9zrvg6ak**&xo>Uq5#DT2I+oTYm7zt&g+c1f0RfJtZKv0 z8ts6!pz%@wghRmN$$$TeBPu{Et{c&E4Z;mAYx96hKc?febu&{1D z(?{_0WVA_80vA}gI@KD?kKmfvY%*t~V0?Dy$YpccqSj=vhycJlVD3~B{eF^SGqBNj zY3#lPZpn3N?28Y={>V)}j@SfO`N;GRBoU8aowMo<=GjN$0CT7IcTIb5t?87~3`6J& z|2SWnx^{0W#ZsCwC~Ft%cdQv%KNJrLmrneObm-ya8@}oInJEca?P4be4W9CSm}CA| z=Nzv}*QbxX6?B`G>3~y1@wdXnIh(ocJe9}42j7e}eqmhlxO&WQkJ0yQ753VJ2D^Zm zijEOwoC(UF%fBbaQY$#FjoZ6u@XC+Z5p;8*T1R2q;h|)(8D=)xv~NYj^@mGve?gr? z#=&|h)RbqCy$Qc@d9~c#hrp|-;nB+AbuJb?Li%WT~YX`94U%GQ? zJz5h{(K}22@Ud5^ZTyfR=SAxo)p+C<%a}xd17F=qt0H9#HAR?=_W-B(vCm>jl2KdH zgx)>HVyjg~0#zh_|JbH7N7lJOK^Q@34mHAX~%Q zJHqoEE%Z>kbi!(s)i@AV;tn3Zut>#9>=Zv!yNk80ulqLRC)Z$ZC~I8@Tre`feNm4N z;41vIRTbKg3RCKnY`?ko_Jqs{am&T`?f|xb6oS+XKH+~7%rWbdvVAx@-nAcj`nU_J zI>_2fum%I>DTQ$0q9=3Mk6hsFzTS)mW_~PyxTLt?BeZ%9qV?omjCRQis;Pg#&T&YP zp}vi9@d%xzABwv~Ms16$m8q*C4Y0R?l`89f>p}5Xt_zsu?G(s1MV3Q6AN7-4f-D-D zzcI&BZ8Q&>?N!Y0wvF*gHQvUmig`-Bn!8+agM}YVUo(Bsl-_S>h-+WH1A449*2KZz z0yVO6WlJvp5IO~u-DjZdXR5}M3|VJ_^n?*>cNIc=c3x#o6(p1*9qk!!S

Q%_b!O0=P3IRVqc)*|G(HR%2{6OINq{natvufWB`{BAPQ^591JuYAnCiuNVlCFcO?68~t(ae_ z>1M%7czyOZh-v_>i@9`L=FXrBfa^h_>;Xv`%LonBGIpoz`}_T4S09EU#Rn8r72@KF zR7IZExY#O9{cIX-#+RXK2f>O0Skjj45n%YM`}devUWA;hKqETXuiPCU<&R0kmZc8=(5j%qWI?_=s__KvU7>Zv zMp0t;XSrP`%}sRqX2_j1XUFCszX#F!NQqQ^Er*&%pr=(wkrqokWNBm#!Ys{+o-qaU zd#lQ!utnI;cfSu7U!5qS41!N}J+(GfD&g@@>D4H^3LLSF3Uu;{r%w;{@v8vJ(WSAv zCf?l3Pd~-x~bzx3TI9C(&~|YSg86AOM{y zEv&M7{jKRWg~$&Uc27^zV3xY~+!-$*ymCO# zEW~!NTOTlf!cMlj=eyHDO6*%S86_%2R42pk%_1YTNDzObGN&O)kv#{3{wNr`JA63g z#vsn+BlBD{*^wLz5sV^%LRqz;{^^Fb(hhlM`K`}@fA4#mFY;bh`Re3X(kQ6HG$M^% zQCHMgn7_b%j?cY(vA^71(~gYqWK52en$WavOTz=%mOp8z>hLX27masBLVTKvJ7w?=^ z$uiQI-HCe(@r~`C99xT@^>%SJ8{uXrFRTjv{XS$|4K4ZgvE25)@O3Joq(#Be1Jtql zzrGvZUupE z@X2iuP;NgKl=C(3(VBOzpk)q1G==2Lm!J4rf%_q3L?#I73f7LX10rR^xgc{Vpg==h9;LPPStjX^M8d=!r$C`D`V+9*rzq^bB4x>VU(1f{ zopU!8v?`X?c}u~1!bYZ09Gn}z&=jxV?%@68%m>dqy$(CZ0mW?} zKpzbFV*c(GaYhrSm8^}i@XB*<$U7M-p5?MlFA{m)4pHQxNfA0~2ngbL|AfB9$(+$o zTmN(GS*<3akF?=8owyFVbVb})Puvj76{(?X`b7xC`LUpo&{ zt!?Jh8_Y&;=b3GH^x!+cfwHO_`3iuQF^oMD2u#AHzE}ONCacpdTDFF+B>OoW%2+Lhf30 z`;*|gmNrSk?(r>Tdx7jUc+DmTlU9i3u=B3>9aVpsOFKD^i`N_btm*}wkXpi^K`}I2RqvHhsW!l8O6YpcfPCc zQ%e06?SA+9>lE^bFR#bxeCpg(fYn_%-u6azPKbGMdw8M9YLpR?x)5?ZA7Lv26^n~o z_y0=k%W&wIK% z6r?XqADrofp0@uvyD`Y#}h03Dq<)?CW zdR-B3qlTq-c+svj?~-a$#AhakUXyt4#O3UP zaz8!sY6O zeF`^ewk_-j=F;zn(@zFdd78I38m(&Gs%w+dR=W za!WrNwlgetV@Jv|9(hV7pr+BNtP6b?{mM}rK`Iy8{6)ND#~Pj6Y07ZiL_6H*VVH`6 zmeFiMhSZInI64};(_5Rem!%*eA?1Vd0~+LIamoZfIo2Ul4nnWh3Q@YLb(?($<@(n?GPJ{mOhqlQ2*ZdRJC6f_(i_Us&1j z_i7b`v_84u>9WxX@DOrn`xT~wN@pk8slXFk9xiMV6a}$qAIVMJhig#FM$YRYqZ_#d z&F!p{cA4R$z;#7li-M*&V_!tX_3msm7q!kGW`>E#8GrV?huVE!LFeP$gDJHTqf1fk zfvhK;A9`g6y?m;YPHwNVLG{u&SbU^o-`@OfXQ;~v_t1muI%U?-K+V2U+vtxPpA|BqT-+Y3$gd{r(u-VAY0gt$5IGaG!X>j2p~#|FVHf4$z&d%5JNuxTt0%?CZH{*$#fIb~CA!EHnjDiV-$7%zdgtl zo^JS8Cph=X9H(`b#YwgOu`=1OqsVikdZVP1U$$#dzwOWM4vX>3ZqVTxtx6j_u6Say z)Bd_Fp#H)$lgw#E4d{Zf)M*}@1J@XSm8Yk#0d7e@Eh{mV@8)Riu#Lu^pN1b$%Av8L zbxZj;I?Ijhl(Oo=1-)XNY;MSBs@AcRQmzHP_p)Fi()5Cy^GJWgbosB2uY@f$5_mj| z(B0j>M@Np^USE^N{{f9E3zeddu6t8qp zYlNNh+IJzw?7GEuDEvW{FqNEVE)(hyXn^WtEq5wjlL-T!cL}sJnY=!oq&>67H}d5= zp!)=F*RI|%nwb4FKd7v$R~{Q6W%Oa(cR)~S)Ll0s@o^U0`8T=d>5|_0+>!=Cv5(LJ zF}xi-lW}v#^0X{4EB}bZ*h(-_<#W+RQz?f&MRi`ud2?O0rL3a@KQG8LKzF;nJ^a0O zjv%@7nD64{;2{eVxxODMx+zQ~#=`Yk;u86D{(+jc9#j*-&dkf?wnw`m2v-`J#zmIPHJ$r8l;}BGF6~cW z5flO7a6p6C!5?D!hPT(Ya)UyF((q%pLp!NA)AJIsT%9Hf`mPt1iPQg>UE?Z#5g$-G z8dB#xOhw^4(*jm@!bQ$`R97k_Hd8-5pTJB$JHigCewz3(+TzYesJRmS9vky-l2Ns= z+UpPa9oNu;`#YHbA@{yv?W73PuoL&T$-`5a$-DcM>|E|;JpAOHsviv+>i!kvdEg+^ zKui&dT_j1Qa!2gpbar)~?ot-(aUj~yNq9i<N83l%>6?8A(s>1 z#=a*!c_}v)@-Zah_yP&NN}QB0ReRsiHX}l>PY)Q{`rzP#QUvEx^1}49lZw>2(UH+M zN!>t|K@j_RRY&6?BzA_+S7GRT!;Dk&4mAwco9Mge6N}4n96;4%nD;ADm?Adh|{&>-vq>94twg+uW`4Eehrtpt?Ci|2R>l zm;_`b$+fV}H6&GQJJ(Qrm+-pzpdd!2f8Da#W2SPctfxHm(5?khy-Ya7bx!@h5pYcc zV_nm)8M8Bhl@(=_N9|UJL3nxyM_b(i&F_aX@OHUK=0dr_{I10dt|%h*$)Me9az?DY z!`x6Q3HAycfv-YtS21yu zc9^zjuvelmg0&a_5QV$*C-#zzauUTR(ScB=pPYRJyHycV;L&YOdOeH*LoaAmYH)u9|+< zuh2pz07SfA`8e{TP!RC2?ITY3KuQnh1}twECQ6pCdbm+ko~B&ypBY%ksk%nrHJ6KJ z{y{ltC=Lz}pq>m%2ApM6BGyEcN@wR>PvAV@n$ABP9D%lOn~=;^O;#*@7(vNL2ABRd zBxjpvGFi4%zS1cdorj>)_o$L~<~hw&?e%fh7FWyf>t+khx~kD;!-0B$l0$AQqjzE@ zy+q{?)N*B7d%n(MT@wd$aI=UL!2E%*c8G|w0N76z`4y@Ww-cUlOK|Gp?S@Cn_+Mk4 zI*Pm2(|AG78TEt{Uju8NB*eu397;7|3&tUW5!7z>`*@;8xu*xRDQ^tvoW-$Z-fVH=y`!bF?;;sqdD6j8+=T7U}eN1ICnc8r8soVyI9wNY1)0~#O zj=owmH&UnSMOBqvH+&UPEX*NO9Djx$MuHm#@J;TfTm=<>J3nvy8LeaQu0Cn*iLkd! zy4Xx4x6(3EivC2EYfz62zv)zH1f^Vlb?4P1Jg6$f!s3z?#Ekt=UV`HVsHBMvrlXH3 zhDVbZ5NbLFL2)uC-UUSc49Q4UXftwk@bP+z0#P?_YIo}=yfJ>HWq#gVTE_`@M_!N- zwCxt7%IafW6-Xgzx~-b2M`8dmkEc9}>Qkvozmz@yOEo3c4yFcV>QZs|X8qkW?X`Kx zqI>5M#xAIXRG=_`jRAaN;@JOOWS)j;=LX5E2R|G00ZrZj;0eZ%?oT({@@B{UC2yt5 zqcT0LzJ>^LPUOj-F3DT=9Jqpf8Es>|`kvhK4d9=To7G25d)zhcyL`H^99!jld^ z%%Zt;D(F(8dWZa`>`byV*EE9H#%o6R4kPHJ|~;zUF_ zo8%{cALb-c`F>KgAVFJC`5a7k#%F3Jn5X-PheY9jdtRb#T=Ce!pK*36+01oa;?Di? z#>w%XZYsp(f7LFL64N@F{Hov&_s=cA4nYtGP=;sm^ey5!)nmj~m<k=Ml89ST$9Swt*iL68dkcA_CtL+ z8Pga+$XxbL-Lz!-1;MV^RzZWkeP}5b_KH;UTe!LAyeJiR^Vup}I$@=D-@XN-Gzq4J zd8uFGhspxEa;@}!@|FP#HWuQ)Z*R%v;*6!Nm~wac&NniUguDxMcVQ|_D?o7 zWRl64~AC@xQuC;E-%O=Eu0Ga>ZYTrop*`wwFnxOTXL?M5`w*w7N zkl|=<28-gvK7Zd`)qa{cI&1qnv1eeO=+M)zUsLY@IK3dFG(1*IPa?C zT&&vh+SIjP(;E$(HTSDU2JO)%b`N(cqxIn3i(g^CKWAmP6WI8~usC&?wo#t&#o*td zn9S_WbgFm6-E&=(ettQhZmn+{N85r}2S+GfxDtv<3+|vI0i^oo#SU|H?()w;ShM9p z)hzS$cPUdo;Jlb>2iS&fH!&}cQvA{d#b-aata>}=EvSde$P1NbT2+Z5KWMS~5yb-w zo{8y74%?tRoBF4Py32kgou%TW<08reqo%1)s-g|J3^=t8xv5+Fcn1oVWU4Wfye!q0~3$D6FQF^?wjaTN&v+p|CfN)f1L z`d#nhv4ZRG#w#+m#F{XGMoXV?NJM92K}SuSI#TtJWuxz)0?=}gR;!Ewn>me&OkRs} zR?R%P*!SkqzHd@JItlQXoo@TmOAhn2F5KgPwnKxNp9-kDP)g#+u0Zk;Vm-DUA`Y7yur zD&6DkSrcgU-=1Z*&sg`QS!YjEfhfC!+dVH_^;bqDoKCWOo-M)gohl;`jcy=We)EvW(Gul=FzV z`+gR)dpJQxds9oLPPv zB(R_N4odin25;T%A=ti3xZzXIP_BQd?RoetW3-K&b-%)IUbvVZ0jwaPf%}H1`K#!C z+$(ssTy}F99s8zT8&~-QKYHW@?no&(FEF|3j#`lw41$J3f-=bHh*`*`eKYmHZ#)KBZIkABr#7Okv z_-^W<3Y^5^?YpZJI}jh`L8{+&VIqq;d>*SP7_@tn%YH&k9P)@)HIodC27LC>89nO&W#UX_2Gc(Ya53g^?Q*gJ43kO;oRpK6EKy% zwenZ5fJGkOJ<0%edKGgr7N+(3t4d@PZPl7~8wF}_d-X0}E{T2nWEQJE6yS5m+jxCj z9!baSdMTij^uJTut>#YeTUISjb-D*nKJlEN&V$mSwU0Yt3-2;tk2^Z%8p^szO(4Me zbJtRXV?9Y=YVu|w-qqXrCf<{ypxv)ExT{NET`y3@KcMoY&LHK2u0FUE_fV%-5!Gqw zzGF6siVCN!==Pe<;_@%LBU=eHH1<@8<=~@(qV0oiVGt2ygsiyHkyDBeY@y99+Ao$< zM!?dUqi(ZDyQ)Jl%yocjOMkjA{zx}ZD&Rirr#-{f@=3kdJvFDvBpEk=5CIM^J+*VO z5;Hiu7Xwu>A1tNXS1Qd1tTupu2N1s2m#Ht|9W?^UrEZH+oz_4~j!H!nbt0rI8<_)9 zBZvAS<@-KpF-)pDk#kXQjz*l1<~T{ljJa3p>8mqv7kMy^^PnL3_u7#$F_Wv|(La-H z!`>*yF!IdL1}c~HENN(Dl0~V?fu4g3O*h&SfBjJ3Ny7Q2?qcvnLv}~60q&6!ZrJ+k zj}?|6-#`V8BM#uhSFWA&aUDtxeG;Hr0}aq3$dMfAPm`#evDuBe*KrJo7Lipua+7hY4C|3UXCVyN>jymWEWilBMehUbshkr)diJ$ z8r~kcl@Zz2YcTB8Iw7-0A@;JIc{@mNdz46*$0)qKUTS)-_dqEv-@|Q)>ofuG=Bb6} z7B}8b)W>pWj8lhf1wY&A0~kK8=1m$X6{vjvuyWXMr!u|7JXl`auBPYlw{m4bg8{qA zHeyP(uhds6j9)V?@U*F~9;m3m6ADvp9)E>b_?O{diiWMewec6x4_Bkqfh8&U^ZDYuh?(fiPqxoCia|}4 zN`-0V9oi}A?kVseOn;_sFB8W-H6seMY(yx}W7NvMXIz?fRf?x(J2#tc46u`+fDeGl zqAPq<_po$&J#O_kQD;v2M-`ONw4d{6L7^rfgN)RC-LGj7UJernlLr6{cBoi6izZ`& z1z4_bKsJrv`rh;aQy$u}0j}!Sw!_|nJY}jk@sn$D3jEjT zF&}RqKSLPXdy1!u*++O(+u!{pyFA$}63}c$!^xa!Ov_kBwV&9-hDqkUH1hre)yKvN za@E5h24R}J>fwfR>1DiXbPM~Ng=(OJOd@~&%ioEadg`E)o3QCDA8&^fhL`;jvYC=(ZvTw9!X+dx^PpSV(#&ZkDZAd)R7d z=9NHpKk#zQSz_L2ZbaFbU)2x4$o3|Vb1$!Oa=bonz+3o#9i59m)9wGq`*wG@OKx|B zq$q}RXyq8m?(T9vRNNb5tQ_VPYa%A>t~<(M7GgQym7F%GIgG;YoYu_9X>z_DrjW`U zXNUWD_4^0*c=-5yuIqhxy`C=&_&QSIrzw-ZqVhVp{l&cn7vB!2E(8{5%z#(+dl!WX z8rNRej(;rIKczFE;aGKi=z6Crx4y-FFtseaU*wEKCl~=Z9cYwA3V%4#UFM+{dxs-N zb#LJ6{3gOd$)e<~mk~gxMksins~OvI$ex~CQaH*+ybIwGT;p)q-P5XQ9C^i zIF8BC0(Kj4Yit<2IPOUe=wOx04ad*BqJG5hkj2K)nPyb?{MS>Sy#d51weq#QWh5lMVD&@56sMwBj>c z*|^UCour9|TflP3tZ``G4IEAuP?sd&X!MspU#D9TSlGMlzhE`&%V^|nU@NW(o3eAi zRLNt6muQ-X@6S8BvUgf~DQrY`eTe4r$|9RRlxl&N(G*uD>o!0E6h*JK>!qaKyWon(1LYO$#h%tY;v#(v0ko2v)$V$m zRvBkABZ_~QoehK=!DUA3Hsb@cl<)kxPS=@j+Q0XLuHxnF@uEo|g&ewZLj#|h^SFY!)!#KO z%apK{to`mY^6O0c>ovIHl!o}CI*(8(A@2 z#X0-42e?ZLZwb_{a!wn15^S`(>Bm!ldv~G~Kl!?eIM%l%#VR;DOb8?ZfzGI3%$W=m z{yeNWyi@9U76qqlSMW;5018x~{P+183YIVMYQb!V14lzpKc_K(n`4U#OywYdZdL3h zUxqiB$U1I%0GXmDSjYXaaFW`e>W3UJ$SoEO{RN4RNrn)Q7c@`Ts*cT8Fa->MwUO16wg&V$HGDrnbp_e(cCxMuSq!e#{&@#Pa%3}nVEAs!y5n>blHdi20u zKl9t{&(M$8M&A$Ut@h=DCSh=dtayiNMyQZH5;5?{sz5;867NMI2~Qb%TU%G{Hf9x! zK~w3#zspRH0?>(HJL4DoJ*~Yf@YpVUV?==hmNp$2X7@^C7G)pNHiNMA^PT%n4f^=v zz@Gk(lU96vj&AU~3nG9YTqH|tp6ew?u8O@UeSN;~;x7ge3QKW$0h z>29!PlFQg298=?2lJVDo@XZZ~u9hD>`v*YtpMPI=>lc|vQzN;x9+2*Sma2-X;#pKH z@Jj}G;0a}?=}AXjw{#Xou*p?%fg2^xkx}4@n1SSS(*q=XfE2+M@H9HQp6`L>D%g)~ zgt%7)e}5BOc#R~oKM84bh_uhznG$%*+Dy2neAmGtB8x~>w z<}gRCI3G3&hkNNZp&mvhugGWxZ??wq&6W&UCo1Wf9=aD;uJTsH=0p=N=ln}cw+T64l8fK^z2+}u z`Xv)Pw-uKZi(CWk9?ohQT;eCWO+Wrz$>ozhg=NTz+q6JC6XTRiUCEQn@D!C3>10_zJu3n-s1#9SfXM*kD zWw~7x5sIqWd#G6FNu?pY4rKcTjBgckShTwAhikD;gx@_V$iq<}smoP>3j5Ihpv91R zBt_4a{IWTgz}v2VZ?MQ;7suusTI;g<4AXTqp6PXxH}NKG(48h*!`xVSM63e& z^;I>vTen1D(Oo4#?moOfdrC07xn!$Xap@w-+38%LjKH1=5ZtvSc?dZVPj@X4I;9W% z?7yMs?ImZ$kfn)qSd7uI?K@Oyi?|`Kat+oGr^X4Ne(MC23!7UFyWObEskzTlTbSxy zEuu#xs6Jjse{Hx;l0CXooRcw87e?i1w8zL=bvMIZzlhvcPwqjyy@h+tJQhtn^i*`M zGZQ58!Tb-|pDVjnGKn7leFP!On#sCwq6nUmY%(@KE$93EM^ah;U7jGONfs1;l9AWp ze388tbPRM%TB(01k3ye*i;%vhxSYax_0`?!4j87#(#Lob=SrJ;b8K&c1Eb$)xxzY~ zQ?ewzJjPfdluyr>&p$w@UZUP*vTnIez5*i($$^^dN4;7~raJxQ*-s{Y(=W^bl&&Tg z^lCoodwMc9p2t~W>KRYajq zKwJ=yvUr#iY;KXWbbvWXbR~84GgZMO*y#O3>HC-oe~o`}J?n+c^Do%52$3%5GY3+T zL@_x!Pa?N(MgwcP?w$&R3ZM68UCEIrwdt-YjA;-m29$FD)+rVmN$PJd-^T_*A{$%` z@4h=I(vOY-$_TE)`%^|BcuX^xbV5>x81by1TXq=0H3D|j53T^nM^1I%T-qn29Z(R^ z59VT@zmI!NkB{L%tjM=4APVE%H@0%I{uTPHdF$?uyG|dJ^*8DrZcjn}r?12AlVm~T zs^2!4UIWYfwUhk}-O%u=^Bs(Ee(z9TqRgA=!*+Q!5RBT?+lKFi_c0V z->$zMbWP3no?dk7?iqxxfacXY>%c+FffKJA3Ntf{46HZs%71}jGAj9Kv+xFg>@xmX zvT*`ldFa9TR?-AnJl1&mmPODTdS=n!44Mi)>bb?{RUm&B0CyOT?e`CVdwm6Fm+AZP z=*rhQVpebg3dsMPVgO!I^WeQhS9-S6`yv8p?o~s|N#X)WNYeD`agEZfixI^ir`fnW zK15%)?RKF>?#+}kg{Na~AXZ(6Um`D=VQ_^yS?_7rP9<2TYCObX(k;$0Mdb{Ck|;PW zsf0_oQ5(?Nwv)zU=Y@a}K%VdA1`X+j3+wOezEvz{QT)~F-+V`4zd?kK=|A5}t?BvV z58vqs+5E8?z>amu7HRe4BY`?LIX*u2-uk~*KruM&5Bb^u=hio(W>HfC`)a)$`W^0K zUHVS4Oz{L`ny>_B3ULFxuymKVh24`n&O?x7O6?GAT^*Oj`BBvYX-U9{?t(u?$O>qBj*E`=1u2rEbAXf0LmK`0PcRbEeU+nab zP(-vCZ7KuofmX*M`nv2v*r|w%SWT}hyvf+HfKV+WwaL0WPfSNR=ylwA#76IEJD|2?5!+79&vuRqz#gM zCvqae2>;<+y06-w`rTWr@0Ja&9S>21L2H@+J1~pk8tmYh+JJJ&IMU16Y?Sm~jw-Z? z^9(kF_iz*O_(QlU*5XS?b=}(>$?}}U#V;(`*RgdFbRlFzG&Jz=Uw*2K9{8fBdP{Wt zrE4@Q2aG#AS8);)HNj7s+ViIF-nTusM{aa*WQwO1%Ya?u?7q7(BMU3{b|g{Z^hSUN z#cO@zky6f;i;EFLSS_<%S`B(+Bs6qa%JhUb$?;`|6GpNMxM%GdGdI`7GJVc?0_S=& z(d=_WnAO0QpA7WN#aZBM6r&t&>nDH7S6?%*_p5I*Ne<6>{8ercu;f(*C=b$D_xAO5 z{#ZEuOle0CTeW=|gbCYy94HHlp2~Q&80Klth9tA{mB?hFywGh>DOKSjufloK|1Ec5 zXF$p*-*wq;idIJmvRWSjgMyhh_K^Y-ARn?@UulAuwp8^83+s}~iqBfAQwAn$CY?gJkW!Xr^;%pxcEx!hU^HWeF$Nl7 z#j%bCgAgZigd3g{A?$@=$)l+F0k6YVLFZX9@5$#Ub#SD@F*vrillCzoQ;KNjF>bqO zV9iE-L!wYQTne7u3$|5v$JfIenC+efGpb$j%M#|#2TMYv+i14t8WpXq(!Yy$cPdLW z4>(s+`heO63rQpiYT>99ilDZp0858V^@v;LNL$P&O?Y%KNK zRACDLaE!b0H!+HJDCh$q7SZ_)2YqkGzg;^^-3d1_E(akxJ3WLR%7et@4iRhNBE7{g z$B1}V$^B=gI1TI=g7s&XfyxV|Mz=?Kl^*1Ox+kJUZf;Mz>htaFq0W>=`e+VDsLP{Xn2tOiu2D^#o zq|NHG=y~mbk6D&Zpw(E?%@c8yU=fwU3u7jdcE|1f;d(q4ggTVMv)IpK8tV#wG54#! zOkDDE<34=f&$K9NSY0Im6Z3_rvDe3ZazZM^+?NfAENTrOdA0x=4`dstdg4o?_urnO zJUr|dSy-)a0+UWH)!KD$Sv%$5>5SBXG4ApVDH&|S{8}u9C}fy^X3e3mYriFJ+urqC zs_zJDZ3cjzQK4gI_0vi1ra@Wmw~@wF<3_rdf(yO<_-!D!M0nh8{B@_OU-w|BCNbw) zf(lHQ0^R}>)rI%AQ7ZWYg9U8A!Sv!z=Ew@@>E+4x|v&ftf^40$!i@yRVEcQTKW zx8bRbI`26ZZRW=gvmyAkz-Wz66D_~Qg^iG}4<2(gmT{lK-z9ns&WV}{xxBOkQF}$T zi^A+OJ)2WNhXf(Ekz7C*G9!uI+92us(FU zdzB7}Lj$M3r|+M)iye6|&IxFy3}=%%b}Z|7THw(>kkCI4aKCX8c<->tJ^y)-N)`{6=jT zrR|TMQXNgas;SpWyZGSxK0;e+N!iHjJLSE4ZGV@jChOu*$S<-Ff`3C-AgHfgk*Z~52yIKQ%6 zigL!t@pl_ZS!}ReU=E>_qXh-2!y=f>Xejc^NjXQ?o?|T);{1I2=~&a2tGTm4Jpd+3 zAj)ZPERy%_3@p!_?iXRkZ%l`+ljoRZC=bo+?r}lz(dQ-h69LP($jH*JYP!OP-YGcP z(&+0DI;wpqX@$~p0fMU&OBvR$J!=|MRa|hh&9BlJ|ANtEO;<-Pft}0vfH=yMXJ;oEx#TY!+qB(?=UvG?=I?kO%X=R$pC=US=%_(85kx|; zQ2#d%{hr>GtsUQliv*`&zxh0Jh5|P4Qm|t$HY~J8-Knpq8O~7 zZXv|$djIWGFoDt-3Qn?K`?EFUDPu*IRE7&e3@+kT6ZvfqT@6{|=c9p8-%H^LxDYk( z<-nM){M{xc{w(5y}BHc!U&X|Rv9F!>qR>xPY~+M_n`ip|D=f2^+l7oIi=#?8p|u{u}*9m-bC5FDD@DhBMY5;&|Ud zv^h>peR(<0@_ZjG*f~3tT9R;+9!nG?Sd|Lngga1=cTd zD&pv$g7#kWn~7`3UANLi2YV9LR=w$|2W8QN*y%AUloE|hxnKYbPo z(d*;VPTk5Bt$4hF4)mp3pNuwLi}|$ls0}O|QCC*ONpNv5!IU3Mk`sv?hMP z^DtuhMxq7f;A%<9s?D?vNMlW#O!SuAZfN;XujD;6{K6HJZ~(FmYOn=Vf#D;q^ozH5L|VwMFV zC3tn~^jY}=qxyW`bzi@Rk<7Apc9L= zZD~``iU^%Jfd{FBBDp5A)|5IKn1_!W5IWV7mOk)3K-5~N5dFih436YI#J?@7`^`sQ zkK!@C8=$w!_;6p7#{$XHIy!`RXaB&-j$$varM`_^@TNzjEaFr2ZTCE-t)>GCAjl;_ zk@p%_8&qazuCwot8g36GU``e{YHfkO#8o#+ep692M_#!1s-pPCyg2Nr`=`tFP#N{; z496wgE_ndmNvi5(OBA)AojKV;=qb!H9$5%p&Ntx>Auu^0W#Z_#7&w>wQ>_;FVH05n z>lZ|23nl{*fuX)xQ>VWUd?LxG6$660IMd7gu9m7M?K{zjtx{`!iJE*oQdRNqa(0&m zELc=5rdDSe^5w1mobW_el|(EXUi%JcnBuB!6lAJ9Z(@RlSB7$1ol<9sGGoQ z*^>P;sK;_g45!@aDbXPj8>DMnaY0DMZ+duYrw@1#`Zt%SnQ zR?K6Gmn=|lM)&(&-7)EIejZGs-b-RrSg>naoIH@MkfnA#^LU>F?}<+TF-C>w9E}@< z0uR)enY~AZ_H1_!J;(6*>;Mnwp9oWq->cd{O3R9$v*VH4H94nRe%FJ2Rr*~cil`6? zg}s%IGHLHJ#%_b0nn-uNMMf~LROxI-G8PNbB`JpiI&Q`H`F68n#Rb)~MsLUaf-ibm zHMd-yTh&dLAP#GqI9S;4Be+`!s$;-B1b8YQCz6#9amQvL!Dmhdx{?&*%)#_8zHw%+ z?+tgSe6UDRl+SiIzDoRIT0w#uz1^pyt?+W-o46MXp3-sjJJm~vH~>{M1qFj^#vH1= zjCSqnAb9=5$MX+zr+bd&eV+;ojH?eZk;iN|f*5+T%7vpPiYk@^dbbC-+{G6|#YFrP zj$Wn={57jSw-b~06dDNrvKv_^V%CNNA&oroysU|mB6)0 zWx{>@egCBSQxU8goeVx_Er{Fq!End{2z29Bf!Qw>ml|mjq3QNLS|-B=Qo&*&XY*>fA69bJ1VADK>= zMWZ+T+BLGom8iBp`G$ku(zLPxF7jmae8ZZxqSow$&yQWXTH9q^M}S7K8v61zLiu&; zV7TBC0sW;eh206y2Jk8t%UEp#oT4W0g0l4XWNk?=i3^iwK(500uF(SyRNvZ~+Tj+r z`P%$!Xj<$AiE6#_twX=vjKifkLL%LrDIRr%Rx316fM$7_>iE7>_xS7(*)V;uZK4pQ zD6*tK*yZ2Lw=LKG9xP&b=@da5L~&rw=iQ;F8XlpldfV6G=O7D|0B}>k`Jp zDlLjBQ<_x{?AX}t48Ihmv&l=A_=AZ#M)l%3{v7bV^mV5FubOqZL@=Z~*`=)<_osE$h|p(T5!oi%u`fdd5PE z(yfE*=-wQ$H^^o(}&`UPAHWZgY8SqU}*lRak%RHr)@pd@8 zMUOif-GUI+M{c(T&QNiBb|+8Beb)Mc@!PM|8E`8Re}T~ W$=rI3Unpu@vXaeMn9xQ4H~N1* Date: Tue, 20 Dec 2016 15:33:39 -0800 Subject: [PATCH 21/24] Cleanup extra leftovers --- sources/shdr/App.coffee | 3 +-- sources/textures/purple_checkers.jpg | Bin 11023 -> 0 bytes 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 sources/textures/purple_checkers.jpg diff --git a/sources/shdr/App.coffee b/sources/shdr/App.coffee index bdf3e91..12d7aaa 100644 --- a/sources/shdr/App.coffee +++ b/sources/shdr/App.coffee @@ -117,12 +117,11 @@ class App uniforms = @documents[App.UNIFORMS] [_fs, fl, fm] = @validator.validate(fs, shdr.Validator.FRAGMENT) [_vs, vl, vm] = @validator.validate(vs, shdr.Validator.VERTEX) - # TODO validate uniforms @viewer.updateShader(uniforms, App.UNIFORMS) if _fs and _vs @viewer.updateShader(vs, App.VERTEX) @viewer.updateShader(fs, App.FRAGMENT) - @editor.getSession().setValue(if @conf.mode is App.VERTEX then vs else fs) + @editor.getSession().setValue(if @conf.mode is App.VERTEX then vs else fs) @ui.setMenuMode(App.FRAGMENT) @ui.setStatus("Shaders successfully loaded and compiled.", shdr.UI.SUCCESS) diff --git a/sources/textures/purple_checkers.jpg b/sources/textures/purple_checkers.jpg deleted file mode 100644 index 1d9051dee93600070cb168357029526de9637f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11023 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 From 1454d66af3c7648d51fcb0e87bc0e34a37daf877 Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Tue, 20 Dec 2016 15:34:52 -0800 Subject: [PATCH 22/24] Remove console log statements --- sources/shdr/Viewer.coffee | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sources/shdr/Viewer.coffee b/sources/shdr/Viewer.coffee index 8e32b03..dd39162 100644 --- a/sources/shdr/Viewer.coffee +++ b/sources/shdr/Viewer.coffee @@ -148,7 +148,6 @@ class Viewer ': wrong number of arguments', shdr.UI.ERROR) error = true uniform['type'] = 'v3' - console.log(value) uniform['value'] = new THREE.Vector3(vectorVals[0], vectorVals[1], vectorVals[2]) else if type == 'vec4' @@ -179,7 +178,6 @@ class Viewer @app.marker = session.highlightLines(lineNum - 1, lineNum - 1) continue - console.log(uniformObj) return uniformObj addCustomUniforms: (uniformsObj) -> @@ -190,10 +188,8 @@ class Viewer defaultMaterial: -> @resetUniforms() @addCustomUniforms(@parseUniforms(shdr.Snippets.DefaultUniforms)) - console.log(@uniforms) @vs = shdr.Snippets.DefaultVertex @fs = shdr.Snippets.DefaultFragment - console.log(@uniforms) return new THREE.ShaderMaterial( uniforms: @uniforms vertexShader: @vs From 54abaeb177952ce7eaebb24864eb363eb4d05db1 Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Tue, 20 Dec 2016 21:51:50 -0800 Subject: [PATCH 23/24] Add UV coordinate access to default snippet --- sources/shdr/Snippets.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sources/shdr/Snippets.coffee b/sources/shdr/Snippets.coffee index a9f2e90..f2d81a2 100644 --- a/sources/shdr/Snippets.coffee +++ b/sources/shdr/Snippets.coffee @@ -7,11 +7,14 @@ Snippets = 'uniform mat3 normalMatrix;' 'uniform mat4 modelViewMatrix;' 'uniform mat4 projectionMatrix;' + 'uniform mat2 faceVertexUvs;' 'varying vec3 fNormal;' 'varying vec3 fPosition;' + 'varying vec2 vUv;' '' 'void main()' '{' + ' vUv = faceVertexUvs * vec2(1, 1);' ' fNormal = normalize(normalMatrix * normal);' ' vec4 pos = modelViewMatrix * vec4(position, 1.0);' ' fPosition = pos.xyz;' @@ -25,6 +28,7 @@ Snippets = 'uniform vec2 resolution;' 'varying vec3 fPosition;' 'varying vec3 fNormal;' + 'varying vec2 vUv;' 'uniform vec3 testColor;' '' 'void main()' From 8fa675c48fdb61f24c6d19bfe88a880f97bebbfe Mon Sep 17 00:00:00 2001 From: Alex Ottoboni Date: Thu, 6 Feb 2020 11:38:48 -0800 Subject: [PATCH 24/24] Better color for readability --- sources/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/css/main.css b/sources/css/main.css index 1141c99..49b7c7c 100644 --- a/sources/css/main.css +++ b/sources/css/main.css @@ -286,7 +286,7 @@ button::-moz-focus-inner { margin: 0; padding: 12px; padding-top: 16px; - color: #040404; + color: #fff; text-shadow: 0px 1px 0px #333; filter: dropshadow(color=#333, offx=0, offy=1); }